Está en la página 1de 145

Machine Translated by Google

Guía de inicio rápido


para la penetración
Pruebas
Con NMAP, OpenVAS y Metasploit

Sagar Rahalkar
Machine Translated by Google

Guía de inicio rápido para


Pruebas de penetración
Con NMAP, OpenVAS y
metasploit

Sagar Rahalkar
Machine Translated by Google

Guía de inicio rápido para pruebas de penetración

Sagar Rahalkar
Pune, Maharastra, India

ISBN­13 (pbk): 978­1­4842­4269­8 ISBN­13 (electrónico): 978­1­4842­4270­4


https://doi.org/10.1007/978­1­4842­4270­4
Número de control de la Biblioteca del Congreso: 2018964909

Copyright © 2019 por Sagar Rahalkar


Esta obra está sujeta a derechos de autor. Todos los derechos están reservados por el Editor, ya sea sobre la totalidad o
parte del material, específicamente los derechos de traducción, reimpresión, reutilización de ilustraciones, recitación,
radiodifusión, reproducción en microfilmes o en cualquier otro medio físico, y transmisión o almacenamiento de información.
y recuperación, adaptación electrónica, software de computadora o mediante metodología similar o diferente ahora conocida o
desarrollada en el futuro.

En este libro pueden aparecer nombres de marcas comerciales, logotipos e imágenes. En lugar de utilizar un símbolo de
marca registrada cada vez que aparece un nombre, logotipo o imagen de marca registrada, usamos los nombres, logotipos
e imágenes solo de forma editorial y para beneficio del propietario de la marca registrada, sin intención de infringir la
marca comercial.

El uso en esta publicación de nombres comerciales, marcas comerciales, marcas de servicio y términos similares, incluso si no
están identificados como tales, no debe tomarse como una expresión de opinión sobre si están sujetos o no a derechos de
propiedad.

Si bien se cree que los consejos y la información contenidos en este libro son verdaderos y precisos en la fecha de su publicación.

publicación, ni los autores ni los editores ni el editor pueden aceptar ninguna responsabilidad legal por los errores
u omisiones que puedan cometerse. El editor no ofrece ninguna garantía, expresa o implícita, con respecto al material
contenido en este documento.

Director general de Apress Media LLC: Welmoed Spahr


Editor de adquisiciones: Nikhil Karkal
Editor de desarrollo: Matthew Moodie
Editor coordinador: Divya Modi

Portada diseñada por eStudioCalamar

Imagen de portada diseñada por Freepik (www.freepik.com)

Distribuido al comercio del libro en todo el mundo por Springer Science+Business Media New York, 233 Spring
Street, 6th Floor, New York, NY 10013. Teléfono 1­800­SPRINGER, fax (201) 348­4505, correo electrónico pedidos­ny@
springer­sbm.com o visite www.springeronline.com. Apress Media, LLC es una LLC de California y el único miembro
(propietario) es Springer Science + Business Media Finance Inc (SSBM Finance Inc). SSBM Finance Inc es una corporación
de Delaware .

Para obtener información sobre traducciones, envíe un correo electrónico a Rights@apress.com o visite www.apress.com/
derechos­permisos.

Los títulos de Apress se pueden comprar al por mayor para uso académico, corporativo o promocional. Versiones de libros
electrónicos y licencias también están disponibles para la mayoría de los títulos. Para obtener más información, consulte nuestra página
web de ventas al por mayor de libros impresos y electrónicos en www.apress.com/bulk­sales.

Cualquier código fuente u otro material complementario al que haga referencia el autor en este libro está disponible para los
lectores en GitHub a través de la página del producto del libro, ubicada en www.apress.com/978­1­4842­4269­8.
Para obtener información más detallada, visite www.apress.com/source­code.

Impreso en papel sin ácido.


Machine Translated by Google

Tabla de contenido
Acerca del autor vii

Acerca del revisor técnico ix

Introducción xi

Capítulo 1: Introducción a NMAP 1

NMAP 4

Instalación de NMAP 5

Introducción a NMAP y ZENMAP 6

Estados de puerto NMAP 8

Escaneo básico con NMAP 9

Scripts NMAP 20

Salida NMAP 40

NMAP y Python 40

Resumen 44

Ejercicios de bricolaje (bricolaje) 45

Capítulo 2: OpenVAS 47

Introducción a OpenVAS 48

Instalación 49

Administración de OpenVAS 55

Actualización del feed 55

Gestión de usuarios 57

Panel de control 59

III
Machine Translated by Google

Tabla de contenido

Programador 60

Papelera 60

Ayuda 61

Escaneo de vulnerabilidades 62

Configuración adicional de OpenVAS 66

Rendimiento 66

Calculadora CVSS 67

Configuración 68

Informes 69

Resumen 71

Ejercicios de bricolaje (bricolaje) 71

Capítulo 3: Metasploit 73

Introducción a Metasploit 73

Anatomía y estructura de Metasploit 74

Auxiliares 76

Cargas útiles 76

Explotaciones 77

Codificadores 77

Actividades posteriores a la explotación (post) 78

Comandos básicos y configuración 79 ayuda

80

versión 81

conectar 82

Historia 83

configurar y configurar 84 obtener

y obtener 85 desarmar y

desarmar 85

IV
Machine Translated by Google

Tabla de contenido

guardar 86

información 87

irb 87

mostrar 88

carrete 89

fabricante 89

db_initiate 90

db_status 90

espacio de trabajo 91

Invocar escaneos NMAP y OpenVAS desde Metasploit 92

NMAP 92

OpenVAS 95

Escaneo y explotación de servicios con auxiliares de Metasploit 100

DNS 100

FTP 101

HTTP 102

RDP 104

Pymes 104

SSH 106

VNC 107

Conceptos básicos de Meterpreter 108

Comandos de Meterpreter 108

Comandos principales 108

Stdapi: Comandos del sistema 110

Stdapi: Comandos de la interfaz de usuario 112

Stdapi: Comandos de cámara web 112

Stdapi: Comandos de salida de audio 113

Priv: Comandos de elevación 113

v
Machine Translated by Google

Tabla de contenido

Priv: Comandos de la base de datos de contraseñas 114

Priv: Comandos de Timestomp 114

Uso de Meterpreter 114 sysinfo

115

ls 116

getuid

117 getsystem 117

captura de pantalla 118

hashdump 119

Searchsploit 120

Resumen 120

Ejercicios de bricolaje (bricolaje) 121

Capítulo 4: Caso de uso 123

Creación de un laboratorio virtual 123

Realización de reconocimientos 124

Explotación del sistema 126

Índice 135

vi
Machine Translated by Google

Sobre el Autor
Sagar Rahalkar es un experimentado profesional de seguridad de la información
con 11 años de experiencia integral en los distintos sectores verticales de
la seguridad de la información. Su dominio se centra en investigaciones de delitos
cibernéticos, análisis forense digital, seguridad de aplicaciones, evaluación de
vulnerabilidades y pruebas de penetración, cumplimiento de mandatos y
regulaciones, y CRC de TI. Tiene una maestría en ciencias de la computación y
varias certificaciones reconocidas en la industria, como Investigador certificado
de delitos cibernéticos, Hacker ético certificado, Analista de seguridad
certificado, Auditor líder ISO 27001, Especialista certificado de IBM ­ Rational AppScan,
Gerente de seguridad de la información certificado (CISM) y PRINCE2, por
nombrar algunos. Ha estado estrechamente asociado con las agencias de
aplicación de la ley de la India durante más de cuatro años, ocupándose de
investigaciones de delitos digitales y capacitaciones relacionadas para oficiales, y ha
recibido varios premios y reconocimientos de altos funcionarios de la policía y de
organizaciones de defensa de la India. Es autor de varios libros y artículos sobre seguridad de la

viii
Machine Translated by Google

Acerca del revisor técnico


Sanjib Sinha es un desarrollador web y .NET
Windows certificado, que se especializa en
Python, programación de seguridad y PHP;
ganó el premio Community Contributor de
Microsoft en 2011. Como autor publicado, sus
libros incluyen Beginning Ethical Hacking with
Python y Beginning Laravel, publicados por Apress.

ix
Machine Translated by Google

Introducción
La evaluación de vulnerabilidades y las pruebas de penetración se han vuelto muy
importantes, especialmente en los últimos años. Las organizaciones suelen tener redes
complejas de activos que almacenan datos confidenciales y dichos activos están
expuestos a amenazas potenciales tanto desde el interior como desde el exterior. Para
obtener una visión general de la postura de seguridad de una organización, realizar
una evaluación de vulnerabilidad es un paso esencial. La realización de pruebas de
penetración requiere un enfoque metódico y bien planificado.
Para ayudarlo a realizar diversas tareas en las fases del ciclo de vida de las pruebas de
penetración, hay toneladas de herramientas, scripts y utilidades disponibles. Las distribuciones
de Linux como Kali Linux incluso proporcionan herramientas incluidas para realizar estas
tareas.

Es natural sentirse abrumado por la cantidad de herramientas disponibles.


Sin embargo, existen algunas herramientas que son tan poderosas y flexibles que por
sí solas pueden realizar la mayoría de las tareas en las fases del ciclo de vida de las
pruebas de penetración.
Este libro lo ayudará a comenzar con los fundamentos de tres de estas
herramientas: NMAP, OpenVAS y Metasploit. Con solo utilizar estas tres herramientas,
adquirirá amplias capacidades de pruebas de penetración.
Al final de este libro, tendrá una comprensión sustancial de NMAP, OpenVAS y
Metasploit y podrá aplicar sus habilidades en escenarios de pruebas de penetración
del mundo real.

xi
Machine Translated by Google

CAPÍTULO 1

Introducción a NMAP
La evaluación de vulnerabilidades y las pruebas de penetración han ganado gran
importancia, especialmente en los últimos años. Las organizaciones suelen tener una red
compleja de activos que almacenan datos confidenciales. Dichos activos están expuestos
a amenazas potenciales tanto desde dentro como desde fuera de la organización. Para
obtener una visión general de la postura de seguridad de la organización, es esencial
realizar una evaluación de vulnerabilidad.
Es importante entender la clara diferencia entre vulnerabilidad
evaluaciones y pruebas de penetración. Para comprender esta diferencia, consideremos
un escenario del mundo real. Observa que la puerta de su vecino no está cerrada
correctamente y que el vecino no está en casa. Esta es una evaluación de
vulnerabilidad. Ahora bien, si realmente abres la puerta del vecino y entras a la casa,
entonces eso es una prueba de penetración. En un contexto de seguridad de la
información, es posible que observe que el servicio SSH se ejecuta con credenciales
débiles; esto es parte de una evaluación de vulnerabilidad. Si realmente utiliza esas
credenciales para obtener acceso, entonces se trata de una prueba de penetración.
Las evaluaciones de vulnerabilidad suelen ser seguras, mientras que las pruebas de
penetración, si no se realizan de forma controlada, pueden causar daños graves en los sistemas de d
Por tanto, una evaluación de la vulnerabilidad es uno de los requisitos previos
esenciales para realizar una prueba de penetración. A menos que sepa qué
vulnerabilidades existen en el sistema de destino, no podrá explotarlas.

© Sagar Rahalkar 2019 1


S. Rahalkar, Guía de inicio rápido para pruebas de
penetración, https://doi.org/10.1007/978­1­4842­4270­4_1
Machine Translated by Google

Capítulo 1 Introducción a NMAP

La realización de pruebas de penetración requiere un enfoque


metodológico y bien planificado. Es un proceso de varios pasos. Las siguientes son
algunas de las fases de las pruebas de penetración:

• Recopilación de información: La recopilación de


información es la fase más importante del ciclo de vida
de las pruebas de penetración. Esta fase también se
conoce como reconocimiento. Implica el uso de diversas
técnicas pasivas y activas para recopilar la mayor cantidad de
información posible sobre el sistema objetivo. La recopilación de
información detallada sienta una base sólida para fases
posteriores en el ciclo de vida de las pruebas de penetración.

• Enumeración: una vez que se tiene información básica sobre el


objetivo, la fase de enumeración utiliza varias herramientas y
técnicas para sondear el objetivo en detalle. Implica descubrir
las versiones exactas del servicio que se ejecutan en el
sistema de destino.

• Evaluación de vulnerabilidad: La vulnerabilidad


La fase de evaluación implica el uso de diversas
herramientas y metodologías para afirmar la existencia de
vulnerabilidades conocidas en el sistema objetivo.

• Obteniendo acceso: De la fase anterior, tienes una lista de


vulnerabilidades probables para tu objetivo. Ahora puede intentar
explotar estas vulnerabilidades para obtener acceso al sistema
de destino.

• Escalamiento de privilegios: puede obtener acceso a su


sistema de destino explotando una vulnerabilidad particular;
sin embargo, el acceso puede estar restringido. Para
infiltrarse más profundamente, necesita utilizar varias
técnicas y escalar los privilegios al nivel más alto, como
administrador, root, etc.

2
Machine Translated by Google

Capítulo 1 Introducción a NMAP

• Mantener el acceso: ahora que ha trabajado duro para obtener acceso al

sistema de destino, seguramente querrá que persista. Esta fase implica el

uso de varias técnicas para hacer que el acceso al sistema de destino

sea persistente.

• Cubrir huellas: el proceso de penetración puede crear

archivos basura, modificar archivos de configuración, cambiar entradas de

registro, crear registros de auditoría, etc. Cubrir tus huellas implica limpiar

todos los rastros dejados durante las fases anteriores.

Para realizar diversas tareas en estas fases, existen cientos de herramientas, scripts y utilidades

disponibles. Las distribuciones de Linux como Kali Linux incluso proporcionan herramientas incluidas para

realizar estas tareas.

Es natural sentirse abrumado por la cantidad de herramientas disponibles.

Sin embargo, existen algunas herramientas que son tan poderosas y flexibles que por sí solas pueden

realizar la mayoría de las tareas en todas estas fases.

Este libro trata sobre tres de estas herramientas: NMAP, OpenVAS y Metasploit.

El solo hecho de tener estas tres herramientas en su arsenal puede proporcionar amplias

capacidades de pruebas de penetración.

La Tabla 1­1 describe cómo estas herramientas podrían usarse en varias fases de

El ciclo de vida de las pruebas de penetración.

3
Machine Translated by Google

Capítulo 1 Introducción a NMAP

Tabla 1­1. Herramientas para las fases de prueba de penetración

Fase de prueba de penetración Herramienta

Recopilación de información NMAP, Metasploit

Enumeración NMAP, Metasploit

Evaluación de vulnerabilidad OpenVAS

Ganando acceso metasploit

Privilegios crecientes metasploit

Mantener el acceso metasploit

Cubriendo pistas metasploit

De esta tabla, es evidente que las tres herramientas son capaces de realizar

tareas en todas las fases del ciclo de vida de las pruebas de penetración.

Este libro se centra en estas tres herramientas y le ayuda a empezar a utilizarlas.


fundamentos de cada una de estas herramientas. Este capítulo cubrirá NMAP.

NMAP
Ahora que tiene una idea clara de las diferentes fases del ciclo de vida de las pruebas de

