misc学习

misc简介

zip伪加密

1.伪加密原理:

ZIP伪加密是通过修改ZIP文件结构中特定的‌全局方式位标记‌(通常位于压缩源文件目录区),使压缩包被识别为加密状态,但实际上并未对数据加密。关键点包括:

  • 文件结构‌:ZIP文件由三部分组成:压缩源文件数据区、目录区和目录结束标志。

  • 加密标志位

    数据区‌的全局方式位标记(如00 00表示无加密,01 00表示真加密)。

    目录区的全局方式位标记(若为奇数如09 0001 00,则被识别为加密,但数据区未加密时即为伪加密)。

  • 伪装效果‌:仅修改目录区的标志位,实际数据未加密,因此无需密码即可破解。

2. ‌识别伪加密的方法‌

  • 检查标志位‌使用十六进制编辑器(如Winhex或HxD)查看文件头:

    搜索50 4B 01 02(目录区标识),定位到第9-10字节,若为奇数(如09 00)且数据区标志为00 00,则为伪加密。

    真加密需数据区和目录区标志位均为奇数。

使用工具:010editor、winhex

1
2
3
4
5
6
7
8
9
10
1.无加密: 压缩源文件数据区的全局方式位标记应当为00 00 (50 4B 03 04 14 00 后) 且压缩源文件目录区的全局方式位标记应当为00 00 (50 4B 01 02 14 00 后)

2.伪加密:
压缩源文件数据区的全局方式位标记应当为 00 00 (50 4B 03 04 14 00 后) 且压缩源文件目录区的全局方式位标记应当为 09 00 (50 4B 01 02 14 00 后)

3.真加密:
压缩源文件数据区的全局方式位标记应当为09 00 (50 4B 03 04 14 00 后)
且压缩源文件目录区的全局方式位标记应当为09 00 (50 4B 01 02 14 00 后)

4.修改方法:确定是伪加密后就需要将其修改为无加密,方法很简单,就是将压缩源文件目录区的全局方式位标记从09 00改为00 00。

盲水印

盲水印技术是一种用于隐藏信息的技术,通常用于在图像或文件中嵌入不可见的标记或信息,使得这些信息在不被察觉的情况下可以被追踪或识别。这种技术可以用于版权保护、追踪来源、甚至是隐藏秘密信息。

使用工具:BlindWaterMark

1
2
3
4
5
6
1.png	原图
2.png 藏有盲水印的图片
3.png 盲水印图片


python bwmforpy3.py decode 1.png 2.png 3.png

常见文件头、文件尾

  • JPEG (jpg)文件头:FF D8 FF;文件尾:FF D9

  • PNG (png)文件头:为89 50 4E 47 0D 0A 1A 0A,文件尾格式为49 45 4E 44 AE 42 60 82

  • GIF (gif) 文件头:47 49 46 38 39 61;文件尾:00 3B

  • TIFF (tif)文件头:49 49 2A 00

  • XML (xml)文件头:3C 3F 78 6D 6C

  • HTML (html)文件头:68 74 6D 6C 3E

  • Adobe Acrobat (pdf)文件头:25 50 44 46 2D 31 2E

  • ZIP Archive (zip)文件头:50 4B 03 04;文件尾:50 4B

  • TAR (tar.gz)文件头:1F 8B 08 00

  • RAR Archive (rar)文件头:526172211A0700 C43D7B00400700

  • Wave (wav)文件头:57415645

  • AVI (avi),文件头:41564920

  • MS Word/Excel (xls.or.doc)文件头:D0CF11E0

  • Adobe Photoshop (psd)文件头:38425053 Windows Bitmap (bmp) 文件头:424D


base64隐写

原理:大佬博客

大概就是解码时会将多余的比特位去掉(因为凑不到8位),所以这部分多余的比特位即使我们随意的改变值也不会影响解码后的结果,因为它会被丢弃掉,所以就能在这些多余的比特位中实现隐写。

base64隐写提取脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# -*- coding: utf-8 -*-

import base64

