捕獲任意文件有多安全?

捕獲任意文件有多安全?

有時,當我cat錯誤地輸入二進位檔案時,我的終端會出現亂碼。沒有什麼是快速reset解決不了的,但是攻擊者理論上不能創建一個文件,當該文件顯示在終端上時,該文件會執行一些任意程式碼嗎?透過終端仿真器或其他方式的漏洞利用。

答案1

此類輸出是否可以被利用取決於終端程序,以及終端根據所發送的轉義碼執行的操作。我不知道終端程式具有此類可利用的功能,現在唯一的問題是是否存在未知的緩衝區溢出或類似的情況,可以被利用。

對於一些較舊的hardware終端,這可能是一個問題,因為您透過在硬體中儲存該鍵的命令序列來編程例如具有此類轉義序列的功能鍵。您仍然需要按物理按鍵來啟動它。

但總有(正如 Hauke 正確地標記為「腦殘」)人們願意添加這樣的功能,如果它能為他們解決問題,而不是理解他們創造的漏洞。根據我使用開源軟體的經驗,由於有很多人關注程式碼,因此與閉源軟體相比,這種情況不太可能發生。 (我記得在 Silicon Grahpics 的 Irix 上的郵件程式中,在 90 世紀中期,您可以包含要在接收器電腦上執行的命令、可執行檔的真實路徑,...)

答案2

如果大多數終端模擬器收到某些轉義序列,它們將發回一些回應(看看xterm 控制序列文檔)。例如,您可以傳送\e[0c到類似 VT100 的模擬器,它會傳回裝置屬性,例如\e[?1;2c (這可能是 Keith 觀察到的。)但這些答案不是任意字串。儘管如此,2c在系統中的某處指定一個執行致命操作的可執行檔並不是一個好主意。

更新:由於可以設定 xterm 視窗的標題,風險實際上比我想像的要大並發回標題使用適當的轉義序列(http://www.securityfocus.com/bid/6940/)。與上面的範例相反,標題幾乎可以是任意字串。

答案3

這會更改 GNOME Terminal 3.6.1 中的終端標題,除非被類似的內容覆蓋PS1:

printf "\033]2;Script Kiddie was here\007"

現在開啟一個新的 GNOME 終端機視窗來測試版本cat

printf "\033]2;Script Kiddie was here\007" > test.bin
cat test.bin

是的,這也設定了終端標題。

曾經存在一個安全問題導致標題列印到命令列的轉義碼,這樣你就可以有效地創建一個文件,當cated 時會打印(我不確定你是否可以在其中添加換行符)任意命令。哎喲!

答案4

我確實經歷過xterm將任意字元插入到自身中,就像我鍵入它們一樣。有時這顯然包括換行符,所以我得到了ngwerm:0riu: command not found回應。我看不出為什麼有人不能製作一個可以發送特定的有害命令的文件。所以,是的,至少某些終端容易受到任意影響的攻擊。

相關內容