penetración y de las herramientas necesarias, pasemos a nuestra primera herramienta,

NMAP. Aprenderá sobre varias características de NMAP, incluidas las siguientes:

• Instalación de NMAP

• Uso de NMAP con ZENMAP

• Comprender los estados portuarios NMAP

• Realización de escaneo básico con NMAP

4
Machine Translated by Google

Capítulo 1 Introducción a NMAP

• Comprensión de los análisis TCP frente a los análisis UDP

• Enumerar los sistemas operativos y servicios de destino.

• Ajuste de los escaneos

• Uso de secuencias de comandos NMAP

• Invocar NMAP desde Python

Instalación NMAP
NMAP se puede instalar tanto en sistemas basados en Windows como en Unix. Para

instalar NMAP en Windows, simplemente vaya a https://nmap.org/download.


HTML, descargue el ejecutable e instálelo.

Para sistemas basados en Unix, puede instalar NMAP desde la línea de comandos.
Las distribuciones de seguridad como Kali Linux tienen NMAP instalado de forma predeterminada.
Sin embargo, para otras distribuciones habituales, es necesario instalarlo por separado.

Simplemente puede usar el comando apt install nmap para sistemas basados en
Debian, como se muestra en la Figura 1­1. Este comando instalará NMAP junto con todas las
dependencias necesarias.

5
Machine Translated by Google

Capítulo 1 Introducción a NMAP

Figura 1­1. Instalación de NMAP en un sistema basado en Debian

Introducción a NMAP y ZENMAP


NMAP era inicialmente una utilidad de línea de comandos. En una terminal Linux,
simplemente puede escribir el comando nmap para comenzar. La Figura 1­2 muestra
el resultado del comando nmap. Muestra los diversos parámetros e interruptores que
deben configurarse para escanear un objetivo.

6
Machine Translated by Google

Capítulo 1 Introducción a NMAP

Figura 1­2. Salida del comando nmap en la terminal

ZENMAP es una interfaz gráfica para NMAP. Ofrece la misma funcionalidad


de una manera más fácil de usar. ZENMAP es parte de la instalación predeterminada de
Kali Linux y se puede acceder a él en Aplicaciones Recopilación de información
ZENMAP. La Figura 1­3 muestra la pantalla inicial de ZENMAP. La interfaz ZENMAP tiene
tres ajustes configurables principales.

• Destino: puede ser una única dirección IP, una lista de múltiples
IP o una subred completa.

• Perfil: ZENMAP tiene un conjunto de varios escaneos predefinidos.


perfiles. Los perfiles se clasifican según los tipos de escaneos
disponibles en NMAP. Puede elegir entre los perfiles disponibles o
puede realizar un escaneo personalizado según sus requisitos.

7
Machine Translated by Google

Capítulo 1 Introducción a NMAP

• Comando: una vez que ingresas un objetivo y seleccionas un


perfil predefinido, ZENMAP completará automáticamente el
campo Comando. También puede utilizar este campo si desea
ejecutar un análisis personalizado con respecto al perfil predefinido.

Figura 1­3. Pantalla/interfaz inicial de ZENMAP

Estados portuarios NMAP

Aunque la versión actual de NMAP es capaz de realizar muchas tareas, inicialmente comenzó
como un escáner de puertos. NMAP tiene ciertas formas de detectar si el puerto del
sistema de destino está abierto o cerrado. NMAP detecta el estado del puerto de destino
utilizando estados predefinidos de la siguiente manera:

Abierto: el estado Abierto indica que una aplicación en el


sistema de destino está escuchando activamente
conexiones/paquetes en ese puerto.

Cerrado: el estado Cerrado indica que no hay ninguna


aplicación escuchando en ese puerto. Sin embargo, el estado
del puerto podría cambiar a Abierto en el futuro.

8
Machine Translated by Google

Capítulo 1 Introducción a NMAP

Filtrado: El estado Filtrado indica que ya sea un

un firewall, un filtro o algún tipo de obstáculo en la red está

bloqueando el puerto y, por lo tanto, NMAP no puede determinar

si está abierto o cerrado.

Sin filtrar: el estado Sin filtrar indica que los puertos están

respondiendo a las sondas NMAP; sin embargo, no es posible

determinar si están abiertos o cerrados.

Abierto/Filtrado: El estado Abierto/Filtrado indica que el puerto

está filtrado o abierto; sin embargo, NMAP no puede determinar

con precisión el estado.

Cerrado/Filtrado: El estado Cerrado/Filtrado indica

que el puerto esté filtrado o cerrado; sin embargo, NMAP no

puede determinar con precisión el estado.

Escaneo básico con NMAP


NMAP es una herramienta compleja con numerosas opciones y conmutadores disponibles.

En esta sección, verá varios escenarios de uso de NMAP comenzando con el


escaneos más básicos.

Antes de comenzar con el escaneo real, es importante tener en cuenta que NMAP es

una herramienta ruidosa. Crea una gran cantidad de tráfico de red y, en ocasiones, puede

consumir mucho ancho de banda. Muchos de los sistemas de detección de intrusiones y de

prevención de intrusiones pueden detectar y bloquear el tráfico NMAP. Se dice que un escaneo

NMAP básico predeterminado en un solo host puede generar más de 4 MB de tráfico de red. Por lo

tanto, incluso si realiza un escaneo básico en una subred completa, creará alrededor de 1 GB de

tráfico. Por lo tanto, es esencial realizar escaneos NMAP con conocimiento completo de los

conmutadores que se utilizan.

9
Machine Translated by Google

Capítulo 1 Introducción a NMAP

Escaneo básico en una sola IP

Aquí está el comando:

nmap ­sn <dirección IP de destino>

Comencemos con un escaneo de ping básico en un solo objetivo. Un escaneo de


ping no buscará ningún puerto abierto; sin embargo, le dirá si el objetivo está vivo. La Figura
1­4 muestra el resultado de un escaneo de ping realizado en una única dirección IP de
destino.

Figura 1­4. Salida del escaneo NMAP básico realizado en una única dirección IP

Escaneo básico en una subred completa

Aquí está el comando:

nmap ­sn <subred IP de destino>

En un escenario práctico, es posible que tenga varias direcciones IP que deba


verificar. Para obtener una descripción general rápida de qué hosts en una subred determinada
están activos, puede realizar un escaneo de ping NMAP en toda la subred. Una subred es
simplemente una división lógica de la red. Escanear toda la subred le brindará una
descripción general de qué sistemas están presentes en la red. La Figura 1­5 muestra el
resultado de un escaneo de ping realizado en la subred 192.168.25.0­255. Puede ver que
de 255 hosts, sólo siete están en funcionamiento. Ahora puede investigar más a fondo
estos siete hosts y obtener información más detallada.

10
Machine Translated by Google

Capítulo 1 Introducción a NMAP

Figura 1­5. Salida del escaneo NMAP básico realizado en una subred

Escanear usando un archivo de entrada

Aquí está el comando:

nmap ­sn ­iL <ruta del archivo>

Puede haber un escenario en el que necesite escanear una amplia gama de


direcciones IP. En lugar de ingresarlos en un formato separado por comas en NMAP,
puede colocarlos todos en un archivo y enviar ese archivo al motor NMAP.
La Figura 1­6 muestra el contenido del archivo hosts.txt que contiene una lista de direcciones
IP.

11
Machine Translated by Google

Capítulo 1 Introducción a NMAP

Figura 1­6. Archivo de hosts que contiene una lista de direcciones IP que
se analizarán

Ahora puede simplemente enviar el archivo hosts.txt a NMAP y realizar el escaneo,


como se muestra en la Figura 1­7.

Figura 1­7. Salida del escaneo NMAP básico realizado en múltiples direcciones
IP enumeradas en el archivo hosts.txt

Escaneo de motivo

Aquí está el comando:

nmap ­­reason<dirección IP de destino>

12
Machine Translated by Google

Capítulo 1 Introducción a NMAP

En un escaneo NMAP normal, es posible que obtenga una lista de puertos abiertos; sin embargo,

no sabrá la razón por la cual NMAP informó que un puerto en particular estaba abierto.
El escaneo de motivos de NMAP es una opción interesante en la que NMAP
proporciona un motivo para cada puerto informado como abierto, como se muestra en la Figura 1­8.
Los escaneos NMAP se basan en los indicadores TCP que se configuran en la solicitud
y la respuesta. En este caso, los puertos abiertos se detectaron según los indicadores SYN y
ACK establecidos en los paquetes TCP.

Figura 1­8. Salida del motivo del escaneo NMAP realizado en una única
dirección IP

Protocolos admitidos
Aquí está el comando:

nmap ­sO<dirección IP de destino>

Como parte de la recopilación y el reconocimiento de información, puede que


valga la pena saber qué protocolos IP admite el objetivo. Figura 1­9
muestra que este objetivo admite dos protocolos: TCP e ICMP.

13
Machine Translated by Google

Capítulo 1 Introducción a NMAP

Figura 1­9. Salida del escaneo del protocolo NMAP realizado en una única dirección IP

Sonda de cortafuegos

En una red empresarial llena de firewalls, sistemas de detección de intrusiones y


sistemas de prevención de intrusiones, es muy posible que sus escaneos NMAP
no solo sean detectados sino también bloqueados. NMAP ofrece una forma de
comprobar si sus escaneos están siendo filtrados por algún dispositivo intermedio
como un firewall. La Figura 1­10 muestra que los 1000 puertos que NMAP escaneó
no estaban filtrados; por lo tanto, no hubo presencia de ningún dispositivo de filtrado.

Figura 1­10. Salida de la sonda de firewall NMAP realizada contra una única dirección
IP

14
Machine Translated by Google

Capítulo 1 Introducción a NMAP

Topología

ZENMAP tiene una característica interesante que le ayuda a visualizar la topología de la


red. Supongamos que realizó un escaneo de ping en la subred y encontró algunos hosts
activos. La Figura 1­11 muestra el diagrama de topología de red para los hosts que
encontró activos. Se puede acceder al diagrama utilizando la pestaña Topología dentro
de la interfaz ZENMAP.

Figura 1­11. Diagrama de topología del host en ZENMAP

Escaneo TCP rápido

Aquí está el comando:

nmap ­T4 ­F<dirección IP de destino>

Ahora que tiene una lista de hosts activos dentro de la subred, puede
Realice algunos escaneos detallados para descubrir los puertos y servicios que se
ejecutan en ellos. Puede configurar la dirección IP de destino, seleccionar Quick
Scan como perfil y luego ejecutar el escaneo. La Figura 1­12 muestra el resultado de un
escaneo resaltando varios puertos abiertos en el objetivo.

15
Machine Translated by Google

Capítulo 1 Introducción a NMAP

Figura 1­12. Salida de un escaneo TCP NMAP rápido realizado en una única
dirección IP

Enumeración de servicios

Aquí está el comando:

nmap ­sV<dirección IP de destino>

Ahora que tiene un host activo y también sabe qué puertos están abiertos, es
hora de enumerar los servicios asociados con esos puertos. Por ejemplo, puedes ver que el
puerto 21 está abierto. Ahora necesitas saber qué servicio está asociado y cuál es la
versión exacta del servidor.

atender el servicio. Puede utilizar el comando nmap ­sV <dirección IP de destino>, como
se muestra en la Figura 1­13. El modificador ­sV representa la versión de servicio. La
enumeración de servicios y sus versiones proporciona una gran cantidad de información
que se puede utilizar para crear más ataques.

dieciséis
Machine Translated by Google

Capítulo 1 Introducción a NMAP

Figura 1­13. Salida del escaneo del servicio NMAP realizado en una única
dirección IP

Escaneo de puertos UDP

Aquí está el comando:

nmap ­sU ­p 1­1024<dirección IP de destino>

Todos los escaneos que realizó hasta ahora le brindaron información solo sobre los
puertos TCP. Sin embargo, el objetivo también puede tener servicios ejecutándose en puertos UDP.
Un escaneo NMAP predeterminado sondea solo los puertos TCP. Debe buscar
exclusivamente puertos y servicios UDP. Para escanear puertos UDP comunes, puede

utilizar el comando nmap ­sU ­p 1­1024 <dirección IP de destino>. El ­su


El parámetro le indicará al motor NMAP que escanee específicamente los puertos UDP,

mientras que el parámetro ­p 1­1024 limitará el NMAP a escanear solo los puertos en el
rango de 1 a 1024. También es importante tener en cuenta que el escaneo del puerto UDP
lleva mucho más tiempo. más tiempo que un escaneo TCP normal. La Figura 1­14 muestra
el resultado de un escaneo UDP de muestra.

17
Machine Translated by Google

Capítulo 1 Introducción a NMAP

Figura 1­14. Salida del escaneo NMAP UDP básico realizado en una única
dirección IP

Detección del sistema operativo

Aquí está el comando:

nmap ­O<dirección IP de destino>

Ahora que sabe cómo buscar puertos abiertos y enumerar


servicios, puede ir más allá y utilizar NMAP para detectar la versión del sistema operativo en
el que se ejecuta el objetivo. Puede utilizar el comando nmap ­O <dirección IP de
destino>. La Figura 1­15 muestra el resultado de una sonda de detección del sistema
operativo NMAP. Puede ver que el objetivo ejecuta Linux basado en el kernel 2.6.X.

18
Machine Translated by Google

Capítulo 1 Introducción a NMAP

Figura 1­15. Salida del análisis de detección del sistema operativo NMAP realizado en una única
dirección IP

Escaneo intenso

Aquí está el comando:

nmap ­T4 ­A ­v <dirección IP de destino>

Hasta ahora, ha utilizado NMAP para realizar tareas individuales como


escaneo de puertos, enumeración de servicios y detección de sistemas operativos.
Sin embargo, es posible realizar todas estas tareas con un solo comando. Simplemente
puede configurar su dirección IP de destino y seleccionar el perfil de escaneo intenso.
NMAP realizará un escaneo del puerto TCP, enumerará servicios y, además, ejecutará
algunos scripts avanzados para brindar resultados más útiles. Por ejemplo, la Figura
1­16 muestra el resultado de un análisis intensivo de NMAP que no solo enumeró un
servidor FTP sino que también destacó que tiene habilitado el acceso FTP anónimo.

19
Machine Translated by Google

Capítulo 1 Introducción a NMAP

Figura 1­16. Salida de un intenso análisis NMAP realizado en una única dirección IP

Guiones NMAP
NMAP ha evolucionado desde hace mucho tiempo desde un escáner de puertos básico. Es
mucho más potente y flexible que un simple escáner de puertos. La funcionalidad
de NMAP se puede ampliar mediante scripts NMAP. El motor de secuencias de comandos
NMAP es capaz de ejecutar secuencias de comandos que permiten la enumeración detallada
de objetivos y la recopilación de información. NMAP tiene alrededor de 600 scripts que
sirven para diferentes propósitos. En Kali Linux, los scripts se pueden encontrar en /usr/
share/nmap/scripts. La siguiente sección discutirá cómo puede usar scripts NMAP para enumerar
varios servicios TCP.

