攻击者已经增加了对Linux系统的目标攻击,并且像LaZagne(一种流行的开源密码恢复工具)这样的hacktool实用程序的易于访问性使得攻击者在恶意软件攻击链中使用它来转储密码变得越来越方便。该工具对Linux用户构成了重大风险,因为它针对的是Pidgin等流行聊天软件,使用D-Bus API提取包括密码在内的敏感信息。D-BUS是一个提供简单的应用程序互相通讯的途径的自由软件项目,它是做为freedesktoporg项目的一部分来开发的。
本文会介绍LaZagne如何利用Pidgin D-Bus API来获取这些信息,以及为什么密切关注D-Bus API是一种明智的安全举措。另外,我们还将介绍具体示例,研究攻击者如何在特定的恶意软件活动中使用LaZagne。pidgin是一个可以在Windows、Linux、BSD和Unixes下运行的多协议即时通讯客户端,可以让你用你所有的即时通讯账户中一次登录。
支持eBPF的Linux的Advanced WildFire成功地检测到D-Bus API相关的活动。Palo Alto Networks的客户可以通过YARA和行为规则来检测与LaZagne攻击相关的可疑活动。
D-Bus简介
Desktop-Bus,通常称为D-Bus,是基于*nix的系统中的一种进程间通信(IPC)机制,它允许应用程序和服务相互有效地通信。D-Bus使用客户机-服务器体系结构,其中dbus-daemon应用程序充当服务器,应用程序充当客户机。
D-Bus广泛应用于NetworkManager, PulseAudio, systemd和Evolution等流行软件中,它可以实现各种系统组件和应用程序之间的无缝通信。例如,Evolution电子邮件客户端使用D-Bus与Evolution数据服务器等其他组件进行通信。该数据服务器处理存储和管理电子邮件帐户、联系人和日历等任务。
Linux系统上的D-Bus API促进了应用程序和服务之间的通信,这可能会泄露敏感数据。因此,如果不对API进行监控,它们可能会带来风险。LaZagne hacktool利用Pidgin D-Bus API来转储凭证。HackTool/SMBRelay是一个利用139端口截获用户机密信息,以获取服务器访问权限的木马程序。
LaZagne如何窃取Pidgin文凭
LaZagne连接到Pidgin客户端的D-Bus API,并在应用程序运行时获取帐户凭证,包括用户名和密码。
LaZagne获取帐户凭证
下图中的代码显示了LaZagne hacktool如何与Pidgin D-Bus API连接以检索凭证。
LaZagne利用D-Bus获取密码
接下来我们会对上图中高亮显示的代码进行详细介绍:
1.get_password_from_dbus方法在Pidgin类中定义,它继承自ModuleInfo类;
2.使用dbus.bus.BusConnection(session)为每个会话创建D-Bus连接。对于在紫色对象上调用的每个方法(作为Pidgin D-Bus API的实例创建),dbus-python库内部处理D-Bus消息的创建、发送和接收;
3.PurpleAccountGetUsername(_acc), PurpleAccountGetPassword(_acc)和PurpleAccountGetProtocolName(_acc)方法用于与Pidgin应用程序交互。它们分别从Pidgin D-Bus API获取每个帐户的用户名、密码和协议名;
4.然后将提取的信息作为字典存储在名为pwd_found的列表中。
一些可用于类似进程的低级libdbus库API(如下图所示)包括:
1.dbus_message_new_method_call (),为方法调用创建一个新的D-Bus消息;
2.dbus_message_append_args (),将参数附加到D-Bus消息;
3.dbus_connection_send_with_reply_and_block (),
发送消息并等待回复;
4.dbus_message_get_args (),从回复消息中提取参数。
LaZagne的Pidgin类的低级实现
LaZagne允许攻击者转储除Pidgin之外的其他帐户的凭证。它还可以通过D-Bus API转储KDE钱包(KWallet)密码。KWallet是Linux上KDE桌面环境使用的安全密码管理系统,这些密码是保存在KWallet系统中的个人密码,其中可以包括网站密码、电子邮件帐户密码、Wi-Fi网络密码或用户选择存储的任何其他凭证。
攻击者利用这些D-Bus API获取敏感数据,各种公开来源记录了在过去几年中使用LaZagne的攻击组织的案例。
恶意软件活动中的LaZagne
LaZagne在多个操作系统上的可用性使其成为攻击者的一个有吸引力的工具。
2019年,疑似由伊朗赞助的攻击组织Agent Serpens(又名Charming Kitten或APT35)利用LaZagne进行了一系列攻击,从基于windows的系统中获取登录凭证。
2020年,Unit 42研究人员追踪到的活动集群为CL-CRI-0025(被其他公司追踪为UNC1945或LightBasin的攻击者),使用包含各种工具(包括LaZagne)的自定义快速仿真器(QEMU)Linux虚拟机从意大利和其他欧洲地区获取证书。
据报道,自2020年以来,我们追踪的攻击者Prying Libra(又名Gold Dupont,导致RansomEXX勒索软件攻击的幕后黑手)使用LaZagne从目标主机提取凭证。
早在2021年7月,Adept Libra(又名TeamTNT)就利用LaZagne作为其Chimaera活动的一部分,从各种操作系统中窃取密码,包括基于云环境的Linux发行版。该活动至少持续到2021年12月,当时Adept Libra使用LaZagne从Kubernetes环境中的WordPress网站窃取密码。
下表总结了黑客工具在各种恶意软件攻击活动中的使用情况:
谨防LaZagne对D-Bus API的攻击
2021年12月攻击中使用LaZagne的bash脚本示例
谨防LaZagne对D-Bus API的攻击
TeamTNT LaZagne脚本(VirusTotal按哈西值计算的结果
复杂的组织在其活动中使用LaZagne突显了该工具在捕获密码和实现进一步利用方面的有效性。
监控D-Bus API
由于LaZagne可以利用D-Bus从运行的应用程序中提取敏感数据,我们可以监控D-Bus API调用来检测此类可疑活动。库跟踪工具,例如基于Extended Berkeley Packet Filter(eBPF)的工具,有助于公开D-Bus API调用。
下图说明了使用bpftrace工具针对LaZagne黑客工具活动对D-Bus API的监控(SHA256:d2421efee7a559085550b5575e2301a7c2ed9541b9e861a23e57361c0cdbdbdb)。
Bpftrace是Linux系统的命令行工具,用于动态分析内核和用户级程序。使用bpftrace工具,我们在dbus_message_get_args() API上设置监控器。我们使用这个API从应答消息中提取参数,该消息在libdbus-1.so.3共享对象库中定义。
使用的单行bpftrace probe命令如下:
使用bpftrace监控D-Bus API
上图显示了Pidgin用户名和密码被LaZagne成功转储(在左侧终端上),API调用被记录在bpftrace输出中(在右侧终端上)。
挂钩高级D-Bus API并记录诸如进程标识符(PID)和程序名称之类的详细信息可能很有用,因为它们允许我们识别哪个进程正在调用API。
总结
密切监控D-Bus API可能是防御者保护应用程序和连接系统免受恶意软件和黑客工具攻击的重要途径。开发人员和网络安全专业人员必须协作,随时了解安全风险,并采取必要措施保护应用程序和敏感用户数据。
随着云计算和物联网的日益普及,强大的安全措施至关重要。支持eBPF的Linux的Advanced WildFire成功地检测到D-Bus API相关的活动。
本文翻译自:https://unit42.paloaltonetworks.com/lazagne-leverages-d-bus/如若转载,请注明原文地址