Add files via upload
This commit is contained in:
@@ -0,0 +1,47 @@
|
||||
### 正向 Shell 和反向 Shell 的区别
|
||||
|
||||
**正向 Shell (Bind Shell)**
|
||||
|
||||
**工作原理**
|
||||
|
||||
1. 攻击者在目标主机上执行恶意代码,该代码会开启一个端口并监听,等待连接
|
||||
2. 攻击者随后从自己的机器上,向目标主机的这个监听端口发起连接
|
||||
3. 一旦连接建立,攻击者就可以通过这个连接发送命令,并在自己的终端上接收目标主机的输出
|
||||
|
||||
```
|
||||
A[攻击者] --主动发起连接--> B[目标主机: 监听端口]
|
||||
B --命令输出--> A
|
||||
```
|
||||
|
||||
**优点**
|
||||
|
||||
- **简单**:一旦端口在目标主机上打开,攻击者就可以直接连接。
|
||||
|
||||
**缺点**
|
||||
|
||||
- **防火墙限制**:这是正向 Shell 最大的问题。许多企业和家庭网络都部署了防火墙,会阻止来自外部的入站连接。目标主机的端口通常是关闭的,或者被严格限制
|
||||
- **IP 地址不确定**:如果目标主机的 IP 是动态的,攻击者很难持续连接
|
||||
|
||||
**反向 Shell (Reverse Shell)**
|
||||
|
||||
**工作原理**
|
||||
|
||||
1. 攻击者首先在自己的机器上,开启一个端口并监听,等待连接
|
||||
2. 攻击者在目标主机上执行恶意代码,该代码会主动连接攻击者的监听端口
|
||||
3. 一旦连接建立,攻击者就可以通过这个连接向目标主机发送命令,并接收命令输出
|
||||
|
||||
```
|
||||
A[攻击者: 监听端口] --等待连接--> B[目标主机]
|
||||
B --主动发起连接--> A
|
||||
A --命令--> B
|
||||
B --命令输出--> A
|
||||
```
|
||||
|
||||
**优点**
|
||||
|
||||
- **绕过防火墙**:这是反向 Shell 最大的优势。防火墙通常只阻止入站连接,但允许内部主机向外部发起出站连接。这使得反向 Shell 能够轻松穿透大多数防火墙
|
||||
- **IP 地址不确定**:即使目标主机的 IP 是动态的,只要它能主动连接到攻击者的固定 IP 地址,连接就可以成功建立
|
||||
|
||||
**缺点**
|
||||
|
||||
- **复杂性**:攻击者需要有一个公网 IP 或能够通过端口转发,才能在自己的机器上成功监听
|
||||
Reference in New Issue
Block a user