def Base64Stego_Decrypt(LineList):
Base64Char = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/" #Base64字符集 已按照规范排列
BinaryText = ""
for line in LineList:
if line.find("==") > 0: #如果文本中有2个=符号
temp = bin(Base64Char.find(line[-3]) & 15)[2:] #通过按位与&15运算取出二进制数后4位 [2:]的作用是将0b过滤掉
BinaryText = BinaryText+"0"*(4-len(temp))+temp #高位补0
elif line.find("=") > 0: #如果文本中有1个=符号
temp = bin(Base64Char.find(line[-2]) & 3)[2:] #通过按位与&3运算取出二进制数后2位
BinaryText = BinaryText+"0"*(2-len(temp))+temp #高位补0
Text = ""
if(len(BinaryText) % 8 != 0): #最终得到的隐写数据二进制位数不一定都是8的倍数,为了避免数组越界,加上一个判断
#print("警告:二进制文本位数有误,将进行不完整解析。")
for i in range(0, len(BinaryText), 8):
if(i+8 > len(BinaryText)):
Text = Text+"-"+BinaryText[i:]
return Text
else:
Text = Text+chr(int(BinaryText[i:i+8], 2))
else:
for i in range(0, len(BinaryText), 8):
Text = Text+chr(int(BinaryText[i:i+8], 2)) #将得到的二进制数每8位一组对照ASCII码转化字符
return Text

def Base64_ForString_Decrypt(Text): #Base64解密
try:
DecryptedText = str(Text).encode("utf-8")
DecryptedText = base64.b64decode(DecryptedText)
DecryptedText = DecryptedText.decode("utf-8")
except:
return 0
return DecryptedText

if __name__ == "__main__":
Course = input("filename:")
File = open(Course, "r")
LineList = File.read().splitlines()
print("The explicit content is:")
for line in LineList:
print(Base64_ForString_Decrypt(line),end="")
print("Steganography is:")
print(Base64Stego_Decrypt(LineList))

感觉不如随波逐流,太麻烦了。


NTFS交换数据流实现隐写

原理:NTFS 交换数据流 实现隐藏文件

注意:如果压缩包内文件有隐写,必须用winrar解压,不然是提取不出来的

提取隐写。

方法一:

在1.txt文件所在的文件夹,右键选择“在终端中打开”,打开命令行输入以下命令,回车打开flag.txt文件。

1
notepad 1.txt:flag.txt

方法二:
使用NtfsStreamsEditor工具


outguess隐写

OutGuess 是一款通用的隐写工具,允许用户将隐藏信息插入到数据源的冗余位中。无论是PPM(便携式像素图)、PNM(便携式任意图)还是JPEG图像格式,OutGuess都能轻松处理。更令人兴奋的是,OutGuess的核心设计并不依赖于数据源的性质,只要提供相应的数据处理程序,它可以应用于任何类型的数据。
对于JPEG图像,OutGuess通过保留基于频率计数的统计数据,确保了隐写内容的不可检测性。在嵌入数据之前,OutGuess系统可以确定在保持频率计数统计数据的前提下,可以隐藏的最大消息大小。

使用outguess工具提取隐写文件。

1
outguess -k 'key' -r textfile outputfile

字频隐写

一般都是杂乱无章的文本,然后通过统计字频后按照一定顺序排列即可看到隐写的信息

简单的字频分析python脚本

1
2
3
4
5
6
7
8
9
10
11
12
# -*- coding:utf-8 -*-
with open('Autopy/misc/word_frequency_statistics/in.txt','r',encoding='utf8') as infile:
content = infile.read()
table = dict(map(lambda c:(chr(c),0),[x for x in range(32,127)]))
for c in content:
try:
table[c] += 1
except:
pass
order = sorted(table.items(),key = lambda k:k[1], reverse=True)
print(order)
print(''.join([x[0] for x in order]))

也可以使用随波逐流自带的字频分析功能


png宽高CRC爆破

参考博客

这里的CRC指的是CRC32,也就是PNG图片的一个效验位,是一种不可逆运算,类似于MD5,作为数据效验或效验文件的完整性使用

当一个png图片宽高有问题时,010回有CRC报错


LSB隐写+数据提取

