Perfctl:一种针对数百万台Linux服务器的隐形恶意软件

在这文章中,研究者们旨在揭示在过去3-4年中,它积极地寻找了20,000多种错误配置,以锁定和利用Linux服务器。如果你有一个连接到互联网的Linux服务器,你可能会面临风险。事实上,从规模来看,我们坚信攻击者的目标是全世界数以百万计的潜在受害者,看来只要有了这个恶意软件,任何Linux服务器都可能面临危险。
我们发现了许多事件报告,都描述了与这个恶意软件相关的妥协指标。被广泛地称之为"Perfctl恶意软件",我们采用了这个名称。
本文将探索恶意软件的架构,组件, 逃避防卫策略,持久性机制,以及我们如何发现它。Perfctl特别难以捉摸和持久,采用了若干尖端技术,包括:
- 利用Rootkits隐匿踪迹
- 有用户登录到服务器时,停止所有活动,直到服务器再次闲置时重新开始。
- 使用Unix Socket 进行内部通信和外部通信。
- 执行之后,删除了它的二进制,并继续作为服务在后台平静地运行。
- 将自己从内存复制到磁盘上的不同位置,使用欺骗性名称。
- 打开了服务器的后门,并监听TER通信。
- 利用Polkit vulnerability (CVE-2021-4034)提升特权。
在所有观察到的攻击中,恶意软件被用来运行一个密码器,在某些情况下,我们检测到了辅助性的软件的执行。在我们的一个沙箱测试中,威胁参与者利用恶意软件的一个后门来访问蜜罐,并开始部署一些新的实用程序来更好地理解我们的服务器的性质,试图了解我们对它的恶意软件到底做了什么。
不明确的恶意软件支配着开发人员论坛
我们的故事从我们监视的一个蜜罐开始。我们通常会检查是否有任何人已经记录了这次攻击,因为这使我们能够更彻底地分析它,并将我们的发现与其他研究人员的结果进行比较。然而,在这个案例中,我们没有发现恶意软件针对我们的蜜罐的报告。
然而,我们确实发现了许多对 perctl 恶意软件的引用,这立即引起了我们的注意,因为这是我们恶意软件的名称之一。这些在几个开发者社区和论坛中使用了不同的语言,我们仔细查看了这些帖子,发现其中提到的妥协指标与我们在攻击中看到的指标相同。通常在其中一些帖子中,您可以找到回复,其中包含研究人员编写的有关恶意软件的报告的链接。但在这种情况下,然而,这些帖子都没有指向此类报告的链接。以下是我们遇到的一些帖子:Reddit, freelancer, Stack Overflow (西班牙语), forobeta (西班牙语), brainycp (俄语), natnetwork (印度尼西亚语), Proxmox (德语), Camel2243 , svrforum (韩语), exabytes, virtualmin, serverfault等等。
Perfctl
是一个密码程序,它消耗了系统的资源,给许多Linux开发人员带来了重大的问题。通过将"Perf"(一个Linux性能监控工具)与"CTL"(通常用于指示命令行工具中的控件)相结合,恶意软件的作者们设计了一个看起来合法的名称。这使用户或管理员更容易在初步调查中忽略这一点,因为它与典型的系统流程相融合。
在研究结束时,我们看到了报告被许多安全的研究者所覆盖,但他们只讲述了Perfctl恶意软件的一小部分。
攻击流
利用弱点或配置错误 ,主要有效载荷从攻击者控制的HTTP服务器上下载。
在我们的案例中,主要有效载荷的名称httpd它展示了多层执行,展示了一个旨在确保持久性和逃避检测的故意设计。一旦执行,主有效负载将自己从内存复制到"/tmp"目录中的一个新位置,从那里运行新的二进制文件,终止原始进程,然后删除初始二进制文件以覆盖其轨道。
主要有效载荷现在从/tmp 名字不同的目录。基于我们所看到的恶意软件选择了最初执行它的过程的名称,因此,如果检查系统,它看起来不那么可疑。
在我们的案子中恶意软件是sh 因此恶意软件的名称从httpd 到sh。此时,它兼具释放器和本地命令与控制(C2)进程的功能。该恶意软件包含针对 CVE - 2021 - 4034 的漏洞利用程序,它试图运行此程序以获取服务器上的 root 权限。
恶意软件不断将自身从内存复制到其他六个位置,这些位置的文件名看似常规系统文件。它还会释放一个 rootkit(内核级后门程序)以及一些经过修改、用作用户态 rootkit 的流行 Linux 实用工具(如 ldd、lsof)。同时,还会释放一个加密货币挖矿程序,在某些执行过程中,我们还观察到从远程服务器传输并执行了一些代理劫持软件。
作为其命令与控制操作的一部分,该恶意软件会打开一个 Unix 套接字,在 tmp 目录下创建两个目录,并在那里存储影响其运行的数据。这些数据包括主机事件、自身副本的位置、进程名称、通信日志、令牌以及其他日志信息。此外,恶意软件还使用环境变量来存储进一步影响其执行和行为的数据。
所有二进制文件都经过打包、去除符号表和加密处理,这表明攻击者付出了巨大努力来绕过防御机制并阻碍逆向工程尝试。该恶意软件还采用了先进的规避技术,例如当它在 btmp 或 utmp 文件中检测到新用户时,会暂停其活动,并终止任何与之竞争的恶意软件,以保持对受感染系统的控制。
以下是完整的攻击流程:

