Herramientas de Seguridad y Hacking Ético
Hay que tener en cuenta que cada día existen más herramientas enfocadas en distintas tareas del ámbito del hacking ético.
Por si esto no fuera suficiente, la comunidad open source aporta a este ecosistema la gran mayoría de las herramientas utilizadas. Esto quiere decir que muchas de las herramientas que se utilizan activamente hoy en día puede que queden desactualizadas o en desuso en un futuro. Sin embargo, aparecerán nuevas herramientas destinadas a suplir las carencias que pudieran tener las anteriores.
En las siguientes entradas de este blogs se mostrarán brevemente el tipo de herramientas utilizadas en cada fase y en posteriores módulos se explicará en detalle el uso específico de las herramientas más importantes.
Herramientas de Descubrimiento y Reconocimiento
La fase de reconocimiento es la primera de todas las fases de una auditoría de sistemas o infraestructura. En ella se trata de obtener la máxima cantidad de información posible de los activos que conforman el alcance de la auditoría.
Existen dos tipos de reconocimiento que detallaremos brevemente junto con las herramientas más comunes utilizadas y las capacidades que aportan.
Reconocimiento pasivo
Es el proceso de recolección de información del objetivo que se está auditando a través de fuentes de información de dominio público.
En ningún momento se establece comunicación con el objetivo. En su lugar, esta información es obtenida a través de motores de búsqueda (Google, Bing, etc.), whois, página web de la organización, etc.
A continuación se muestran algunas herramientas utilizadas durante el reconocimiento pasivo:
- Redes Sociales
Actividades:
- Obtener datos de contacto y personales
- Averiguar intereses personales
- Averiguar tecnologías utilizadas en la compañía
Herramientas:
- twitterscrapper: Recopila información de un determinado perfil en twitter.
- ultimate facebook scrapper: Recopila información de un determinado perfil en Facebook.
- scrapedin crawler: Recopila información de un determinado perfil en LinkedIn.
- Aplicaciones colaborativas
Actividades:
- Se puede obtener las tecnologías utilizadas en la organización.
- Se puede llegar a obtener porciones de código de aplicativos desarrollados por el cliente objeto de la auditoría.
- Se pueden llegar a extraer credenciales de usuario o APIKeys.
Herramientas:
- pastehunter: Realiza búsquedas en pastebin buscando información sensible o fragmentos de código
- githubscrapper: Herramienta para buscar información sensible en GitHub, encuentra credenciales, APIKeys, ficheros de configuración, etc.
- Buscadores
Actividades:
- Se pueden realizar búsquedas muy concretas haciendo uso de operadores de búsqueda.
- Existen recopilaciones de búsquedas tipo para localizar rápidamente sistemas vulnerables, dispositivos expuestos, etc.
Herramientas:
- Google: Es el buscador más utilizado. Dispone de numerosos operadores de búsqueda.
- Bing: Buscador de Microsoft. Permite realizar búsquedas basadas en direcciones IP.
- Shodan: Indexa tecnología y servicios. Permite realizar búsquedas por servicios y versiones concretas.
- Censys: Buscador parecido a Shodan. Permite realizar activos que compartan los mismos datos en el certificado.
- Registros whois
Actividades:
- Se pueden obtener a quién pertenece una dirección IP pública y sus datos de contacto.
- Se puede localizar los rangos de direccionamiento IP pertenecientes a una determinada compañía.
Herramientas:
- comando whois: Herramienta de consola versiones para vario S.O.
- whois.domaintools.com: Servicios web que nos facilitan la realización de consultas whois a través de este portal en internet
- Email harvesting
Actividades:
- Búsqueda de direcciones de correo electrónico del personal perteneciente a la compañía auditada.
Herramientas:
- theHarvester: Herramienta que recopila información sobre direcciones de correo electrónico asociadas a un determinado dominio.
Reconocimiento activo
Es el proceso de recolección de información del objetivo que se está auditando a través del uso de técnicas o herramientas que se comunican con el activo a auditar.
Estas pruebas pueden ser detectadas por el objetivo dado que es necesaria una interacción directa contra el mismo. Por ejemplo, realizar un descubrimiento de puertos, un crawling, etc.
A continuación se muestran algunas herramientas utilizadas durante el reconocimiento activo:
- Enumeración DNS
Actividades:
- Averiguar la dirección IP asignada a un host (y en algunas ocasiones el host asociado a una determinada dirección IP).
- Obtener los principales servidores asociados a un dominio (NS, MX y SOA).
- Si se encuentra mal configurada la transferencia de zona se pueden volcar todos los registros del dominio.
Herramientas:
- dig y nslookup: Herramientas de consola que nos permite realizar consultas DNS de manera manual.
- dnsrecon: Automatiza todas las consultas que deberíamos realizar mediante dig o nslookup. Además, Nos proporciona la información de manera estructurada.
- dnsenum: Similar a dnsrecon pero aporta la ventaja de realizar descubrimientos de host y/o subdominios mediante técnicas de fuerza bruta.
- Enumeración SMTP
Actividades:
- Enumerar cuentas de usuario en un determinado dominio.
Herramientas:
- smpt-user-enum: Script que automatiza la enumeración de cuentas de usuario a través del protocolo SMTP y mediante los comandos (RCPT, EXPN y VRFY).
- Enumeración SNMP
Actividades:
- Obtener información de la configuración de dispositivos.
- Modificar la configuración de los dispositivos.
- Utiliza claves por defecto "public" y "private" para acceder a la información o gestionar los dispositivos respectivamente.
Herramientas:
- onesixtyone: Utiliza técnicas de fuerza bruta para averiguar los community strings que nos permiten acceder a los roles public y private.
- snmpwalk: En caso de disponer (o averiguar) las community string de acceso se puede acceder a la configuración de un dispositivo.
- Enumeración SMB
Actividades:
Permite obtener información de la configuración de una red Microsoft Windows:
- Políticas de contraseñas
- Usuarios
- Grupos
- Equipos
- ID de usuario y host
Herramientas:
- nbtscan y enum4linux: Herramientas que establecen una sesión con el sistema remoto y recupera la información disponible.
- Scripts nmap: nmap es una herramienta de análisis de red que proporciona capacidades de enumeración gracias a diversos scripts.
Herramientas de Escaneo y Monitorización
La fase de escaneo se realiza después de realizar la fase de reconocimiento. En ella tratamos de obtener más información sobre el propósito de los activos incluidos en el alcance de las pruebas.
Se averigua los distintos componentes de la infraestructura, el rol que desempeña cada activo, el número de servicios y versiones de los mismos que se encuentran prestando servicio en cada activo.
Además, también se realiza un análisis de las posibles vulnerabilidades existentes en el sistema tomando como referencia las versiones de los servicios que el activo sustenta así como la versión del Sistema Operativo.
De esta manera podremos localizar si los activos auditados presentan algún tipo de vulnerabilidad publica.
A continuación se muestran los diversos tipos de escaneo y una serie de herramientas para poder realizarlos.
Escaneo de red
Trata de obtener mayor información sobre la red objetivo, direccionamiento IP y la arquitectura utilizada para sustentar la infraestructura.
- Wireshark / tcpdump
Wireshark y tcpdump son dos motores de análisis de los datos transmitidos en una comunicación que circulan por la red. Aunque no son herramientas que realicen labores de escaneo, se utilizan para poder capturar y analizar los paquetes que
enviamos o recibimos a través de nuestro interfaz de red.
- arpscan / net discover
Ambas herramientas permite el descubrimiento de equipos remotos monitorizando los mensajes broadcast de tipo ARP Discovery que llegan a nuestro interfaz de red.
- nmap como escáner de red
La herramienta nmap puede ser utilizada en los tres tipos de categorías de escaneo (Escaneo de red, escaneo de servicios y escaneo de vulnerabilidades). En el caso de realizar un escaneo de red hay que saber previamente el rango de red a escanear (Dato que puede obtenerse mediante el uso de las dos herramientas anteriores)
Escaneo de servicios
Orientada a obtener información sobre los servicios específicos, versiones y tecnología de los mismos presentes en cada activo de la infraestructura.
- nc / netcat
Herramienta de red que permite establecer comunicación con los puertos TCP/UDP, asociar una shell a un puerto en concreto y poner un puerto UDP/TCP a la escucha. Además, el operador -z permite utilizar nc como escáner de puertos
- nmap como escáner de servicios
En cuanto al escaneo de servicios nmap puede localizar puertos abiertos en equipos remotos y utilizar varias técnicas para evadir los sistemas de protección de red en el protocolo TCP.
Estás técnicas de evasión se basan en el funcionamiento del establecimiento de la comunicación en el protocolo TCP
- Zenmap
Proporciona las mismas capacidades que la herramienta nmap pero incorpora la particularidad de poder representar los resultados mediante una interfaz gráfica de una manera más visual.
También incluye ciertos tipos de escaneos preconfigurados a falta de introducir el objetivo
Escaneo de vulnerabilidades
Una vez completado los escaneos de red y de servicios, se comprueba si existe alguna vulnerabilidad conocida para cada protocolo y versión del software utilizado.
- nmap como escáner de vulnerabilidades
Es posible utilizar nmap como escáner de vulnerabilidades haciendo uso de los scripts de detección de vulnerabilidades.
- Scripts específicos: Scripts de nmap que buscan ciertas vulnerabilidades de las versiones de algunos servicios. Todos estos scripts se engloban bajo la categoría “vuln” podemos indicar que ejecuten los scripts de este tipo.
- Proyecto vulscan: Utiliza nmap para realizar una búsqueda de posibles vulnerabilidades basándonos en la versión de los servicios localizados en el sistema remoto. Se apoya en un script nse y una base de datos de vulnerabilidades locales para detectar los servicios vulnerables (https://github.com/scipag/vulscan)
- nessus
Nessus es la aplicación de escaneo de vulnerabilidades más conocida y utilizada.
Realiza los tres tipos de escaneos (escaneo de red, escaneo de servicios/versiones y escaneo de vulnerabilidades) de una manera totalmente desatendida. (https://es-la.tenable.com/products/nessus).
- OpenVas
Es un scanner de vulnerabilidades de seguridad parecido a Nessus, también realiza los tres tipos de escaneo de manera desatendida.
Aunque tiene una versión de pago, los plugins que detectan las vulnerabilidades no se encuentran tan actualizados como los de nessus. (https://www.openvas.org).
Herramientas de Explotación
Tras la identificación de vulnerabilidades en los servicios identificados en las fases anteriores, el siguiente paso es poder explotar las vulnerabilidades que hubieran sido descubiertas.
El objetivo de esta frase es mostrar el riesgo real de la vulnerabilidad, en base a la confidencialidad integridad y disponibilidad de la información. Para ello necesitamos hacer uso de ciertas herramientas de explotación dependiendo del vector de ataque.
A continuación se enumeran algunas de ellas junto a sus principales características.
Explotación de vectores específicos
Aunque el vector más común de ataque consiste en la explotación de una vulnerabilidad, no es el único vector que nos puede dar acceso a un equipo remoto.
A continuación, realizamos una enumeración de los más importantes:
- Ejecución de un programa malintencionado
También conocido como malware consiste en generar un payload o shellcode en un formato ejecutable o camuflado dentro de un programa legítimo. Este programa se puede distribuir de distintas maneras a las víctimas, pero siempre está condicionado a un factor de ingeniería social para que la víctima ejecute el malware.
Por ejemplo, esconder el payload en una macro de Excel y enviar un correo masivo a los empleados de una compañía para que crean que en el Excel está la relación de subidas salariales.
Herramientas:- msfvenom: Herramienta para generar y ofuscar malware para distintas plataformas.
- shellter: Herramienta utilizada para camuflar Malware en aplicativos legítimos.
- goPhish: Framework dedicado al envío de correos Phishing.
- Credenciales por defecto o poco robustas
Vector de acceso muy común debido a que cierto software y dispositivos de red se despliegan con una contraseña por defecto establecida por el fabricante. Si esta contraseña no se modifica, puede ser utilizada por un atacante para ingresar en el sistema.
Herramientas:
- Patator: Herramienta para realizar ataques de fuerza bruta con alto grado de configuración. Permite establecer las condiciones necesarias evaluar la respuesta emitida por el equipo remoto y considerar si las credenciales introducidas son correctas.
- Medusa: Herramienta que realiza fuerza bruta de Login en distintos protocolos. Permite paralelismo de conexiones.
- Hydra: Herramienta que realiza fuerza bruta de Login en distintos protocolos. Se recomienda para realizar fuerza bruta de las community strings de SNMP.
Son herramientas que nos permiten monitorizar las comunicaciones de red e incluso modificar la información enviada por el protocolo. Normalmente este tipo de herramientas se utilizan en comunicaciones a nivel HTTP/HTTPS.
- BurpProxy
Proxy de interceptación HTTP/HTTPS dispone de una versión community (gratuíta) y una versión de pago que incluye numerosas características. Permite monitorizar y modificar el tráfico HTTP/HTTPS, dispone de plugins para ampliar las capacidades del framework e incluso dispone de una funcionalidad de escáner automático.
(https://portswigger.net/burp)
- ZapProxy
Proxy de interceptación HTTP/HTTPS es una herramienta opensource desarrollado por la fundación OWASP. Permite monitorizar y modificar el tráfico HTTP/HTTPS, dispone de plugins para ampliar las capacidades del framework e incluso dispone de una funcionalidad de escáner automático.
(https://www.zaproxy.org/)
- Echo Mirage
Proxy de interceptación para Sistemas Operativos Microsoft windows que permite monitorizar y modificar los paquetes de red de cualquier protocolo. Está muy limitado en el sentido que no se puede modificar el tamaño del paquete de datos a enviar.
(https://sourceforge.net/projects/echomirage.oldbutgold.p/)
Exploits públicos o Pruebas de Concepto (PoC)
Son herramientas específicas para aprovecharse de una vulnerabilidad en concreto, se suelen desarrollar con fines educativos y suelen disponer de licencia opensource.
- exploit-db
Base de datos online de búsqueda de vulnerabilidades y exploits. disponible en la dirección URL
(https://www.exploit-db.com/)
- Github como repositorio de pruebas de concepto
Utilizado como repositorio de código fuente, también podemos localizar pruebas de concepto de vulnerabilidades, e incluso exploits totalmente funcionales.
(https://github.com/search?q=CVE-2022)
- searchsploit
Herramienta disponible en Kali Linux, Base de Datos local con todos los exploits públicos de exploit-db.
(https://www.kali.org/tools/exploitdb/)
Frameworks de explotación
Son herramientas tipo suite que incluyen un gran número de exploits de vulnerabilidades conocidas así como otras características de explotación y postexplotación como puedan ser módulos auxiliares de escaneo, shells avanzadas, servidores tipo Command and Control, etc.
- Metasploit
Esta herramienta es una suite completa de Explotación y Postexplotación y contiene una gran cantidad de exploits y módulos auxiliares para su consulta y uso. Dispone de versiones open source y comercial
(https://www.metasploit.com/)
- CobaltStrike
En este caso Cobaltstrike es un servidor Comand and Control totalmente configurable, además posee bastantes módulos de postexplotación y un shellcode propio llamado "beacon". En este caso es una herramienta comercial.
(https://www.cobaltstrike.com/)
Herramientas de Postexplotación
La fase de Postexplotación está separada por una delgada línea de la fase de explotación. Y es que las dos fases son prácticamente idénticas, la única diferencia es que en la fase de Postexplotación ya partimos de un primer sistema comprometido y nuestro objetivo será utilizar los mismos vectores de ataque para conseguir elevar privilegios en el equipo comprometido o intentar explotar otro equipo al alcance desde el equipo comprometido. Utilizar el equipo para “pivotar” a red interna, etc.
De esta manera, gran parte de las aplicaciones utilizadas durante la fase de explotación también serán utilizadas en esta fase de Postexplotación.
Sellcodes
Una shellcode es un tipo de payload que normalmente inicia una Shell de comandos en un equipo que se ha podido comprometer a través de una vulnerabilidad o exploit, pudiendo controlar de manera remota la máquina comprometida.
- msfvenom
La herramienta msfvenom es un framework incluido en la suite Metasploit que se utiliza para generar los payloads y/o shellcodes.
Se puede utilizar la herramienta para generar estos payloads por separado y en numerosos formatos de salida.
(https://www.offsec.com/metasploit-unleashed/msfvenom/)
- Meterpreter
Meterpreter es un payload avanzado de tipo Shellcode disponible en Metasploit.
Es extensible de manera dinámica mediante la inyección de librerías dlls, pudiendo cargar módulos en el equipo comprometido de manera dinámica. Además, se ejecutaenteramente en memoria sin dejar traza en disco.
Puede inyectarse en distintos procesos siempre que dispongamos de privilegios elevados para modificar el contexto del proceso.
(https://www.offsec.com/metasploit-unleashed/about-meterpreter/)
- Beacons
Beacon es el payload avanzado de Cobalt. Es totalmente configurable y permite la modificación de shellcodes a través del “Artifact-Kit”. También permite modificar los protocolos de comunicación que utiliza para tratar de pasar desapercibido mediante tráfico legítimo.
Al igual que meterpreter, puede inyectarse en otros procesos y ejecutarse enteramente en memoria.
Por otro lado, permite la carga dinámica de módulos.
(https://hstechdocs.helpsystems.com/manuals/cobaltstrike/current/userguide/content/topics/post-exploitation_main.htm)
Elevación de privilegios
Es el proceso que describe la acción de conseguir un nivel de permisos más elevados en un sistema, existen numerosas técnicas y herramientas para poder realizar este tipo de acciones. A continuación se presentan algunas de las más utilizadas:
- PrivescCheck
Esta herramienta es capaz de enumerar los problemas más comunes de configuración de Windows que se pueden aprovechar para la escalada de privilegios locales. También recopila diversa información que puede ser útil para la explotación y/o post-explotación.
El propósito de esta herramienta es ayudar a los consultores de seguridad a identificar posibles debilidades en las máquinas con Windows durante los Test de intrusión. Genera muchas trazas en el equipo remoto.
(https://github.com/itm4n/PrivescCheck)
- WinPEAS
Al igual que PrivescCheck realiza una búsqueda de patrones claros en la configuración, o en la falta de actualizaciones del sistema, que permitan a un usuario realizar una elevación de privilegios local en un sistema Microsoft Windows.
Como particularidad, para cada técnica de elevación de privilegios presenta un enlace a la información necesaria para aprovecharse de ella.
(https://github.com/carlospolop/PEASS-ng/tree/master/winPEAS)
- LinPEAS
Al contrario que WinPEAS realiza una búsqueda de patrones claros en la configuración, o en la falta de actualizaciones del sistema, que permitan a un usuario realizar una elevación de privilegios local en sistemas basados en LINUX.
De manera similar a su homólogo, para cada técnica de elevación de privilegios presenta un enlace a la información necesaria para aprovecharse de ella.
(https://github.com/carlospolop/PEASS-ng/tree/master/linPEAS)
Extracción de información
Es el proceso que se realiza para tratar de extraer información confidencial o sensible del sistema, por ejemplo, credenciales o hashes.
- Mimikatz
Herramienta utilizada para extraer información sensible de la memoria RAM de Windows, se pueden extraer hashes, credenciales en claro, tokens, etc.
También permite ejecutar técnicas avanzadas para utilizar las credenciales y hashes capturadas, como son el uso de técnicas de tipo "Pass the Hash" y la generación de "Golden Tickets".
(https://github.com/gentilkiwi/mimikatz)
- Keyloggers
Las herramientas de tipo keylogger se ejecutan en una máquina comprometida para capturar todas las pulsaciones de teclado. De esta manera se puede llegar a recopilar credenciales que el usuario del equipo haya podido introducir para acceder a un determinado sistema o aplicativo.
(https://www.offsec.com/metasploit-unleashed/keylogging/)