挖矿入侵Linux系统排查步骤

一、注意事项
1. 在做入侵排查前使用命令=/dev/null , 将本次shell下执行的命令不写入.中避免干扰之前的历史命令 , 该命令仅针对当次shell有效 , 重开shell后需要重新执行该命令 。
2. 在确定找到恶意文件或被入侵的原因之前 , 切勿杀死恶意进程或重启系统 , 否则会破坏现场 。
3. 可能存在ps、、ls等命令异常 , 可能是已被攻击者或病毒木马等替换 , 此时需要及时删除这些命令文件 , 使用正确的文件 , 以便于再次启动恶意文件 。
检查方法:
文件提取还原过程:
rpm -qf /bin/ls #查询ls命令属于哪个软件包, 然后到找到对应的rpm包 , 使用命令 rpm -ivh xxx.rpm进行安装, 也可以使用yumxxx进行安装(需要联网)
二、用户登录记录排查
1. w命令:用于显示当前在线的用户信息,了解系统的使用情况
2. last命令:用于显示用户最近登录信息 , 可能会留下入侵者的痕迹
3. 命令:查看当前时间、系统运行时间、当前登录的用户有多少 , 以及前 1、5 和 15 分钟系统的平均负载 , 便于了解系统的运行状况和负载情况(判断是否挖矿等提供一定凭据 , 存在挖矿cpu占用率非常高)
三、进程情况排查
1. top命令:查看资源消耗情况 , id表示系统cpu剩余 , 若该值很小 , 说明系统可能被用于挖矿等严重占用资源 , 此时可记录下该进程的PID
2. ps -aux --sort=-pcpu/ps -elf命令:可能top命令找到的仅是一个执行进程 , 可使用ps -aux--sort=-pcpu或ps -elf查询所有进程 , 从而找到所有相关进程(父进程、子进程等) , 也可以检查是否存在其它异常进程(资源异常占用进程、命名异常进程、恶意外连等) 。--sort=-pcpu会根据cpu占用情况从高到低排序 , 有利于定位到资源占用高的进程 。
恶意外连进程资源异常占用进程命名异常进程
3. losf -p $pid 命令:根据进程号查询文件占用情况 , 可根据此命令找到恶意文件的位置
4. 在进程查询的过程中可能会出现两种情况 , 1:可以根据进程找到启动文件;2:文件启动后注入到其它进程中 , 此时根据进程无法找到启动文件
可以根据进程找到启动文件
命令:ls -l /proc/pid/exe可直接查看
由init进程启动 , 无法找到启动文件 ,  最后的子进程由PID:1初始化进程拉起 , 无法找到启动文件 , 
#调试结束,解除进程与gdb的连接,使进程继续运行
四、网络连接排查
1. 使用 -antlp|more;或者 -ano|more发现异常外连后 , 运行ls -l /proc/$PID/exe或file /proc/$PID/exe($PID 为对应的pid 号)可找到启动文件
2. 异常外连情况:半连接、异常字符进程(注意syn半连接和不规则命名)SYN半连接:
不规则命令连接:
3. 查看端口占用情况命令:lsof -i:port , 根据端口查看外连情况
五、历史命令排查
1. 通过.查看帐号执行过的系统命令 , 注意不同用户下的.文件记录相同 , 建议通过root账号登录 , 打开/home各帐号目录下的. , 查看其余帐号的历史命令可通过得到很多的证据 ,  请记得把所有账号 .文件都查看 , 不要遗漏
2. 命令也可直接执行进行查看 , 也需要更换所有用户进行查看历史命令
六、服务器账号排查
1. 查看用户信息文件/etc/
字段按顺序解释:用户名:密码:用户ID:组ID:用户说明:home目录