Nexpose es una herramienta que permite ejecutar diferentes tipos de escaneos en búsqueda de vulnerabilidades en un host o red, permite la definición de determinadas opciones que nos permiten acceder a un escaneo mucho mas preciso con el uso de filtros por puertos, máquinas, segmentos de red, protocolos, etc.

El procedimiento de instalación es muy simple, solamente basta con descargar el software y navegar por la estructura de directorios hasta llegar al directorio nexpose/nsc, una vez allí ejecutar el fichero ./nsc.sh, esto nos permitira utilizar nexpose desde la interfaz web en la ruta https://localhost:3780/

Aunque resulta muy sencillo, aun hay un tema por cubrir, se trata de la base de datos SQL requerida, ya que el servidor no arranca correctamente si se encuentra una base de datos postgresql instalada y escuchando por el puerto 5432, por lo tanto es posible que sea necesario cambiar los ficheros de propiedades para especificar un valor diferente de puerto, de esta forma evitaremos conflictos:

nsc/conf/nsc.xml

editar la linea de conexión por:

dbms=”postgresql” db=”//127.0.0.1:5333/nexpose”>

Posteriormente en el fichero:

nsc/nxpgsql/nxpdata/postgresql.conf

añadir:

port=5333

Con estas indicaciones el servidor debería poder iniciarse sin problemas.

después de instalarlo es posible que pida una clave para activar la licencia, esta clave debe ser solicitada en el sitio oficial de Nexpose.

NeXpose con MetaSploit:

Es posible realizar una integración de NeXpose con Metasploit por medio de los reportes generados por NexPose una vez terminado el escaneo de vulnerabilidades para un segmento de red determinado, normalmente cuando generamos un reporte con nexpose este se encuentra en formato XML lo que nos permite importarlo posteriormente en MetaSploit con el uso del comando db_import:

msf > db_driver postgresql

[*] Using database driver postgresql

msf > db_connect msf_user:clavebd@localhost:5432/msf_database

msf > db_import /home/adastra/Desktop/report.xml

[*] Importing ‘NeXpose Simple XML’ data

[*] Importing host 192.168.1.33

[*] Importing host 192.168.1.34

[*] Importing host 192.168.1.35

[*] Successfully imported /home/adastra/Desktop/report.xml

Nota: La base de datos indicada en las lineas anteriores es diferente de la base de datos utilizada por Nexpose, por este motivo su nombre y puerto son también distintos, la base de datos indicada corresponde a una utilizada para la conexión con metasploit framework.

Con los comandos anteriores se han podido importar los datos del reporte generados por NeXpose, ahora podemos visualizar los servicios localizados:

msf > db_services

Services

========

created_at info name port proto state updated_at Host Workspace

———- —- —- —- —– —– ———- —- ———

Fri Feb 18 22:29:12 UTC 2011 ftp 21 tcp open Sun Feb 20 22:19:23 UTC 2011 192.168.1.1 default

……………………….

Ahora podemos identificar las vulnerabilidades que han sido detectadas por NeXpose.

msf > db_vulns

[*] Time: Fri Feb 18 22:28:59 UTC 2011 Vuln: host=192.168.1.33 name=NSS- refs=

[*] Time: Fri Feb 18 22:29:10 UTC 2011 Vuln: host=192.168.1.33 name=NSS-11936 refs=

Ahora bien, con esta información es posible realizar determinados ataques en función de las vulnerabilidades encontradas, si nos encontramos en un entorno donde no nos interesa ser detectados (ya que en primera instancia ni siquiera deberíamos de estar allí) es recomendable realizar la explotación de dichas vulnerabilidades de forma independiente, sin embargo si nos encontramos en un entorno de pruebas, podemos hacer uso de una pila de ejecución para atacar a todos los sistemas dadas las vulnerabilidades encontradas por medio del comando db_autopwn

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 (default)

-q Disable exploit module output

-R [rank] Only run modules with a minimal rank

-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

-T [secs] Maximum runtime for any exploit in seconds

msf> db_autopwn -t -x -r -e

Conexión NeXpose desde MetaSploit:

Es posible realizar una conexión con nexpose por medio de la interface web o por la consola de metasploit haciendo uso de los comandos disponibles en metasploit para utilizar nexpose.

En primer lugar es necesario realizar una conexión y cargar el modulo de nexpose de la siguiente forma:

msf > load nexpose

[*] NeXpose integration has been activated

[*] Successfully loaded plugin: nexpose

msf > nexpose_connect nxadmin:admin@127.0.0.1 ok

[*] Connecting to NeXpose instance at 127.0.0.1:3780 with username nxadmin…

Ahora es posible realizar un scaneo de vulnerabilidades desde la consola por medio del comando nexpose_discover

msf > nexpose_discover -h

Usage: nexpose_scan [options]

OPTIONS:

-E Exclude hosts in the specified range from the scan

-I Only scan systems with an address within the specified range

-P Leave the scan data on the server when it completes (this counts against the maximum licensed IPs)

-R Specify a minimum exploit rank to use for automated exploitation

-X Automatically launch all exploits by matching reference and port after the scan completes (unsafe)

-c Specify credentials to use against these targets (format is type:user:pass[@host[:port]]

-d Scan hosts based on the contents of the existing database

-h This help menu

-n The maximum number of IPs to scan at a time (default is 32)

-s The directory to store the raw XML files from the NeXpose instance (optional)

-t The scan template to use (default:pentest-audit options:full-audit,exhaustive-audit,discovery,aggressive-discovery,dos-audit)

-v Display diagnostic information about the scanning process

-x Automatically launch all exploits by matching reference after the scan completes (unsafe)

Para realizar un escaneo normal:

msf > nexpose_discover 192.168.1.33

[*] Scanning 1 addresses with template aggressive-discovery in sets of 32

[*] Completed the scan of 1 addresses

Posteriormente podemos realizar las mismas actividades anteriormente descritas, es decir, la ejecución del comando db_services, db_vulns, db_autopwn, etc.