Está en la página 1de 36

Tema 4

Hacking Ético

Explotación
Índice
Esquema 3

Ideas clave 4
4.1. Introducción y objetivos 4
4.2. Creación y orientación de mapa de información 4
© Universidad Internacional de La Rioja (UNIR)

4.3. Análisis de vulnerabilidades 6


4.4. Python como herramienta de explotación 22
4.5. Lecciones magistrales 32
4.6. Referencias bibliográficas 33

A fondo 34

Test 35
© Universidad Internacional de La Rioja (UNIR)

Tema 4. Esquema
Esquema

Hacking Ético
3
Ideas clave

4.1. Introducción y objetivos

En este tema, una vez que disponemos de toda la información y posibles


vulnerabilidades de los sistemas de nuestro objetivo, podremos empezar a generar
nuestros vectores de ataque. Para ello, se mostrarán y explicarán los diferentes
mecanismos de explotación de vulnerabilidades a través de las herramientas y
frameworks más utilizados y comunes. Gracias a toda esta información de servicios,
procesos, tecnología, puertos, potenciales vulnerabilidades, etc., el estudiante será
capaz de entender y asimilar los conceptos mínimos para ejecutar un ataque.

4.2. Creación y orientación de mapa de


información

Una vez que hemos recabado la información, debemos analizar y distinguir qué
datos son importantes y cuáles no. A continuación se exponen los elementos más
trascendentales:

 Nombres y apellidos de empleados: para intentar deducir el usuario del sistema


operativo las cuentas de correo (o cualquier otro servicio de autentificación), para
poder utilizar las técnicas de ingeniería social, para generar un diccionario
personalizado para ataques de fuerza bruta, para encontrar documentos o
© Universidad Internacional de La Rioja (UNIR)

carpetas (como el home de un usuario), para intentar averiguar la contraseña, etc.

 Emails: se pueden intentar utilizar para acceder remotamente a servidores o


terminales en caso de que los nombres o una permutación de ellos coincidan.

Hacking Ético
4
Tema 4. Ideas clave
También se pueden usar para comprobar si tienen contraseñas por defecto o para
realizar ingeniería social o phishing.

 Contraseñas: muchas veces se utiliza la misma contraseña en más de una ocasión


para diferentes servicios, por lo que se pueden usar para lanzar un ataque de
fuerza bruta para autenticarnos en todos los servicios.

 Otros datos personales (teléfonos, direcciones, fechas importantes): para


utilizarlos como contraseñas (y permutaciones de estas) o para realizar ingeniería
social.

 Un sitio web o subdominio: se debe realizar una buena fase de footprinting para
obtener información muy importante, como contraseñas olvidadas en los
comentarios, enlaces a subdominios restringidos, carpetas con permisos de
escritura…

 Redes internas o externas (intranet/extranet): para obtener datos internos


interesantes o para poder pivotar (ir pasando de una red a otra) a través de las
redes y alcanzar objetivos concretos.

 Agentes externos o servicios de terceros: se pueden buscar contraseñas por


defecto de terceros para poder acceder al objetivo (como los routers de diferentes
ISP con contraseñas por defecto).

 Carpetas o archivos ocultos: proporcionan datos o información del objetivo.

 Sucursales: buscar puntos intermedios en la infraestructura de la organización,


© Universidad Internacional de La Rioja (UNIR)

para hacer ingeniería social de cualquier tipo.

 Servidores o nodos en zonas desmilitarizadas (DMZ): intentar comprometer estos


servidores en zonas con pocas defensas de las organizaciones para intentar pivotar
a través de ellos.

Hacking Ético
5
Tema 4. Ideas clave
 Reglas del firewall o del IDS: para ser capaces de eludir estas reglas o evitar ser
detectados por los IDS.

 Protocolos que utilice la organización: para planear el ataque y utilizar


herramientas concretas.

 Puertos abiertos: para intentar obtener el sistema operativo, los servicios que
están corriendo o buscar vulnerabilidades.

 Direcciones IP: tratar de realizar un mapa de la red de la organización para


localizar objetivos concretos y fuentes de información.

 Antivirus: investigar los tipos de virus para que el motor de búsqueda no los
detecte, para deshabilitar el antivirus, inutilizarlo, infectarlo, etc.

 Aplicaciones y su versión: para buscar vulnerabilidades en ellas.

 Políticas internas: tienen información importante de la organización, como