图1:整个攻击流
如前所述,大量文件被写入磁盘或修改,主要集中在 tmp、/usr 和 root 目录中,如下图所示。
图2:删除或写入磁盘的文件
在本及其附录中,我们将解释这些文件的用途以及它们在攻击流程中各自所起的作用。
Perfctl攻击要点
主二进制文件 httpd 是一个经过打包、去除符号表且混淆处理的 ELF 文件(MD5 值:656e22c65bf7c04d87b5afbe52b8d800)。如果你在浏览器中输入下载链接,屏幕上会打印整数 1。如果你尝试在没有特定用户代理的情况下下载.php 文件,你会得到一个包含整数 1 的文件。这种响应表明该文件看似完全无害。但如果你使用正确的用户代理,它就会释放恶意软件(大小约 9MB)。这是一种巧妙的隐藏恶意软件的方式。
恶意软件下载并执行后,会使用另一个正在运行的进程名从内存中复制自身,并将该正在运行进程的进程 ID 保存在 tmp/.apid 下。

图3:httpd是从内存中复制自己
持久化
攻击者修改了~/.profile 脚本,该脚本在用户登录时设置环境。此脚本被设计为首先执行恶意软件,然后再运行服务器预期的合法工作负载。它会检查 root/.config/cron/perfcc 是否为可执行文件,如果是,则运行恶意软件。

图4:wizlmsh 的主函数
防御规避
该 rootkit(内核套件)有多个目的。其主要目的之一是挂钩各种函数并修改它们的功能。这个 rootkit 本身是一个 ELF 64 位 LSB 共享对象(.so)文件,名为 libgcwrap.so(MD5 值:835a9a6908409a67e51bce69f80dd58a)。它利用 LD_PRELOAD 机制,在其他库之前加载自身。

图5:修改后的LD_LULOAD内容
它会进行各种有意思的操作,包括挂钩 Libpam 库中的符号。具体来说,会挂钩 pam_authenticate 函数,这是 PAM(可插拔认证模块)用于验证用户身份的函数。挂钩或覆盖此函数,可能会在认证过程中导致未经授权的操作,比如绕过密码检查、记录凭证,或者修改认证机制的行为。

