信息收集
编码转换
隐写分析
图片、音频、视频、文档、流量包、
数字取证
图片、音频、视频、流量包、内存、磁盘文件、压缩包
文件有后缀名,但是无法正常打开,或者没有后缀名,通过file命令发现文件类型是data,表示很有可能是文件头残缺或错误导致的,这时候需要根据后缀名、题目提示、文件头尾部数据等猜测文件的真实类型,并使用winhex添加或修改相应的文件头
文件类型 特点
ZIP 文件尾部包含0x504B0506的
RAR 文件结尾为0xC43D7B004007
JPG 文件结尾为0xFFD9 FFD8开始
PNG 文件头中包含IHDR信息
GIF 文件结尾为0x3B
ELF linux可执行文件,文件头7F454C46
binwalk:binwalk工具可以快速分辨文件是否由多个文件合并而成,并将文件进行分离, 分离成功会在目标文件的目录下生成一个形如_文件名extracted 的文件目录,目录中有分离后的文件
文件分析:binwalk 文件名
文件分离:binwalk -e 文件名
foremost
foremost 文件名 -o 输出目录名
foremost 文件 —T
scalpel
dd
dd if=源文件 bs=1 skip=开始分离 of=输出名
winhex 手动分离
选取使用^Alt+1快捷键选取50为开始的块,"AIt¥2 选取00为结束块,然后右键->Edit->Copy
Block-> Into New File 保存相应的文件后缀,例如misc.zip
linux: cat 文件 > 输出
window: copy /B 合并 输出
winhex file
notepad
strings
JPG|exif exiftool 文件名
JPG|Steghide
Steghide info 1.jpg
隐藏:steghide embed -cf 图片 -ef 隐藏文件 [-p 密码]
提取:steghide extract -sf 图片 [-p 密码]
JPG|F5 java Extract 1.jpg -p 11231
JPG|SilentEye
Windows打开
JPG|敏感度
专门针对jpg stegdetect
stegdetect.exe -tjopi -s 10.0 *.jpg
JPG|Outguess
隐藏:outguess -k 密码 -d 隐藏文件 图片 加密图片
提取:outguess -r 加密图片 输出文件 -p pass
PNG|图片高度:一把梭
PNG|LSB
python2 lsb.py extract 1.png [-p] 建议有发现特殊密文时候使用
先用 zsteg -a 过一下文件,看有无隐藏
StegSolve->Analyse->Data Extract
两张图片:StegSolove->Analyse->image Combiner
盲水印:给了两张同样图,bwmforpy3 decode 图片1 图片2 ->图片3 --oldseed
一把梭 https://www.aperisolve.com/
.bmp|图片
转成png再看zsteg
PDF|wbStego4:wbs43open pdf隐写工具,直接开decode,使用找到的密码decode保存为1.txt
GIF|空间:Stegsolve
GIF|时间
identifi -formate “%s %T\n” 图片 >flag.txt
https://tu.sioe.cn/gj/fenjie/ 分离
cat flag.txt|cut -d ‘’ \f 2|tr -d ‘\n’|tr -d ‘0’|tr ‘2’ ‘0’
音频|MP3隐写
mp3Stego隐写:encode -E 隐写 -p 密码 音频 输出
提取:decode.exe -X -p 123
音频|波形:morse2ascii:解码wav文件莫斯密码
音频|频谱
特点:杂音或刺耳,放大频谱
高位1低位0,出二进制转ascii
a='110011011011001100001110011111110111010111011000010101110101010110011011101011101110110111011110011111101'
flag=''
for i in range(15):
b=a[i*7:i*7+7]
c=int(b,2)
flag+=chr(c)
print(flag)
音频|声音倒放:效果->反向即可
LSB音频隐写:silenteye
WORD|隐藏字符:文件-选项-显示-隐藏字符
WORD|文件隐藏:使用zip打开
ZIP|进制转换隐藏信息:504B–>zip
ZIP|伪加密
直接binwalk -e
源文件数据区+源文件目录区+源文件目录结束标志
文件头起第九第十个字符(2个数算一个字符)
无加密:00 00 + 00 00
真加密:奇数 00 + 奇数 00
伪加密:任意 00 + 奇数 00(修改此处为00)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zkrkc4jI-1688086983545)(CTF培训-MISC.assets/image-20220704133016850.png)]
ZIP|暴力破解:ARCHPR
ZIP|明文攻击:压缩密码会被转为3个32bit的key,使用该key加密所有文件,可以使用无加密文件解压有加密文件,ARCHPR明文
需要使用电脑rar才能明文攻击成功,多换几个压缩软件
ZIP|CRC32碰撞:压缩文件较小时,密码又复杂,直接使用CRC爆破出内容
import binascii
import string
dic = string.printable
crc = 0x222222
def Crack(crc)
for i in dic:
for j in dic:
for p in dic:
for q in dic:
s=i+J+p+q
if crc == binascii.crc32(s)
print(s)
Crack(crc)
RAR|伪加密
标记+压缩文件头+文件头+结尾
正常打开报错->winhex打开找到74 x0->尾数4为加密,0无加密->把0改为4
pyc|反编译
raw/dmp/img/wmem 数据恢复与取证分析
工具:diskgenius/取证大师
ext3:直接改名.zip,然后查找flag
工具:Dumpit github下载 FTK
Volatility:可对导出内存镜像进行分析 https://github.com/volatilityfoundation/volatility
插件地址:github.com/superponible/volatility-plugins
imageinfo:python vol.py -f 1.raw imageinfo
hashdump(mimikatz) 抓管理员密码:python vol.py -f 1.raw --profile=版本 hashdump
dumpfiles 下载文件:python vol.py -f 1.raw --profile=版本 dumpfile -Q 0x0000(内存地址) --dump-dir=./目录
filescan 查找文件:python vol.py -f 1.raw --profile=版本 filescan | grep txt(文件名或后缀)
pslist(psscan) 查看进程相关信息 pstree 查进程树
procdump 获取进程可执行文件:python vol.py -f 1.raw --profile=版本 procdump -p [PID] -D [保存目录]
cmdscan 查看cmd运行 iehistory(chromehistory firefox) 查看浏览器信息 filescan 扫描内存中所有文件 clipboard 查看粘贴板
hivedump/dumpregistry/printkey/hashdump
数据通信|模型
数据通信|wireshark:见手写笔记
数据通信|tcpxtract:有些文件wireshark、binwalk、foremost没法提取,用这个工具 tcpxtract -f 文件.pcap
数据通信|networkMiner:有些文件binwalk从流量包分解不出来,可以用这个工具,先用wireshark保存为pcap,在拖入networkM分解出文件
数据通信|鼠标流量:见USB流量取证分析.pdf
数据通信|键盘流量:提取python3 knm.py pca -i usb2.pcap -o out.txt 键盘还原python3 knm.py keyboard out.txt 鼠标还原python3 knm.py mouse out.txt
协议分析|ICMP:data的length可能对应ascii
import pyshark
import base64
flag=[]
packets = pyshark.FileCapture('1.pcap')
for packet in packets:
for pkt in packet:
if pkt.layer_name=="icmp":
if int(pkt.type) !=0:
flag.append(int(pkt.data_len))
for i in range(0,len(flag)):
flag[i]=chr(flag[i])
print(".join(flag)")
print(base64.b64decode(".join(flag)"))
#遍历形式
tshark -r 1.pcapng -Y "icmp" -T fields -e frame.len |tr "\n" ","
a = [144,144,150,150,139,139,145,145,165,165,91,91,109,109,151,151,122,122,113,113,106,106,119,119,93,93,167,167]
for i in range(-50, 50):
flag=''
for j in a:
flag += chr(i+j)
if 'f' in flag:
print(flag)
协议分析|HTTP:流量附件(binwalk分离,或找到后转base成文件)或是总体分析,弄清楚流量做啥
SQL注入–tshark提取url–ascii转字符
tshark -r *.pcapng -T fields -e http.request.url|tr -s "\n"|grep flag > log.txt
import re
with open("log.txt") as f:
tmp=f.read()
flag=""
data = re.findall(r'>(\d)',tmp)
data = p[int(i) for i in data]
for i,num in enumerate(data)
try:
if data[i+1] == 100:
flag += chr(num)
except Exception
pass
print(flag+chr(data[i]))
协议分析|HTTPS:导入TLS私钥
协议分析|DNS:通过dns.query.name中传输查询数据传输base加密段,需要tshark提取,字段长度除4余2的补两个等号,除4余3的补一个等号,因为base64是4位编码 tshark -r 1.pcap -T fields -e dns.qry.name >base64.txt
协议分析|WIFI密码:检查cap包:aircrack-ng xxx.cap 握手包破解: aircrack-ng xx.cap -w pass.txt
协议分析|FTP:命令与应答,命令有USER(用户标识) PASS(口令) LIST(文件列表) RETR(检索文件) STOR(存放文件)
331输密码 125传数据 425传输失败 452文件出错
协议分析|冰蝎流量:找key,把密文放工具里面解密
协议分析|蚁剑流量:一个一个找密文,先找大的,注意看表头突出特征,比如压缩包、图片等,然后解密base64等混用
ciphey -t "密文"
ciphey -f 1.txt