利用LSB(最低有效位)来进行隐写
原理:在大多数彩色图像中,每个像素的颜色值通常由三个颜色通道组成:红色(R)、绿色(G)和蓝色(B),每个通道的数值通常在0到255之间。在LSB隐写术中,秘密信息被嵌入到这些颜色通道的最低有效位(即二进制表示的最后一位)中。

例如,一个秘密信息比特“1”可以被嵌入到像素值129(二进制为10000001)的最低位上,使其变为130(二进制为10000010)。相反,一个“0”则保持不变或通过清除最低位来实现。例如:在.png图片的存储中,每个颜色会有8bit,LSB隐写就是修改了像数中最低的1bit,在人烟看来是看不出区别的,也就隐藏了信息

例如:把‘A’隐藏进图片,可以把‘A’转成16进制0x61再转成二进制01100001,再修改为红色通道的最低位为这些二进制字符串
工具:stegsolve
注意:隐写的载体不能使.jpg格式,jpg图片对像素数进行了有损的压缩,修改的信息可能会被破坏

png lsb数据提取

工具:cloacked-pixel-master、随波逐流

cloacked-pixel-master使用格式

1
python lsb.py extract xxx.png flag.txt key

随波逐流的话直接放进去然后在图片工具栏找到Png lsb数据提取即可


pyc反编译

PyC是Python字节码的缩写,它是Python解释器执行Python代码的核心。当Python代码被运行时,它会首先被解释器转换为PyC字节码,然后由CPython解释器执行。

Pyc反编译在线网站进行反编译:https://tool.lu/pyc/


电报码

电报码在线翻译网站:https://usetoolbar.com/convert/cccn.html

例如:

1
2
0086 1562 2535 5174


盲文

盲文加解密在线网站:

https://www.lddgo.net/common/braille


汉字五笔编码

汉字五笔编码在线网站查询:https://www.qqxiuzi.cn/bianma/wubi.php

例如:

1
2
bnhn s wwy vffg vffg rrhy fhnv
也 要 从 娃 娃 抓 起

零宽度隐写

零宽度字符是隐藏的不显示的,也是不可打印的,也就是说使用大部分程序和编辑器是看不到这种字符的。它们存在于页面中主要用于调整字符的显示格式。

在线加解密网站:https://yuanfux.github.io/zero-width-web/

https://330k.github.io/misc_tools/unicode_steganography.html

例如这个例子:

表面上看起来是这样的,但是实际上是这样

1
D‏‎​‍‎​‍​‍​‌‎‎​‏‍​‌‎‎​‌‎‍​‍‎​‌‎‏​‍‍​‍‍x8CBEl3S0EtQgYbOyVbU2JN

两种判断方法。

第一种将文字复制入Sublime_txt,可以看到零宽度字符(灰色部分)

第二种就是肉眼看出异常。


栅栏加密/解密

在线加解密网站:https://ctf.bugku.com/tool/railfence

也可以用随波逐流

栅栏密码是古典密码的一种,其原理是将一组要加密的明文划分为n个一组(n通常根据加密需求确定,且一般不会太大,以保证密码的复杂性和安全性),然后取每个组的第一个字符(有时也涉及取其他位置的字符,但规则需事先约定),根据情况将这些字符重新排列组合成一段无规律的话,形成密文。

栅栏密码的“栏”数,即分组后形成的“列”数或“行”数(具体取决于加密时的排列方式),是栅栏密码的一个重要参数。根据栏数的不同,栅栏密码可以分为多种类型,其中比较常见的是2栏栅栏密码。但理论上,栏数n可以是任何正整数(实际应用中受限于明文的长度和加密的安全性要求)。

例如题目给我们一个打乱顺序的字符串:

1
kanbbrgghjl{zb____}vtlaln

通过栅栏加密得到原始字符串,这里栏数需要一个个试

1
kzna{blnl_abj_lbh_trg_vg}

这里顺序还是不对还需要进行rot13解密


凯撒密码

凯撒加密是一种替换加密的技术,明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文。例如,当偏移量是3的时候,所有的字母A将被替换成D,B变成E,以此类推。这个加密方法是以罗马共和时期凯撒的名字命名的,据说凯撒曾用此方法与其将军们进行联系。

