Para esta entrada utilizaremos, además del kali una vm con metasploitable. Pueden usar la misma que hemos utilizado anteriormente.
Antes que nada, conectaremos la base de datos postgresql con metasploit. Para esto debemos stopear tanto el servicio de postgresql como el de metasploit si los tenemos corriendo. Para checkear si están activos o no corremos el comando service postgresql status en caso de que esté activo lo frenamos con service postgresql stop. Lo mismo con el servicio de metasploit.
Luego los volvemos a inicializar los servicios de postgresql y luego el metasploit.
Una vez que hemos inicializado los servicios, levantamos el msfconsole y aguardamos a que termine de crear las tablas y demás. Cuando termine de cargar, validamos que esté todo ok corriendo db_status.
Esto nos brindará mayor rapidez en la búsqueda de exploits entre otras tantas ventajas.
Una vez inicializada el metasploitable, desde el kali hacemos un reconocimientos de hosts activos desde metasploit utilizando el auxiliar snmp_enum
Veamos dos maneras, una, ejecutando el auxiliar con los parámetros definidos todo en una misma linea con la posibilidad de guardar el output si colocamos -x luego de llamar a msfconsole y definiendo el archivo donde se guardará.
Para visualizar el output basta con correr un cat NombreDeArchivo y listo
La otra, es levantando el msfconsole y defiendo las cosas a medida que vamos viendo que es lo que necesitamos.
Cuando identificamos la ip de nuestro target comenzamos con las tareas de reconocimiento. En este ejemplo, el equipo con kali es el 130 y la víctima el 131. Lanzamos entonces nmap desde el framework de metasploit
Nmap -sV -O DirecciónIP
Si queremos guardar el output del nmap podemos utilizar el parámetro -oG, o como recién hemos visto, lanzamos el nmap desde el msfconsole con los parámetros definidos para que guarde el output en un archivo.
Estos dos ejemplos guardaran el mismo contenido (sólo se diferencia por el banner de metasploit), ya que ambos corren nmap y salvan su resultado en el archivo que nosotros le definamos, para un ejemplo es test2 y para el otro nmap, aunque el nombre que le pongamos no influye en absoluto.
Ya hemos visto en detalle nmap, pero básicamente los parámetros que utilizamos son para identificar servicios activos (-sV) y sistema operativo (-O).
Ejemplificaremos la explotación de algunos servicios utilizando exploits presentes en metasploit, los servicios que no explotemos me gustaría que intenten seguir la misma metodología propuesta para intentar hacerlo ustedes mismos y luego comenten los exploit que utilizaron.
Comencemos entonces con la explotación.
1- Buscamos exploits asociados al servicio ftp que está corriendo por el puerto 21 con vsftpd v2.3.4
search vsftpd
2- Si ya obtuvimos el exploit, ahora debemos seleccionarlo y setear las configuraciones necesarias para poder ejecutarlo. Vemos que requisitos tiene y los definimos.
show options
Como podemos ver, el exploit requiere de que definamos el host remoto y el puerto, sin embargo este último ya viene definido por defecto.
set rhost DirecciónIP
3- Ahora es necesario utilizar un payload para realizar obtener acceso una vez que la vulnerabilidad haya sido explotada. Cada exploit tiene payloads asociados, es decir, no puedo usar cualquier payload con cualquier exploit. Para identificar los payloads que podemos utilizar basta con correr
show payload
Para este exploit sólo tendremos un payload, lo seleccionamos usando el comando set y luego vemos los requerimientos. Como no solicita absolutamente nada, podemos proceder al la fase de explotación.
4- Ejecutamos el exploit con el comando run o exploit.
Como la explotación fue exitosa, validamos que estamos en dentro del target y los privilegios que poseemos, para, de ser necesario, proceder a la escalación de privilegios.
Veamos ahora, la explotación de otro servicio. Como hemos visto en el output del nmap, sobre el puerto 1099 está corriendo un servicio llamado rmiregistry. Cuáles son los pasos a seguir entonces?
1- Buscamos el exploit desde el framework de metasploit con search NombreDeServicio
2- Le decimos a metasploit que utilizaremos ese exploit y vemos cuáles son los requisitos para poder utilizarlo. Las configuraciones que utilizaremos de manera reiterada como por ejemplo lhost o si estamos realizando varias pruebas contra un target también rhost podemos definirlo una sola vez de manera global poniengo una g al finat de set, es decir setg lhost. De esta manera, cuando usamos un exploit ya nos levanta las configuraciones globales por defecto.
Aquí levantó el rhost sólo, ya que anteriormente lo había definido de manera global.
3- Buscamos los payload tenemos disponiblespara éste exploit con search payload y elegimos el que más nos guste.
4- Definimos los parámetros de configuración del payload y explotamos.
Más adelante veremos técnicas para mantener el acceso que hemos logrado y escalar privilegios de ser necesario. Me gustaría, como dije más arriba, que busquen exploits para cada uno de los servicios que no hemos explotado en éstos ejemplos y comenten cómo les fue, la práctica es fundamental.
Como siempre, cualquier duda o consulta, estamos por aquí.
Regards, @balderramaeric