# 隱寫術 :::danger 請愛惜共筆,勿進行惡意刪減 ::: [NISRA CTF](https://class.enlightened.nisra.net/) [Slide](https://slides.com/cha-cha/steganography/fullscreen) --- ## Intro * **Misc**ellaneous * 不讓非預期使用者得知詳細訊息 ## Feature - 安全性+隱蔽性+藏密量 - 色覺、聽閾 - 著重隱藏資料 - 強健性不足 - 被發現就GG ### Lab 0x0 - [Lab 0x0 那頁的link](https://slides.com/cha-cha/steganography/fullscreen#/1/3/5) ## Binary - 首見於萊布尼茲的著作 ~~辣個跟牛頓一起搞出微積分的藍人~~ - 十進位:{0, 1, 2, 3, 4, 5, 6, 7, 8, 9} 二進位:{0, 1} ## Operators - NOT `'` - 0' = 1 - 1' = 0 - AND `·` - 1 · 1 = 1 - 0 · 0 = 0 · 1 = 1 · 0 = 0 - OR `+` - 1 + 1 = 0 + 1 = 1 + 0 = 1 - 0 + 0 = 0 - [Decimal to Binary Converter](https://www.binaryhexconverter.com/decimal-to-binary-converter) - Q&A - 用 `'` 而不用 `!` 表示 not 用 `·` 而不用 `&` 表示 and 用 `+` 而不用 `|` 表示 or 真的好嗎 [name=1143 Koios] - and or not 的表示方法在各個領域上不盡相同,沒有好壞之分喔 [name=Mask] ## Hexadecimal - { 0, 1, ..., 8, 9, A, B, C, D, E, F } - (1443)~10~ = (5A3)~16~ = 0x5A3 ## ASCII **A**merican **S**tandard **C**ode for **I**nformation **I**nterchange - 電腦常用編碼系統 - 128個字元 - "A" = 65 = 0x41 - "a" = 97 = 0x61 - "0" = 48 = 0x30 ## Pixel * **Pix**(picture) + **El**ement * ~~向量圖~~?點陣圖! * RGB (+ Alpha) * [Gigapixel](https://www.jeffrey-martin.com/paris-360-gigapixel-2019) ### RGB - **R**ed, **G**reen, **B**lue - 每一個 pixel 的 RGB 各佔 3 bytes x 3 ~(RGB三個顏色)~ - 3 bytes = 3 x 8 bits (0~255) > 電競七彩霓虹燈(X > [name=safe98.otis] > 東西加了 RGB 價格直接乘與7 > [name=houpig1] > RGB高清色彩顯示器(x > [name=forensic7306] > 害我仔細看了 XD > [name=winnie5062611] ## Header - 檔頭 - 用來確保檔案格式 - 詳細資訊 - 每種檔案都有 - 常以 Hex 表示 - E.g. - [List of Fiile Signatures](https://en.wikipedia.org/wiki/List_of_file_signatures) - pdf - `25 50 44 46 2D` - png - `89 50 4E 47 0D 0A 1A 0A` - Q&A - 有可能副檔名對不起來 magic number 嗎 [name=winnie5062611] - 有哦~ [name=LAVI] ## 好用的工具們 > **WinHex** 和 **010Editor** 選一個下載就好囉~ ### WinHex - **免費**的十六進位編輯器 - 數位鑑識、資料修復... - [WinHex Download](https://x-ways.net/winhex/) > IE:解除封鎖拉~!! > [name=houpig1] > chrome用無痕就可以下載了 > [name=勁廷 郭] > 湮滅證據(X > [name=safe98.otis] > IE:你為甚麼要騙我QQ > [name=houpig1] ### 010 Editor - Text Editor + Hex Editor - 層次分明的架構 > 眼睛不脫窗好棒棒 > [name=LAVI] - 五彩繽紛 - **要錢**(解除安裝還要重開機QQ) - 試用版~ - [Download](https://www.sweetscape.com/010editor/) ### Lab 0x1 (5 min) - 是個打不開的檔案 - 起手式:丟到工具裡瞧瞧 :eyes: - png file but with jpg header?! - `FF DB FF DB` -> `89 50 4E 47 0D 0A 1A 0A` - 把它改回 png file header - Q&A - 為什麼header不一樣,檔案副檔名.jpg 改成 .png 還是可以打開 [name=hjom7356731] - 圖片檢視器在開啟一張照片時根據底層實作的不同,可能會看副檔名,也可能直接用header作判斷。 因此單純修改副檔名還是有可能打得開,希望有解答到您的問題。 [name=Mask] ### PNG IHDR - [Chunk Specification](http://www.libpng.org/pub/png/spec/1.2/PNG-Chunks.html) - Header chunk - 第一且唯一 - 13 bytes - 寬、高、深、顏色 - ![](https://i.imgur.com/byiqMdT.png) ## Binwalk - 快速、簡單的分析檔案資料與結構 - 逆向工程 - 提取韌體資訊 - [binwalk download](https://github.com/ReFirmLabs/binwalk) - `python setup.py install` - `python src\scripts\binwalk <option> <file>` :::info 安裝 debug 區 > - no such file:檢查路徑 > - error:檢查環境變數 or 以系統管理員啟動 cmd > - Linux 的 binwalk 在套件管理員就可以下載了,裝完終端打開就能直接用了 > - VSCode裡面的是插件,非 Python 本身,請去[官網](https://www.python.org/)下載 ::: ### Lab 0x1 cont. - `python src\scripts\binwalk -e <file>` - `python src\scripts\binwalk -D=".*" -C="<folder>" <file>` - 輸入解壓縮密碼後就看的到 Flag 囉~ ## Exif - **Ex**changeable **i**mage **f**ile **f**ormat - 專門為數位相機設計 - 屬性資訊 - 拍攝資料 - 右鍵 -> 內容 ### Lab 0x2 - 太簡單ㄌ - 右鍵內容就可以看到ㄌ ## ~開始用神器搞事~ ### StegSolve - http://www.caesum.com/handbook/Stegsolve.jar - 雙擊~~666~~ or `java -jar Stegsolve.jar` - 圖片隱寫解題神器 - [Online Tool](https://stegonline.georgeom.net/upload) ### Steregoram - [Magic Eye](https://magiceye.ecksdee.co.uk/) - 立體視覺圖 - 2D 圖創造出 3D 效果 ### Lab 0x3 - 看得出 Flag 嗎?? > 你是傳說中ㄉ 3D Eye ㄇ :::spoiler Ans Analyse -> Stegeogram Solver 將圖片的 Pixel 整行移動 ::: ### Frame Browser - 觀察動圖 - 分析每幀的畫面 - [GIF](https://zh.wikipedia.org/wiki/GIF) ### Lab 0x4 - 似乎有一個一閃而過的 Flag ? > Vivy 好讚🚀🚀🚀🚀🚀 :::spoiler Ans File -> Open -> Analyse -> Frame Browser 方向鍵 or 滑鼠左鍵點擊 ::: > 拚手速擷圖可以簡化很多(X > [name=houpig1] > 開手機相機的連拍功能 > [name=yang.yukiko] ### Image Combiner - 合併兩張圖 - XOR, AND, SUB, MUL... ### Lab 0x5 - 給你滿滿ㄉ~~大平台~~喵喵們![](https://i.imgur.com/2BMvnA8.jpg) :::spoiler Ans File → Open → 打開原圖喵喵 → Analyse → Image Combiner → Lab喵喵 → 方向鍵 or 左鍵點擊 ::: ### LSB - **L**east **S**ignificant **B**it - $2^8 * 2^8 * 2^8 = 16,777,216$ 種顏色 - 人眼無法察覺細微變化 - 權重 ↓ - 影響 ↓ - [LSB & 演算法](http://ir.lib.pccu.edu.tw/retrieve/47927/129-3gsweb.pdf) ### Lab 0x6 (2 min) ![](https://i.imgur.com/R2UwsNh.png =180x100) :::spoiler Ans File -> Open -> 方向鍵 or 左鍵看個通道 ::: ### Data Extract - 按照特定方式、順序提取圖片資訊 - [Bit Plane](https://en.wikipedia.org/wiki/Bit_plane) - ![](https://i.imgur.com/wMIo8Sa.png) ### Lab 0x7 - 假的 都是假的 - ![](https://i.imgur.com/wW2OqA3.png =325x300) :::spoiler Ans File → Open → Analyse → Data Extract ::: ![](https://i.imgur.com/GJBY9s5.png) ###### tags: `Enlightened` `NISRA` `2021` <style> .navbar-brand::after { content: " × NISRA"; } </style>