文档分析和隐写术

微软office

文档是发送或存储消息、报告、视频或想法等信息的常见方式。MS Office文档、图像和音频文件是我们日常生活中常用的一些格式。然而,除了我们在Word文档中看到的内容或在音频文件中听到的内容之外,这些文档还可能包含隐藏消息或恶意代码,当我们打开它们时可能会执行这些消息或恶意代码。在本实验中,我们将探索一些分析和检查这些文档的技术。

Microsoft Office文档使用两种主要文件格式:

  • OLE(对象链接和嵌入)
  • OOXML(Office Open XML)

OLE

OLE是1997年至2003年间Microsoft Office早期版本中使用的文件格式。它定义了“文件中的文件”结构,允许将其他文件嵌入到一个文件中。例如,Excel电子表格可以嵌入到Microsoft Word文档中。它支持.rtf、.doc、.ppt、 和.xls等文件扩展名。

OOXML

OOXML (Office Open XML) 是Microsoft Office当前使用的文件格式,它依赖于基于XML的Office文档格式。

这些文档的扩展名包括.docx、.pptx和.xlsx等。

OOXML格式将Office文档存储为ZIP容器。这意味着Word、Excel和PowerPoint文件等文档实际上只是ZIP文件。通过将扩展名从.docx、.xlsx或重命名.pptx为.zip,您可以提取存档的内容并查看各个XML文件。这对于数字取证来说是一个有用的功能,因为它允许调查人员检查文档的内容而不修改它。

OOXML文档剖析

举个例子,让我们创建一个包含文本的Word文档Hello World!,将其传输到我们的kali主机上,然后解压缩。

1
2
3
4
5
6
7
8
9
10
11
12
13
$ unzip Hello.docx 
Archive: Hello.docx
inflating: [Content_Types].xml
inflating: _rels/.rels
inflating: word/_rels/document.xml.rels
inflating: word/document.xml
inflating: word/theme/theme1.xml
inflating: word/settings.xml
inflating: docProps/core.xml
inflating: word/fontTable.xml
inflating: word/webSettings.xml
inflating: word/styles.xml
inflating: docProps/app.xml

Word文档的文件结构如下所示:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
$ tree
.
├── [Content_Types].xml
├── docProps
│   ├── app.xml
│   └── core.xml
├── Hello.docx
├── _rels
└── word
├── document.xml
├── fontTable.xml
├── _rels
│   └── document.xml.rels
├── settings.xml
├── styles.xml
├── theme
│   └── theme1.xml
└── webSettings.xml
[Content_Types].xml

此文件包含有关文档中存在的内容类型及其相应文件扩展名的信息。

docProps

该文件夹包含两个文件,app.xml以及core.xml.

  • app.xml—包含有关用于创建文档的应用程序的信息。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<Properties>
<Template>Normal.dotm</Template>
<TotalTime>1</TotalTime>
<Pages>1</Pages>
<Words>2</Words>
<Characters>12</Characters>
<Application>Microsoft Office Word</Application>
<DocSecurity>0</DocSecurity>
<Lines>1</Lines>
<Paragraphs>1</Paragraphs>
<ScaleCrop>false</ScaleCrop>
<Company/>
<LinksUpToDate>false</LinksUpToDate>
<CharactersWithSpaces>13</CharactersWithSpaces>
<SharedDoc>false</SharedDoc>
<HyperlinksChanged>false</HyperlinksChanged>
<AppVersion>16.0000</AppVersion>
</Properties>
  • core.xml—包含文档的元数据,例如作者姓名、创建日期和修改日期。
1
2
3
4
5
6
7
8
9
10
11
<cp:coreProperties>
<dc:title/>
<dc:subject/>
<dc:creator>jack ma</dc:creator>
<cp:keywords/>
<dc:description/>
<cp:lastModifiedBy>jack ma</cp:lastModifiedBy>
<cp:revision>1</cp:revision>
<dcterms:created xsi:type="dcterms:W3CDTF">2024-04-02T02:21:00Z</dcterms:created>
<dcterms:modified xsi:type="dcterms:W3CDTF">2024-04-02T02:22:00Z</dcterms:modified>
</cp:coreProperties>
_rels

