近期登录的帐户记录
使用last命令查看下服务器近期登录的帐户记录,确认是否有可疑 IP 登录过机器:
检查说明:攻击者或者恶意软件往往会往系统中注入隐藏的系统帐户实施提权或其他破坏性的攻击。
解决方法:检查发现有可疑用户时,可使用命令usermod -L 用户名禁用用户或者使用命令userdel -r 用户名删除用户。
查看是否有可疑 IP 成功登录机器
通过less /var/log/secure|grep 'Accepted'命令,查看是否有可疑 IP 成功登录机器:
检查说明:攻击者或者恶意软件往往会往系统中注入隐藏的系统帐户实施提权或其他破坏性的攻击。
解决方法: 使用命令usermod -L 用户名禁用用户或者使用命令userdel -r 用户名删除用户。
限制远程登录的 IP
编辑/etc/hosts.deny 、/etc/hosts.allow两个文件来限制 IP。
主机执行TOP命令
通过执行top命令,即可在返回结果中看到当时系统的CPU占用率。
top -c
如果云主机CPU占用率居高不下,那么主机很有可能已经被植入了挖矿木马,会影响服务器上的其他应用的正常运行,需要立刻上机排查。
防火墙
(1)检查主机防火墙当前生效的iptables规则中是否存在业务范围之外的可疑地址和端口,它们可能是挖矿木马的矿池或C2地址
iptables -L -n
(2)从iptables规则中清除可疑地址和端口
vi /etc/sysconfig/iptables
(3)阻断挖矿木马的网络通信
iptables -A INPUT -s 可疑地址 -j DROPiptables -A OUTPUT -d 可疑地址 -j DROP
清除计划任务
可以通过执行如下命令查看是否存在可疑定时任务,若有,则先保存相关记录用于后续分析,再进行删除:
查看系统当前用户的计划任务:
crontab -l
查看系统特定用户的计划任务:
crontab -u username -l
查看其他计划任务文件:
cat /etc/crontabcat /var/spool/croncat /etc/anacrontabcat /etc/cron.d/cat /etc/cron.daily/cat /etc/cron.hourly/cat /etc/cron.weekly/cat /etc/cron.monthly/cat /var/spool/cron/
清除启动项
除了计划任务,挖矿木马通过添加启动项同样能实现持久化。可以使用如下命令查看开机启动项中是否有异常的启动服务。
CentOS7以下版本:
chkconfig –list
CentOS7及以上版本:
systemctl list-unit-files
如果发现有恶意启动项,可以通过如下命令进行关闭:
CentOS7以下版本:
chkconfig 服务名 off
CentOS7及以上版本:
systemctl disable 服务名
另外,还需要仔细排查以下目录及文件,及时删除可疑的启动项:
/usr/lib/systemd/system/usr/lib/systemd/system/multi-user.target.wants/etc/rc.local/etc/inittab/etc/rc0.d//etc/rc1.d//etc/rc2.d//etc/rc3.d//etc/rc4.d//etc/rc5.d//etc/rc6.d//etc/rc.d/
排查的时候,可以按照文件修改时间来排序,重点排查近期被创建服务项。如下图所示,系统近期被创建了一个名为bot.service的服务,该服务在系统启动时会启动/etc/kinsing这个木马文件,需要关闭bot服务,并删除/etc/kinsing文件。
清除预加载so
通过配置/etc/ld.so.preload,可以自定义程序运行前优先加载的动态链接库,部分木马通过修改该文件,添加恶意so文件,从而实现挖矿进程的隐藏等恶意功能。
检查/etc/ld.so.preload(该文件默认为空),清除异常的动态链接库。可以执行> /etc/ld.so.preload
命令进行清除。
清除SSH公钥
挖矿木马通常还会在~/.ssh/authoruzed_keys文件中写入黑客的SSH公钥,这样子就算用户将挖矿木马清除得一干二净,黑客还是可以免密登陆该主机,这也是常见的保持服务器控制权的手段。
排查~/.ssh/authorized_keys文件,如果发现可疑的SSH公钥,直接删除。
清除挖矿进程
挖矿木马最大的特点就是会在用户不知情的情况下,利用主机的算力进行挖矿,从而消耗主机大量的CPU资源,所以,通过执行如下命令排查系统中占用大量CPU资源的进程。
top -cps -ef
确认相关进程为挖矿进程后,按照如下步骤将其清除:
获取并记录挖矿进程的文件路径:
ls -l /proc/$PID/exe
杀死挖矿进程:
kill -9 $PID
删除挖矿进程对应的文件
恶意进程与外部的C2服务器进行通信时,往往会开启端口进行监听。执行如下命令,查看服务器是否有未被授权的端口被监听。
netstat -antp
若有未授权进程,按照如下步骤将其清除:
获取并记录未授权进程的文件路径:
ls -l /proc/$PID/exe
杀死未授权进程:
kill -9 $PID
删除未授权进程对应的文件
还可以通过如下命令排查近期新增的文件,清除相关木马
find /etc -ctime -2 (这里指定目录为/etc,获取近2天内的新增文件) lsof -c kinsing (这里要查看文件名为kinsing的相关进程信息)
网友评论