安全君呀设为’星标⭐️’

第一时间收到文章更新

声明: 安全君呀 公众号文章中的技术只做研究之用,禁止用来从事非法用途,如有使用文章中的技术从事非法活动,一切后果由使用者自负,与本公众号无关。

文章声明:本篇文章内容部分选取网络,如有侵权,请告知删除。


前言

Mid- Autumn Festival


最近学习了历年江苏省第二届数据安全技术应用职业技能竞赛,现在和大家分享一些初赛题目解析。不到之处欢迎评论留言,笔者定会积极改正。原文放到最后啦。


333.file(45分)

Mid- Autumn Festival

 解题思路:.wav 音频隐写题全流程

🔍 第一步:初步判断文件类型

  • 文件后缀是 .wav,但不代表它一定是标准 WAV 格式。

  • 使用 file 命令(Linux)或 010 Editor 查看文件头:

    • 正常 WAV 文件头应为:52 49 46 46(即 RIFF

    • 若文件头异常(如 PK、 JFIF、 89 50 4E 47 等),说明可能伪装成 WAV 的 ZIP、JPG、PNG 等文件。


🔍 第二步:音频隐写工具排查(无 Flag 时)

你提到 DeepSound、SilentEye、Audacity 无果,这是正确的第一步。

工具

用途

备注

DeepSound

检测是否用 DeepSound 工具加密隐藏数据

需密码,若无密码可尝试爆破

SilentEye

检测 LSB 隐写

支持 WAV、BMP,可尝试密码

Audacity

查看频谱图、波形

看是否有摩斯电码、频谱图隐藏文字(如 flag{

Sonic Visualiser

更专业的频谱分析

插件多,可查看频谱、音高、节奏等

 技巧:在 Audacity 中点击 “频谱图视图”,放大高频区域,看看有没有文字或二维码。


🔍 第三步:十六进制分析(010 Editor)

你提到用 010 打开,这是关键一步。

  • 搜索关键字:

    • flagctfkeyzippngjpgtxtpwpassword

    • PK(ZIP 文件头)

    • IHDR(PNG 文件头)

    • JFIF(JPG 文件头)

    • FF FB(MP3 帧头)

  • 若发现 PK 或其他文件头,说明文件中嵌入了其他文件


🔍 第四步:使用 binwalk 分析 & 分离

你提到用 Kali 的 binwalk,这是下一步核心操作。

binwalk file.wav
  • 输出示例:

DECIMAL       HEXADECIMAL     DESCRIPTION -------------------------------------------------------------------------------- 0             0x0             RIFF (little-endian) data, WAVE audio 123456        0x1E240         Zip archive data, encrypted, at least v2.0 to extract
  • 若有 ZIP 或其他文件,使用:

binwalk -e file.wav

或更稳妥地:

foremost -i file.wav -o output_dir

🔍 第五步:若 binwalk 无果?试试手动提取

  • 用 010 Editor 找到 PK 开头位置,手动复制十六进制数据,新建文件粘贴保存为 .zip,再解压。

  • 若加密 ZIP,可尝试:

    • 弱密码爆破:zip2john + john

    • 明文攻击(已知部分明文)


🔍 第六步:其他高级技巧(可选)

技巧

工具

场景

LSB 音频隐写

steghidestegsolve(需 BMP)、wavsteg(Python)

检测是否 LSB 隐藏数据

Morse 码

Audacity 看波形

短长波形对应滴嗒

DTMF 拨号音

multimon-ng

音频中是电话按键音

SSTV 图像

qsstvrxsstv

音频是慢扫描电视信号,可解出图片

 总结:解题流程图(建议收藏)

.wav 文件    ↓ file 命令 + 010 Editor 看文件头    ↓ DeepSound / SilentEye / Audacity 无果?    ↓ 010 Editor 搜索 'flag', 'PK', 'png', 'zip' 等关键字    ↓ 发现嵌入文件? → 手动提取 or binwalk -e    ↓ 得到 ZIP / PNG / TXT → 常规解题(爆破、明文、图片分析)    ↓ 无果? → 尝试 LSB(wavsteg)、Morse、SSTV、DTMF 等

🔧 附:常用命令速查

# 查看文件类型 file file.wav  # binwalk 分析 binwalk file.wav  # 自动提取 binwalk -e file.wav  # 更稳妥提取 foremost -i file.wav -o out/  # LSB 音频隐写检测(Python) pip install stegano stegano-lsb-set reveal -i file.wav  # 或使用 wavsteg(更专业) git clone https://github.com/ragibson/Stegano python -m stegano.wav -r -f file.wav

 实战建议

  • 不要迷信工具无果 = 无隐藏,可能只是方式不对。

  • 十六进制是王道,很多题就是“藏了个 ZIP”。

  • 多试几个工具组合,比如 binwalk + foremost + 手动提取

  • 注意密码提示,有时密码藏在文件名、ID3 标签、频谱图里。


下载附件,解压得到一段以“.wav”结尾的音频,丢进“deepsound”、“silenteye”、“Audacity”均无果,这时候就要使用“010”打开分析一下,看看里面有没有什么关键信息,比如“flag”或者“zip”关键字样,再接着我们也可以丢进“kali”中使用“binwalk”来分析一下,看看里面有没有可以分离的文件。

“DeepSound”无果:

“silenteye”无果

“Audacity”无果:

那就暂时没办法嘛,只能丢进“kali”中简单使用“binwalk”分析一下,发现存在一个残缺的“zip”,但是使用“binwalk -e”还不足以提取出来,那这里我们就尝试使用“foremost -i”(原理跟binwalk -e差不多只不过换了一种提取方式)取音频存在的隐藏文件。

使用命令:

binwalk -e 333.wav  --run-as=root
学起来!江苏省数据安全竞赛初赛.wav题解题技巧大公开

得到:

使用“foremost -i”提取成功,打开发现里面并不是我们之前使用“binwalk”分析出的“zip”,而是又一段’.wav’结尾的音频,不过通过简单分析发现,这个音频并不是之前的音频,(它们的大小不一样)所以这里,我们还是如图上面一样基本的常见“.wav”分析工具都过一遍,最后也是在“Audacity”中发现关键信息!

使用命令:

foremost -i 333.wav -o /root/桌面/123 -T

打开分离出的文件得到两个音频,都简单分析一下即可:

最后也是第二个音频“00006606.wav”中的“Audacity”的“频谱图”发现关键信息!

得到关键信息,pass:stego0626;

它肯定是某某的密码,毕竟都“pass”那也就不言而喻了,那到这里其实就没有什么可以分析的了,因为基本能翻到的想到的也全都尝试了一遍但是都没有效果,但这里突然想到之前使用“binwalk”分析的时候,里面确实有一个残缺的“zip”,没有分离成功,然后才使用“foremost -i”才分离出的“pass”,那我们不妨使用“010”简单定位一下,看看这个”zip“是不是残缺的,因为有时候残缺的使用”foremost“或者”binwalk“是不能直接分离出的,必须手动分离

使用“010”分析查找“zip”(zip的十六进制——504B0304

大致简单看一下,发现了关键的信息“flag”,确实是我们心心念念的flag,但是好像这个zip缺少了主要的头部,也就是我们刚刚查找的“504B0304”这个开头,我们可以拿一张正常的“zip”开头做为对比;

正常的“zip”十六进制表示:

不难看出正常的“zip”确实是开头包含着“504B0304”等等,但是这里的我们并没有发现存在,那我们尝试直接补全保存看看难不难正常打开:

直接在“010”中“新建十六进制文件”,选中’zip’的主体内容,右键复制即可

当然这里既然是缺少“zip”的头部,那我们新建好的同时,可以直接先输入“504B0304”,以防后面需要插入(当然也可以后插入内容,看各位师傅的习惯),粘贴,并且保存格式选择“zip”即可:

最后打开“zip”也确确实实需要密码,那我们输入前面提取出来的密码“pass:stego0626”即可打开:

得到的空白文件,我们可以选中右键“记事本”打开进行分析:

发现并不是我们需要的flag,不过没关系,我们可以选中使用“010”打开再进行分析一下,得到:

发现这个“flag”空白文件的头部,是以“78 9c 4b cb”开头的,通常来说以十六进制 78 9c 4b cb 开头的文件通常是使用 zlib 压缩算法压缩过的文件。

所以我们可以直接添加一个“zlib”后缀,接着再使用“binwalk -e”进行分离,最后发现了flag,使用命令:

binwalk -e flag.zlib  --run-as=root

成功分离:

打开分离的文件进行分析,最后也是成功得到了flag:

至此:

flag{81633464866e622d275c309b22cb907b}

拓展

这里分离并不是唯一的方法,我们可以使用“CyberChef”进行“zlib”解码也是可以解出flag;

操作如下;(当然方法不唯一,看自己喜欢什么)

至此:flag{81633464866e622d275c309b22cb907b}


pf文件分析(35分)

Mid- Autumn Festival

解题思路

我们找关键的信息,简单来说就是让我们从中找出使用次数最多的软件名称提交即可,那这里我们还是首先简单了解一下什么是“pf”文件吧。

PF文件(Prefetch File)是Windows操作系统中的一种缓存文件,用于加快应用程序的启动速度。每当你在Windows中运行某个应用程序时,系统会创建或更新与该应用程序相关联的PF文件。这个文件记录了该程序启动时所需的资源,包括加载的DLL、文件路径等信息。

主要特点:

存储位置:PF文件通常存储在C:WindowsPrefetch目录下,文件名格式为程序名-哈希值.pf。

加快启动速度:

PF文件通过记录程序启动所需的资源,可以帮助操作系统在下次启动该程序时更快速地加载这些资源,从而加快启动速度。

取证分析:在数字取证中,PF文件可以用于分析用户行为,查看某个程序何时、如何被启动,帮助重建事件时间线。

清理影响:清理PF文件可能会导致应用程序首次启动速度变慢,但对系统的整体性能影响不大。

总结:PF文件是Windows系统用于优化程序启动性能的一种缓存文件,存储在特定目录下,并在程序启动时被创建或更新。在数字取证领域,这些文件也有助于分析用户行为。

那既然已经初步了解到了“pf”文件,我们直接下载附件,打开发现需要密码,哎,一开始还很奇怪,想着题目中也没有密码,主办方也没有给密码,那密码难道被主办方遗忘了?

后面仔细观察发现这个下载的附件,也就是所谓的“zip”名称,既然是一个“base64”编码,那我们直接进行解码,也是成功得出了密码

Base64 编码/解码 – 锤子在线工具

解码得到:

zip密码:IAMPASSWORD

最后也是解压成功了,那我们话又说回来了,想要分析“Prefetch”,到底使用什么工具分析呢?

这里给师傅们总结一下;

PECmd

用途:PECmd 是一个命令行工具,用于解析和分析Windows Prefetch文件。它可以提取Prefetch文件中的详细信息,如程序的执行时间、路径、关联的DLL等,非常适合进行数字取证分析。

特点:支持批量处理、生成CSV报告,并能够解析多种Windows版本的Prefetch格式。

WinPrefetchView

用途:WinPrefetchView 是一款简单的GUI工具,用于查看和分析Prefetch文件。它可以快速列出Prefetch目录中的文件,并显示每个文件的详细信息,如程序的启动次数、最后一次运行时间等。

特点:界面友好,操作简单,适合快速查看Prefetch文件内容。

这两个工具是分析Prefetch文件时最常用的,适合不同层次的需求,从简单的查看到深入的取证分析。

那这里我们就先使用“PECmd”来进行分析;

使用命令:

PECmd.exe -d D:最新下载PECmdPrefetch --json output.txt

简单分析一下命令:

就是使用 PECmd 工具来解析位于D:最新下载PECmdPrefetch目录下的 Prefetch 文件,并将输出结果以 JSON 格式保存到output.txt文件中。

得到:

最后也是在当前目录下,发现了我们创建的“output”文件:

选中右键选中“记事本”打开分析即可:

题目让我们查找软件使用次数最多的是,所以我们找的使用次数最多的即可,那这里“RunCount”英文翻译过来就是肯定就是执行了,所以我们只需“Ctrl+F”进行定位“RunCount”即可,一个一个慢慢看,因为它后面会跟着一个数字,那个就是软件执行的次数:

但是发现并不是执行次数最多的,后面陆陆续续发现了还有更多的38、71等等,也是慢慢查找,确定了最多“82”:

至此:

flag{SEARCHFILTERHOST.EXE}
拓展

接着上面我们使用了“PECmd”来进行分析“Prefetch”,那有点师傅就觉得,哎,这是不是有点麻烦了,又是解析,又是记事本打开查找的,是不是有点太麻烦了?哎!确实还真有比这更so easy的方法,就是我们接下来要说到的工具“WinPrefetchView”。

这边已提取下载好,那我们这里直接打开工具“WinPrefetchView”

接着点击“选项”,选中“高级选项”,更改你的“Prefetch”位置即可,最后点击确认即可。

得到:

我们直接简单给运行次数排个序即可得知,这种方法相比于第一种来说,确实方便了不少,而且更为直观并且清晰的看见。


原文链接:

https://blog.csdn.net/administratorlws/article/details/141396783?spm=1001.2014.3001.5501

欢迎大家学习!


Tips

欢迎大家在下面点赞评论加关注,让我们一起在网安之路越走越远!!!