该文件夹包含一个名为.rels.

.rels—包含有关文档不同部分之间关系的信息,例如forapp.xml和core.xml。

word

该文件夹包含文档的实际内容。

  • document.xml—包含文档的实际文本。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<w:document mc:Ignorable="w14 w15 w16se w16cid w16 w16cex w16sdtdh wp14">
<w:body>
<w:p w14:paraId="09C22E0C" w14:textId="13AFED08" w:rsidR="003D14EA" w:rsidRDefault="003D14EA">
<w:r>
<w:t>H</w:t>
</w:r>
<w:r>
<w:rPr>
<w:rFonts w:hint="eastAsia"/>
</w:rPr>
<w:t>e</w:t>
</w:r>
<w:r>
</w:r>
</w:p>
<w:sectPr w:rsidR="003D14EA">
<w:pgSz w:w="11906" w:h="16838"/>
<w:pgMar w:top="1440" w:right="1800" w:bottom="1440" w:left="1800" w:header="851" w:footer="992" w:gutter="0"/>
<w:cols w:space="425"/>
<w:docGrid w:type="lines" w:linePitch="312"/>
</w:sectPr>
</w:body>
</w:document>
  • fontTable.xml—包含有关文档中使用的字体的信息。

  • _rels—包含一个文件document.xml.rels。document.xml.rels—包含有关文档不同部分之间关系的信息,例如样式、主题、设置以及外部链接的URI。

  • settings.xml—包含文档设置和配置信息。

  • styles.xml—包含有关文档中使用的样式的信息。

  • theme包含有关文档中使用的主题的文件。theme1.xml—包含实际的主题内容。

  • webSettings.xml—包含有关文档的特定于Web的设置的信息,例如HTML框架集设置以及保存为HTML时如何处理文档。

有关文档中可能存在的任何其他文件的信息可以在链接http://officeopenxml.com/anatomyofOOXML.php上找到。

启用宏的文档

启用宏的文档是包含宏的文档,宏是自动执行任务的指令集。宏可以用Visual Basic for Applications (VBA)编写,可用于执行各种任务,例如格式化文本、执行计算和自动执行复杂的过程。然而,攻击者经常利用Office文档的这一功能进行网络钓鱼攻击,并嵌入恶意宏来执行恶意操作并在系统上安装恶意软件。

