记录一下我之前做 misc 时碰到的各种工具和小知识
其中有些工具之后会出文章详细讲解。
图片之后会补)
# 文件格式的文件头文件尾
# JPEG (jpg)
文件头:FFD8FFE1
文件尾:FF D9
FFD8FFE000, .JPEG;.JPE;.JPG, “JPGGraphic File”
# PNG (png)
文件头:89504E47
文件尾:49454E44 AE 42 60 82
# GIF
文件头:47494638 文件尾:50 4B
GIF89a 474946383961 文件尾:50 4B
GIF87a 474946383761 文件尾:50 4B
# TIFF (tif)
文件头:49492A00
# RIFF
文件头:52494646
# ZIP (zip)
文件头:504B0304
# RAR (rar)
文件头:526172211A0700
文件尾:3D7B00400700
# 7z
文件头:377a
37 7A BC AF 27 1C
# Wave (wav)
文件头:57415645
# AVI (avi)
文件头:41564920
文件头:255044462D312E
# HTML (html)
文件头:68746D6C3E
# BMP
文件头:424D
# MS Word/Excel (xls、doc、ppt、msi、msg)
文件头:D0 CF 11 E0
D0CF11E0
# CAD (dwg)
文件头:41 43 31 30
# Adobe Photoshop (psd)
文件头:38 42 50 53
# XML (xml)
文件头:3C 3F 78 6D 6C
# 图片隐写工具
# 分离工具
binwalk -e xxxx
foremost xxxx
dd if=xxxx.jpg of=out.jpg skip=DECIMAL (配合 binwalk 使用) bs=1
# Steghide
(检查图片隐写)
steghide info out.jpg 查看嵌入信息
steghide extract -sf out.jpg -p passwd (可无密码)
# Stegdetect
(检查 jpg 隐写)
stegdetect.exe -tjopi -s 10.0 [stego_file]
jsteg、outguess、jphide、invisible secrets
# SNOW
(txt 看不到数据可用,需密码)
snow.exe -p passwd -C out.txt
在线:Snow web-page encryption/decryption (misty.com)
# Tweakpng
修改图片数据块
# Jphs05
jpg 隐写
# Npiet
关键字:抽象
npiet.exe -tpic 图片
# Outguess
加密:
outguess -k "my secret key" -d hidden.txt demo.jpg out.jpg
加密之后,demo.jpg 会覆盖 out.jpg,
hidden.txt 中的内容是要隐藏的东西
解密:
outguess -k "my secret key" -r out.jpg out.txt (有 key)
outguess -r out.jpg out.txt (无 key)
-k 密码 -t 输出 -r 解压
解密之后,解密内容放在 out.txt 中
# F5-steganography
binwalk 检查无后门可用
java Extract 图片路径 (无 key)
java Extract 图片路径 -p passwd (有 key)
检查 output.txt
# Cloacked-pixel
python2 -m pip install numpy
加密:
python lsb.py hide big.png 1.txt 123456
hide: 表示加密模式,big.png: 待加密的 png 图片,1.txt: 存放 payload;
解密:
python lsb.py extract 1.png 3.txt 123456
extract: 表示解密模式,1.png: 待解密的 png 图片,3.txt: 存放
# File
linux 查看文件格式
# Zsteg
1. 查看 lsb 数据
zsteg xxx.bmp
zsteg xxx.png
zsteg -a (文件名) #查看各个通道的 lsb
2. 检测 zlib
#-b 的位数是从 1 开始的
zsteg zlib.bmp -b 1 -o xy -v
3. 提取该通道图片
zsteg -e b8,a,lsb,xy 文件.png -> out.png
# SilentEye
图片、音频隐写
# Free file Camouflage
图片伪装
# Stegpy
stegpy
是一种将编码信息隐写在图像和音频文件中的程序。使用 Python 编写
pip3 install stegpy
然后下载工具源码解压
sudo python3 setup.py install
stegpy 隐写内容 XXX.jpg 加密
stegpy xxxx.jpg -p 解密
# ImageIN
文件隐藏在图片里的工具
# OurSecret
关键词:秘密
文件加密,需要密码
# LSB 隐写
# Stegsolve
# LSB 脚本
cloacked-pixel-master
python2 lsb.py extract 1.png 1.txt passwd (解密)
python2 lsb.py hide 1.png 1.txt passwd (加密)
# 音频隐写工具
# SilentEye
图片、wav 隐写
切换到「De-camouflage a file」选项卡,在 “Jpeg image to de-camouflage” 中浏览到要解除伪装的图片
并在 “Destination directory-save decrypted file to:” 选择要保存的位置。按 “De-Camouflage!” 解除伪装。
# deepsound
wav 隐写
# Audacity
# MP3Stego
Decode.exe -X -P passwd x.mp3
# QSSTV
kali 自带的音频解码工具
打开图片,然后 start
# WORD 隐写
文字颜色、文字隐藏
# PDF\html\bmp\txt 隐写
# wbstego4
1:点击 Continue,进入开始阶段,decode(解码)
2:选择 PDF 文件
3:选择需要隐藏的载体文件,并进行隐藏
# 盲水印
# WaterMark
# BlindWaterMark
特征:相同的两张图片
python bwm.py decode 1.png 2.png flag.png
1.png 为无水印原图
2.png 为有盲水印的图片
flag.png 为解出来的图片
# 图片拼接
# Montage
montage ./flag/*.png -tile 16x16 -geometry +0+0 flag02.png
16* 16 为图片个数
与 gaps 结合使用
# Gaps
gaps --image=flag02.png --size=64 --save
64 为小图片的宽和高
# 在线合并图片
在线合并 JPG、PNG、SVG、WEBP 图片 (cdkm.com)
# 二维码扫描
# Qrazybox
二维码在线扫描工具
https://merricx.github.io/qrazybox/
# 二维码在线扫
ZXing Decoder Online
# Pyzbar
批量解码处理脚本
# Processing
二进制转二维码
# CQR
二维码扫描工具
# Gnuplot
坐标转换格式后画二维码工具
转换 ASCII 后使用
plot '1.txt'
# 二维码反色
打开 photoshop
Ctrl + i
一键反色图片
# 各种二维码
# QR Code
# Data Matrix
# PDF417 码
# 汉信码
# Aztec Code
# Maxicode
# QuickMark
# 一维码
# 无线电电波
# RX-SSTV
切换虚拟声卡 line1,robot36 解码
# QSSTV
# WORD 密码破解
Advanced Office Password Recovery
# 压缩包爆破
# CRC32 碰撞
跑脚本
# 明文攻击
# ZIP
# Ziperello
# ARCHPR
# Fcrack
kali 自带
fcrackzip -b -c1! -l 13-13 -v -u message.zip
-b | 暴力破解方式 |
---|---|
-D 字典 | 字典破解方式 |
-c | 暴力破解的字符类型,1=19,a=az,A=A~Z,!= 字符,:= 所有字符 |
-v | 啰嗦模式,显示实时爆破信息 |
-l | 指定破解的密码为几位数 |
-u | 指定爆破文件 |
-p | 破解的起始位置 |
# zip 伪加密知识
# RAR
# ARCHPR
# Rarcrack
使用一次后暂停,可编辑 xml 文件更改破解密码格式
rarcrack 1.zip -threads 12 -type rar
rarcrack 文件名 -threads 线程数 (12 最大) -type rar|zip|7z
# rar 伪加密小知识
# 其他工具
# Exiftool
(linux 查看文件属性)
# Strings
(linux 查询一个二进制文件中所含有的字符信息)
# 关于路由器的工具
# RouterPass
路由器数据分析
# 关于微信的工具
# WXDatConvter
微信 DAT 文件分析
# Pyc 隐写
# Stegosaurus
记得要反编译一下啊
python stegosaurus.py -x [pyc_file]
# pyc 反编译在线
https://tool.lu/pyc/
# Uncompyle6
kali 里的 pyc 反编译工具
uncompyle6 -o test.py test.pyc
#没安装上(懒得安装)
# Java 反编译
JD-GUI
java -jar jd-gui-1.x.x.jar
这里的 xx 是指你的版本号
# 创建字典
# crunch
crunch <min> <max> -o out.txt
# pydictor
# NTFS 流
NTFS 流隐藏文件工具
NtfsStreamsEditor
# ws 后缀文件在线
https://vii5ard.github.io/whitespace/
# 关于 TXT 文本的题目知识
# 整数分解
分解质因数工具 - 整数分解最多为 70 位 (numberempire.com)
整数分解成因数
# 取证
# volatility 基础命令
python vol.py -f [image] ‐-profile=[profile][plugin] 命令
其中 -f 后面加的是要取证的文件, --profile 后加的是工具识别出的系统版本, [plugin] 是指使用的插件,其中默认存在一些插件,另外还可以自己下载一些插件扩充
imageinfo:显示目标镜像的摘要信息,这常常是第一步,获取内存的操作系统类型及版本,之后可以在 –profile 中带上对应的操作系统,后续操作都要带上这一参数
pslist:该插件列举出系统进程,但它不能检测到隐藏或者解链的进程,psscan可以
pstree:以树的形式查看进程列表,和pslist一样,也无法检测隐藏或解链的进程
psscan:可以找到先前已终止(不活动)的进程以及被rootkit隐藏或解链的进程
procdump:提取文件
//procdump -p 1164 -D /home/kali
cmdscan:可用于查看终端记录
notepad:查看当前展示的 notepad 文本(–profile=winxp啥的低版本可以,win7的不行,可以尝试使用editbox)
filescan:扫描所有的文件列表
linux配合 grep 命令进行相关字符定向扫描,如:grep flag、grep -E ‘png|jpg|gif|zip|rar|7z|pdf|txt|doc’
dumpfiles:导出某一文件(指定虚拟地址)
需要指定偏移量 -Q 和输出目录 -D
mendump:提取出指定进程,常用foremost 来分离里面的文件
需要指定进程-p [pid] 和输出目录 -D
editbox:显示有关编辑控件(曾经编辑过的内容)的信息
screenshot:保存基于GDI窗口的伪截屏
clipboard:查看剪贴板信息
iehistory:检索IE浏览器历史记录
systeminfo:显示关于计算机及其操作系统的详细配置信息(插件)
hashdump:查看当前操作系统中的 password hash,例如 Windows 的 SAM 文件内容(mimikatz插件可以获取系统明文密码)
lsadump:LSA解密
mftparser:恢复被删除的文件
svcscan:扫描 Windows 的服务
connscan:查看网络连接
envars:查看环境变量
dlllist: 列出某一进程加载的所有dll文件
hivelist: 列出所有的注册表项及其虚拟地址和物理地址
hivedump:打印出注册表中的数据
//hivedump -o 注册表的virtual地址
timeliner: 将所有操作系统事件以时间线的方式展开
dumpregistry:提取文件
dumpregistry -o 0xfffff8a005ef7010 -D ./
Volatility2的使用方法
(1) 获取系统基本信息
>>>python2 vol.py -f ../Target.vmem imageinfo
(2) 列出进程信息
>>> python2 vol.py -f ../Target.vmem --profile=Win7SP1x64 pslist
(3) 提取某进程文件内容
>>> python2 vol.py -f ../Target.vmem --profile=Win7SP1x64 memdump -p 516 -D ./
(4) 查看文件目录
>>> python2 vol.py -f ../Target.vmem --profile=Win7SP1x64 filescan
(5) 提取某文件内容
>>>python2 vol.py -f ../Target.vmem --profile=Win7SP1x64 dumpfiles -Q 0x000000007fe72430 --dump-dir=./
(6) 调用mimikatz抓取系统口令
>>> python2 vol.py -f ../Target.vmem --profile=Win7SP1x64 mimikatz
# 流量
# WireShark
常用的过滤命令
//过滤ip
ip.src eq x.x.x.x && ip.dst eq x.x.x.x
//过滤端口
tcp.port eq 80 or udp.port eq 80
tcp.dstport == 80 //只显tcp协议的目标端口为80
tcp.srcport == 80 //只显tcp协议的源端口为80
tcp.port >= 1 and tcp.port <= 80
//过滤协议
tcp/udp/arp/mysql/http/ftp/dns/ip
//过滤MAC
eth.dst == A0:00:00:04:C5:84 //过滤目标MAC
//包长度过滤
udp.length == 26 //这个长度是指udp本身固定长度8加上udp下面那块数据包之和
tcp.len >= 7 //指的是ip数据包(tcp下面那块数据),不包括tcp本身
ip.len == 94 //除了以太网头固定长度14,其他都算是ip.len,即从ip本身到最后
frame.len == 119 //整个数据包长度,从eth开始到最后
//http模式过滤
http.request.method == "GET"
http.request.method == "POST"
hhtp.request.uri == "/img/logo-edu.gif"
http contains "GET" //常用
http contains "HTTP/1."
http.request.method == "GET" && http
http contains "flag"
http contains "key"
tcp contains "flag"
tcp.connection.syn //扫大致端口开放
icmp
(1)诊断报文(类型:8,代码0;类型:0代码:0);
(2)目的不可达报文(类型:3,代码0-15);
(3)重定向报文(类型:5,代码:0--4);
(4)超时报文(类型:11,代码:0--1);
(5)信息报文(类型:12--18)。
查询网址使用CMS和版本号:Powered by
# 查看注册表
# RegistryRecon
C:\Program Files (x86)\Arsenal Recon\Registry Recon
Software\Microsoft\Windows\CurrentVersion\Explorer\UserAssist{CEBFF5CD-ACE2-4F4F-9178-9926F41749EA}\Count{1AC14E77-02E7-4E5D-B744-2EB1AE5198B7}\calc.exe
进程的注册表位置
# 脚本
E:\CTF\ 脚本
# md5.py
长度为 672,正好能被 32 整除就能使用该脚本
# onion
.onion
需要用 tor 洋葱浏览器访问