图6:rootkit 挂钩的函数
此外,该 rootkit 还被设计用于挂钩 Libpcap 库中的符号,具体是挂钩 pcap_loop 函数,该函数广泛用于捕获网络流量。这样做是为了防止恶意软件的网络流量被记录。
威胁行为者还使用了一些用户态 rootkit。他们放置了一些诸如 ldd 之类的合法实用程序。这些实用程序被修改,以隐藏特定的攻击元素。例如,如果使用了被篡改的 crontab,它就不会显示攻击期间创建的定时任务。
在第一步中,恶意软件会替换 etc/profile 文件,这样路径就会被设置为 /bin/.local/bin:$PATH。通过这个路径,威胁行为者绕过了调用实用程序的原始目录。在一些恶意软件运行过程中,我们看到会投放 2 个二进制文件,而在其他情况下则是 4 个,这取决于服务器上原本存在哪些实用程序。
在我们所研究的攻击中,恶意软件投放了经过修改的 crontab、lsof、ldd 和 top 程序。万一有人使用这些程序,这些经过篡改的二进制文件就会隐藏恶意活动。

图7:威胁行为者插入到 “/etc/profile” 中的新内容
在附录 5—— 用户态 rootkit 中,我们详细解释了为什么我们认为威胁行为者选择了这些工具。
主要影响
此次攻击的主要影响是资源劫持。在所有案例中,我们都观察到一个门罗币(Monero)加密货币矿工程序(XMRIG)被执行,该程序会耗尽服务器的 CPU 资源。这个加密货币矿工程序也是经过打包和加密处理的。一旦解包和解密,它就会与加密货币挖矿池进行通信。
如下图 8 所示,这些加密货币挖矿池是通过 TOR 网络访问的。

图8:加密货币挖矿流量
此外,在我们所见到的一些攻击中,存在通过不同供应商进行的代理劫持情况。我们发现设备与以下域名有通信:bitping.com、earn.fm、speedshare.app 以及repocket.com。
例如,域名repocket.com与 Repocket 平台相关,该平台是一项允许用户通过分享未使用的网络带宽来赚钱的服务。
另外,我们还能观察到 bitping 守护进程的使用情况,它提供类似的带宽付费服务。

图9:登录 bitping
洋葱网络(TOR)通信
二进制文件 “sh” 也在通过洋葱网络(TOR)与几台服务器建立通信(即 80.67.172.162、176.10.107.180、78.47.18.110、95.217.109.36、145.239.41.102 )。
虽然这种通信是加密的,但你可以在我们的蜜罐上观察到洋葱网络(TOR)留下的日志。

图10:洋葱路由(TOR)会话日志
其他威胁情报
我们记录到了几十起针对 perfctl 的攻击。在这些攻击中,涉及 3 个下载服务器(46.101.139.173、104.183.100.189 和 198.211.126.180)。
前两个 IP 地址似乎与此前被威胁行为者入侵的存在漏洞的服务器有关,而第三个 IP 地址可能归威胁行为者所有。这 3 个 IP 地址存储并隐藏了此次攻击活动中使用的恶意文件。
在大多数攻击中,我们发现二进制文件是从 IP 地址 46.101.139.173 下载的。对该 IP 地址的检查表明,这是一台已被攻陷的网络服务器。

图 11:被攻陷的网站充当下载服务器
在对这个下载服务器进行详细排查时,我们发现德国一台服务器上的网站已遭入侵。
我们留意到一些恶意文件巧妙地隐藏在该网站的脚本之中。主要有 3 个恶意负载。其中一个是 avatar.php,它被用于对我们蜜罐的攻击。若使用浏览器访问包含 avatar.php 的网页,或者在未设置特定用户代理的情况下下载该文件,屏幕上会显示数字 1,或者下载到一个仅含数字 1 的.php 文件。
此外,还有一个名为 aoip 的文件,它是在两个月后上传的,另外还有 dark.css 和 csdark.css 这两个文件,它们是更晚些时候上传的

图12:网站服务器上的文件

图13:网站服务器上的文件

图 14:托管在网络服务器上的文件
二进制文件 aoip 是主要恶意负载(sh/httpd)的复制品。
在本次研究中,虽然尚未对 csdark.css 和 dark.css 进行分析,但它们看起来很可疑。
在 IP 地址 198.211.126.180 上,我们只发现了 checklist.php 文件,它就是主要恶意负载(sh/httpd)。

图 15:被入侵的网站充当下载服务器
在IP地址104.183.100.189上,我们发现了另一个无辜的网站。

图16:受影响的网站充当下载服务器
在 IP 地址 104.183.100.189 上,我们发现了另一个无辜遭入侵的网站。

