zip知識點的部分總結!

前言:寫這篇博客很猶豫,畢竟是自學可能有很多錯誤的地方,望大佬指點!
目錄
0×01.zip文件格式及僞加密

0×02.暴力破解

0×03.明文攻擊

0×04.CRC爆破

0×01.zip文件格式及僞加密

在這裏插入圖片描述
這就是一個zip文件的格式。

壓縮源文件數據區:
50 4B 03 04:這是頭文件標記(0x04034b50) 
14 00:解壓文件所需 pkware 版本 
00 00:全局方式位標記(有無加密) 
08 00:壓縮方式 
20 9E:最後修改文件時間 
66 4F:最後修改文件日期 
F2 1B 0F 4A:CRC-32校驗(4A0F1BF2)
0E 00 00 00:壓縮後尺寸 
0C 00 00 00:未壓縮尺寸
08 00:文件名長度 
00 00:擴展記錄長度 
66 6C 61 67 2E 74 78 74: 文件名(不定長)
4B CB 49 4C AF 36 34 32 36 31 35 AB 05 00: 文件flag.txt壓縮後的數據

壓縮源文件目錄區:
50 4B 01 02:目錄中文件文件頭標記(0x02014b50) 
1F 00:壓縮使用的 pkware 版本
14 00:解壓文件所需 pkware 版本 
00 00:全局方式位標記(有無加密,這個更改這裏進行僞加密,改爲09 00打開就會提示有密碼了)
08 00:壓縮方式
20 9E:最後修改文件時間
66 4F:最後修改文件日期 
F2 1B 0F 4A:CRC-32校驗(4A0F1BF2)
0E 00 00 00:壓縮後尺寸 
0C 00 00 00:未壓縮尺寸 
08 00:文件名長度 
24 00:擴展字段長度 
00 00:文件註釋長度
00 00:磁盤開始號
00 00:內部文件屬性 
20 00 00 00:外部文件屬性 
00 00 00 00:局部頭部偏移量 
50 4B 05 06:目錄結束標記
00 00:當前磁盤編號 
00 00:目錄區開始磁盤編號
01 00:本磁盤上紀錄總數
01 00:目錄區中紀錄總數 
5A 00 00 00:目錄區尺寸大小 
34 00 00 00:目錄區對第一張磁盤的偏移量
00 00 :ZIP 文件註釋長度

僞加密:
第一行的七八位,00 00是沒有加密。(從這裏可以判斷出是否爲僞加密)
第四行的十三,十四位00 00:全局方式位標記,有無加密,這個更改這裏進行僞加密,改爲09 00打開就會提示有密碼了,這樣就達到了zip僞加密的目的,可是這裏又有一個疑問了,你可能會問,爲什麼改成09,而不是其他的數字呢,其實改成09只是舉的一個例子,只要末位是奇數,就代表加密,反之,末位是偶數代表未加密,具體什麼原理,可以去官網看一下。

那麼,如何辨別當前的zip是真的加密還是僞加密?

無加密
壓縮源文件數據區的全局加密應當爲00 00 (504B0304兩個bytes之後)
且壓縮源文件目錄區的全局方式位標記應當爲00 00(504B0304四個bytes之後)

假加密
壓縮源文件數據區的全局加密應當爲00 00
且壓縮源文件目錄區的全局方式位標記應當爲09 00

真加密
壓縮源文件數據區的全局加密應當爲09 00
且壓縮源文件目錄區的全局方式位標記應當爲09 00

哦,對了。kail貌似可以直接打開僞加密的文件。

知道了原理就可以解決問題了,如果是僞加密可以修改回來;但是要是真加密吶!咱們往下看。

0×02.暴力破解

說到暴力破解就要說到另外兩個方法了。

  1. 爆破:顧名思義,逐個嘗試選定集合中可以組成的所有密碼,知道遇到正確密碼(密碼短的還好說,密碼長的話可能一年半個月也破解不出來)

  2. 字典:字典攻擊的效率比爆破稍高,因爲字典中存儲了常用的密碼,因此就避免了爆破時把時間浪費在臉滾鍵盤類的密碼上

  3. 掩碼攻擊:如果已知密碼的某幾位,如已知6位密碼的第3位是a,那麼可以構造 ??a??? 進行掩碼攻擊,掩碼攻擊的原理相當於構造了第3位爲a的字典,因此掩碼攻擊的效率也比爆破高出不少

暴力破解也可在kail裏進行,軟件爲kali自帶的fcrackzip
使用步驟

fcrackzip -help
在這裏插入圖片描述
找到 上傳壓縮包所在文件目錄,在此目錄下進行操作
在這裏插入圖片描述
fcrackzip -b -c1 -l 1-4 -u 壓縮文件 -v

在這裏插入圖片描述
對於以上方法,當然推薦一款神器AZPR
爆破!
在這裏插入圖片描述
字典(合適的字典可以達到事半功倍的效果)!
在這裏插入圖片描述

掩碼攻擊!
在這裏插入圖片描述
0×03.明文攻擊

原理:明文攻擊(Known plaintext attack)是一種攻擊模式,指攻擊者已知明文、密文及算法,求密鑰的過程。
同一個zip壓縮包裏的所有文件都是使用同一個加密密鑰來加密的,所以可以用已知文件來找加密密鑰,利用密鑰來解鎖其他加密文件。

在網上找到一個例題,鏈接:這裏
1解壓這個zip文件,會得到flag.zip和tips.txt.提示“密碼是十位大小寫字母、數字、特殊符號組成的,你爆破的開麼?!”
這就尷尬了,想暴力破解?不可能!!!

不多說拉進winhex分析一波。
在這裏插入圖片描述
很明顯 明文攻擊 !

將明文tips.txt進行壓縮,判斷明文壓縮後的CRC32是否與加密文件中的一致,若不一致可以換一個壓縮工具。
在這裏插入圖片描述
在這裏插入圖片描述
上工具AZPR!
在這裏插入圖片描述
emmmmm 密碼出來了。

0×04.CRC32爆破
原理:它的全稱是循環冗餘校驗(Cyclic Redundancy Check, CRC),用來校驗文件是否出錯但並不能用於自動糾錯。CRC32則表示會產生一個32bit(8位十六進制數)的校驗值。
在這裏插入圖片描述
注意:限於CPU的能力,CRC碰撞只能用於壓縮文件較小的情況.
神器:CEC32
使用方法:

python crc32.py reverse 你的crc32密文

具體的我也解釋不清。
大佬文章

持續更新!!!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章