专栏首页BypassLinux应急响应(四):盖茨木马

Linux应急响应(四):盖茨木马

0x00 前言

Linux盖茨木马是一类有着丰富历史,隐藏手法巧妙,网络攻击行为显著的DDoS木马,主要恶意特点是具备了后门程序,DDoS攻击的能力,并且会替换常用的系统文件进行伪装。木马得名于其在变量函数的命名中,大量使用Gates这个单词。分析和清除盖茨木马的过程,可以发现有很多值得去学习和借鉴的地方。

0x01 应急场景

某天,网站管理员发现服务器CPU资源异常,几个异常进程占用大量网络带宽:

0x02 事件分析

异常IP连接:

异常进程:

查看进行发现ps aux进程异常,进入该目录发现多个命令,猜测命令可能已被替换

登录服务器,查看系统进程状态,发现不规则命名的异常进程、异常下载进程 :

异常启动项

进入rc3.d目录可以发现多个异常进行:

/etc/rc.d/rc3.d/S97DbSecuritySpt

/etc/rc.d/rc3.d/S99selinux

搜索病毒原体

find / -size -1223124c -size +1223122c -exec ls -id {} \; 搜索1223123大小的文件

从以上种种行为发现该病毒与“盖茨木马”有点类似,具体技术分析细节详见:

Linux平台“盖茨木马”分析 http://www.freebuf.com/articles/system/117823.html 悬镜服务器卫士丨Linux平台“盖茨木马”分析 http://www.sohu.com/a/117926079_515168

手动清除木马过程:

1、简单判断有无木马
 #有无下列文件
cat /etc/rc.d/init.d/selinux
cat /etc/rc.d/init.d/DbSecuritySpt
ls /usr/bin/bsd-port
ls /usr/bin/dpkgd
#查看大小是否正常
ls -lh /bin/netstat
ls -lh /bin/ps
ls -lh /usr/sbin/lsof
ls -lh /usr/sbin/ss

2、上传如下命令到/root下
ps netstat ss lsof

3、删除如下目录及文件
rm -rf /usr/bin/dpkgd (ps netstat lsof ss)
rm -rf /usr/bin/bsd-port     #木马程序
rm -f /usr/bin/.sshd         #木马后门
rm -f /tmp/gates.lod
rm -f /tmp/moni.lod
rm -f /etc/rc.d/init.d/DbSecuritySpt(启动上述描述的那些木马变种程序)
rm -f /etc/rc.d/rc1.d/S97DbSecuritySpt
rm -f /etc/rc.d/rc2.d/S97DbSecuritySpt
rm -f /etc/rc.d/rc3.d/S97DbSecuritySpt
rm -f /etc/rc.d/rc4.d/S97DbSecuritySpt
rm -f /etc/rc.d/rc5.d/S97DbSecuritySpt
rm -f /etc/rc.d/init.d/selinux(默认是启动/usr/bin/bsd-port/getty)
rm -f /etc/rc.d/rc1.d/S99selinux
rm -f /etc/rc.d/rc2.d/S99selinux
rm -f /etc/rc.d/rc3.d/S99selinux
rm -f /etc/rc.d/rc4.d/S99selinux
rm -f /etc/rc.d/rc5.d/S99selinux 
    
4、找出异常程序并杀死
5、删除含木马命令并重新安装

0x03 命令替换

RPM check检查:

系统完整性也可以通过rpm自带的-Va来校验检查所有的rpm软件包,有哪些被篡改了,防止rpm也被替换,上传一个安全干净稳定版本rpm二进制到服务器上进行检查
./rpm -Va > rpm.log
如果一切均校验正常将不会产生任何输出。如果有不一致的地方,就会显示出来。输出格式是8位长字符串, ``c 用以指配置文件, 接着是文件名. 8位字符的每一个 用以表示文件与RPM数据库中一种属性的比较结果 。``. (点) 表示测试通过。.下面的字符表示对RPM软件包进行的某种测试失败:

命令替换:

rpm2cpio 包全名 |  cpio -idv .文件绝对路径   rpm包中文件提取
Rpm2cpio  将rpm包转换为cpio格式的命令 
Cpio 是一个标准工具,它用于创建软件档案文件和从档案文件中提取文件

Cpio 选项 < [文件|设备]
-i:copy-in模式,还原
-d:还原时自动新建目录
-v:显示还原过程

文件提取还原案例:

rpm  -qf /bin/ls  查询ls命令属于哪个软件包
mv  /bin/ls /tmp  
rpm2cpio /mnt/cdrom/Packages/coreutils-8.4-19.el6.i686.rpm | cpio -idv ./bin/ls 提取rpm包中ls命令到当前目录的/bin/ls下
cp /root/bin/ls  /bin/ 把ls命令复制到/bin/目录 修复文件丢失

挂载命令rpm包:
mkdir  /mnt/chrom/  建立挂载点
mount -t iso9660 /dev/cdrom  /mnt/cdrom/  挂在光盘
mount/dev/sr0 /mnt/cdrom/

卸载命令
umount  设备文件名或挂载点
umount /mnt/cdrom/

Bypass

About Me

一个网络安全爱好者,对技术有着偏执狂一样的追求。致力于分享原创高质量干货,包括但不限于:渗透测试、WAF绕过、代码审计、安全运维。

本文分享自微信公众号 - Bypass(Bypass--)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-09-17

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • linux下Clang和gcc的区别

    出错提示更友 好,比如 clang 在编译过程可以直接指出相对简单的出错位置以及它 “ 认为 ” 正确的方式 。

    Linux阅码场
  • 高性能网络编程6–reactor反应堆与定时器管理

    反应堆开发模型被绝大多数高性能服务器所选择,上一篇所介绍的IO多路复用是它的实现基础。定时触发功能通常是服务器必备组件,反应堆模型往往还不得不将定时器的管理囊括...

    陶辉
  • linux中的 tar命令的 -C 参数,以及其它一些参数

    复制源:http://www.cnblogs.com/li-hao/archive/2011/10/03/2198480.html tar命令的-C参数  ...

    拓荒者
  • scp 命令 不用手动输入密码

     版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wowocpp/article/details/795390...

    拓荒者
  • Message system on fire --- 一次火上房的系统维修

    由于每天起的太早,所以中午必须要午休,否则无法保证下午的工作状态。正在午休时,电话响起,一阵急促的声音,“看看咱们的message 系统,短信发不出去了,经销商...

    AustinDatabases
  • ssh,scp带密码操作

    sshpass -p "mima" ssh root@localhost                                 --------参数小...

    拓荒者
  • linux内核调度算法(1)–快速找到最高优先级进程

    为什么要了解内核的调度策略呢?呵呵,因为它值得我们学习,不算是废话吧。内核调度程序很先进很强大,管理你的Linux上跑的大量的乱七八糟的进程,同时还保持着对用户...

    陶辉
  • linux内核调度算法(3)–多核系统的负载均衡

    多核CPU现在很常见,那么问题来了,一个程序在运行时,只在一个CPU核上运行?还是交替在多个CPU核上运行呢?Linux内核是如何在多核间调度进程的呢?又是内核...

    陶辉
  • [k8s新知] 红帽抢攻边缘运算的两大关键技术

    红帽正式敲响了下一阶段混合云布局,将借助Knative无伺服器与Istio微服务开源新技术,来扩大混合云战场,抢进边缘运算

    阿泽
  • 倒计时:《Linux的任督二脉》之《内存管理》在线课程

    理解硬件访问内存的原理,MMU和页表;澄清Linux内核ZONE,buddy,slab管理;澄清用户空间malloc与内核关系,Lazy分配机制;澄清进程的内存...

    Linux阅码场

扫码关注云+社区

领取腾讯云代金券