服务器之家:专注于服务器技术及软件下载分享
分类导航

Linux|Centos|Ubuntu|系统进程|Fedora|注册表|Bios|Solaris|Windows7|Windows10|Windows11|windows server|

服务器之家 - 服务器系统 - Linux - 记一次入侵Linux服务器和删除木马程序的经历

记一次入侵Linux服务器和删除木马程序的经历

2021-11-02 15:54wangzan18 Linux

这篇文章主要介绍了记一次入侵Linux服务器和删除木马程序的经历的相关资料,需要的朋友可以参考下

一、背景

晚上看到有台服务器流量跑的很高,明显和平常不一样,流量达到了800mbps,第一感觉应该是中木马了,被人当做肉鸡了,在大量发包。
我们的服务器为了最好性能,防火墙(iptables)什么的都没有开启,但是服务器前面有物理防火墙,而且机器都是做的端口映射,也不是常见的端口,按理来说应该是满安全的,可能最近和木马有缘吧,老是让我遇到,也趁这次机会把发现过程记录一下。

二、发现并追踪处理

1、查看流量图发现问题

查看的时候网页非常卡,有的时候甚至没有响应。

记一次入侵Linux服务器和删除木马程序的经历

2、top动态查看进程

我马上远程登录出问题的服务器,远程操作很卡,网卡出去的流量非常大,通过top发现了一个异常的进程占用资源比较高,名字不仔细看还真以为是一个web服务进程。

记一次入侵Linux服务器和删除木马程序的经历

4、结束异常进程并继续追踪

复制代码 代码如下:

killall -9 nginx1
rm -f /etc/nginx1

干掉进程之后,流量立刻下来了,远程也不卡顿了,难道删掉程序文件,干掉异常进程我们就认为处理完成了么?想想也肯定没那么简单的,这个是木马啊,肯定还会自己生成程序文件(果然不出我所料,在我没有搞清楚之前,后面确实又生成了)我们得继续追查。

5、查看登录记录及日志文件secure

通过命令last查看账户登录记录,一切正常。查看系统文件message并没有发现什么,但是当我查看secure文件的时候发现有些异常,反正是和认证有关的,应该是尝试连进来控制发包?

记一次入侵Linux服务器和删除木马程序的经历

7、更多异常文件的发现

查看定时任务文件crontab并没有发现什么一次,然后查看系统启动文件rc.local,也没有什么异常,然后进入/etc/init.d目录查看,发现比较奇怪的脚本文件dbsecurityspt、selinux。

记一次入侵Linux服务器和删除木马程序的经历

想到这里,替换的命令应该很多,单靠我们去找肯定是解决不了的,我的建议最好是重装操作系统,并做好安全策略,如果不重装,我下面给一下我的方法,具体行不行有待验证。

三、木马手动清除

现在综合总结了大概步骤如下:

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、找出异常程序并杀死

记一次入侵Linux服务器和删除木马程序的经历

5、删除含木马命令并重新安装(或者把上传的正常程序复制过去也行)

我自己重新安装好像不行,我是找的正常的机器复制的命令。

复制代码 代码如下:

#ps
/root/chattr -i -a /bin/ps && rm /bin/ps -f
yum reinstall procps -y 或 cp /root/ps /bin
#netstat
/root/chattr -i -a /bin/netstat && rm /bin/netstat -f
yum reinstall net-tools -y 或 cp /root/netstat /bin
#lsof
/root/chattr -i -a /bin/lsof && rm /usr/sbin/lsof -f
yum reinstall lsof -y 或 cp /root/lsof /usr/sbin
#ss
/root/chattr -i -a /usr/sbin/ss && rm /usr/sbin/ss -f
yum -y reinstall iproute 或 cp /root/ss /usr/sbin

四、杀毒工具扫描

1、安装杀毒工具clamav

复制代码 代码如下:

yum -y install clamav clamav-milter

2、启动服务

复制代码 代码如下:

service clamd restart

3、更新病毒库

由于clamav不是最新版本,所以有告警信息。可以忽略或升级最新版本。

复制代码 代码如下:

