一、图片篇
1.png
(1)宽高
a.手动修改宽高
下面来看看png的二进制格式
png的固定头:前8字节:89 50 4E 47 0D 0A 1A 0A
png的固定尾:00 00 00 00 49 45 4E 44 AE 42 60 82
图片宽:00 00 02 A7
图片高:00 00 01 00
crc校验:6D 7C 71 35
crc循环冗余码用来校验图片在传输过程中有没有出差,CTF中常用来进行宽高的爆破
用buuctf中的题目举例:
打开为一张图片,推测是高度太小了我们将高度改大一点原来为00 00 01 00改为00 00 11 00看到答案
b.宽高爆破
利用CRC的校验值不断修改宽高就行了,网上可参考相应脚本
(2)LSB隐写
图片颜色由红绿蓝三颜色通道构成,在最低位进行修改颜色发生的变化是肉眼察觉不到的,达到信息隐藏的效果。
参考buuctf 的题目LSB
加载图片到stegsolve工具进行分析,勾选LSB,勾选red,green,blue最低位。preview后看到出现png的头。保存png图片为二维码图片,扫描即可得到flag。
(3)动图apng使用专门的apng工具分离
(4)盲水印隐写
E:\Python36\python.exe bwmforpy3.py decode blind1.png blind2.png flag.png 得到flag
一张图片的盲水印提取工具:Watermark.exe
(5)图片分离命令
binwalk -e 1.png
binwalk -eM 1.png
dd if=1.png of=flag.png skip=1111 bs=1
foremost 1.jpg -o 保存文件夹
分离工具同样可以用到别的文件上。
(6)Tweakpng获取正确CRC
2.JPG
固定头:FFD8FF;文件尾:FF D9
(1)查看图片附件信息
exiftool查看图片附件信息,其它文件也适用
exiftool 1.jpg
(2)查看图片隐藏信息
outguess -k 'key' -r 图片 flag.txt
有时密码是空的,有时需要猜测
steghide extract -sf 1.jpg -p 123456
工具jphswin提取图片隐藏信息
Stegdetect工具可以检测JSteg、JPHide、OutGuess、Invisible Secrets、F5、appendX和Camouflage等这些隐写工具隐藏的信息
(3)修改宽高
ctfshow misc入门27,有模板脚本非常方便修改文件结构,直接在WORD Y_image处修改图片高度为255就可以看到flag
3.BMP图片
1.修改宽高
运行bmp模板直接找到对应位置修改就行
4.gif
使用分离工具,或者脚本分离
修改宽高
搜索2c后5,6字节代表宽,7,8字节代表高,每一帧都要修改。
隐藏信息
不同帧之间的间隔时间来隐写identify -format "%T " misc.gif > 1.txt
二.影像音频
1.wav
音频能够传输图片,播放音频
使用MMSSTV工具接收即可
波形隐写,频谱隐写。使用audacity分析即可
工具点点看就行
silenteye工具获取隐藏信息
2.MP3
MP3隐写使用
./decode -X -P 123466 flag.mp3
-p参数为密码,-x为提取
三、压缩包
1.zip
a.密码爆破
b.明文攻击
c.字典攻击
d.掩码爆破
都可以使用工具Advanced Archive Password Recovery
可使用
zipfile 库编写python代码
e.伪加密
50 4B 01 02为目录中文件文件头标记
1F 00:压缩使用的 pkware 版本
14 00:解压文件所需 pkware 版本
00 00:全局方式位标记(此处需要修改)
50 4B 03 04伪压缩文件头
开头50 4B 03 04后第三个和第四个字节是00 00、而50 4B 01 02后第五个和第六个字节是00 09,或开头50 4B 03 04后第三个和第四个字节是00 09、而50 4B 01 02后第五个和第六个字节是00 00,那么就是伪加密
将09 00改为00 00
使用binwalk -e无视伪加密
f.CRC明文爆破
工具https://github.com/theonlypwner/crc32
我们创建一个txt文件里面写上“flag",获取文件crc,可以看到或到了4字节的flag
python crc32.py reverse 0xd1f4eb9a
如果是多个文件
import zipfile
import subprocess
import re
file_handler=zipfile.ZipFile('1.zip')
name_list=file_handler.namelist()
crc_list=[]
print(sorted(name_list))
for i in sorted(name_list):
name_info=file_handler.getinfo(i)
crc_list.append(hex(name_info.CRC))
print(i)
h=""
for crc in crc_list:
s=subprocess.run(['python','crc32.py','reverse',crc],capture_output=True,text=True)
h+=s.stdout
print(re.findall(r'.*5 bytes: (.*) (OK)*.',h))
随便写个联动代码
1.txt内容:"flag_",2.txt内容:"kali_",3.txt:"kali_",4.txt:"6666_"。代码灵活多变,还是要会写代码。
2.rar
a.伪加密
找到24个字节,该字节尾数为4表示加密,0表示无加密,将尾数改为0即可破解伪加密
伪加密下压缩包报错
b.winrar压缩包修复
c.爆破
rarcrack 文件名 --threads 线程数 --type rar(zip)(7z)
四、office文件
工具Advanced Office Password Recovery 破解Word、Excel、PPT文件密码
五、wireshark流量分析
frame:物理层
Ethernet II,Src 数据链路层
internert Protocl version 4:网络层
transmission control protocol,src port:传输层信息
搜索了一下http协议,多出了两个信息
Hypertext Transfer Protocol应用层
data为传输数据
wirshark常用指令
ip.src==192.168.0.1/24 指定网段源ip
ip.dst==192.168.0.1 指定目的IP
ip.addr==192.168.0.1 指定ip
tcp.port==22 指定端口
udp.port==22 指定端口
http:应用过滤器,只显示HTTP流量
obex: 蓝牙协议 为 obex协议
http && http.request.method==POST
http contains flag //搜索flag
usb键盘和鼠标的流量
提取数据:
tshark -r 1.pcap -T fields -e usb.capdata | sed '/^\s*$/d'> flag.txt
16进制代表符号:
这是加上了Shift键的对照表,可以对应自己键盘没有加Shift键的对照表
{"04":"A", "05":"B", "06":"C", "07":"D", "08":"E",
"09":"F", "0a":"G", "0b":"H", "0c":"I", "0d":"J",
"0e":"K", "0f":"L", "10":"M", "11":"N", "12":"O",
"13":"P", "14":"Q", "15":"R", "16":"S", "17":"T",
"18":"U", "19":"V", "1a":"W", "1b":"X", "1c":"Y",
"1d":"Z","1e":"!", "1f":"@", "20":"#", "21":"$",
"22":"%", "23":"^","24":"&","25":"*","26":"(","27":")",
"28":"<RET>","29":"<ESC>","2a":"<DEL>", "2b":"\t","2c":"<SPACE>",
"2d":"_","2e":"+","2f":"{","30":"}","31":"|","32":"<NON>","33":"\"",
"34":":","35":"<GA>","36":"<","37":">","38":"?","39":"<CAP>","3a":"<F1>",
"3b":"<F2>", "3c":"<F3>","3d":"<F4>","3e":"<F5>","3f":"<F6>","40":"<F7>",
"41":"<F8>","42":"<F9>","43":"<F10>","44":"<F11>","45":"<F12>"}
键盘:
第一字节:
键盘错误状态 (ERR) - 0x01
控制键 Left Control (LCtrl) - 0x02
控制键 Left Shift (LShift) - 0x04
控制键 Left Alt (LAlt) - 0x08
控制键 Left GUI (LGUI) - 0x10
控制键 Right Control (RCtrl) - 0x20
控制键 Right Shift (RShift) - 0x40
控制键 Right Alt (RAlt) - 0x80
第三字节是我们最关注的键码
鼠标:
第一个字节代表按键,当取0x00时,代表没有按键,为0x01时,代表按左按键,为0x02时,代表当前按键为右键。第二个字节最高位为符号位,值为正时,代表鼠标水平右移动多少像素,为负时,代表水平左移多少像素;第三个字节代表垂直上下移动的偏移像素。
wife
wife连接协议为EAPOL协议
使用aircrack-ng -w 密码字典 wife.cap得到wife密码
sql注入
获取库名,表名,字段名。一般flag在字段中,需要找到相应的包
webshell
分析黑客的命令操作,传输的文件之中包含flag
寻找黑客IP
连接比较多的IP,查看数据包有恶意信息的IP
传输过程的文件
有图片,压缩包等,有时可以binwalk一下获取,但一般获取不全,需要手动复制二进制文件还原