iT邦幫忙

2025 iThome 鐵人賽

DAY 2
0

binwalk是啥?
簡單來說,binwalk 是一個超強的檔案分析和提取工具。它可以掃描任何檔案,找出裡面是不是藏了「其他的檔案」。

最常見的情境,就是在一張看似正常的圖片、一個音檔,甚至是一個韌體檔案裡,揪出被偷偷塞進去的壓縮檔、腳本或其他任何東西。

先來講講 binwalk 的原理


你有沒有想過,為什麼電腦能分辨 .jpg 跟 .png?明明副檔名可以隨便改。

檔案簽名 (Magic Bytes)

幾乎所有檔案格式的開頭,都有一小段固定的、獨一無二的 bytes,就像是檔案的身分證。

  • JPEG 圖片:開頭總是 FF D8 FF E0
  • PNG 圖片:開頭總是 89 50 4E 47
  • ZIP 壓縮檔:開頭總是 50 4B 03 04


binwalk 做的事情,就是拿著一本「檔案簽名大全」,去地毯式掃描你給它的檔案。從檔案的第 0 個 byte 開始,一個一個比對。

掃描過程大概是這樣:

  1. 讀取檔案:把目標檔案(例如:challenge.jpg)當成一長串的 010101。
  2. 比對簽名:從頭開始檢查,「欸?這裡的 byte 特徵符合 JPG 喔!」→ 記錄下來。
  3. 繼續掃描:「欸?掃到中間,這裡的 byte 特徵竟然是 ZIP 壓縮檔!」→ 再次記錄下來。
  4. 產出報告:告訴你它在檔案的哪個位置(offset)發現了什麼類型的檔案。

    肉眼看起來:
一張可愛的貓貓圖.jpg


binwalk 眼中看到的:

[JPEG 圖片的資料]...[ZIP 壓縮檔的資料]...[可能還有別的鬼東西]

為什麼需要 binwalk?


因為在 CTF裡,把 flag 藏在另一個檔案裡,是「雜項 (Misc)」或「鑑識 (Forensics)」題目的基本套路。如果沒有工具,光用肉眼或 Hex 編輯器慢慢看,你會找到天荒地老。

binwalk 可以幫你節省超多時間。




功能強大:除了基本的簽名掃描,它還能做 Entropy 分析(用來找加密或壓縮過的區塊),甚至遞迴掃描(解壓縮後再繼續掃)。
一鍵提取:最強大的功能是,它不只幫你「找到」,還能幫你「拿出來」。一個 -e 參數,自動把藏起來的檔案解壓縮並存到資料夾裡。
社群廣泛,外掛齊全:幾乎所有你想得到的檔案格式,它都認得。
算是基本中的基本工具

實戰一下


假設你今天在比賽中拿到一個檔案 mystery.png,檔案大小有點可疑,不像一張單純的圖片。

直接上 binwalk

$ binwalk mystery.png


你可能會看到類似這樣的輸出:

DECIMAL       HEXADECIMAL     DESCRIPTION
--------------------------------------------------------------------------------
0             0x0             PNG image, 1024 x 768, 8-bit/color RGB, non-interlaced
4824          0x12D8          Zip archive data, at least v2.0 to extract, compressed size: 12345, uncompressed size: 54321, name: secret/
...


報告清楚地告訴你,在 4824 的位置,藏了一個 Zip 壓縮檔!

接下來,使用 -e 參數自動提取:

$ binwalk -e mystery.png


binwalk 會建立一個叫做 _mystery.png.extracted 的資料夾,裡面就靜靜地躺著它挖出來的 secret/ 資料夾,而你的 flag 很可能就在裡面!


好啦,今天的 binwalk 就介紹到這。

大家明天見 wink wink


上一篇
Day 1|Stegburp:暴力破解 stegsnow
下一篇
Day 3|Burp Suite:web的基礎小工具
系列文
?工具解?哪來的工具?一天一個ctf小工具!!!3
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言