图17:恶意XML
从这些网站上我们所观察到的情况来看,存在一些用于对配置错误且存在漏洞(在我们记录的攻击中)的 Linux 服务器实施攻击的恶意文件。我们发现了一份极长的目录遍历模糊测试列表,包含近 2 万个条目,其目的是寻找因失误而暴露的配置文件和机密信息。攻击者还能运行一些后续文件(比如 XML 文件)来利用这些配置错误。在下面的表格中,你可以看到对这些路径的分析,这表明 perfctl 主要试图利用配置错误进行攻击。
检测"Perfctl"恶意软件
要检测Perfctl恶意软件,您需要寻找CPU使用量的异常激增,或者如果在服务器上部署了根工具,则需要寻找系统减缓。这可能表明密码活动,特别是在闲置时期。
监测可疑系统行为
检查 /tmp、/usr 和 /root 目录中是否存在可疑的二进制文件,尤其是那些隐藏的或伪装成系统文件的(例如,perfctl、sh、libpprocps.so、perfcc、libfsnkdev.so )。检查 /home 目录,查找 /.local/bin 目录,看其中是否安装了诸如 ldd、top 等各类工具。
监控进程的资源使用情况,比如 httpd 或 sh 这类二进制文件,若出现异常行为,或者从 /tmp 等意外位置运行,需加以留意。
检查系统日志,查看~/.profile 和 /etc/ld.so.preload 文件是否有修改记录。
网络流量分析
- 捕捉网络流量,以检测与外部IP(如
80.67.172.162
,176.10.107.180
. - 寻找与密码池或辅助弹出服务的出站连接。
- 监控已知恶意主机或IP的流量(例如:,
46.101.139.173
,104.183.100.189
,以及198.211.126.180
).
文件和流程完整性监测
检测关键系统工具的修改ldd
,top
,lsof
,以及crontab
,可能会被三个版本所取代。
日志分析
审查未经授权使用系统二进制文件的日志,是否存在可疑的克朗工作,以及是否存在mesg
以检测可能的破坏。
用水安全检测"Perfctl"恶意软件
第一的 , 我们可以看到一些运行时事件 .在下面你可以看到 警报 指示的 除了在运行时丢下的共享对象之外,一些新的二进制文件被丢弃并执行,这意味着我们容器中的一个流流。它们是 A 装饰的 httPD恶意软件文件和根盒。

图18:水上安全平台上的事件屏幕
我们可以通过检查这些事件的审计日志来继续调查这次袭击。 在这次事件中 审计 所以我们需要 搜寻具体的事件, 也就是说, 去调查袭击。

图19:水上安全平台上的审计日志屏幕
我们可以过滤特定的主机,容器,强制组,云资源,甚至吊舱。我们决定在米德尔框架的基础上寻找具体的事件。我们使用伪装技术来描述丢下和执行的事件。有465起事件,我们现在可以查阅所有的档案,在攻击期间被放弃(或修改)。

图20:水上安全平台上的审计日志屏幕
例如,我们可以了解 一些带有用户土地基础工具的二进制文件。

图21:水上安全平台上的审计日志屏幕
你也可以了解入境流量或 设置端口监听。

图22:水上安全平台上的审计日志屏幕
缓解"Perfctl"恶意软件
- 补丁漏洞:确保所有漏洞都被修补。特别是面向互联网的应用程序,如ROC-KIT服务器和CV-2021-4034。保持所有软件和系统库更新.
- 限制文件执行:设置 诺埃克 在…上 , 以及其他可写目录,以防止恶意软件直接从这些位置执行二进制文件。
/tmp/dev/shm - 禁用未使用的服务:禁用任何不需要的服务,特别是那些可能使系统暴露于外部攻击者的服务,如HTTP服务。
- 实施严格的权限管理:限制对关键文件和目录的根访问.使用基于角色的访问控制限制用户和进程可以访问或修改的内容。
- 网络分割:将关键服务器与互联网隔离,或使用防火墙来限制出站通信,特别是通信或连接到密码池。
- 部署运行时保护:使用先进的反恶意软件和行为检测工具,可以检测根包、密码器和无文件恶意软件
perfctl
.
附录
附录1:初始访问
CV-2023-33246是一种脆弱性。RocketMQ
是一种管理信息的软件。这种漏洞允许在系统上未经授权执行命令RocketMQ
已经安装好了。这个问题之所以会出现,是因为Rockemq没有充分检查试图访问它的人,这意味着任何人,即使没有许可,也可以进行更改或执行命令。问题变得更严重是因为RocketMQ
处理存储和传递消息的功能设计不适合在互联网上直接访问,而且对于执行敏感的操作,如更新设置,它们不需要认证。这使得攻击者相对容易利用这种漏洞。
通过这个漏洞(CV-2023-33246)获得了最初的访问权,从而下载和执行了壳牌脚本rconf
有下列命令:

图23:执行脚本
在下面的图 24 中,你可以看到完整的 rconf 脚本,接下来我们将对其内容进行拆解和解释。

图24:RCOFS脚本
附录2:执行脚本分析
如图25所示 ,脚本以一个函数开头,该函数似乎使用一个tml套接字直接执行一个简化的TPGET请求,模仿了该程序的一些基本行为。 卷绕 指挥官。威胁参与者正在使用这个方法,以备目标服务器不包含CAR或WGIT。

图25:来自RCONF脚本的片段,演示了HHTMLPGET请求命令的实现
就像你在图26中看到的,脚本继续使用一个简单的(f)条件,这将确保目标攻击的服务器OS架构是x86_64。这表明,威胁行为体的目标是特定的架构和 不会的 举个例子,用胳膊跑步。

图26:RCONF脚本中的一个片段,说明了对目标主机体系结构的检查
接下来,威胁者证实/tmp
目录存在并已读取、写入和执行权限.这个目录将在以后使用 储存 日志,恶意软件将从其中更新和从恶意软件将读取指令或系统状态。

图27:来自"RCONF"脚本的一个片段,说明了检查"/TMP"路径
如下文图28所示,威胁行为体还核实/tmp
目录安装有可执行权限.如果在挂载选项(没有执行权限)中找到Noexecc选项,它将重新挂载/tmp
使用EXEC选项,允许执行来自/tmp
目录。对于需要执行存储在/tmp
.

图28:来自"RCONF"脚本的片段,说明了对"/TMP"目录的进一步检查
此外,威胁参与者正在创建两个目录/tmp
通道,它将在运行主载荷时作为辅助。

图29:来自"RCONF"脚本的一个片段,说明在"/TMP"路径下创建目录
下一步,威胁参与者将设置环境变量A2ZNODE
到localhost
,如果它还没有定义。

图30:"RCOFF"脚本中的一个片段,说明了对环境变量的检查
此外,威胁参与者还将环境变量设置为rmq
这可以代表易受攻击指数或类似的东西。接下来,这个脚本处理/tmp/.xdiag/vei
通过添加 维伊 变量(rmq
))。如果文件/tmp/.xdiag/vei
不存在或是空的,它检查一个辅助文件/tmp/.xdiag/vei.1
存在。如果是的话,脚本会处理/tmp/.xdiag/vei
,整理及删除副本,并附加 维伊 .如果/tmp/.xdiag/vei.1
并不存在,它直接写入了 维伊 到/tmp/.xdiag/vei
.最后,它解除了 维伊 可变的