例如rot13即为凯撒密码的一种特殊情况,即当凯撒密码的密钥为13的情况。


CRC碰撞

什么是CRC32

CRC 本身是「冗余校验码」的意思,CRC32 则表示会产生一个 32 bit ( 8 位十六进制数) 的校验值。由于 CRC32 产生校验值时源数据块的每一个 bit (位) 都参与了计算,所以数据块中即使只有一位发生了变化,也会得到不同的 CRC32 值。
CRC32 校验码出现在很多文件中比如 png 文件,同样 zip 中也有 CRC32 校验码。值得注意的是 zip 中的 CRC32 是未加密文件的校验值。
CRC32攻击

这也就导致了基于 CRC32 的攻击手法。
文件内内容很少 (一般比赛中大多为 4 字节左右)
加密的密码很长
我们不去爆破压缩包的密码,而是直接去爆破源文件的内容 (一般都是可见的字符串),从而获取想要的信息。

python脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# python3
import zipfile
import string
import binascii


def CrackCrc(crc):
for i in dic:
for j in dic:
for k in dic:
for h in dic:
s = i + j + k + h
if crc == (binascii.crc32(s.encode())):
f.write(s)
return


def CrackZip():
for i in range(0, 68):
file = 'out' + str(i) + '.zip'
crc = zipfile.ZipFile(file, 'r').getinfo('data.txt').CRC
CrackCrc(crc)
print('\r' + "loading:{:%}".format(float((i + 1) / 68)), end='')


dic = string.ascii_letters + string.digits + '+/='
f = open('crc32.txt', 'w')
print("\nCRC32begin")
CrackZip()
print("CRC32finished")
f.close()

DTMF拨号音识别

双音多频 DTMF(Dual Tone Multi Frequency),双音多频,由高频群和低频群组成,高低频群各包含4个频率。一个高频信号和一个低频信号叠加组成一个组合信号,代表一个数字。DTMF信号有16个编码。利用DTMF信令可选择呼叫相应的对讲机

利用软件进行识别

http://aluigi.altervista.org/mytoolz/dtmf2num.zip

1
输入命令dtmf2num.exe girlfriend.wav


手机键盘密码

手机键盘加密方式,是每个数字键上有3-4个字母,用两位数字来表示字母,例如:ru用手机键盘表示就是:7382,那么这里就可以知道了,手机键盘加密方式不可能用1开头,第二位数字不可能超过4,解密的时候参考此

也有另一种方式,数字顺序按多少下,例如999就是按三下9键即为y


exif信息与exiftool

EXIF信息,是可交换图像文件的缩写,是专门为数码相机的照片设定的,可以记录数码照片的属性信息和拍摄数据。EXIF可以附加于JPEG、TIFF、RIFF等文件之中,为其增加有关数码相机拍摄信息的内容和索引图或图像处理软件的版本信息。


ExifTool是一款免费开源的图像信息查看工具,一个命令行应用程序。可用于读写和编辑图像(主要)、音视频和PDF等文件的元数据(metadata)。元数据是由一系列参数(下文为了与命令行参数做区别将称为标签)组成,如快门速度、光圈、白平衡、相机品牌和型号、镜头、焦距等等。而ExifTool可以帮助用户读取和处理这些数据, 支持许多不同的元数据格式,包括 EXIF,GPS,IPTC,XMP,JFIF,GeoTIFF,ICC 配置文件等等。支持多种输出格式设置选项(包括制表符分隔,HTML,XML 和 JSON),还可以多语言输出(cs,de,en,en-ca,en-gb,es,fi,fr,it,ja,ko,nl,pl,ru,sv,tr,zh-cn 或 zh-tw)。可以读取和写入许多数码相机的制造商说明。

使用实例:使用Kali上的exiftool工具,批量分析图片,寻找flag

1
exiftool * | grep flag


mimikatz与lsass

