记一次感染病毒的应急响应

admin 2022年10月20日22:53:37评论60 views字数 2938阅读9分47秒阅读模式

记一次感染病毒的应急响应


前言

有一段时间没发文章了,近期正好遇到一次服务器中病毒的安全事件,先水一篇。

摘要

近期的某天下午,接收到客户发来的一台Linux服务器感染病毒的安全通知,需要协助处置,与现场工程师沟通了解到该服务器此前在互联网开放了SSH服务,并且有业务系统运行。

虽当时还未明确是什么类型的病毒,但现场工程师的安全意识比较强,发现问题时已第一时间将服务器断网处理,随后我们进行远程分析、处置。

分析

通过相关安全设备,知晓服务器上存在异常的进程,在/usr/bin/dpkgd/目录下,此目录下存在netstat、ps、ss三个可执行程序

/usr/bin/dpkgd/ss/usr/bin/dpkgd/ps/usr/bin/dpkgd/netstat

记一次感染病毒的应急响应

strings命令查看可执行程序,与正常系统下的相同可执行程序对比,判断大概率是正常的系统可执行程序,但被木马程序备份到此目录。

root@localhost:~$ strings /usr/bin/dpkgd/ssroot@localhost:~$ strings /usr/bin/dpkgd/psroot@localhost:~$ strings /usr/bin/dpkgd/netstat

记一次感染病毒的应急响应

三个可执行程序所属用户均为root,所属用户组却为adm,怀疑是否是通过爆破adm用户,进而传播木马病毒文件,此前工程师沟通得知,曾对互联网开放了ssh端口。

查看最近成功登录信息,未发现有adm用户的登录信息。

root@localhost:~$ last

查看安全日志,未发现有异常的登录成功信息(截图有漏,看官见谅)。

此时已感觉到可能不是这个方向进来的。

root@localhost:~$ cat /var/log/secure | grep Accepteroot@localhost:~$ cat /var/log/secure | grep -w "adm"root@localhost:~$ cat /var/log/secure | grep faileroot@localhost:~$ cat /var/log/secure | grep failure

记一次感染病毒的应急响应


思路再转回来,既然正常的系统命令被备份了,现在正在使用的系统命令是在哪呢,whereis命令查看,正使用的命令在/bin/和/usr/sbin目录下

root@localhost:~$ whereis psroot@localhost:~$ whereis ssroot@localhost:~$ whereis netstat

记一次感染病毒的应急响应

记一次感染病毒的应急响应

查看文件信息,文件大小及文件修改时间均有异常,最新一次文件修改时间就在半小时内。

root@localhost:~$ ll -lh /bin/psroot@localhost:~$ ll -lh /bin/ssroot@localhost:~$ ll -lh /bin/netstat

记一次感染病毒的应急响应

记一次感染病毒的应急响应

记一次感染病毒的应急响应

这些是被替换掉的系统文件,还需要去找释放这些文件的病毒核心文件,再次从adm账号入手,通过查找所属组为adm账号的文件,发现了其他异常的文件。

root@localhost:~$ find / -group adm 2>/dev/null

异常文件

/etc/init.d/selinux/etc/init.d/DbSecuritySpt/etc/rc1.d/S97DbSecuritySpt/etc/rc1.d/S99selinux/etc/rc2.d/S97DbSecuritySpt/etc/rc2.d/S99selinux/etc/rc3.d/S97DbSecuritySpt/etc/rc3.d/S99selinux/etc/rc4.d/S97DbSecuritySpt/etc/rc4.d/S99selinux/etc/rc5.d/S97DbSecuritySpt/etc/rc5.d/S99selinux/tmp/gates.lod/tmp/moni.lod

记一次感染病毒的应急响应

记一次感染病毒的应急响应

到此,发现的病毒程序还不全,病毒程序大多是除了主程序之外,还有保护程序。

此时偶然间发现,网络上有人曾中过相似的病毒,根据前人经验,找到其他的文件,根据文件时间和文件大小发现,也是异常文件。

/usr/bin/.sshd/usr/bin/bsd-port/getty

处置

至此,已经把病毒相关的文件、进程找全了,随后将所有病毒相关文件打包,删除所有病毒相关文件,杀掉病毒进程,观察30分钟并在第二天继续观察,确认病毒没有再生。

# 打包tar -zcvf /tmp/test.tar.gz /usr/bin/.sshd /usr/bin/bsd-port/ /etc/init.d/selinux /etc/init.d/DbSecuritySpt /bin/ps /bin/ss /bin/netstat  /tmp/gates.lod
# 删文件rm -fr /usr/bin/.sshdrm -fr /usr/bin/bsd-port/rm -fr /bin/psrm -fr /bin/netstatrm -fr /usr/sbin/ssrm -fr /tmp/gates.lodrm -fr /tmp/moni.lodrm -fr /etc/init.d/selinuxrm -fr /etc/init.d/DbSecuritySptrm -fr /etc/rc1.d/S97DbSecuritySptrm -fr /etc/rc1.d/S99selinuxrm -fr /etc/rc2.d/S97DbSecuritySptrm -fr /etc/rc2.d/S99selinuxrm -fr /etc/rc3.d/S97DbSecuritySptrm -fr /etc/rc3.d/S99selinuxrm -fr /etc/rc4.d/S97DbSecuritySptrm -fr /etc/rc4.d/S99selinuxrm -fr /etc/rc5.d/S97DbSecuritySptrm -fr /etc/rc5.d/S99selinux
# 杀进程kill -9 /usr/bin/.sshdkill -9 /usr/bin/bsd-port/getty
# 恢复文件cp /usr/bin/dpkgd/ps /bin/cp /usr/bin/dpkgd/netstat /bin/cp /usr/bin/dpkgd/ss /usr/sbin/

记一次感染病毒的应急响应

记一次感染病毒的应急响应

虽然病毒的问题解决了,但传播入口在哪还未可知,既然不是通过服务器口令进入,内网也没有发现其他感染的机器,此前与工程师沟通,该服务器确实有业务系统在互联网开放,那大概率是从业务系统进来的了。

通过相关信息收集,此病毒被命名为BillGates,其流行的传播方式为log4j2远程命令执行漏洞,而在服务器上也确实找到了log4j2的jar包文件,因系统下线,只待后续再进行验证确认。

记一次感染病毒的应急响应

至于病毒文件分析的部分就等团队小伙伴K&T分析完后,再来水一篇文章了。


结语

现在的互联网,各种漏洞层出不穷,一定要保护好自己呀,新系统上线做做安全评估,业务系统定期进行安全检查,以免被恶意人员攻击当作肉鸡使用,损害自己的权益。



记一次感染病毒的应急响应



原文始发于微信公众号(Wings安全团队):记一次感染病毒的应急响应

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年10月20日22:53:37
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   记一次感染病毒的应急响应http://cn-sec.com/archives/1361809.html

发表评论

匿名网友 填写信息