为什么开源的LaZagne会让D-Bus API陷入安全窘境

VSole2023-10-07 14:23:34

写在前面的话

长久以来,网络攻击者一直都在积极探索和实现针对Linux操作系统的定向攻击,而LaZagne(一种流行的开源密码恢复工具)等实用工具的易访问性,使得威胁行为者在恶意软件攻击链中使用它们来转储密码时变得越来越方便了。这类工具正在对Linux用户构成重大安全风险,因为网络攻击者可以利用它来攻击类似Pidgin之类的热门聊天软件,并使用D-Bus API来提取包括密码在内的敏感信息。

在这篇文章中,我们将描述攻击者如何利用LaZagne从Pidgin D-Bus API来获取这些敏感信息,以及为什么我们要对D-Bus API的行为保持安全警惕。除此之外,我们还将介绍攻击者如何在特定的恶意软件活动中使用LaZagne。

D-Bus介绍

Desktop-Bus,通常称为D-Bus,它是基于*nix的系统中的一种进程间通信(IPC)机制,允许应用程序和服务高效地相互通信。D-Bus使用客户端-服务器体系结构,其中dbus-daemon守护程序充当服务器,应用程序充当客户端。

D-Bus广泛应用于NetworkManager、PulseAudio、systemd和Evolution等流行软件中,它实现了各种系统组件和应用程序之间的无缝通信。例如,Evolution邮箱客户端就使用了D-Bus与其他组件(如Evolution Data Server)进行通信,而这些组件常常负责存储和管理邮箱账户、联系人和日历等任务。

Linux系统上的D-Bus API促进了应用程序和服务之间的通信,但也可能会暴露敏感数据。因此,如果不对API进行监控,它们很有可能会带来风险。没错,现在正有很多网络攻击者正在利用LaZagne并通过Pidgin D-Bus API来转储用户的凭证信息。

LaZagne是如何窃取Pidgin凭证的?

TLDR:LaZagne会连接到Pidgin客户端的D-Bus API,然后在应用程序运行的时候,尝试获取目标用户的账户凭证,包括用户名和密码:

下图中的代码显示了LaZagne如何与Pidgin D-Bus API建立连接,并收集用户凭证数据:

接下来,我们对代码中圈中的重点部分进行剖析:

1、get_password_from_dbus方法是在Pidgin类中定义的,并继承自ModuleInfo类;
2、D-Bus会与使用dbus.bus.BusConnection(session)创建的每一个会话进行连接,针对Purple对象(以Pidgin D-Bus API实例创建的对象)调用的每一个方法,dbus-python库都会在内部处理D-Bus消息的创建、发送和接收;
3、PurpleAccountGetUsername(_acc)、PurpleAccountGetPassword(_acc)和PurpleAccountGetProtocolName(_acc)方法用于跟Pidgin应用程序交互,它们会尝试利用Pidgin D-Bus API获取每一个账号对应的用户名、密码和协议名称;
4、提取出来的信息会以字典的形式存储在一个名为pwd_found的列表文件中;

除此之外,LaZagne还允许网络攻击者转储除Pidgin账户之外的其他账户凭证信息,其中包括KDE钱包(KWallet)的密码。而KWallet则是一个安全的密码管理系统,用于Linux上的KDE桌面环境。这些密码是保存在KWallet系统中的个人密码,其中可以包括网站、邮箱账户、Wi-Fi网络或用户选择存储的任何其他凭据数据。

根据研究人员的发现,这些年来很多网络犯罪分子一直都在利用D-Bus API来尝试获取目标用户的各种敏感信息,这也将LaZagne和D-Bus API的安全问题再次推到了风口浪尖上。

恶意软件活动中的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网站窃取密码。

下图显示的是2021年12月份的一次网络攻击活动中攻击者所使用的Bash脚本样例(利用了LaZagne的功能):

监控D-Bus API

由于LaZagne可以利用D-Bus从运行的应用程序中提取敏感数据,因此我们可以监控D-Bus API调用以检测此类可疑活动。

Bpftrace是Linux系统的命令行工具,用于内核和用户级程序的动态分析。使用Bpftrace工具,我们可以在dbus_message_get_args() API上设置探测器,并使用这个API从应答消息中提取参数。在下图中,我们使用了bpftrace工具来监控LaZagne活动(SHA256: d2421efee7a559085550b5575e2301a7c2ed9541b9e861a23e57361c0cdbdbdb)和D-Bus API调用:

我们所使用的bpftrace探测代码如下:

sudo bpftrace -e 'uprobe:/lib/x86_64-linux-gnu/libdbus-1.so.3:dbus_message_get_args { printf("pid: %d, comm: %s, func: %s called with 1st param value: 0x%lx\n", pid, comm, func, arg0); }'

上图显示了LaZagne成功地转储了Pidgin用户名和密码(在左侧终端上),API调用记录在bpftrace输出中(在右侧终端上)。

总结

