Misc Ultra
写在前面
MISC的学习是极广的,很多都要学习,而记在博客上是最方便有效的方法了,可以随时翻阅
这篇博客会随着我的一点点学习而逐渐被填写,因此不会很快。。
各种文件头尾
1 | .zip的文件头:50 4B 03 04 14 00 08 00 |
我发现mc-office的头尾也是50 4B 03 04
各种加密
思路:
加密的方法有很多,要看是什么加密了
base加密
原理:
Base 编码(Base Encoding)是一种将二进制数据转换为可打印字符的编码方式。常见的 Base 编码有 Base64、Base32 和 Base16 等,它们的工作原理相似,只是使用的字符集和编码方式不同。
1.基本原理
Base 编码的核心原理是将一串二进制数据(字节)按照一定的规则分组,并将每组数据映射为一个字符。这样可以保证编码后的数据由可打印的字符组成,通常用于在文本格式中传输二进制数据。
以 Base64 为例,下面是其编码原理:
- 输入数据分组:将输入的二进制数据每 3 个字节一组,每个字节 8 位,总共 24 位。
- 划分为 4 组:将这 24 位数据分成 4 组,每组 6 位。例如,输入数据为 3 字节(24 位),经过分组后就变成 4 个 6 位的数据块。
- 字符映射:将每个 6 位的数据块映射到一个字符表。Base64 的字符表包括大小写字母(A-Z、a-z)、数字(0-9)和两个符号(+ 和 /)。总共有 64 个字符,所以叫 Base64。
- 输出结果:输出的是一个由这 64 个字符组成的字符串。如果原始数据的字节数不是 3 的倍数,Base64 编码会使用一个或两个
=
来填充,使得输出的字符数是 4 的倍数。
2.举个例子
以字符串 "Hello"
为例:
将
"Hello"
转换为 ASCII 码:H e l l o
→72 101 108 108 111
转换为二进制:
1
01001000 01100101 01101100 01101100 01101111
按 3 字节(24 位)分组(不足补 0):
1
01001000 01100101 01101100 01101100 01101111 00000000
拆分为 6 位:
1
010010 000110 010101 101100 011011 000110 111101 000000
查 Base64 表:
1
S G V s b G 8 =
最终 Base64 编码结果为:
1
SGVsbG8=
3.其他常见的 Base 编码
- Base32:将每 5 个字节转为 8 个字符,使用 32 个字符(A-Z、2-7)。它的特点是比 Base64 更加健壮,对字母区分大小写的要求较低,通常用于限制字符集时(如避免使用特殊字符)。
- Base16(Hex):将每个字节编码为两个十六进制字符,常用于表示十六进制数据。
4.总结
Base 编码的核心思想是将二进制数据映射为可打印字符,使得原本只能通过二进制传输的数据能够通过文本协议进行传输。不同的 Base 编码有不同的字符集,常见的有 Base64、Base32 和 Base16。
工具:
解密的时候要注意是不是换表的base
cyberchef
一个解密的网站
随波逐流
随波逐流支持换表base,多行base
其中有个base64隐写解密甚至可以把解密出来的脚本运行了
puzzlesolver
这个可以补全base32,64隐写
basecrack
先要装好工具
因为我给basecrack单独装了一个虚拟环境,所以运行时候要激活它
切换到目录
1 | cd basecrack |
激活虚拟环境
1 | source venv/bin/activate |
运行
1 | python basecrack.py |
就可以开始解密了。
如果想让他一直解密的话用
1 | python basecrack.py -m |
脚本
如果确信是base加密而以上方式都没有解密出来的话可以试试这个脚本
1 | import base64 |
MD5加密解密
加密网站(适用于让你包上md5提交的): https://www.geekstool.com/tool/md5
凯撒加密
凯撒加密的原理是换位,我们需要注意换位的key会不会变化
如果key会变的话我们需要编写脚本来解密了
如果没有的话直接cyberchef或者随波逐流都可
brainfuck加密
注意对开头的内容有要求
-随波逐流里有
-网站:https://www.splitbrain.org/services/ook
Ook! Obfuscation加密
-网站:https://www.splitbrain.org/services/ook
serpent加密(蛇对称加密算法)
-网站:http://serpent.online-domain-tools.com
颜文字加密(aaencode/jjencode/ppencode/uuencode/xxencode)
-aaencode随波逐流里面有
-其他的可以用在线网站http://www.hiencode.com/
emoji-aes加密
解密需要密钥
类似于
1 | 🙃💵🌿🎤🚪🌏🐎🥋🚫😆😍🔬👣🖐🌏😇🥋😇😊🍎🏹👌🌊☃🦓🌏🐅🥋🚨📮🐍🎈📮📂✅🐍⏩⌨🎈😍🌊😇🐍☺💧🥋🍌🎤🍍😇👁🦓😇🍍📮📂🎅😡🍵✖✉🏹⌨🍵🎤😆🍵🚹🏹🍎🚨ℹ☃👑🎤🚪💵😎😀😎🔬💵🦓🏹👉🦓✖😀🐘🔪⌨🎈🥋👌🍌🚹😂✉🍎🍌🏎👌🏹💵👌👁🎃🗒 |
这种全是emoji的加密,使用在线网站: emoji-aes
注意base100也是emoji这样的
音符加密
解密网站: 文本加密为音乐符号,可自设密码|文本在线加密解密工具
手机九宫格加密
第一种
每组数字只有两个,类似于82 73 42 31 22 31 33 41 32这种
对照表如下:
密码 | 明文 | 密码 | 明文 |
---|---|---|---|
11 | : | 61 | m |
12 | _ | 62 | n |
13 | - | 63 | o |
21 | a | 71 | p |
22 | b | 72 | q |
23 | c | 73 | r |
31 | d | 74 | s |
32 | e | 81 | t |
33 | f | 82 | u |
41 | g | 83 | v |
42 | h | 91 | w |
43 | i | 92 | x |
51 | j | 93 | y |
52 | k | 94 | z |
53 | l |
第二种
类似于
1 | 999*666*88*2*777*33*6*999*4*4444*777*555*333*777*444*33*66*3*7777 |
这种
直接手机九宫格上打就好了,次数对应长按的第几个。
AES-ECB加密
可以用cyberchef
可以用脚本,如下:
1 | import base64 |
alphuck代码加密
一种怪异的编程语言
内容类似于
1 | iiciccepepceaiiiaiaiaicccsascciijceeeeeejccijjccjcejaajaajcccjeeejaajaaijcccej |
在线网站: alphuck在线运行,在线工具,在线编译IDE_w3cschool
autokey加密
一种加密方式,python2运行
项目地址: hotzzzzy/breakautokey: breakautokey
需要修改break_autokey.py里面密文的值然后运行
ToyCipher加密
一种加密方式,对照表: 301.pdf
脚本转化:
1 | cipherdic = {'M':'ACEG','R':'ADEG','K':'BCEG','S':'BDEG','A':'ACEH','B':'ADEH','L':'BCEH','U':'BDEH','D':'ACEI','C':'ADEI','N':'BCEI','V':'BDEI','H':'ACFG','F':'ADFG','O':'BCFG','W':'BDFG','T':'ACFH','G':'ADFH','P':'BCFH','X':'BDFH','E':'ACFI','I':'ADFI','Q':'BCFI','Y':'BDFI'} |
奇奇怪怪的加密
有一些奇怪的加密可以尝试去随波逐流找找看
随波逐流/其他工具/更多图形密码(在线)
TXT文本隐写
思路:
看是什么隐写了,是NTFS?还是snow?还是什么
NTFS交换数据流(简称ADS)
NTFS交换数据流(简称ADS)是NTFS磁盘格式的一个特性,在NTFS文件系统下,每个文件都可以存在多个数据流,除了主文件流之外还可以有许多非主文件流寄宿在主文件流中,而我们无法查看到非主文件数据流,因文件夹大小始终显示0
注意ntfs的压缩包要用WinRAR解压,否则可能解压不出来ntfs流
以下是进行文件流计生和查看的方法,以后在windows命令行下查看文件,都用 dir /r
寄生一:
echo 写入内容>>宿主文件:交换数据流文件(寄生文件)
echo ever>>1.txt:2.txt
2.txt为echo创建出交换数据流文件,ever在2.txt中
寄生二:
type 交换数据流文件(寄生文件)>>宿主文件夹:交换数据流文件(寄生文件)
type 2.txt>>temp:2.txt
temp为空文件夹,执行后2.txt寄生在temp文件夹上
type a.jpg>>temp:a.jpg
temp为空文件夹,执行后a.jpg寄生在temp文件夹上
查看:
notepad 宿主文件:交换数据流文件(寄生文件)
notepad 1.txt:2.txt
查看图片文件:
mspaint 宿主文件:交换数据流文件(寄生文件)
notepad a.jpg:b.jpg
过滤
dir /r | findstr $DATA (过滤DATA字符串)
例题可以看BUUctf的 [SWPU2019]我有一只马里奥
网站讲解: https://zhuanlan.zhihu.com/p/654643812
工具:NtfsStreamsEditor或AlternateStreamView
snow加密
需要密码,当然也可以无密码解密
1 | snow.exe -p password -C encoded.txt |
零宽字符
零宽度字符是一些不可见的,不可打印的字符。它们存在于页面中主要用于调整字符的显示格式。它们在文本中占有位置却不显示
零宽字符的特征还是蛮明显的,发现了就直接网站解密就好: Unicode Steganography with Zero-Width Characters
或者随波逐流里面有零宽字符解密。
字频统计
有一些txt里面是一堆东西比如字母之类的,实际上是要我们统计字频
其实一般来说有大量的文本内容就应该试试是不是统计字频
可以使用puzzlesolver
空格-Tab隐写
一个txt全选会发现有很多空白内容
sunblime/notepad++打开会发现有很多空格和Tab
这种一般是莫斯密码,手敲一下然后转化就行
encrypto文件
一个加密软件,需要密钥
解密这种文件的话需要加上.crypto
后缀名,否则是加密
这个加密方式对文件的16进制内容要求很严格,如果在确信是这种加密和密钥正确的情况下跑了很久都没出的话,可以试试010打开文件看看16进制有没有问题(比如有干扰的字符的话就跑不出来)
火狐登录凭证
一般是logins.json
建议使用firepwd:lclevy/firepwd: firepwd.py, an open source tool to decrypt Mozilla protected passwords
安装库(建议在虚拟机上搞)
1 | plaintext |
如果crypto报错(kali上搞)
1 | plaintext |
然后
1 | plaintext |
3D打印命令
命令大概长这样
3D打印的命令,命令大全: 3D打印gcode命令大全及解析_move exceeds maximum extrusion-CSDN博客
改后缀为gcode,在线查看网址: gcode viewer - online gcode viewer and analyzer in your browser!
如果看不清的话 在2D渲染里面把干扰项去掉就行
不同编码
不同编码下的txt内容如果选择不正确的编码的话肯定看不出来
如果看到乱码的话可以多试试其他编码,如utf16,utf8,ebcdic等等
1.EBCDIC编码: 什么是 EBCDIC 收集了有关计算机普及的最新文章 - Hatena
在010的视图里面选择EBCDIC,就能看到了
反转文本
有时候遇到打开文本,能观察出这个文本是反转过的(因为发现了文件头或者别的什么东西)
可以使用puzzlesolver的反转或者试试cyberchef的reverse项(没那么好用,建议一般找ai跑脚本)
或者使用脚本反转回来,这里脚本仅处理一种情况,最终还是得ai跑。
1 | with open('E:/python3.7/1.txt', 'r', encoding='utf-8') as file: #记得改路径 |
sunblime/notepad++
有时候什么东西都看不到,感觉类似于无字天书。可以复制进sunblime看看
而且感觉sublime text与notepad++一样,都是查看东西的,记事本打不开的话可以试试,有很多莫名奇妙的后缀文件一般都可以打开。
图片题
思路:
可以先拖进随波逐流看看
没有再010看看有无隐写
实在不行看看文件属性里有没有备注
压缩了宽高
有些题目会压缩图片宽高,我们需要爆破出来,jpg可以乱改宽高,png不行,需要知道原本的宽高。
1.随波逐流把文件拖进去会自己分析,如果压缩了宽高会自己爆破回来,很好用
2.010可以自己修改宽高
png爆破crc脚本
实测这个脚本在宽高比较低的时候好用,超过1000就不好用了,爆破得很慢
1 | #使用python3爆破png图片的宽高数据 |
stegdetect
这个是用来检查图片是什么隐写的
我这里下的是windows版本,对应目录下cmd
1 | stegdetect.exe 图片路径 |
outgruss隐写
1 | outguess -k ‘key’ -r 加密后的图片.jpg -t 明文.txt |
F5-steganography
题目可能会提示关于刷新一类的字眼
装好工具后
1 | cd F5-steganography |
再
1 | java Extract 1.jpg -p 123456 #-p后接f5的key |
有时候报错需要我们加上
1 | --add-opens java.base/sun.security.provider=ALL-UNNAMED |
steghide
直接跑
1 | steghide extract -sf stg.jpg |
stegseek
跑
1 | stegseek --seed example.jpg |
pngcheck——png图像修复
检查png的chunk
1 | pngcheck -v decode.png |
如果检查出来如 invalid chunk name “0000” (30 30 30 30)
就去010把对应的chunk 0000 修改为 IDAT
oursecret隐写
一种隐写方式,需要密码。
特征是010打开会发现有一个多余的部分,并且开头是9E 97 BA 2A
binwalk和formost提取
如果有文件隐写在图片里面,可以尝试binwalk和formost提取一下
附一个图片题分析网站: Aperi’Solve ,也不知道有没有用()
silghteye隐写
特征:放大图像后会有行列不对齐的小灰块
直接用 silenteye 打开输入密钥decode即可,默认密钥是 silenteye
下载地址: SilentEye - Steganography is yours
LSB隐写
stegsolve
lsb是利用人眼看不到的原理在最低位隐写内容
stegsolve可以查看图片的LSB通道,如果是最低位lsb隐写的话可以stegsolve一下
运行stegsolve
1 | java -jar stegsolve.jar |
需要电脑配置好了java环境变量
stegsolve可以看到最低位的一些数据,然后手动save bin,再用010转化
zsteg——无密钥
1 | zsteg -a (文件名) #查看各个通道的lsb |
感觉stegsolve更好用
cloacked-pixel——有密钥
先
1 | cd cloacked-pixel |
再
1 | python2 lsb.py extract encoded.png result.txt 123456 |
最后
1 | cat result.txt |
盲水印
用puzzlesolver的fft(傅里叶变换)
双图盲水印也可以puzzlesolver
提取等距像素点
特征:放大图片后看到一个个小的像素点
提取方法1:PS
将宽度高度/10 重新采样选择 临近(硬边缘)
或者在调宽高的时候用鼠标滚轮来调,能更精细一点
但是实测出来效果不佳,得到的图片很糊
方法二:脚本
1 | import os |
python脚本跑的更精确一点,需要知道图片像素起始位置和结束位置,以及像素之间的间距(可以在PS里知道)
输入以下代码:(要注意有时候跑不出来可以复制到桌面上试试)
1 | python get_pixels.py -f comeon.png -p 0x0+3828x2148 -n 12x12 |
这个脚本跑出来更精细一点,也更推荐
cimbar
对照表(简单的),项目地址: https://github.com/sz3/cimbar
exiftool分析图片信息,如GPS
查看信息,记得要在对应目录下开终端
1 | .\exiftool 1.jpg |
查看GPS
1 | .\exiftool -gps:all 1.jpg |
Arnold猫脸变换
参考链接: https://1cepeak.cn/post/arnold/
解密需要提供打乱次数,a,b 。
加密 / 解密代码:
1 | # -*- coding: UTF-8 -*- |
如果报错如下:
decode_image = np.zeros(shape=image.shape) AttributeError: ‘NoneType’ object has no attribute ‘shape’
可以修改如下:
1 | # 1:创建新图像,指定 dtype 为 uint8 |
色彩图提取颜色值
一般会给一张图片,里面有几种颜色
我们可以使用ps-取色器来提取其中的颜色的RGB的16进制值
然后拼接转ascii
apng/bpg
这种图片一般的图片编辑器打不开
1.apng
apng简介: 科普(APNG) - 哔哩哔哩
可以使用firefox打开
2.bpg
地址: 发行版 Simple BPG Image viewer · asimba/pybpgviewer
GIF
gif一般是拆分gif
以及帧间隔里面可能藏东西
使用puzzlesolver即可
二维码
[!NOTE]
扫描二维码实用排行:
T0:
Binary Eye
、Umi-OCR
T0.5:在线网站
T1:
CQR
T2:微信、夸克等
特殊:中国编码app、半张二维码手动补全:QRazyBox - QR Code Analysis and Recovery Toolkit
.
1.得到的二维码可以用CQR扫一下,或者微信扫一下
在线二维码解码网站: https://qrcode-decoder.com
如果以上都没扫出来的话可以手机上下一个Binary Eye
扫一下,或者用Umi-OCR
(没想到吧这个也能扫二维码)试试看
注意汉信码扫不出来,需要去下中国编码app来扫(又称中国的二维码,特点就是四个角,且左下角方向是反的。)
汉信码例子长相:
2.二维码也容易出拼接题目。如果是拼接题的话可以用PS
或者PPT
(修复同理)
拼图题
一般来说是碎的图片修复一下,有两种方式
1.PS/PPT
可以用ppt来拼接图片,如果不行就用ps,需要ps的熟练度
2.gaps/Puzzle-Merak
如果是一个文件夹下面多个碎掉的图片,我们先把他们拼成一张的
1 | montage *.PNG -tile 10x12 -geometry +0+0 out.png |
然后就能得到一张全是碎图片拼接起来的图片了,顺序此时还没恢复过来。
①gaps
png的
1 | gaps --image=out.png --generation=30 --population=144 --size=30 --save |
jpg的
1 | gaps --image=flag.jpg --generations=50 --population=180 --size=125 --verbose |
②Puzzle-Merak
注意新建的时候要看好图片的像素大小!
选择脚本-自动拼接(gaps)
这里需要我们填写generation、population、size 并用分号分开
–generations 遗传算法的代的数量
–population 个体数量
–size 拼图块的像素尺寸
PDF题
编辑pdf
例如那种把图片底下有东西的题目
-在线网站 https://tool.lu/pyc/
或者可以尝试使用pdf转word,然后编辑word
音频题
思路:
拿到不管三七二十一先拖进audacity看一下
摩斯密码
看频谱图的时候如果发现是摩斯密码我们直接对着摩斯密码手敲解密
拨号音隐写——DTMF
听着像是在拨号一般的声音,频谱图发现
类似这样的是DTMF隐写
需要我们手敲
把最高和最低一一对应
[!NOTE]
注意DTMF中频率只有697 Hz、770 Hz、852 Hz、941 Hz、 1209 Hz、1336 Hz、1477 Hz 和 1633 Hz
上图手敲得到
1 | 1336-697 1336-941 1336-697 1209-770 1336-941 1477-852 1477-697 1336-941 1336-697 1336-941 1336-697 1209-770 1209-697 1209-697 1336-941 1477-697 |
然后复制进网站解密即可: https://www.dcode.fr/dtmf-code#:~:text=A DTMF code for dual-tone multi-frequency
也可以试着把音频直接拖进随波逐流分析,或者在线网站: Detect DTMF Tones
SSTV慢扫描
github项目: https://github.com/colaclanth/sstv
1 | sstv -d audio_file.wav -o result.png |
注意解码出来是一张图片
然后查看图片
1 | eog result.jpg |
。
如果github的sstv扫不出来的话可以使用RX-SSTV
项目下载地址: https://www.qsl.net/on6mu/rxsstv.htm
可以配一个虚拟声卡使用,当然也可以直接扬声器。
deepsound
如果把音频拖进deepsound解密要密码的话一般就是deepsound隐写
密码看有没有其他地方得到
或者利用deepsound2john.py得到这个音频文件的哈希值后再john破解
silghteye隐写
当然音频也可以slighteye隐写,默认密码是silghteye
窄带FM调制
一般拿到文件是GNU Radio流图的配置,它描述了一个无线通信系统的信号处理过程,包括信号生成、滤波、调制、解调等步骤。
利用 GNU Radio打开
1 | gnuradio-companion file_name.grc |
PT2242信号
即电单车的解锁信号
前面4bit表示同步码,中间的20bit表示地址码,后面的4bit表示功能码,最后一位是停止码。
我们直接以时间的长短来表示0和1,打出二进制就好
ZIP题
思路:
zip有密码先看是不是伪加密,再看能不能爆破出来,要不要明文攻击,有没有注释,还有可能是脑洞。。
手动修复zip文件可以看看 其他 && 工具
里的 010editor .zip模板对照表
伪加密
压缩源文件数据区:7-8位是frFlag
压缩源文件目录区:9-10位是deFlag
一般的出题人会修改这两个地方为奇数,从而显示出伪加密的样子
一般这俩地方都是09 00的,大概率就是伪加密了,具体可看zip文件结构
详细可以见我这篇博客 关于ZIP伪加密 | MetaVi
省流版:
工具 | 建议/判断位置 |
---|---|
010 | 建议两个区都修一下 |
bandizip/winrar | 判断dirEntry区中的deflag位 |
7zip | 判断record区的frFlag位 |
随波逐流修复伪加密 | 只修改dirEntry区中的deflag位,不管frFlag位 |
ZipCenOp | 不好用! |
直接爆破
1.archpr
如果已知zip的密码很弱可以直接使用archpr来爆破密码
实际上感觉这个也用的比较多
注意archpr不支持rar5的爆破
2.fcrackzip
kali的工具
1 | fcrackzip -u -v -D -p PASSWORD_FILE ZIP_FILE |
我没怎么用过,感觉应该没有archpr好用
3.passwarekit
也可以用这个工具,比archpr好用,这个能爆破许多东西
4.rar5爆破
rar5爆破可以使用rar2john+hashcat
先
1 | rar2john 1.rar |
会得到哈希值
然后hashcat爆破
1 | .\hashcat.exe -m 13000 -a 3 rar_hash GW?a?a?a?a |
CRC32爆破
项目地址: https://github.com/allblue147/zip-crc-tools
crc爆破是里面文件很短,一般只有几字节的情况下
1 | python .\main.py -f decode.zip |
特别需要注意的是要保证 zip 及里面 txt 的名字不能出现中文,有的话重命名一下
掩码爆破
已知部分明文,而且知道密钥的位数的情况下使用掩码爆破
利用archpr进行掩码爆破,不知道的部分改为 ? (注意是英文的问号)
多个压缩包脚本解压
1.多个压缩包带密码
适用于有多个压缩包,而且密码是压缩包的名字
当然此类的压缩包还有很多,需要很多脚本,可以尝试ai跑
1 | import os |
2.压缩包套娃,无密码
bash脚本:
1 | while [ "`find . -type f -name '*.tar.xz' | wc -l`" -gt 0 ]; do find -type f -name "*.tar.xz" -exec tar xf '{}' \; -exec rm -- '{}' \;; done; |
一些tips
1.如果是连环套压缩包而且有zips,rar,7z等格式的小心是后缀换成摩斯密码解密。
2.空白名文件:出题人可能会把里面文件名字改为空白的,这样bandizip就解压不了了,多试试7zip
解压吧!
3.多用用010的模板功能来看压缩包
明文攻击
明文攻击的压缩方式是store,如果是store的话一般就是需要明文攻击
pkcrack——已知所有的明文或三段密钥
命令
1 | pkcrack -c "README.txt" -p README.txt -C flag.zip -P README.zip |
方法
1 | -C:要破解的目标文件(含路径) |
三段密钥已知了的话也可以用Advanced Archive Password Recovery
bkcrack——已知部分明文/部分文件的所有明文
参数
1 | -c 要解密的文件 |
1.已知部分文件里的部分明文
1 | 至少已知明文的12个字节及偏移,其中至少8字节需要连续。 |
已知的部分明文可以是zip的文件名字
2.已知一个zip里的一个文件的全部内容
例如一个zip里包含 flag.txt 和 md5.txt,可以
1 | bkcrack -C 222.zip -c md5.txt -P 11.zip -p flag.txt |
或者可以
1 | bkcrack -C 222.zip -c important-md5.txt -p flag.txt |
就可以明文攻击三段密钥了。
3.已知三串密钥
=>>拿到了三串密钥之后可以改加密密码另存文件
1 | bkcrack -C 222.zip -k 119be489 086fed79 8cbf1ed7 -U out.zip 1234 |
或者爆破出原本密码(知道密码长度)
1 | bkcrack -k 119be489 086fed79 8cbf1ed7 -r 11 \?b |
不知道长度也可以爆破
1 | bkcrack -k 119be489 086fed79 8cbf1ed7 -b \?b |
流量分析题
思路:
先导出一下http,tcp,ftp看一下有没有什么东西,没有再过滤,一个个查看tcp流
如果有东西可以保存下来。
有的是键盘流量和鼠标流量,注意辨别。
如果没思路的话可以试试foremost或者binwalk一下
更多流量分析可以看这个 Network Traffic Analysis | MetaVi
常用命令
过滤post
1 | http.request.method==POST |
过滤get
1 | http.request.method==GET |
统计ip:
利用wireshark的统计-IPv4 Statistics-ALL Address
功能可以查看IP的数量大小
TLS加密
一般来说这种加密是你看不到http等流量,需要文件等把他们解密出来才能看到
解密方法:
1 | 私钥文件 |
就能看到了
log文件一般格式
第一种(rsa私钥):
1 | -----BEGIN RSA PRIVATE KEY----- |
第二种:
1 | CLIENT_HANDSHAKE_TRAFFIC_SECRET <ClientHello随机数> <密钥> |
(第二种的log文件编辑时记得不用加<>)
SQL注入——布尔盲注
它是用ascii码的大小比较来判断库名、表名、字段名和字段值的内容的
用二分法来爆破得出库里内容的
可以试着先过滤一下http流量,再/文件/导出分组解析结果/AS CSV,把流量导出成表格。看得更清楚。
一般来说,前面的内容是hacker来判断数据库名、表名、字段名的,我们可以直接拉到最下面来看。
因为用的是二分法,所以在对一个字符进行bool判断时,被重复判断的ASCII值就是正确的字符。
我们需要找到被重复判断的flag的ascii转化。
NTML流量分析(SMB流量)
我们需要的是这些东西
1 | username::domain:ServerChallenge:NTproofstring:modifiedntlmv2response |
有两种方式
1.tshark
tshark可以获得username::domain:ServerChallenge:NTproofstring:
,但是没有modifiedntlmv2response
命令(tshark是kali自带的)
1 | tshark -n -r eztraffic.pcapng -Y 'ntlmssp.messagetype == 0x00000003' -T fields -e ntlmssp.auth.username -e ntlmssp.auth.domain -e ntlmssp.ntlmv2_response.ntproofstr -e ntlmssp.auth.sesskey -e smb2.sesid |
接下来还是要回到流量里找modifiedntlmv2response
,这里顺便讲了第二种方法
2.流量里找
过滤这个
1 | ntlmssp |
找到NTLMSSP_AUTH
包 打开流量包中的 Security Blob
层 复制用户名、域名
然后过滤
1 | ntlmssp.ntlmserverchallenge |
查找NTLM Server Challenge
字段,通常这个数据包是在NTLM_Auth
数据包之前,将该值作为十六进制字符串复制到文本文档
最后需要的modifiedntlmv2response
仍然在NTLM_Auth
里
需要我们在里面找到NTLMv2 Response
除了NTProofStr
以外的就是我们要找的modifiedntlmv2response
了(注意这里复制hex值)
==>得到的所有东西需要以
username::domain:ServerChallenge:NTproofstring:modifiedntlmv2response
形式保存到txt文本里,然后使用hashcat爆破
1 | .\hashcat -m 5600 hash.txt rockyou.txt |
就能拿到密码了。
USB流量
usb流量还是蛮好辨别的:键盘流量是8字节的,鼠标是4字节。
可以先用tshark提取
1 | #这个格式为 usbhid |
或者
1 | #这个格式是 usb.capdata. |
键盘流量
键盘流量有标准——hid键盘标准: https://www.usb.org/sites/default/files/documents/hut1_12v2.pdf
如果看的烦的话也可以去网上搜相关的标准
/
或者我们可以去下一个 UsbKeyboardDataHacker——恢复击键信息
地址 GitHub - WangYihang/UsbKeyboardDataHacker: USB键盘流量包取证工具 , 用于恢复用户的击键信息
为此我还安装了虚拟环境
先激活环境
1 | source UsbKeyboardDataHacker/bin/activate |
再切
1 | cd UsbKeyboardDataHacker |
分析(注意要在同目录下)
1 | python3 UsbKeyboardDataHacker.py --input key.pcap |
TTL加密
看到的txt类似于这种:
实际上这是TTL加密
[!NOTE]
TTL加密:
简单来说就是,图中63,127,191,255转化为二进制的值分别为 00111111,01111111,10111111,11111111。发现只有前两位不同,TTL加密就是利用前两位进行加密,将每个前两位重新进行合并,8位为一组。
所以TTL加密的解密方法:
1,将所有前两位合并为8位,并且每八位一组。
2,将上面的每组转化为十六进制的字符
解密脚本:
1 | import binascii |
这个脚本要跑好一会,最后保存至111.txt。
voip流量
这种实际上就是电话的流量
可以在wireshark中点击电话-voip通话
来查看
内存取证/磁盘取证
思路:
这种需要虚拟机来挂载文件,可以使用vmware或者FTK,我做的不多。。
或者用vera挂载的。
veracrypt
这个需要一个文件,可以挂载磁盘
而且可能会需要密钥和密钥文件,例子:
注意:不同密码可以解密出不同的磁盘文件
vol2 || vol3
可以使用vol2或3来分析
查看imageinfo——查看操作版本
1 | vol.py -f image.raw imageinfo |
lsadump——看用户密码
1 | vol.py -f image.raw --profile=Win7SP1x86_23418 lsadump |
vol2的一些基本命令
1 | # 识别操作系统的基本信息 |
注意,mspaint.exe是画图进程,可能会藏东西,如果有的话可以dump下来,改后缀为.data,使用GIMP2打开图片。不断修改x,y的值直到看到藏的东西。(GIMP2可以在microsoft store里下到)
.vmdk文件
后缀为 .vmdk
的文件是 VMware 虚拟磁盘文件,通常用于虚拟机环境中存储虚拟机的磁盘数据。
vmdk可以用7z解压!
可以使用虚拟机打开试试。
有些可以看010,有内容的话,可以尝试解密,有时候直接复制解密不了
可以使用kali自带的7z解密提取这些文件
1 | 7z x flag.vmdk -o./ |
解压后就能看到好几个文件夹。
vhd文件
这是磁盘文件,可以直接双击打开,会发现多了两个磁盘,在磁盘里可以找东西
怎么虚拟化来看图形化界面?
使用Hyper-V搭建虚拟机(怎么下Hyper-V?可以看这个
注意挂载vhd的时候要选择第一代来挂载,不然会报错
进入后可以win+r看上一条命令找线索。
理论上也可以更改vhd格式来使用vmware挂载。
如果vhd用了BitLocker加密的话我们可以使用Elcomsoft Forensic Disk Decryptor
进行解密
iso映像文件
一般是u盘文件,可以直接改后缀为zip然后解压,或者formost提取出里面的内容
img文件
可以kali挂载
1 | mount 1.img /mnt |
也可以试试其他工具
安卓取证
安卓取证一般是给vmdk
文件或者ovf
文件,都可以用vmware挂载,后者可以直接在vm打开文件
DiskGenius
用于恢复磁盘删除的文件,也可以直接全部扫描然后提出来。
pyjail / py沙盒逃逸
思路:
要看他给没给源代码,没有怎么猜测,给了怎么绕过黑名单/长度限制等等
参考链接:
Python Jail 沙盒逃逸 合集_pyjail-CSDN博客
ms-office题
思路:
可以改后缀为zip看看,文本里可能会把文字改成白色的来隐藏可以ctrla+改色看看
遇到的加密过的mc-office可以用passwarekit来爆破
ms-office文件本质是zip
MS-Office文件word、excel、ppt本质都是zip文件,就可以隐写。
可以直接改后缀名为zip
宏
如果后缀是docm的话可能有宏,在宏里看看
1.WPS自带宏查看,在 视图/宏/查看宏 里
2.使用olevba
1 | olevba decode.docm |
doc里隐藏文字
勾选文件/选项/显示/隐藏文字
然后看看有无隐藏的东西
视频题
思路:
我遇到的一般是在视频的某一帧里藏二维码之类的内容,需要好点的眼力
帧慢放
使用potplayer即可
osint
思路:
exiftool识别图片gps
谷歌识图,谷歌地图等等
识图
谷歌识图:https://images.google.com/?hl=zh-cn
yandx识图:https://yandex.com/images/
exiftool查看gps
地图/定位
试试谷歌地图看街景,但谷歌的街景是很久以前的,所以有可能出不来
谷歌地图:https://www.google.com/maps/?hl=zh-cn
百度地图:https://map.baidu.com/@13322349,3375628,13z
LTE定位基站地址
定位网址: 移动联通电信基站位置查询
3词描述地址
网站:what3words /// The simplest way to talk about location
其他 && 工具
反编译——这应该是reverse领域才对。。
pyc反编译
.pyc
是 Python 编译后的字节码文件,通常是在运行 Python 脚本时由解释器自动生成,用于加速程序运行想查看
.pyc
文件的源码,可以使用反编译工具 uncompyle6 将其还原为.py
文件。
-使用 uncompyle6
-在线网站 https://tool.lu/pyc/
pyc也有剑龙隐写,地址: AngelKitty/stegosaurus: A steganography tool for embedding payloads within Python bytecode.
如果有1.pyc,直接(注意这里python的版本要是3.6的,也许是要对应pyc文件的代码的python版本,我们可以使用pyenv切换python版本)
1 | python stegosaurus.py -x 1.pyc |
exe反编译
使用IDA
apk反编译
使用jadx-gui-1.4.4-no-jre-win.exe
eml文件
拿到一个邮件文件后缀是eml的可以利用QQ邮箱,
选择写信,收信人写自己,把eml文件拖进去,然后发送。
之后自己就能收到这个文件,QQ邮箱可以预览eml文件,如果有附件的话直接下载就好了。
.dmp文件
dmp文件是windows系统中的错误转储文件,当Windows发生错误蓝屏的时候,系统将当前内存【含虚拟内存】中的数据直接写到文件中去,方便定位故障原因。
里面包含主机用户密码信息
.dmp文件binwalk和foremost提不出来,需要我们手动提一下
提出来之后用mimikatz
分析文件,下载地址 发行版 2.2.0 20220919 Djoin parser & Citrix SSO Extractor · gentilkiwi/mimikatz · GitHub
这个是已经打包好的exe,直接运行就行
相关命令
1 | //提升权限 |
画图
1.gnuplot
得到诸如(7,7)的文本我们需要转化成 7 7 ,如
转化成 ↓ ↓ ↓
可以直接使用记事本的替换功能,比脚本好用的多
脚本(不推荐):
1 | with open('E:\meihuai.txt', 'r') as res: # 坐标格式文件比如(7,7) |
然后
1 | gnuplot |
再
1 | plot 'zuobiao.txt' |
来进行画图,画好后会自己打开
2.RGB数据串转图片
可以用随波逐流
不行就脚本
1 | from PIL import Image |
3.Logo画图
这种的代码很有特征,类似于这种:
1 | cs pu lt 90 fd 500 rt 90 pd fd 100 rt 90 repeat 18[fd 5 rt 10] lt 135 fd 50 lt 135 pu bk 100 pd setcolor pick [ red orange yellow green blue violet ] repeat 18[fd 5 rt 10] rt 90 fd 60 rt 90 bk 30 rt 90 fd 60 pu lt 90 fd 100 pd rt 90 fd 50 bk 50 setcolor pick [ red orange yellow green blue violet ] lt 90 fd 50 rt 90 fd 50 pu fd 50 pd fd 25 bk 50 fd 25 rt 90 fd 50 pu setcolor pick [ red orange yellow green blue violet ] fd 100 rt 90 fd 30 rt 45 pd fd 50 bk 50 rt 90 fd 50 bk 100 fd 50 rt 45 pu fd 50 lt 90 pd fd 50 bk 50 rt 90 setcolor pick [ red orange yellow green blue violet ] fd 50 pu lt 90 fd 100 pd fd 50 rt 90 fd 25 bk 25 lt 90 bk 25 rt 90 fd 25 setcolor pick [ red orange yellow green blue violet ] pu fd 25 lt 90 bk 30 pd rt 90 fd 25 pu fd 25 lt 90 pd fd 50 bk 25 rt 90 fd 25 lt 90 fd 25 bk 50 pu bk 100 lt 90 setcolor pick [ red orange yellow green blue violet ] fd 100 pd rt 90 arc 360 20 pu rt 90 fd 50 pd arc 360 15 pu fd 15 setcolor pick [ red orange yellow green blue violet ] lt 90 pd bk 50 lt 90 fd 25 pu home bk 100 lt 90 fd 100 pd arc 360 20 pu home |
那就是画图没跑了
在线网站: Logo解释器
4.base64转图片
随波逐流
路由器配置查看工具
RouterPassView
-下载 https://routerpassview.en.lo4d.com/windows
使用方法:
用于恢复路由器密码的工具,能够从路由器中提取用户,密码,无线密钥等信息
RouterPassView,大多数现代路由器允许您备份到一个文件路由器的配置,然后从文件中恢复配置时的需要。路由器的备份文件通常包含了像您的ISP的用户名重要数据/密码,路由器的登录密码,无线网络的关键。如果你失去了这些密码1 /钥匙,但你仍然有你的路由器配置的备份文件,RouterPassView可以帮助你从你的路由器恢复您丢失密码的文件。
010editor .zip模板对照表
1 | + ZIPFILERECORD record # 压缩源文件数据区 |
一些kali的小知识
基本命令
1 | ls #列出所有东西 |
切换python版本
kali自带python2.7和python3.x,有时候需要我们切换
1 | update-alternatives --config python |
然后选序号就行
图形化桌面-远程连接
这个要自己下
1 | kex |
虚拟环境
Kali Linux 对 Python 包管理进行了限制,防止系统范围内的 Python 安装被破坏。所以有时候报错是需要使用虚拟环境
创建一个新的虚拟环境:
1 | python3 -m venv env #env是虚拟环境名称,可以更改 |
激活虚拟环境:
1 | source env/bin/activate |
在虚拟环境中就可以安装一些东西了
退出虚拟环境:
1 | deactivate |
删除虚拟环境只需要删除对应虚拟环境的目录即可
一些windows的小知识
基本命令
1 | ls #列出所有东西 |
alt
按住alt再按小键盘的数字的话可以输出对应的ascii码值,比如我按住alt再按65的话会输出A
删除windows自带防火墙——windows defender
github地址: https://github.com/ionuttbara/windows-defender-remover
Linux提权
详细见我这篇博客 Linux提权浅析 | MetaVi
区块链Blockchain
详见我这篇博客 区块链Blockchain学习 | MetaVi