Enumeración HTTP
HTTP es un servicio común que se encuentra en muchos hosts. Se ejecuta en el puerto
80 de forma predeterminada. NMAP tiene un script para enumerar servicios HTTP. Se
puede invocar usando el comando nmap –script http­enum <IP de destino

20
Machine Translated by Google

Capítulo 1 Introducción a NMAP

dirección>. La Figura 1­17 muestra el resultado del script http­enum. Muestra


varios directorios interesantes alojados en el servidor web que pueden resultar
útiles para desarrollar más ataques.

Figura 1­17. Salida del script NMAP http­enum ejecutado contra la


dirección IP de destino

21
Machine Translated by Google

Capítulo 1 Introducción a NMAP

Métodos HTTP
HTTP admite el uso de varios métodos como GET, POST, DELETE, etc. A
veces, estos métodos se dejan abiertos en el servidor web innecesariamente.
Puede utilizar los métodos http del script NMAP, como se muestra en la Figura
1­18, para enumerar los métodos HTTP permitidos en el sistema de destino.

Figura 1­18. Salida de métodos http del script NMAP ejecutados contra una
dirección IP de destino

22
Machine Translated by Google

Capítulo 1 Introducción a NMAP

Los siguientes son algunos scripts NMAP adicionales para la enumeración HTTP:

• título http

• manipulación del método http

• seguimiento http

• búsqueda http

• http­wordpress­enum

• http­devframework

• Biblioteca http NSE

Enumeración de PYMES

Server Message Block (SMB) es un protocolo ampliamente utilizado para compartir


archivos en red. SMB normalmente se ejecuta en el puerto 445. Por lo tanto, si encuentra
un destino con el puerto 445 abierto, lo enumera con más detalle utilizando scripts NMAP.
puede invocar la enumeración SMB utilizando el comando nmap ­p 445 –script­smb­os­
discovery <dirección IP de destino>. El parámetro ­p 445 activa la secuencia de comandos
para que se ejecute en el puerto 445 del destino. La salida del script que se muestra en la Figura 1­19
le dará la versión SMB exacta, el sistema operativo utilizado y el nombre NetBIOS.

Figura 1­19. Salida del script NMAP smb­os­discovery ejecutado


contra una dirección IP de destino

23
Machine Translated by Google

Capítulo 1 Introducción a NMAP

Otro script NMAP útil es smb­enum­shares, como se muestra en la Figura 1­20.


Enumera todos los recursos compartidos SMB en el sistema de destino.

Figura 1­20. Salida del script NMAP smb­enum­shares ejecutado


contra la dirección IP de destino

Los siguientes son algunos scripts NMAP adicionales para la enumeración SMB:

• smb­vuln­ms17­010

• protocolos smb

• smb­mbenum

• usuarios­enum­smb

24
Machine Translated by Google

Capítulo 1 Introducción a NMAP

• procesos­enum­smb

• servicios­enum­smb

Enumeración DNS

De hecho, el sistema de nombres de dominio es la columna vertebral de Internet, ya


que realiza la tarea crucial de traducir los nombres de host a direcciones IP y
viceversa. Se ejecuta en el puerto 53 de forma predeterminada. Enumerar un servidor
DNS puede brindar mucha información interesante y útil. NMAP tiene varios scripts
para enumerar un servicio DNS. La Figura 1­21 muestra una enumeración de un servidor
DNS que revela los detalles de su versión.

Figura 1­21. Salida de la enumeración DNS ejecutada contra una dirección IP de


destino

25
Machine Translated by Google

Capítulo 1 Introducción a NMAP

Los siguientes son algunos scripts NMAP adicionales para la enumeración de DNS:

• dns­cache­snoop

• descubrimiento­de­servicio­dns

• recursividad dns

• dns­bruto

• transferencia­de­zona­dns

• dns­nsid

• dns­nsec­enum

• DNS­fuzz

• dns­srv­enum

Enumeración FTP
El Protocolo de transferencia de archivos (FTP) es el protocolo más utilizado para
transferir archivos entre sistemas. Se ejecuta en el puerto 21 de forma predeterminada.
NMAP tiene varios scripts para enumerar el servicio FTP. La Figura 1­22 muestra el
resultado de dos scripts.

• sistema ftp

• ftp­anón

El resultado muestra los detalles de la versión del servidor FTP y revela que el
El servidor acepta conexiones anónimas.

26
Machine Translated by Google

Capítulo 1 Introducción a NMAP

Figura 1­22. Salida de scripts NMAP ftp­syst y ftp­anon ejecutados contra


una dirección IP de destino

Dado que el objetivo ejecuta el servidor vsftpd, puede probar con otro NMAP
script, que comprobará si el servidor FTP es vulnerable. Se puede utilizar el
script ftp­vsftpd­backdoor, como se muestra en la Figura 1­23.

27
Machine Translated by Google

Capítulo 1 Introducción a NMAP

Figura 1­23. Salida del script NMAP ftp­vsftpd­backdoor ejecutado


contra una dirección IP de destino

El resultado muestra que el servidor FTP es vulnerable; Aprenderá cómo


explotarlo más adelante en este libro.
Los siguientes son algunos scripts NMAP adicionales para la enumeración FTP:

• ftp­bruto
• ftp NSE
• rebote ftp
• ftp­vuln­cve2010­4221
• ftp­libopie
28
Machine Translated by Google

Capítulo 1 Introducción a NMAP

Enumeración MySQL
MySQL es uno de los sistemas de gestión de bases de datos relacionales de
código abierto más populares. Se ejecuta en el puerto 3306 de forma predeterminada.
NMAP tiene scripts para enumerar el servicio MySQL. Enumerar un servicio MySQL
puede revelar mucha información potencial que podría usarse para atacar la base de
datos de destino. La Figura 1­24 muestra el resultado del script mysql­info. Muestra los
detalles de la versión del protocolo, las capacidades del servidor y el valor de sal en uso.

Figura 1­24. Salida del script NMAP mysql­info ejecutado contra una
dirección IP de destino

Los siguientes son algunos scripts NMAP adicionales para la enumeración de MySQL:

• bases de datos mysql

• enumeración mysql

• mysql­bruto

• consulta mysql

• mysql­contraseña­vacía

• mysql­vuln­cve2012­2122

• usuarios de mysql

• variables mysql

29
Machine Translated by Google

Capítulo 1 Introducción a NMAP

Enumeración SSH
El protocolo Secure Shell (SSH) se utiliza ampliamente para inicios de sesión y
administración remotos seguros. A diferencia de Telnet, SSH cifra el tráfico, haciendo
que la comunicación sea segura. Se ejecuta en el puerto 22 de forma predeterminada.
NMAP tiene scripts para enumerar el servicio SSH. La Figura 1­25 muestra el resultado
del script ssh2­enum­algos. Enumera los diferentes algoritmos de cifrado admitidos por
el servidor SSH de destino.

Figura 1­25. Salida del script NMAP ssh2­enum­algos ejecutado


contra una dirección IP de destino

30
Machine Translated by Google

Capítulo 1 Introducción a NMAP

Los siguientes son algunos scripts NMAP adicionales para la enumeración SSH:

• ssh­bruto

• métodos de autenticación ssh

• ejecución ssh

• clave de host ssh

• sshv1

• aceptación de clave pública ssh

Enumeración SMTP
El Protocolo simple de transferencia de correo (SMTP) se utiliza para la
transmisión de correo electrónico. Se ejecuta en el puerto 25 de forma
predeterminada. NMAP tiene varios scripts para enumerar el servicio SMTP.
Estos scripts NMAP podrían revelar varias debilidades en el servidor SMTP, como
retransmisiones abiertas, aceptación de comandos arbitrarios, etc. La Figura 1­26
muestra el resultado del script smtp­commands. Enumera varios comandos que
acepta el servidor SMTP de destino.

31
Machine Translated by Google

Capítulo 1 Introducción a NMAP

Figura 1­26. Salida de comandos smtp del script NMAP ejecutados


contra una dirección IP de destino

Muchos servidores SMTP habilitan por error la retransmisión abierta. Esto permite a cualquiera
para conectarse al servidor SMTP sin autenticación y enviar correos electrónicos.

De hecho, este es un defecto crítico. NMAP tiene un script llamado smtp­open­relay

que verifica si el servidor SMTP de destino permite retransmisiones abiertas, como se

muestra en la Figura 1­27.

32
Machine Translated by Google

Capítulo 1 Introducción a NMAP

Figura 1­27. Salida del script NMAP smtp­open­relay ejecutado


contra una dirección IP de destino

Los siguientes son algunos scripts NMAP adicionales para SMTP


enumeración:

• usuarios de enumeración smtp

• comandos smtp

• smtp­bruto

• información smtp­ntlm

• SMTP­puerto extraño

• smtp­vuln­cve2011­1764

33
Machine Translated by Google

Capítulo 1 Introducción a NMAP

Enumeración VNC
El protocolo Virtual Network Computing (VNC) se utiliza comúnmente para
compartir escritorios gráficos remotos. Se ejecuta en el puerto 5900 de forma
predeterminada. NMAP tiene varios scripts para enumerar el servicio VNC. La Figura
1­28 muestra el resultado del script vnc­info. Muestra los detalles de la versión del
protocolo junto con el tipo de autenticación.

Figura 1­28. Salida del script NMAP vnc­info ejecutado contra una
dirección IP de destino

34
Machine Translated by Google

Capítulo 1 Introducción a NMAP

Los siguientes son algunos scripts NMAP adicionales para VNC


enumeración:

• vnc­bruto

• omisión de autenticación realvnc

• título­vnc

Agarrar banners de servicio


Cualquier servicio que se ejecute en un sistema suele tener un banner asociado.
Un banner normalmente contiene información sobre la versión del servidor e incluso
puede contener información específica de la organización, como exenciones de
responsabilidad, advertencias o algunas direcciones de correo electrónico corporativas.
Sin duda, vale la pena utilizar banners de servicios para obtener más información sobre el
objetivo. El banner del script NMAP sondea todos los servicios que se ejecutan en el destino
y toma sus banners, como se muestra en la Figura 1­29.

35
Machine Translated by Google

Capítulo 1 Introducción a NMAP

Figura 1­29. Salida del banner del script NMAP ejecutado contra una
dirección IP de destino

Detectar vulnerabilidades
Hasta ahora, ha visto las capacidades NMAP de escaneo y enumeración
de puertos. Ahora verá cómo se puede utilizar NMAP para realizar
evaluaciones de vulnerabilidad. Aunque no es tan completo como los escáneres
de vulnerabilidades como Nessus y OpenVAS, NMAP ciertamente puede
realizar una detección básica de vulnerabilidades. NMAP hace esto con la
ayuda de ID de exposición y vulnerabilidades comunes (CVE). Busca
CVE coincidentes con los servicios que se ejecutan en el objetivo. Para convertir NMAP en

36
Machine Translated by Google

Capítulo 1 Introducción a NMAP

un escáner de vulnerabilidades, primero debe descargar e instalar algunos


scripts adicionales. La Figura 1­30 muestra la instalación de los scripts necesarios.
Primero navega al directorio /usr/share/nmap/scripts y luego clona dos directorios
git, como se muestra aquí:

• https://github.com/vulnersCom/nmap­vulners.git

• https://github.com/scipag/vulscan.git

Figura 1­30. Git clonando vulnerabilidades de nmap en el directorio local

Una vez que haya descargado los scripts necesarios, estará listo para
ejecutarlos en el objetivo. Puedes usar el comando nmap ­sV –
script nmap­vulners <dirección IP de destino>, como se muestra en la Figura 1­31.

37
Machine Translated by Google

Capítulo 1 Introducción a NMAP

Figura 1­31. Salida del script NMAP nmap­vulners ejecutado contra una
dirección IP de destino

Curiosamente, puede ver que hay muchos CVE disponibles para ISC BIND
9.4.2 que se ejecuta en el puerto TCP 53. Esta información de CVE se puede utilizar
para explotar aún más el objetivo. También puede ver varios CVE para el puerto TCP
80 ejecutando el servidor Apache httpd 2.2.8, como se muestra en la Figura 1­32.

38
Machine Translated by Google

Capítulo 1 Introducción a NMAP

Figura 1­32. Salida del script NMAP nmap­vulners ejecutado contra una
dirección IP de destino

39
Machine Translated by Google

Capítulo 1 Introducción a NMAP

Salida NMAP
Hasta ahora, ha escaneado varias funciones útiles de NMAP. Es importante tener en cuenta que

el resultado producido por NMAP se puede utilizar para muchas otras herramientas y productos de

seguridad. Por lo tanto, debe conocer los diferentes formatos de salida que NMAP es capaz de

producir, como se muestran aquí:

Cambiar Ejemplo Descripción

­en nmap 192.168.25.129 ­en Realiza un escaneo en una dirección IP de

salida.txt destino y luego escribe la salida normal en el

archivo salida.txt

­buey nmap 192.168.25.129 ­oX Realiza un escaneo en una dirección IP de

salida.xml destino y luego escribe la salida normal en

el archivo XML output.xml

­oG nmap 192.168.25.129 ­oG Realiza un escaneo en una dirección IP de

salida.grep destino y luego escribe la salida greppable en

el archivo output.grep

­­añadir­ nmap 192.168.25.129 ­oN Realiza un escaneo en una dirección IP de destino

salida archivo.archivo y luego agrega el resultado del escaneo a un

­­añadir­salida archivo de escaneo anterior

NMAP y Python
A lo largo de este capítulo, ha visto numerosas capacidades de NMAP y cómo NMAP se puede

utilizar de manera efectiva para la recopilación, enumeración y escaneo activo de

información. NMAP también puede invocarse y ejecutarse desde varios lenguajes de

programación, lo que lo hace aún más potente. Python es un lenguaje de programación

interpretado de alto nivel para programación de propósito general. De hecho, Python es fácil

de usar y extremadamente flexible. Tiene un rico conjunto de bibliotecas listas para usar para

realizar

40
Machine Translated by Google

Capítulo 1 Introducción a NMAP

diversas tareas. Entrar en detalles sobre los conceptos básicos y la sintaxis del
lenguaje Python está fuera del alcance de este libro. Suponiendo que tenga algunos
conocimientos básicos sobre Python, esta sección discutirá cómo puede usar Python.
para invocar y automatizar escaneos NMAP.

Python se instala de forma predeterminada en la mayoría de los sistemas basados en Unix. Sin embargo,

debe instalar la biblioteca NMAP por separado. En sistemas basados en Debian,


simplemente puede usar el comando pip install python­nmap, como se muestra en la
Figura 1­33. El comando instalará la biblioteca NMAP requerida.

Figura 1­33. Instalación de la biblioteca python­nmap en un sistema basado en


Debian

Ahora que ha instalado la biblioteca NMAP requerida, inicie el


Intérprete de Python desde la terminal escribiendo el comando python e importe la
biblioteca NMAP, como se muestra aquí:

raíz@kali:~# pitón
Python 2.7.14+ (predeterminado, 5 de diciembre de 2017, 15:17:02)
[GCC 7.2.0] en Linux2
Escriba "ayuda", "derechos de autor", "créditos" o "licencia" para obtener más
información.