密切监控D-Bus API可能是安全防御人员保护应用程序和网络系统免受恶意软件和黑客工具攻击的重要方式。随着云计算和物联网的日益普及,强有力的安全措施至关重要。开发人员和网络安全专业人员必须合作,随时了解安全风险,并采取必要行动保护应用程序和敏感用户数据。

入侵威胁指标IoC

LaZagne代码

d2421efee7a559085550b5575e2301a7c2ed9541b9e861a23e57361c0cdbdbdb

LaZagne代码

d23707e0123732e03d156a0fd474a1384e1b3deee3235df9e96ff5d21a4d440c

LaZagne Shell脚本(kubelet活动中使用过)

b58bef842f6d6d4f53e6821f9ac1b63780267cc81006b649b56c263efeab1306

YARA规则

rule elf_hacktool_lazagne
{
meta:
author = "Siddharth Sharma - PaloAltoNetworks"
description = "the lazagne hacktool."
 
strings:
$str1="lazagne" ascii wide nocase
$str2="softwares.chats.pidgin" ascii wide nocase
$str3="softwares.wallet.gnome" ascii wide nocase
$str4="softwares.sysadmin.shadow" ascii wide nocase
$str5="libdbus" ascii wide nocase
condition:
uint32(0) == 0x464c457f and all of them
}
软件api
本作品采用《CC 协议》,转载必须注明作者和本文链接
服务之间的内部通信通过定义明确的 API 或任何轻量级通信协议进行。API 通常是为第三方用户创建的。组织利用 API 作为单个微服务相互通信的轻量级解决方案。对此,API 以 JSON 的形式返回文本响应,开发人员可以根据他们的可行性使用这些响应。微服务和 API 经常耦合在一起,尽管它们是两个不同的实体。这种思想类似于使用公共 API 来连接应用程序。有些人会将许多 API 分配给单个服务,而另一些人会使用单个 API 来访问多个服务。
测试结果表明,勒索病毒检测器检测准确率达到了 97%,勒索病毒家族分类器分类准确率达到了 94%。随着网络犯罪的组织化、规模化,隐匿行为攻击的复杂化和商业化,目前,隐匿高危勒索病毒呈蔓延之势。为了保证计算机网络和计算机应用系统的正常运行,电力企业需要对隐匿高危勒索病毒的攻击作出应对。对抗隐匿高危勒索病毒攻击,保护用户数据的关键措施在于预防,即在勒索软件攻入受害者主机但尚未造成实质性破坏前及时检测并拦截攻击。
据趋势科技称,在随后的几个月中,勒索软件操作已获得升级,旨在“优化其执行,最大限度地减少意外系统行为,并在勒索软件受害者选择谈判时为他们提供技术支持”。内核驱动程序的主要任务是终止与安全产品相关的进程以绕过检测。“热带天蝎座仍然是一个活跃的威胁,”研究人员说。
几乎每家公司都在经历人员身份和机器身份数量增长的当下,保护这些身份的安全已经成了各家公司的当务之急。
由于发生新冠疫情,全球各地的IT领导者在两年来被迫开展远程工作。许多人认为这是一个临时性举措。但他们在执行方面将面临一些挑战。当被要求确定推动数字化转型的最大障碍时,Citrix公司的调查参与者指出一些企业:?
API流量指使用API在不同应用程序或系统之间传输的数据和请求,可以帮助不同的软件应用进行联系并交换数据,从而实现应用系统之间的有效集成和交互。相比传统的Web应用程序,API会产生更多的数据流量和调用需求,而其中也难免会出现一些恶意或错误的请求,由于这些请求往往与海量的合规请求掺杂在一起,因此难以被使用静态安全规则的传统安全方案所检测。
根据Cyble的数据,具体而言,媒体和娱乐行业首当其冲受到BianLian攻击,到目前为止,该行业有25%的受害者,专业服务、制造、医疗保健、能源和公用事业以及教育行业各有12.5%的受害者。研究人员表示,使用BianLian的攻击者通常会要求异常高昂的赎金,他们利用独特的加密方式将文件内容分成10个字节的块,以逃避防病毒产品的检测。
思科解决了 Firepower 设备管理器 (FDM) On-Box 软件中的漏洞,跟踪为 CVE-2021-1518,攻击者可以利用该漏洞在易受攻击的设备上执行任意代码。
结果分析Hook前Hook后,我们的弹窗本该是hello的但是hook后,程序流程被我们修改了。760D34B2 55 push ebp760D34B3 8BEC mov ebp,esp通过这两条指令,函数就可以在堆栈中为局部变量分配存储空间,并在函数执行过程中保存和恢复现场。这样做的好处是可以避免局部变量和其他函数之间的冲突,同时也可以提高函数的可读性和可维护性。
美国农业部发言人表示,他们可能遭到了Clop的攻击,该部门将首次因为数据泄露接受调查。多个州级组织也宣布遭遇MOVEit漏洞相关的数据泄露事件。此次遭利用的MOVEit SQL注入零日漏洞CVE-2023-34362。CISA通报称,Clop组织在5月27日开始利用该漏洞发起攻击。
VSole
网络安全专家