新型檢測逃避技術分析,以一個 Shell 腳本文件為例
背景
Linux 平臺上的攻擊者通常使用惡意 Shell 腳本作為初始的攻擊向量,拉取惡意 Payload 到失陷主機執行。
最初,攻擊者只使用 base64 等編碼方案來進行檢測逃避。目前,攻擊者正在采用更新的技術,包括禁用防火墻、監控代理等方式進行檢測逃避。
本文將以一個 Shell 腳本文件(5050506ad2ccea35fe3b7aba63c4f413)為例,進行分析。
卸載監控 Agent
監控 Agent 是監控系統中進程和網絡相關活動的安全軟件。監控 Agent 會記錄各種日志,這可以在進行事件調查分析時提供幫助。惡意 Shell 腳本試圖:
- 卸載阿里云的 Aegis
- 卸載騰訊云的 YunJing
禁用防火墻
大多數服務器都會部署防火墻作為防御機制,所以攻擊者會在惡意 Shell 腳本試圖禁用防火墻(ufw)。與此同時,攻擊者還會清除 iptables 的規則。
攻擊者還會禁用基于不可屏蔽中斷(nmi)實現的 watchdog。watchdog 是一種可配置的定時器機制,會在給定的條件和時間產生中斷。為了規避這種防御機制,攻擊者會使用 sysctl 禁用 watchdog 功能。
禁用安全模塊
惡意 Shell 腳本通常會禁用 SElinux、Apparmor 等 Linux 安全模塊。這些安全模塊都實施強制訪問控制(MAC)策略,管理員可以通過模塊控制應用程序的安裝/訪問權限。
(1) AppArmour
AppArmour 是 Linux 中的一項安全功能,用于鎖定 Firefox 等應用程序提高系統安全性。用戶可以通過向某個應用程序授予有限的權限來限制應用程序的訪問。
(2) SElinux
SElinux 也是 Linux 的一項安全功能,安全管理員可以通過配置應用程序限定安全上下文。在某些 Web 服務器上,Shell 功能會被禁用或被限制,攻擊者通常會繞過/禁用此功能。
修改 ACL
訪問控制列表(ACL)包含文件和程序的權限規則。文件系統 ACL 控制那些用戶可以訪問那些文件,用戶擁有哪些權限。Linux 中的 setfacl 可用于修改、刪除 ACL。
更改屬性
Linux 中的 chattr 可用于設置/取消設置文件屬性,攻擊者會將惡意軟件設置為不可變,使用戶不能刪除惡意軟件。
重命名常用程序
實用程序 wget、curl 通常用于下載惡意文件,如果能夠修改程序名稱,監控特定程序名稱的安全程序有可能就不會產生告警。
結論
攻擊者不斷使用更復雜、更新穎的方法進行檢測規避,更完整、全面地監控和記錄系統的活動正變得越來越重要。建議所有人都應該定期監控不受信任的二進制執行產生的可疑進程、可疑事件和可疑流量。一定要定期更新系統和固件,進行安全升級。
IOC
- 39ac019520a278e350065d12ebc0c24201584390724f3d8e0dc828664fee6cae
- 1ad0104478301e73e3f49cdeb10f8c1a1d54bccf9248e34ff81352598f112e6b
- b60ffcc7153650d6a232b1cb249924b0c6384c27681860eb13b12f4705bc0a05
- 3b280a4017ef2c2aef4b3ed8bb47516b816166998462899935afb39b533890ad
- 7b6f7c48256a8df2041e8726c3490ccb6987e1a76fee947e148ea68eee036889
- d7c4693f4c36d8c06a52d8981827245b9ab4f63283907ef8c3947499a37eedc8
參考來源:Uptycs