Linux应急之常见劫持类型

admin 2024年2月15日18:59:52评论17 views字数 2015阅读6分43秒阅读模式

声明

本公众号发表的文章仅用于学习和交流,请勿用于非法途径,如果文章中涉及到侵权,请及时联系公众号进行删除。

本文参考链接:
https://www.freebuf.com/column/162604.html
https://www.cnblogs.com/goodhacker/p/14488239.html

一、库文件劫持

库文件劫持又称:预加载型恶意动态链接库后门

1、环境变量加载库文件

测试使用的 rootkit 下载地址https://github.com/mempodippy/cub3[1]

LD_PRELOAD 环境变量是会及时生效的,使用 LD_PRELOAD 加载恶意动态链接库方法如下:

加载环境变量前:

Linux应急之常见劫持类型

1)如何利用?

1.LD_PRELOAD的值设置为要预加载的动态链接库
LD_PRELOAD=/lib/cub3.so

2.导出环境变量使该环境变量生效
export LD_PRELOAD

Linux应急之常见劫持类型

2)如何判断是不是恶意?

根据环境变量添加的动态库文件,查看时间是不是正常,一般最近添加的可能有问题:

Linux应急之常见劫持类型

再计算 MD5 去情报查找,计算出 MD5 后去情报平台搜索看是否存在恶意该 MD5 的情报:

Linux应急之常见劫持类型

恢复:

unset LD_PRELOAD 解除设置的 LD_PRELOAD 环境变量

Linux应急之常见劫持类型

2、/etc/ld.so.preload 加载库文件

原理:将恶意动态链接库通过/etc/ld.so.preload 配置文件进行加载。

加载库文件前,显示库文件不存在:

strace -f -e trace=file /bin/cat

Linux应急之常见劫持类型

写入库文件后:

echo "/lib/cub3.so" > /etc/ld.so.preload

Linux应急之常见劫持类型

发现 cat 命令加载的库文件/etc/ld.so.preload 已经不为空,并且出现了劫持加载的文件文件路径:/lib/cub3.so

strace -f -e trace=file /bin/cat

Linux应急之常见劫持类型

清除完又恢复正常

Linux应急之常见劫持类型

案例:

常见现象:机器中挖矿病毒,top 命令没有发现异常占用多的进程,netstat -antlp 也没有可疑外联。

使用如下命令,查看 netstat 命令的库文件情况,发现有多个可疑库链接存在:/etc/ld.so.preload、/tmp/libinject.so

strace -f -e trace=file /bin/netstat

Linux应急之常见劫持类型

近一步查看 open 里面的路径:/etc/ld.so.preload 的内容,发现文件不存在?但是上面存在存在异常,怀疑 cat 命令也被劫持了。

Linux应急之常见劫持类型

再继续使用命令看一下 cat 命令预加载情况,发现也存在劫持情况。

strace -f -e trace=file /bin/cat

Linux应急之常见劫持类型

这个时候就需要用 busybox 的命令去看这个文件了,使用 busybox 查看,发现被劫持的文件正是预加载的库文件里面的/tmp/libinject.so

busybox cat /etc/ld.so.preload

Linux应急之常见劫持类型

查看下该文件的创建时间:

busybox stat /tmp/libinject.so

Linux应急之常见劫持类型

查看下文件的 md5:6e734be6192fc688421641fee6b06c01,多个威胁情报平台搜索发现该 MD5 值对应的文件是恶意的。

busybox md5sum /tmp/libinject.so

Linux应急之常见劫持类型

Linux应急之常见劫持类型

Linux应急之常见劫持类型

最后使用 bsubox 清理库文件劫持。

busybox rm -rf /etc/ld.so.preload /tmp/libinject.so

Linux应急之常见劫持类型

查看 cat 命令加载的库,发现劫持消失。

Linux应急之常见劫持类型

注:busybox 工具下载,关注公众号回复:“busybox”获取下载链接。

二、隐藏的计划任务

隐藏定时任务:

(crontab -l ;printf "0 8 * * * /root/1.sh;rno crontab for 'root' %100cn")|crontab -

crontab -l 提示没有 root 用户的计划任务

Linux应急之常见劫持类型

corntab -e 编辑查看定时任务,发现计划任务添加成功

Linux应急之常见劫持类型

cat 查看计划任务,发现没有异常

Linux应急之常见劫持类型

直接编辑 root 文件,发现存在计划任务。

Linux应急之常见劫持类型

删除指定行即可。

Linux应急之常见劫持类型

三、mount 劫持

众所不知,Linux 的进程在/proc 目录下,是有 netstat 和 ps 命令的时候都读取/proc 目录读取进程信息来返回结果

实现方法:

1.netstat -antlp 可以看到云盾的进程,ps -ef 可以看到 PID:

Linux应急之常见劫持类型

Linux应急之常见劫持类型

2.df 查看当前挂载状态:

Linux应急之常见劫持类型

3.将云盾的 PID 挂载到/dev/vda1 下:

mount /dev/vda1 /proc/1148

4.1148PID 已不见:

Linux应急之常见劫持类型

综上,复现了挖矿病毒看网络连接无法看到 PID 的情况。

解决方法:

1.可以尝试使用 mount 看下挂载的文件。

Linux应急之常见劫持类型

2.找到跟 proc 有关的挂载。

mount | grep proc

Linux应急之常见劫持类型

3.卸载。

umount /dev/vda1 /proc/1148

卸载后恢复。

Linux应急之常见劫持类型

本公众号持续更新精彩内容,欢迎关注!

Linux应急之常见劫持类型

往期精彩内容:

Linux应急之Redis写入计划任务

死灰复燃——挖矿处置

记一次web应急

原文始发于微信公众号(安服仔的救赎):Linux应急之常见劫持类型

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年2月15日18:59:52
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Linux应急之常见劫持类型https://cn-sec.com/archives/2180471.html

发表评论

匿名网友 填写信息