Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CVE-2018-10933 — CTF challenge explotando CVE-2018-10933, bypass de autenticación de libSSH. Incluye configuración de Docker, script de explotación y guía paso a paso para descubrir flags ocultas mediante enlaces simbólicos. | Kitploit
Herramientas/GitHubGitHub/silasspringer/cve-2018-10933
Análisis de VulnerabilidadesExplotaciónCTFAprendizaje y EducaciónExplotación de BinariosLabs y Práctica
GitHubsilasspringer/cve-2018-10933

CVE-2018-10933

CTF challenge explotando CVE-2018-10933, bypass de autenticación de libSSH. Incluye configuración de Docker, script de explotación y guía paso a paso para descubrir flags ocultas mediante enlaces simbólicos.

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir
Ver Repositorio
hace 3 añosAún no revisado

Desafío CTF de prueba de concepto

Por Silas Springer

Basado en CVE-2018-10933

Antecedentes

CVE-2018-10933 es una vulnerabilidad descubierta en versiones selectas de libSSH, que puede permitir acceso potencialmente ilimitado a la máquina. La vulnerabilidad surge del manejo incorrecto de los encabezados de paquetes durante el proceso de autenticación, donde el envío de un paquete manipulado con el byte MSG_USERAUTH_SUCCESS puede permitir a cualquiera evitar la autenticación. Luego tienen acceso completo a la máquina.

La base de este desafío, entonces, es requerir que los competidores exploren la imagen de docker proporcionada, descubran esta vulnerabilidad, la exploten para obtener acceso y luego encuentren la clave oculta en un enlace simbólico en la máquina.

Ejemplo de descripción del desafío CTF

root@kitploit:~
Someone got into my machine via port 22...
It looks like they didnt even know my credentials.

Anyways, they made a file with an odd name, but it's gone now, 
I wonder if there's still some trace of the filename - 
it might be something symbolic of the attacker...

Can you figure out how they got in and help me find the filename?

Solución

Observe, a partir de la descripción del desafío, que el atacante obtuvo acceso a través del puerto 22, un puerto típicamente reservado para SSH. También observe que el atacante no usó credenciales para obtener acceso.

A partir de esto, si se buscan errores pasados para obtener acceso a una máquina a través de SSH sin credenciales, es muy probable que se trate del problema con el byte MSG_USERAUTH_SUCCESS. Alternativamente, al iniciar una conexión al puerto 22, se puede determinar la versión de libSSH que se está ejecutando y luego buscar exploits comunes para esa versión.

También se puede ver en la Descripción que el nombre de archivo que buscan encontrar (la bandera) solo existe como destino de un enlace simbólico.

Sabiendo ahora que se puede obtener acceso explotando esta vulnerabilidad, uno puede escribir su propio script o copiar un script de ejemplo que pueda ejecutar este exploit y ejecutar un comando en la máquina objetivo. He adaptado un script de explotación para esta solución y lo he llamado libsshauthbypass.py.

Para ejecutar este script y obtener la bandera de la máquina, en el caso de la imagen de demostración, se podría ejecutar un comando similar al siguiente:

root@kitploit:~
./libsshauthbypass.py --host localhost -p 1337 -c 'find / -type l -exec stat {} + | grep "File:" | sed -E "s/.*\-> (.*)$/\1/g" | grep "definitelyarealCTF"'
-- Nota: esto asume que la imagen se ejecuta localmente, o que se ha establecido un túnel al contenedor en ejecución a través de localhost:1337

lo que luego produce una salida similar a

root@kitploit:~
sspringer-fedora-CVE: ./libsshauthbypass.py --host localhost -p 1337 -c 'find / -type l -exec stat {} + | grep "File:" | sed -E "s/.*\-> (.*)$/\1/g" | grep "definitelyarealCTF"'
INFO:paramiko.transport:Connected (version 2.0, client libssh_0.8.1)
definitelyarealCTF{totally_a_REAL_flag}

Reutilización

Para usar una versión de este desafío en tu propio CTF, se recomienda encarecidamente cambiar el Dockerfile para utilizar una ruta diferente a la proporcionada por defecto, cambiar la bandera en flag.txt (aunque debe seguir siendo una sola línea), y luego reconstruir la imagen. Tenga en cuenta que puede ser necesario alojar un nuevo contenedor para cada intento de conexión para evitar que alguien ejecute un comando destructivo y afecte a todos los participantes.

Para reconstruir la imagen de Docker con una nueva bandera (y probarla)

  • Actualiza flag.txt con la nueva bandera
  • Ejecuta ./build_run <nombre de imagen>[:<número de versión] <número de puerto>
  • Utiliza ./libsshauthbypass.py o tu propio script para contactar al contenedor con el payload correcto y un comando que desees ejecutar
  • Al exit de la shell proporcionada por el script build_run, el contenedor se apagará y eliminará, pero la imagen permanecerá y será etiquetada como <nombre de imagen>

Videos

Prueba de concepto: https://youtu.be/ELrOBm02ANg

Solución guiada del desafío https://youtu.be/Ii121piSZR0

Descargar herramienta