Mimikatz 是一款功能强大的轻量级调试神器,通过它你可以提升进程权限注入进程读取进程内存,当然他最大的亮点就是他可以直接从 lsass.exe 进程中获取当前登录系统用户名的密码, lsass是微软Windows系统的安全机制它主要用于本地安全和登陆策略,通常我们在登陆系统时输入密码之后,密码便会储存在 lsass内存中,经过其 wdigest 和 tspkg 两个模块调用后,对其使用可逆的算法进行加密并存储在内存之中, 而 mimikatz 正是通过对lsass逆算获取到明文密码!也就是说只要你不重启电脑,就可以通过他获取到登陆密码,只限当前登陆系统!

  • lsass是windows系统的一个进程,用于本地安全和登陆策略。
  • Procdump工具一般用来抓取windows的lsass进程中的用户明文密码
    lsass是windows系统的一个进程,用于本地安全和登陆策略。

mimikatz下载链接:https://github.com/gentilkiwi/mimikatz/releases/tag/2.2.0-20200917

注意:点开64位的“猕猴桃”,输入以下命令(记得右键管理员权限打开mimikatz,不然会报错)

使用格式:

1
2
3
4
5
6
7
8
9
10
将lsass.dmp文件放到mimikatz.exe下目录
//提升权限
privilege::debug
//载入dmp文件
sekurlsa::minidump lsass.dmp
//读取登陆密码
sekurlsa::logonpasswords full

得到密码
W3lc0meToD0g3

TLS流量

TLS(Transport Layer Security)是一种加密通讯协议,它用于在计算机网络上保证通信安全和数据完整性。TLS 通常用于安全地传输 HTTP、SMTP、FTP 等应用层协议。TLS协议位于传输层和应用层中间,其功能是一个加密通道,和上层应用协议无关。由于HTTP采用明文传输,很容易被攻击者窃听或者篡改内容,通过引用TLS对HTTP的内容进行加密等操作,可以有效防止窃听、篡改和劫持等。

TLS流量是指通过TLS协议加密的数据传输,它在客户端和服务器之间建立一个加密的通道,确保数据在传输过程中不被窃听、篡改或伪造。

一般的TLS流量就是找到key,导入key,在导入key之后就会多出几个流量包(即加密流量包),在里边会有想要的答案

例如:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
-----BEGIN RSA PRIVATE KEY-----
MIICXAIBAAKBgQDCm6vZmclJrVH1AAyGuCuSSZ8O+mIQiOUQCvN0HYbj8153JfSQ
LsJIhbRYS7+zZ1oXvPemWQDv/u/tzegt58q4ciNmcVnq1uKiygc6QOtvT7oiSTyO
vMX/q5iE2iClYUIHZEKX3BjjNDxrYvLQzPyGD1EY2DZIO6T45FNKYC2VDwIDAQAB
AoGAbtWUKUkx37lLfRq7B5sqjZVKdpBZe4tL0jg6cX5Djd3Uhk1inR9UXVNw4/y4
QGfzYqOn8+Cq7QSoBysHOeXSiPztW2cL09ktPgSlfTQyN6ELNGuiUOYnaTWYZpp/
QbRcZ/eHBulVQLlk5M6RVs9BLI9X08RAl7EcwumiRfWas6kCQQDvqC0dxl2wIjwN
czILcoWLig2c2u71Nev9DrWjWHU8eHDuzCJWvOUAHIrkexddWEK2VHd+F13GBCOQ
ZCM4prBjAkEAz+ENahsEjBE4+7H1HdIaw0+goe/45d6A2ewO/lYH6dDZTAzTW9z9
kzV8uz+Mmo5163/JtvwYQcKF39DJGGtqZQJBAKa18XR16fQ9TFL64EQwTQ+tYBzN
+04eTWQCmH3haeQ/0Cd9XyHBUveJ42Be8/jeDcIx7dGLxZKajHbEAfBFnAsCQGq1
AnbJ4Z6opJCGu+UP2c8SC8m0bhZJDelPRC8IKE28eB6SotgP61ZqaVmQ+HLJ1/wH
/5pfc3AmEyRdfyx6zwUCQCAH4SLJv/kprRz1a1gx8FR5tj4NeHEFFNEgq1gmiwmH
2STT5qZWzQFz8NRe+/otNOHBR2Xk4e8IS+ehIJ3TvyE=
-----END RSA PRIVATE KEY-----

