Tea(Tiny Encryption Algorithm)|分组加密算法
Basic Elements:
参数
说明
明文
64 比特(分为两个 32 位部分)
密钥
128 比特(分为 4 个 32 位部分)
轮数
64 次(32 轮循环,每轮包含两个半轮操作)
常量
delta = 0x9E3779B9 (即黄金分割常数的整数近似)
首先,我们逐一对各个element进行分析解释:
明文:明文长度不一定是64bit明文不是 64 位(不是 8 字节)怎么办?——必须填充(padding)到 8 字节的倍数。填充完之后再做处理。
分组:明文填充(padding)到 8 字节的倍数需要分组。example:“helloctfgaoshou”,此字符串按照utf-8编码,标准的ASCII字符串的长度是15,很显然需要填充一个字符来达到8字节整数倍达到16字节。
此处按PKCS7Padding模式,按块所缺个数填充值。例如:填充至符合块大小的整数倍,填充值为填充数量数,需要填充7个字节,就全部填07。
RSARSA算法是一种非对称加密算法,它依赖于大数因子分解的难度,通过一对密钥(公钥和私钥)来实现数据的加密和解密。RSA算法的核心是两个大质数的选择和一系列数学运算。密钥生成过程
RSA算法的密钥生成过程涉及以下步骤:选择两个大质数 (p) 和 (q),并计算它们的乘积 (N = p * q),这个 (N) 将作为公钥和私钥的一部分。计算欧拉函数 (\Phi(N) = (p-1) * (q-1))。选择一个整数 (e),使得 (1 < e < \Phi(N)) 且 (e) 与 (\Phi(N)) 互质,这个 (e) 将作为公钥的另一部分。计算 (e) 的乘法逆元 (d),使得 (d * e≡1(mod\Phi(N))),这个 (d) 将作为私钥。加密和解密过程
加密和解密的数学表达式分别为:加密:(C = M^e \mod N)解密:(M = C^d \mod N)其中,(M) 是明文,(C) 是密文,(e) 和 (N) 组成公钥,(d) 和 (N) 组成私钥。数学证明
RSA算法的正确性基于数学证明,其中涉及到欧拉定理和模运...
Pyrdp-convert路径ErrorSolve1. 问题识别执行 pyrdp-convert rdp_dec.pcap -o out 命令时出现大量错误:
123[-] Failed to handle data, continuing anyway: [Errno 2] No such file or directory: 'D_\\Forensicstools\\envs\\out\\20170823082818_192.168.43.185_59921-192.168.43.130_3389.pyrdp'
注意到路径中的 D: 被错误地替换为 D_ (冒号变成了下划线),导致系统无法找到正确的文件路径。
2. 定位问题代码通过分析代码,我发现问题出在 d:\Forensicstools\envs\pyrdp\pyrdp\recording\recorder.py 文件中的 FileLayer 类:
12self.filename = fileNameself.filename = str(self.filename).replace(":&...
EzUSB
一个简单的USB流量
点开第一个流量发现抓捕到payload,第三个字节为09.
表示USB Device向HOST发送了信息,“Leftover Capture Data” 就是 USBPcap 抓到的 EP 数据(payload)
根据HID 键盘标准表:
以下kecode对应的就是usage ID
Keycode
键
ASCII
0x04
a
61
0x05
b
62
0x06
c
63
0x07
d
64
0x08
e
65
0x09
f
66
0x0A
g
67
0x0B
h
68
0x0C
i
69
0x0D
j
6A
0x0E
k
6B
0x0F
l
6C
0x10
m
6D
0x11
n
6E
0x12
o
6F
0x13
p
70
0x14
q
71
0x15
r
72
0x16
s
73
0x17
t
74
0x18
u
75
0x19
v
76
0x1A
w
77
0x1B
x
78
0x1C
y
79
0x1D
z
7A
那...
UBIFS(Unsorted Block Image File System)是针对闪存设备设计的文件系统。我详细介绍一下UBIFS镜像的处理和分析:
UBIFS 概述特点
专为原始闪存设备设计
支持磨损均衡、坏块管理
提供数据压缩、数据完整性
用于嵌入式Linux系统
UBIFS镜像结构镜像组成text
1234UBIFS镜像 → UBI卷 → UBIFS文件系统 ↓ ↓ ↓ .ubif文件 包含多个 实际文件系统 物理擦除块
层次结构text
DNS Courier<from NSSCTF(CTF)>
发现访问了多次奇怪的域名请求。
过滤这类请求(自行想办法过滤)
然后将这类流量包提取打包成另一个pcapng文件(如果嫌原来的流量包分析起来慢的话)
可以发现按时间顺序排序的第一个域名请求包含504B0304,那么可以联想到作者将压缩包元数据作为域名请求了。
然后我们自然而然想到提取这些数据还原压缩包。
但是这里足足有20万条流量包,也就是最少需要20万行的批处理,这里有人说用代码跑,但是并不建议,我们先提取数据。
Arrdeepee
题目描述:
我们某一个box被pwn了。在检查过程中,我们发现了一个叫mimikatz的东西,我们以前没有安装过,所以我们清除了,并且重新安装了box。但是,我们忘记备份我们的flag文件了。幸运的是,我们有一个攻击者网络流量捕获。你可以帮我们恢复出flag文件吗?
流量分析,废话不多说,直接开始.
发现大量tls,同时还有较为罕见的rdp流量,没接触过,试试.
我们知道rdp流量中 TPKT 是 RDP 的传输封装层,同时默认端口:TCP 3389, 这种情况下如果没有TPKT流量,就需要wireshark对协议进行解析:
将从59921端口发往3389端口的TCP协议解析为TPKT协议,就可以看到了.
VMware Linux命令窗口鼠标滑轮体验优化解决方案为什么 VMware 下鼠标滚轮手感差
虚拟机的输入延迟: VMware 把宿主机的鼠标输入“翻译”成虚拟信号发送到客机,滚轮事件分辨率很低(一次滚动往往是好几行)。
libinput 默认步长过大: Linux 桌面默认按“行”滚动,而不是“像素滚动”,导致特别跳。
没有加速度补偿: 虚拟设备(如 VirtualPS/2 VMMouse)通常不支持高精度滚动(不像真实 USB 鼠标那样有分级信号)。
启用平滑滚动(针对 GNOME / libinput)在命令行执行:
1sudo nano /etc/libinput/local-overrides.quirks
添加以下内容:
1234[VMware Virtual Mouse]MatchName=VMware VMware Virtual USB MouseAttrScrollMethod=buttonAttrScrollPoints=1
然后重启或运行:
1sudo udevadm control --reload-rules &&...
traffic 1
有tcp无http,怀疑tls
过滤tls
大量tlsv1.2协议。
发现Encrypt字段,怀疑解密。
搜索key没有发现,再看了看发现有ftp协议,看看什么模式。
Block-chain Signln
题目给了我们区块hash,我们可以查询~TESTNET Sepolia (ETH) Blockchain Explorer
根据hash查询交易信息
这里click to SHOW MORE
发现一个INPUT DATA是hex转一下,得到flag。
☆: .。. o(≧▽≦)o .。.:☆《☆》: .。. o(≧▽≦)o .。.:☆