这些文档的扩展名包括.docm、.pptm、xlsm等。例子可参考:(https://github.com/ExpOrx/digital-forensics-lab/blob/main/Lab%2003/README.md)

根据OOXML文件的剖析,宏现在存储在内部word/vbaProject.bin,但是,我们无法读取它,因为它是二进制形式的。但是,我们可以使用一系列工具来oletools分析和从OLE文件(例如Microsoft Office文档)中提取宏。

要安装oletools,请使用命令:sudo -H pip install -U oletools。

让我们用它oleid来检测我们的文档是否嵌入了任何宏。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
oleid Hello.docm 
oleid 0.60.1 - http://decalage.info/oletools
THIS IS WORK IN PROGRESS - Check updates regularly!
Please report any issue at https://github.com/decalage2/oletools/issues

Filename: Hello.docm
WARNING For now, VBA stomping cannot be detected for files in memory
--------------------+--------------------+----------+--------------------------
Indicator |Value |Risk |Description
--------------------+--------------------+----------+--------------------------
File format |MS Word 2007+ Macro-|info |
|Enabled Document | |
|(.docm) | |
--------------------+--------------------+----------+--------------------------
Container format |OpenXML |info |Container type
--------------------+--------------------+----------+--------------------------
Encrypted |False |none |The file is not encrypted
--------------------+--------------------+----------+--------------------------
VBA Macros |Yes |Medium |This file contains VBA
| | |macros. No suspicious
| | |keyword was found. Use
| | |olevba and mraptor for
| | |more info.
--------------------+--------------------+----------+--------------------------
XLM Macros |No |none |This file does not contain
| | |Excel 4/XLM macros.
--------------------+--------------------+----------+--------------------------
External |0 |none |External relationships
Relationships | | |such as remote templates,
| | |remote OLE objects, etc
--------------------+--------------------+----------+--------------------------

结果表明,该工具找到了VBA宏,并将风险评估为中等。我们现在可以继续使用olevba从文档中提取宏。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
$ olevba Hello.docm 
olevba 0.60.1 on Python 3.10.12 - http://decalage.info/python/oletools
===============================================================================
FILE: Hello.docm
Type: OpenXML
WARNING For now, VBA stomping cannot be detected for files in memory
-------------------------------------------------------------------------------
VBA MACRO ThisDocument.cls
in file: word/vbaProject.bin - OLE stream: 'VBA/ThisDocument'
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(empty macro)
-------------------------------------------------------------------------------
VBA MACRO NewMacros.bas
in file: word/vbaProject.bin - OLE stream: 'VBA/NewMacros'
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Sub HelloWorld()

Dim doc As Document
Set doc = Word.ActiveDocument
doc.Content.InsertAfter ("Hello, World!")

End Sub
No suspicious keyword or IOC found.

上面的输出显示提取的宏与我们附加到文档中的宏完全相同。

隐写术

隐写术一词源自希腊语 Steganographia,由两个词“steganos”(意思是“覆盖或隐藏”)和“graphia”(意思是“书写”)组成。它涉及将秘密隐藏在看似无辜的信息中。隐写术的一个早期例子是使用由柠檬汁或醋制成的隐形墨水在纸上书写,然后通过加热纸来显示文字。

在当今的数字世界中,隐写术用于将消息隐藏在另一个文件(例如图像或音频文件)中,这样任何不知道它存在的人都无法看到或听到该消息。这种技术既可以用于无辜的目的,例如向朋友发送秘密消息,也可以用于恶意的目的,例如隐藏证据或在不被发现的情况下进行通信。

图像隐写术

PNG和JPEG是两种常见的图像格式。它们还可以用作隐藏其中消息的通道。这两种格式都依赖于不同的结构来构建图像,因此使用不同的技术来隐藏其中的消息。

PNG

对于PNG文件,隐藏消息的常用技术之一是修改某些像素的最低有效位 (LSB),例如对图像质量影响最小的像素。然后,算法知道从哪些像素中提取嵌入的消息。

用于检测PNG隐写术的一种工具是zsteg,可以使用命令安装sudo gem install zsteg

以下是我们如何使用该工具提取隐藏消息:

1
2
3
4
5
6
7
8
9
$ zsteg starry_night.png 
imagedata .. file: byte-swapped Berkeley vfont data
b1,rgb,lsb,xy .. text: "148:The fishermen know that the sea is dangerous and the storm terrible, but they have never found these dangers sufficient reason for remaining ashore.*"
b2,b,msb,xy .. file: OpenPGP Public Key
b2,bgr,lsb,xy .. text: "[\t7J(BY*"
b2,bgr,msb,xy .. file: RLE image data, 3654 x -30514, lower left corner: 2428, lower right corner: 17057, clear first, 86 color channels
b3,r,lsb,xy .. text: "BH<P9nYT~"
b4,b,lsb,xy .. file: OpenPGP Secret Key
b4,bgr,lsb,xy .. file: OpenPGP Secret Key

JPEG

对于JPEG文件,常用的隐写术方法涉及查找图像内的位置对,以便交换它们的值具有嵌入秘密消息的相应部分的效果。如果没有找到这样的对,则剩余位置的像素将被简单地覆盖。

使用steghide工具,我们可以隐藏和提取JPEG文件中的消息。添加到数字取证工具包中的另一个工具是exiftool,它可用于从图像或音频文件等文件中提取元数据,其中包括创建和修改日期、作者以及图像所在位置等信息捕获(纬度和经度)。

音频隐写术

在音频隐写术中,最常见的方法是将消息嵌入音频频谱中。然而,这种方法会使音频变得嘈杂。另一种方法是将消息嵌入最低有效位 (LSB)。

要检测音频隐写术,可以使用Sonic Visualizer或Audacity等工具。

练习题

科目一

1 您的组织中报告了网络钓鱼攻击,其中一名员工在一封看似来自可信来源的电子邮件中收到了恶意Word文档。该员工打开了其中包含宏的文档,导致攻击者获得了对该员工计算机的访问权限。宏代码中嵌入了一个会泄露攻击者身份的秘密。您的任务是分析宏代码并提取嵌入的秘密。秘密有格式flag{s0me_str1ng}。

Word文档可以从https://github.com/vonderchild/digital-forensics-lab/blob/main/Lab 03/files/YearlyBonus.docm下载。

解题:

  • 使用oleid检测我们的文件是否嵌入了宏。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
$ oleid YearlyBonus.docm 
oleid 0.60.1 - http://decalage.info/oletools
THIS IS WORK IN PROGRESS - Check updates regularly!
Please report any issue at https://github.com/decalage2/oletools/issues

Filename: YearlyBonus.docm
WARNING For now, VBA stomping cannot be detected for files in memory
--------------------+--------------------+----------+--------------------------
Indicator |Value |Risk |Description
--------------------+--------------------+----------+--------------------------
File format |MS Word 2007+ Macro-|info |
|Enabled Document | |
|(.docm) | |
--------------------+--------------------+----------+--------------------------
Container format |OpenXML |info |Container type
--------------------+--------------------+----------+--------------------------
Encrypted |False |none |The file is not encrypted
--------------------+--------------------+----------+--------------------------
VBA Macros |Yes, suspicious |HIGH |This file contains VBA
| | |macros. Suspicious
| | |keywords were found. Use
| | |olevba and mraptor for
| | |more info.
--------------------+--------------------+----------+--------------------------
XLM Macros |No |none |This file does not contain
| | |Excel 4/XLM macros.
--------------------+--------------------+----------+--------------------------
External |0 |none |External relationships
Relationships | | |such as remote templates,
| | |remote OLE objects, etc
--------------------+--------------------+----------+--------------------------

  • 结果表明,该工具找到了VBA宏,并将风险评估为高。我们现在可以继续使用olevba从文档中提取宏。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
$ olevba YearlyBonus.docm 
olevba 0.60.1 on Python 3.10.12 - http://decalage.info/python/oletools
===============================================================================
FILE: YearlyBonus.docm
Type: OpenXML
WARNING For now, VBA stomping cannot be detected for files in memory
-------------------------------------------------------------------------------
VBA MACRO ThisDocument.cls
in file: word/vbaProject.bin - OLE stream: 'VBA/ThisDocument'
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(empty macro)
-------------------------------------------------------------------------------
VBA MACRO NewMacros.bas
in file: word/vbaProject.bin - OLE stream: 'VBA/NewMacros'
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Sub ConvertByteArrayToString(byteArray() As Byte)
Dim str As String
str = "Oh, and almost forgot, here's something little cryptic for you: " + StrConv(byteArray, vbUnicode)
MsgBox str
End Sub


Sub doShenanigans()
Dim byteArray(0 To 100) As Byte
byteArray(0) = 77
byteArray(1) = 101
byteArray(2) = 109
byteArray(3) = 34
byteArray(4) = 22
byteArray(5) = 111
byteArray(6) = 101
byteArray(7) = 107
byteArray(8) = 22
byteArray(9) = 104
byteArray(10) = 91
byteArray(11) = 87
byteArray(12) = 98
byteArray(13) = 98
byteArray(14) = 111
byteArray(15) = 22
byteArray(16) = 97
byteArray(17) = 100
byteArray(18) = 101
byteArray(19) = 109
byteArray(20) = 22
byteArray(21) = 111
byteArray(22) = 101
byteArray(23) = 107
byteArray(24) = 104
byteArray(25) = 22
byteArray(26) = 109
byteArray(27) = 87
byteArray(28) = 111
byteArray(29) = 22
byteArray(30) = 87
byteArray(31) = 104
byteArray(32) = 101
byteArray(33) = 107
byteArray(34) = 100
byteArray(35) = 90
byteArray(36) = 22
byteArray(37) = 87
byteArray(38) = 22
byteArray(39) = 76
byteArray(40) = 56
byteArray(41) = 55
byteArray(42) = 22
byteArray(43) = 99
byteArray(44) = 87
byteArray(45) = 89
byteArray(46) = 104
byteArray(47) = 101
byteArray(48) = 22
byteArray(49) = 89
byteArray(50) = 94
byteArray(51) = 87
byteArray(52) = 98
byteArray(53) = 98
byteArray(54) = 91
byteArray(55) = 100
byteArray(56) = 93
byteArray(57) = 91
byteArray(58) = 36
byteArray(59) = 0
byteArray(60) = 0
byteArray(61) = 79
byteArray(62) = 101
byteArray(63) = 107
byteArray(64) = 104
byteArray(65) = 22
byteArray(66) = 92
byteArray(67) = 98
byteArray(68) = 87
byteArray(69) = 93
byteArray(70) = 22
byteArray(71) = 95
byteArray(72) = 105
byteArray(73) = 48
byteArray(74) = 22
byteArray(75) = 92
byteArray(76) = 98
byteArray(77) = 87
byteArray(78) = 93
byteArray(79) = 113
byteArray(80) = 105
byteArray(81) = 107
byteArray(82) = 89
byteArray(83) = 94
byteArray(84) = 85
byteArray(85) = 99
byteArray(86) = 42
byteArray(87) = 89
byteArray(88) = 104
byteArray(89) = 38
byteArray(90) = 85
byteArray(91) = 99
byteArray(92) = 107
byteArray(93) = 89
byteArray(94) = 94
byteArray(95) = 85
byteArray(96) = 109
byteArray(97) = 38
byteArray(98) = 109
byteArray(99) = 23
byteArray(100) = 115

For iter = 0 To 100
byteArray(iter) = byteArray(iter) + 3
Next

Call ConvertByteArrayToString(byteArray)
End Sub

Sub AutoOpen()

Dim str As String
str = "You have been hacked!"
MsgBox str

Call doShenanigans

End Sub
+----------+--------------------+---------------------------------------------+
|Type |Keyword |Description |
+----------+--------------------+---------------------------------------------+
|AutoExec |AutoOpen |Runs when the Word document is opened |
|Suspicious|Call |May call a DLL using Excel 4 Macros (XLM/XLF)|
+----------+--------------------+---------------------------------------------+

  • 宏代码提取出来之后,我们尝试新建一个docm文件,输出内容:
1
Oh, and almost forgot, here's something little cryptic for you: Php%rhnk^ZeerdghprhnkpZrZkhng]ZO;:fZ\kh\aZee^g`^'Rhnk_eZ`bl3_eZ`tln\aXf-\k)Xfn\aXp)pv