这里将私钥保存为private.key,wireshark允许添加TLS私钥查看加密传输数据

步骤:

点击 编辑–>首选项–>Protocols–>TLS


zsteg工具的使用

‌zsteg是一款用于检测PNGBMP图片中隐藏数据的工具,可以快速提取隐藏信息。

zsteg支持检测多种隐写技术,包括LSB隐写、zlib压缩数据、OpenStego、Camouflage等。

zsteg的使用方法:

常用参数:

  • -E 导出内容一般导出隐写内容
  • -v 命令可以显示图片的详细信息
  • -a 命令尝试所有已知的隐写组合
1
2
3
4
5
6
7
8
9
查看LSB信息
zsteg xxx ##文件名

提取LSB数据
zsteg -E "b1,bgr,lsb,xy" xxx.png > 1.txt

检测zlib压缩数据
zsteg zlib.bmp -b 1 -o xy -v
命令可以检测BMP图片中的zlib压缩数据,其中-b参数指定了要检查的位数,从1开始

DES加密

DES是一种对称密钥加密块密码算法,1976年被美国联邦政府的国家标准局确定为联邦资料处理标准(FIPS),随后在国际上广泛流传开来。它基于使用56位密钥的对称算法

在线解码网站:https://www.sojson.com/encrypt_des.html

例如:

1
2
3
秘钥:6XaMMbM7
U2FsdGVkX18IBEATgMBe8NqjIqp65CxRjjMxXIIUxIjBnAODJQRkSLQ/+lHBsjpv1BwwEawMo1c=
-->ctf{67a166801342415a6da8f0dbac591974}

特点:

很像base64,并且base64解码后前面有Salted

1
2
3
例如:U2FsdGVkX1+zHjSBeYPtWQVSwXzcVFZLu6Qm0To/KeuHg8vKAxFrVQ==
base64解码后
Salted__4y홅R|ܔVK&Ѻ?)뇃ˊkU

AES加密

在线加解密网站:https://www.jijie.ink/tool/aes

AES(Advanced Encryption Standard)即高级加密标准,是一种广泛使用的对称加密算法,由美国国家标准与技术研究院(NIST)于2001年发布,用于保护电子数据的机密性。AES算法是替代原先DES(数据加密标准)算法的,因为它提供了更高的安全性。AES加密过程是可逆的,意味着使用相同的密钥可以解密加密的数据。

例如:

1
U2FsdGVkX1/nSQN+hoHL8OwV9iJB/mSdKk5dmusulz4=

并且得到密钥:Tokyo

解密得到:

1
CCGandGulu


RAR

RAR是有四个文件块组成的,分别是分别是标记块、归档头部块、文件块、结束块,这些块之间没有固定地先后顺序,但要求第一个块必须是标志块并且其后紧跟一个归档头部块。每个块都包含以下内容:

归档头部块和文件块的内容较多,仅列出每个块头部内容:

RAR的标记块和结束块都是固定的7字节序列,分别为0x52 61 72 21 1A 07 00和0xC4 3D 7B 00 40 07 00。文件块这边要注意一下HEAD_FLAGS这个头部,其中HEAD_FLAGS的低三位代表加密标志,此位若被置为1,则文件使用了基于密钥的加密。

块类型为0x74,有时题目会将块类型修改,形成隐写,只要将其改回0x74即可在解压是看到隐写的文件


USB键盘隐写(Tshark与UsbKeyboardDataHacker.py)

SB隐写——键盘隐写:键盘数据包的数据长度为 8 个字节
第1个字节的作用主要是判断是否按下Shift,Alt,Control等键
第2个字节是保留位
第3~8个字节是普通按键,但击键信息集中在第 3 个字节。(如果遇到多个按键一起按的情况,这个时候3~8字节可能会被利用起来。)
根据 data 值与具体键位的对应关系,可从数据包恢复出键盘的按键信息

可使用Tshark.exe工具提取键盘数据:

在kali里Tshark是内置的工具

1
2
3
4
tshark -r key.pcap -T fields -e usb.capdata > usbdata.txt