formato de contraseñas, horarios de uso de los dispositivos, etc.

En síntesis, la información previa al ataque, durante cualquiera de sus fases, es vital


y muy relevante a la hora de realizar este ataque.

4.3. Análisis de vulnerabilidades


© Universidad Internacional de La Rioja (UNIR)

Una vez hemos obtenido toda la información posible de la víctima, nos dedicaremos
a explotar las vulnerabilidades de su sistema para intentar hacernos con el control
de su máquina y los privilegios de administrador.

Hacking Ético
6
Tema 4. Ideas clave
Primero, tendremos que descubrir qué aplicaciones o servicios de los que tiene la
víctima son vulnerables. Para ello, utilizaremos herramientas de escaneo de
vulnerabilidades: las más importantes son Nessus, OpenVas y Nexpose.

Las tres herramientas son multiplataformas, aunque alguna tenga restricciones de la


arquitectura del sistema. Con todas utilizaremos una interfaz gráfica, a la que nos
conectaremos a través del navegador en la dirección localhost (127.0.0.1), y un
puerto específico para cada uno.

Nmap con NSE

Comenzaremos hablando de la ya conocida Nmap (https://nmap.org). Una de las


características interesantes de Nmap es el motor de scripts de Nmap (NSE) que le
aporta aún más flexibilidad y eficiencia. Permite escribir nuestros propios scripts en
lenguaje de programación Lua y, posiblemente, compartir estos scripts con otros
usuarios de Nmap.

Aunque NSE tiene una implementación compleja para la eficiencia, es


sorprendentemente fácil de usar. Basta con especificar -sC para activar los scripts
más comunes. O especificando la opción --script para elegir nuestros propios
scripts a ejecutar, proporcionando categorías, nombres de archivos de script o el
nombre de directorios de scripts que deseemos ejecutar.

Además, podemos personalizar algunos scripts proporcionándoles argumentos


mediante las opciones --script-args y --script-args-file. La opción --script-
help muestra una descripción de lo que hace cada script seleccionado. Las dos
opciones restantes, --script-trace y --script-updatedb, generalmente solo se
© Universidad Internacional de La Rioja (UNIR)

utilizan para la depuración y el desarrollo de scripts. La exploración de scripts


también se incluye como parte de la opción -A (exploración agresiva).

Hacking Ético
7
Tema 4. Ideas clave
El escaneo de scripts se realiza normalmente en combinación con un escaneo de
puertos, ya que los scripts pueden ejecutarse, o no, dependiendo de los estados de
los puertos encontrados por el escaneo. Con la opción -sn es posible ejecutar un
escaneo de scripts sin un escaneo de puertos, solo con el descubrimiento de hosts.
En este caso, solo se podrán ejecutar los scripts del host.

Categorías de scripts

Los scripts de NSE definen una lista de categorías a las que pertenecen, cuyos
nombres no distinguen entre mayúsculas y minúsculas. Las categorías definidas
actualmente son auth, broadcast, brute, default, discovery, dos, exploit, external,
fuzzer, intrusive, malware, safe, version y vuln.

Auth

Estos scripts se ocupan de las credenciales de autenticación (o de eludirlas) en el


sistema de destino. Los ejemplos incluyen x11-access, ftp-anon, y oracle-enum-
users. Los scripts que utilizan ataques de fuerza bruta para determinar las
credenciales se colocan en la categoría brute.

Broadcast

Realizan el descubrimiento de hosts no listados en la línea de comandos mediante


la difusión en la red local. Se puede utilizar el argumento de script newtargets para
permitir que estos scripts añadan automáticamente los hosts que descubren a la cola
de exploración de Nmap.
© Universidad Internacional de La Rioja (UNIR)

Brute

Utilizan ataques de fuerza bruta para adivinar las credenciales de autenticación de


un servidor remoto. Nmap contiene scripts para forzar docenas de protocolos,
incluyendo http-brute, oracle-brute, snmp-brute, etc.

Hacking Ético
8
Tema 4. Ideas clave
Default

Son el conjunto por defecto y se ejecutan cuando se utilizan las opciones -sC o -A en
lugar de listar los scripts con --script. Esta categoría también puede especificarse
explícitamente como cualquier otra utilizando --script=default.

Discovery

Intentan descubrir activamente más sobre la red consultando registros públicos,


dispositivos habilitados para SNMP, servicios de directorio y similares. Algunos
ejemplos son html-title (obtiene el título de la ruta raíz de los sitios web), smb-enum-
shares (enumera los recursos compartidos de Windows) y snmp-sysdescr (extrae
detalles del sistema a través de SNMP).

Dos

Pueden causar una denegación de servicio. A veces esto se hace para probar la
vulnerabilidad a un método de denegación de servicio, pero más comúnmente es
un efecto secundario no deseado, aunque necesario, de la prueba de una
vulnerabilidad tradicional. Estas pruebas a veces bloquean los servicios vulnerables.

Exploit

Tienen como objetivo explotar activamente alguna vulnerabilidad. Algunos


ejemplos son jdwp-exec y http-shellshock.

External
© Universidad Internacional de La Rioja (UNIR)

Pueden enviar datos a una base de datos de terceros u otro recurso de red. Un
ejemplo de esto es whois-ip, que realiza una conexión con servidores whois para
conocer la dirección del objetivo.

Hacking Ético
9
Tema 4. Ideas clave
Siempre existe la posibilidad de que los operadores de la base de datos de terceros
registren cualquier cosa que se les envíe, que en muchos casos incluirá la dirección IP
propia y la dirección del objetivo. La mayoría de los scripts implican tráfico
estrictamente entre el ordenador de exploración y el cliente, los que no lo hacen, se
incluyen en esta categoría.

Fuzzer

Contiene scripts diseñados para enviar campos inesperados o aleatorios al software


del servidor en cada paquete. Aunque esta técnica puede ser útil para encontrar
errores y vulnerabilidades no descubiertas en el software, es un proceso lento y que
requiere mucho ancho de banda.

Un ejemplo de un script de esta categoría es dns-fuzz, que bombardea un servidor


DNS con peticiones de dominio ligeramente defectuosas hasta que el servidor se
bloquea o transcurre un límite de tiempo especificado por el usuario.

Intrusive

Scripts que no pueden clasificarse en la categoría de seguros, porque el riesgo de


que colapsen el sistema de destino, utilicen recursos significativos en el host de
destino (como el ancho de banda o el tiempo de CPU) o sean percibidos como
maliciosos por los administradores del sistema de destino es demasiado alto.

Algunos ejemplos son http-open-proxy, que intenta utilizar el servidor de destino


como un proxy HTTP, y snmp-brute, que intenta adivinar la cadena de comunidad
SNMP de un dispositivo enviando valores comunes como public, private y cisco. A
© Universidad Internacional de La Rioja (UNIR)

menos que un script esté en la categoría de versión especial, debería ser categorizado
como seguro o intrusivo.

Hacking Ético
10
Tema 4. Ideas clave
Malware

Comprueban si la plataforma de destino está infectada por malware o backdoors.


Algunos ejemplos son smtp-strangeport, que vigila los servidores SMTP que se
ejecutan en números de puerto inusuales, y auth-spoof, que detecta los demonios
de suplantación de identidad que proporcionan una respuesta falsa incluso antes de
recibir una consulta. Ambos comportamientos están comúnmente asociados con
infecciones de malware.

Safe

Los scripts que no han sido diseñados para bloquear servicios, utilizar grandes
cantidades de ancho de banda de red u otros recursos, o explotar agujeros de
seguridad se clasifican como seguros. Es menos probable que ofendan a los
administradores remotos, aunque, como con todas las demás funciones de Nmap,
no podemos garantizar que no causen nunca reacciones adversas. La mayoría de ellas
realizan un descubrimiento general de la red.

Algunos ejemplos son ssh-hostkey, que recupera una clave de host SSH, y html-
title, que toma el título de una página web. Los scripts en la categoría de versión no

están categorizados por seguridad, pero cualquier otro script que no esté en safe
debe ser colocado en intrusive.

Versión

Son una extensión de la función de detección de versiones y no pueden ser


seleccionados explícitamente. Se seleccionan para ejecutarse solo si se solicita la
© Universidad Internacional de La Rioja (UNIR)

detección de versiones (-sV). Su salida no puede distinguirse de la salida de la


detección de versiones y no producen resultados de scripts de servicio o de host.
Algunos ejemplos son skypev2-version, pptp-version e iax2-version.

Hacking Ético
11
Tema 4. Ideas clave
Vuln

Estos scripts comprueban vulnerabilidades específicas conocidas y generalmente


solo informan de los resultados si se los encuentran. Algunos ejemplos son realvnc-
auth-bypass y afp-path-vuln.

Y, como ejemplos, podríamos tener los siguientes:

nmap -sC ejemplo.com

Un simple escaneo de scripts utilizando el conjunto de scripts por defecto.

nmap -sn -sC ejemplo.com

Un escaneo de scripts sin un escaneo de puertos: sólo los scripts del host son
elegibles para ejecutarse.

nmap -Pn -sn -sC ejemplo.com

Un escaneo de scripts sin descubrimiento de hosts o escaneo de puertos. Se supone


que todos los hosts están activos y sólo se pueden ejecutar los scripts del host.

nmap --script smb-os-discovery --script-trace ejemplo.com

Ejecutar un script específico con rastreo de script.

nmap --script snmp-sysdescr --script-args creds.snmp=admin ejemplo.com


© Universidad Internacional de La Rioja (UNIR)

Ejecutar un script individual que toma un argumento de script.

Hacking Ético
12
Tema 4. Ideas clave
nmap --script mycustomscripts,safe ejemplo.com

Ejecuta todos los scripts del directorio mycustomscripts así como todos los scripts
de la categoría safe.

Nessus

Continuaremos hablando de la más popular de todas, Nessus. Una herramienta de


escaneo de vulnerabilidades muy simple, pero muy versátil y potente. Es
multiplataforma y cuenta con versión gratuita y de pago. Utilizaremos la versión
gratuita que recibe actualizaciones cada semana (la de pago las recibe diariamente).

Para utilizarlo, deberemos instalarlo primero: lo haremos en Kali e iremos a la página


http://www.tenable.com/products/nessus/select-your-operating-system.
Elegiremos Kali Linux y la versión que tengamos (32 o 64 bits). Después, utilizaremos
los siguientes comandos:

> dpkg ‐i Nessus‐5.2.1‐debian6_i386.deb (o la versión que hayamos descargado)


para instalar el paquete.

> /etc/init.d/nessusd start para iniciar el servicio.

Finalmente, iremos a la URL: https://localhost:8834 para acceder a la interfaz.


© Universidad Internacional de La Rioja (UNIR)

Hacking Ético
13
Tema 4. Ideas clave
Figura 1. Interfaz de Nessus. Fuente: elaboración propia.

Para recibir actualizaciones, necesitaremos un código que nos enviarán si nos


registramos en la página de Nessus
(http://www.tenable.com/products/nessus/nessusplugins/obtain-an-activation-
code).

Para comenzar el escaneo, haremos clic en la pestaña de New Scan y elegiremos el


tipo de escaneo, los más sencillos son host discovery y basic Network scan, con ellos
obtendremos información general de los hosts que haya en nuestra red y sus
vulnerabilidades.

Le daremos un nombre al escaneo y elegiremos los objetivos: podemos elegir una


única IP o un rango. Si lo deseamos, podremos incluir algún tipo de credencial de
acceso al escaneo, para que intente automáticamente acceder al servicio indicado
con ellas.
© Universidad Internacional de La Rioja (UNIR)

Hacking Ético
14
Tema 4. Ideas clave
Figura 2. Gestión de accesos. Fuente: elaboración propia.

Pulsaremos en Save y comenzará el escaneo.

Figura 3. Escaneos realizados o en proceso. Fuente: elaboración propia.

Figura 4. Resultado de escaneos en función del host. Fuente: elaboración propia.


© Universidad Internacional de La Rioja (UNIR)

En el ejemplo de las figuras 3 y 4 se utiliza el escaneo de host discovery para analizar


las máquinas conectadas por cable Ethernet y se agrupan las vulnerabilidades en
función de cada host. Aunque también lo podremos agrupar por vulnerabilidad,
como en la Figura 5:

Hacking Ético
15
Tema 4. Ideas clave
Figura 5. Vulnerabilidades encontradas. Fuente: elaboración propia.

Vemos el escaneo basic network scan realizado sobre un Windows XP SP3. Como se
puede ver, Nessus ha encontrado una vulnerabilidad crítica en la máquina que se
puede explotar remotamente y dar acceso total al atacante.

Podremos también personalizar nuestros propios tipos de escaneo en la pestaña


Policies. Nessus es una herramienta que facilita mucho el trabajo de la búsqueda de
vulnerabilidades al auditor. En la versión de pago incluye una funcionalidad que
permite lanzar un ataque sobre la víctima automáticamente al descubrir una
vulnerabilidad.

OpenVas

A causa de que Nessus se hiciera de pago, surgió OpenVas, una herramienta igual de
potente que la anterior con la ventaja de actualizarse diariamente. En versiones
anteriores, OpenVas venía por defecto en la distribución Kali Linux, en las últimas
© Universidad Internacional de La Rioja (UNIR)

versiones ya no es así.

Hacking Ético
16
Tema 4. Ideas clave
Para iniciarla, primero deberemos ir a: Aplicaciones > Kali Linux > Análisis de
vulnerabilidades > OpenVas > openvas initial setup. Esto arrancará la configuración
inicial, descargando los plugins necesarios en caso de estar preinstalada en Kali
Linux.

Figura 6. Inicio de OpenVas. Fuente: elaboración propia.

Tendremos que ingresar un usuario y contraseña para arrancar el servicio por


primera vez, el usuario por defecto es admin. Al ser la primera vez, puede tardar
bastante tiempo, ya que tiene que descargar toda la base de datos.

Al igual que en Nessus, tendremos que iniciar la aplicación y acceder mediante el


navegador a ella, en este caso suele ser el puerto 9392: https://localhost:9392
© Universidad Internacional de La Rioja (UNIR)

Hacking Ético
17
Tema 4. Ideas clave
Figura 7. Interfaz de OpenVas. Fuente: elaboración propia.

Antes que nada, deberemos actualizar la base de datos, iremos a la pestaña


Administration > NVT Feed > Synchronise with Feed Now. Una vez actualizado,
elegiremos un objetivo, iremos a la pestaña Configuration > Targets y pulsaremos el
icono de la estrella blanca.

Figura 8. Nuevo objetivo. Fuente: elaboración propia.

Le daremos un nombre, una dirección IP y un rango de puertos para escanear.


© Universidad Internacional de La Rioja (UNIR)

Hacking Ético
18
Tema 4. Ideas clave
Figura 9. Configuración del objetivo. Fuente: elaboración propia.

Finalmente, asignaremos una tarea para realizar en el objetivo. Para ello, iremos a
la pestaña Scan Management > New Task. Seleccionaremos un tipo de escaneo a
realizar, el objetivo sobre el que realizarlo y le daremos un nombre también.
Podremos elegir el número de hilos que escanearán a la vez.

Nexpose

La última herramienta para el escaneo de vulnerabilidades viene de los creadores de


Metasploit. Al igual que las otras dos ya mencionadas, Nexpose permite escanear
toda una red y a objetivos en particular mediante el entorno gráfico de navegador.

Su gran ventaja es que en el caso de encontrar alguna vulnerabilidad, mostrará


además si esta se encuentra en la base de datos de Metasploit. El único problema
con esta herramienta es que solo se encuentra para sistemas operativos Linux o
Windows de 64 bits, por lo que no podremos instalarlo en nuestra máquina Kali si
© Universidad Internacional de La Rioja (UNIR)

hemos optado por usar la de 32 bits.

Para instalar esta herramienta, descargaremos la versión community para nuestro


sistema operativo de la página oficial https://www.rapid7.com/products/nexpose/

Hacking Ético
19
Tema 4. Ideas clave
Una vez instalado, pondremos en nuestro navegador la URL https://localhost:3780.
Primero nos identificaremos y tendremos que definir el sistema a escanear. Para ello,
en la página principal pulsaremos en New static site. A partir de ahí, podremos definir
el nombre del sistema a escanear, la/s dirección/es IP que lo forman y el tipo de
escaneo que vamos a llevar a cabo.

Figura 10. New static site. Fuente: elaboración propia.

Desde la pantalla principal podremos visualizar todos los escaneos realizados y en


proceso. Al inicio estará vacío y deberemos crear un objetivo.
© Universidad Internacional de La Rioja (UNIR)

Hacking Ético
20
Tema 4. Ideas clave
Figura 11. Crear un objetivo. Fuente: elaboración propia.

En la pestaña General deberemos introducir el nombre y en la pestaña Assets


podremos introducir tantas direcciones IP como queramos o importar una lista desde
un archivo.

Elegiremos el tipo de escáner a realizar y lo configuraremos. Finalmente, en la


pantalla principal nos aparecerá el objetivo creado y pulsaremos el botón de Scan
(con forma circular) para comenzar el escaneo de vulnerabilidades.

Obtendremos la información de nuestro objetivo organizada según el riesgo de la


vulnerabilidad y, además, podremos ver si existe un exploit en la base de datos de
Metasploit para dicha vulnerabilidad.
© Universidad Internacional de La Rioja (UNIR)

Hacking Ético
21
Tema 4. Ideas clave
Figura 12. Resultado final. Fuente: elaboración propia.

4.4. Python como herramienta de explotación

Debido a la gran cantidad de librerías existentes, a su sencillez, y a su presencia por


defecto en cada vez más entornos, el lenguaje de programación Python se ha
convertido a lo largo de los últimos años en una excelente herramienta de
explotación y posexplotación.

Más allá de los frameworks facilitadores de determinadas tareas, lo cierto es que es


extremadamente simple desarrollar algunas tareas utilizando simplemente las
capacidades nativas, como programar una shell que «troyanice» un equipo o
interactuar con el sistema operativo.
© Universidad Internacional de La Rioja (UNIR)

A continuación, se mostrarán algunos ejemplos de cómo instrumentalizar el lenguaje.

Hacking Ético
22
Tema 4. Ideas clave
Sockets

Desde Python, como desde prácticamente cualquier lenguaje de programación,


podemos operar a nivel de la capa de transporte creando sockets. La diferencia con
respecto a otros lenguajes es que su uso en Python es extremadamente sencillo.

La funcionalidad de sockets está contenida en la librería socket, así que no hará falta
que instalemos nada. La Figura 13 muestra un ejemplo de cómo podríamos
implementar un servidor que, escuchando en un puerto, reciba comandos, los
ejecute, y devuelva la respuesta.
© Universidad Internacional de La Rioja (UNIR)

Figura 13. Código: servidor socket. Fuente: elaboración propia.

Hacking Ético
23
Tema 4. Ideas clave
Aunque podríamos conectarnos a este servicio utilizando cualquier utilidad, como
netcat, la Figura 14 muestra cómo podríamos hacerlo desde una consola de Python.

Figura 14. Código: cliente socket. Fuente: elaboración propia.

Requests + BeautifulSoup

También podemos contar con Python a la hora de explotar vulnerabilidades en


servicios web. Aunque la mayor parte de frameworks de auditoría web (Burp, ZAP,
etc.) cuentan con motores de automatización de tareas, en ocasiones es más sencillo
implementar algún script rápidamente.

La Figura 15 muestra un ejemplo de cómo, utilizando la famosa librería requests,


© Universidad Internacional de La Rioja (UNIR)

podríamos explotar una inyección SQL de tipo blind en el que, a medida que vamos
acertando con un patrón concreto de la contraseña, obtenemos un código HTTP
concreto. En este caso, cuando damos con un patrón correcto (enviando el símbolo
% como wildcard al final de la contraseña), pero no tenemos la contraseña completa,

Hacking Ético
24
Tema 4. Ideas clave
el servidor devuelve el código 500; si el código que recibimos es 200, hemos
encontrado la contraseña completa; y en cualquier otro caso, hemos fallado.
© Universidad Internacional de La Rioja (UNIR)

Figura 15. Código: uso de requests para ataque blind sql. Fuente: elaboración propia.

Hacking Ético
25
Tema 4. Ideas clave
La Figura 16 muestra cómo se podría obtener un prerrequisito analizando la página
web con otra conocida librería de procesado de código HTML: BeautifulSoup.

Figura 16. Código: análisis de DOM con bs4. Fuente: elaboración propia.

Pwntools

En las competiciones de hacking tipo CTF, hay determinadas operaciones que se


realizan recurrentemente (tratamiento de cadenas, análisis de binarios, etc.). Para
poder resolver estos escollos de forma rápida, el jugador conocido como Gallopsled
desarrolló un potente framework conocido como pwntools.

Desde pwntools podemos instrumentalizar la interacción, por ejemplo, con el


debugger gdb cuando buscamos explotar algún tipo de overflow. En la Figura 17 se
© Universidad Internacional de La Rioja (UNIR)

inicia gdb con el ejecutable vulnerable.exe estableciendo puntos de ruptura en las


asignaciones de memoria.

Hacking Ético
26
Tema 4. Ideas clave
Figura 17. Código: depuración a través de pwntools. Fuente: elaboración propia.

También podemos realizar un análisis estático de los ejecutables desde pwntools. La


Figura 18 muestra cómo podríamos buscar el punto de arranque de un ejecutable de
Linux.

Figura 18. Código: análisis de entrypoint con pwntools. Fuente: elaboración propia.
© Universidad Internacional de La Rioja (UNIR)

Por último, cuenta con un modo CLI para ejecutar determinadas tareas rutinarias:
transformación de cadenas a hexadecimal, creación de patrones para detectar dónde
está desbordándose un buffer (Figura 19), crear shellcodes para inyectar en un buffer
vulnerable, etc.

Hacking Ético
27
Tema 4. Ideas clave
Figura 19. Código: generación de patrones con pwntools. Fuente: elaboración propia.

El propio Gallopsled ofrece una gran cantidad de documentación sobre la


herramienta a través de tutoriales prácticos.

Scapy

La creación o manipulación de elementos involucrados en una conexión de red se ha


llevado a cabo tradicionalmente mediante el uso de structs en C, una tarea realmente
ardua y difícil de mantener. La simplicidad con la que permite realizar este tipo de
tareas, junto con su increíble potencia, han hecho de Scapy una de las más valiosas
librerías de Python.

Algunas de las operaciones que realizaremos requieren el uso de elementos a nivel


de kernel, por lo que normalmente la ejecutaremos como un usuario privilegiado.
La Figura 20 muestra un ejemplo de cómo podríamos construir todo un paquete, con
parámetros completamente falsos (la IP de origen, la dirección MAC, etc.).
© Universidad Internacional de La Rioja (UNIR)

Figura 20. Código: paquete básico con scapy, Fuente: elaboración propia.

Hacking Ético
28
Tema 4. Ideas clave
Existen numerosos ejemplos de cómo se puede utilizar esta funcionalidad para
desarrollar tareas como el ARP Spoofing previo a un Mitm (Awesome Scapy),
resumido en la Figura 21; o atacar directamente partes de protocolos, como campos
de una petición DNS.

Figura 21. Código: ARP spoofing con scapy. Fuente: elaboración propia.

Además, desde scapy podemos hacer algo más que mandar mensajes. Cuenta con
numerosas capacidades de análisis y representación y puede servir como interfaz
de monitorización de operaciones de red. La Figura 22 muestra cómo podríamos
obtener las direcciones consultadas a un servidor DNS durante un minuto.
© Universidad Internacional de La Rioja (UNIR)

Figura 22. Código: filtrado de peticiones DNS. Fuente: elaboración propia.

Hacking Ético
29
Tema 4. Ideas clave
Scrapy

El framework scrapy permite construir rápidamente sistemas de exploración y


análisis de páginas web. Cuenta con una documentación exhaustiva y, como
muestra la Figura 23, está construido de forma que sigue una filosofía modular en la
que solo será necesario programar los componentes concretos que necesitemos
personalizar en cada tarea, donde el más importante será la araña.

Figura 23. Arquitectura de scrapy. Fuente: programador clic, s. f.

La Figura 24 ilustra un ejemplo que podría ser útil para enumerar campos de
contraseña en una web. Este código permitiría buscar todas las URL de un dominio a
las que se envíe algún campo en el que se haya introducido una contraseña.
© Universidad Internacional de La Rioja (UNIR)

Hacking Ético
30
Tema 4. Ideas clave
© Universidad Internacional de La Rioja (UNIR)

Figura 24. Código: araña de búsqueda de campos de contraseña. Fuente: elaboración propia.

Hacking Ético
31
Tema 4. Ideas clave
Una vez guardado en el archivo «PasswordSpider.py», ponerlo en marcha sería tan
simple como ejecutar el comando que se muestra en la Figura 25, que, además,
almacenaría los resultados generados por el script en un fichero json para su
posterior utilización.

Figura 25. Código: lanzamiento de araña sobre el dominio Facebook.com. Fuente: elaboración propia.

4.5. Lecciones magistrales

Este video, titulado Ibombshell: el uso del Powershell en pentesting, enumera las
capacidades del entorno Powershell, y sus beneficios a la hora de realizar un test de
penetración. Mientras que otros frameworks requieren prerrequisitos o la
introducción de artefactos más complejos en el sistema, Powershell actúa como un
sistema nativo que cuenta además con una infinidad de capacidades a la hora de
manipular el equipo; como queda evidenciado con el uso de iBombShell.

En este video, titulado Uso de scapy, se muestra cómo, además de mediante la


creación de scripts, se puede operar utilizando el framework scapy desde CLI, además
de los beneficios que puede aportar frente al uso de herramientas más complejas.
Mediante scapy podrá crear mensajes a muy bajo nivel de una forma sencilla e incluso
© Universidad Internacional de La Rioja (UNIR)

interceptar comunicaciones sin necesidad de recurrir a una interfaz gráfica.

Hacking Ético
32
Tema 4. Ideas clave
4.6. Referencias bibliográficas

Programador clic. (s. f.). Descripción general de la arquitectura scrapy.


https://programmerclick.com/article/45291502749/
© Universidad Internacional de La Rioja (UNIR)

Hacking Ético
33
Tema 4. Ideas clave
A fondo
Lanzar un escaneo en Nessus

Tenable Product Education. (2019, octubre 14). Launch a Basic Network Scan in Nessus
Professional [Vídeo]. Youtube. https://www.youtube.com/watch?v=xgSJ4ZcbxMY

Vídeo explicativo de cómo utilizar Nessus para generar un escaneo de


vulnerabilidades.

Usar OpenVas para encontrar vulnerabilidades

Stefan Rows. (2018, febrero 15). How to find Exploits with OpenVAS [Vídeo]. Youtube.
https://www.youtube.com/watch?v=jOT82jGWyL8

Vídeo explicativo paso a paso de cómo utilizar Openvas para encontrar exploits en un
entorno controlado.

Uso de Nexpose

Rapid7. (2012, septiembre 7). Nexpose Getting Started Video [Vídeo]. Youtube.
https://www.youtube.com/watch?v=OpPaX195mB4

Vídeo explicativo de cómo configurar Nexpose para comenzar a realizar escaneos y


análisis de vulnerabilidades.
© Universidad Internacional de La Rioja (UNIR)

Hacking Ético
34
Tema 4. A fondo
Test
1. Nessus y Openvas permiten…
A. Obtener información del objetivo para crear un mapa de información.
B. Realizar escaneos automáticos de vulnerabilidades con información previa.
C. Generar un cuadro de mandos con los servicios abiertos y las versiones de
cada uno.
D. Permiten realizar tareas de escalada de privilegios y posexplotación de
manera automatizada.

2. Los mapas de información tienen como objetivo:


A. Crear de una manera visual el plan de búsqueda de información para recabar
información.
B. Generar un mapa de calor con las criticidades y riesgos tecnológicos de un
activo o máquina objetivo.
C. Permite recoger y agrupar la información necesaria para realizar un vector
de ataque de manera optimizada.
D. Ninguna de las anteriores.

3. La diferencia entre Nessus y Openvas es que:


A. Nessus nos da información acerca de los exploits disponibles sobre una
vulnerabilidad mientras que Openvas no.
B. Openvas tiene una licencia de pago con la que tendremos la posibilidad de
realizar escaneos a un número ilimitado de IPs o máquinas objetivo.
C. Nessus no está soportado para plataformas UNIX mientras que Openvas si.
D. Ninguna de las anteriores.
© Universidad Internacional de La Rioja (UNIR)

Hacking Ético
35
Tema 4. Test
4. Nexpose es una herramienta de análisis de vulnerabilidades que:
A. No está integrada en Kali Linux por defecto.
B. Está desarrollada por el mismo equipo de Metasploit.
C. Nos arroja información de exploits que pueden ser utilizados con Metasploit.
D. Todas son correctas.

5. Si queremos programar un script para hacer ARP spoofing, utilizaremos la librería:


A. socket
B. arpanet
C. scapy
D. pwntools

6. Pwntools permite:
A. Explotar vulnerabilidades rápidamente (pwnear equipos)
B. Generar cadenas de texto que permitan identificar puntos desbordamiento
de buffer
C. Automatizar ataques a sistemas en red
D. Instalar herramientas de hacking a través de la terminal

7. Si utilizamos la librería requests:


A. Podemos automatizar ataques http
B. Podemos consultar stackoverflow desde la consola de python
C. Podemos mejorar la aparicencia de una web de phishing ayudándonos de
BeautifulSoup
D. Depuraremos programas mediante peticiones a gdb
© Universidad Internacional de La Rioja (UNIR)

Hacking Ético
36
Tema 4. Test

También podría gustarte