1.媒体文件

1.1单图检测

1.1.1检查步骤:
常见图片文件头格式:(jpg FFD8 , png 8950, gif 4749 ,BMP 424D)

  1. 检查元数据(查看图片属性,strings命令查看文件包含的可打印字符)
  2. 检查多文件(binwalk,foremost,手动拆分)(常见文件头8950 FFD8 4749)
  3. 检查LSB (zsteg,stegsolve)(bmp解lsb隐写之前可以先用画图转成png)(加密lsb cloacked-pixel)(jpg不用检测lsb)
  4. 检查工具隐写(检查高度隐写和IDAT隐写)(Stegdetect)(steghide)(NTFS流隐写)(outguess)(jphs)

1.1.2常见检查图片隐写工具:

  • strings配合常用正则

strings flag.jpg | grep -E “[a-zA-Z0-9]{10,}” 输出符合a-zA-Z0-9的长度大于10的字符串 -E指正则表达式
strings flag.jpg | grep -v “123” 检查不包含123的字符串 -v指排除参数
strings flag.jpg | grep “flag” 输出含有flag的字符串

  • stegdetect使用

stegdetect可以检测JSteg、JPHide、OutGuess、Invisible Secrets等多种图片隐写工具的隐写

  1. .\stegdetect.exe -t jopi -s 10 .\1.jpg

-t 指定检测模式 jsteg outguess jphide invisible_secrets
-s 指检测精度 0-10最好

  1. .\stegbreak.exe -t pjo -r .\rules.ini -f .\password.txt .\1.jpg

-t 和 stegdetect一样(没有i,一般直接使用pjo)
-r 选择规则 ,一般直接用.\rules.ini
-f 选择爆破字典 .\password.txt

  • stagehide使用方法

隐写:
把flag.txt文件隐藏进a.jpg中

  1. steghide embed -cf a.jpg -ef flag.txt

解密:
把隐藏的信息从a.jpg中导出,如果有密码则使用-p参数输入

  1. steghide.exe extract -sf .\a.jpg -p password
  • outguess使用

解密:

  1. outguess -k "password" -r 123.jpg 321.txt

-k 输入密码
-r 输入要解密的文件
321.txt 为解密后文件内容

  • zsteg

    1. zsteg -E b2,r,lsb,xy > 1.png

    -a参数列出所有通道隐写内容
    -E参数选择通道,可以配合>导出,将b2,r,lsb,xy通道数据导出至1.png文件

  • cloacked-pixel(lsb加密隐写)

    1. python2 lsb.py extract stego.png 1.txt password

    extract 表示解密
    stego.png 隐写的图片
    1.txt 导出文件名
    password 替换成密码
    注:此脚本在python2环境下运行

    1.2 多图检测(一般情况下为2张类似的图片)

    1.2.1检查步骤:

  1. stegsolve异或,首先用stegsolve打开一张图片,然后点击Analyse-Image Combiner
  2. Beyond Compare对比两张图片
  3. 盲水印 BlindWaterMark

python2用bwm

  1. python bwm.py decode hui.png hui_with_wm.png flag.png
  2. #hui.png 是原图
  3. #hui_with_wm.png 是水印图,两者虽然长得一模一样,但是顺序不能颠倒
  4. #flag.png是导出的文件名

python3用bwmforpy3

  1. python3 bwmforpy3.py decode hui.png hui_with_wm.png flag.png --oldseed
  2. #--oldseed参数加不加都尝试一下
  1. 频域盲水印

    1. python2 pinyubwm.py --original huyao.png --image stillhuyao.png --result flag.png
    2. #注意:脚本需在python2下运行

    1.3音频

  2. mp3文件-mp3stego

  3. wav-silenteye
  4. 如果音频中出现摩斯编码,可以考虑用命令morse2ascii

    1. morse2ascii good.wav
    2. #tt ttt ete eee e ee eee eeet e ete tett eeet e ete tett e et eee tett
    3. #t-> -
    4. #e->.
    5. #得到摩斯密码
  5. Audacity,主要用来查看波形、频谱(音频中含有杂音,注意将频谱调整到合适大小)

    1.4 视频

    分帧处理:Adobe PR软件


2.压缩包

2.1 伪加密

处理方法:

  • 手动修改加密标志位
  • binwalk可直接分离出压缩文件,绕过伪加密
  • winrar修复加密文件

    2.2真加密

    处理方法:

  • 优先找密码线索(注意查看注释)

  • 源文件文件小于8字节优先crc爆破
  • 有加密压缩包中文件原文件的,使用已知明文攻击(明文攻击爆破出秘钥时即可提取出文件,不需要等到爆破出明文密码)
  • 根据提示爆破(如长度小于xxx,生日是xxx之类的)
  • RAR、7z文件解压后需要测试一下NTFS流隐写(可以用360压缩查看或AlternateStreamView查看)
  • 掩码爆破,如爆破以baby开头的掩码:baby????

3.word文档

处理方法:

  • WORD可以看成一个压缩包,可以解压寻找关键信息
  • 白色背景用白色字体来隐藏 (通过全选切换文字颜色)
  • 文件-选项-隐藏文字(通过字体-隐藏文字来取消隐藏)
  • 图片覆盖文字(移走图片)

