Loading

Misc之图片隐写

Misc之图片隐写

根据涅普计划-ctf入门课做的笔记

视频b站地址:https://www.bilibili.com/video/BV1VA411u7Tg?p=2

Misc介绍

主要类型:

  1. 数据编码/图形密码
  2. 图片隐写
  3. 音频&视频隐写
  4. 流量分析
  5. 内存取证
  6. 游戏隐写

Misc必备知识

010editor介绍image-20210204235812561

image-20210205000253812

alt+4打开/隐藏模板

右下角OVR/INS覆盖或插入

图片十六进制文件头+文件模板

文件名 文件头 文件尾
JPEG (jpg) FFD8FF FFD9
PNG (png) 89504E47 AE426082
GIF (gif) 47494638 003B
ZIP Archive (zip) 504B0304 50 4B
TIFF (tif) 49492A00
Windows Bitmap (bmp) 424D
CAD (dwg) 41433130
Adobe Photoshop (psd) 38425053
Rich Text Format (rtf) 7B5C727466
XML (xml) 3C3F786D6C
HTML (html) 68746D6C3E
Email [thorough only] (eml) 44656C69766572792D646174653A
Outlook Express (dbx) CFAD12FEC5FD746F
Outlook (pst) 2142444E
MS Word/Excel (xls.or.doc) D0CF11E0
MS Access (mdb) 5374616E64617264204A
WordPerfect (wpd) FF575043
Adobe Acrobat (pdf) 255044462D312E
Quicken (qdf) AC9EBD8F
Windows Password (pwl) E3828596
RAR Archive (rar) 52617221
Wave (wav) 57415645
AVI (avi) 41564920
Real Audio (ram) 2E7261FD
Real Media (rm) 2E524D46
MPEG (mpg) 000001BA
MPEG (mpg) 000001B3
Quicktime (mov) 6D6F6F76
Windows Media (asf) 3026B2758E66CF11
MIDI (mid) 4D546864

图片隐写分类

  1. 右击属性

    image-20210206161429820

  2. 文件十六进制末尾藏有字符串

    jpg文件尾FFD9后加

    image-20210206161944668

    Misc之图片隐写image-20210206162058670

    kali命令:
    strings 查找可打印字符
    grep grep -a ""使用正则表达式搜索,并输出匹配的行
    file 识别文件类型
  3. 文件包含

    binwalk分离文件:

    binwalk file

    binwalk -e file

    Misc之图片隐写image-20210207192606773

    foremost提取文件:

    foremost file

    Misc之图片隐写image-20210207194256411

    dd:在包含多个文件时,使用dd分出想要获得的文件

    Misc之图片隐写image-20210207194727703

    010editor也可

  4. 修改文件头:(黑心老板删掉文件头,致不能使用文件)

  5. GIF

    1. 特殊帧(ps/stegsolve)

    2. 帧的时间间隔

      通过时间间隔,可能是密码

  6. png(bmp)

    • zlib(010/pngcheck)

      IDAT后zlib加密

      image-20210208224152527

      import zlib
      s = '''
      78 9C 4B CB 49 4C AF 4E 4B 36 32 4D 4E 4A 32 4F
      B2 30 B5 34 B5 4C 4B 35 30 36 37 B6 30 32 31 4C
      B4 34 4B 4A 33 32 4E A9 05 00 E9 E2 0B 5F D0 1C
      68
      '''
      s = s.replace(' ','').replace('\n','')
      b = bytes.fromhex(s)
      flag = zlib.decompress(b)
      print(flag)
      

      image-20210208224226983

      kali中使用binwalk也可发现zlib加密

      binwalk -e 直接生成

      image-20210208224455983

    • IHDR、IDAT

      image-20210208221618599

      一般来说修改height,修改width会导致图片花掉

      可通过CRC-32校验和观察是否修改过

      脚本爆破

      import os
      import binascii
      import struct
      misc = open("IHDR.png","rb").read()
      #print(misc[0x0c:0x0f+1])
      # 爆破高
      
      crc32_bytes = misc[0x1d:0x20+1]# 读出bytes
      crc32_hex_eval = eval('0x' + crc32_bytes.hex())#bytes串 -> hex串  ->  值
      print(crc32_hex_eval)
      for i in range(4096):
          data = misc[0x0c:0x0f+1] + misc[0x10:0x13+1] + struct.pack('>i',i)+ misc[0x18:0x1c+1]  #IHDR数据
          crc32 = binascii.crc32(data) & 0xffffffff
          if crc32 == crc32_hex_eval : #IHDR块的crc32值
              print(i)
              print("height_hex:"+ hex(i))
      
      

      image-20210208222415589

    • lsb隐写/lsb加密(zsteg/stegsolve)

      stegsolve的使用方法:https://www.cnblogs.com/cat47/p/11483478.htmlimage-20210208225800500

      通道不同,图片上方不同,可能存在lsb隐写

      image-20210208225300907image-20210208225905161可以发现存在一张png,Save Bin

      kali内安装zsteg

      zsteg xxx.png

      image-20210208231019724

      zsteg -a xxx.png

      zsteg -e 通道 xxx.png -> xxxx.png

      lsb加密要用到lsb.py好像是python2的文件在python3环境里运行不了

    • wbsStego4.3open(bmp)

      decode/encode

  7. 双图隐写

  8. stegpy

  9. silenteye

posted @ 2021-02-08 23:37  Geaming  阅读(374)  评论(0编辑  收藏  举报