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/

推荐阅读: 

Linux应急响应(一):SSH暴力破解

Linux应急响应(二):捕捉短连接

Linux应急响应(三):挖矿病毒

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

 

最后

欢迎关注个人微信公众号:Bypass--,每周原创一篇技术干货。 

Linux应急响应(四):盖茨木马的更多相关文章

  1. Linux系统_Linux平台“盖茨木马”初步了解

    静态分析: # file Yang Yang: ELF -bit LSB executable, Intel , version (SYSV), statically linked, , not st ...

  2. Linux应急响应(三):挖矿病毒

    0x00 前言 ​ 随着虚拟货币的疯狂炒作,利用挖矿脚本来实现流量变现,使得挖矿病毒成为不法分子利用最为频繁的攻击方式.新的挖矿攻击展现出了类似蠕虫的行为,并结合了高级攻击技术,以增加对目标服务器感染 ...

  3. Linux应急响应(二):捕捉短连接

    0x00 前言 ​ 短连接(short connnection)是相对于长连接而言的概念,指的是在数据传送过程中,只在需要发送数据时,才去建立一个连接,数据发送完成后,则断开此连接,即每次连接只完成一 ...

  4. Linux应急响应(一):SSH暴力破解

    0x00 前言 ​ SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议,主要用于给远程登录会话数据进行加密,保证数据传输的安全.SSH口令长度太短或者复杂度不够,如仅包含数字,或仅包 ...

  5. Linux应急响应基础

    文件排查 敏感目录文件分析 tmp目录 命令目录 /usr/bin /usr/sbin 开机启动项 /etc/init.d /etc/init.d是/etc/rc.d/init.d的软链接 文件时间 ...

  6. 最全Linux应急响应技巧 【转】

    概述 Linux环境下处理应急响应事件往往会更加的棘手,因为相比于Windows,Linux没有像Autorun.procexp这样的应急响应利器,也没有统一的应急响应处理流程.所以,这篇文章将会对L ...

  7. Linux应急响应学习

    Linux应急响应-系统日志排查-溯源 溯源 找到攻击者.系统日志分析攻击者的ip  攻击者可能留下了一些代码 样本 网上的信息很大程度上是不可信的. 方法: 蜜罐  高交互的蜜罐 溯源: ip 日志 ...

  8. Linux应急响应思路详谈

    一.主机篇: 1.自动化初筛,建议使用RootkitHunter (1)安装 $sudo wget https://jaist.dl.sourceforge.net/project/rkhunter/ ...

  9. Linux应急响应姿势浅谈

    一.前记 无论是甲方还是乙方的同学,应急响应可能都是家常便饭,你可能经常收到如下反馈: 运维同事 --> 服务器上存在可疑进程,系统资源占用高: 网络同事 --> 监控发现某台服务器对外大 ...

随机推荐

  1. Java虚拟机(JVM)体系结构概述及各种性能参数优化总结

    转自:http://blog.csdn.net/zhongwen7710/article/details/39213377 第一部分:相关的概念 数据类型 Java虚拟机中,数据类型可以分为两类:基本 ...

  2. SpagoBI 教程 Lesson 4: BIRT Reports

    SpagoBI Lesson 4: BIRT Reports BIRT BIRT is the acronym for Business Intelligence and Reporting Tool ...

  3. Spring JMS 官方文档学习

    最后部分的XML懒得写了,因为个人更倾向于JavaConfig形式. 为知笔记版本见这里,带格式~ 做了一个小demo,放到码云上了,有兴趣的点我. 说明:需要先了解下JMS的基础知识. 1.介绍 S ...

  4. 用OpenGL绘制平滑着色的三角形与相交区域的混合着色

    一.三角形的绘制 在OpenGL中,面是由多边形构成的.三角形可能是最简单的多边形,它有三条边.可以使用GL_TRIANGLES模式通过把三个顶点连接到一起而绘出三角形. 使用GL_TRIANGLE_ ...

  5. JAVA写代码必须知道的编程工具

    Eclipse: 一个开放源代码的.基于Java的可扩展开发平台. NetBeans: 开放源码的Java集成开发环境,适用于各种客户机和Web应用. IntelliJ IDEA: 在代码自动提示.代 ...

  6. .OFF 格式文件

    转载:http://blog.sina.com.cn/s/blog_643634b80102v166.html 物体文件格式(.off)文件通过描述物体表面的多边形来表示一个模型的几何结构,这里的多边 ...

  7. UFLDL教程练习(exercise)答案(2)

    主成分分析与白化,这部分很简单,当然,其实是用Matlab比较简单,要是自己写SVD分解算法,足够研究好几个月的了.下面是我自己实现的练习答案,不保证完全正确,不过结果和网站上面给出的基本一致. 1. ...

  8. 【转】Gulp入门基础教程

    Gulp入门基础教程 原文在此 前言最近流行前端构建工具,苦于之前使用Grunt,代码很难阅读,现在出了Gulp, 真是摆脱了痛苦.发现了一篇很好的Gulp英文教程,整理翻译给大家看看. 为什么使用G ...

  9. 自建Nuger Server拾遗

    企业内部的包需要通过nuget来管理发布,或者一些不允许上外网的企业,通过自己的nuget服务器来使用nuget,都会考虑到自建一个nuget服务器.本文整理了一些有用的链接和使用心得,以备不时之需. ...

  10. 【python】logging

    https://docs.python.org/3/howto/logging.html import logging # create logger logger = logging.getLogg ...