41
Machine Translated by Google

Capítulo 1 Introducción a NMAP

>>> importar mapa nm


>>>

Ahora puede crear un nuevo objeto llamado nmp para invocar PortScanner
función. Luego inicie una nueva exploración para la dirección IP de destino 127.0.0.1 y los
puertos del 1 al 50, como se muestra aquí:

>>> nmp = nmap.PortScanner()


>>> nmp.scan('127.0.0.1', '1­50')

El escaneo se completa y le brinda el siguiente resultado:

{'nmap': {'scanstats': {'uphosts': '1', 'timestr': 'viernes 21 de septiembre 14:02:19 2018',


'downhosts': '0', 'totalhosts': '1' , 'elapsed': '1.06'}, 'scaninfo': {'tcp': {'services':

'1­50', 'method': 'syn'}}, 'command_line': 'nmap ­oX ­ ­ p 1­50 ­sV 127.0.0.1'}, 'scan':
{'127.0.0.1': {'status': {'state': 'up', 'reason': 'localhost­response'}, 'nombres de host ':
[{'tipo': 'PTR', 'nombre': 'localhost'}], 'proveedor': {}, 'direcciones': {'ipv4': '127.0.0.1'}, 'tcp':
{ 22: {'producto': 'OpenSSH', 'estado': 'abierto', 'versión': '7.7p1 Debian 4', 'nombre': 'ssh',
'conf': '10', 'extrainfo': 'protocolo 2.0', 'razón': 'syn­ack', 'cpe': 'cpe:/o:linux:linux_kernel'}}}}}

Aunque el resultado anterior está sin formato, ciertamente se puede formatear usando
muchas de las funciones de Python. Una vez que haya ejecutado el análisis inicial, puede
explorar diferentes funciones para recuperar detalles específicos del análisis.

información de escaneo()

La función scaninfo() devuelve detalles del escaneo, como el método utilizado y el rango de
puertos analizados.

>>> nmp.scaninfo()
{'tcp': {'servicios': '1­1024', 'método': 'syn'}}

42
Machine Translated by Google

Capítulo 1 Introducción a NMAP

todos_hosts()

La función all_hosts() devuelve la lista de todas las direcciones IP escaneadas.

>>> nmp.all_hosts()
['192.168.25.129']

estado()

La función state() devuelve el estado de la IP/host escaneado, por ejemplo, si


está activo o inactivo.

>>> nmp['192.168.25.129'].state() 'arriba'

llaves()

La función key() devuelve una lista de todos los puertos abiertos encontrados durante el escaneo.

>>> nmp['192.168.25.129']['tcp'].keys() [512, 513,


514, 139, 111, 80, 53, 22, 23, 25, 445, 21]

has_tcp()

La función has_tcp() comprueba si un puerto en particular se encontró abierto


durante el escaneo en la dirección IP de destino.

>>> nmp['192.168.25.129'].has_tcp(22)
Verdadero

línea de comando()

La función command_line() devuelve el comando NMAP exacto que se ejecutó en


segundo plano para producir el resultado.

>>> nmp.command_line()
'nmap ­oX ­ ­p 1­50 ­sV 127.0.0.1'

43
Machine Translated by Google

Capítulo 1 Introducción a NMAP

nombre de host()

La función hostname() devuelve el nombre de host de la dirección IP que pasa como


argumento.

>>> nmp['127.0.0.1'].nombre de host()


'host local'

todos_protocolos()

La función all_protocols devuelve la lista de protocolos admitidos por la dirección IP de


destino.

>>> nmp['127.0.0.1'].todos_protocolos()
['tcp']

Ahora que conoce las funciones básicas para invocar NMAP desde Python, puede
escribir un código Python simple que utilice un bucle para escanear múltiples direcciones
IP. Luego puede utilizar varias funciones de procesamiento de texto para limpiar y
formatear la salida.

Resumen
En este capítulo, aprendió sobre los conceptos de evaluación de vulnerabilidades y pruebas
de penetración. Ahora comprende las diferentes fases del ciclo de vida de las pruebas
de penetración y la importancia de NMAP, OpenVAS y Metasploit, que son capaces de
realizar la mayoría de las tareas en todas las fases del ciclo de vida de las pruebas de
penetración.
Este capítulo le informó sobre los conceptos básicos y esenciales de la herramienta
NMAP y le brindó información sobre cómo se pueden ampliar las capacidades de NMAP
mediante scripts. El capítulo también aborda la integración de NMAP con secuencias de
comandos Python.

44
Machine Translated by Google

Capítulo 1 Introducción a NMAP

Ejercicios de bricolaje (hágalo usted mismo)

• Instale NMAP en Windows y Ubuntu.

• Realice un escaneo UDP en un sistema de destino usando la


línea de comando NMAP.

• Utilice NMAP para detectar el sistema operativo en el objetivo


sistema.

• Utilice un análisis intenso NMAP en un sistema de destino.

• Utilice varios scripts NMAP para enumerar servicios en


un sistema objetivo.

• Escriba código Python que escanee de 1 a 500 puertos en un


objetivo del sistema.

45
Machine Translated by Google

CAPITULO 2

OpenVAS
En el capítulo anterior, aprendió sobre NMAP y sus capacidades.
En este capítulo, aprenderá cómo se puede utilizar OpenVAS para realizar evaluaciones
de vulnerabilidad. Específicamente, este capítulo cubre lo siguiente:

• Introducción a OpenVAS

• Configuración de OpenVAS

• Importación de resultados NMAP a OpenVAS

• Exploración de vulnerabilidades

• Informes

Nota El propósito de OpenVAS se limita al escaneo de vulnerabilidades, a


diferencia de NMAP y Metasploit, que son capaces de hacer muchas más
cosas. Desde esta perspectiva, todas las tareas esenciales de OpenVAS
se tratan en este capítulo. Esto lo preparará para la integración de
OpenVAS con Metasploit en el próximo capítulo, donde comienza la
verdadera diversión.

© Sagar Rahalkar 2019 47


S. Rahalkar, Guía de inicio rápido para pruebas de
penetración, https://doi.org/10.1007/978­1­4842­4270­4_2
Machine Translated by Google

Capítulo 2 OpenVAS

Introducción a OpenVAS
En el capítulo anterior, aprendiste sobre NMAP. NMAP es una herramienta que es
mucho más que un simple escáner de puertos. Por ejemplo, utilizó NMAP para la
detección de vulnerabilidades. Sin embargo, tiene ciertas limitaciones. NMAP detecta
principalmente sólo CVE conocidos limitados. Por lo tanto, ciertamente necesita
una mejor solución para realizar una evaluación de vulnerabilidad. Estas son algunas
de las opciones populares:

• Neso

• Nexponer

• QualysGuard

• OpenVAS

Estos productos están maduros y se utilizan ampliamente en la industria.


Para el alcance de este libro, aprenderá sobre la plataforma OpenVAS. Es
gratuito para uso comunitario y ofrece muchas funciones útiles.
OpenVAS es una abreviatura de Open Vulnerability Assessment
Sistema. No es solo una herramienta, sino un marco completo que consta de
varios servicios y herramientas, que ofrece una solución integral y poderosa
de escaneo y gestión de vulnerabilidades.
Al igual que una solución antivirus tiene firmas para detectar malwares conocidos,
OpenVAS tiene un conjunto de pruebas de vulnerabilidad de red (NVT).
Las NVT se llevan a cabo mediante complementos, que se desarrollan
utilizando el código Nessus Attack Scripting Language (NASL). Hay más de
50.000 NVT en OpenVAS y periódicamente se agregan nuevos NVT.

48
Machine Translated by Google

Capítulo 2 OpenVAS

Instalación
OpenVAS viene con múltiples opciones de instalación, incluido el contenedor Docker. Se

puede instalar en varios sistemas operativos. Sin embargo, la forma más fácil y rápida de

comenzar con OpenVAS es descargar el dispositivo virtual OpenVAS. La imagen ISO del

dispositivo virtual OpenVAS se puede descargar desde https://www.greenbone.net/en/

install_use_gce/.

El beneficio de utilizar este dispositivo virtual es que ya tiene todos los

dependencias en su lugar y todo configurado. Todo lo que necesita hacer es descargar la

imagen ISO, iniciarla en VMware/VirtualBox y configurar algunas cosas básicas, y OpenVAS estará

operativo en poco tiempo.

Una vez que inicie el ISO descargado, puede comenzar seleccionando la opción Configuración,

como se muestra en la Figura 2­1.

Figura 2­1. Pantalla de instalación inicial de OpenVAS VM

Luego se inicia la configuración, como se muestra en la Figura 2­2.

49
Machine Translated by Google

Capítulo 2 OpenVAS

Figura 2­2. Instalación y configuración de OpenVAS

Ahora necesita crear un nuevo usuario que utilizará con fines administrativos,

como se muestra en la Figura 2­3.

Figura 2­3. Configurar un usuario para el administrador de OpenVAS

Luego establece una contraseña para el usuario recién creado, como se muestra en

Figura 2­4.

50
Machine Translated by Google

Capítulo 2 OpenVAS

Figura 2­4. Configurar una contraseña para el administrador de OpenVAS


usuario

Una vez que haya configurado las credenciales administrativas, la


instalación se reinicia y se le presenta el menú de inicio, como se muestra en la Figura 2­5.

Figura 2­5. Menú de inicio de OpenVAS

51
Machine Translated by Google

Capítulo 2 OpenVAS

A continuación, verá la consola de línea de comandos, como se muestra en la Figura 2­6,


donde deberá ingresar las credenciales previamente configuradas.

Figura 2­6. Consola de línea de comandos de máquina virtual OpenVAS

Puede ver que la configuración de OpenVAS está completa y su interfaz web está

disponible en http://192.168.25.136. Puede intentar acceder a la interfaz web, como se muestra


en la Figura 2­7.

Figura 2­7. Interfaz web OpenVAS con campos de inicio de sesión

52
Machine Translated by Google

Capítulo 2 OpenVAS

Mientras tanto, debe iniciar el sistema operativo y realizar algunos cambios de configuración

adicionales, como se muestra en la Figura 2­8.

Figura 2­8. Configuración de OpenVAS y configuración de usuario

Debe crear un nuevo usuario administrador y configurar el nombre de usuario y

contraseña, como se muestra en la Figura 2­9.

53
Machine Translated by Google

Capítulo 2 OpenVAS

Figura 2­9. Configuración de usuario de la máquina virtual OpenVAS

La versión de OpenVAS que está utilizando es la edición comunitaria y


no requiere ninguna clave. Sin embargo, si desea utilizar la versión comercial,
deberá ingresar la clave de suscripción. Por ahora, puede omitir este paso,
como se muestra en la Figura 2­10.

Figura 2­10. Pantalla de carga de clave de suscripción OpenVAS

54
Machine Translated by Google

Capítulo 2 OpenVAS

Administración OpenVAS
En la sección anterior, vio cómo configurar OpenVAS descargando la configuración de
la máquina virtual lista para usar. Ahora, antes de pasar a la parte de escaneo real, necesita
configurar algunas cosas como parte de la administración.

Actualización de feeds

Los feeds son un componente absolutamente esencial de OpenVAS. Si su


configuración de OpenVAS tiene fuentes antiguas, es posible que no pueda detectar
las vulnerabilidades más recientes. Por lo tanto, es fundamental contar con las últimas
fuentes antes de iniciar cualquier análisis. Para verificar la versión actual del feed, vaya a
Extras Estado del feed, como se muestra en la Figura 2­11. Puede ver que los feeds no
se han actualizado durante 54 días.

Figura 2­11. Estado del feed OpenVAS, con feeds desactualizados

Para actualizar los feeds, puede ir a la terminal y escribir el comando openvas­


feed­update, como se muestra en la Figura 2­12. Solo asegúrese de tener una conexión
a Internet activa para actualizar los feeds.

55
Machine Translated by Google

Capítulo 2 OpenVAS

Figura 2­12. Actualización de los feeds de vulnerabilidades de OpenVAS

La actualización del feed tardará algún tiempo; Una vez hecho esto, puede volver a
ir a la interfaz web de OpenVAS y verificar el estado de la fuente. Ahora debería ver que
el estado de la alimentación es actual, como se muestra en la Figura 2­13.

56
Machine Translated by Google

Capítulo 2 OpenVAS

Figura 2­13. Estado del feed OpenVAS, actualizado

Gestión de usuarios
OpenVAS funciona en una arquitectura cliente­servidor, donde varios usuarios
pueden conectarse a un servidor centralizado. Por tanto, es importante crear y
gestionar usuarios y grupos. Antes de crear usuarios, debe tener algunos grupos
de usuarios implementados. Para crear nuevos grupos de usuarios de OpenVAS,
vaya a Administración Grupos, como se muestra en la Figura 2­14.

Figura 2­14. Consola de gestión de usuarios OpenVAS

Una vez que haya creado y configurado los grupos requeridos, puede crear
nuevos usuarios y asignarlos a grupos específicos según sus niveles de privilegio.
Para crear un nuevo usuario, vaya a Administración Usuarios, como se muestra
en la Figura 2­15.

57
Machine Translated by Google

Capítulo 2 OpenVAS

Figura 2­15. Agregar nuevos usuarios a OpenVAS

Si bien OpenVAS le permite crear y administrar usuarios localmente, también


le permite conectarse con el Protocolo ligero de acceso a directorios (LDAP) para
una administración de usuarios centralizada. Es posible configurar los ajustes
de LDAP yendo a Administración LDAP, como se muestra en la Figura 2­16.

Figura 2­16. Configuración de OpenVAS para autenticación LDAP

58
Machine Translated by Google

Capítulo 2 OpenVAS

De manera similar, OpenVAS también se puede configurar para autenticarse en el


servidor RADIUS. Se puede hacer configurando los ajustes del servidor RADIUS en
Administración RADIUS, como se muestra en la Figura 2­17.

Figura 2­17. Configuración de OpenVAS para autenticación RADIUS

Panel
OpenVAS tiene un panel completo que es su página de inicio de forma
predeterminada. El panel ofrece una vista centralizada de tareas, hosts, NVT, etc.,
como se muestra en la Figura 2­18. Cada grupo demográfico se puede exportar en formato CSV.

Figura 2­18. Panel OpenVAS con datos demográficos

59
Machine Translated by Google

Capítulo 2 OpenVAS

Programador

En un entorno empresarial, puede suceder que sea necesario ejecutar análisis después
del horario comercial. En tal escenario, el programador OpenVAS puede resultar útil.
Se puede acceder al programador en Configuración Programaciones y se puede
utilizar para activar análisis en un momento específico, como se muestra en la Figura 2­19.

Figura 2­19. Programador de escaneo OpenVAS

Bote de basura

Si elimina alguna de las entidades en OpenVAS y luego necesita recuperarla, es


posible recuperarla a través de la papelera. Puede acceder a él en Extras Papelera,
como se muestra en la Figura 2­20.

60
Machine Translated by Google

Capítulo 2 OpenVAS

Figura 2­20. Papelera OpenVAS para ver y restaurar elementos eliminados

Ayuda

