Linux服务器被入侵怎么办

65次阅读
没有评论

共计 6461 个字符,预计需要花费 17 分钟才能阅读完成。

自动写代码机器人,免费开通

这篇文章主要介绍了 Linux 服务器被入侵怎么办,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让丸趣 TV 小编带着大家一起了解一下。

一、背景

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

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

二、发现并追踪处理

1、查看流量图发现问题

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

2、top 动态查看进程

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

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

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

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

1

2

killall -9 nginx1

rm -f /etc/nginx1

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

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

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

6、再次 ps 查看进程

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

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

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

7、更多异常文件的发现

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

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

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

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

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

三、木马手动清除

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

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

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

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

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、查看日志发现

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

附录: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 攻击的地理分布:

感谢你能够认真阅读完这篇文章,希望丸趣 TV 小编分享的“Linux 服务器被入侵怎么办”这篇文章对大家有帮助,同时也希望大家多多支持丸趣 TV,关注丸趣 TV 行业资讯频道,更多相关知识等着你来学习!

向 AI 问一下细节

丸趣 TV 网 – 提供最优质的资源集合!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-12-07发表,共计6461字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)