MISC个人总结

发布时间 2023-10-31 04:42:16作者: Kicky_Mu

基本准备知识

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://darkside.com.au/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文件:

  1. vim非正常退出(比如直接关闭终端或者电脑断电)这种情况下,除非手动删除swp文件,否则它会一直在。
  2. 当你强行关闭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工具的使用 (史上更全教程,更全命令)

windows下的volatility的内存取证分析与讲解

Volatility2安装使用以及CTF比赛题目(复现)

取证大师

R-STUDIO

古典密码类

autokey爆破

py文件下载地址

http://www.practicalcryptography.com/cryptanalysis/stochastic-searching/cryptanalysis-autokey-cipher/

配置文件下载地址

http://www.practicalcryptography.com/cryptanalysis/text-characterisation/quadgrams/#a-python-implementation

需要先下载三个配置文件,两个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"

不常见的这些可以自行百度了解,这里不细说了。