Aunque la mayoría de las tareas en OpenVAS son simples y fáciles de encontrar, puede

suceder que necesites ayuda con ciertos temas. OpenVAS tiene documentación de ayuda

completa a la que puede acceder en Ayuda

Contenido, como se muestra en la Figura 2­21.

61
Machine Translated by Google

Capítulo 2 OpenVAS

Figura 2­21. Contenido de ayuda de OpenVAS

Escaneo de vulnerabilidades
Ahora que tiene OpenVAS configurado y ejecutándose con fuentes actualizadas, puede
comenzar a escanear un objetivo en vivo. Aquí, primero intentará escanear un
sistema Linux. Inicie sesión en la interfaz web de OpenVAS, como se muestra en la Figura 2­22.

Figura 2­22. Página de inicio de sesión de OpenVAS

62
Machine Translated by Google

Capítulo 2 OpenVAS

El siguiente paso es crear una nueva tarea de escaneo. Para crear una nueva tarea de análisis,

vaya a Escaneos Tareas, como se muestra en la Figura 2­23.

Figura 2­23. Panel de control OpenVAS y asistente de tareas

Ahora puede optar por iniciar un asistente de tareas simple o utilizar un asistente de tareas

avanzado que ofrece más flexibilidad de escaneo. Por ahora, comenzará con el asistente de tareas

simples, como se muestra en la Figura 2­24. Todo lo que necesita hacer es ingresar la dirección IP de

destino y hacer clic en Iniciar escaneo.

63
Machine Translated by Google

Capítulo 2 OpenVAS

Figura 2­24. Iniciando un nuevo análisis de vulnerabilidad en OpenVAS

Tenga en cuenta que OpenVAS tiene varios perfiles de escaneo predefinidos. Dependiente

Según el requisito específico, puede elegir uno de los siguientes perfiles de escaneo:

• Descubrimiento

• Completo y Rápido

• Lo último completo y rápido

• Completo y muy profundo

• Ultimate completo y muy profundo

• Descubrimiento de host

• Descubrimiento del sistema

Para el escaneo predeterminado, se selecciona el perfil Completo y Rápido.

64
Machine Translated by Google

Capítulo 2 OpenVAS

El análisis se inicia y podrá ver que el estado del análisis está configurado en En ejecución, como se muestra

en la Figura 2­25. La pestaña de acción del análisis proporciona varias formas de pausar y reanudar el análisis si es necesario.

Figura 2­25. Panel de estado de tareas de OpenVAS

Una vez que se completa el análisis, puede ir a Análisis Resultados para ver las vulnerabilidades identificadas

durante el análisis, como se muestra en la Figura 2­26. Ahora que el escaneo está completo, simplemente puede ver los

resultados del escaneo en la consola web de OpenVAS o descargar un informe completo en el formato que elija.

Figura 2­26. Resultados del escaneo OpenVAS


sesenta y cinco
Machine Translated by Google

Capítulo 2 OpenVAS

También es posible filtrar los resultados de vulnerabilidad. Por ejemplo, es posible que desee

ver sólo las vulnerabilidades relacionadas con HTTP. Simplemente vaya a Escaneos Resultados

y en la pestaña Filtro, ingrese los criterios de filtro, como se muestra en la Figura 2­27.

Figura 2­27. Resultados y filtros del escaneo OpenVAS

Configuraciones adicionales de OpenVAS

Hasta ahora ha visto cómo configurar la máquina virtual OpenVAS y comenzar con el escaneo

de vulnerabilidades. OpenVAS es un sistema de gestión de vulnerabilidades flexible que

ofrece mucha personalización. Esta sección habla sobre algunas configuraciones adicionales

de OpenVAS que puede elegir configurar según sus requisitos.

Actuación
OpenVAS es sin duda una herramienta que consume muchos recursos. Puede consumir

mucha memoria y CPU. Por lo tanto, al escanear varios sistemas, vale la pena vigilar su

rendimiento. Para ver los datos de rendimiento, vaya a Extras Rendimiento, como se

muestra en la Figura 2­28. Puede ver los datos de rendimiento para un período de tiempo

personalizado filtrando las fechas.

66
Machine Translated by Google

Capítulo 2 OpenVAS

Figura 2­28. Resumen de gestión de rendimiento y recursos de OpenVAS

Calculadora CVSS
El Sistema Común de Puntuación de Vulnerabilidad (CVSS) es la base utilizada
por muchos productos de seguridad para calcular la gravedad de una vulnerabilidad.
CVSS toma en consideración múltiples parámetros antes de calcular la
puntuación de vulnerabilidad. OpenVAS ofrece una calculadora CVSS lista para
usar que puede utilizar para calcular puntuaciones de vulnerabilidad. Puede
acceder a la calculadora CVSS en Extras Calculadora CVSS, como se muestra
en la Figura 2­29. Puede encontrar más detalles sobre CVSS en https://www.first.org/cvss/.

67
Machine Translated by Google

Capítulo 2 OpenVAS

Figura 2­29. Calculadora OpenVAS CVSS

Ajustes
OpenVAS es un sistema altamente configurable y tiene muchas configuraciones. Puede resultar

realmente útil obtener una descripción general de todas las configuraciones y sus valores en un solo

lugar. Puede ir a Extras Mi configuración, como se muestra en la Figura 2­30, para obtener una

descripción general de las configuraciones configuradas hasta el momento.

Figura 2­30. Configuración administrativa de OpenVAS

68
Machine Translated by Google

Capítulo 2 OpenVAS

Informes
Hasta ahora ha aprendido cómo puede utilizar OpenVAS de forma eficaz para
escanear sistemas de destino. Una vez que se completa el escaneo, el siguiente paso
importante es generar un informe detallado. Tener un informe completo es
extremadamente importante porque ayudará a los administradores a corregir las vulnerabilidades iden
OpenVAS admite múltiples formatos de informes, que se enumeran aquí:

• XML anónimo
• IRA

• CPE

• Anfitriones CSV

• Resultados CSV

•HTML

• ITG

• Látex

• NBE

• PDF

• Topología SVG
• TXT

• Verinice ISM

• Verinice ITG

• XML

Para generar un informe en el formato requerido, vaya a Escaneos Informes,


seleccione el formato en el menú desplegable y haga clic en la flecha hacia abajo
adyacente para descargar el informe, como se muestra en la Figura 2­31.

69
Machine Translated by Google

Capítulo 2 OpenVAS

Figura 2­31. Exportar resultados del escaneo

El informe contiene información detallada sobre vulnerabilidades, como se muestra


en la Figura 2­32.

Figura 2­32. Informe de escaneo HTML de OpenVAS

70
Machine Translated by Google

Capítulo 2 OpenVAS

Para cada vulnerabilidad identificada, el informe tiene los siguientes detalles:

• Resumen

• Resultado de la detección de vulnerabilidades

• Impacto

• Solución

• Software/SO afectado

• Información sobre vulnerabilidades

• Método de detección de vulnerabilidades

• Resultado de la detección del producto

• Referencias

Resumen
Este capítulo le brindó una descripción general esencial de OpenVAS, desde su
configuración hasta su uso para realizar una evaluación de vulnerabilidad. El próximo
capítulo le presentará el marco versátil de Metasploit y le ayudará a comprender
cómo se pueden integrar NMAP y OpenVAS con Metasploit.

Ejercicios de bricolaje (hágalo usted mismo)

• Configure OpenVAS en VirtualBox o VMware.

• Utilice OpenVAS para escanear un host Windows y un host Unix.


anfitrión basado.

• Generar informes de vulnerabilidad en HTML y PDF.

71
Machine Translated by Google

CAPÍTULO 3

metasploit
Los dos capítulos anteriores cubrieron NMAP y OpenVAS, que puede utilizar para realizar
recopilación de información, enumeración y evaluaciones de vulnerabilidad. En el futuro,
este capítulo cubre los conceptos básicos de Metasploit, que lo ayudarán a navegar por las
fases restantes del ciclo de vida de las pruebas de penetración. Específicamente, este
capítulo cubre lo siguiente:

• Introducción a Metasploit

• Descripción general de la estructura de Metasploit

• Comandos básicos y configuración

• Invocar escaneos NMAP y OpenVAS desde Metasploit

• Servicios de escaneo con Metasploit

• Conceptos básicos de Meterpreter

Introducción a Metasploit
Metasploit se lanzó en 2003, cuando HD Moore desarrolló una herramienta de red portátil
en Perl. En 2007 se revisó y utilizó Ruby. El proyecto Metasploit ganó aceptación
comercial y popularidad cuando Rapid 7 lo adquirió en 2009.

Metasploit no es solo una herramienta. Es un marco completo. Es extremadamente


robusto y flexible y tiene toneladas de herramientas para realizar diversas tareas simples
y complejas. Tiene una capacidad única para realizar casi todos los

© Sagar Rahalkar 2019 73


S. Rahalkar, Guía de inicio rápido para pruebas de
penetración, https://doi.org/10.1007/978­1­4842­4270­4_3
Machine Translated by Google

Capítulo 3 Metasploit

Tareas involucradas en el ciclo de vida de las pruebas de penetración. Al utilizar


Metasploit, no es necesario reinventar la rueda; simplemente se concentra en los
objetivos de las pruebas de penetración y todas las acciones de soporte se pueden
realizar utilizando varios componentes del marco.
Si bien Metasploit es poderoso y capaz, es necesario tener claramente
comprender su estructura y componentes para utilizarlo eficientemente.
Metasploit tiene tres ediciones disponibles.

• Metasploit Pro

• Comunidad Metasploit

• Marco Metasploit

Para el alcance de este libro, usaremos la edición Metasploit Framework.

Anatomía y estructura de Metasploit.


Antes de pasar a los comandos del marco real, primero debe comprender la
estructura de Metasploit. La mejor y más sencilla forma de conocer la estructura
general de Metasploit es simplemente navegar por su directorio. En Kali Linux,
Metasploit está ubicado de forma predeterminada en /usr/share/
metasploit­framework, como se muestra en la Figura 3­1.

74
Machine Translated by Google

Capítulo 3 Metasploit

Figura 3­1. La estructura del directorio Metasploit

Puedes ver que Metasploit tiene una estructura bien definida que clasifica sus
diversos componentes en diferentes categorías.
En un nivel alto, Metasploit se puede visualizar como se muestra en la Figura 3­2.

Figura 3­2. Varios componentes de Metasploit

75
Machine Translated by Google

Capítulo 3 Metasploit

Tropas auxiliares

Los auxiliares son los módulos que hacen que Metasploit sea tan flexible. Un auxiliar de Metasploit no es más

que un fragmento de código escrito específicamente para realizar una tarea. Por ejemplo, es posible que

desee comprobar si un servidor FTP en particular permite el acceso anónimo o si su servidor web es vulnerable

a un ataque Heartbleed. Para todas estas tareas existe un módulo auxiliar.

De hecho, Metasploit cuenta con más de 1.000 módulos auxiliares clasificados en 19 categorías. Las

siguientes son las categorías auxiliares disponibles en Metasploit:

Administración Analizar Bnat

Cliente Tractor Docx

dos Formato de archivo Fuzzers

Recolectar analizador Pdf

Escáner Servidor Oledor

Parodia Sqli voip

vsploit

Cargas útiles

Ya has aprendido que un exploit es el fragmento de código que se utilizará contra el componente

vulnerable. El código de explotación puede ejecutarse correctamente, pero lo que desea que suceda una

vez que la explotación sea exitosa está definido por la carga útil. En términos simples, una carga útil es la acción

que debe realizarse después de la ejecución de un exploit. Por ejemplo, si quieres

76
Machine Translated by Google

Capítulo 3 Metasploit

Para crear un shell inverso en su sistema, debe seleccionar la carga útil de Metasploit adecuada para

eso. Metasploit tiene alrededor de 42 cargas útiles en las siguientes categorías:

Individual Etapas Etapas

Hazañas

Los exploits son una parte extremadamente importante de Metasploit. El propósito del marco es ofrecer

exploits para diversas vulnerabilidades. Un exploit es el código real que se ejecutará en el sistema de destino

para aprovechar la vulnerabilidad. Metasploit tiene más de 1.800 exploits en 17 categorías.

Las siguientes son las diversas categorías de exploits disponibles en Metasploit:

Aix Androide manzana_ios

bsdi Marcar Firefox

librebsd Hpux Irix

linux Marco principal Multi

software de red osx Solaris

Unix ventanas

Codificadores

Metasploit te ayuda a generar una amplia variedad de cargas útiles que puedes enviar al objetivo de múltiples

maneras. En el proceso, es muy posible que su carga útil sea detectada por el software antivirus o

cualquiera de los programas de seguridad presentes en el sistema de destino. Aquí es donde los

codificadores pueden resultar de ayuda.

77
Machine Translated by Google

Capítulo 3 Metasploit

Los codificadores utilizan varias técnicas y algoritmos para ofuscar la carga útil de manera que no sea

detectada por el software antivirus. Metasploit tiene alrededor de 40 codificadores en diez categorías,

como se muestra aquí:

comando Genérico

Mipsbe Mipsle

PHP ppc

Rubí Sparc

X64 X86

Actividades Post­Explotación (Post)


Una vez que haya obtenido acceso básico a su sistema de destino utilizando cualquiera de los

exploits disponibles, puede utilizar los módulos de publicación para infiltrarse aún más en el sistema

de destino. Estos módulos lo ayudan en todas las actividades posteriores a la explotación,

incluidas las siguientes:

• Escalar privilegios de usuario a raíz o administrador

• Recuperar las credenciales del sistema

• Robar cookies y credenciales guardadas

• Captura de pulsaciones de teclas en el sistema de destino

• Ejecutar scripts de PowerShell personalizados para realizar


tareas adicionales

• Hacer que el acceso sea persistente

78
Machine Translated by Google

Capítulo 3 Metasploit

Metasploit tiene alrededor de 311 módulos post­explotación en las siguientes 11 categorías:

Aix Androide

cisco Firefox

Hardware de enebro

linux Multi

osx Solaris

ventanas

Comandos básicos y configuración


Ahora que conoce la estructura básica y la anatomía de Metasploit, puede comenzar con su

interfaz. Para acceder a Metasploit, abra la terminal y escriba el comando msfconsole, como

se muestra en la Figura 3­3.

79
Machine Translated by Google

Capítulo 3 Metasploit

Figura 3­3. La pantalla inicial de MSFconsole

ayuda

Una vez que haya abierto MSFconsole, puede obtener información sobre todos los
comandos básicos usando el comando de ayuda, como se muestra en la Figura 3­4.

80
Machine Translated by Google

Capítulo 3 Metasploit

Figura 3­4. La salida del comando de ayuda en MSFconsole

versión
Las vulnerabilidades se descubren rápidamente y el código de explotación
correspondiente suele publicarse poco después. Por lo tanto, es importante que
Metasploit esté actualizado y tenga el último conjunto de códigos de explotación. Para
asegurarse de que la versión del marco sea la más reciente, puede utilizar el
comando de versión, como se muestra en la Figura 3­5. Luego puede comparar
esta versión con la disponible en el repositorio Metasploit Git.

81
Machine Translated by Google