图31:一个来自"RCONF"脚本的片段,说明恶意软件操作和日志记录的"/TMP"目录的准备
最后,此脚本通过确保没有其他实例运行、下载必要的文件和启动Web服务器来管理主负载的安装。它用的是 卷绕 , 瓦格 ,或自定义下载功能(上面提到),验证下载的文件,并在有效时运行它。脚本还包括防止多个装置同时发生的保障措施。这很重要,因为这个脚本的初始旋度rconf
在整个攻击过程中反复运行不同的时间。

图32:一个来自"RCONF"脚本的片段,说明了以"httPD"命名的恶意软件的下载和安装
现在主要的有效载荷avatar.php
已下载,改名为httpd
我们可以专注于这个二进制。
附录3:主要有效载荷分析(`httPD'和`SH')
httPD分析
二元体httpd
是一个拥挤的精灵(MD5: 656e22c65bf7c04d87b5afbe52b8d800
)有很多在病毒上的检测,包括普通的Linux木马、科尼纳、CV-2021-4034的开发工具、恶意软件滴管等。
我们的分析表明,从某种意义上说,所有这些检测都是正确的,因为简而言之,这是一个包含上述所有内容的多用途的故障释放器。它的操作非常有趣,因为它融合了几十种技术来保持隐藏和持久性。根据下面我们的分析,我们推测这个恶意软件大约一年前就开始了,它仍然是匿名的,没有被发现。
根据主要的有效载荷,它在下载服务器中被命名为avatar。httpd
.该机器是由各种指令,如uname −a
,然后它开始自己拆包。
接下来,httpd
可执行从运行过程复制到/tmp
目录,如图33所示。有趣的是,它找到了运行它的流程名的名称,并将其保存在/tmp
名字相同的目录。它还保存了在/tmp/.apid
. Lastly,httpd
删除自己。

图33:httPD从内存中复制自己
这种技术被称为"伪装过程"或"过程替换"。这样做往往出于以下原因:
- 逃避防卫 :通过删除原来的二进制文件并将自己复制到另一个位置,恶意软件避免从可能监视原来位置的静态基于文件的安全措施中检测出来。…
/tmp
目录是一个共同的目标,因为它通常是可写的,经常用于临时文件,使它不那么可疑。 - 迷惑 :删除原来的二进制文件,然后杀死自己,会使安全分析人员更难追踪到活动的原始有效载荷,从而使法医分析复杂化。
研究结果分析
二元体sh
(MD5:656E22C65BF7C04D87B5F5F5B8D800)httpd
.在…之后sh
执行完毕,它能睡10分钟。接下来它收集有关操作系统的信息。
下一个,sh
掉了九个二进制。四个完全相同sh
/httpd
.密码器和根盒(见下文)。 "根盒" 部分)。有三个精益双筒ldd
,top
和wizlmsh
. 前两个是使用者的土地基础工具包,在一些执行中我们也看到lsof
和crontab
.Wizlmsh
是用来确保恶意软件运行。
恶意软件打开了一个UNIX套接字,以便与未来运行的所有进程进行通信。通过/tmp/.xdiag/int/.per.s
,它写入日志,这些日志随后将被其他丢弃的组件作为攻击的一部分使用。
恶意软件还在运行各种操作,例如关闭安全控制,如下例所示:

图34:关闭安全控制
二元体sh
也将自己从内存复制到不同的位置,如图所示libpprocps.so
同时也是/root/.config/cron/perfcc
,/usr/bin/perfcc
,以及/usr/lib/libfsnkdev.so
.

图35:SH从内存中复制自己
这是一种用于持久性、隐形和可能用于特权升级的策略。下面我们讨论所选择的各种途径:
- 这个路径非常具有欺骗性,因为它模仿根用户下的配置目录,安全扫描可能忽略了它,假设它是一个合法的配置文件。列入: 在这条道路上,建议尝试将恶意软件与克拉恩乔布斯联系起来。
/root/.config/cron/perfcccron
/usr/bin/perfcc
*道路/usr/bin
是所有用户都可以访问的可执行程序的标准目录。在这里放置恶意软件可以让它像一个普通的系统命令一样被执行,使检测更加困难。命名恶意软件perfcc
可能是企图伪装成一个合法的系统实用程序或命令,以减少怀疑。/usr/lib/libpprocps.so
/usr/lib/libfsnldev.so
这些路径表明恶意软件正在模拟共享库。/usr/lib
通常用于存储已安装应用程序所需的共享库。道路libpprocps.so
可能是想让人觉得procps
,一个库和一组命令,包括诸如ps
,top
等,用来显示有关当前运行流程的信息。
这些路径的选择通常反映了一种与正常系统操作相融合的策略,这种策略可以表现为一个可能由其他流程定期执行或加载的实用程序或库。
附录4:主要的 rootkit 工具(libgcwrap.so)
这个 rootkit(内核套件)有几个用途。其主要用途之一是挂钩各种函数并修改它们的功能。该 rootkit 本身是一个名为 libgcwrap.so 的 ELF 64 位小端序共享对象(.so)文件。这个 rootkit 利用 LD_PRELOAD 机制,使其在其他库之前加载。
如下方图 36 所示,rootkit 中的字符串采用异或(XOR)加密,并且有一个函数会遍历一个数组,同时对数组中的每个元素执行异或解密操作。

