CTF

Forensic&Stego

CRYPTOLOGY

by watermelon

who am i?

西瓜

  • 建電副社+學術
  • 揪寒訓
  • ​APCS忘記帶身分證的傻逼
  • ​I人 不敢跟你打招呼一定是因為我社恐
  • 什麼都學 啥都學不好
  • 夜貓子
  • :suicide:
  • 貓戰/LOL 玩家

推個研究大攝影

Index

intro

Problems

Practice

這頁真是做的可有可無

這句也是

這句也是

這句也是

這句也是

這句也是

這句也是

這句也是

intro

{forensic&Stego}

  • forensic:鑑識案件調查的數位鑑識

    • 修復文件

    • 分析封包

    • 找到隱藏在檔案裡的東西

  • Stego:隱寫Steganography

    • 資料根據某規律拆成多個片段,再用大量無效資料隱藏被有效資料
    • 常見:圖片隱寫、文件隱寫、影片隱寫..... 
  • 有時候會被丟到MISC
  • 心智圖

{forensic&Stego}

  • forensic:鑑識案件調查的數位鑑識

    • 修復文件

    • 分析封包

    • 找到隱藏在檔案裡的東西

  • Stego:隱寫Steganography

    • 資料根據某規律拆成多個片段,再用大量無效資料隱藏被有效資料
    • 常見:圖片隱寫、文件隱寫、影片隱寫..... 
  • 有時候會被丟到MISC
  • 心智圖

{forensic&Stego}

  • 經常用到的能力

  • python
  • Hex
    • ​文件格式
    • 檔案/封包資訊
  • 工具使用
    • ​binwalk
    • stegsolve
    • command line
    • ...

{文件類}

{​檔案格式}

{​文件標頭}

  • 查看方法<linux>

  • command line:
    • file

{​文件標頭}

  • 查看方法<linux>

  • command line:
    • hexdump

{​文件標頭}

  • 查看方法<linux>

  • command line:
    • hexyl(需apt install hexyl)

{​文件標頭}

  • 查看方法<linux>

  • command line:
    • strings

{​文件標頭}

  • 查看方法

  • HexEd.it
    • 免費線上工具
  • 010editor WinHex
    • 要錢 試用版

{​文件標頭}

檔案類型 檔案開頭 檔案結尾
.jpg(JPEG圖片) FFD8FF FFD9
.png(PNG圖片) 89054E47 AE426082
.zip(壓縮檔) 504B0304 504B
.gif(動圖) 47494638或GIF89A 003B
.pdf(PDF) 255044462D312E 不一定

可以檢查有有沒有後面藏檔案或者套娃

  • 一群(能成為A資料的資訊)的資料

    • 在這邊是指文件的資料
      • 作者 建立年份 修改年份 等等
    • tool
      • windows:內容>詳細資料
  • 一群(能成為A資料的資訊)的資料

    • 在這邊是指文件的資料
      • 作者 建立年份 修改年份 等等
    • tool
      • linux:exiftool
      • 用法:exiftool file

{​文件分離}

  • 有些文件格式有結尾符號 讀完就不會繼續讀

    • ​在後面再塞一個文件
  • ​文件有內嵌格式

    • ​例:.zip(有"PK") .tar (壓縮檔) .iso (映像檔)

{​文件分離}

  • 分離​​​工具:binwalk(完整進階用法)<linux>

    • ​kali內建
    • ​分析:binwalk file
    • 分離:binwalk -e file (-e 或者 --extract)
    • 遞迴式分離:binwalk -Me file
    • 限制深度(預設為8)binwalk -Me -d 5 file (也可以用 --depth=5)

{​文件分離}

  • 分離​​工具:foremost

    • ​據說比較好用 我沒用過 有些kali版本沒有sudo apt install foremost

    • foremost file -o output_dir

{​文件分離}

  • 分離​​​工具:dd (data duplicator)

    • ​低階(基礎、靠近硬碟)的資料處理工具 用爛容易整個硬碟爛掉 戲稱 data destroyer

    • 參數

    • if=輸入檔案 of=輸出檔案

      • bs="塊"大小(每次讀入的size(例:1(1byte) 1M ...))

      • 可選:count=讀幾次bs大小 skip=先跳過幾次bs大小

    • 可以配合binwalk來找出skip是多少

{​文件分離}

  • 分離​​​工具:dd (data duplicator)

    • ​dd if=input of=output bs=10 skip=100

input(不按比例)

跳過10bs*100個 = 1000 byte

output

{​文件分離}

  • 分離​​​工具:dd (data duplicator)

    • ​dd if=input of=output bs=1M skip=100 count=60

input(不按比例)

跳過1M*100個 = 100Mb

output

讀入1M*60次=60Mb

{​文件分離}

  • 分離​​​工具:winhex

    • windows下使用

{​文件合併}

  • command<linux>

    • cat

    • 通常是用來讀取=>輸出(多個)檔案

      • ​cat file1 file2

    • ​指定輸出流到另一個檔案=合併檔案

      • ​cat file1 file2 > combined_file