Capítulo 3 Metasploit

Figura 3­5. La salida del comando de versión en MSFconsole

conectar
Todos conocemos utilidades como Telnet, SSH y Netcat que nos ayudan en la
administración remota. Metasploit tiene una utilidad incorporada llamada connect que
puede usarse para establecer una conexión e interactuar con un sistema remoto. Admite
SSL, proxies, pivotación y transferencias de archivos. El comando de conexión necesita
una dirección IP y un puerto válidos para conectarse, como se muestra en la Figura 3­6.

Figura 3­6. La salida del comando de conexión en MSFconsole

82
Machine Translated by Google

Capítulo 3 Metasploit

historia
MSFconsole se opera completamente en la línea de comandos y, para cada tarea
a realizar, es necesario escribir algún comando. Para ver los comandos que ha
usado hasta ahora en MSFconsole, puede usar el comando de historial, como
se muestra en la Figura 3­7.

Figura 3­7. La salida del comando de historial en MSFconsole

83
Machine Translated by Google

Capítulo 3 Metasploit

configurar y configurar

Metasploit tiene algunas variables que deben configurarse antes de ejecutar cualquier
módulo o exploit. Estas variables son de dos tipos.

• Local: las variables locales son limitadas y válidas sólo para una única
instancia.

• Global: las variables globales, una vez definidas, son aplicables en


todo el marco y se pueden reutilizar en cualquier lugar.

requerido.

El comando set se utiliza para definir valores de variables locales, mientras que el

El comando setg se utiliza para definir valores de variables globales, como se muestra en
la Figura 3­8.

Figura 3­8. La salida de los comandos set y setg en MSFconsole

84
Machine Translated by Google

Capítulo 3 Metasploit

conseguir y conseguir

En la sección anterior, vio cómo establecer valores de variables locales y


globales. Una vez establecidos estos valores, puede verlos usando el método get
y getg, como se muestra en la Figura 3­9. El comando get recupera los valores de
las variables locales, mientras que el comando getg recupera los valores de las
variables globales.

Figura 3­9. La salida de los comandos get y getg en MSFconsole

desarmar y desarmar

El comando unset se usa para eliminar valores asignados a una variable local,
mientras que el comando unsetg se usa para eliminar valores asignados a una
variable global, como se muestra en la Figura 3­10.

85
Machine Translated by Google

Capítulo 3 Metasploit

Figura 3­10. La salida de los comandos unset y unsetg en MSFconsole

ahorrar

Mientras trabaja en un proyecto de pruebas de penetración, puede suceder que


configure muchas variables y configuraciones globales. Ciertamente no querrás
perder estas configuraciones; el comando guardar escribe la configuración actual en
un archivo, como se muestra en la Figura 3­11.

Figura 3­11. La salida del comando guardar en MSFconsole

86
Machine Translated by Google

Capítulo 3 Metasploit

información

Hay toneladas de módulos y complementos disponibles en Metasploit. Es imposible

conocerlos todos. Siempre que desee utilizar cualquier módulo, puede encontrar más detalles

al respecto utilizando el comando info, como se muestra en la Figura 3­12. Simplemente

proporcione el nombre del módulo como parámetro a la información.

comando para obtener sus detalles.

Figura 3­12. La salida del comando info en MSFconsole

irb

Metasploit está basado en Ruby. Ofrece un shell interactivo Ruby (irb) en el que puede

ejecutar su propio conjunto de comandos personalizados. Este módulo mejora las capacidades

posteriores a la explotación de Metasploit. Simplemente escribe

87
Machine Translated by Google

Capítulo 3 Metasploit

el comando irb, como se muestra en la Figura 3­13, para ingresar al shell irb. Para
obtener más información sobre la programación de Ruby, consulte https://www.ruby­lang.
org/en/.

Figura 3­13. La salida del comando irb en MSFconsole

espectáculo

En la parte inicial de este capítulo vio varios componentes de Metasploit, incluidos


auxiliares, exploits, cargas útiles, etc. usando el programa
comando, como se muestra en la Figura 3­14, puede enumerar el contenido de
cada categoría. Por ejemplo, puede utilizar el comando show auxiliar para enumerar
todos los módulos auxiliares disponibles dentro del marco.

Figura 3­14. La salida del comando show en MSFconsole


88
Machine Translated by Google

Capítulo 3 Metasploit

carrete

Ya vio el comando guardar, que escribe la configuración en un archivo. En un escenario


particular, es posible que desee guardar el resultado de todos los módulos y comandos
que ejecute. El comando spool, como se muestra en la Figura 3­15, registra toda la salida de
la consola en un archivo específico.

Figura 3­15. La salida del comando spool en MSFconsole

fabricante

La automatización juega un papel importante en cualquier marco. Siempre es útil automatizar


un montón de tareas repetitivas para ahorrar tiempo y esfuerzo. el creador
El comando, como se muestra en la Figura 3­16, le ayuda a automatizar las tareas de
Metasploit guardándolas como un script.

Figura 3­16. La salida del comando makerc en MSFconsole

89
Machine Translated by Google

Capítulo 3 Metasploit

db_iniciar
Considerando la naturaleza compleja de Metasploit, es trivial que deba existir
alguna base de datos que pueda usarse para almacenar los datos de la tarea.
Metasploit está integrado de forma predeterminada con la base de datos
PostgreSQL. Primero debe iniciar el servicio de base de datos ejecutando systemctl start postgresq
comando seguido del comando msfdb init, como se muestra en la Figura 3­17.

Figura 3­17. La salida de los comandos init systemctl y msfdb en la terminal

estado_bd
Una vez que haya inicializado la base de datos, puede confirmar que Metasploit
está conectado ejecutando el comando db_status en MSFconsole, como se
muestra en la Figura 3­18.

Figura 3­18. La salida del comando db_status en MSFconsole

90
Machine Translated by Google

Capítulo 3 Metasploit

espacio de trabajo

A veces, puede suceder que deba trabajar en varios proyectos de pruebas de


penetración simultáneamente. Ciertamente no querrás mezclar datos de varios proyectos.
Metasploit ofrece una gestión eficiente del espacio de trabajo. Para cada nuevo proyecto,
puede crear un nuevo espacio de trabajo y así restringir los datos del proyecto a ese
espacio de trabajo. El espacio de trabajo
El comando, como se muestra en la Figura 3­19, enumera los espacios de trabajo disponibles.
Puede crear un nuevo espacio de trabajo usando el comando workspace ­a <nombre>.

Figura 3­19. La salida del comando del espacio de trabajo en


MSFconsole

91
Machine Translated by Google

Capítulo 3 Metasploit

Invocar escaneos NMAP y OpenVAS


desde Metasploit
Esta sección presenta cómo puede invocar e iniciar análisis NMAP y OpenVAS
desde la consola Metasploit.

NMAP
Aprendió sobre NMAP anteriormente en este libro. Viste que NMAP puede ser

activada desde la interfaz de línea de comandos o la interfaz gráfica de usuario de ZENMAP.


Sin embargo, existe otra forma de iniciar análisis NMAP y es a través de la consola
Metasploit.
Puede resultar útil importar los resultados del análisis NMAP a Metasploit y
luego explotar aún más los servicios abiertos. Hay dos maneras de lograrlo.

• Importación de escaneos NMAP: usted sabe que NMAP tiene la


capacidad de generar y guardar resultados de escaneo en
formato XML. Simplemente puede importar la salida XML de NMAP
a Metasploit usando el comando db_import, como se muestra
en la Figura 3­20.

92
Machine Translated by Google

Capítulo 3 Metasploit

Figura 3­20. La salida de los comandos db_import y hosts en MSFconsole

• Invocar NMAP desde MSFconsole: Metasploit ofrece el


comando db_nmap, que se puede utilizar para iniciar
análisis NMAP directamente desde la consola Metasploit,
como se muestra en la Figura 3­21.

93
Machine Translated by Google

Capítulo 3 Metasploit

Figura 3­21. Invocar NMAP desde MSFconsole usando el comando db_nmap

Una vez que se completa el escaneo NMAP, puede usar el comando hosts para
asegurarse de que el escaneo esté completo y el objetivo se agregue a la base de datos de
Metasploit.

94
Machine Translated by Google

Capítulo 3 Metasploit

OpenVAS
Ya está familiarizado con OpenVAS porque vislumbró la mayoría de sus características en
capítulos anteriores. Sin embargo, Metasploit ofrece capacidades para integrar OpenVAS
para realizar tareas desde dentro del marco. Antes de poder realizar cualquiera de las
tareas de OpenVAS desde MSFconsole, debe cargar el complemento OpenVAS
ejecutando el comando cargar openvas, como se muestra en la Figura 3­22.

Figura 3­22. Cargando el complemento OpenVAS en MSFconsole

Una vez que OpenVAS está cargado en MSFconsole, existen numerosas tareas
que puede realizar. Puede utilizar el comando openvas_help, como se muestra en la
Figura 3­23, para enumerar todas las tareas posibles.

95
Machine Translated by Google

Capítulo 3 Metasploit

Figura 3­23. La salida del comando openvas_help en MSFconsole

El servidor OpenVAS puede estar ejecutándose localmente o en algún sistema


remoto. Debe conectarse al servidor OpenVAS usando el comando openvas_connect,
como se muestra en la Figura 3­24. Debe proporcionar un nombre de usuario,
contraseña, IP del servidor OpenVAS y puerto como parámetros para este comando.

96
Machine Translated by Google

Capítulo 3 Metasploit

Figura 3­24. Conexión al servidor OpenVAS usando openvas_


comando de conexión en MSFconsole

Una vez que la conexión al servidor OpenVAS sea exitosa, deberá crear un nuevo

destino usando el comando openvas_target_create, como se muestra en la Figura 3­25.


Debe proporcionar el nombre de la prueba, la dirección IP de destino y los comentarios (si los
hay) como parámetros de este comando.

Figura 3­25. Crear un nuevo destino para un escaneo OpenVAS usando el


comando openvas_target_create en MSFconsole

Después de crear un nuevo objetivo, debe seleccionar los perfiles de escaneo usando el

comando openvas_config_list, como se muestra en la Figura 3­26.

97
Machine Translated by Google

Capítulo 3 Metasploit

Figura 3­26. La salida del comando openvas_config_list en MSFconsole

Una vez que haya seleccionado el perfil de escaneo, es hora de crear una tarea de escaneo.

El comando openvas_task_create se puede utilizar para crear una nueva tarea, como se muestra

en la Figura 3­27. Debe proporcionar el nombre del análisis, los comentarios, si los hay, el ID de

configuración y el ID de destino como parámetros de este comando.

Figura 3­27. Crear una nueva tarea de escaneo OpenVAS usando el comando
openvas_task_create en MSFconsole

Ahora que se ha creado la tarea de escaneo, puede iniciar el escaneo usando el

comando openvas_task_start, como se muestra en la Figura 3­28. Debe proporcionar el ID de

la tarea como parámetro para este comando.

98
Machine Translated by Google

Capítulo 3 Metasploit

Figura 3­28. Ejecutar la tarea OpenVAS recién creada usando el comando


openvas_task_start en MSFconsole

Pasará un tiempo antes de que se complete el escaneo. Una vez que se completa

el escaneo, puede ver los informes usando el comando openvas_report_

lista, como se muestra en la Figura 3­29.

Figura 3­29. Listado de informes OpenVAS utilizando openvas_report_


comando de lista en MSFconsole

Ahora que se completó el escaneo y el informe está listo, puede descargarlo usando

el comando openvas_report_download, como se muestra en la Figura 3­30. Debe proporcionar el

ID del informe, el formato del informe, la ruta de salida y el nombre del informe como parámetros

de este comando.

99
Machine Translated by Google

Capítulo 3 Metasploit

Figura 3­30. Guardar el informe OpenVAS usando oepnvas_report_


descargar comando en MSFconsole

Servicios de escaneo y explotación con


Auxiliares de Metasploit
Metasploit ofrece una amplia variedad de exploits y módulos auxiliares para
escanear, enumerar y explotar diversos servicios y protocolos.
Esta sección cubre algunos de los módulos auxiliares y exploits dirigidos a protocolos de
uso común.

DNS
En el capítulo anterior, aprendió cómo se puede utilizar NMAP para enumerar
un servicio DNS. Metasploit también tiene varios módulos auxiliares que se pueden utilizar
para el reconocimiento de DNS.

La Figura 3­31 muestra el uso de /auxiliary/gather/enum_dns


módulo. Todo lo que necesita hacer es configurar el dominio de destino y ejecutar el
módulo. Como resultado, devuelve los servidores DNS asociados.

100
Machine Translated by Google

Capítulo 3 Metasploit

Figura 3­31. El uso del módulo auxiliar enum_dns

ftp

Supongamos que al realizar un escaneo NMAP encontró que su objetivo está ejecutando un

servidor FTP en el puerto 21 y la versión del servidor es vsftpd 2.3.4.


Puede utilizar la función de búsqueda para saber si Metasploit tiene

cualquier exploit para el servidor vsftpd, como se muestra en la Figura 3­32.

Figura 3­32. El resultado de la búsqueda del exploit vsftpd

Aquí usarás el exploit /unix/ftp/vsftpd_234_backdoor para explotar


el servidor FTP vulnerable. Puede configurar la dirección IP de destino como la variable RHOST

y luego ejecutar el exploit, como se muestra en la Figura 3­33.

101
Machine Translated by Google

Capítulo 3 Metasploit

Figura 3­33. Explotación exitosa del objetivo usando vsftpd_234_


explotación de puerta trasera

El exploit tiene éxito y obtienes acceso del shell de comandos al


objetivo del sistema.

HTTP
El Protocolo de transferencia de hipertexto (HTTP) es uno de los servicios
más comunes en los hosts. Metasploit tiene numerosos exploits y auxiliares para
enumerar y explotar un servicio HTTP. El módulo auxiliar auxiliar/
escáner/http/http_version, como se muestra en la Figura 3­34,

102
Machine Translated by Google

Capítulo 3 Metasploit

enumera la versión del servidor HTTP. En función de la versión exacta del servidor,

podrá planificar con mayor precisión futuras explotaciones.

Figura 3­34. La salida del módulo auxiliar http_version

Muchas veces un servidor web tiene directorios que no están expuestos directamente
y puede contener información interesante. Metasploit tiene un módulo auxiliar llamado
auxiliar/scanner/http/brute_dirs que escanea dichos directorios, como se muestra en la
Figura 3­35.

Figura 3­35. La salida del módulo auxiliar brute_dirs

103
Machine Translated by Google

Capítulo 3 Metasploit

PDR

El Protocolo de escritorio remoto (RDP) es un protocolo propietario desarrollado por Microsoft


para la administración gráfica remota. Si su objetivo es un sistema basado en
Windows, puede ejecutar un módulo auxiliar llamado auxiliar/scanner/rdp/ms12_020_check,
como se muestra en la Figura 3­36. Comprueba si el objetivo es vulnerable a la
vulnerabilidad MS­12­020.
Puede encontrar más detalles sobre esta vulnerabilidad en https://docs.
microsoft.com/en­us/security­updates/securitybulletins/2012/
ms12­020.

