-->
当前位置:首页 > DayDayUp > 正文内容

Steganography 1.50 1.60 加密特征分析

Luz3年前 (2021-02-19)DayDayUp3914

Steganography 是Pipisoft公司推出的一款隐写软件,能够把你想加密的文件隐藏在其他的文件当中。

工具下载:steganography.zip

1.50版本:

预览版的加密:

在一张JPG图片中隐藏另一个图片。使用十六进制编辑器查看该JPG图片

文件末尾显示为

00004A80   34 BA 2C BC F0 4C 42 78  40 3E 5C 55 5B DF F1 37   4¦,+_LBx@>\U[_±7
00004A90   F3 AB 6F FF 00 6E 7E B5  45 38 87 FF D9 50 4B 03   _½o_.n~¦E8ç_+PK.
00004AA0   04 14 00 02 00 08 00 6A  4C 78 2F C1 66 CC 56 FE   .¶.....jLx/-f¦V_
00004AB0   5D 00 00 81 63 00 00 0C  00 11 00 6A 65 6E 6E 69   ]..üc......jenni
00004AC0   66 65 72 2E 6A 70 67 55  54 0D 00 07 58 60 C1 3F   fer.jpgUT...X`-?
00004AD0   00 AF C5 3F 7D 3E C6 3F  ED BB 65 54 5C 4D B7 2E   .»+?}>¦?_+eT\M+.


可以看到,在JPG文件尾 FF D9 后,存在这一个ZIP压缩包(50 4B 03 04)

不难看出,1.50版本的Steganography加密方式为:将被“隐藏的” 文件(“ jennifer.jpg”)压缩为ZIP文件,添加在原文件末尾。


正式版的加密:

正式版可以添加密码,在文件结尾加了16字节字符串用来校验密码

但经过测试,即使设置了密码,隐藏的数据也不会被加密,并且无需任何特殊的工具就可以提取出来,以下是在JPG中隐藏一个hiddenmessage.txt文档的示例:

00000090   00 00 00 FF DA 00 08 01  01 00 00 3F 00 AA 60 3F   ..._+......?.¬`?
000000A0   FF D9 50 4B 03 04 14 00  02 00 08 00 9C 41 23 30   _+PK..¶.....£A#0

000000B0   05 0B 24 E1 0A 00 00 00  0B 00 00 00 11 00 11 00   ..$ß............

000000C0   68 69 64 64 65 6E 6D 65  73 73 61 67 65 2E 74 78   hiddenmessage.tx

000000D0   74 55 54 0D 00 07 D8 BF  F6 3F A0 92 F6 3F D6 BF   tUT...++÷?áÆ÷?++

