挖矿病毒2-分析和排查思路
前言
1月23日晚上22点附近,公司群收到管理员说阿里云报了挖矿病毒的警告
因此本人手里处理过2次挖矿病毒,针对挖矿病毒的杀毒和溯源,个人整理下心得,也有一部分思路来源网络整理
1、分析
1.1 top查看异常进程和占用率
发现一个叫sh的进程名几乎占用全部的cpu资源
1.2 根据pid查找挖矿病毒的目录
当然用其他方法也可以找出,这里是当挖矿病毒正在运行时这么查找更加容易 找到挖矿病毒的主体文件所在目录了/tmp/admin/sh
不过通常病毒文件会用隐藏目录,因此进入/tmp后需要用ls -lart查看隐藏目录
最后锁定挖矿病毒主题文件.sh,其他文件经过分析,属于创建的脚本,用于给挖矿病毒主题创造有利的环境
大多数厉害的挖矿病毒是不会留下脚本的,需要自己根据蛛丝马迹找,能找到脚本可以把修改的地方针对性的还原,没法找到脚本就没法100%还原被修改的配置了
1.3 拿到挖矿主体二进制文件
查看是否加壳,用PEiD.0.95查看 目前抓住的这个没有加壳,上一次的有加壳 不过查看加壳与否我都没法脱壳的,只是用工具查看是否还有价值的信息,加了强壳的二进制查看的价值不大了
1.4 二进制查看
尝试是否能找到一点有用的信息
比如这个没加壳的就容易看到一些有价值的信息
1.5 有能力的可以上ida查看汇编信息
本人不才。。。只能看个图 不管是汇编视图还是二进制视图,因个人能力不足,无法查看更多有价值的信息
1.6 查找其他痕迹,查看感染来源
1.7 查看日志
1.8 病毒工具扫描
1.9 找守护挖矿的进程
可能是定时任务,也可能是其他二进制脚本
2、排查思路
先找到病毒主体文件,然后需要有清晰的排查思路,结合搜集到的信息,可以去一些安全或者漏洞网站查询是否有人中招和排查经验,结合已经曝光的信息再加上自己的思路,可以事半功倍
2.1 top异常服务
有的挖矿病毒不会修改服务名,有的会隐藏成sysupdate、networkservice、sysguard这些看着像系统进程的名称,有的还会改成apache、php、mysql等服务名,需要凭职业经验分辨
|
|
2.2 查看异常进程目录
|
|
2.3 检查定时任务
|
|
有修改的话需要还原
2.4 检查账号
|
|
有新增异常账号需要删除,需要留意特权账号uid=0的
2.5 检查sudo
|
|
有新增的异常命令或者账号需要清理
2.6 检查环境变量
root账号的环境变量文件
|
|
有新增的话需要清理
其他业务账号的环境变量文件需要挨个检查下,因为已经发现本次是admin账号感染,这里就主要排查admin账号
|
|
2.7 检查执行命令历史记录
大多数厉害的挖矿病毒会清理history -c,因此抱着试试看的想法还是检查下
|
|
如果服务器上还有其他服务,比如mysql redis mongodb等也需要排查下,比如勒索病毒就好这口
|
|
2.8 检查新增的文件或命令
|
|
2.9 针对上一步可以采用修改日期排查法
|
|
2.10 检查异常端口
|
|
2.11 检查启动项
|
|
清理异常启动项
2.12 检查计划任务
一般会隐藏
|
|
清理和还原定时任务
2.13 异常目录
挖矿一般喜欢用.隐藏目录或者/tmp下
|
|
2.14 检查安装的服务
|
|
2.15 检查日志和分析
系统日志 日志默认存放位置:/var/log/
查看日志配置情况:more /etc/rsyslog.conf
日志文件 | 说明 |
---|---|
/var/log/cron | 记录了系统定时任务相关的日志 |
/var/log/cups | 记录打印信息的日志 |
/var/log/dmesg | 记录了系统在开机时内核自检的信息,也可以使用dmesg命令直接查看内核自检信息 |
/var/log/mailog | 记录邮件信息 |
/var/log/message | 记录系统重要信息的日志。这个日志文件中会记录Linux系统的绝大多数重要信息,如果系统出现问题时,首先要检查的就应该是这个日志文件 |
/var/log/btmp | 记录错误登录日志,这个文件是二进制文件,不能直接vi查看,而要使用lastb命令查看 |
/var/log/lastlog | 记录系统中所有用户最后一次登录时间的日志,这个文件是二进制文件,不能直接vi,而要使用lastlog命令查看 |
/var/log/wtmp | 永久记录所有用户的登录、注销信息,同时记录系统的启动、重启、关机事件。同样这个文件也是一个二进制文件,不能直接vi,而需要使用last命令来查看 |
/var/log/utmp | 记录当前已经登录的用户信息,这个文件会随着用户的登录和注销不断变化,只记录当前登录用户的信息。同样这个文件不能直接vi,而要使用w,who,users等命令来查询 |
/var/log/secure | 记录验证和授权方面的信息,只要涉及账号和密码的程序都会记录,比如SSH登录,su切换用户,sudo授权,甚至添加用户和修改用户密码都会记录在这个日志文件中 |
2.16 其他有用的日志
apt-get安装日志
|
|
yum安装日志和历史信息
|
|
2.17 检查安装的rpm包或者是否动过手脚
|
|
参数说明:
参数 | 含义 |
---|---|
S | 表示文件长度发生了变化 |
M | 表示文件的访问权限或文件类型发生了变化 |
5 | 表示MD5校验和发生了变化 |
D | 表示设备节点的属性发生了变化 |
L | 表示文件的符号链接发生了变化 |
U | 表示文件/子目录/设备节点的owner发生了变化 |
G | 表示文件/子目录/设备节点的group发生了变化 |
T | 表示文件最后一次的修改时间是发生了变化 |
2.18 检查命令的完整性
|
|
2.19 检查hosts文件
|
|
清理异常的映射地址
2.20 检查.ssh文件
|
|
清理异常的pub key和ssh信任
2.21 检查防火墙-iptables
|
|
清理异常的规则
2.22 检查别名
|
|
清理异常的别名
3、加固
这里列举下部分比较容易的加固方式
3.1 条件提前做md5sum值
|
|
提前把关键文件的md5值搜集,后续可以比对
3.2 增加history的记录条数和详细信息
保存1W条history
|
|
history记录详细信息
|
|
4、挖矿病毒的参考
因为我发觉的2次挖矿病毒跟下面的部分表相很像但是又不完全一样,可能是变种或者改进了
kinsing: https://blog.trendmicro.com.tw/?p=66511
kinsing: https://blog.csdn.net/cfm_gavin/article/details/103803448
sh: https://notes.daiyuhe.com/clear-linux-mining-virus/
sh: https://blog.csdn.net/jabyn/article/details/111239735
xr: https://www.freebuf.com/column/240100.html
- 原文作者:Anttu
- 原文链接:https://anTtutu.github.io/post/2021-01-28-miner_virus_2/
- 版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可,非商业转载请注明出处(作者,原文链接),商业转载请联系作者获得授权。