Categorías
Ciberinteligencia Hacking

Nueva formación:Curso de OSINT para analistas e investigadores: Técnicas de rastreo en Internet y la Deep Web – Nivel 1

Ya está disponible nuestra nueva formación especializada en OSINT (Open Source Intelligence), dirigida a analistas, investigadores y profesionales de la ciberseguridad que quieran mejorar sus habilidades de investigación y aplicar técnicas de reconocimiento.

🔍 ¿Qué aprenderás en este curso de OSINT?

Como de costumbre en The Hacker Way, es una formación 100% práctica y didáctica, repleta de ejemplos reales y ejercicios. A lo largo del contenido aprenderás a:

  • Utilizar herramientas avanzadas de OSINT para rastrear información en Internet y la Deep Web.
  • Investigar personas y empresas desde una perspectiva profesional.
  • Organizar y documentar hallazgos de forma estructurada.
  • Entender los aspectos legales y éticos de las investigaciones OSINT.
  • Navegar y trabajar en Darknets como TOR, I2P y Hyphanet (antes Freenet).
Aprende sobre la Deep Web

🗓️ ¡En preventa hasta el 22 de junio!

La formación se encuentra en preventa hasta el 22 de junio con un descuento exclusivo de 30 €.


👉 Mi recomendación es que aproveches esta oferta antes de que finalice.

Ah, además, en el precio están incluidas todas las actualizaciones que se irán publicando, las cuales incluirán ejercicios prácticos, uso de herramientas y técnicas modernas.

La formación está compuesta por vídeos y recursos descargables.

En total, tendrás acceso a aproximadamente 10 horas de vídeo, a las que estimamos que deberás dedicarle aproximadamente 40 horas para realizar las prácticas y ejemplos que se enseñan en las lecciones.

Además de este curso de OSINT para analistas e investigadores, también tenéis disponible el curso de Técnicas de Investigación con OSINT si buscas algo más introductorio y no tan avanzado sobre este tema.

¡Aprovecha la oportunidad y apúntate!

Categorías
Hacking

SSH Hardening & Offensive Mastery: libro sobre seguridad SSH con enfoque ofensivo y defensivo


Nuestros amigos de DSDSec nos han hecho llegar un libro muy interesante sobre seguridad SSH, titulado SSH Hardening & Offensive Mastery. Su autor, Diego Ruiz de Bucesta y Álvarez, lo ha puesto a disposición del público de forma gratuita.

Qué podemos encontrar en SSH Hardening & Offensive Mastery

Esta obra comienza con una visión defensiva orientada a la fortificación del protocolo y continúa con una perspectiva ofensiva, mostrando escenarios prácticos explicados paso a paso. El libro muestra distintos laboratorios detallados y reproducibles, incluyendo al final de cada uno propuestas de mitigación, lo cual lo convierte en una lectura de enorme interés tanto para equipos Blue como Red, sysadmins y cualquier profesional o amante de la ciberseguridad.

La publicación cuenta además con un prólogo escrito por Manuel Luis Ruiz de Bucesta, presidente del Instituto de Estudios Históricos Bances y Valdés, y con un prefacio a cargo de Ariel Ruiz Mateos, miembro de DSDSec y colaborador habitual de la revista @rroba, así como de otras publicaciones especializadas como USERS.CODE y Hackin9.

Entre los temas que se tratan en SSH Hardening & Offensive Mastery se incluyen:

  • Configuración segura de SSH y mecanismos de autenticación como 2FA
  • Detección y mitigación de ataques mediante Fail2Ban y Suricata (IDS/IPS)
  • Túneles SSH en sus distintas variantes (local, remoto, dinámico, UDP)
  • Evasión de restricciones y secuestro de sesiones SSH (agent hijacking)
  • Propagación de malware mediante túneles dinámicos (ej. Metasploit + BlueKeep)
  • Análisis y explotación de vulnerabilidades como CVE-2018-15473 y Terrapin (CVE-2023-48795)
  • Uso de técnicas de explotación de variables de entorno (LD_PRELOAD)
  • Desarrollo de scripts a medida y herramientas en Tcl/Expect y Perl


Enlace directo a SSH Hardening & Offensive Mastery en PDF.

Más información acerca del proyecto aquí.

Se trata de un recurso 100% recomendable para todos aquellos que deseen profundizar en la seguridad de este protocolo con un enfoque práctico, técnico y riguroso.

Categorías
Hacking Python

Cómo crear Rainbow Tables con Python para descifrar hashes

En esta ocasión os vamos a enseñar cómo crear Rainbow Tables con Python para cualquier algoritmo de hashing que esté soportado por la librería hashlib.

Pero, por si alguno aún no lo sabe…

¿Qué son las Rainbow Tables?

Se conoce como Rainbow Tables a tablas de hashes donde podemos encontrar equivalencias de contraseñas hasheadas. Realmente, esto recibe el nombre de Complete Lookup Tables.