图36:X或解密数组
您可以在图37中看到xor_decrypt
通过在输入字符串的每个字节上迭代来解密字符串的功能,用键做X或 0XAC .

图37:X或解密
它做各种有趣的操作,包括连接到LYPAM符号。尤其是对这个职能pam_authenticate
,这是用于认证用户。连接或覆盖此函数可以允许在身份验证过程中进行未经授权的操作,例如绕过密码检查、记录凭证或修改身份验证机制的行为。
此外,还设计了用于钩住LIPPCAP符号,特别是功能的根包。pcap_loop
,广泛用于捕捉网络流量。
下面我们将讨论攻击者想用这些接头干什么:
- 网络流量操纵 :一个攻击者通过连接pp_lop,可以改变那些依赖pppp来捕获网络流量的应用程序的行为。这可能包括安全监控工具、网络分析器和其他进行分组分析的系统。操纵此功能可能导致错过检测,改变流量日志,或泄漏敏感数据。
- 窃听数据 :可以修改连接函数,以秘密地将通过网络的某些数据复制到受攻击者控制的位置,从而有效地创建数据过滤路径。
- 坚持和逃避 :输入恶意代码
/tmp
以及连接关键功能pcap_loop
可以作为策略的一部分,以最小的检测保持在主机上的持久性。这个设置允许攻击者在检测和移除主要有效载荷后继续恶意活动。
附录 5:用户空间 Rootkit(“top”、“ldd”、“crontab” 和 “lsof”)
恶意软件Perfctl正在消失/home/???/.local/bin/
4个二进制。在我们的案子里,最好的,最好的,最好的,最好的。
以下是执行片段的顶部:

图38:最高执行
如图38所示,在第一行中,脚本检查环境变量是否ABWTRX
设置,如果它存在,这个脚本将不会运行。这可能是为了检查二进制文件是否最初存在于服务器上。
接下来,相应地将变量R和M定义为顶部和Perfctl。我们假设perfctl
在这种情况下,隐藏的对象是什么是密码器。
接下来脚本将在 /.本地/箱 将其保存在环境变量路径中.现在脚本检查环境变量是否AAZHDE
一切就绪。只是提醒一下。初始脚本,当服务器首先受到损害时,设置环境变量AAZHDE
.这是一个检查,以核实执行这一恶意软件的"正常"过程仍然存在。可能是为了逃避沙箱处决。
如果AAZHDE
设置后,执行二进制顶传递脚本执行期间传递的所有参数。
如果AAZHDE
不是固定的, 脚本执行 各种指令。包括, 2个陷阱命令 . 这些陷阱命令执行 删除 属于…的 … 目录 当脚本存在或被用户中断时。 它 然后 使恢复精神状态 比 它设置了环境变量 作为 ./tmp/smpr
/tmp/smpr AAZHDE1
接下来,密码器停止,文件/tmp/.apid
删除了。最后,AAZHDE
未设置,顶部执行。
最后,环境变量AAZHDE
未设置和二进制顶部执行。
以下是执行LDD的片段:

图39:LDD的执行
这个片段非常类似于top
.如图37所示,在第一行中,脚本检查环境变量是否ABWTRX
设置,如果它存在,这个脚本将不会运行。这可能是为了检查密码器是否正在运行(下一个将讨论),如果密码器正在运行这个脚本,那么它将运行并执行密码器。
二元体 接收2个参数,作为指向可执行文件的指针和指向ARGV的指针.它执行多个步骤,包括初始化、环境设置、加密操作、数据操作,并最终执行另一个程序。它还运行无限循环以保持进程在后台运行。top

