一、背景信息
在这个跳跃的数字舞台上,数据安全成了政企单位稳航的重要压舱石。某政企单位,作为一艘驶向未来的巨轮,对数据的把控丝毫不敢松懈。眼下,我们即将启航一场无与伦比的探险——“信息安全探索之旅”。
这趟旅程的目的是遍访我们的信息系统每一个角落,探寻隐藏在暗处的风险海怪,提升船员们对数据宝藏的守护意识,确保我们的珍贵资讯宝藏不被外界窥见,不受损害,随时准备发挥其价值。在这场航旅中,某政企单位期望锻造一副更加坚不可摧的数据防护铠甲,增强面对意外风暴的航行能力。
你和你的团队,作为这次探险的领航员,将借助先进的应急响应罗盘,对我们的内部信息航道进行全域的安全梳理。从网络的海洋到系统的天空,从数据库的深渊到应用的岛屿,无一处不在你们的巡航范围之内。我们将特别防范那些潜伏的数据海盗——数据泄露、非法入侵、恶意攻击,以及物联网设备安全上的狂风骤雨。
让我们携手共航,把这次“信息安全探索之旅”变成一个传奇,确保我们的信息系统像最强大的舰队领航者一样,勇敢、可靠、无所畏惧。向着更安全的港湾,全速前进!
二、网络拓扑
三、资产清单
wp参考了套神的blog和风二西师傅的视频教程
第一届 “帕鲁杯“ writeup_帕鲁杯第一名wp-CSDN博客
第一届 “帕鲁杯” CTF挑战赛_应急题目复现
应急响应题目
1. 签到
1 | 提交:[堡垒机的flag标签的值] |
登陆 在标签列表中存在flag
[BrYeaVj54009rDIZzu4O]
2.提交攻击者第一次登录时间
1 | 格式为:[2024/00/00/00:00:00] |
JumpServer切换到审计台,日志审计-登陆日志 获取登陆成功信息
由于 登陆城市 LAN 与 其他 显示 局域网 不一致
可判断 这一条为攻击者第一次登录时间
[2024/04/11/14:21:18]
3.提交攻击者源IP
1 | 格式为:[0.0.0.0] |
由上题 可以往 192.168.1.4 和 192.168.20.123 靠
flag为[192.168.1.4]
4.提交攻者使用的cve编号
1 | 格式为:[CVE-0000-0000] |
JumpServer的漏洞 [CVE-2024-29201]
5.提交攻击者留着web服务器上的恶意程序的32位小写md5
1 | 格式为:[xxxxxx] |
回放会话 不敢相信 root目录下存在一个home程序
flag:[84413332e4e7138adc5d6f1f688ddd69]
6.分析恶意程序连接地址和密码
1 | 格式为:[md5(地址)-md5(密码)]全小写 |
可以 将vmdk放到DiskGenius里分析(跟套神wp看到的)
tips:将vmdk镜像拷贝一个副本进行分析
导文件这儿 卡了我好久 我纠结在 如何通过JumpServer运维机导出文件
也可以在DiskGenius进行导出(需要专业版)
卡在为什么会有思路去解包(来自逆向小白的疑问)
也是第一次学将程序(linux程序)解包成pyc
之前好像有Windows程序解包的经历(忘了是在哪个比赛了)
每次拿到可执行程序 我第一个想法是放到情报平台里看
因为 有些平台中网络连接地址 会直接显示出来
解包工具
extremecoders-re/pyinstxtractor: PyInstaller Extractor (github.com)
home是一个python程序 需要进行解包
成功解出pyc文件
pyc文件进行反编译 可以使用(uncompyle6)
uncompyle6模块会因为版本不对应的问题而失败
使用在线平台
python反编译 - 在线工具 (tool.lu)
成功进行了将pyc文件反编译成py文件
1 | #!/usr/bin/env python |
根据源代码
flag:[md5(82.157.238.111)-md5(1qaz@WSX3edc)]
7. 提交存在反序列化漏洞的端口
1 | 格式为:[md5(端口)] |
通过waf翻日志 过滤攻击类型 发现漏洞
flag:[md5(8080)]
8. 提交攻击者使用的后门路由地址
1 | 格式为:[md5(/api/xxx)] |
在jumpServer发现命令 cat app.py
不是一般人 还真不会这么翻、、、
flag:[md5(/api/system)]
9. 提交dnslog反弹域名
1 | 格式为:[md5(域名)] |
当时自己的做法(通过已知后门再传个后门)
由于网站根目录有个GET木马 然后 再上传一个POST木马 蚁剑连接
在翻到了flask目录下翻到了日志
emm 上面 有0vqkht.dnslog.cn 被迷惑了好久 最后 翻到了
flag:[md5(0vqkht.palu.cn)]
10. 提交第一次扫描器使用时间
1 | 格式为:[2024/00/00/00:00:00] |
这题 我一直拿目录扫描 作为第一次扫描器使用时间
这里看了套神的wp
他的判断依据是 间隔时间非常短 尝试时间戳转时间提交试了一下
flag:[2024/04/15/02:26:59]
11.提交攻击者反弹shell使用的语言
1 | 格式为:[md5(c++&java)]均为小写 |
可以知道是python进行的一个反弹shell
flag:[md5(python)]
12. 提交攻击者反弹shell的ip
1 | 格式为:[xxx.xxx.xxx.xxx] |
将base64进行解码得到反弹shell的ip和端口
flag:[82.157.238.174]
13. 提交攻击者留下的账号
1 | 格式为:[xxxxx] |
查看/etc/passwd
flag:[palu.com]
14. 提交攻击者的后门账户密码
1 | 格式为:[md5(password)] |
查看 /etc/shadow 可以根据hash爆破出密码
比赛的时候没有权限 也没想着去提权之类的
套神使用的 DiskGenius 直接从镜像内存中提取出来 绝了
提取出攻击者的后门账户hash值
flag:[md5(123123)]
15. 提交测试数据条数
1 | 格式为[md5(xxx)] |
连接数据库MYSQL Server 1 查看palu_ctf库中user表
flag:[md5(5)]
16. 请提交攻击者留下的信息
1 | 格式为:[xxxx] |
在/var/log/nginx/下存在 hacktext
flag:[flag{hi_palu_f10g}]
17. 请提交运维服务器上的恶意文件md5小写32md5值
1 | 格式为:[xxxx] |
与第五题类似
flag:[0fca0f847a45401c878d7a5303ddc1f8]
18. 提交恶意文件的恶意函数
1 | 格式为:[md5(恶意函数)] |
想要得到恶意文件 helloword
使用DiskGenius 没有出现lib目录 没有整出恶意文件
尝试ssh连接 也禁止远程连接 使用python起一个网页服务
然后 将文件进行下载
师傅们认为haveadoor为恶意函数 flag却是begingame
flag:[md5(begingame)]
19.请提交攻击者恶意注册的恶意用户条数
1 | 格式为:[md5(x)] |
恶意注册的恶意用户条数为10条
flag:[md5(10)]
20. 请提交对博客系统的第一次扫描时间
1 | 格式为:[2024/00/00/00:00:00] |
大量发送数据探测
flag:[2024/04/16/21:03:46]
21.提交攻击者下载的文件
1 | 格式为[xxxx.xxx] |
waf查看资源总数
flag:[upload.zip]
22.请提交攻击者第一次下载的时间
1 | 格式为:[xx/Apr/2024:xx:xx:xx] |
根据上题 已经知道攻击者下载的文件 继续分析 查看日志
flag:[16/Apr/2024:09:03:52]
23. 请提交攻击者留下的冰蝎马的文件名称
格式为:[xxxx]
查看命令记录
对照命令翻文件判断
flag:[nidewen.php]
24.提交冰蝎的链接密码
1 | 格式为:[xxx] |
key为md5前十六位 首先cmd5解密 发现付费
也可以使用字典碰撞
(在github搜代码)
flag:[nidewen]
25. 提交办公区存在的恶意用户名
1 | 格式为:[xxx] |
查看 PC1 电脑 (net user)
有时候 创建用户 net user并不可以看到
需要查看用户组
flag:[hacker]
26.提交恶意用户密码到期时间
1 | 格式为:[xxxx] |
flag:[2024/5/28/21:40:37]
27.请对办公区留存的镜像取证并指出内存疑似恶意进程
1 | 格式为:[xxxx] |
内存文件
volatility启动
查看镜像
1 | volatility -f raw.raw imageinfo |
查看进程
1 | volatility -f raw.raw --profile=Win7SP1x64 pslist |
flag:[.hack.ex]
28.请指出该员工使用的公司OA平台的密码
1 | 格式为:[xxxx] |
根据题目filescan 筛选pass
dumpfiles提取出文件
1 | volatility -f raw.raw --profile=Win7SP1x64 dumpfiles -Q 0x000000003e296f20 -D ./ |
1 | url: http://test.oa.com/login.html |
flag:[liuling7541]
29.攻击者传入一个木马文件并做了权限维持,请问木马文件名是什么
1 | 格式为:[xxxx] |
查看基本信息的时候 发现剪贴板中有文件
1 | volatility -f raw.raw --profile=Win7SP1x64 clipboard |
flag:[h4ck3d!]
30.请提交该计算机中记录的重要联系人的家庭住址
1 | 格式为:[xxxxx] |
拿到该题 一般 方便 我们会把敏感信息放桌面
可以先filescan桌面
发现没有什么有用信息 可以搜用户栏或者指定用户
有 Contacts文件夹 我们可以进一步过滤
dumpfiles 数据
flag:[秋水省雁荡市碧波区千屿山庄1号]
31.请提交近源靶机上的恶意文件哈希
1 | 格式为:[xxx] |
打开PC2 并会自动打开开始菜单的一个文件夹,猜测为恶意文件
使用系统自带的命令计算hash(certutil.exe)
flag:[a7fcd0b15a080167c4c2f05063802a6e]
32.提交恶意程序的外联地址
1 | 格式为:[xxxxx] |
flag:[101.78.63.44]
33.提交攻击者使用内网扫描工具的哈希
1 | 格式为:[xxxx] |
在命令记录中看到fscan
flag:[1facdcd05c43ba4d37274dffc90b6d4e]
34.请提交攻击者在站点上留下的后门密码
1 | 格式为:[md5(xxxx)] |
flag:[md5(123)]
35.请提交攻击者在数据库留下的信息
1 | 格式为:[xxxx] |
flag:[flag{hack_palu}]
36.提交攻击者在监控服务器上留下的dcnlog地址
1 | 格式为:[xxx.xx.xx] |
MYSQL Server 2 中 zabbix库中 scripts表中发现 dcnlog地址
flag:[palu.dcnlog.cn]
37.提交监控服务器上恶意用户的上一次登录时间
1 | 格式为:[xx/xx/xx/xx:xx:xx] |
登陆 zabbix 服务器 服务登录信息未知 可以使用默认密码 Admin/zabbix
也可以在 MYSQL Server 2 中搜密码
flag:[2024/04/17/01:32:44]
38.提交监控服务器上遗留的反弹shell地址和端口
1 | 格式为:[xxxx:xx] |
base64解码
flag:[154.183.110.12:7890]
39.提交恶意钓鱼文件的哈希
1 | 格式为:[xxxx] |
提交发现提交成功
flag:[da75025ff7f3b6baa27f5913c1c83063]
查看其会话记录也可以看到 恶意文件的哈希
40.提交恶意文件外联IP(未解出)
1 | 格式为:[xxx] |
该题 我放到在线沙箱平台 微步
检测全绿 网络连接是有一个 120.92.102.194 提交 flag 错误
在https://www.virustotal.com/中有五个IP 但是提交都错误
有一种大胆的想法
可能是域名解析出来的IP 钓鱼。。。
paluctf平台整了CDN
flag:[未知]
41.提交被恶意文件钓鱼使用者的姓名
1 | 格式为:[xxx] |
在此用户文件夹下发现恶意钓鱼文件
flag:[陈琚鹭]
42.提交攻击者留下的信息
1 | 格式为:[xxxx] |
继续查看会话记录 发现在注册表中添加了字符串
flag:[flag{2024-04-17-hi}]
43.提交恶意用户数量
1 | 格式为:[md5(xxxx)] |
除去中文字符 (员工姓名) 系统自带用户
admin+编号/dev+编号/sale+编号 为恶意用户
flag:[md5(49)]
44.请提交员工集体使用的密码
1 | 格式为:[xxxx] |
flag:[Network@2020]
45.提交加密文件的哈希
1 | 格式为:[xxxx] |
找到加密文件 算出加密文件的哈希值 方法与31题类似
flag:[2bf71a0d6d4e70cec7602da2b653e2ab]
46.提交被攻击者加密的内容明文
1 | 格式为:[xxxx] |
加密文本
1 | 玛巴轰达姆阿卡达姆阿卡达姆阿卡达姆阿卡轰玛巴轰玛巴玛巴玛巴轰达姆阿卡嗙轰哈姆达姆阿卡嗙哈姆达姆阿卡嗙轰伊卡阿卡噢伊卡阿卡噢轰玛卡巴卡轰哈姆达姆阿卡嗙哈姆达姆阿卡嗙轰哈姆达姆阿卡嗙哈姆达姆阿卡嗙轰咿呀呦咿呀呦咿呀呦轰阿巴雅卡阿巴雅卡阿巴雅卡阿巴雅卡轰伊卡阿卡噢伊卡阿卡噢伊卡阿卡噢伊卡阿卡噢轰哈姆达姆阿卡嗙轰 |
加解密参考
Drt免杀生成器 Drt AAV | Bypass AV | 杀软绕过 - 🔰雨苁ℒ🔰 (ddosi.org)
这里贴上 Wbuildings师傅的解密代码
1 | values = ['玛卡巴卡轰', '阿巴雅卡轰', '伊卡阿卡噢轰', '哈姆达姆阿卡嗙轰', '咿呀呦轰', '玛卡雅卡轰', '伊卡阿卡轰', '咿呀巴卡轰', '达姆阿卡嗙轰', '玛卡巴卡玛卡巴卡轰', '玛卡巴卡玛卡巴卡玛卡巴卡轰', '玛卡巴卡玛卡巴卡玛卡巴卡玛卡巴卡轰', '阿巴雅卡阿巴雅卡轰', '阿巴雅卡阿巴雅卡阿巴雅卡轰', '阿巴雅卡阿巴雅卡阿巴雅卡阿巴雅卡轰', '伊卡阿卡噢伊卡阿卡噢轰', '伊卡阿卡噢伊卡阿卡噢伊卡阿卡噢轰', '伊卡阿卡噢伊卡阿卡噢伊卡阿卡噢伊卡阿卡噢轰', '哈姆达姆阿卡嗙哈姆达姆阿卡嗙轰', '哈姆达姆阿卡嗙哈姆达姆阿卡嗙哈姆达姆阿卡嗙轰', '哈姆达姆阿卡嗙哈姆达姆阿卡嗙哈姆达姆阿卡嗙哈姆达姆阿卡嗙轰', '咿呀呦咿呀呦轰', '咿呀呦咿呀呦咿呀呦轰', '咿呀呦咿呀呦咿呀呦咿呀呦轰', '咿呀呦咿呀呦咿呀呦咿呀呦咿呀呦轰', '玛卡雅卡玛卡雅卡轰', '玛卡雅卡玛卡雅卡玛卡雅卡轰', '玛卡雅卡玛卡雅卡玛卡雅卡玛卡雅卡轰', '伊卡阿卡伊卡阿卡轰', '伊卡阿卡伊卡阿卡伊卡阿卡轰', '伊卡阿卡伊卡阿卡伊卡阿卡伊卡阿卡轰', '咿呀巴卡咿呀巴卡轰', '咿呀巴卡咿呀巴卡咿呀巴卡轰', '咿呀巴卡咿呀巴卡咿呀巴卡咿呀巴卡轰', '咿呀巴卡咿呀巴卡咿呀巴卡咿呀巴卡咿呀巴卡轰', '达姆阿卡嗙达姆阿卡嗙轰', '达姆阿卡嗙达姆阿卡嗙达姆阿卡嗙轰', '达姆阿卡嗙达姆阿卡嗙达姆阿卡嗙达姆阿卡嗙轰', '达姆阿卡嗙达姆阿卡嗙达姆阿卡嗙达姆阿卡嗙达姆阿卡嗙轰', '巴卡巴卡轰', '巴卡巴卡巴卡巴卡轰', '巴卡巴卡巴卡巴卡巴卡巴卡轰', '巴卡巴卡巴卡巴卡巴卡巴卡巴卡巴卡轰', '巴卡巴卡巴卡巴卡巴卡巴卡巴卡巴卡巴卡巴卡轰', '呀呦轰', '呀呦呀呦轰', '呀呦呀呦呀呦轰', '呀呦呀呦呀呦呀呦轰', '呀呦呀呦呀呦呀呦呀呦轰', '达姆阿卡轰', '达姆阿卡达姆阿卡轰', '达姆阿卡达姆阿卡达姆阿卡轰', '达姆阿卡达姆阿卡达姆阿卡达姆阿卡轰', '达姆阿卡达姆阿卡达姆阿卡达姆阿卡达姆阿卡轰', '玛巴轰', '玛巴玛巴轰', '玛巴玛巴玛巴轰', '玛巴玛巴玛巴玛巴轰', '巴卡玛巴轰', '巴卡玛巴巴卡玛巴轰', '巴卡玛巴巴卡玛巴巴卡玛巴轰', '巴卡玛巴巴卡玛巴巴卡玛巴巴卡玛巴轰', '妈个巴子轰', '妈个巴卡轰', '妈个巴达轰'] |
flag:[2024ispassword]
47.请提交符合基线标准的服务器数量
1 | 格式为:[md5(xx)] |
一共就6台
flag:[md5(0)]
48.提交办公区的恶意文件哈希
1 | 格式为:[xxx] |
通过文件传输 发现存在 palucomeyi1.exe
在PC2定位得到 palucomeyi1.exe所在文件夹
根据前面方法类似 得到 该恶意文件的哈希
flag:[5232a191eb2913337e0a93b0a990f2a2]
49.提交恶意回连端口
1 | 格式为:[xxx] |
由于是一个python封装的exe文件
与第六题类似 将其进行解包得到pyc文件
成功转成pyc文件
将pyc 使用线上平台反编译成py
1 | #!/usr/bin/env python |
flag:[22]
50.提交恶意程序中的flag
1 | 格式为:[xxx] |
根据上题代码可知
flag:flag{234567uyhgn_aiduyai}
51.提交恶意文件中的search_for_text内容
1 | 格式为:[xxx] |
根据上上题代码可知
flag:[passwod]
52.提交web服务器上攻击者修改后的root密码
1 | 格式为:[xxxx] |
思路是参考14题
导出shadow文件 进行john哈希爆破 由于字典中没有这个密码 没跑出来
flag:[Network@20202020]