博客 某系统被入侵挖矿排查案例丨运维案例实战

某系统被入侵挖矿排查案例丨运维案例实战

   数栈君   发表于 2024-01-29 11:19  665  0

1、当时的出现的情况是:执行 top、w、netstat命令的时候,会出现卡住的情况,无法正常使用

http://dtstack-static.oss-cn-hangzhou.aliyuncs.com/2021bbs/files_user1/article/7a02dbf62d97e415d283b473784000c6..png

2、我们上传新的top命令之后,只是看到CPU使用率比较高,但是看不到占用CPU的异常进程

http://dtstack-static.oss-cn-hangzhou.aliyuncs.com/2021bbs/files_user1/article/f4c64fa8185d2e854288635de04312d0..png

3、我们通过perf生成火焰图,发现存在很多异常进程占用CPU资源,这里基本上可以判定是中病毒了

http://dtstack-static.oss-cn-hangzhou.aliyuncs.com/2021bbs/files_user1/article/d801b80976a825dcd4bc86f3a6afa647..png

4、但是我们定位不到异常的进程是什么,我们通过tcpdump抓取网络流量,看看通过网络层面有没有存在异常

http://dtstack-static.oss-cn-hangzhou.aliyuncs.com/2021bbs/files_user1/article/687b5de6bff049693902552353a91b51..png

5、我们通过bing搜索了 http://www.xmr-monero.tophttp://www.fullskystar.top ,第一个跳出来的就是交易比特币的网站,第二个直接就跳出了被挖矿入侵的相关案例

http://dtstack-static.oss-cn-hangzhou.aliyuncs.com/2021bbs/files_user1/article/9eb2122faf6a157fcbf8ca66a677e748..png

6、通过搜索出来的CSDN的文章,我们根据他排查的步骤来进行:查看ldd /usr/bin/ls,对比了正常的服务器和异常的服务器

http://dtstack-static.oss-cn-hangzhou.aliyuncs.com/2021bbs/files_user1/article/a81082a610f2f2a95fa133794047f160..png

我们可以发现像文章中说的一样,我们的命令也被加入了 /lib/libcurl.so.2.17.0 动态库

7、但是我们搜索不到这个动态库文件,我们按照文章上面的操作步骤下载 busybox进行操作,busybox可以理解为一个干净的Linux系统,因为我们原来的系统已经被攻陷了,很多命令都被篡改了,所以要使用busybox

$ wget https://busybox.net/downloads/binaries/1.28.1-defconfig-multiarch/busybox-x86_64  --no-check-certificat
$ mv busybox-x86_64 busybox
$ chmod +x busybox
$ ./busybox ls -al /etc/ld.so.preload
-rw-r--r--    1 root     root            22 Jul 24 21:53 /etc/ld.so.preload
$ ./busybox cat /etc/ld.so.preload
/lib/libcurl.so.2.17.0
$ ./busybox ls -al /lib/libcurl.so.2.17.0
-rwxr-xr-x    1 root     root         31336 Jul 24 21:53 /lib/libcurl.so.2.17.0
$ ./busybox sh
$ ./busybox chattr -i /lib/libcurl.so.2.17.0; ./busybox mv /lib/libcurl.so.2.17.0 /lib/libcurl.so.2.17.0.old
exit

