MISC个人总结
基本准备知识
1、010editor分析图片——宽高 文件头尾 伪加密等
2、文件属性中的详细信息——备注(虽然现在不常见了但也要特别注意)
3、file 查看文件类型
4、ls -a 查看所有文件
5、binwalk ,foremost 分离
6、多文件时 对比CRC值,进行校验
7、strings 输出文件中的可打印字符
8、uuid格式
UUID的标准格式 ,包含 32个十六进制数,以连字号分为 5段,形式为 8-4-4-4-12的32个字符。
UUID格式如下图所示。
图片题-PNG类
LSB隐写
工具:Stegsolve
RGB 0通道 lsb低位
lsb.py
戳这篇文章
https://www.cnblogs.com/LEOGG321/p/13510737.html
用法:
python lsb.py extract 1.png 1.txt 123456
cloacked-pixel隐写
python lsb.py extract -i "加密文件名" -o flag.txt -p 密码
strings
查找可打印的字符串
zsteg
用法
zsteg xxx.png
zsteg xxx.png -a
安装
gem install zsteg
提取文件
zsteg -e "b1,rgb,lsb,xy" 1.png > 1.zip
Oursecret
适合给出图片和密码类型
下载
https://oursecret.soft112.com/
SlientEye
图片、音频lsb隐写,拖进去即可
binwalk、foremost 命令分析处理
binwalk -e
foremost -T
WaterMark.exe—单图盲水印
BlindWaterMark (用于双图盲水印)
在win中
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple opencv-python
pip install matplotlib
安装上面的库
解密:
python bwmforpy3.py decode 4.png 5.png out.png
频域盲水印
import cv2
import numpy as np
import random
import os
from argparse import ArgumentParser
ALPHA = 5
def build_parser():
parser = ArgumentParser()
parser.add_argument('--original', dest='ori', required=True)
parser.add_argument('--image', dest='img', required=True)
parser.add_argument('--result', dest='res', required=True)
parser.add_argument('--alpha', dest='alpha', default=ALPHA)
return parser
def main():
parser = build_parser()
options = parser.parse_args()
ori = options.ori
img = options.img
res = options.res
alpha = options.alpha
if not os.path.isfile(ori):
parser.error("original image %s does not exist." % ori)
if not os.path.isfile(img):
parser.error("image %s does not exist." % img)
decode(ori, img, res, alpha)
def decode(ori_path, img_path, res_path, alpha):
ori = cv2.imread(ori_path)
img = cv2.imread(img_path)
ori_f = np.fft.fft2(ori)
img_f = np.fft.fft2(img)
height, width = ori.shape[0], ori.shape[1]
watermark = (ori_f - img_f) / alpha
watermark = np.real(watermark)
res = np.zeros(watermark.shape)
random.seed(height + width)
x = range(height / 2)
y = range(width)
random.shuffle(x)
random.shuffle(y)
for i in range(height / 2):
for j in range(width):
res[x[i]][y[j]] = watermark[i][j]
cv2.imwrite(res_path, res, [int(cv2.IMWRITE_JPEG_QUALITY), 100])
if __name__ == '__main__':
main()
普通盲水印无果可以试试这个
python pinyubwm.py --original 4.png --image 5.png --result out.png
此处为python3,我在kali下用的
tweakpng—IDAT
图片题-JPG类
Stegdetect:分析图像文件是否有隐藏内容
# 使用方法
stegdetect.exe -tjopi -s 10.0 图片名
stegbreak.exe -r rules.ini -f password.txt 图片名
#password.txt 为密码本
stegdetect探测
.\stegdetect.exe -tjopi -s 10.0 yummy.jpeg
stegbreak爆破密码
.\stegbreak.exe -r .\rules.ini -f .\password.txt -t p .\yummy.jpeg
steghide
安装
apt-get install steghide
查看图片中嵌入的文件信息:
steghide info 文件名
加密:
steghide embed -cf 文件名 -ef 隐藏文件名 -p 密码
解密:
steghide extract -sf 文件名 -p 密码
steghide爆破—stegseek
stegseek --crack 爆破文件名 字典名
BlindWaterMark—双图盲水印
SlientEye
JPHS隐写
了解戳这里:https://blog.csdn.net/DRondong/article/details/79326385
F5-steganography
java Extract 图片的绝对路径/xxxx.jpg -p 密码
安装:
有关git的用法戳这篇博客
https://www.cnblogs.com/LEOGG321/p/13434491.html
git clone https://github.com/matthewgao/F5-steganography
解密
java Extract 1.jpg -p 123456
打开output.txt即可
outguess
安装:
git clone https://github.com/crorvick/outguess
cd到文件夹目录
./configure && make && make install
解密
-k输入密码
outguess -k "密码" -r flag.jpg out.txt
outguess -k 12345 -r 2.jpg out.txt
exiftool
查看图片属性
exiftool 文件名
图片题—GIF类
identify
linux上的identify命令主要用于获取一个或多个图像文件的格式和特性
identify misc.gif > message.txt
stegpy
以下格式可以使用此隐写
- PNG
- MBP
- GIF
- Webp
- WAV
kali如果没有pip3先安装pip3
wget https://bootstrap.pypa.io/get-pip.py
python3 get-pip.py
pip3 -V
下载地址
https://github.com/dhsdshdhk/stegpy
直接git clone
git clone https://github.com/dhsdshdhk/stegpy
然后按照readme.md里说的
pip3 install stegpy
安装成功,用法
stegpy encode.webp
stegy misc.webp -p
(需要密码)
更多用法请看官方文档
时间轴
identify -format "%s %T \n" misc.gif
分帧
图片题—BPG类
bpg
下载地址
https://bellard.org/bpg/
我选了for windows64的
BPG格式的图片解码成png格式
bpgdec.exe 2.bpg
同目录下生成out.png
图片题—拼图类
gaps
安装步骤如下
git clone https://github.com/nemanja-m/gaps.git
cd gaps
pip install -r requirements.txt
sudo apt-get install python-tk
pip install -e .
montage合并图片
montage *.png -tile 8x6 -geometry +0+0 flag.png
"-geometry +0+0"的用处是让图片之间没有间隙
“-tile 8X6” 的作用是让原始图片按12*4的排列方式排列(也就是8行6列)
montage *.jpg -tile 10x12 -geometry 200x100+0+0 output.jpg
gaps拼图
从图像创建拼图
create_puzzle images/pillars.jpg --size=48 --destination=puzzle.jpg
[SUCCESS] Puzzle created with 420 pieces
将图片拆成420个色块
原图
拆分
自动复原
gaps --image=puzzle.jpg --generations=20 --population=600
这将启动初始种群为 600 和 20 代的遗传算法
提供以下选项:
选项 | 描述 |
---|---|
--image |
拼图路径(最好在当前目录下,不然容易报错) |
--size |
拼图大小(以像素为单位)[最好与图块数相等] |
--generations |
遗传算法的世代数 |
--population |
个体数量 |
--verbose |
在每一代之后显示最佳解决方案 |
--save |
将拼图解决方案另存为图片 |
gaps --image=output.jpg --generations=40 --population=120 --size=100
试了下size参数很重要,选取时看图片大小每一小块的边长(只识别正方形,所以取小的边长就可以)
万彩办公大师
TXT类
SNOW
下载
使用参考:https://blog.csdn.net/qq_53105813/article/details/127896201
SNOW.EXE -C 文件名 -p 密码
Linux技巧—修复swp
vim中的swp即swap文件,在编辑文件时产生,它是隐藏文件。这个文件是一个临时交换文件,用来备份缓冲区中的内容。
如果原文件名是data.txt,那么swp文件名就是.data.txt.swp
如果文件正常退出,则此文件自动删除
以下两种情况不会删除.swp文件:
- vim非正常退出(比如直接关闭终端或者电脑断电)这种情况下,除非手动删除swp文件,否则它会一直在。
- 当你强行关闭vim时,vim自动生成一个swp文件,当你再次用vim打开文件时,会出现提示
简单来说,.swp文件是Linux里面vim(Linux内置的文本编辑器,相当于Win的TXT文本编辑器)的一个缓存文件,防止你编辑文件的时候出现突发情况导致数据丢失的情况,通过这个.swp文件,可以恢复原来编辑时候的数据
ls -al
cd ~/Downloads/depthpng //切换到文件解压的目录,根据你的情况自行修改
vim -r .flag.txt.swp
发现报错了,不慌,看一下报了什么错
因为在恢复.swp文件的时候,会恢复在它记录的目录(即 /home/chang/Downloads/Misc/
),但我们虚拟机里面没有这个目录,所以它会显示“无法打开并写入文件”,所以创建这个路径再恢复即可。
/home:如果建立一个用户,用户名是"zg666",那么在/home目录下就有一个对应的/home/zg666路径,用来存放用户的主目录
所以,按照报错信息中的路径,我们要创建一个名为“chang”的用户,才能生成 /home/chang
sudo useradd -m chang
然后读取 /etc/passwd
看看有没有创建成功
cat /etc/passwd | grep "chang"
这时候,/home/chang
就生成了,但我们还需要建两个子目录:/Downloads/Misc/
cd /home/chang
sudo mkdir Downloads
cd /home/chang/Downloads
sudo mkdir Misc
然后再去恢复一下上面的.swp文件
cd ~/Downloads/depthpng //切换到文件解压的目录,根据你的情况自行修改
sudo vim -r .flag.txt.swp
按回车进入下一步,输入 :wq
(保存编辑操作退出),再回车
回到 /home/chang/Downloads/Misc/
目录下面,发现恢复成功了
压缩包题(重点)
ZIP
伪加密
打开文件搜索16进制504B0102,可以看到每个加密文件的文件头字段
从504B0102开始计算,第九第十个字符为加密字段,将其设置为0000即可变成无加密状态
cyberchef label+jump循环解压缩包套娃
zip明文爆破—bkcrack
例:
发现该题需要明文爆破,使用bkcrack
bkcrack.exe -C dapthpng.zip -c flag.txt -p swp.txt
bkcrack 常用参数:
-c 提取的密文部分 加密的文件名
-p 提取的明文部分 明文文件名
-C 加密压缩包
显示攻击成功,拿到相关keys
这时候,就可以通过“ZipCrypto”压缩方式的漏洞修改压缩包的密码了,这里我把它修改为“easy”
bkcrack.exe -C dapthpng.zip -k 6c30e526 874fd386 341fe8cb -U out.zip easy
打开目录,可以看到生成了一个“out.zip”,解压密码为easy
解开压缩包得到flag
RAR
伪加密
找到第24个字节,该字节尾数为4表示加密,0表示无加密,将尾数改为0即可解开伪加密。
crc32.py
如果文件刚好是6字节,这边推荐一个GitHub上的一个工具,它可以比较快的列出所有可能
下载地址
https://github.com/theonlypwner/crc32
使用方法
python crc32.py reverse 0x??????
pyc文件
uncompyle6(pyc文件反编译)
安装
pip install uncompyle6
使用方法
uncompyle6 test.pyc > test.py
Stegosaurus(pyc隐写)
使用方法
仅支持python3.6及以下版本
Stegosaurus详细说明
https://www.cnblogs.com/ECJTUACM-873284962/p/10041534.html
python3.6 stegosaurus.py -x [pyc_file]
音频隐写
MP3Stego
路径:MP3Stego_1_1_19\MP3Stego
下使用
decode -X -P pass simple.mp3
不然有可能会出现如下报错信息
[Frame 0]OpenTable: could not find tables/huffdec
Check local directory './tables/'
Please check huffman table 'huffdec'
Dumpsound
DTMF拨号音
详细信息:https://www.cnblogs.com/M0x1n/p/DTMF2num.html
莫斯电码、频谱图
使用工具:Audacity
RX-SSTV
SSTV戳这篇博客
https://www.cnblogs.com/LEOGG321/p/13731156.html
Silenteye
音频lsb隐写,拖进去即可
固定码遥控信号
使用 HackCube-Special 分析固定码信号
参考:https://blog.csdn.net/weixin_44604541/article/details/111193409
PDF隐写
wbStego4open.exe
010中明显看到20 09 0D
特征,你往下面滑动的话,还能看见这种特征,这就是wbStego4
隐写
pdfcrack
pdfcrack -w 字典名 -f 文件名
word文档
改成zip,着重检查document.xml,里面就有flag,有时候flag连在一起,有时候分段。需要仔细观察
hashcat
在(kali㉿kali)-[~/hashcat-word/john-1.9.0-jumbo-1/run]目录下提取hash值
提取hash值:python3 office2john.py 1.docx > hash.txt
hashcat破解:hashcat -m 9400 --username hash.txt -a 3 ?d?d?d?d?d?d?d?d -o cracked_pass.txt
流量包类
usb流量
键盘流量
tshark -r usb.pcapng -T fields -e usb.capdata > usbdata.txt
去空行
tshark -r usb.pcapng -T fields -e usb.capdata | sed '/^\s*$/d' > usbdata.txt
用UsbKeyboardDataHacker解密
python UsbKeyboardDataHacker.py example.pcapng
鼠标流量
用UsbMiceDataHacker
python UsbMiceDataHacker.py data.pcapng out.png
mimikatz
mimikatz用法戳这篇博客
https://www.cnblogs.com/LEOGG321/p/13693561.html
内存取证
volatility
直接安装编译好的
https://www.volatilityfoundation.org/releases
简单的起手式
volatility -f xxx.mem imageinfo
把volatility可执行文件放到/usr/bin下,这样就可以在任何地方执行了
其他详细用法戳这里:
内存取证-volatility工具的使用 (史上更全教程,更全命令)
取证大师
R-STUDIO
古典密码类
autokey爆破
py文件下载地址
配置文件下载地址
需要先下载三个配置文件,两个txt一个ngram_score.py文件
安装pycipher库
pip install pycipher
py文件里改一下要爆破的字符串,python2环境运行
python break_autokey.py
一些不常见的解题方式
bftools
bftools.exe decode braincopter 要解密的图片名称 –output 输出文件名
bftools.exe run 上一步输出的文件
例题:
bftools.exe decode braincopter flag.png > 1.txt
bftools.exe run 1.txt > 2.png
bftools.exe decode brainloller 2.png > 3.txt
bftools.exe run 3.txt
字符转换iconv
iconv -f + 编码类型 + 文件名
例:iconv -f koi-7 1.txt
bpg—Honeyview.exe
nbt—NBTExplorer
mrf—MacroRecorder(鼠标宏)
gnuplot—坐标画图
plot "out.txt"
不常见的这些可以自行百度了解,这里不细说了。