图40:顶二进制
你可以看到两个函数modify_lookup_table_with_offset
和libc_xor_cipher
,用来消除内存中各个部分的混淆。其次,对环境变量和错误进行了几次检查。
最后,如果满足了所有条件,我们看到并执行了一个二进制(在顶部执行期间作为参数提供)。

图41:顶二进制
TATE用于实时监测系统性能和过程。因此,如果开发人员在系统中遇到了与密码活动相应的减速,并要求检查所有运行中进程的CPU,那么新的开发人员将使用top
不会显示密码器的CPU消耗。
LDS用于显示可执行文件库或共享库所需的共享库(动态依赖项)。它显示了应用程序所依赖的库,以及通往这些库的路径。威胁参与者希望隐藏恶意软件使用的恶意库和依赖项,防止检查期间的检测。
CLONTAB是用来安排和管理经常性的任务(CRN工作),以便在一定的时间内运行。
lsof列出打开的文件,并显示哪些进程正在使用它们,包括文件、套接字和网络连接。
这一点完全可以理解,威胁参与者正在试图修改这些实用程序的结果,因为它们可能被开发人员或安全工程师用来评估服务器并理解攻击机器的是什么。
附录6:UNIX套接字通信
二元体sh
正在打开一个UNIX套接字,从不同的文件中编写和读取/tmp
目录。
在下表中,我们将审查这些档案:
| # | 通道 | 使用 |
| 1 | /tmp/.xdiag/cp | 恶意软件路径名 |
| 2 | /tmp/.xdiag/exi | 受害者的IP地址 |
| 3 | /tmp/.xdiag/p | 恶意标记 |
| 4 | /tmp/.xdiag/elog | 事件日志 |
| 5 | /tmp/.xdiag/ver | 恶意软件版本(字符串) |
| 6 | /tmp/.xdiag/uid | 用户标识 |
| 7 | /tmp/.xdiag/int/.e.lock | 恶意标记 |
| 8 | /tmp/.xdiag/hroot/cp | 恶意软件路径名 |
| 9 | /tmp/.xdiag/hroot/hscheck | 心跳支票 |
| 10 | /tmp/.xdiag/tordata/control_auth_cookie.tmp | 饼干 |
| 11 | /tmp/.xdiag/tordata/cached-certs.tmp | 证书缓存 |
| 12 | /tmp/.xdiag/tordata/cached-microdesc-consensus.tmp | 数据表 |
| 13 | /tmp/.xdiag/tordata/state.tmp | 日志状态 |
例如,如图所示 40 在下面的文件中,恶意软件插入了ls
在…上/tmp
目录。

图42:LGCAR文件内容
Appendix 7:
失陷指标(IOCs)
| 类型 | 价值 | 评论 |
|---|---|---|
| IP地址 | ||
| IP地址 | 211.234.111.116 | 攻击者IP |
| IP地址 | 46.101.139.173 | 下载服务器 |
| IP地址 | 104.183.100.189 | 下载服务器 |
| IP地址 | 198.211.126.180 | 下载服务器 |
| 域 | ||
| 域 | 比特网 | 辅助劫机服务 |
| 域 | 英国货币 | 辅助劫机服务 |
| 域 | 快速分享。 | 辅助劫机服务 |
| 域 | 网站 | 辅助劫机服务 |
| 文件 | ||
| 二进制文件 | MD5: 656e22c65bf7c04d87b5afbe52b8d800 | 恶意软件 |
| 二进制文件 | MD5: 6e7230dbe35df5b46dcd08975a0cc87f | 密码器 |
| 二进制文件 | MD5: 835a9a6908409a67e51bce69f80dd58a | 根管 |
| 二进制文件 | MD5: cf265a3a3dd068d0aa0c70248cd6325d | IDD |
| 二进制文件 | MD5: da006a0b9b51d56fa3f9690cf204b99f | 最高的 |
| 二进制文件 | MD5: ba120e9c7f8896d9148ad37f02b0e3cb | WizlmSH |
END
本文作者:Q
编辑排版:T





