DNS Spoof摸上了Ettercap这款工具一直想做一下DNS劫持的,于是乎就开启了一个DNS劫持复现的过程~~~
(本演示仅用于教学,不可用于任何非法用途,违反法律造成的任何后果自行承担)
**Ettercap: ** Ettercap 是一个用于局域网流量分析与中间人攻击(MITM)实验的安全工具。
分类
内容
说明
工具类型
局域网安全测试工具
主要用于 MITM(中间人)攻击实验与防御验证
工作层级
二层为核心
依赖 ARP,而不是 ping / ICMP
使用前提
同一局域网
不同子网、跨路由基本无效
典型环境
内网 / 实验网
Kali、教学、授权测试
功能
作用
结果
主机发现
扫描局域网在线设备
Host List 里出现多个 IP
ARP 欺骗
构造中间人
选 Target1 / Target2
流量嗅探
捕获通信数据
能看到 HTTP / DNS
流量篡改
修改经过的数据
演示完整性破坏
插件系统
扩展攻击 / 检测
dns_spoof、arp_...
Mode 加密模式1)是什么?1:加密模式是定义怎样通过重复利用加密算法将大于一个数据块大小的明文转化为密文。
2:分组密码算法只能加密固定长度的分组,待加密的明文长度一般会大于分组长度,这里就需要对分组密码算法进行多次迭代,从而实现对明文的全部加密,迭代的方式就称为分组密码的加密模式。
3:诸如Tea简单加密算法而言,在分组密码加密过程中,往往要对原明文或明文的hash摘要进行分组操作,然而加密模式所决定的其实就是分组密码加密过程中对原明文的分组过程前后进行的处理操作,这一系列的处理都是为了结合各种加密的特点来更为方便的处理,保证加密的安全。可以简单理解为分组模式,只不过根据不同的加密模式有不同的处理方式。
2)为了什么?总结为增强加密过程的安全性、灵活性和效率。
3)如何工作?mode加密模式的不同对解密有什么影响?这两点我们放在一起讨论学习:
首先,我们知道,加密模式多种多样,是为了适合多种的加密模式。我们常见的加密模式有:
IV(Initialization Vector)——初始化向量本文简单阐述IV初始化向量的意义。
什么是IV?顾名思义,初始化:一开始就需要被使用的。
定义:IV是在密码学中为增强安全性而引入的一个随机或伪随机数据块,通常与分组密码的某些工作模式(如 CBC、CFB、OFB、CTR 等)配合使用。#具体应用可以看看mode加密模式那一篇。
干什么的?作用(存在意义):
IV 是在加密算法开始时使用的 初始输入值,其主要作用是保证即使相同的密钥和相同的明文重复出现,最终产生的密文也不会一样,从而防止攻击者通过分析重复模式推测信息。
Personal opinion:我们在mode加密模式那章见过IV,以及可能在CTF比赛中对于AES解密过程中可能需要我们发现IV并填充以正确解密。
ECDSA@2025年11月6日
ECDSA主要包含两个过程部分:1:签名2:验签
1)ECDSA的签名过程包括以下步骤:
选择一条椭圆曲线Ep(a,b)和基点G;选择私有密钥k(k<n,n为G的阶),利用基点G计算公开密钥K=kG;产生一个随机整数r(r<n),计算点R=rG;将原数据和点R的坐标值x,y作为参数,计算SHA1做为hash,即Hash=SHA1(原数据,x,y);计算s≡r−Hash∗k(modn);r和s做为签名值,如果r和s其中一个为0,重新从第3步开始执行。验证过程如下:
2)接受方在收到消息m和签名值r,s后,进行以下运算;计算sG+H(m)P=(x1,y1),r1≡x1modp;验证等式:r1≡rmodp;如果等式成立,接受签名,否则签名无效。
大致过程如上所述,那么如何实现的呢?
学习前,可能会有这样的疑问:椭圆曲线如何选择,公私钥如何生成,一般对什么样的消息进行签名,最终签名如何生成。。。。。。
首先,选定椭圆方程。一般情况下选择: y^{2}=x^{3}+ax+b 形式的方程。
确...
RC4什么是RC4 ?RC4加密算法是大名鼎鼎的RSA三人组中的头号人物Ron Rivest在1987年设计的密钥长度可变的流加密算法簇,之所以称其为簇,是由于其核心部分的S-box长度可为任意,但一般为256字节。
在密码学中,RC4(来自Rivest Cipher 4的缩写)是一种流加密算法,密钥长度可变。它加解密使用相同的密钥,因此也属于对称加密算法。所谓对称加密,就是加密和解密的过程是一样的。RC4是有线等效加密(WEP)中采用的加密算法,也曾经是TLS可采用的算法之一。
RC4已经成为一些常用的协议和标准的一部分,如1997年的WEP和2003/2004年无线卡的WPA; 和1995年的SSL,以及后来1999年的TLS。让它如此广泛分布和使用的主要因素是它不可思议的简单和速度,不管是软件还是硬件,实现起来都十分容易。
基本原理对明文使用同一个密钥异或两次最后得到的是原文
加密:原文和Keystream进行异或得到密文解密:密文和Keystream进行异或得到原文
生成秘钥流(KeyStream)从上图可以看出来,RC4加密原理很简单,只需要一个KeyStr...
Padding填充模式Padding(填充)是指在执行分组加密时,为了让明文长度刚好符合“分组大小的整数倍”,在明文末尾增加一些额外字节的过程。
我们在初次接触密码算法的过程中,使用一些专业的密码破解工具时往往能看到某些加密的过程中会有像PCKS#7等等的模式选项,经过查询我们可以得知这是一种密码在加密过程中对明文不满足特定长度倍数的一种特殊处理方法,以便更为快速方便的加密更为多样的明文消息。
举例:TEA、DES 的 block size = 8 字节AES 的 block size = 16 字节如果明文长度不是 8 或 16 的整数倍,就必须“填满”这一块,才能加密。
为什么需要 Padding(填充)?分组加密算法(Block Cipher)有一个不可改变的特点:它只能处理固定长度的分组(block)例如 TEA 一次只能处理 64 bit(8 字节)。如果明文是:HELLO (5 字节)
TEA 不能直接加密,因为 5 ≠ 8。必须变成 8 字节,例如:48 45 4C 4C 4F 03 03 03 ← PKCS#7 填充
于是 TEA 才能加密...
xxtea那么xxtea又来了!
相比于xtea,乃至tea,这次的改进可谓是大改进,在安全性和加密流程上做了较为巨大的改动,整体安全性也得到了提升:1、处理任意长度数据2、增强扩散性和抗差分攻击能力3、key调度更合理
观察tea和xtea,不难发现其实改动并不大,而且分组明文块的大小始终固定为八字节难免会存在安全性问题。 包括xtea和tea只在一个块中的两个半块进行扩散等等。
XXTEA = XTEA 的多块版本 + 非线性轮函数改进 + 轮数随数组长度调整 + 修复 Block TEA 弱点xxtea采用相邻半块进行更新,而tea,xtea只在一个块中的两个半块更新:
1v[i] = v[i] + F( v[i-1], v[(i+1)%n], sum, K[i&3] )
下面从5个方面来看看区别:存在意义
算法
目标
XTEA
修复 TEA 的弱点(等价密钥问题、周期性问题),适用于固定 64-bit 分组加密
XXTEA
扩展 XTEA,支持任意长度数据块,修复原 Block TEA 的弱点,提高多块消息的安全性
数据块结构
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(":&...