Figura 3­36. La salida del módulo auxiliar ms12_020_check

PYME

En el capítulo anterior, utilizó NMAP para enumerar SMB. Metasploit tiene muchos módulos
auxiliares útiles para la enumeración y explotación de SMB.

Una búsqueda simple de módulos SMB obtiene resultados, como se muestra


en la Figura 3­37.

104
Machine Translated by Google

Capítulo 3 Metasploit

Figura 3­37. El resultado de la consulta de búsqueda de módulos y exploits


relacionados con SMB

Puede utilizar uno de los módulos auxiliares llamado auxiliar/escáner/


smb/smb_enumshares, como se muestra en la Figura 3­38. Debe establecer el valor de la
variable RHOST al de la dirección IP de destino. El módulo devuelve los resultados con
una lista de recursos compartidos en el sistema de destino.

Figura 3­38. La salida del módulo auxiliar smb_enumshares

105
Machine Translated by Google

Capítulo 3 Metasploit

Otro exploit popular para SMB es el de la vulnerabilidad MS­08­67 netapi.


Puede utilizar el exploit/windows/smb/ms08_067_netapi, como se muestra en la
Figura 3­39. Debe establecer el valor de la variable RHOST en la dirección IP del
sistema de destino. Si el exploit se ejecuta correctamente, se le presentará el shell
Meterpreter.

Figura 3­39. Explotación exitosa del sistema de destino utilizando


el exploit ms08_067_netapi

SSH
Secure Shell (SSH) es uno de los protocolos comúnmente utilizados para la
administración remota segura. Metasploit tiene muchos módulos auxiliares para la
enumeración SSH. Puede utilizar el módulo auxiliar auxiliar/scanner/ssh/
ssh_version, como se muestra en la Figura 3­40. Es necesario establecer el valor del

106
Machine Translated by Google

Capítulo 3 Metasploit

variable RHOST a la del objetivo. El módulo ejecuta y devuelve la versión SSH


exacta que se está ejecutando en el destino. Esta información se puede utilizar
en futuras explotaciones.

Figura 3­40. La salida del módulo auxiliar ssh_version

VNC
Virtual Network Computing (VNC) es un protocolo utilizado para la administración
remota gráfica. Metasploit dispone de varios módulos para la enumeración y
explotación de VNC. La Figura 3­41 muestra el uso del auxiliar/escáner/
módulo vnc/vnc_login. Debe establecer el valor de la variable RHOST en la
dirección IP de su sistema de destino. El módulo utiliza un diccionario de contraseñas
integrado e intenta un ataque de fuerza bruta. Una vez que el módulo completa la
ejecución, le proporciona la contraseña de VNC que puede usar para iniciar sesión.

107
Machine Translated by Google

Capítulo 3 Metasploit

Figura 3­41. La salida del módulo auxiliar vnc_login

Conceptos básicos de Meterpreter

Meterpreter es la abreviatura de Metasploit Interpreter. Es una carga útil avanzada de

Metasploit que utiliza técnicas de inyección de DLL en memoria para interactuar con un
sistema de destino. Ofrece varias herramientas y utilidades útiles posteriores a la explotación.

Comandos de Meterpreter

Meterpreter es una carga útil avanzada para realizar diversas actividades posteriores
a la explotación. Los siguientes son algunos de los comandos esenciales que pueden ayudarle
a navegar por Meterpreter.

Comandos principales

La Tabla 3­1 describe un conjunto de comandos principales de Meterpreter que pueden ayudarle
con diversas tareas relacionadas con la sesión en su sistema de destino.

108
Machine Translated by Google

Capítulo 3 Metasploit

Tabla 3­1. Comandos de Meterpreter

Dominio Descripción

? Muestra el menú de ayuda.

fondo Coloca en segundo plano la sesión actual

bgkill Mata un script Meterpreter en segundo plano

lista bg Listas que ejecutan scripts en segundo plano

bgrun Ejecuta un script Meterpreter como hilo de fondo

canal Muestra información o controla los canales activos.

cerca Cierra un canal

desactivar_unicode_ Desactiva la codificación de cadenas Unicode

codificación

habilitar_unicode_ Habilita la codificación de cadenas Unicode.

codificación

salida Termina la sesión de Meterpreter

get_timeouts Obtiene los valores de tiempo de espera de la sesión actual.

guía Obtiene el GUID de la sesión.

ayuda Muestra el menú Ayuda

información Muestra información sobre un módulo de publicación.

irb Entra en modo de secuencias de comandos irb

carga Carga una o más extensiones de Meterpreter

Identificador de máquina
Obtiene el ID de MSF de la máquina conectada al
sesión

emigrar Migra el servidor a otro proceso.

(continuado)

109
Machine Translated by Google

Capítulo 3 Metasploit

Tabla 3­1. (continuado)


Dominio Descripción

pivote Gestiona los oyentes dinámicos

abandonar Termina la sesión de Meterpreter

leer Lee datos de un canal.

recurso Ejecuta los comandos almacenados en un archivo.

correr Ejecuta un script de Meterpreter o un módulo de publicación.

sesiones Cambia rápidamente a otra sesión

establecer_tiempos de espera
Establece los valores de tiempo de espera de la sesión actual

dormir Obliga a Meterpreter a quedarse en silencio y


luego restablece la sesión.

transporte Cambia el mecanismo de transporte actual.

UUID Obtiene el UUID de la sesión actual

escribir Escribe datos en un canal.

Stdapi: comandos del sistema


La Tabla 3­2 describe un conjunto de comandos esenciales del sistema que proporcionan
una variedad de tareas del sistema, como listar y eliminar procesos, ejecutar
comandos, reiniciar, etc.

110
Machine Translated by Google

Capítulo 3 Metasploit

Tabla 3­2. Comandos del sistema

Dominio Descripción

claro Borra el registro de eventos

drop_token Renuncia a cualquier token de suplantación activo

ejecutar Ejecuta un comando

getenv Obtiene uno o más valores de variables de entorno.

getpid Obtiene el identificador del proceso actual.

obtenerprivados Intenta habilitar todos los privilegios disponibles para el

proceso actual

consigueid Obtiene el SID del usuario con el que se ejecuta el servidor.

getuid Obtiene el usuario como el que se ejecuta el servidor.

matar Termina un proceso

hora local Muestra la fecha y hora locales del sistema de destino.

pgrep Filtra procesos por nombre

matar Termina procesos por nombre

PD Listas de procesos en ejecución

reiniciar Reinicia la computadora remota

registro Modifica e interactúa con el registro remoto.

rev2self Llama a RevertToSelf() en la máquina remota

caparazón Cae en un shell de comando del sistema

cerrar Apaga la computadora remota

robar_token Intenta robar un token de suplantación del proceso de destino

suspender Suspende o reanuda una lista de procesos

información del sistema Obtiene información sobre el sistema remoto, como


el sistema operativo

111
Machine Translated by Google

Capítulo 3 Metasploit

Stdapi: comandos de interfaz de usuario


La Tabla 3­3 enumera los comandos que le ayudan a obtener capturas de pantalla remotas y las pulsaciones de

teclas del sistema de destino.

Tabla 3­3. Comandos de la interfaz de usuario

Dominio Descripción

escritorios enumerados Enumera todos los escritorios y estaciones de ventana accesibles

obtener escritorio Obtiene el escritorio actual de Meterpreter.

tiempo de inactividad Devuelve el número de segundos que el usuario remoto ha estado inactivo

volcado de claves Vuelca el buffer de pulsaciones de teclas

llavescan_start Comienza a capturar pulsaciones de teclas

teclascan_stop Deja de capturar pulsaciones de teclas

captura de pantalla Toma una captura de pantalla del escritorio interactivo.

establecer escritorio Cambia el escritorio actual del Meterpreter

uictl Controla algunos de los componentes de la interfaz de usuario.

Stdapi: comandos de cámara web


La Tabla 3­4 describe los comandos que pueden ser efectivos para obtener imágenes en vivo y

transmisión de video desde la cámara web conectada a su sistema comprometido.

112
Machine Translated by Google

Capítulo 3 Metasploit

Tabla 3­4. Comandos de la cámara web

Dominio Descripción

grabar_micrófono Graba audio desde el micrófono predeterminado durante x segundos

chat_webcam Inicia un chat de vídeo

lista_webcam Listas de cámaras web

cámara web_snap Toma una instantánea de la cámara web especificada

transmisión_webcam Reproduce una transmisión de video desde la cámara web especificada

Stdapi: comandos de salida de audio


La Tabla 3­5 describe un comando que le ayuda a reproducir archivos de audio en un sistema

comprometido.

Tabla 3­5. Comando de salida de audio

Dominio Descripción

jugar Reproduce un archivo de audio en un sistema de destino, sin nada escrito en el disco

Priv: elevar comandos


La Tabla 3­6 describe un comando que le ayuda a escalar privilegios al nivel más alto posible,

posiblemente raíz o administrador.

Tabla 3­6. Elevar comandos

Dominio Descripción

obtener sistema Intenta elevar su privilegio al del sistema local

113
Machine Translated by Google

Capítulo 3 Metasploit

Priv: Comandos de base de datos de contraseñas

La Tabla 3­7 describe un comando que le ayuda a obtener los hashes de contraseña
sin formato del sistema comprometido.

Tabla 3­7. Comandos de la base de datos de contraseñas

Dominio Descripción

volcado de hash Vuelca el contenido de la base de datos SAM.

Priv: Comandos de Timestomp

La Tabla 3­8 describe un comando que forma parte de las capacidades antiforenses de
Metasploit.

Tabla 3­8. Comandos de marca de tiempo

Dominio Descripción

timestomp Manipula los atributos MACE de un archivo

Usando Meterpreter
Para familiarizarnos con Meterpreter, primero obtengamos acceso remoto a un sistema
de destino utilizando la vulnerabilidad netapi SMB MS08­067, como se muestra en
la Figura 3­42. El exploit fue exitoso y obtienes el shell Meterpreter.

114
Machine Translated by Google

Capítulo 3 Metasploit

Figura 3­42. Explotación exitosa del sistema de destino utilizando


el exploit ms08_067_netapi

información del sistema

Una vez que haya comprometido el objetivo mediante un exploit, debe verificar algunos
detalles básicos sobre el objetivo, como la versión exacta del sistema operativo,
el nombre de la computadora, el dominio, la arquitectura, etc. Meterpreter ofrece
un comando llamado sysinfo que se puede utilizar para recopilar información
básica sobre el objetivo, como se muestra en la Figura 3­43.

Figura 3­43. La salida del comando sysinfo dentro de Meterpreter

115
Machine Translated by Google

Capítulo 3 Metasploit

es

El comando Meterpreter ls se puede utilizar para enumerar los archivos en el


directorio actual del sistema comprometido, como se muestra en la Figura 3­44.

Figura 3­44. La salida del comando auxiliar ls en la lista de


archivos de Meterpreter en el sistema remoto comprometido

116
Machine Translated by Google

Capítulo 3 Metasploit

getuid

Una vez que haya obtenido acceso al sistema de destino, debe comprender qué
privilegios de usuario tiene en el sistema. Tener privilegios de nivel raíz
o administrador es lo más deseable, y un acceso con privilegios más bajos implica
muchas restricciones en sus acciones. Meterpreter ofrece un comando llamado
getuid, como se muestra en la Figura 3­45, que verifica el nivel de privilegio
actual en el sistema comprometido.

Figura 3­45. La salida del comando getuid en Meterpreter

obtener sistema

Una vez que haya obtenido acceso al sistema de destino mediante un exploit
aplicable, el siguiente paso lógico es comprobar los privilegios. Usando el getuid
comando, ya ha medido su nivel de privilegio actual. Es posible que no haya
obtenido acceso de nivel raíz o administrador. Por lo tanto, para maximizar la
penetración del ataque, es importante elevar sus privilegios de usuario.
Meterpreter le ayuda a escalar privilegios. Una vez que se abre una sesión de
Meterpreter, puede usar el comando getsystem, como se muestra en la Figura 3­46,
para escalar privilegios a los de administrador.

117
Machine Translated by Google

Capítulo 3 Metasploit

Figura 3­46. La salida del comando getsystem en Meterpreter

captura de pantalla

Después de un compromiso del sistema, es interesante echar un vistazo a la GUI del


escritorio ejecutándose en el sistema de destino. Meterpreter ofrece una utilidad
conocida como captura de pantalla, como se muestra en la Figura 3­47. Simplemente
toma una instantánea del escritorio actual en el sistema de destino y la guarda en la carpeta raíz local.

Figura 3­47. La salida del comando de captura de pantalla en Meterpreter

La Figura 3­48 muestra la pantalla del escritorio capturada desde un sistema


comprometido.

118
Machine Translated by Google

Capítulo 3 Metasploit

Figura 3­48. La captura de pantalla de un escritorio ejecutándose en un


sistema remoto comprometido

volcado de hash

Después de un compromiso exitoso del sistema, seguramente querrá obtener las


credenciales de diferentes usuarios en ese sistema. Una vez que se abre una
sesión de Meterpreter, puede usar el comando hashdump para volcar todos los
hashes LM y NTLM del sistema comprometido, como se muestra en la Figura 3­49.
Una vez que tenga estos hash, puede enviarlos a varios crackers de hash fuera
de línea y recuperar contraseñas en texto sin formato.

Figura 3­49. La salida del módulo auxiliar vnc_login

119
Machine Translated by Google

Capítulo 3 Metasploit

Searchploit
Hasta ahora has aprendido que Metasploit tiene una rica colección de auxiliares,
exploits, cargas útiles, codificadores, etc. Sin embargo, en ocasiones es posible que
no exista un código de explotación para una determinada vulnerabilidad en Metasploit.
En tal caso, es posible que deba importar el exploit requerido a Metasploit desde
una fuente externa. Exploit­DB es una fuente integral de exploits para varias
plataformas y Searchsploit es una utilidad que ayuda a buscar un exploit particular
en Exploit­DB. La Figura 3­50 muestra el uso de la herramienta Searchsploit para
buscar exploits relacionados con uTorrent.

Figura 3­50. El uso de la herramienta Searchsploit para buscar exploits


relacionados con uTorrent

Resumen
Este capítulo le presentó los diversos aspectos de Metasploit, desde la estructura
de trabajo auxiliar de framewnd hasta el uso de servicios de exploits. También
aprendió a aprovechar las capacidades de Metasploit para integrar NMAP y
OpenVAS. Habiendo aprendido sobre varios Metasploit

120
Machine Translated by Google

Capítulo 3 Metasploit

cargas útiles, auxiliares y exploits, en el próximo capítulo aprenderá a aplicar estas


habilidades para explotar una máquina vulnerable.

Ejercicios de bricolaje (hágalo usted mismo)

• Navegar por el directorio Metasploit y


comprender su estructura.

• Pruebe varios comandos como set, setg, unset,


desarmar, enrollar y más.

• Inicie una exploración NMAP desde MSFconsole.

• Realizar una evaluación de vulnerabilidad en el sistema de


destino utilizando OpenVAS desde MSFconsole.