科目二

2 政府内部的一名内奸向一名间谍泄露了绝密信息。内奸了解间谍技术,使用隐写术将信息隐藏在图像中,然后将其交给他的处理者。间谍收到该图像并将其粘贴到PowerPoint文档中,并用多张随机图像覆盖以隐藏它。我们的一名间谍已进入敌方间谍的计算机并恢复了PowerPoint文档。你的任务是提取第一张图像,提取绝密信息以及他在政府内部的消息来源的姓名和位置。

PowerPoint文档可以从https://github.com/vonderchild/digital-forensics-lab/blob/main/Lab 03/files/Presentation.pptx下载。

  • 首先解压pptx文件
1
unzip Presentation.pptx 
  • 查看pptx压缩包路径,找到第一张图片
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
$ tree
.
├── media
│   ├── image10.png
│   ├── image11.png
│   ├── image12.png
│   ├── image13.png
│   ├── image14.png
│   ├── image15.png
│   ├── image16.png
│   ├── image17.png
│   ├── image18.png
│   ├── image19.png
│   ├── image1.jpg
│   ├── image20.png
│   ├── image21.png
│   ├── image22.png
│   ├── image23.png
│   ├── image24.png
│   ├── image25.png
│   ├── image26.png
│   ├── image27.png
│   ├── image28.png
│   ├── image29.png
│   ├── image2.png
│   ├── image30.png
│   ├── image31.png
│   ├── image32.png
│   ├── image33.png
│   ├── image34.png
│   ├── image35.png
│   ├── image36.png
│   ├── image37.png
│   ├── image38.png
│   ├── image39.png
│   ├── image3.png
│   ├── image40.png
│   ├── image41.png
│   ├── image42.png
│   ├── image43.png
│   ├── image44.png
│   ├── image45.png
│   ├── image46.png
│   ├── image47.png
│   ├── image48.png
│   ├── image49.png
│   ├── image4.png
│   ├── image50.png
│   ├── image51.png
│   ├── image5.png
│   ├── image6.png
│   ├── image7.png
│   ├── image8.png
│   ├── image9.png
│   └── top_secret.txt
├── presentation.xml
├── presProps.xml
├── printerSettings
│   └── printerSettings1.bin
├── _rels
│   └── presentation.xml.rels
├── slideLayouts
│   ├── _rels
│   │   ├── slideLayout10.xml.rels
│   │   ├── slideLayout11.xml.rels
│   │   ├── slideLayout1.xml.rels
│   │   ├── slideLayout2.xml.rels
│   │   ├── slideLayout3.xml.rels
│   │   ├── slideLayout4.xml.rels
│   │   ├── slideLayout5.xml.rels
│   │   ├── slideLayout6.xml.rels
│   │   ├── slideLayout7.xml.rels
│   │   ├── slideLayout8.xml.rels
│   │   └── slideLayout9.xml.rels
│   ├── slideLayout10.xml
│   ├── slideLayout11.xml
│   ├── slideLayout1.xml
│   ├── slideLayout2.xml
│   ├── slideLayout3.xml
│   ├── slideLayout4.xml
│   ├── slideLayout5.xml
│   ├── slideLayout6.xml
│   ├── slideLayout7.xml
│   ├── slideLayout8.xml
│   └── slideLayout9.xml
├── slideMasters
│   ├── _rels
│   │   └── slideMaster1.xml.rels
│   └── slideMaster1.xml
├── slides
│   ├── _rels
│   │   └── slide1.xml.rels
│   └── slide1.xml
├── tableStyles.xml
├── theme
│   └── theme1.xml
└── viewProps.xml
  • 分析image1.jpg文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
