情报背景
近期,INTEZER发现了一种新的Linux病毒,该病毒在发现之初在virustotal上检测率为0。该病毒使用.so文件作为payload,使用多种持久化方式,其中有一种持久化方式实现简单且效果明显,本文将对该技术点进行剖析和阐述。
组织名称 |
未知 |
相关工具 |
OrBit |
战术标签 |
载荷投递 防御规避 权限维持 |
技术标签 |
持久化 |
情报来源 |
https://www.intezer.com/blog/incident-response/orbit-new-undetected-linux-threat/ |
01 攻击技术分析
亮点:直接patch文件实现持久化
linux动态链接库预加载机制
动态链接库预加载机制指的是系统提供给用户运行的一种自定义方式,允许用户在执行程序之前先加载用户自定库的动态链接库,该机制常被Linux病毒用于持久化:将恶意的链接库(.so文件)添加至配置文件中,使用户在执行程序前执行该链接库,实现上线。常见方式有:
1.修改LD_PRELOAD环境变量加载动态链接库,简单实现命令如下:
2.修改/etc/ld.so.preload配置文件加载动态链接库,且该方式使用默认的ls或cat命令无法直接看见,是针对Linux的攻击中的常用持久化方式。简单命令如下:
打补丁修改/etc/ld.so.preload
在该样本中,攻击者使用了2种持久化方式都是利用/etc/ld.so.preload进行持久化。其中,一种是上述的持久化方式,而另一种是使用patch字符串的方式进行持久化。
对该样本逆向分析可知:
1.攻击者先读取lib64/ld-linux-x86-64.so.2文件,判断payload .so文件是否已经成功加载
2.在判断没有加载后,开始执行持久化的操作。先执行将 恶意软件的路径添加到/etc/ld.so.preload配置文件的相关操作
3.如果2中的持久化方式被阻拦,没有实现持久化。则使用patch二进制文件的方式进行替换
以十六进制的形式查看/etc/ld.so.preload,如下图,可以发现:在我们往配置文件中添加了要加载的.so文件后,可以直接看到相关数据和字符串
在样本中,作者在/etc/ld.so.preload中搜索字符串,并将恶意符号链接进行替换(在该样本中是/lib/libntpVnQE6mk/.l),从而实现添加.so文件实现持久化。
可以发现直接使用patch的方式有以下几个优点:
1.现有利用/etc/ld.so.preload的方式作为edr等安全产品的敏感检测点,容易触发警告,该方式一定程度上可以绕过检测。
2.直接修改二进制文件的方式没有冗余的命令,实现简单,效果明显。
3.之前的持久化方式在防御者使用新的干净文件替换后,便会失效,而该方式会重新感染配置文件。
02 总结
虽然在Linux中利用动态链接库进行持久化相对常见,但是攻击者对该方式的理解使得该持久化方式又有了新花样,可谓”物美价廉”,性价比极高。
绿盟科技天元实验室专注于新型实战化攻防对抗技术研究。
研究目标包括:漏洞利用技术、防御绕过技术、攻击隐匿技术、攻击持久化技术等蓝军技术,以及攻击技战术、攻击框架的研究。涵盖Web安全、终端安全、AD安全、云安全等多个技术领域的攻击技术研究,以及工业互联网、车联网等业务场景的攻击技术研究。通过研究攻击对抗技术,从攻击视角提供识别风险的方法和手段,为威胁对抗提供决策支撑。
M01N Team公众号
聚焦高级攻防对抗热点技术
绿盟科技蓝军技术研究战队
官方攻防交流群
网络安全一手资讯
攻防技术答疑解惑
扫码加好友即可拉群
原文始发于微信公众号(M01N Team):攻击技术研判 | Linux动态链接库持久化新方式