[root@mobile ~]# freshclam
clamav update process started at sun jan 31 03:15:52 2016
warning: can't query current.cvd.clamav.net
warning: invalid dns reply. falling back to http mode.
reading cvd header (main.cvd): warning: main.cvd not found on remote server
warning: can't read main.cvd header from db.cn.clamav.net (ip: 185.100.64.62)
trying again in 5 secs...
clamav update process started at sun jan 31 03:16:25 2016
warning: can't query current.cvd.clamav.net
warning: invalid dns reply. falling back to http mode.
reading cvd header (main.cvd): trying host db.cn.clamav.net (200.236.31.1)...
ok
main.cvd is up to date (version: 55, sigs: 2424225, f-level: 60, builder: neo)
reading cvd header (daily.cvd): ok (ims)
daily.cvd is up to date (version: 21325, sigs: 1824133, f-level: 63, builder: neo)
reading cvd header (bytecode.cvd): ok (ims)
bytecode.cvd is up to date (version: 271, sigs: 47, f-level: 63, builder: anvilleg)

4、扫描方法

可以使用clamscan -h查看相应的帮助信息

复制代码 代码如下:

clamscan -r /etc --max-dir-recursion=5 -l /root/etcclamav.log
clamscan -r /bin --max-dir-recursion=5 -l /root/binclamav.log
clamscan -r /usr --max-dir-recursion=5 -l /root/usrclamav.log
clamscan -r --remove /usr/bin/bsd-port
clamscan -r --remove /usr/bin/

5、查看日志发现

把发现的命令删掉替换正常的

记一次入侵Linux服务器和删除木马程序的经历

附录:linux.backdoor.gates.5

经过查询资料,这个木马应该是linux.backdoor.gates.5,找到一篇文件,内容具体如下:
某些用户有一种根深蒂固的观念,就是目前没有能够真正威胁linux内核操作系统的恶意软件,然而这种观念正在面临越来越多的挑战。与4月相比,2014年5月doctor web公司的技术人员侦测到的linux恶意软件数量创下了新纪录,六月份这些恶意软件名单中又增加了一系列新的linux木马,这一新木马家族被命名为linux.backdoor.gates。

在这里描述的是恶意软件家族linux.backdoor.gates中的一个木马:linux.backdoor.gates.5,此恶意软件结合了传统后门程序和ddos攻击木马的功能,用于感染32位linux版本,根据其特征可以断定,是与linux.dnsamp和linux.ddos家族木马同出于一个病毒编写者之手。新木马由两个功能模块构成:基本模块是能够执行不法分子所发指令的后门程序,第二个模块在安装过程中保存到硬盘,用于进行ddos攻击。linux.backdoor.gates.5在运行过程中收集并向不法分子转发受感染电脑的以下信息:

cpu核数(从/proc/cpuinfo读取)。

cpu速度(从/proc/cpuinfo读取)。

cpu使用(从/proc/stat读取)。

gate'a的 ip(从/proc/net/route读取)。

gate'a的mac地址(从/proc/net/arp读取)。

网络接口信息(从/proc/net/dev读取)。

网络设备的mac地址。

内存(使用/proc/meminfo中的memtotal参数)。
发送和接收的数据量(从/proc/net/dev读取)。
操作系统名称和版本(通过调用uname命令)。

启动后,linux.backdoor.gates.5会检查其启动文件夹的路径,根据检查得到的结果实现四种行为模式。
如果后门程序的可执行文件的路径与netstat、lsof、ps工具的路径不一致,木马会伪装成守护程序在系统中启动,然后进行初始化,在初始化过程中解压配置文件。配置文件包含木马运行所必须的各种数据,如管理服务器ip地址和端口、后门程序安装参数等。

根据配置文件中的g_igatsisfx参数值,木马或主动连接管理服务器,或等待连接:成功安装后,后门程序会检测与其连接的站点的ip地址,之后将站点作为命令服务器。

木马在安装过程中检查文件/tmp/moni.lock,如果该文件不为空,则读取其中的数据(pid进程)并“干掉”该id进程。然后linux.backdoor.gates.5会检查系统中是否启动了ddos模块和后门程序自有进程(如果已启动,这些进程同样会被“干掉”)。如果配置文件中设置有专门的标志g_iisservice,木马通过在文件/etc/init.d/中写入命令行

#!/bin/bash\n<path_to_backdoor>将自己设为自启动,然后linux.backdoor.gates.5创建下列符号链接:

复制代码 代码如下:

ln -s /etc/init.d/dbsecurityspt /etc/rc1.d/s97dbsecurityspt
ln -s /etc/init.d/dbsecurityspt /etc/rc2.d/s97dbsecurityspt
ln -s /etc/init.d/dbsecurityspt /etc/rc3.d/s97dbsecurityspt
ln -s /etc/init.d/dbsecurityspt /etc/rc4.d/s97dbsecurityspt

