1.媒体文件
1.1单图检测
1.1.1检查步骤:
常见图片文件头格式:(jpg FFD8 , png 8950, gif 4749 ,BMP 424D)
- 检查元数据(查看图片属性,strings命令查看文件包含的可打印字符)
- 检查多文件(binwalk,foremost,手动拆分)(常见文件头8950 FFD8 4749)
- 检查LSB (zsteg,stegsolve)(bmp解lsb隐写之前可以先用画图转成png)(加密lsb cloacked-pixel)(jpg不用检测lsb)
- 检查工具隐写(检查高度隐写和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等多种图片隐写工具的隐写
.\stegdetect.exe -t jopi -s 10 .\1.jpg
-t 指定检测模式 jsteg outguess jphide invisible_secrets
-s 指检测精度 0-10最好
.\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中
steghide embed -cf a.jpg -ef flag.txt
解密:
把隐藏的信息从a.jpg中导出,如果有密码则使用-p参数输入
steghide.exe extract -sf .\a.jpg -p password
- outguess使用
解密:
outguess -k "password" -r 123.jpg 321.txt
-k 输入密码
-r 输入要解密的文件
321.txt 为解密后文件内容
zsteg
zsteg -E b2,r,lsb,xy > 1.png
-a参数列出所有通道隐写内容
-E参数选择通道,可以配合>导出,将b2,r,lsb,xy通道数据导出至1.png文件cloacked-pixel(lsb加密隐写)
python2 lsb.py extract stego.png 1.txt password
extract 表示解密
stego.png 隐写的图片
1.txt 导出文件名
password 替换成密码
注:此脚本在python2环境下运行1.2 多图检测(一般情况下为2张类似的图片)
1.2.1检查步骤:
- stegsolve异或,首先用stegsolve打开一张图片,然后点击Analyse-Image Combiner
- Beyond Compare对比两张图片
- 盲水印 BlindWaterMark
python2用bwm
python bwm.py decode hui.png hui_with_wm.png flag.png#hui.png 是原图#hui_with_wm.png 是水印图,两者虽然长得一模一样,但是顺序不能颠倒#flag.png是导出的文件名
python3用bwmforpy3
python3 bwmforpy3.py decode hui.png hui_with_wm.png flag.png --oldseed#--oldseed参数加不加都尝试一下
频域盲水印
python2 pinyubwm.py --original huyao.png --image stillhuyao.png --result flag.png#注意:脚本需在python2下运行
1.3音频
mp3文件-mp3stego
- wav-silenteye
如果音频中出现摩斯编码,可以考虑用命令morse2ascii
morse2ascii good.wav#tt ttt ete eee e ee eee eeet e ete tett eeet e ete tett e et eee tett#t-> -#e->.#得到摩斯密码
Audacity,主要用来查看波形、频谱(音频中含有杂音,注意将频谱调整到合适大小)
1.4 视频
分帧处理:Adobe PR软件
2.压缩包
2.1 伪加密
处理方法:
- 手动修改加密标志位
- binwalk可直接分离出压缩文件,绕过伪加密
-
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协议分析与数据导出
- 拿到流量包,分析协议(HTTP导出,FTP,ICMP),根据题目描述以及协议占比分析考的协议
- 找到并导出数据(重点关注较大文件),http用[文件-导出对象-HTTP导出]
-
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流量包
解题步骤:
使用aircrack-ng爆破WIFI密码(找到wifi对应的mac地址,然后爆破密码)
#爆破WIFI密码aircrack-ng -w password.txt -b 1a:d7:17:98:d0:51 cacosmia.cap-w 字典-b WIFI数据包中路由器的SSID最后跟上要爆破的cap包文件
利用密码解密流量包(wireshark优先)(airdecap-ng)
编辑—首选项—Protocols—IEEE 802.11—decryption keys(勾选) —Edit
+号新建一个keytype值 类型为wpa-pwd key=12345678
- 然后按照正常流量包做
6.硬盘取证
后缀通常为vmdk、img
file命令可以直接看到的ext3、ext4、DOS/MBR boot
检查步骤:
- 用压缩软件,DiskGenius,Winhex或者HxD之类的工具加载
(DiskGenius也可以恢复文件:菜单下快捷方式:恢复文件)
- 查看镜像里面的内容,查找提示点
- 如果是ext3,ext4 ,采用extundelete修复(extundelete —restore-all <镜像文件名> -o <输出文件名>)
- 如果不是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= [插件参数]
- 获得镜像信息 volatility -f mem.vmem imageinfo (下面所有的—profile=的值均为imageinfo中探测出来的操作系统类型)
- 信息收集 ,查看进程 列举进程 volatility -f mem.vmem —profile=WinXPSP2x86 pslist
- 信息收集,查找文件 扫描路径和文件名中有Desktop文件 volatility -f mem.vmem —profile=WinXPSP2x86 filescan | grep “Desktop”
- 信息收集,提取cmd命令执行情况 提取内存中保留的 cmd 命令使用情况 volatility -f mem.vmem —profile=WinXPSP2x86 cmdscan
- 提取内存数据,将内存中的某个进程数据以 dmp 的格式保存出来 volatility -f mem.vmem —profile=WinXPSP2x86 memdump -p [PID] -D [dump 出的文件保存的目录]
- 提取文件数据,提取文件 volatility -f mem.vmem —profile=WinXPSP2x86 dumpfiles -Q [前面filescan搜索出的第一列的0x开头的数据] -D [dump 出的文件保存的目录]
- 列举缓存在内存的注册表 : volatility -f mem.vmem –profile=WinXPSP2x86 hivelist hivedump
- 打印出注册表中的数据 : volatility -f mem.vmem –profile=WinXPSP2x86 hivedump -o
- 注册表的 virtual 地址 获取SAM表中的用户 : volatility -f mem.vmem –profile=WinXPSP2x86 printkey -K “SAM\Domains\Account\Users\Names”
- 获取最后登录系统的账户 : volatility -f mem.vmem –profile=WinXPSP2x86 printkey -K “SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon”
- 提取出内存中记录的 当时正在运行的程序的信息 volatility -f mem.vmem –profile=WinXPSP2x86 userassist
- 将内存中的某个进程数据以 dmp 的格式保存出来 volatility -f mem.vmem –profile=WinXPSP2x86 memdump -p [PID] -D [dump 出的文件保存的目录]
- 获取到当时的网络连接情况 volatility -f mem.vmem –profile=WinXPSP2x86 netscan
- 获取哈希 volatility -f mem.vmem –profile=WinXPSP2x86 hashdump
