Linux动态链接库持久化新方式
近期,INTEZER发现了一种新的Linux病毒,该病毒在发现之初在virustotal上检测率为0。该病毒使用.so文件作为payload,使用多种持久化方式,其中有一种持久化方式实现简单且效果明显
情报背景 近期,INTEZER发现了一种新的Linux病毒,该病毒在发现之初在virustotal上检测率为0。该病毒使用.so文件作为payload,使用多种持久化方式,其中有一种持久化方式实现简单且效果明显,本文将对该技术点进行剖析和阐述。 组织名称 未知 相关工具 OrBit 战术标签 载荷投递 防御规避 权限维持 技术标签 持久化 情报来源 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中利用动态链接库进行持久化相对常见linux动态库,但是攻击者对该方式的理解使得该持久化方式又有了新花样,可谓"物美价廉",性价比极高。 (编辑:淮北站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |