我們曾經使用過 WireShark 來截取封包,可以看到旗幟(Flag)、網路位址(IPv4)以及網路協議(Protocol),但是從來沒有介紹過版面右下角的 Hex Value 究竟是什麼?怎麼看?
我們也曾經提到過 Windows Packet Sender 可以傳送不同網路協議的封包,測試 Windows 和 Kali Linux 之間能不能互相溝通。但我們只知道 ASCII 可以輸入英文內容,而下方 Hex 欄位就會產生對應的編碼。
今天就來帶大家了解,什麼是「Hex Value」。
十六進制(Hexadecimal)的縮寫就是 Hex,編碼能呈現的字元只有「0~9」和英文字母「A~F」。最常看到的範例就是「Hex 色碼」,比如:紅色(#FF0000)、黑色(#000000)、白色(#FFFFFF)等等。
在硬體世界中,伺服器記憶體位址也常用 Hex 來表示。廠商或 BIOS/Firmware 會有一個 Mapping Table 來映射動態隨機存取記憶體(DRAM)的物理位置(Physical Address)。
以及現今金融流行的投資工具「加密貨幣」也常使用到 Hex 編碼,例如:乙太坊(Ethereum)的錢包地址可能會像這樣 0x742d35Cc6634C0532925a3b844Bc454e4438f44e
。是一個 20 Bytes(40 Hex 字元)的編碼,前面的 0x
只是前綴。
檔案格式 | 開頭 Hex Value(前幾位元組) | ASCII 對應 |
---|---|---|
25 50 44 46 2D |
%PDF- |
|
PNG | 89 50 4E 47 0D 0A 1A 0A |
.PNG.... |
JPEG / JPG | FF D8 FF |
— |
GIF | 47 49 46 38 37 61 / 47 49 46 38 39 61 |
GIF87a / GIF89a |
DOCX / PPTX / XLSX | 50 4B 03 04 / 50 4B 05 06 |
PK.. |
MP3 | 49 44 33 |
ID3 |
WAV | 52 49 46 46 ... 57 41 56 45 |
RIFF....WAVE |
MP4 / MOV | 00 00 00 ?? 66 74 79 70 |
....ftyp |
EXE | 4D 5A |
MZ |
7z | 37 7A BC AF 27 1C |
— |
RAR (v4) | 52 61 72 21 1A 07 00 |
Rar!... |
RAR (v5) | 52 61 72 21 1A 07 01 00 |
Rar!.... |
我們知道從 WireShark 截取到的封包大多是以 Hex Value 表現,當今天我們從網路上下載或是上傳檔案的時候,也會有封包傳遞的過程。那我們要怎麼知道我們上傳了什麼東西?以及這個檔案的內容、格式是否正確?就需要依靠 Hex Value 來判斷。
在滲透測試的領域中,可以透過這種方式將截取的封包內容解密,透過觀察 Hex Value 就能夠抓取到封包內的 Application Data 裡是不是有包含檔案。也就是我們俗稱的「攔截資料」。
要觀察 Hex Value 除了能看到內容之外,我們也需要有一個好用的編輯器才可以將封包內夾帶的檔案給截取下來,這邊跟大家介紹一個新的工具「HxD Editor」。
你可以到 HxD 官方網站 下載及安裝,支援繁體中文,目前最新的版本為 v2.5,發布的時間為 2021/02/11,由 VincentLu@TW
協助翻譯。
了解 Hex 不只是為了好奇,它實際上是滲透測試、數位鑑識、甚至逆向工程的基礎。對駭客與資安分析師來說,能看懂 Hex,就代表能直接「閱讀」電腦世界的語言。
所以學會閱讀 Hex Value 對自己也是很有幫助的哦!
WLLO 的鐵人賽文章
Atlassian HxD 介紹
五倍學院的 Hex 色碼介紹