hid data 鼠标流量 左键:
tshark -r usb.pcapng -T fields -e usbhid.data | sed '/^\s*$/d' > usbdata.txt

| sed ‘/^\s$/d’*

  • ​ |: 管道符,将前一个命令的输出传递给下一个命令(sed)。
  • ​ sed ‘/^\s*$/d’: 用 sed 工具删除空行或仅包含空白字符的行。
  • ​ ^\s*$ 是正则表达式,匹配:
  • ​ ^ 行首
  • ​ \s* 任意数量的空白字符(空格、制表符等)
  • ​ $ 行尾
  • ​ d 表示删除匹配的行。

例如:

一个key.pcap文件,用Wireshark打开全是usb

使用Tshark.exe工具提取usb键盘数据

1
tshark -r key.pcap -T fields -e usb.capdata > usbdata.txt

使用脚本提取数据

UsbKeyboardDataHacker.py

使用脚本提取数据:

1
python3 UsbKeyboardDataHacker.py key.pcap

得到密钥xinan


维吉尼亚密码

维吉尼亚密码(Vigenère cipher)是一种使用一系列凯撒密码组成密码字母表的加密算法,它属于多表密码的一种简单形式。

简单来说就是凯撒密码的加强版,引入了密钥

解密网站维吉尼亚加密/解密 - Bugku CTF

带符号和数字的解密网站

示例:

1
ci{v3erf_0tygidv2_fc0}

特点:有字母密钥,如果满足凯撒密码的格式但是解不出来那就是维吉尼亚了

PPS:秘钥一般需要自己解出来。

密钥:

1
xinan

结果:

1
fa{i3eei_0llgvgn2_sc0}

这里解出来的结果一看就知道还要栅栏密码解密,就不说了。


logo解释器

在线网站:https://www.calormen.com/jslogo/

例如:

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

经过解释器后结果:


TTL隐写

TTL是 Time To Live的缩写,该字段指定IP包被路由器丢弃之前允许通过的最大网段数量。TTL是IPv4报头的一个8bit字段。注意:TTL与DNS TTL有区别。二者都是生存时间,前者指ICMP包的转发次数(跳数),后者指域名解析信息在DNS中的存在时间。

IP报文在路由间穿梭的时候每经过一个路由,TTL就会减1。
这个东西是用来防止数据过多的。计算机网络知识。

大多数情况下通常只需要经过很小的跳数就能完成报文的转发,远远比上限255小得多,所以我们可以用TTL值的前两位来进行传输隐藏数据。
所以加密的方法就是把一个ASCII码分4截,分到4个TTL里面,有点像是最低位像素的隐写。

TTL隐写解码脚本:

解码步骤

  1. 转成2进制,
  2. 写个脚本。取出前两位。重新组合。再以8位一组。
  3. 转换为16进制字符。再将16进制字符转换为字符
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
import binascii
with open('attachment.txt','r') as fp:
a=fp.readlines()
p=[]
for x in range(len(a)):
p.append(int(a[x]))
s=''
for i in p:
if(i==63):
b='00'
elif(i==127):
b='01'
elif(i==191):
b='10'
else:
b='11'
s +=b
# print(s)
flag = ''
for i in range(0,len(s),8):
flag += chr(int(s[i:i+8],2))
flag = binascii.unhexlify(flag)
wp = open('ans.zip','wb')
wp.write(flag)
wp.close()

数据矩阵提取

在线数据提取网站:

https://online-barcode-reader.inliteresearch.com/

https://zxing.org/w/decode

例如:


汉信码

使用中国编码app能扫出来


QRazyBox

QRazyBox 是一个基于 Web 的应用程序(工具包),用于分析和恢复损坏的 QR 码。QRazyBox允许通过使用类似油漆的编辑器重新绘制和重建QR码来恢复QR码。它还提供了几个子工具,可更快、更高效地进行分析和恢复。

网址:https://merri.cx/qrazybox/


hidden-word隐写

在线加解密网站:https://hidden-word.top/


图片镜像翻转、旋转

支持图片镜像翻转+旋转

在线网站:https://www.lddgo.net/image/flip


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。
MIXBP github