8、通过上面的步骤,我们可以看到病毒是通过 /etc/ld.so.preload 里面配置/lib/libcurl.so.2.17.0 进行进程隐藏的,我们可以通过 grep libcurl /proc/*/maps 查看到底有多少异常进程在运行

http://dtstack-static.oss-cn-hangzhou.aliyuncs.com/2021bbs/files_user1/article/fe26e904c2e03acaa978ab1a28e6ae23..png

9、我们把上面grep 出来的异常进程kill掉之后,把/etc/ld.so.preload配置修改过来

$ chattr -i /etc/ld.so.preload 
$ echo -n > /etc/ld.so.preload

10、我们把异常的依赖库去掉之后,可以通过top正常的查看是否存在异常进程

http://dtstack-static.oss-cn-hangzhou.aliyuncs.com/2021bbs/files_user1/article/bb2f558f8e102d73cbc8f76f7a700767..png

11、经过搜索出来的CSDN的文章,可以进行相关的处理,我们在查看此文章的时候,发现在安全领域有HIDS(基于主机的入侵检测系统),我们通过搜索引擎查看到有很多HIDS方案供我们使用

http://dtstack-static.oss-cn-hangzhou.aliyuncs.com/2021bbs/files_user1/article/11a574e484e633ae6efa1ee319914590..png

通过比较,我们可以发现: OSSEC/Wazuh 相对来说功能支持的是最全面的,但是CentOS和Ubuntu的原生的软件仓库是不支持安装的,而unhide CentOS和Ubuntu原生支持,并且unhide支持查看隐藏的进程,所以我们可以直接使用unhide进行隐藏进程排查。

Found HIDDEN PID: 64630
        Cmdline: "/usr/bin/bioset"
        Executable: "/usr/bin/bioset"
        Command: "bioset"
        $USER=root
        $PWD=/

Found HIDDEN PID: 64639
        Cmdline: "/usr/bin/bioset"
        Executable: "/usr/bin/bioset"
        Command: "bioset"
        $USER=root
        $PWD=/

Found HIDDEN PID: 95529
        Cmdline: "/usr/bin/bioset"
        Executable: "/usr/bin/bioset"
        Command: "bioset"
        $USER=root
        $PWD=/

Found HIDDEN PID: 95555
        Cmdline: "/usr/bin/bioset"
        Executable: "/usr/bin/bioset"
        Command: "bioset"
        $USER=root
        $PWD=/

Found HIDDEN PID: 95556
        Cmdline: "/usr/bin/bioset"
        Executable: "/usr/bin/bioset"
        Command: "bioset"
        $USER=root
        $PWD=/

Found HIDDEN PID: 95557
        Cmdline: "/usr/bin/bioset"
        Executable: "/usr/bin/bioset"
        Command: "bioset"
        $USER=root
        $PWD=/

Found HIDDEN PID: 95558
        Cmdline: "/usr/bin/bioset"
        Executable: "/usr/bin/bioset"
        Command: "bioset"
        $USER=root
        $PWD=/

Found HIDDEN PID: 95559
        Cmdline: "/usr/bin/bioset"
        Executable: "/usr/bin/bioset"
        Command: "bioset"
        $USER=root
        $PWD=/

Found HIDDEN PID: 95820
        Cmdline: "/usr/bin/kthreadd"
        Executable: "/usr/bin/kthreadd"
        Command: "kthreadd"
        $USER=root
        $PWD=/

Found HIDDEN PID: 95821
        Cmdline: "/usr/bin/kthreadd"
        Executable: "/usr/bin/kthreadd"
        Command: "kthreadd"
        $USER=root
        $PWD=/

我们通过unhide 查到的进程跟我们在top命令里面看到的异常进程是一样的,跟CSDN里面的描述也是对得上的。

12、总结:我们通过命令行异常,最终定位到服务器是被挖矿了,整个链路还是有点长的,当然我们是在不清楚具体问题的情况下,如果知道直接去进行针对性的排查应该会更快,主要是这种挖矿病毒相对来说比较隐蔽。

引用1: 

引用2: 



《数据治理行业实践白皮书》下载地址:https://fs80.cn/4w2atu

《数栈V6.0产品白皮书》下载地址:https://fs80.cn/cw0iw1

想了解或咨询更多有关袋鼠云大数据产品、行业解决方案、客户案例的朋友,浏览袋鼠云官网:https://www.dtstack.com/?src=bbs

同时,欢迎对大数据开源项目有兴趣的同学加入「袋鼠云开源框架钉钉技术群」,交流最新开源技术信息,群号码:30537511,项目地址:https://github.com/DTStack  
0条评论
社区公告
  • 大数据领域最专业的产品&技术交流社区,专注于探讨与分享大数据领域有趣又火热的信息,专业又专注的数据人园地

最新活动更多
微信扫码获取数字化转型资料
钉钉扫码加入技术交流群