问题:近期玩某个 debian 系统的 DIY ,发现系统启用页面是用 ngnix 加载的 www 目录,而 www 目录被系统进程守护变更任何文件即刻恢复原始备份;沿线索找到一份加密的备份文件 www.zip ,于是用 auditctl 设置对 www.zip 文件的读写监控,发现只有 nginx 程序对应有读取操作,未发现 unzip/7z 等读取行为但 www 目录已被解压覆盖
说明:用明文攻击可以解密,只是出于好奇和好玩想不用爆破方式尝试逆向一下原密码
是不是需要 gdb 调试 nginx 主程序?但考虑主页面基于 nginx ,一旦附加调试系统就会卡死
总之目标是找出 zip 文件密码,不知道下一步还能朝哪个方向或者有什么小妙招可以继续分析? 没有玩的思路啦~~
1
ysc3839 2025 年 8 月 19 日 via Android
什么系统呢?
另外有 root 权限的话感觉没必要改,直接 mount 一个 read only 的文件系统到 www 就行了。 |
2
faketemp OP @ysc3839 系统是 debian linux v12.18 有 root 权限
1. 守护进程监控到 www 目录变更会从 www.zip 文件解压恢复 将整个 www 目录 mount 只读不知道是否可行? 尝试过用 chattr 修改 www 目录下的文件,发现 nginx 解压恢复前也会先调用 chattr 复原 www 及子目录权限 哈哈 斗智斗勇 2. 既然系统可以加载 www.zip 解压,说明某个角落或程序肯定有对应解压密码,主要还是想摸一摸有什么办法监控对应解压过程,从而顺藤摸瓜 |
4
zk8802 2025 年 8 月 19 日 via iPhone
Dump nginx 的进程出来,然后静态分析。找到对应的逻辑应该不难(估计是某个动态库里面实现的),然后分析密码在内存中的位置。
|
6
onetown 2025 年 8 月 19 日
不是, 这个 www 目录都已经解压缩出来了, 你直接把目录 "COPY" 出来改不行? COPY 的过程也不会多任何文件做变更的吧
|
7
faketemp OP @onetown 额 本想 Diy 一下 www 目录中的主页文件 这样比较好玩不是想看到原文件。既然一修改就会解压覆盖 于是干脆直接修改 zip 压缩包更简单 所以想练练手追一下 zip 密码
|
8
onetown 2025 年 8 月 19 日 @faketemp
如果是想练手 zip 密码,那就忽略 一般如果是做了 zip 静态资源, 都会有一个文件 hash 来判断原始 zip 是否被改动, 也就是说就算解了 zip , 换了文件, 也有可能绕不过去这个问题。 你可以尝试从 nginx 着手, 看是修改了原始的 nginx 代码还是加载了自己的模块。 通过 nginx -V 能看到 configure 参数, 如果有哪个比较可以的模块名字, 那就 dump 一下 nginx 的符号表去找跟那个模块名字相关的符号, 一般都是一些函数名什么的, 然后去分析是哪个函数实现了加载 zip 并解压。 |