如果说 加密是“把秘密锁起来”,那 隐写就是“让别人看不出你有秘密”。
在渗透测试和网络攻防里,隐写术的存在感其实比你想象的大得多。本文我想用轻松点的方式,带你快速梳理一下隐写的核心原理、常见玩法、实操案例、前沿技术和防御思路。
一、隐写术的核心原理与分类
1. 基础原理
隐写的逻辑很直接:利用载体中人眼、人耳或系统感知不到的冗余信息,把秘密数据藏进去。
三种常见套路:
替换型(约70%):最经典的 **LSB(最低有效位)**替换,把文件像素或音频采样点的最后一位换掉。
生成型(约15%):直接用 AI 或 GAN 生成带有秘密信息的载体,看起来和真的一样。
扩展型(约15%):在文件结构的尾部加点东西(比如在 JPG 后偷偷塞一个 ZIP 包)。
2. 按载体分类 & 技术案例
隐写玩的花样其实取决于你选择什么“马甲”来藏数据:
载体 | 常见手法 | 新玩法 | 工具举例 |
---|---|---|---|
图像 | LSB 替换、调色板改动 | DCT 域隐写(改 JPEG 频域,抗检测性更强) | StegExpose |
音频 | 采样点 LSB、频谱嵌入 | 回声隐藏(利用人耳掩蔽效应在延迟里藏数据) | Wavsteg |
文本 | 格式调整、零宽字符 | 行间距编码(1.5倍=0,2倍=1) | Snowdrop |
视频 | 帧间嵌入、运动向量修改 | 神经网络隐写(H.264 运动估计里藏数据) | 深度学习类工具 |
网络协议 | TCP/IP 字段、包时间间隔 | DNS 隐写(把数据切成子域名拼接) | Wireshark + tshark |
内存 | 在内存块的填充位、未分配空间中嵌入数据 | 内存隐写(利用内存碎片和地址随机化机制) | MemStasher |
二、实操演示
下面这些命令,建议大家在 **受控环境(虚拟机、靶场)**下尝试,千万别在生产系统或他人文件里乱搞。
1. 使用 steghide 在图片中隐藏文件
steghide
是一款经典的命令行隐写工具,支持多种文件格式,如 JPG、BMP、WAV 等。download!
将secret.txt
藏进image.jpg
,并设置密码:
steghide embed -cf image.jpg -ef secret.txt -p MyPass123
-cf
:指定载体文件(Cover File)。
已在FreeBuf发表 0 篇文章
本文为 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf
客服小蜜蜂(微信:freebee1024)