4.python字节码

4.1 pyc源码反编译

linux命令:uncompyle6 -o out.py 5.pyc 将5.pyc反编译出out.py(也可以用在线反编译工具:https://tool.lu/pyc/)

4.2 pyc隐写

linux命令:stegosaurus -x 4.pyc ,如果存在pyc隐写即可以得到flag


5.流量包

5.1协议分析与数据导出

  1. 拿到流量包,分析协议(HTTP导出,FTP,ICMP),根据题目描述以及协议占比分析考的协议
  2. 找到并导出数据(重点关注较大文件),http用[文件-导出对象-HTTP导出]
  3. 机器无法导出需要手动导出

    5.2TLS流量包

    需要首先导入秘钥或秘钥LOG日志然后才能正常做题。
    导入RSA秘钥:编辑-首选项-protocols-TLS-RSA keys list (edit)-在新页面中点击 Key File,加载 rsa.key文件-OK
    导入LOG日志:编辑-首选项-protocols-TLS-Maser-secret log filename:选择key.log文件

    5.3 WIFI流量包

    解题步骤:

  4. 使用aircrack-ng爆破WIFI密码(找到wifi对应的mac地址,然后爆破密码)

    1. #爆破WIFI密码
    2. aircrack-ng -w password.txt -b 1a:d7:17:98:d0:51 cacosmia.cap
    3. -w 字典
    4. -b WIFI数据包中路由器的SSID
    5. 最后跟上要爆破的cap包文件
  5. 利用密码解密流量包(wireshark优先)(airdecap-ng)

编辑—首选项—Protocols—IEEE 802.11—decryption keys(勾选) —Edit
+号新建一个keytype值 类型为wpa-pwd key=12345678

  1. 然后按照正常流量包做

6.硬盘取证

后缀通常为vmdk、img
file命令可以直接看到的ext3、ext4、DOS/MBR boot
检查步骤:

  1. 用压缩软件,DiskGenius,Winhex或者HxD之类的工具加载

(DiskGenius也可以恢复文件:菜单下快捷方式:恢复文件)

  1. 查看镜像里面的内容,查找提示点
  2. 如果是ext3,ext4 ,采用extundelete修复(extundelete —restore-all <镜像文件名> -o <输出文件名>)
  3. 如果不是ext3,ext4,首先考虑NTFS隐写,然后考虑NTFS文件恢复

rar.z7压缩文件可以考虑ntfs隐写
硬盘加密软件:

  • VeraCrypt [安全](有双密码,不同的密码解密出不同的内容)
  • CnCrypt [安全]
  • TrueCrypt[不安全] [Elcomsoft Forensic Disk Decryptor可解密,第三项(TrueCrypt Container)]
  • Bitlocker[不安全] [Elcomsoft Forensic Disk Decryptor可解密]

    7.内存取证

    文件名带一般mem、dump等,binwalk查看时带很多PE头
    检查步骤:
    volatility 使用: volatility -f —profile= [插件参数]
  1. 获得镜像信息 volatility -f mem.vmem imageinfo (下面所有的—profile=的值均为imageinfo中探测出来的操作系统类型)
  2. 信息收集 ,查看进程 列举进程 volatility -f mem.vmem —profile=WinXPSP2x86 pslist
  3. 信息收集,查找文件 扫描路径和文件名中有Desktop文件 volatility -f mem.vmem —profile=WinXPSP2x86 filescan | grep “Desktop”
  4. 信息收集,提取cmd命令执行情况 提取内存中保留的 cmd 命令使用情况 volatility -f mem.vmem —profile=WinXPSP2x86 cmdscan
  5. 提取内存数据,将内存中的某个进程数据以 dmp 的格式保存出来 volatility -f mem.vmem —profile=WinXPSP2x86 memdump -p [PID] -D [dump 出的文件保存的目录]
  6. 提取文件数据,提取文件 volatility -f mem.vmem —profile=WinXPSP2x86 dumpfiles -Q [前面filescan搜索出的第一列的0x开头的数据] -D [dump 出的文件保存的目录]
  7. 列举缓存在内存的注册表 : volatility -f mem.vmem –profile=WinXPSP2x86 hivelist hivedump
  8. 打印出注册表中的数据 : volatility -f mem.vmem –profile=WinXPSP2x86 hivedump -o
  9. 注册表的 virtual 地址 获取SAM表中的用户 : volatility -f mem.vmem –profile=WinXPSP2x86 printkey -K “SAM\Domains\Account\Users\Names”
  10. 获取最后登录系统的账户 : volatility -f mem.vmem –profile=WinXPSP2x86 printkey -K “SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon”
  11. 提取出内存中记录的 当时正在运行的程序的信息 volatility -f mem.vmem –profile=WinXPSP2x86 userassist
  12. 将内存中的某个进程数据以 dmp 的格式保存出来 volatility -f mem.vmem –profile=WinXPSP2x86 memdump -p [PID] -D [dump 出的文件保存的目录]
  13. 获取到当时的网络连接情况 volatility -f mem.vmem –profile=WinXPSP2x86 netscan
  14. 获取哈希 volatility -f mem.vmem –profile=WinXPSP2x86 hashdump