• Explore varios módulos auxiliares y utilícelos para escanear


servicios como HTTP, FTP, SSH, etc.

• Pruebe diferentes funciones de Meterpreter como getsystem


y volcado de hash.

121
Machine Translated by Google

CAPÍTULO 4

Caso de uso

En los tres capítulos anteriores, se familiarizó con las herramientas esenciales


NMAP, OpenVAS y Metasploit. Aprendiste cada una de las herramientas en
detalle y cómo se pueden integrar entre sí para una mayor eficiencia.

Ahora es el momento de reunir todo ese conocimiento y aplicarlo en un


escenario práctico. En este capítulo, aplicará las diversas técnicas que ha
aprendido hasta ahora para explotar un sistema vulnerable y obtener acceso a él.

Creando un laboratorio virtual

Puede que no siempre sea posible poner a prueba las habilidades recién adquiridas en

sistemas de producción en vivo. Por lo tanto, puedes probar tus habilidades en tu propio
laboratorio virtual de forma restringida.

Vulnhub (https://www.vulnhub.com) es un sitio que proporciona sistemas


para descargar que se hacen vulnerables deliberadamente. Simplemente
necesita descargar una imagen del sistema e iniciarlo en VirtualBox o VMware.
Para los fines de este estudio de caso, vaya a https://www.vulnhub.com/
entrada/pentesting­básico­1,216/ y descargar el sistema. Una vez que lo haya
descargado, inícielo usando VirtualBox o VMware. La pantalla de inicio inicial del
sistema se parece a la Figura 4­1.

© Sagar Rahalkar 2019 123


S. Rahalkar, Guía de inicio rápido para pruebas de
penetración, https://doi.org/10.1007/978­1­4842­4270­4_4
Machine Translated by Google

Capítulo 4 Caso de uso

Figura 4­1. Pantalla de inicio inicial del sistema de destino

No tiene ninguna credencial para iniciar sesión en el sistema, por lo que tendrá que usar
sus habilidades de prueba de penetración para ingresar.

Realización de reconocimiento
En Kali Linux, inicie ZENMAP para realizar un escaneo de puertos y una enumeración
de servicios en este destino, como se muestra en la Figura 4­2.

124
Machine Translated by Google

Capítulo 4 Caso de uso

Figura 4­2. Salida del análisis intenso NMAP realizado en el sistema de destino

En la salida de ZENMAP, puede ver que los siguientes puertos están abiertos:

• Puerto 21 ejecutando ProFTPD 1.3.3c

• Puerto 22 ejecutando OpenSSH 7.2p2

• Puerto 80 ejecutando Apache httpd 2.4.18

125
Machine Translated by Google

Capítulo 4 Caso de uso

Según este resultado, tiene tres formas posibles de comprometer el sistema.

• Buscar y ejecutar cualquier exploit para ProFTPD 1.3.3c en Metasploit

• Credenciales de usuario de fuerza bruta contra SSH ejecutándose en

puerto 22

• Explorar si alguna aplicación está alojada en el puerto 80

Explotando el sistema
Cuando intenta acceder al sistema en el puerto 80 usando un navegador, obtendrá la página del

servidor web predeterminado que se muestra en la Figura 4­3.

Figura 4­3. La página web de destino predeterminada en un sistema de destino


(puerto 80)

Ahora volverá a NMAP nuevamente, y esta vez en lugar de un puerto

scan, utilizará el script NMAP http­enum, como se muestra en la Figura 4­4.

126
Machine Translated by Google

Capítulo 4 Caso de uso

Figura 4­4. Salida del script NMAP http­enum ejecutado en un sistema


de destino

El resultado del script le indica que hay una carpeta en el servidor web.
secreto llamado, que podría tener algo interesante para ti.
Habiendo recibido información sobre la carpeta secreta en el servidor, intente
acceder a ella, como se muestra en la Figura 4­5.

127
Machine Translated by Google

Capítulo 4 Caso de uso

Figura 4­5. Navegar por el directorio secreto alojado en la web de destino


servidor

Puedes ver una pantalla que implica que es algún tipo de blog basado en
WordPress. Sin embargo, la página web parece estar rota e incompleta.
Cuando intenta cargar la página, el navegador busca el host vtcsec.
Eso significa que necesita configurar su sistema para resolver este nombre de host.
Simplemente puede abrir la terminal y luego abrir el archivo /etc/hosts en un editor de
texto, como se muestra en la Figura 4­6.

Figura 4­6. Editar el archivo /etc/hosts para agregar una nueva entrada de host

128
Machine Translated by Google

Capítulo 4 Caso de uso

A continuación, agregue una nueva línea: 192.168.25.132 vtcsec.

En la terminal, ejecute lo siguiente: gedit /etc/hosts.

Ahora que ha realizado los cambios necesarios en el archivo de hosts, intentemos acceder a la

interfaz web una vez más. La interfaz se carga, como se muestra en la Figura 4­7.

Figura 4­7. La página de inicio de un blog de WordPress alojado en el sistema de


destino.

Al examinar la página que se muestra en la Figura 4­8, es evidente que la aplicación está

basada en WordPress.

129
Machine Translated by Google

Capítulo 4 Caso de uso

Figura 4­8. La página de inicio de sesión de WordPress en su sistema de destino

A continuación, necesita las credenciales para acceder a la consola de administración del

solicitud. Tienes tres formas de conseguirlos, como se muestra aquí:

• Adivina las credenciales; muchas veces credenciales predeterminadas


trabajar.

• Utilice una herramienta para descifrar contraseñas como Hydra para descifrar la
cartas credenciales.

• Utilice el módulo auxiliar de Metasploit auxiliar/

scanner/http/wordpress_login_enum para lanzar un ataque de fuerza

bruta contra las credenciales de la aplicación.

En este caso, la aplicación tiene las credenciales predeterminadas de admin/admin.

130
Machine Translated by Google

Capítulo 4 Caso de uso

Ahora que tiene las credenciales de la aplicación, puede usar Metasploit para
cargar un complemento malicioso en WordPress, que le brindará acceso remoto al
shell. Un complemento de WordPress es un fragmento de código listo para usar que
puede importar a la instalación de WordPress para habilitar funciones adicionales.
Puede utilizar el comando de búsqueda en MSFconsole para buscar exploits relacionados
con la administración de WordPress, como se muestra en la Figura 4­9.

Figura 4­9. Salida de la consulta de búsqueda para el exploit wp_admin


en Metasploit

Ahora necesitas usar el exploit exploit/unix/webapp/wp_admin_


shell_upload, como se muestra en la Figura 4­10. Debe configurar los parámetros
NOMBRE DE USUARIO, CONTRASEÑA, TARGETURI y RHOST.

131
Machine Translated by Google

Capítulo 4 Caso de uso

Figura 4­10. El uso del exploit wp_admin_shell_upload contra el sistema


de destino para obtener acceso a Meterpreter

El exploit se ejecutó exitosamente cargando el complemento malicioso en


WordPress y finalmente darle el acceso requerido a Meterpreter.
Durante su escaneo NMAP inicial, descubrió que su objetivo también estaba
ejecutando un servidor FTP en el puerto 21. La versión del servidor FTP es ProFTPd
1.3.3. Puede comprobar si Metasploit tiene algún exploit para esta versión del servidor
FTP. Utilice el comando de búsqueda.

132
Machine Translated by Google

Capítulo 4 Caso de uso

Curiosamente, Metasploit tiene un exploit para el servidor ProFTPd.


Puede utilizar exploit/unix/ftp/proftpd_133c_backdoor, como se muestra en la
Figura 4­11. Todo lo que necesitas configurar es la variable RHOST.

Figura 4­11. Salida de la consulta de búsqueda para proftpd y ejecución


del exploit proftpf_133c_backdoor en el sistema de destino

El código de explotación se ejecuta correctamente y le proporciona un shell en el sistema

de destino.

Por lo tanto, lograste explotar tu objetivo de dos maneras diferentes.


maneras, una a través de WordPress y otra a través del servidor FTP.
¡Felicidades!

133
Machine Translated by Google

Índice
métodos, 22–23
A, B
dirección IP de destino, 21
función all_hosts(), 43 función
MySQL, 29
all_protocols, 44
PYME, 23
servidor SMTP, 31

C servidor SSH, 30
VNC, 34
función línea_comando(), 43
Vulnerabilidades comunes y vulnerabilidades, 36

Exposición (CVE), 36
directorios git, 37 F
vulnerabilidades nmap,
Protocolo de transferencia de archivos (FTP), 26, 101
37 resultados de, 38–39
Puntuación de vulnerabilidad común
Sistema (CVSS), 67 GRAMO

Coge pancartas de servicio, 35

D
sistema de nombres de dominio h
(DNS), 25, 100 función has_tcp(), 43 función
nombre de host(), 44

Protocolo de Transferencia de Hipertexto


mi
(HTTP), 102
Enumeración

DNS, 25
Versión del servidor FTP, 26 yo, j
banners de servicio de captura, 35 Comando interactivo Ruby
HTTP, 20 (irb), 87

© Sagar Rahalkar 2019 135


S. Rahalkar, Guía de inicio rápido para pruebas de
penetración, https://doi.org/10.1007/978­1­4842­4270­4
Machine Translated by Google

Índice

mostrar,
Función
88 carrete,
de teclas K, L (), 43
89 desarmar y desarmar, 85–
86 versión,
METRO

81 espacio de trabajo, 91
Auxiliares de Meterpreter, 108
estructura y anatomía de comandos de
Metasploit, 76 salida de audio, 113

componentes de, 75 comandos principales, 108

estructura de directorios, 75 comandos de elevación, 113


codificadores, getsystem, 117–118
77 exploits, 77 getuid, 117
cargas útiles, hashdump, 119
76 post, comando ls, 116 base
78 auxiliares de datos de contraseñas, 114
Servicio DNS, 100 capturas de pantalla, 118–
ftp, 101 119 herramienta
HTTP, 102 searchsploit, 120 comandos
protocolo de escritorio remoto, 104 del sistema, 110 comandos
Módulos PyME, 104, 106 timestomp , 114 comandos de interfaz
SSH, 106­107 de usuario, 112 comandos de cámara web, 112
VNC, 107–108 NMAP (Network Mapper)
comandos y conexión de configuración, Comandos db_import y
82 db_initiate, hosts, 93 Comando
90 db_status, 90 db_nmap, 94 resultados de
get y getg, 85 escaneo, 92

historial, 83 info, 87 Comando


irb, 87–88 openVAS
makerc, openvas_config_list,
89 comando 98 comando
msfconsole, openvas_connect, 97
79, 81 guardar, 86 configurar y comando openvas_help, 96 comando
configurar, openvas_report_download, 100
84

136
Machine Translated by Google

Índice

comando protocolos, 13
openvas_report_list, 99 escaneo de motivos,

comando openvas_target_create, 12 enumeración de servicios,


97 16 subred, 10–11

openvas_task_create, 98 Exploración TCP, 15–

comando 16 topología, 15
openvas_task_start, Escaneo de puertos
99 UDP, 17 scripts (ver enumeración)
complemento, 95 fases de, 73 ZENMAP

Enumeración MySQL, 29 configuración, 7


comando nmap, 6
pantalla/interfaz, 8
norte

Código Nessus Attack Scripting Language


oh
(NASL), 48 NMAP
(Network Mapper) OpenVAS, 47
Sistema basado en Debian, 6 administración, 55
características configuraciones administrativas, 50, 68
de, 4 instalación, 5– menú de inicio, 51

6 Metasploit, 92 Calculadora CVSS, 67–68

comandos db_import y panel de control,


hosts, 93 comando 59 datos demográficos,
db_nmap, 94 resultados de 59 características
escaneo, 92 salidas, de, 48 actualizaciones
40 estados de fuentes,

de puertos, 8 55 estado, 55 fuentes de


escaneo de Python (ver vulnerabilidad, 56 menú
Python), 9 de ayuda, 61–62 pantalla de

sonda de firewall, 14 instalación,


archivo hosts.txt, 12 49 comando metaploit
archivo de openvas_config_list,
entrada, 11 escaneo 98 comando
intenso, 19 openvas_connect, 97
dirección IP, 10 detección de sistema operativo, 18–19
comando openvas_help, 96

137
Machine Translated by Google

Índice

OpenVAS (cont.) línea de comando de máquina virtual

Comando oepnvas_report_download, consola, 52


100 Comando vulnerabilidad (ver Escaneo de
openvas_report_list, 99

vulnerabilidades) interfaz web y campos de inicio de sesión, 52


comando openvas_target_create,
97

openvas_task_create, 98 comando
P, Q
openvas_task_start, 99 Pruebas de penetración, ver también

complemento, 95 Evaluación de vulnerabilidad que

descripción cubre pistas, 3 fase de

general de, 68 enumeración, 2 aumento de

contraseña, 51 privilegios, 2 acceso, 2

propósito de, 47 recopilación de

detalles información, 2 fases de, 2

de informes, herramientas

71 formatos, 69 de, 3–4

Informe de escaneo HTML, 70 evaluación de vulnerabilidad, 2

resumen de resultados de Actividades posteriores a la explotación (post), 78

escaneo, 70 administración de Función

recursos y rendimiento, 66– Python all_hosts(), 43 Función

67 programador, all_protocols, 44 Función

60 configuración, command_line(), 43

50, 53 pantalla de carga de clave Sistema basado en Debian, 41

de suscripción, función has_tcp(), 43 función

54 papelera, 60–61 hostname(), 44 función teclas(),

configuración de usuario, 54 43

administración de usuarios Biblioteca NMAP, 41

agregando nuevos usuarios, salida, 42

58 consola, 57 Función PortScanner, 42 función

Autenticación LDAP, 58 scaninfo(), 42 función state(), 43

Autenticación RADIUS, 59

138
Machine Translated by Google

Índice

R V, W, X, Y
Protocolo de escritorio remoto (RDP), 104 Laboratorio virtual, 123, 124

Protocolo de computación en red virtual (VNC),

34, 107–108
Función S, T,
Evaluaciones de vulnerabilidad
U scaninfo(), 42 OpenVAS, 47
Protocolo Secure Shell organizaciones, 1
(SSH), 30, 106–107 Panel de análisis de
Protocolo de bloque de mensajes del vulnerabilidades y asistente de tareas, 63
servidor (SMB), 23, 104, 106 perfil completo y rápido, 64
Protocolo simple de transferencia de correo página de inicio de
(SMTP), 31 sesión, 62 resultados y filtros,
función estado(), 43 66 perfiles de análisis,
Explotación del sistema 64 resultados del
/etc/hosts archivo, 128 análisis, 65 panel de estado de tareas, 65
salida de, 127
carpeta secreta, 127–128

página del servidor web, 126 z


WordPress ZENMAP

consola de administración de, 130 configuración, 7

página de inicio, 129 comando nmap, 6 salida

página de inicio de sesión, 130 de, 125 escaneo de

Acceso a Meterpreter, 132 proftpd puertos y enumeración de

y ejecución, 133 consulta de búsqueda, servicios, 124 pantalla/

131 interfaz, 8

139

También podría gustarte