
流量分析、音频隐写、压缩包加密爆破
流量分析:通常会收到一个网络数据包的数据集(后缀为“pcap”的文件),这些数据包记录了网络通信的内容和细节(如源IP地址、目标IP地址、端口号、协议类型、数据包大小、传输速率等等)。通过分析这些数据包,识别出有用的信息,例如登录凭据、加密算法、漏洞利用等等。
用到的工具:wireshark
常用过滤器命令和语法
协议筛选:
tcp:显示所有TCP协议的数据包
udp:显示所有UDP协议的数据包
http:显示所有HTTP协议的数据包
dns:显示所有DNS协议的数据包
icmp:显示所有ICMP协议的数据包
可用!加协议或者not加协议表示排除该协议not arp 或!arp
在搜索框里输入http就能看到所有的http流量,其他同理
IP地址筛选:
ip.src == 地址 #源ip筛选
ip.dst == 地址 #目的ip筛选
ip.addr == 地址 #ip筛选
ip.addr == 192.168.0.1:显示与指定IP地址相关的所有数据包
src host 192.168.0.1:显示源IP地址为指定地址的数据包
dst host 192.168.0.1:显示目标IP地址为指定地址的数据包
筛选192.168.1.25ip相关的数据包:
![[Pasted image 20250517213046.png]]
端口筛选:
tcp.port == 80:显示使用指定TCP端口的数据包
udp.port == 53:显示使用指定UDP端口的数据包
port 80:显示源或目标端口为指定端口的数据包
![[Pasted image 20250517213118.png]]
比较运算符:
==:等于,例如 http.request.method == "POST"
!=:不等于,例如 ip.addr != 192.168.0.1
<、>:小于、大于,例如 tcp.len > 100
Http模式过滤:
http.request(要求).method == "GET", 只显示HTTP GET方法的
筛选http的post请求流量包http.request.method == “POST”
![[Pasted image 20250517214847.png]]
包长度筛选:
udp.length ==20 #筛选长度为20的udp流量包 这个长度是指udp本身固定长度8加上udp下面那块
数据包之和
tcp.len >=20 #筛选长度大于20的tcp流量包 指的是ip数据包(tcp下面那块数据),不包括tcp本身
ip.len ==20 #筛选长度为20的IP流量包 除了以太网头固定长度14,其它都算是i.en,即i本身到最后
frame.len ==2 #筛选长度为20的整个流量包 整个数据包长度从eth开始到最后
复杂筛选:
使用括号 () 来组合多个条件,例如 (tcp and port 80) or (udp and port 53)
使用复合条件进行筛选,例如 (tcp.flags.syn == 1 or tcp.flags.ack == 1) and ip.addr == 192.16
HTTP流量分析
以下是一些用于匹配HTTP流量中的特定内容的语法:
http.host == "www.example.com":匹配目标主机为"www.example.com"的HTTP请求和响应。
http contains "login":用于匹配HTTP流量中包含"login"字符串的数据包。
http.request.method == "POST":匹配使用HTTP POST方法发送请求的数据包。
http.response.code == 200:匹配状态码为200的HTTP响应数据包。
http.cookie contains "sessionid":匹配包含名为"sessionid"的HTTP Cookie数据包。
http.content_type == "text/html":匹配Content-Type头部为"text/html"的HTTP数据包。
http.request.uri contains "admin":匹配包含"admin"字符串的HTTP请求URI。
http.request.uri matches ".*\.(jpg|png|gif)":匹配HTTP请求URI中以".jpg"、".png"或".gif"结尾的URI。
http.user_agent matches "Mozilla.*":匹配User-Agent头部以"Mozilla"开头的HTTP请求数据包。
http是明文传输数据,通过“追踪流”的方式,可以直接看到明文内容。
![[Pasted image 20250517215619.png]]
点击协议分级,可以看到这个流量包里所有协议的流量:
![[Pasted image 20250517215640.png]]
有udp流量,ipv4流量,tcp流量,http流量,我们选择http流量数据,右击选择选中
![[Pasted image 20250517215706.png]]
DNS流量分析
![[Pasted image 20250517223517.png]]
键盘流量分析
USB协议数据部分在Leftover Capture Data域中,数据长度为八个字节。
击键信息集中在第3个字节,每次击键都会产生一个数据包。
flag信息一般隐藏在USB流量中,通过USB协议数据中的键盘键码转换成键位。
![[Pasted image 20250517225604.png]]
协议为USB,并且键盘数据存储在usbhid.data中,这里0c对应的就是i字符
![[Pasted image 20250517225701.png]]
将流量包里的usbhid.data数据提取出来,然后一一和字符对应即可
脚本:可以直接提取和转换usb键盘流量数据
python3 KeyboardTraffic.py [流量包]
鼠标流量
基础知识
USB协议鼠标数据部分在Leftover Capture Data域中,数据长度为四个字节
第一个字节,代表按键
当取0×00时,代表没有按键
当取0×01时,代表按左键
当取0×02时,代表当前按键为右键
第二个字节,可看作为signed byte类型,其最高位为符号位,
当值为正时,代表鼠标右移像素位;
值为负时,代表鼠标左移像素位。
第三个字节,代表垂直上下移动的偏移。
当值为正时,代表鼠标上移像素位;
值为负时,代表鼠标下移像素位。
flag隐藏在usb流量中,通过USB协议数据中的鼠标移动轨迹转换成flag
脚本
TLS流量隐写
TLS(Transport Layer Security)是一种安全协议,用于在计算机网络上实现加密通信。TLS 使用密钥交换算法来安全地生成一个共享的会话密钥,这个会话密钥将用于本次通信会话的加密和解密。常见的密钥交换算法包括 RSA、DH、ECDH 等。
TLS 协议就是一个加密的协议,需要用密钥去解密捕获的数据包
TLS 是传输层安全协议,用于加密网络通信,而 HTTP 是应用层协议,用于传输网页内容。在 HTTPS 中,HTTP 数据包被封装在 TLS 数据包中进行加密传输。当 Wireshark 成功解密 TLS 数据包后,它会解析出内部的 HTTP 数据包,因此会显示 HTTP 协议数据包。
简单来说
TLS 是保护 HTTP 数据的“信封”,而在 Wireshark 中添加密钥解密后会直接显示里面的“信纸”(HTTP 数据)。
步骤一:
解压缩 TLS.zip,发现里面有两个文件,分别是 pcap文件和 key 文件,大胆猜想,题目名字叫 TLS(加密通信协议),很明显就是用 key 文件去解密 pcap文件里面的数据包
![[Pasted image 20250705140453.png]]
步骤二:
用 wireshark 打开 client.pcap 文件,发现是一堆 TCP 协议数据包,是没有价值的,一般我们找HTTP协议的数据包
![[Pasted image 20250705140552.png]]
发现没有HTTP包,要解密
步骤三
添加密钥操作:在导航栏中选择“编辑”,点击“首选项”
![[Pasted image 20250705140656.png]]
进入如下界面,我们依次选择 RSA 密钥,点击Add new keyfile
![[Pasted image 20250705140721.png]]
将 TLS 文件夹中的 key 文件导入,点击打开
![[Pasted image 20250705140744.png]]
返回如下页面,依次点击应用和确定
![[Pasted image 20250705140805.png]]
步骤四
关闭 wireshark ,重新打开,发现界面多了两个 HTTP 协议数据包,依次点击查看
![[Pasted image 20250705140910.png]]
SQL布尔盲注
1.因为要分析针对 web 的攻击。所以在显示过滤器中输入 http 过滤出 http 协议相关的数据包。
2.查看 http 数据包的 get 请求参数处找到SQL注入的流量包
3.根据这些流量包的响应时间,判断注入是否成功,追踪成功的流量包
![[Pasted image 20250705141925.png]]
WPA密钥爆破
捕获WPA四次握手包并利用aircrack-ng工具进行密码爆破
工具:WiFiPR
![[]]
![[]]
![[Pasted image 20250705144832.png]]
![[Pasted image 20250705144843.png]]
![[Pasted image 20250705144903.png]]
![[Pasted image 20250705144912.png]]
mp3音频文件隐写
工具:Mp3Stego
m4a文件头:00 00 00 20 66 74 79 70 4D 34 41 20 00 00 00 00
在压缩过程中,MP3Stego会将信息隐藏在MP3文件中。数据首先被压缩、加密,然后隐藏在MP3比特流中
将MP3文件放在Mp3Stego同目录下后
打开软件,选择Decode txt file from an MP3file(意译:从mp3文件里解码出文本文件)
![[Pasted image 20250705111203.png]]
选择mp3文件,点击decode file:
![[Pasted image 20250705111248.png]]
最后输入,题目上提示的秘钥:key:syclovergeek//注意输入秘钥时候,需要两次输入,并且不回显
得到文本文件
![[Pasted image 20250705111526.png]]
音频中的LSB
工具:Silenteye
silenteye 使用 LSB(最低有效位)技术,将信息隐藏在 JPEG、BMP 图片以及 WAVE 声音文件中。此外,它支持 AES128 和 AES256 加密算法,确保隐藏信息的安全性
导入文件后,选择左下方的Decode:
![[Pasted image 20250705115818.png]]
WAV音频文件隐写术
工具:Audacity
wav文件头:52494646E6AD250357415645666D7420
波形图
直接放大即可观察波形图即可。
可能存在摩斯电码,
![[Pasted image 20250705114758.png]]
或者根据波峰波谷然后转换01二进制
![[Pasted image 20250705114955.png]]
以高为 1 低为 0,转换得到 01 字符串
110011011011001100001110011111110111010111011000010101110101010110011011101011101110110111011110011111101
1.确保字符串可以按2的n次方分组,若不足则在最高位补0,然后二进制转十进制,然后再转为 ASCII
2.其他信号表示
- 钥匙信号钥匙信号(PT224X) = 同步引导码(8bit) + 地址位(20bit) + 数据位(4bit) + 停止码(1bit)
频谱图
信息藏在频谱图中
选中方框中的下三角,选中频谱图
![[Pasted image 20250705114512.png]]
SSTV
慢扫描电视(Slow-scan television 简称SSTV)是业余无线电爱好者的一种主要图片传输方法,慢扫描电视通过无线电传输和接收单色或彩色静态图片。
使用工具:e2eSoft
文件类型:wav
拨号隐写
DTMF(Dual Tone MultiFrequency),双音多频,由高频群和低频
群组成,一个高频信号和一个低频信号叠加组成的信号代表一个数字,
利用DTMF信号可选择呼叫相应的对讲机
用脚本提取
![[Pasted image 20250705134130.png]]
压缩包爆破
1、属性隐藏
很简单,就是在属性的注释里有密码
2、看二进制
用winhex打开
搜索字符pass 、 key 等
查看是否有含有压缩包密码
3、ZIP伪加密
一个ZIP文件由三个部分组成:
-
压缩源文件数据区:
50 4B 03 04:这是头文件标记 (0x04034b50)
14 00:解压文件所需 pkware 版本
00 00:全局方式位标记(判断有无加密)
08 00:压缩方式
5A 7E:最后修改文件时间
F7 46:最后修改文件日期 -
压缩源文件目录区:
50 4B 01 02:目录中文件文件头标记 (0x02014b50)
1F 00:压缩使用的 pkware 版本
14 00:解压文件所需 pkware 版本
00 00:全局方式位标记(判断是否为伪加密)
08 00:压缩方式
5A 7E:最后修改文件时间
F7 46:最后修改文件日期 -
压缩源文件目录结束标志:
50 4B 05 06:目录结束标记
00 00:当前磁盘编号
00 00:目录区开始磁盘编号
01 00:本磁盘上纪录总数
01 00:目录区中纪录总数
59 00 00 00:目录区尺寸大小
3E 00 00 00:目录区对第一张磁盘的偏移量
00 00:ZIP 文件注释长度
zip伪加密:
- 在文件头的加密标志位做修改
- 打开文件时识被别为加密压缩包
具体如下:
-
压缩源文件数据区
- 50 4B 03 04 是头文件的标志 (0x04034b50)
- 00 00 全局方式标记(判断有无加密的重要标志)
-
压缩文件目录区
- 50 4B 01 02 目录中文件头标志(0x02014b50)
- 00 00 全局方式标记(有无加密的重要标志,更改这里就可以进行伪加密了,改为 09 00 打开就会提示有密码了)
-
压缩源文件目录结束标志
- 50 4B 05 06 目录结束标记
辨别真假加密:
全局方式位标记的四个数字中只有第二个数字对其有影响,其它的不管为何值,都不影响它的加密属性,即:
第二个数字为奇数时 –>加密
第二个数字为偶数时 –>未加密
-
无加密
- 压缩源文件数据区的全局加密应当为 00 00
- 且压缩源文件目录区的全局方式标记应当为00 00
![[Pasted image 20250705104302.png]]
-
假加密
- 压缩源文件数据区的全局加密应当为 00 00
- 且压缩文件目录区的全局方式标记应当为 09 00
![[Pasted image 20250705104323.png]]
-
真加密
- 压缩源文件数据区的全局加密应当为 09 00
- 且压缩源文件目录区的全局方式应当为 09 00
![[Pasted image 20250705104342.png]]
破解方法:
确定是伪加密后就需要将其修改为无加密,方法很简单,就是将压缩源文件目录区的全局方式位标记从09 00改为00 00
用binwalk-e 无视伪加密
在macOS和kali系统中,可以直接打开伪加密zip文件
检测伪加密的工具ZipCenOp.jar
有时用WinRAR的修复功能
winrar修复功能
winhex打开修改标志位
4、暴力遍历
Windows下用的是ARCHPR,除了纯暴力,还有掩码、字典等功能
5、明文攻击
已知zip中的一个文件(文件大小要大于12Byte)或者已经通过其他手段知道zip加密文件中的某些内容时
因为同一个zip压缩包里的所有文件都是使用同一个加密密钥来加密的
所以可以用已知文件来找加密密钥
用ARCHPR或者AZPR进行明文攻击
题:bugku中神秘的礼物
一个压缩包中还有一个压缩包(加密),其中第一个压缩包有一个图片大小为28kb,第二个压缩包中也有一个图片大小差不多也为28kb。将第一个压缩包的图片进行压缩确保压缩形式与第二个压缩包一样。
![[Pasted image 20250704222717.png]]
![[Pasted image 20250704223104.png]]
![[Pasted image 20250704225037.png]]
RAR文件头修复
分卷压缩:压缩后分割为多个文件。
一个RAR4.x压缩文件由若干可变长度的块组成
常见块类型如下:
标记块:HEAD_TYPE=0x72
压缩文件头:HEAD_TYPE=0x73
文件头:HEAD_TYPE=0x74
旧风格的注释头:HEAD_TYPE=0x75
旧风格的用户身份信息:HEAD_TYPE=0x76
旧风格的子块:HEAD_TYPE=0x77
旧风格的恢复记录:HEAD_TYPE=0X78
旧风格的用户身份信息:HEAD_TYPE=0X79
子块:HEAD_TYPE=0x7A
最后的结束块:HEAD_TYPE=0x7B
标记块(MARK_HEAD)
第一块为标记块(MARK_HEAD),其数据为:
52 61 72 21 1A 07 00 // 左边是低字节 ,右边是高字节,这是RAR4.x的签名
//签名即标志着该文件是由支持rar4.x版本的软件压缩而成,如果使用支持5.0版本的压缩软件压缩,其签名可能会不同
字节的说明
- 52 61 为头部校验和(HEAD_CRC),占两个字节,每一块均从HEAD_CRC开始,所有的RAR都以 52 61 开头
- 72 为 块类型(HEAD_TYPE) 占一个字节,所有文件都如此
- 21 1A 为 块标记(HEAD_FLAGS) 占两个字节
- 07 00表示块大小 ,即 52 61 72 21 1A 07 00 (标记块)共占7个字节
压缩文件头(MAIN_HEAD)
第二块为压缩文件头(MAIN_HEAD) ,和标记块一样
![[Pasted image 20250705004320.png]]
头类型是0x73表示压缩文件头块
位标记为0x0000 没有位被置为1 ,如果块头被加密,则位标记应该为:0x8000
文件头大小为0x0D00,由上图可以看出这个压缩文件头块占13个字节
文件头(FILE_HEAD)
![[Pasted image 20250705004403.png]]
D5 56 :HEAD_CRC,2字节,也就是文件头部分的crc校验值
74 :HEAD_TYPE,1字节,块类型,74表示块类型是文件头
20 90 :HEAD_FLAGS,2字节,位标记,这块在资料上没找到对应的数值,不知道20 90代表什么意思。
2D 00 :HEAD_SIZE,2字节,文件头的全部大小(包含文件名和注释)
10 00 00 00 :PACK_SIZE,4字节,已压缩文件大小
10 00 00 00 :UNP_SIZE,4字节,未压缩文件大小
02:HOST_OS,1字节,保存压缩文件使用的操作系统,02代表windows
C7 88 67 36:FILE_CRC,4字节,文件的CRC值
6D BB 4E 4B :FTIME,4字节,MS DOS 标准格式的日期和时间
1D:UNP_VER,1字节,解压文件所需要的最低RAR版本
30:METHOD,1字节,压缩方式,这里是存储压缩
08 00 :NAME_SIZE,2字节,表示文件名大小,这里文件名大小是8字节(flag.txt)
20 00 00 00 :ATTR,4字节,表示文件属性这里是txt文件
66 6C 61 67 2E 74 78 74:FILE_NAME(文件名) ,NAME_SIZE字节大小,这里NAME_SIZE大小为8
再往后是txt文件内容,一直到第六行 65 结束,下面是另一个文件块的开始,因为txt文件内容的结尾是字符e;而字符e的ascii编码是十六进制65
这个块中存在两个crc值,一个是文件头块中从块类型到文件名这38个字节的校验,后一个则是压缩包中所包含文件的crc校验,解压时,会计算解压后生成文件的crc值,如果等于这里的crc,则解压完成,如果不同,则报错中断。
结尾块
![[Pasted image 20250705005134.png]]
这个结尾块和标记块字节大小和分析方法是一样的。
C4 3D :HEAD_CRC,2字节,从HEAD_TYPE到HEAD_SIZE的crc校验值
7B :HEAD_TYPE,1字节,表示该块是结尾块
00 40 HEAD_FALGS ,2字节,位标记
07 00 :HEAD_SIZE,2字节,块大小
与标记块类似的是,结尾块也是一个固定字节串的块,依次是 C4 3D 7B 00 40 07 00
RAR 文件主要由标记块,压缩文件头块,文件头块,结尾块组成。
其每一块大致分为以下几个字段:
![[Pasted image 20250705003450.png]]
Rar压缩包的文件头为 0x 52 61 72 21 1A 07 00