如果在配置文件中设置有标志g_bdobackdoor,木马同样会试图打开/root/.profile文件,检查其进程是否有root权限。然后后门程序将自己复制到/usr/bin/bsd-port/getty中并启动。在安装的最后阶段,linux.backdoor.gates.5在文件夹/usr/bin/再次创建一个副本,命名为配置文件中设置的相应名称,并取代下列工具:

复制代码 代码如下:

/bin/netstat
/bin/lsof
/bin/ps
/usr/bin/netstat
/usr/bin/lsof
/usr/bin/ps
/usr/sbin/netstat
/usr/sbin/lsof
/usr/sbin/ps

木马以此完成安装,并开始调用基本功能。

执行另外两种算法时木马同样会伪装成守护进程在被感染电脑启动,检查其组件是否通过读取相应的.lock文件启动(如果未启动,则启动组件),但在保存文件和注册自启动时使用不同的名称。

与命令服务器设置连接后,linux.backdoor.gates.5接收来自服务器的配置数据和僵尸电脑需完成的命令。按照不法分子的指令,木马能够实现自动更新,对指定ip地址和端口的远程站点发起或停止ddos攻击,执行配置数据所包含的命令或通过与指定ip地址的远程站点建立连接来执行其他命令。

此后门程序的主要ddos攻击目标是中国的服务器,然而不法分子攻击对象也包括其他国家。下图为利用此木马进行的ddos攻击的地理分布:

记一次入侵Linux服务器和删除木马程序的经历

延伸 · 阅读

精彩推荐
  • LinuxLinux lnmp下无法使用mail发邮件的两种解决方法

    Linux lnmp下无法使用mail发邮件的两种解决方法

    在配置了lnmp环境后,出现了mail函数不能发送邮件的问题,其实有两种方法,一是使用sendmail组件,而是使用postfix。下面为大家一一介绍下 ...

    Linux之家4042019-09-17
  • Linuxlinux中rmdir命令使用详解(删除空目录)

    linux中rmdir命令使用详解(删除空目录)

    今天学习一下linux中命令: rmdir命令。rmdir是常用的命令,该命令的功能是删除空目录,一个目录被删除之前必须是空的 ...

    linux命令大全5372019-11-19
  • Linux确保Linux系统安全的前提条件 漏洞防护

    确保Linux系统安全的前提条件 漏洞防护

    Linux 作为开放式的操作系统受到很多程序员的喜爱,很多高级程序员都喜欢编写Linux操作系统的相关软件。这使得Linux操作系统有着丰富的软件支持,还有无...

    Linux之家2642020-04-11
  • LinuxLinux常用的日志文件和常用命令

    Linux常用的日志文件和常用命令

    成功地管理任何系统的关键之一,是要知道系统中正在发生什么事。 Linux 中提供了异常日志,并且日志的细节是可配置的。Linux 日志都以明文形式存储,所...

    Linux教程网2632020-04-18
  • Linux详解Linux系统下PXE服务器的部署过程

    详解Linux系统下PXE服务器的部署过程

    这篇文章主要介绍了Linux系统下PXE服务器的部署过程,包括对PXE的API架构作了一个基本的简介,需要的朋友可以参考下...

    运维之道9812019-07-04
  • LinuxLinux中环境变量配置的步骤详解

    Linux中环境变量配置的步骤详解

    Linux中环境变量包括系统级和用户级,系统级的环境变量是每个登录到系统的用户都要读取的系统变量,而用户级的环境变量则是该用户使用系统时加载的...

    Myths7882022-02-10
  • LinuxLinux上设置用户通过SFTP访问目录的权限的方法

    Linux上设置用户通过SFTP访问目录的权限的方法

    这篇文章主要介绍了Linux上设置用户通过SFTP访问目录的权限的方法,SFTP可以理解为使用SSH协议进行FTP传输的协议,因而同时要对OpenSSH进行相关设置,需要的朋...

    OSChina10022019-06-19
  • Linux手把手教您在 Linux 上使用 GPG 加解密文件

    手把手教您在 Linux 上使用 GPG 加解密文件

    在本教程中,我将告诉你如何用 GPG 加密和解密文件。这是一个简单的教程,你可以在你的 Linux 系统上尝试所有的练习。这将帮助你练习 GPG 命令,并在你...

    Linux中国6962021-12-15