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

简介:

一、背景

    晚上看到有台服务器流量跑的很高,明显和平常不一样,流量达到了800Mbps,第一感觉应该是中木马了,被人当做肉鸡了,在大量发包。

    我们的服务器为了最好性能,防火墙(iptables)什么的都没有开启,但是服务器前面有物理防火墙,而且机器都是做的端口映射,也不是常见的端口,按理来说应该是满安全的,可能最近和木马有缘吧,老是让我遇到,也趁这次机会把发现过程记录一下。

二、发现并追踪处理

1、查看流量图发现问题

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

wKiom1as-dyQlUCeAAFWXnyaceU258.png

2、top动态查看进程

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

wKioL1as-nOSab6eAACPx1Gw2qc060.png

3、ps命令查看进程的路径

     发现这个程序文件在/etc目录下面,是个二进制程序,我拷贝了下来,放到了本文附近位置,以供大家在虚拟机上面研究,哈哈。

wKiom1as-k-TydDMAADaZz0UV1k116.png

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

1
2
killall -9 nginx1
rm  -f  /etc/nginx1

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

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

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

wKioL1as_jORDywFAAFogdyG4v8317.png

6、再次ps查看进程

    其实第一次ps的时候就有这个问题,那时候没有发现,第二次是自习查看每个进程,自习寻找不太正常的进程,发现了一个奇怪的ps进程。

wKiom1as_uDj_cZWAAA1rhjR00k722.png

    我找了一台正常的机器,查看了一下ps命令的大小,正常的大约是81KB,然后这台机器上面的ps却高达1.2M,命令文件肯定是被替换了。

wKioL1as_52wGvNHAAASrsFyr24589.png

   然后进入另一个ps的目录,看到有如下几个命令,然后我有查询了一下系统的这几个命令,发现都变得很大,都达到了1.2M,这些系统命令文件肯定是都被替换了。

wKiom1as__TQk4K_AAAn0k9evMk278.png

7、更多异常文件的发现

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

wKioL1atApfgw78ZAAB5n-v2zfM656.png

    第一个文件可以看出他就是开机启动那个异常文件的,第二个应该和登录有关,具体我还不是很清楚,反正肯定是有问题的。

wKioL1atBB_gx4vbAAAivNZ8pRs292.png

   既然和登录有关,那就找和ssh相关的,找到了下面的一个文件,是隐藏文件,这个也是木马文件,我们先记录下来,这样程序名字都和我们的服务名字很相近,就是为了迷惑我们,他们的大小都是1.2M,他们有可能是一个文件。

wKiom1atBQbz_CoYAAATGOPwJ50519.png

   我有看了一下木马喜欢出现的目录/tmp,也发现了异常文件,从名字上感觉好像是监控木马程序的。

wKiom1atBnyg7i6dAACRJQNJKns664.png

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

三、木马手动清除

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

1、简单判断有无木马

1
2
3
4
5
6
7
8
9
10
#有无下列文件
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下

1
ps  netstat  ss  lsof

3、删除如下目录及文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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、找出异常程序并杀死

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

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

1
2
3
4
5
6
7
8
9
10
11
12
#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

1
yum -y  install  clamav clamav-milter

2、启动服务

1
service clamd restart

3、更新病毒库

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
[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查看相应的帮助信息

1
2
3
4
5
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、查看日志发现

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

wKioL1ato5WhI0v2AABTpf1Tq0I913.png

附录: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创建下列符号链接:

1
2
3
4
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/再次创建一个副本,命名为配置文件中设置的相应名称,并取代下列工具:

1
2
3
4
5
6
7
8
9
/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攻击的地理分布:

wKiom1atDxbAPpm7AAGEMXS_d8w613.png




     本文转自 wzlinux 51CTO博客,原文链接:http://blog.51cto.com/wzlinux/1740113,如需转载请自行联系原作者




相关文章
W9
|
29天前
|
运维 关系型数据库 MySQL
轻松管理Linux服务器的5个优秀管理面板
Websoft9 应用管理平台,github 2k star 开源软件,既有200+的优秀开源软件商店,一键安装。又有可视化的Linux管理面板,文件、数据库、ssl证书方便快捷管理。
W9
85 1
|
1月前
|
缓存 Ubuntu Linux
Linux环境下测试服务器的DDR5内存性能
通过使用 `memtester`和 `sysbench`等工具,可以有效地测试Linux环境下服务器的DDR5内存性能。这些工具不仅可以评估内存的读写速度,还可以检测内存中的潜在问题,帮助确保系统的稳定性和性能。通过合理配置和使用这些工具,系统管理员可以深入了解服务器内存的性能状况,为系统优化提供数据支持。
38 4
|
1月前
|
运维 监控 Linux
服务器管理面板大盘点: 8款开源面板助你轻松管理Linux服务器
在数字化时代,服务器作为数据存储和计算的核心设备,其管理效率与安全性直接关系到业务的稳定性和可持续发展。随着技术的不断进步,开源社区涌现出众多服务器管理面板,这些工具以其强大的功能、灵活的配置和友好的用户界面,极大地简化了Linux服务器的管理工作。本文将详细介绍8款开源的服务器管理面板,包括Websoft9、宝塔、cPanel、1Panel等,旨在帮助运维人员更好地选择和使用这些工具,提升服务器管理效率。
|
20天前
|
存储 Oracle 安全
服务器数据恢复—LINUX系统删除/格式化的数据恢复流程
Linux操作系统是世界上流行的操作系统之一,被广泛用于服务器、个人电脑、移动设备和嵌入式系统。Linux系统下数据被误删除或者误格式化的问题非常普遍。下面北亚企安数据恢复工程师简单聊一下基于linux的文件系统(EXT2/EXT3/EXT4/Reiserfs/Xfs) 下删除或者格式化的数据恢复流程和可行性。
|
1月前
|
安全 Linux API
Linux服务器安全
人们常误认为服务器因存于数据中心且数据持续使用而无需加密。然而,当驱动器需维修或处理时,加密显得尤为重要,以防止数据泄露。Linux虽有dm-crypt和LUKS等内置加密技术,但在集中管理、根卷加密及合规性等方面仍存不足。企业应选择具备强大验证、简单加密擦除及集中管理等功能的解决方案,以弥补这些缺口。
26 0
|
弹性计算 Linux
[转]ECS之初体验(Linux)
服务商: 阿里云 操作系统:Linux 64位 Ubantu 20.04 64位
122 0
|
2天前
|
人工智能 JSON Linux
利用阿里云GPU加速服务器实现pdf转换为markdown格式
随着AI模型的发展,GPU需求日益增长,尤其是个人学习和研究。直接购置硬件成本高且更新快,建议选择阿里云等提供的GPU加速型服务器。
利用阿里云GPU加速服务器实现pdf转换为markdown格式
|
1天前
|
开发框架 缓存 .NET
阿里云轻量应用服务器、经济型e、通用算力型u1实例怎么选?区别及选择参考
在阿里云目前的活动中,价格比较优惠的云服务器有轻量应用服务器2核2G3M带宽68元1年,经济型e实例2核2G3M带宽99元1年,通用算力型u1实例2核4G5M带宽199元1年,这几个云服务器是用户关注度最高的。有的新手用户由于是初次使用阿里云服务器,对于轻量应用服务器、经济型e、通用算力型u1实例的相关性能并不是很清楚,本文为大家做个简单的介绍和对比,以供参考。
|
9天前
|
弹性计算 运维 安全
阿里云轻量应用服务器与ECS的区别及选择指南
轻量应用服务器和云服务器ECS(Elastic Compute Service)是两款颇受欢迎的产品。本文将对这两者进行详细的对比,帮助用户更好地理解它们之间的区别,并根据自身需求做出明智的选择。
|
10天前
|
SQL 弹性计算 安全
阿里云上云优选与飞天加速计划活动区别及购买云服务器后续必做功课参考
对于很多用户来说,购买云服务器通常都是通过阿里云当下的各种活动来购买,这就有必要了解这些活动的区别,同时由于活动内的云服务器购买之后还需要单独购买并挂载数据盘,还需要设置远程密码以及安全组等操作之后才能正常使用云服务器。本文就为大家介绍一下目前比较热门的上云优选与飞天加速计划两个活动的区别,以及通过活动来购买云服务器之后的一些必做功课,确保云服务器可以正常使用,以供参考。