杂项杂七杂八的工具知识点太多了,这里每遇到一种就记录一种
文章目录
压缩包
0x01 压缩包恢复
用winhex打开,看文件头是否被修改,或缺失,然后补全
0x02 压缩包密码暴力破解
使用工具:ARCHPR
使用步骤:
- 打开压缩包
- 选择攻击类型
- 配置参数
- 开始攻击
也可以使用自己写python脚本暴力破解密码
import zipfile
import os
def extractFile(zFile, password):
try:
zFile.extractall(pwd=password.encode())
except:
return False
else:
return True
zfile = zipfile.ZipFile("D:\下载/1.zip") # 字典路径
passwd = open("D:\desktop\字典/6位字典.txt", 'r') # 字典路径
for password in passwd.readlines():
# print(password, end='')
password = str(password.strip('\n'))
result = extractFile(zfile, password)
if result:
print('[+] 成功,有效密码为' + password)
break
else:
print("[-] 失败", password)
0x03 明文攻击
条件:有压缩包内一个文件,如下所示
压缩包内有两个文件003.jpg和test.txt,现在我们有未加密的003.jpg即可使用明文攻击
使用工具:
- 打开压缩包
- 选择明文攻击
- 加载明文文件
- 开始攻击
图片
0x01 lsb隐写且有密码
工具:cloacked-pixel-master(lsb隐写)
python lsb.by extract xxx.png 1.txt 解密密码
0x01 图片隐写-steghide
这里先用第一个命令检查,如果叫你输入密码,说明隐藏了东西。如图:
然后再分离出来
工具:steghide
.\steghide.exe info .\a.jpg
.\steghide.exe extract -sf .\00017508.jpg
0x03 图片隐写-StegSolve-三原色隐写
工具:StegSolve
BGR 3原色设置为0 提取LSB
0x04 图片合并
有如下两张图片:
先用stegsolve打开图片一。
然后使用image combiner选择第二张图片。
拿到flag:
0x05 坐标生成图片
给坐标信息 ,生成图片 用py脚本,格式必须如下:
#-*- coding:utf-8 -*-
from PIL import Image
import re
x = 72 #x坐标 通过对txt里的行数进行整数分解
y = 74 #y坐标 x*y = 行数
im = Image.new("RGB",(x,y))#创建图片
file = open('rgb2.txt') #打开rbg值文件
#通过一个个rgb点生成图片
for i in range(0,x):
for j in range(0,y):
line = file.readline()#获取一行
# line = line.replace('\n','')
print(line)
rgb = line.split(",")#分离rgb
print(rgb)
im.putpixel((i,j),(int(rgb[0]),int(rgb[1]),int(rgb[2])))#rgb转化为像素
im.show()
im.save('1.png')
转化效果:
0x06 GIF帧分离 + 图片拼接(动态图片分解)
想用convert命令首先要安装imagemagick
,使用如下命令安装:
apt-get install imagemagick
使用convert命令分解gif:
convert a.gif a.png
然后要用montage
工具把分离的png拼接起来:
安装:
apt-get install montage
拼接:
montage a*.png -tile x1 -geometry +0+0 flag.png
-tile是拼接时每行和每列的图片数,这里用x1,就是只一行
-geometry是首选每个图和边框尺寸,我们边框为0,图照原始尺寸即可
结果:
以上步骤一个在线网站就能解决:
动态图片分解
效果:
0x07 图片修改宽高
如果一个图片在windows中能正常打开,而linux中打不开,那么就是修改图片宽高了,一般报错如下:
而图片宽高位置如下:
039E:宽
044C:高
这道题就是将044C修改为054C即可,效果如下:
0x08 图片盲水印
例题: misc-4-1
提示:
Although two days doing the same things, but day2 has a secret than day1
github有处理盲水印的脚本:(前者python2 python3都可以跑)
https://github.com/chishaxie/BlindWaterMark
https://github.com/lucoo01/blindwatermark
这里报错ImportError: No module named cv2
,于是下载opencv。
python2:
pip install opencv-python
python bwm.py decode day1.png day2.png flag.png
python3:
pip3 install opencv-python
python3 bwmforpy3.py decode day1.png day2.png flag.png
如果遇到pip install opencv-python
下载失败,python3跑出来不对,可以参考我的这篇博客:
做题misc-4-1时遇到python No module named cv2 问题(2020-08-26)
0x09 拼图
0x10 GIF帧间隔
题目:XMAN-qualifiers-2017 : Misc/SimpleGIf
-
Step 1
GIF 文件缺失文件头,补上47 49 46 38 39 61
- Step 2
观察每一帧间隔发现存在一定规律
- Step 2
identify -format "%s %T \n" 100.gif
identify -format "%s %T \n" 100.gif > flag
- Step 3
提取每一帧间隔并进行转化,推断20 & 10 分别代表0 & 1
cat flag|cut -d ' ' -f 2|tr -d '66'|tr -d '\n'|tr -d '0'|tr '2' '0'
- Step 4
转ASCII码得到flag
音频
multimon-ng
例:用kali发现这是音频文件
用multimon-ng直接获取flag
./multimon-ng -t raw -a AFSK1200 transmission.raw
multimon-ng © 1996/1997 by Tom Sailer HB9JNX/AE4WA © 2012-2014 by Elias
Oenal available demodulators: POCSAG512 POCSAG1200 POCSAG2400 FLEX EAS
UFSK1200 CLIPFSK FMSFSK AFSK1200 AFSK2400 AFSK2400_2 AFSK2400_3 HAPN4800
FSK9600 DTMF ZVEI1 ZVEI2 ZVEI3 DZVEI PZVEI EEA EIA CCIR MORSE_CW DUMPCSV SCOPE
Enabled demodulators: AFSK1200 AFSK1200: fm WDPX01-0 to APRS-0 UI pid=F0
!/;E’q/Sz’O /A=000000flag{f4ils4f3c0mms}
其他
文件切割
题目:ZCTF-2017:Whisper
- 步骤1
打开附件
用Stegsolve观察hint文件,发现提示,线索应该就在这张图片中
- 步骤2
winhex发现尾部有大量字符串,并且像是base64编码之后的
- 步骤3
binwalk&&dd 切割文件
binwalk分析文件
binwalk hint\ 1.png
使用dd将后面的data部分分离出来,保存为file_1
dd if=hint\ 1.png of=file_1 bs=1 skip=5984
base64解码,保存为file_2
base64 -d file_1 > file_2
用binwalk将里面可能存在的文件分离出来
binwalk -e file_2
分离出来很多文本文档,猜测压缩包的密码就在里面,使用strings和grep命令尝试读取出来
strings * | grep pass
使用密码解压压缩包拿到flag
bmc
工具 https://github.com/ANSSI-FR/bmc-tools
py -3 .\bmc-tools.py -s .\bmc -d res
最后
其他总结:
http://www.ga1axy.top/index.php/archives/6/#%E5%9B%BE%E7%89%87%E7%9B%B8%E5%85%B3