000000E0   F6 3F 2B C8 CF C9 CF 55  28 00 91 00 50 4B 01 02   ÷?++-+-U(.æ.PK..

000000F0   17 0B 14 00 02 00 08 00  9C 41 23 30 05 0B 24 E1   ..¶.....£A#0..$ß

00000100   0A 00 00 00 0B 00 00 00  11 00 09 00 00 00 00 00   ................

00000110   00 00 20 00 80 81 00 00  00 00 68 69 64 64 65 6E   .. .Çü....hidden

00000120   6D 65 73 73 61 67 65 2E  74 78 74 55 54 05 00 07   message.txtUT...

00000130   D8 BF F6 3F 50 4B 05 06  00 00 00 00 01 00 01 00   ++÷?PK..........

00000140   48 00 00 00 4A 00 00 00  00 00 48 49 5A 00 A8 00   H...J.....HIZ.¿.

00000150   00 00 64 34 31 64 38 63  64 39 38 66 30 30 62 32   ..d41d8cd98f00b2

00000160   30 34 00 00 03 00                                  04....          

以上是不使用密码进行加密的文件结尾


00000090   00 00 00 FF DA 00 08 01  01 00 00 3F 00 AA 60 3F   ..._+......?.¬`?
000000A0   FF D9 50 4B 03 04 14 00  02 00 08 00 9C 41 23 30   _+PK..¶.....£A#0

000000B0   05 0B 24 E1 0A 00 00 00  0B 00 00 00 11 00 11 00   ..$ß............

000000C0   68 69 64 64 65 6E 6D 65  73 73 61 67 65 2E 74 78   hiddenmessage.tx

000000D0   74 55 54 0D 00 07 D8 BF  F6 3F A0 92 F6 3F D6 BF   tUT...++÷?áÆ÷?++

000000E0   F6 3F 2B C8 CF C9 CF 55  28 00 91 00 50 4B 01 02   ÷?++-+-U(.æ.PK..

000000F0   17 0B 14 00 02 00 08 00  9C 41 23 30 05 0B 24 E1   ..¶.....£A#0..$ß

00000100   0A 00 00 00 0B 00 00 00  11 00 09 00 00 00 00 00   ................

00000110   00 00 20 00 80 81 00 00  00 00 68 69 64 64 65 6E   .. .Çü....hidden

00000120   6D 65 73 73 61 67 65 2E  74 78 74 55 54 05 00 07   message.txtUT...

00000130   D8 BF F6 3F 50 4B 05 06  00 00 00 00 01 00 01 00   ++÷?PK..........

00000140   48 00 00 00 4A 00 00 00  00 00 48 49 5A 00 A8 00   H...J.....HIZ.¿.

00000150   00 00 30 63 63 31 37 35  62 39 63 30 66 31 62 36   ..0cc175b9c0f1b6

00000160   61 38 00 00 03 00                                  a8....         

以上是使用密码'a'来进行加密的文件结尾


00000090   00 00 00 FF DA 00 08 01  01 00 00 3F 00 AA 60 3F   ..._+......?.¬`?
000000A0   FF D9 50 4B 03 04 14 00  02 00 08 00 9C 41 23 30   _+PK..¶.....£A#

0000000B0   05 0B 24 E1 0A 00 00 00  0B 00 00 00 11 00 11 00   ..$ß............

000000C0   68 69 64 64 65 6E 6D 65  73 73 61 67 65 2E 74 78   hiddenmessage.tx

000000D0   74 55 54 0D 00 07 D8 BF  F6 3F A0 92 F6 3F D6 BF   tUT...++÷?áÆ÷?++

000000E0   F6 3F 2B C8 CF C9 CF 55  28 00 91 00 50 4B 01 02   ÷?++-+-U(.æ.PK..

000000F0   17 0B 14 00 02 00 08 00  9C 41 23 30 05 0B 24 E1   ..¶.....£A#0..$ß

00000100   0A 00 00 00 0B 00 00 00  11 00 09 00 00 00 00 00   ................

00000110   00 00 20 00 80 81 00 00  00 00 68 69 64 64 65 6E   .. .Çü....hidden

00000120   6D 65 73 73 61 67 65 2E  74 78 74 55 54 05 00 07   message.txtUT...

00000130   D8 BF F6 3F 50 4B 05 06  00 00 00 00 01 00 01 00   ++÷?PK..........

00000140   48 00 00 00 4A 00 00 00  00 00 48 49 5A 00 A8 00   H...J.....HIZ.¿.

00000150   00 00 39 32 65 62 35 66  66 65 65 36 61 65 32 66   ..92eb5ffee6ae2f

00000160   65 63 00 00 03 00                                  ec....         


以上是使用密码'b'来进行加密的文件结尾


可以看到,无论使用何种密码,数据部分均相同,仅仅是末尾的一个字符串不同,表明密码与被隐藏的数据压缩包加密效果无关(仅仅是做了压缩)。

观察末尾字符串

使用""加密:d41d8cd98f00b204

MD5("")= d41d8cd98f00b204e9800998ecf8427e

使用'a'加密:0cc175b9c0f1b6a8

MD5('a')=0cc175b9c0f1b6a831c399e269772661

使用'b'加密:92eb5ffee6ae2fec

MD5('b')=92eb5ffee6ae2fec3ad71c777531578f


可以看到,末尾字符串为md5(密码)的前16位

1.60版本:

00000290   08 09 42 00 4A 52 30 00  D8 01 A0 3F FF D9 9E 97   ..B.JR0.Ø..?ÿÙ..
000002A0   BA 2A 00 80 88 C9 A3 70  97 5B A2 E4 99 B8 C1 78   º*...É£p.[¢ä.¸Áx

000002B0   72 0F 88 DD DC 34 2B 4E  7D 31 7F B5 E8 70 39 A8   r..ÝÜ4+N}1.µèp9¨

000002C0   B8 42 75 68 71 91 03 5F  A4 A4 E0 EA 43 9F AA 8E   ¸Buhq‘._¤¤àêC.ª.

000002D0   04 99 FA A5 EC 63 9F 23  79 7E 5D 91 33 43 3B C3   ..ú¥ìc.#y~]‘3C;Ã

000002E0   C1 C4 21 5F 71 5F DF C5  D9 1C C5 DE 83 6C 4D EC   ÁÄ!_q_ßÅÙ.ÅÞ.lMì

000002F0   D5 DC 45 A9 D7 C7 09 EE  15 21 53 28 0E 56 4A A9   ÕÜE©×Ç.î.!S(.VJ©

00000300   22 71 C1 03 3E D5 F0 EE  68 F5 4F DC 08 01 F3 61   "qÁ.>ÕðîhõOÜ..óa

00000310   34 41 E7 10 89 75 89 30  C0 49 7A CF C6 CB 11 B4   4Aç..u.0ÀIzÏÆË.´

00000320   F1 10 19 93 83 27 E2 8B  49 26 33 F3 76 8E A4 11   ñ....'â.I&3óv.¤.

00000330   D2 7D A6 17 96 F9 11 58  02 E2 4C A3 B5 32 33 32   Ò}¦..ù.X.âL£µ232

00000340   21 B1 1A A6 D9 FD 23 45  1F 87 13 3F 45 34 E0 8C   !±.¦Ùý#E...?E4à.

00000350   F1 E5 0D 35 A9 5C EB DD  F3 EC 32 5F DE 38 93 86   ñå.5©\ëÝóì2_Þ8..

00000360   8A D7 F8 5D EB B9 FC 1C  E0 68 D7 C2 91 68 B1 DC   .×ø]ë¹ü.àhבh±Ü

00000370   44 6C E2 DC 27 E1 A3 5B  71 29 8B 78 E5 04 D5 6E   DlâÜ'á£[q).xå.Õn

00000380   81 CF 34 BF 1F 5B E8 55  B1 C2 7F F3 62 F0 48 49   .Ï4¿.[èU±Â.óbðHI

00000390   5A 00 F0 00 00 00 38 6B  6B 39 3F 3D 6A 31 6B 38   Z.ð...8kk9?=j1k8

000003A0   6E 39 6A 3E 69 30 00 00  03 00                     n9j>i0....      

以上是使用密码'a'来进行加密的文件结尾,可以看到,1.60版本加密后已经看不到zip文件结构

让我们进一步研究16个带下划线的红色字节。我们记得在该软件的1.50版中,它是密码MD5的一半。对于密码'a',我们有:

v1.50:   30 63 63 31 37 35 62 39 63 30 66 31 62 36 61 38      0cc175b9c0f1b6a8

现在,使用相同的密码“ a”,我们有:

v1.60:   38 6B 6B 39 3F 3D 6A 31 6B 38 6E 39 6A 3E 69 30      8kk9?= j1k8n9j> i0


没有密码时,字符串为(v1.50):

v1.50:   64 34 31 64 38 63 64 39 38 66 30 30 62 32 30 34      d41d8cd98f00b204

没有密码时,字符串为(v1.60):

v1.60:   6C 3C 39 6C 30 6B 6C 31 30 6E 38 38 6A 3A 38 3C      l <9l0kl10n88j:8 <


稍加计算,可以看到1.60版本末尾密码可以由1.50版本末尾密码+8得到

image.png


一般的CTF题目特征:

 6C 3C 39 6C 30 6B 6C 31 30 6E 38 38 6A 3A 38 3C       l <9l0kl10n88j:8 <

由于密码没什么意义,因此大多数题目都不设置密码,通过文件结尾的“l<9l0kl10n88j:8<”字符串 ,明确需要使用的工具是Steganography即可。


变态的CTF题目特征:

部分题目仍然会设置密码,但是末尾字符串的格式是不会变的,取值范围在ascii('0123456789abcdef')+8中,如果已经在题目的先前步骤中,甚至可以反推末尾的密码校验字符串。

有些文件(如jpg)中很少出现连续(甚至长度达16+个)的可显字符,尤其是在文件结尾,因此文件末的连续字符串也可当作特征(jpg的隐写方法就那么几种F5、outguess等也不会出现这种情况)。


评论列表

Echol
Echol
3年前 (2021-03-19)

Steganography 是不是就是 Our secret 的汉化版?

Luz 回复:
原始的steganography应该也是个外国软件
3年前 (2021-03-22)

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。