CTF隐写术知识点总结
0x01 目录
图片隐写常用方法:
1.附加式的图片隐写
(
2.基于文件结构的图片隐写
(1)PNG图片结构
(3)IDAT块隐写
3.基于LSB原理的图片隐写
(1)简单的LSB隐写
4.基于DCT域的JPG图片隐写
(1)背景知识
(2)Stegdetect简介
(3)JPHS提取
(4)Outguess提取
5.数字水印的隐写
(1)背景知识
(2)频域盲水印隐写
6.图片容差的隐写
(1)背景知识
(2)容差比较的隐写
7.二维码隐写
(1)QR Research解码
电子文档隐写:
1.Word文件隐写
2.PDF文件隐写
多媒体文件隐写:
1.音频隐写
2.视频隐写
常用文件头尾标识:
1.常用文件头尾标识
2.文件头标识及对应类型表
0x02 正文
图片隐写常用方法:
一、附加式的图片隐写:
二、基于文件结构的图片隐写:
1.PNG图片结构:
标准的PNG文件结构包括:PNG文件标识和PNG数据块。
PNG图片文件结构:
- (固定)8字节89 50 4E 47 0D 0A 1A 0A为png文件头;
- (固定)4字节00 00 00 0D(即十进制的13)代表数据块的长度为13;
- (固定)4字节49 48 44 52(即为ASCII码的IHDR)是文件头数据块的标识(IDCH);
- (可变)13位数据块(IHDR)
- 前四个字节代表该图片的宽
- 后四个字节代表该图片的高
- 后五个字节依次为:
Bit depth、ColorType、Compression method、Filter method、Interlace method
- (可变)剩余四字节为该png的CRC检验码,由从IDCH到IHDR的十七位字节进行crc计算得到。
PNG图片文件头数据块(IHDR)包括:宽、高、图像深度、颜色类型、压缩方法等(图中蓝色的部分即IHDR数据块)。
2.修改高度隐写:
先用TweakPNG打开图片,一般修改过长宽的图片都会报错。
找到PNG图片高度值所对应的位置,并修改为一个较大的值,尝试打开。
修改01 00为02 00,并保存后打开。
修改宽高之后的PNG图片可能打不开,需要修复PNG图片的CRC校验值。
方法:
选中PNG的struct IHDR Ihdr部分(图中蓝色部分),使用CRC Calculator重新计算CRC校验值。
将struct IHDR Ihdr的CRC(图中蓝色部分)修改为重新计算过的CRC。
再用TweakPNG打开图片不报错,修复成功。
3.IDAT块的隐写:
PNGCheck可以验证PNG图片的完整性(通过检查内部CRC-32校验和&bra;比特&ket;)和解压缩图像数据,它能够转储几乎所有任选的块级别信息在该
图像中的可读数据。
查询命令:
pngcheck -v xxx.png
三、基于LSB原理的图片隐写:
1. 简单的LSB隐写:
利用LSB(最低有效位 (Least Significant Bit)来进行隐写。例如在PNG图片的储存中,每个颜色会有8bit,LSB隐写就是修改了像数中的最低的
1bit,人眼无法区别。例如我们想把A隐藏进来的话,可以把A转成16进制的0x61再转成二进制的01100001,再修改为红色通道的最低位为这些二
进制串。
分离方法:
Stegsolve分离:
使用Stegsolve—Analyse—Frame Browser,可以浏览三个颜色通道中的每一位。
PS:
此种隐写的载体一般为png或bmp格式,jpg的有损压缩方式会破坏隐写的内容。
五、数字水印的隐写:
1.背景知识:
数字水印:
数字水印(digital watermark)技术,是指在数字化的数据内容中嵌入不明显的记号。
特征是,被嵌入的记号通常是不可见或不可察的,但是可以通过计算操作检测或者提取。
盲水印与傅里叶变换:
盲水印,是指人感知不到的水印,包括看不到或听不见(没错,数字盲水印也能够用于音频)。其主要应用于音像作品、数字图书等,目的是,在不破
坏原始作品的情况下,实现版权的防护与追踪。
对图像进行傅里叶变换,起始是一个二维离散傅里叶变换,图像的频率是指图像灰度变换的强烈程度,将二维图像由空间域变为频域后,图像上的每
个点的值都变成了复数,也就是所谓的复频域,通过复数的实部和虚部,可以计算出幅值和相位,计算幅值即对复数取模值,将取模值后的矩阵显示
出来,即为其频谱图。但是问题来了,复数取模后,数字有可能变的很大,远大于255,如果数据超过255,则在显示图像的时候会都当做255来处理,
图像就成了全白色。因此,一般会对模值再取对数,在在0~255的范围内进行归一化,这样才能够准确的反映到图像上,发现数据之间的差别,区分
高频和低频分量,这也是进行傅里叶变换的意义。
2. 频域盲水印隐写:
分离方法:
Blind-watermark(python 2.7):
分离水印命令:
python decode.py --original
添加水印命令:
python encode.py --image
六、图片容差隐写:
1.背景知识:
容差,在选取颜色时所设置的选取范围,容差越大,选取的范围也越大,其数值是在0-255之间。
2.容差比较的隐写:
分离方法:
beyond compare分离:
操作步骤:
打开工具,选择图片比较,导入example_1.jpg和example_2.jpg。
选择容差模式,并调整容差大小
PS:
Beyond Compare4|Beyond Compare破解版激活码:
1、L2aJTd2SauPv4Luhang21uqq5NJOEw94wxdZTpU-pFB9GmyPk677gJ
2、RuGuo7nimugASTzh99xsaioxTsE2-oigiuomj+JHFjazxsaoh43kmplmjx
3、hFbqTmYskatMTgPyjvv99CF2Te8ec+Ys6PPxyZAF0YwOGUILOO98iug
七、二维码隐写:
1.QR Research解码:
使用QR Research读取二维码中的信息。
电子文档隐写:
一、Word文件隐写:
(1)隐藏文本功能隐写:
一是进入Word—文件—选项—显示—勾选“隐藏文字”。
二是使用WinHex查看十六进制数据。
(2)word文档的xml转换:
我们可以将word文档转换成xml格式,当然反过来我们也可以将xml转换成word文档,这导致了我们如果重新打包为word文档的过程中,有可能被
隐藏进其他数据。
一是将后缀名改为.zip\rar\7z等压缩格式,打开即可查看。
二是使用WinHex查看十六进制数据。
二、PDF文件隐写:
分离方法:
wbStego分离:
在工具目录中找到 wbStego4open,使用工具载入文档,
Step 1 是文件介绍
Step 2 中,我们选择Decode,
Step 3 我们选择目标文件
Step 4 输入加密密码,这里我是空密码,直接跳过
Step 5 为保存文件为 flag.txt
多媒体文件隐写:
一、音频隐写:
(1)摩斯电码式:
打开音频文件尝试听一下内容,会听到类似电报的发文声。
摩尔斯电码对照表:
解码方式:
用Adobe Auditon打开目标文件,并观察波形。长的代表代表横线,短的代表点,大的间隔是空格。
翻译后的密文为:
-..- .. .- -. --.. .... .. .-.-.- .- .-.. .. -.-- ..- -. .-.-.- -.-. --- --
(2)利用MP3stego进行的数据隐写:
MP3Stego命令:
加密:encode -E 加密文本 -P 密码 wav文件 mp3文件
解密:decode -X -P 密码 mp3文件
(3)频谱图的音频隐写:
频谱是频率谱密度的简称,是频率的分布曲线。复杂振荡分解为振幅不同和频率不同的谐振荡,这些谐振荡的幅值按频率排列的图形叫做频谱。
在CTF中,我们可以单独只对一个声道中,隐写进信息。
分离方法:
使用Adobe Audition分离:
用AU打开音频文件,调整频谱显示,即可显示出flag。
二、视频隐写:
目前在CTF赛事中较为常出现的视频隐写,一般都是将一场带有隐写信息的图片,嵌入视频中,我们所需要做的就是将这个图片从视频分离出来,然
后在分析我们分离出来的文件是什么,之后的操作可能会涉及到密码编码,图片隐写等知识点。
如果单独对视频来说ffmpeg是一个很好的工具,这里我使用的是foremost,当然我们也可以使用binwalk或者dd等工具,正如我们图片隐写中教大
家分离图片所用的方法一样。区别是,ffmpeg将视频分解成一张一张的图片,foremost是一个基于文件头和尾部信息以及文件的内建数据结构恢复文
件的命令行工具。
(1)使用foremost分离:
分离命令:
foremost xxx.mp4
会自动生成output目录存放分离出文件。
(2)使用steghide分离:
分离命令:
steghide extract -sf thing.jpg -p password
常用文件头尾标识:
一、常用文件头尾标识:
(1)常见图片文件头尾标识:
JPEG/JPG:
文件头标识(2 bytes):FF D8
文件结束标识(2 bytes):FF D9
PNG:
文件头标识(8 bytes):89 50 4E 47 0D 0A 1A 0A
GIF:
文件头标识(6 bytes):47 49 46 38 39(37) 61
文件结束标识(2 bytes):01 01 00 3B
BMP:
文件头标识(2 bytes):42 4D
二、文件头标识及对应类型表:
详见:http://www.cnblogs.com/13ck/p/4471146.html
扩展名 |
文件头标识(HEX) |
文件描述 |
7z |
37 7A BC AF 27 1C |
7-ZIP compressed file |
amr |
23 21 41 4D 52 |
Adaptive Multi-Rate ACELP (Algebraic Code Excited Linear Prediction) Codec, commonly audio format with GSM cell phones |
asf |
30 26 B2 75 8E 66 CF 11 |
Windows Media |
asf; wma; wmv |
30 26 B2 75 8E 66 CF 11 A6 D9 00 AA 00 62 CE 6C |
Microsoft Windows Media Audio/Video File(Advanced Streaming Format) |
avi |
41 56 49 20 |
Audio Video Interleave (AVI) |
bmp |
42 4D |
Windows Bitmap |
BMP |
42 4D 3E |
|
dat |
3 |
MapInfo Native Data Format |
dat |
1A 52 54 53 20 43 4F 4D 50 52 45 53 53 45 44 20 49 4D 41 47 45 20 56 31 2E 30 1A |
Runtime Software disk image |
dat |
41 56 47 36 5F 49 6E 74 65 67 72 69 74 79 5F 44 61 74 61 62 61 73 65 |
AVG6 Integrity database file |
DAT |
43 52 45 47 |
Windows 9x registry hive |
DAT |
43 6C 69 65 6E 74 20 55 72 6C 43 61 63 68 65 20 4D 4D 46 20 56 65 72 20 |
IE History DAT file |
DAT |
45 52 46 53 53 41 56 45 44 41 54 41 46 49 4C 45 |
Kroll EasyRecovery Saved Recovery State file |
DAT |
49 6E 6E 6F 20 53 65 74 75 70 20 55 6E 69 6E 73 74 61 6C 6C 20 4C 6F 67 20 28 62 29 |
Inno Setup Uninstall Log file |
db |
00 06 15 61 00 00 00 02 00 00 04 D2 00 00 10 00 |
Netscape Navigator (v4) database file |
DB |
44 42 46 48 |
Palm Zire photo database |
db |
8 |
dBASE IV or dBFast configuration file |
doc |
0D 44 4F 43 |
DeskMate Document file |
doc |
12 34 56 78 90 FF |
MS Word 6.0 |
doc |
31 BE 00 00 00 AB 00 00 |
MS Word for DOS 6.0 |
doc |
7F FE 34 0A |
MS Word |
dot; ppt; xla; ppa; pps; pot; msi; sdw; db |
D0 CF 11 E0 |
MS Office/OLE2 |
doc; dot; xls; xlt; xla; ppt; apr ;ppa; pps; pot; msi; sdw; db |
D0 CF 11 E0 A1 B1 1A E1 |
MS Compound Document v1 or Lotus Approach APR file |
emf |
01 00 00 00 58 00 00 00 |
Extended (Enhanced) Windows Metafile Format, printer spool file |
eml |
44 65 6C 69 76 65 72 79 2D 64 61 74 65 3A |
|
EML |
46 72 6F 6D 20 20 20 |
A commmon file extension for e-mail files. Signatures shown here are for Netscape, Eudora, and a generic signature, respectively. EML is also used by Outlook Express and QuickMail. |
EML |
46 72 6F 6D 20 3F 3F 3F |
A commmon file extension for e-mail files. Signatures shown here are for Netscape, Eudora, and a generic signature, respectively. EML is also used by Outlook Express and QuickMail. |
EML |
46 72 6F 6D 3A 20 |
A commmon file extension for e-mail files. Signatures shown here are for Netscape, Eudora, and a generic signature, respectively. EML is also used by Outlook Express and QuickMail. |
EML |
52 65 63 |
|
exe; dll; drv; vxd; sys; ocx; vbx |
4D 5A |
Win32 Executable |
exe; dll; drv; vxd; sys; ocx; vbx |
4D 5A |
Win16 Executable |
exe; com; 386; ax; acm; sys; dll; drv; flt; fon; ocx; scr; lrc; vxd; cpl; x32 |
4D 5A |
Executable File |
EXE, DLL, OCX, OLB, IMM, IME |
4D 5A 90 |
|
FLV |
46 4C 56 01 |
Flash video file |
GIF |
47 49 46 38 |
|
gif |
47 49 46 38 37 61 |
Graphics interchange format file (GIF 87A) |
gif |
47 49 46 38 39 61 |
Graphics interchange format file (GIF89A) |
gz; tar; tgz |
1F 8B |
Gzip Archive File |
gz; tgz |
1F 8B 08 |
GZ Compressed File |
htm; html |
3C 21 44 4F 43 54 |
HyperText Markup Language 3 |
htm; html |
3C 48 54 4D 4C 3E |
HyperText Markup Language 2 |
htm; html |
3C 68 74 6D 6C 3E |
HyperText Markup Language 1 |
html |
68 74 6D 6C 3E |
HTML |
ico |
00 00 01 00 00 |
Icon File |
ico |
00 00 01 00 01 00 20 20 |
Icon File |
ISO |
43 44 30 30 31 |
ISO-9660 CD Disc Image (This signature usually occurs at byte 8001, 8801, or 9001.) |
JAR |
4A 41 52 43 53 00 |
JARCS compressed archive |
jar |
5F 27 A8 89 |
JAR Archive File |
jpg; jpeg |
FF D8 FF |
|
jpg; jpe; jpeg |
FF D8 FF E0 00 |
JPG Graphic File |
jpg; jpe; jpeg |
FF D8 FF FE 00 |
JPG Graphic File |
lnk |
4C 00 00 00 |
Windows Shortcut (Link File) |
lnk |
4C 00 00 00 01 14 02 |
Windows Link File |
LNK |
4C 00 00 00 01 14 02 00 |
Windows shortcut file |
log |
2A 2A 2A 20 20 49 6E 73 74 61 6C 6C 61 74 69 6F 6E 20 53 74 61 72 74 65 64 20 |
Symantec Wise Installer log file |
m4a |
00 00 00 20 66 74 79 70 4D 34 41 20 00 00 00 00 |
Apple Lossless Audio Codec file |
m4a; m4v |
00 00 00 20 66 74 79 70 4D 34 41 20 00 00 00 00 |
QuickTime M4A/M4V file |
mdb |
00 01 00 00 53 74 61 6E 64 61 72 64 20 4A 65 74 20 44 42 |
Microsoft Access file |
mdb; mda; mde; mdt |
53 74 61 6E 64 61 72 64 20 4A |
MS Access |
MOV |
00 00 0F |
|
MOV |
00 00 77 |
|
mov |
6D 6F 6F 76 |
Quicktime |
mov |
6D 64 61 74 |
QuickTime Movie |
MP3 |
49 44 33 |
MPEG-1 Audio Layer 3 (MP3) audio file |
MP3 |
FF FB 50 |
|
mp4 |
00 00 00 18 66 74 79 70 33 67 70 35 |
MPEG-4 video files |
mpg; mpeg |
00 00 01 B3 |
MPEG Movie |
mpg |
00 00 01 BA |
MPEG |
|
25 50 44 |
|
pdf; fdf |
25 50 44 46 |
Adobe Portable Document Format and Forms Document file |
|
25 50 44 46 2D 31 2E |
Adobe Acrobat |
PNG |
89 50 4E |
|
PNG |
89 50 4E 47 |
|
png |
89 50 4E 47 0D 0A |
PNG Image File |
png |
89 50 4E 47 0D 0A 1A 0A |
PNG Image File |
PPT |
D0 CF 11 |
|
ppt |
[512 byte offset] 00 6E 1E F0 |
PowerPoint presentation subheader (MS Office) |
ppt |
[512 byte offset] 0F 00 E8 03 |
PowerPoint presentation subheader (MS Office) |
PSD |
38 42 50 |
|
psd |
38 42 50 53 |
Adobe Photoshop image file |
RAR |
52 61 72 |
|
rar |
52 61 72 21 |
RAR Archive File |
reg |
52 45 47 45 44 49 54 34 |
|
rgb |
01 DA 01 01 00 03 |
Silicon Graphics RGB Bitmap |
RM |
2E 52 4D |
|
rm; rmvb |
2E 52 4D 46 |
Real Media streaming media file |
SWF |
43 57 53 |
Shockwave Flash file (v5+) |
SWF |
46 57 53 |
Macromedia Shockwave Flash player file |
tar; cpio |
30 37 30 37 30 37 |
CPIO Archive File |
tar.z |
1F 9D 90 |
Compressed tape archive file |
TIF; TIFF |
49 20 49 |
Tagged Image File Format file |
tif; tiff |
49 49 2A |
TIFF (Intel) |
tif; tiff |
49 49 2A 00 |
Tagged Image File Format file (little endian, i.e., LSB first in the byte; Intel) |
TIF; TIFF |
4D 4D 00 2A |
Tagged Image File Format file (big endian, i.e., LSB last in the byte; Motorola) |
tif; tiff |
4D 4D 2A |
TIFF (Motorola) |
TIF; TIFF |
4D 4D 00 2B |
BigTIFF files; Tagged Image File Format files >4 GB |
VCD |
45 4E 54 52 59 56 43 44 02 00 00 01 02 00 18 58 |
VideoVCD (GNU VCDImager) file |
vob |
00 00 01 BA |
DVD Video Movie File (video/dvd, video/mpeg) |
WAV |
52 49 46 |
|
wav |
57 41 56 45 |
Wave |
wav |
57 41 56 45 66 6D 74 |
Wave Files |
WMA |
30 26 B2 |
|
WMV |
30 26 B2 |
|
xls |
09 02 06 00 00 00 10 00 B9 04 5C 00 |
MS Excel v2 |
xls |
09 04 06 00 00 00 10 00 F6 05 5C 00 |
MS Excel v4 |
XLS |
D0 CF 11 |
|
xls |
D0 CF 11 E0 |
MS Excel |
xls |
[512 byte offset] 09 08 10 00 00 06 05 00 |
Excel spreadsheet subheader (MS Office) |
XML |
3C 3F 78 |
|
xml |
3C 3F 78 6D 6C |
XML Document |
xml |
FF FE 3C 00 52 00 4F 00 4F 00 54 00 53 00 54 00 55 00 42 00 |
XML Document (ROOTSTUB) |
ZIP |
50 4B 03 |
|
zip; jar; zipx |
50 4B 03 04 |
ZIP Archive |
zip |
50 4B 30 30 |
ZIP Archive (outdated) |
Zip |
50 4B 30 30 50 4B 03 04 |
WINZIP Compressed |