謹(jǐn)防LaZagne對(duì)D-Bus API的攻擊
攻擊者已經(jīng)增加了對(duì)Linux系統(tǒng)的目標(biāo)攻擊,并且像LaZagne(一種流行的開源密碼恢復(fù)工具)這樣的hacktool實(shí)用程序的易于訪問性使得攻擊者在惡意軟件攻擊鏈中使用它來轉(zhuǎn)儲(chǔ)密碼變得越來越方便。該工具對(duì)Linux用戶構(gòu)成了重大風(fēng)險(xiǎn),因?yàn)樗槍?duì)的是Pidgin等流行聊天軟件,使用D-Bus API提取包括密碼在內(nèi)的敏感信息。D-BUS是一個(gè)提供簡(jiǎn)單的應(yīng)用程序互相通訊的途徑的自由軟件項(xiàng)目,它是做為freedesktoporg項(xiàng)目的一部分來開發(fā)的。
本文會(huì)介紹LaZagne如何利用Pidgin D-Bus API來獲取這些信息,以及為什么密切關(guān)注D-Bus API是一種明智的安全舉措。另外,我們還將介紹具體示例,研究攻擊者如何在特定的惡意軟件活動(dòng)中使用LaZagne。pidgin是一個(gè)可以在Windows、Linux、BSD和Unixes下運(yùn)行的多協(xié)議即時(shí)通訊客戶端,可以讓你用你所有的即時(shí)通訊賬戶中一次登錄。
支持eBPF的Linux的Advanced WildFire成功地檢測(cè)到D-Bus API相關(guān)的活動(dòng)。Palo Alto Networks的客戶可以通過YARA和行為規(guī)則來檢測(cè)與LaZagne攻擊相關(guān)的可疑活動(dòng)。
D-Bus簡(jiǎn)介
Desktop-Bus,通常稱為D-Bus,是基于*nix的系統(tǒng)中的一種進(jìn)程間通信(IPC)機(jī)制,它允許應(yīng)用程序和服務(wù)相互有效地通信。D-Bus使用客戶機(jī)-服務(wù)器體系結(jié)構(gòu),其中dbus-daemon應(yīng)用程序充當(dāng)服務(wù)器,應(yīng)用程序充當(dāng)客戶機(jī)。
D-Bus廣泛應(yīng)用于NetworkManager, PulseAudio, systemd和Evolution等流行軟件中,它可以實(shí)現(xiàn)各種系統(tǒng)組件和應(yīng)用程序之間的無縫通信。例如,Evolution電子郵件客戶端使用D-Bus與Evolution數(shù)據(jù)服務(wù)器等其他組件進(jìn)行通信。該數(shù)據(jù)服務(wù)器處理存儲(chǔ)和管理電子郵件帳戶、聯(lián)系人和日歷等任務(wù)。
Linux系統(tǒng)上的D-Bus API促進(jìn)了應(yīng)用程序和服務(wù)之間的通信,這可能會(huì)泄露敏感數(shù)據(jù)。因此,如果不對(duì)API進(jìn)行監(jiān)控,它們可能會(huì)帶來風(fēng)險(xiǎn)。LaZagne hacktool利用Pidgin D-Bus API來轉(zhuǎn)儲(chǔ)憑證。HackTool/SMBRelay是一個(gè)利用139端口截獲用戶機(jī)密信息,以獲取服務(wù)器訪問權(quán)限的木馬程序。
LaZagne如何竊取Pidgin文憑
LaZagne連接到Pidgin客戶端的D-Bus API,并在應(yīng)用程序運(yùn)行時(shí)獲取帳戶憑證,包括用戶名和密碼。
LaZagne獲取帳戶憑證
下圖中的代碼顯示了LaZagne hacktool如何與Pidgin D-Bus API連接以檢索憑證。
LaZagne利用D-Bus獲取密碼
接下來我們會(huì)對(duì)上圖中高亮顯示的代碼進(jìn)行詳細(xì)介紹:
1.get_password_from_dbus方法在Pidgin類中定義,它繼承自ModuleInfo類;
2.使用dbus.bus.BusConnection(session)為每個(gè)會(huì)話創(chuàng)建D-Bus連接。對(duì)于在紫色對(duì)象上調(diào)用的每個(gè)方法(作為Pidgin D-Bus API的實(shí)例創(chuàng)建),dbus-python庫(kù)內(nèi)部處理D-Bus消息的創(chuàng)建、發(fā)送和接收;
3.PurpleAccountGetUsername(_acc), PurpleAccountGetPassword(_acc)和PurpleAccountGetProtocolName(_acc)方法用于與Pidgin應(yīng)用程序交互。它們分別從Pidgin D-Bus API獲取每個(gè)帳戶的用戶名、密碼和協(xié)議名;
4.然后將提取的信息作為字典存儲(chǔ)在名為pwd_found的列表中。
一些可用于類似進(jìn)程的低級(jí)libdbus庫(kù)API(如下圖所示)包括:
1.dbus_message_new_method_call (),為方法調(diào)用創(chuàng)建一個(gè)新的D-Bus消息;
2.dbus_message_append_args (),將參數(shù)附加到D-Bus消息;
3.dbus_connection_send_with_reply_and_block (),
發(fā)送消息并等待回復(fù);
4.dbus_message_get_args (),從回復(fù)消息中提取參數(shù)。
LaZagne的Pidgin類的低級(jí)實(shí)現(xiàn)
LaZagne允許攻擊者轉(zhuǎn)儲(chǔ)除Pidgin之外的其他帳戶的憑證。它還可以通過D-Bus API轉(zhuǎn)儲(chǔ)KDE錢包(KWallet)密碼。KWallet是Linux上KDE桌面環(huán)境使用的安全密碼管理系統(tǒng),這些密碼是保存在KWallet系統(tǒng)中的個(gè)人密碼,其中可以包括網(wǎng)站密碼、電子郵件帳戶密碼、Wi-Fi網(wǎng)絡(luò)密碼或用戶選擇存儲(chǔ)的任何其他憑證。
攻擊者利用這些D-Bus API獲取敏感數(shù)據(jù),各種公開來源記錄了在過去幾年中使用LaZagne的攻擊組織的案例。
惡意軟件活動(dòng)中的LaZagne
LaZagne在多個(gè)操作系統(tǒng)上的可用性使其成為攻擊者的一個(gè)有吸引力的工具。
2019年,疑似由伊朗贊助的攻擊組織Agent Serpens(又名Charming Kitten或APT35)利用LaZagne進(jìn)行了一系列攻擊,從基于windows的系統(tǒng)中獲取登錄憑證。
2020年,Unit 42研究人員追蹤到的活動(dòng)集群為CL-CRI-0025(被其他公司追蹤為UNC1945或LightBasin的攻擊者),使用包含各種工具(包括LaZagne)的自定義快速仿真器(QEMU)Linux虛擬機(jī)從意大利和其他歐洲地區(qū)獲取證書。
據(jù)報(bào)道,自2020年以來,我們追蹤的攻擊者Prying Libra(又名Gold Dupont,導(dǎo)致RansomEXX勒索軟件攻擊的幕后黑手)使用LaZagne從目標(biāo)主機(jī)提取憑證。
早在2021年7月,Adept Libra(又名TeamTNT)就利用LaZagne作為其Chimaera活動(dòng)的一部分,從各種操作系統(tǒng)中竊取密碼,包括基于云環(huán)境的Linux發(fā)行版。該活動(dòng)至少持續(xù)到2021年12月,當(dāng)時(shí)Adept Libra使用LaZagne從Kubernetes環(huán)境中的WordPress網(wǎng)站竊取密碼。
下表總結(jié)了黑客工具在各種惡意軟件攻擊活動(dòng)中的使用情況:
謹(jǐn)防LaZagne對(duì)D-Bus API的攻擊
2021年12月攻擊中使用LaZagne的bash腳本示例
謹(jǐn)防LaZagne對(duì)D-Bus API的攻擊
TeamTNT LaZagne腳本(VirusTotal按哈西值計(jì)算的結(jié)果
復(fù)雜的組織在其活動(dòng)中使用LaZagne突顯了該工具在捕獲密碼和實(shí)現(xiàn)進(jìn)一步利用方面的有效性。
監(jiān)控D-Bus API
由于LaZagne可以利用D-Bus從運(yùn)行的應(yīng)用程序中提取敏感數(shù)據(jù),我們可以監(jiān)控D-Bus API調(diào)用來檢測(cè)此類可疑活動(dòng)。庫(kù)跟蹤工具,例如基于Extended Berkeley Packet Filter(eBPF)的工具,有助于公開D-Bus API調(diào)用。
下圖說明了使用bpftrace工具針對(duì)LaZagne黑客工具活動(dòng)對(duì)D-Bus API的監(jiān)控(SHA256:d2421efee7a559085550b5575e2301a7c2ed9541b9e861a23e57361c0cdbdbdb)。
Bpftrace是Linux系統(tǒng)的命令行工具,用于動(dòng)態(tài)分析內(nèi)核和用戶級(jí)程序。使用bpftrace工具,我們?cè)赿bus_message_get_args() API上設(shè)置監(jiān)控器。我們使用這個(gè)API從應(yīng)答消息中提取參數(shù),該消息在libdbus-1.so.3共享對(duì)象庫(kù)中定義。
使用的單行bpftrace probe命令如下:
使用bpftrace監(jiān)控D-Bus API
上圖顯示了Pidgin用戶名和密碼被LaZagne成功轉(zhuǎn)儲(chǔ)(在左側(cè)終端上),API調(diào)用被記錄在bpftrace輸出中(在右側(cè)終端上)。
掛鉤高級(jí)D-Bus API并記錄諸如進(jìn)程標(biāo)識(shí)符(PID)和程序名稱之類的詳細(xì)信息可能很有用,因?yàn)樗鼈冊(cè)试S我們識(shí)別哪個(gè)進(jìn)程正在調(diào)用API。
總結(jié)
密切監(jiān)控D-Bus API可能是防御者保護(hù)應(yīng)用程序和連接系統(tǒng)免受惡意軟件和黑客工具攻擊的重要途徑。開發(fā)人員和網(wǎng)絡(luò)安全專業(yè)人員必須協(xié)作,隨時(shí)了解安全風(fēng)險(xiǎn),并采取必要措施保護(hù)應(yīng)用程序和敏感用戶數(shù)據(jù)。
隨著云計(jì)算和物聯(lián)網(wǎng)的日益普及,強(qiáng)大的安全措施至關(guān)重要。支持eBPF的Linux的Advanced WildFire成功地檢測(cè)到D-Bus API相關(guān)的活動(dòng)。
本文翻譯自:https://unit42.paloaltonetworks.com/lazagne-leverages-d-bus/如若轉(zhuǎn)載,請(qǐng)注明原文地址