$ exiftool image1.jpg
ExifTool Version Number : 12.40
File Name : image1.jpg
Directory : .
File Size : 46 KiB
File Modification Date/Time : 2023:02:09 05:36:55+08:00
File Access Date/Time : 2024:04:02 14:50:07+08:00
File Inode Change Date/Time : 2024:04:02 14:49:56+08:00
File Permissions : -rw-------
File Type : JPEG
File Type Extension : jpg
MIME Type : image/jpeg
JFIF Version : 1.01
Exif Byte Order : Big-endian (Motorola, MM)
X Resolution : 1
Y Resolution : 1
Resolution Unit : None
Artist : Michael Scott
Y Cb Cr Positioning : Centered
GPS Version ID : 2.3.0.0
GPS Latitude : 34 deg 12' 39.33"
GPS Longitude : 118 deg 26' 11.15"
Image Width : 800
Image Height : 450
Encoding Process : Baseline DCT, Huffman coding
Bits Per Sample : 8
Color Components : 3
Y Cb Cr Sub Sampling : YCbCr4:4:4 (1 1)
Image Size : 800x450
Megapixels : 0.360
GPS Position : 34 deg 12' 39.33", 118 deg 26' 11.15"

$ steghide info image1.jpg
"image1.jpg":
format: jpeg
capacity: 2.6 KB
Try to get information about embedded data ? (y/n) y
Enter passphrase:
embedded file "top_secret.txt":
size: 226.0 Byte
encrypted: rijndael-128, cbc
compressed: yes

$ cat top_secret.txt
I have obtained information regarding a top secret mission. The details are highly classified and must not fall into the wrong hands. Proceed with caution and use extreme discretion in all communications regarding this matter.

目前只做到了这里。

科目三

3 根据音频隐写术部分提供的音频文件,了解如何使用Audacity查看频谱图并恢复标志。提交截图。

音频文件可以从https://github.com/vonderchild/digital-forensics-lab/blob/main/Lab 03/files/super_secret_audio.wav下载。