Palo Alto Networks Unit 42 的安全研究員發現了一種基于 Linux 平臺的加密貨幣挖掘僵尸網絡,該僵尸網絡利用 PostgreSQL 遠程代碼執行(RCE)漏洞來攻陷數據庫。

據 Palo Alto Networks Unit 42 研究人員的描述,PGMiner 利用 PostgreSQL(也被稱為 Postgres)中的 CVE-2019-9193 漏洞發起攻擊。這可能是有史以來第一個針對 PostgreSQL 的加密貨幣挖掘僵尸網絡。

利用漏洞
Unit 42 研究人員在文章中表示:“攻擊者正在利用的 PostgreSQL 功能是'copy from program',該功能于 2013 年 9 月 9 日在 9.3 版中引入的”,“早在 2018 年,針對 CVE-2019-9193 漏洞 PostgreSQL 社區就存在極大的質疑,該漏洞也被標記為“有爭議的”。
他們補充說道:“值得注意的是,惡意軟件攻擊者不僅已開始對確認的漏洞進行武器化,而且還開始對有爭議的漏洞進行武器化”。

該功能允許從本地或遠程在服務器上運行 Shell 腳本。但是,只要超級用戶或不受信任的用戶都不具有遠程權限,并且訪問控制和身份驗證系統已進行了正確配置,就不會有風險。另一方面,如果配置不正確,PostgreSQL 也會被通過暴力破解或 SQL 注入等方式獲取超級用戶權限,這也可以在 PostgreSQL 以外的服務器上進行遠程代碼執行。
攻擊細節
研究人員表示:“攻擊者會掃描 PostgreSQL 使用的端口 5432(0x1538)”, “惡意軟件會隨機選擇一個網絡地址段(例如 190.0.0.0、66.0.0.0)開始掃描,以嘗試在 PostgreSQL 服務器上執行遠程代碼。與此同時,會使用數據庫的默認用戶 postgres 對內置密碼列表(例如 112233 和 1q2w3e4r)進行暴力破解,以攻破數據庫身份驗證”。
該報告稱,在以超級用戶身份入侵服務器后,該惡意軟件會使用“copy from program”功能的 CVE-2019-9193 漏洞下載并啟動挖礦。挖礦程序采用無文件方法,在啟動后立即刪除了 PostgreSQL 的 abroxu 表,重新創建 abroxu 表將 Payload 填充進去,執行后清除創建的表。

安裝后,該惡意軟件使用 curl 來執行任務。curl 是用于向服務器或從服務器傳輸數據的命令行工具。如果受害者的機器上沒有 curl,惡意軟件會嘗試通過多種方法來下載 curl 二進制文件并將其添加到執行路徑。

更有趣的是目標 C&C 地址:94.237.85.89。該地址綁定到域名 newt.keetup.com 上。雖然其上級域名 keepup.com 看起來像是一個合法的網站,但該特定子域名會將端口 80 重定向到 443,該端口用于承載名為 newt 的 couchdb。盡管 8080 端口不對外開放,但我們認為它已配置為允許跨域資源共享(CORS)”。

下一步是通過 SOCKS5 代理連接到命令和控制服務器(C&C)。然后,PGMiner 會收集系統信息,并將其發送給 C&C 服務器以識別受害者,以確定應下載哪個版本的挖礦程序。
解析了 SOCKS5 代理服務器的 IP 地址之后,PGMiner 循環遍歷文件夾列表,找到一個擁有創建新文件并更新其屬性權限的位置”,“以確保下載的 Payload 可以在失陷服務器上成功執行”。

最后會刪除諸如 Aegis 之類的云安全監視工具以及諸如 Yunjing 之類的 Qcloud 監視器程序。檢查虛擬機、終止所有其他 CPU 密集型進程與競爭對手的挖礦程序。
PGMiner 的 C&C 服務器正在不斷更新。不同的模塊分布在不同的 C&C 服務器上,這一切都表明 PGMiner 仍然在快速迭代發展。目前攻擊針對 Linux 平臺,但也可以輕松修改為針對 Windows 和 macOS 平臺。
檢查與清除
PostgreSQL 用戶可以從不受信任的用戶中刪除 pg_execute_server_program 權限,這就使攻擊者無法利用該漏洞。此外,還可以終止 tracepath 進程。
參考來源:
原文地址:https://www.freebuf.com/news/257686.html