{​文件合併}

  • command<linux>

    • cat

    • 通常是用來讀取=>輸出(多個)檔案

      • ​cat file1 file2

    • ​指定輸出流到另一個檔案=合併檔案

      • ​cat file1 file2 > combined_file

{圖片類}

{​stegsolve}

  • 強大的圖片分析工具

  • 基於java
  • 有GUI(圖形使用者介面)
  • 功能:
    • ​圖檔資訊
    • 解析圖片疊合
    • 圖檔處理
    • 單幀播放

{​stegsolve}

  • 安裝

 

 

 

 

  • 使用
cd ~/Desktop
wget http://www.caesum.com/handbook/Stegsolve.jar -O stegsolve.jar
chmod +x stegsolve.jar
mkdir stegsolve
mv stegsolve.jar stegsolve/
java -jar ~/Desktop/stegsolve/stegsolve.jar

{​stegsolve}

  • 這樣就成功了

  •  

{​stegsolve}

  • 左右方向鍵 不同顯示模式

原圖

反相(XOR)

紅色通道(紅的程度)

{​stegsolve}

  • 功能

  • File Format:
    • 檔案資訊
    • 顯示資料在不同格式下的內容
      • ​ex: ascii hex...

{​stegsolve}

  • 功能

  • File Format :
    • 檔案資訊
    • 顯示資料在不同格式下的內容
      • ​ex: ascii hex...

{​stegsolve}

  • 功能

  • File Format:
    • 檔案資訊
    • 顯示資料在不同格式下的內容
      • ​ex: ascii hex...

{​stegsolve}

  • 功能

  • Data Extract:
    • 分析最低有效位數(等等解釋)

{​stegsolve}

  • 功能

  • Stereogram Solver:
    • 立體視覺圖(Stereogram)某種3d圖像
    • 左右鍵調整offset

下載來自己試試看

{​stegsolve}

  • 功能

  • Stereogram Solver:
    • 立體視覺圖(Stereogram)
    • 左右鍵調整offset

{​stegsolve}

  • 功能

  • Frame Browser:
    • 動圖逐幀解析(gif)

{​stegsolve}

  • 功能

  • Image Combiner
    • 拿兩張圖片去做疊合
    • 有不同演算法
      • ​ex: XOR AND OR

{​LSB}

  • 老傻逼

  • ​​最低有效位(Least Significant Bit)
  • 每一格像素 都有RGB
    • ​每一個RGB值都是兩個hex(0~16²-1)
    • 轉成binary 最小的兩位(0~2²-1) if有變化肉眼難以察覺
    • 可以用每一個像素的最低有效位來儲存訊息
    • 有時候有"A" 表示"透明度"
  • ​工具:
    • stegsolve>data extract
    • zsteg file -a
  • ​一定適用於.png 但是.jpg可能有被壓縮的問題

{​LSB}

  • 老傻逼

  • ​​最低有效位(Least Significant Bit)

#00ff37

  • R:
    • 0x00
    • 0b00000000
  • G:
    • 0xff
    • 0b11111111
  • B:
    • 0x37
    • 0b00110111

#03fd35

  • R:
    • 0x03
    • 0b00000011
  • G:
    • 0xfd
    • 0b11111101
  • B:
    • 0x35
    • 0b00110101

{​LSB-stegslove}

bit位數

行/列

從選取的最高最低開始

只有選一位=>沒差

通道與hex順序

預覽

{​LSB-zsteg}

  • 要自己下載:gem install zsteg

  • jpg不可用(會報錯)
  • 使用方法: zsteg filename -a 

{壓縮檔}

{​偽加密}

  • zip檔案加密與否根據zip{hex目錄{檔案標頭}}

    • ​藉由修改檔header file(hex)假裝有加密/假裝沒有加密
  • ​zip顯示沒有密碼卻沒有辦法加密 / 顯示有密碼but無從取得
  • 用hex editor開啟zip檔案(推hexed.it)

{​偽加密}

  • 尋找504B0102(.zip的file header)(hex)

  • hexEd.it的搜尋是從鼠標位置
    一路搜尋到最後 所以如果鼠標
    放在文件太後面找不到

0x不一定要加

找到惹

{​偽加密}

  • 找到從50算第一個往後數第9、10個

  • 兩個hex算一組(原理是ascii)
  • 要設定成沒有密碼就把他都改成 "00 00"

找到惹

{​偽加密}

  • 找到從50算第一個往後數第9、10個

  • 兩個hex算一組(原理是ascii)
  • 要設定成沒有密碼就把他都改成 "00 00"

找到惹

也可以從"0000" 改成"0900"假裝自己有密碼

{​壓縮檔爆破}

  • ARCHPR(advance archive password recovery)

  • 用於暴力破解
  • 支援mask(遮罩/掩碼)
    • 規定密碼格式
    • 比如知道開頭是abc
      然後後面是三個數字
      • ​mask:abc???
    • ​效率up
  • ​要錢 洗試用版

{​壓縮檔爆破}

單純暴力破解需要14秒多

{​壓縮檔爆破}

若知道部分資訊 加入Mask 速度快了要10倍

{題單}

CTF-Forensic&Stego

By idoit_melon

CTF-Forensic&Stego

  • 186