Las Rainbow Tables son tablas con una función muy similar, pero que se usan principalmente para las contraseñas largas, ya que el coste computacional de encontrar esas contraseñas mediante ataques de fuerza bruta o ataques de diccionario puede ser demasiado elevado.

Por eso, en esta publicación, usaré el término Rainbow Tables como sinónimo de Complete Lookup Tables.

Es decir, por poner un ejemplo, si usamos la función de hashing MD5 para cifrar la contraseña «password», obtendremos el hash «5f4dcc3b5aa765d61d8327deb882cf99».

Las funciones de hashing, como muchos sabréis, no son reversibles, por lo que no es como convertir una cadena a base64, que se puede deshacer con una simple función.

Para descubrir la equivalencia de un hash con una contraseña, hemos de comparar el hash que tenemos con el hash generado a partir de esa contraseña. Y ahí es donde entran las Rainbow Tables.

Además, en algunas funciones de hashing se puede añadir lo que se conoce como «salt», que no es otra cosa que una palabra de cifrado que ayuda a dificultar aún más la posibilidad de descifrar la contraseña.

En este caso nos centraremos en hashes sin salt, es decir, hashes que han sido creados a partir de la contraseña directamente, y con los que se ha creado una tabla para un diccionario de palabras concreto.

En nuestro ejemplo usaremos el algoritmo MD5 y el diccionario rockyou.txt, de sobras conocido por la gran mayoría de hackers. Cabe decir que se puede editar el código que encontraréis a continuación para elegir otro algoritmo, y el diccionario a utilizar puede ser cualquier archivo de texto plano «txt» con una lista de palabras.

Es momento de enseñaros cómo crear esas rainbow tables con python y desgranar el algoritmo de la herramienta en cuestión, creada por DamonCDB y la cual podéis encontrar en su GitHub.

Python para crear Rainbow Tables

Rainbow Tables con Python línea a línea

Lo primero que debemos hacer es importar la librería hashlib que es la que contiene las distintas funciones de hashing que utilizaremos para crear las rainbow tables con Python. Para ello, la primera línea del código debe ser la siguiente:

import hashlib

De esta forma tenemos disponibles las funciones incluidas en hashlib que nos ayudarán a crear las rainbow tables según la función de hashing que elijamos (MD5, SHA-256, etc.)

A continuación hacemos que el programa nos pida el hash que queremos buscar en la tabla:

hash = input("Introduce el hash a buscar en el diccionario: ").strip()

Con esta línea de código nos aseguramos de que se elimine cualquier espacio al final o al principio del hash, por si lo copiamos con algún espacio y no nos damos cuenta (algo que puede pasarnos si vamos demasiado deprisa).

Después hemos de indicarle a la herramienta la ruta del diccionario de contraseñas que queremos usar. Para ello usamos la siguiente línea de código:

dict_path = input("Introduce la ruta del archivo del diccionario de contrasenyas: ").strip()

La herramienta ya está preparada para pedirnos el hash y el diccionario que queremos usar, pero no es suficiente para que lea el contenido del diccionario. Para ello le decimos a la herramienta que lea la lista de palabras:

f = open(dict_path, "r", encoding='latin-1')

Una vez abierto al archivo del diccionario en modo lectura e introducido el hash, lo que queda es que la herramienta compruebe si dicho hash pertenece a alguna de las palabras del diccionario que le hemos indicado.

Para ello lo que haremos es, línea por línea, crear el hash de cada palabra con la función seleccionada (en nuestro caso MD5, pero como ya se ha dicho, se puede cambiar el código para que use otra función de hash incluida en hashlib).

Después de eso se comparará el hash creado con el introducido por el usuario, y si coinciden, nos devolverá la contraseña a la que pertenece dicho hash y la herramienta se cerrará. En caso de no coincidir, pasará a la siguiente línea, y así continuamente hasta llegar a la última. Si la herramienta no devuelve un resultado, significa que no ha encontrado ninguna palabra cuya conversión con esa función coincida con el hash introducido.

En el supuesto caso en que el archivo que le hemos introducido como ruta del diccionario no exista, nos avisará de que no puede abrir el archivo indicado.

Todo esto se hará mediante una sentencia try – except de Python:

try:
    for line in f:
        password = line.strip()
        hash_md5 = hashlib.md5(password.encode('utf-8')).hexdigest()
        if hash == hash_md5:
            print("El hash " + hash + " pertenece al password " + password)
            break
except FileNotFoundError:
    print("No se pudo abrir el archivo. Verifica la ruta.")

Y eso es todo. Como veis es bastante sencillo crear una herramienta de este tipo para tener nuestras propias rainbow tables con Python.

Y si queréis aprender más sobre Python y ciberseguridad, no dudéis en visitar nuestro curso de Herramientas para Hacking y Pentesting integradas en Python

Curso de Herramientas de Hacking con Python