This commit is contained in:
author
2025-11-08 21:00:06 +08:00
parent 95a4182500
commit fc176f1b7d
1793 changed files with 2099698 additions and 0 deletions
File diff suppressed because it is too large Load Diff
+33
View File
@@ -0,0 +1,33 @@
### 正向代理和反向代理区别
**正向代理 (Forward Proxy)**
**正向代理**是我们通常所说的代理,它代理的是**客户端**的请求。在内网渗透中,正向代理通常用于让内网主机(客户端)访问外部网络资源
**渗透中的应用场景**
当你成功控制了一台内网主机,但它无法直接访问互联网时,你可以利用另一台可以访问互联网的内网主机作为正向代理。这样,被控制的主机就可以通过这个代理访问你部署在公网的服务器,从而进行数据传输或下载恶意文件
**举例说明**
想象一下,你控制了内网中的一台主机 **A**,而你的攻击机 **C** 在公网。主机 **A** 无法直接访问互联网,但内网中有一台主机 **B** 可以访问。你可以在主机 **B** 上搭建一个正向代理,让主机 **A** 的流量都通过 **B** 转发到公网,从而连接到你的攻击机 **C**
**反向代理 (Reverse Proxy)**
**反向代理**代理的是**服务器**的请求。它位于服务器的前端,将来自客户端的请求转发给后端的服务器。在内网渗透中,反向代理常用于将公网的流量转发到内网中的某台主机,从而实现公网与内网的通信
**渗透中的应用场景**
当你需要让公网的攻击机(客户端)主动连接到内网中的一台主机(服务器)时,反向代理就非常有用了。特别是当内网主机没有公网 IP,或由于防火墙、NAT 等原因无法直接从公网访问时,你可以在一台具有公网 IP 的服务器上设置反向代理
**举例说明**
假设你的攻击机 **C** 在公网,你成功让内网中的主机 **A** 运行了你的木马程序。但主机 **A** 无法直接接收来自公网的连接。这时,你可以在公网的服务器 **S** 上设置反向代理。让主机 **A** 主动连接到服务器 **S**,然后服务器 **S** 将来自你攻击机 **C** 的流量转发给主机 **A**。这样,你的攻击机 **C** 就能控制主机 **A**,即使它没有公网 IP
| 特性 | 正向代理(Forward Proxy | 反向代理(Reverse Proxy |
| -------- | ------------------------- | ---------------------------- |
| 代理对象 | 客户端(内网主机) | 服务器(内网主机) |
| 流量方向 | 从内网到公网 | 从公网到内网 |
| 目的 | 帮助内网主机访问外部资源 | 帮助外部主机访问内网资源 |
| 代理位置 | 通常在内网中 | 通常在公网中或内网与公网边界 |
| 常用工具 | proxychains, ssh -D | frp, ngrok, reGeorg |
File diff suppressed because it is too large Load Diff
+41
View File
@@ -0,0 +1,41 @@
### 内网有 ACL 策略,如果是白名单如何绕过
**1. 利用被允许的协议和端口**
这是最直接、最有效的方法。你需要找到 ACL 策略放行的协议和端口,然后利用它们建立隧道
- **DNS 隧道**:如果 ACL 允许 DNS 流量(通常是放行的,因为网络解析需要),这是首选方法
- **原理**:将你的恶意流量(例如 C2 通信)编码成 DNS 查询请求(通常是子域名),发送到你控制的公网 DNS 服务器。你的服务器解析后,再将响应数据编码在 DNS 回复包中返回
- **优点**:几乎所有网络都允许 DNS 流量出网,隐蔽性极高
- **工具****`iodine`** 和 **`dnscat2`** 是最经典的 DNS 隧道工具
- **ICMP 隧道**:如果 ACL 允许 ICMP 流量(例如允许 `ping`),你就可以利用它
- **原理**:将你的数据封装在 ICMP Echo 请求包的载荷中,通过 `ping` 的方式发送出去,并从回复包中接收数据
- **优点**:同样利用了网络诊断的合法协议,不易被察觉
- **工具****`ptunnel`** 或 **`icmpsh`**
- **HTTP/S 隧道**:如果内网允许访问特定网站或端口的 HTTP/S 流量,你可以伪装成这种流量
- **原理**:将你的 C2 通信封装在 HTTP/S 请求和响应中。你可以利用 **CDN**、**合法域名**或者**特定的代理服务器**来伪装流量
- **优点**:流量看起来像是正常的网页浏览,非常具有迷惑性
- **工具****`reGeorg` / `Neo-reGeorg`**、**`sliver`**、**`Cobalt Strike`** 都可以配置 HTTPS 监听器来绕过
**2. 利用白名单 IP 或域名**
除了协议和端口,ACL 策略也可能基于 IP 地址或域名进行白名单控制
- **利用合法代理服务器**:如果 ACL 允许访问某个合法的代理服务器(例如公司内部的 Web 代理),你可以尝试利用这个代理来转发你的流量
- **原理**:配置你的攻击工具,让其通过这个代理服务器进行通信
- **挑战**:代理服务器可能会有日志记录和内容审计
- **利用被允许的域名进行 C2 通信**:如果 ACL 只允许访问特定的几个域名(比如 `*.microsoft.com`),你可以尝试使用**域名欺骗(Domain Fronting**技术,将你的 C2 服务器 IP 隐藏在这些域名背后
- **原理**:将你的 C2 服务器部署在某个**云服务商**(如 AWS、Azure)上,然后利用这些服务商的合法域名作为流量的“正面”,而你的真实 C2 流量则通过 SNI 等方式悄悄地指向你的服务器
- **挑战**:需要深入了解域名欺骗的原理和云服务的配置,且随着安全防御的升级,这种方法越来越难以成功
**3. 利用物理或软件层面的漏洞**
如果以上网络层面的方法都失败了,你可能需要考虑更底层的绕过方式
- **利用已安装的软件进行通信**:有些内网机器上会安装一些特殊的软件,这些软件可能拥有出网的白名单权限
- **原理**:例如,一些企业的远程协助软件、杀毒软件、或者特定的企业应用,它们的通信流量是允许的。如果你能劫持或利用这些软件的进程,就可以将你的流量注入其中
- **挑战**:需要深入分析目标机器上运行的软件,并找到其漏洞或利用点
- **DLL 注入或进程注入**:这是一种更高级的攻击方式
- **原理**:将你的恶意代码注入到某个**拥有出网白名单权限的合法进程**中。这样,你的流量就会伪装成该进程的流量,从而绕过 ACL 策略
- **优点**:隐蔽性极高,可以有效绕过大多数基于网络层的防御
- **挑战**:技术门槛高,需要对进程和内存有深入理解
File diff suppressed because it is too large Load Diff
+86
View File
@@ -0,0 +1,86 @@
### 如何进行内网穿透
**1. 反向代理与隧道技术**
这是最常用也是最稳定的内网穿透方式。其原理是**让内网主机主动连接公网服务器,并建立一个持久的通信隧道**
**工具:Frp**
**Frp** 是一个高性能的反向代理应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议,它可以将内网服务暴露给公网
**工作流程:**
- **公网服务器(VPS):** 运行 `frps`(服务端),监听一个端口
- **内网主机(目标机器):** 运行 `frpc`(客户端),连接到公网服务器
- **配置:** 在 `frpc.ini` 配置文件中指定要暴露的内网服务(如 SSH 服务、Web 服务),并将其转发到公网服务器的指定端口上
**Frp 优点:**
- **多协议支持:** 几乎可以转发任何类型的流量
- **配置简单:** 配置文件清晰,易于上手
- **性能优秀:** 资源占用低,转发速度快
- **隐蔽性:** 流量经过加密,且内网主机是主动出站连接,不易被防火墙拦截
**工具:Ngrok**
Ngrok 提供了类似的隧道服务,但它通常需要注册账号,并且免费版有诸多限制。对于渗透测试来说,自己搭建的 Frp 更灵活、更可靠
**2. SSH 隧道**
SSH 隧道利用 SSH 协议来转发流量,是许多渗透测试工程师的首选工具,因为它在大多数 Linux 和 macOS 系统中都自带了 SSH 客户端
**反向 SSH 隧道**
**原理:** 攻击者在公网服务器上监听一个端口,然后让内网主机使用 `ssh -R` 命令,将内网的端口映射到公网服务器上
**示例:** 假设内网Web服务运行在 `127.0.0.1:8080`,公网VPS IP 为 `203.0.113.10`。 在内网主机上执行: `ssh -R 8080:127.0.0.1:8080 user@203.0.113.10`
- `-R`:表示反向端口转发
- `8080`:公网服务器上的监听端口
- `127.0.0.1:8080`:内网服务的地址和端口
- `user@203.0.113.10`:公网服务器的登录信息
现在,你就可以通过访问 `http://203.0.113.10:8080` 来访问内网的 Web 服务了
**SSH 隧道优点:**
- **原生支持:** 无需额外安装工具
- **加密:** 流量全程加密,安全可靠
- **易用性:** 命令行简单,操作便捷
**3. DNS 隧道**
在一些网络环境极端受限(如只允许 DNS 请求通过)的情况下,DNS 隧道是一种非常隐蔽且有效的穿透方式
**原理:** 将需要传输的数据编码为域名请求(DNS Query),发送到攻击者控制的公网 DNS 服务器。公网服务器接收到请求后,将其解码,然后将响应数据编码在 DNS 响应(DNS Reply)中返回
**工具:**
- **iodine** 这是一个流行的 DNS 隧道工具
- **dnscat2** 另一个功能强大的 DNS 隧道工具,可以模拟一个交互式 Shell
**DNS 隧道优点:**
- **极度隐蔽:** DNS 流量通常不被防火墙严格审查,容易绕过限制
- **穿透力强:** 几乎可以在任何网络环境中工作
**DNS 隧道缺点:**
- **速度慢:** 由于 DNS 协议的限制,传输速度非常慢,不适合传输大量数据
- **不稳定:** 容易受到网络波动影响
**4. HTTP/HTTPS 隧道**
当目标网络只允许 HTTP/HTTPS 流量出站时,可以利用 HTTP/HTTPS 隧道
**原理:** 将流量伪装成 HTTP/HTTPS 请求,通过公网服务器的 Web 代理或隧道工具进行转发
**工具:**
- **Tunna** 一个利用 HTTP 协议进行 TCP 隧道转发的工具
- **meterpreter 的 Reverse HTTP/HTTPS Payload** Metasploit 框架中的反向 shell,其流量就是通过 HTTP/HTTPS 隧道传输的
**HTTP/HTTPS 隧道优点:**
- **绕过代理:** 能够穿透只允许 Web 流量的网络
- **隐蔽性好:** 流量伪装成正常浏览行为,不易被发现
File diff suppressed because it is too large Load Diff
+56
View File
@@ -0,0 +1,56 @@
### 如何隐藏 CS 流量
**1. 域前置**
域前置是一种非常有效的流量隐藏技术,它利用了内容分发网络(CDN)的特性
**核心思想:** 攻击者将 CS 流量伪装成对一个著名且无害的域名的访问请求(比如 `www.google.com``www.amazon.com`)。当请求到达 CDN 服务器后,CDN 服务器会根据请求头中的特定字段(如 `Host` 字段),将流量转发到攻击者控制的真正恶意域名或 IP 地址上
**工作流程:**
1. 你注册一个域名,例如 `attacker.com`
2.`attacker.com` 的 CNAME 记录指向一个支持域前置的 CDN 服务提供商(如 Amazon CloudFront 或 Akamai
3. 在 CS 的配置文件中,将监听器的 Host Header 设置为 `attacker.com`
4. 在 Beacon 的配置文件中,将 Host 设置为公共域名,例如 `www.google.com`
**为什么有效?** 网络安全设备看到的是对 `www.google.com` 的访问请求,这通常是白名单流量,很难被拦截。只有当流量到达 CDN 服务器后,其内部转发机制才会将其导向真正的恶意服务器
**2. Malleable C2 配置文件**
这是隐藏 CS 流量最基本也是最强大的方法。Malleable C2 配置文件允许你自定义 Beacon 的所有网络通信特征,使其看起来像合法的流量
**核心思想:** CS 的默认流量特征非常明显。通过修改 **Malleable C2 配置文件**,你可以改变 Beacon 的 HTTP 请求头、响应头、URI、HTTP POST 请求中的数据格式等等,使其模仿其他应用程序的流量,如 Google Chrome、Office 365 等
**主要配置项:**
- **`http-get`** 定义 Beacon 向 C2 服务器获取任务的 GET 请求。你可以自定义 `user-agent``uri`
- **`http-post`** 定义 Beacon 向 C2 服务器回传数据的 POST 请求。你可以自定义 `uri``data`
- **`headers`:** 修改请求头,让其看起来像正常的 Web 流量
- **`stage`** 更改 Beacon 的 Payload 特征,使其更难被检测
**示例:** 一个精心制作的 Malleable C2 配置文件,可以使 Beacon 的流量看起来像在访问 Outlook Web Access 或者一个合法的 CDN 资源。这大大增加了网络安全设备的识别难度。
**3. DNS over HTTPSDoH)隧道**
DoH 是一种将 DNS 查询通过加密的 HTTPS 协议发送的技术。你可以利用它来隐藏 CS 的 DNS 流量
**核心思想:** 传统的 DNS 流量是明文的,很容易被监控。如果你使用 DNS 作为 C2 通信信道,将 Beacon 的 DNS 请求伪装成 DoH 流量,可以有效绕过一些防火墙的 DNS 流量检测
**优点:**
- **加密:** 流量全程加密,难以被中间人分析
- **伪装性:** 将 DNS 流量混入正常的 HTTPS 流量中,非常隐蔽
**实现方式:** 需要使用支持 DoH 的 CS 插件或者自定义脚本来构建隧道
**4. 利用其他协议隐藏流量**
除了 HTTP/HTTPS 和 DNSCS 还可以利用其他协议进行 C2 通信,从而绕过针对 Web 流量的检测
**a. SMB Beacon**
SMB Beacon 利用 SMB 协议在内网中进行横向移动和 C2 通信。它不产生任何出站流量,所有通信都在内网主机之间进行。 **优点:** 完美隐藏了出站流量,只在内网活动,非常适合内网横向渗透。 **缺点:** 无法从外部直接控制,需要先在一个跳板机上建立一个 HTTP/DNS Beacon
**b. ICMP Beacon**
ICMP Beacon 利用 ICMP 协议进行 C2 通信。 **优点:** 许多网络环境对 ICMP 流量审查不严,因此隐蔽性较好。 **缺点:** 传输数据量小,速度慢,不稳定
File diff suppressed because it is too large Load Diff
+28
View File
@@ -0,0 +1,28 @@
### ICMP 隧道的流量特征
由于 ICMP 隧道将其他协议的数据“借壳上市”,它的流量行为和正常的 `ping` 命令有显著区别。以下是 ICMP 隧道的几个主要流量特征:
**1. 非标准的ICMP数据载荷**
- **正常流量**:标准的 `ping` 命令(ICMP echo request/reply)通常携带的数据载荷较小,通常为32或64字节,并且数据内容是可预测的,比如 `ABCDEFGHIJKLMNOPQRSTUVWXYZ`
- **隧道流量**:ICMP 隧道的数据载荷大小会根据传输的数据量而变化,通常**远大于**正常的 `ping` 载荷。这些载荷是经过**编码和加密**的,因此其内容是**随机且不可读**的
**2. ICMP包类型和代码异常**
- **正常流量**`ping`命令使用的ICMP包类型是`Echo Request`(类型8)和`Echo Reply`(类型0
- **隧道流量**:ICMP隧道可能会使用其他不常见的ICMP类型,例如`Timestamp Request`(类型13)、`Address Mask Request`(类型17)等,或者使用**不常见的ICMP Code**来作为数据传输的标记
**3. 高频、连续的`ping`请求**
- **正常流量**:用户手动 `ping` 一个地址通常是短期的、低频的行为,比如几秒钟一次,持续几十次
- **隧道流量**:为了维持稳定的通信,ICMP 隧道工具会**高频率、连续地**发送和接收 ICMP 包,其频率远超正常`ping`行为,表现为一种持续不断的“心跳”模式
**4. 异常的 ICMP ID 和 Sequence Number**
- **正常流量**`ping` 命令的 `ID` 通常是随机生成的,`Sequence Number` 则按顺序递增。在一次会话结束后,`ID` 会改变
- **隧道流量**:ICMP 隧道工具可能会**自定义**这些字段来传输数据,使其`ID``Sequence Number`表现出非线性和不规则的模式,这在自动化分析中很容易被标记为异常
**5. 传输方向和目的地址异常**
- **正常流量**`ping `命令通常是从内网主机到外网服务器,或者在内网中进行测试
- **隧道流量**:恶意 ICMP 隧道流量会从**内网主机**流向**外部攻击者控制的服务器**,这在网络流向分析中是一个重要的异常点
File diff suppressed because it is too large Load Diff
+41
View File
@@ -0,0 +1,41 @@
### 代理转发常用的工具有哪些
**1. Frp**
**FRP** 是一款开源的高性能反向代理应用,可以帮助你将内网服务暴露到公网。它支持多种协议,如 TCP、UDP、HTTP、HTTPS,并且配置简单
- **优点:** 性能高、功能强大、支持多平台、社区活跃
- **适用场景:** 将内网中的 Web 服务、SSH 服务等暴露给公网,或者建立一个稳定的代理通道
**2. EW**
**EW** 是一款专为内网穿透设计的轻量级工具。它通过 SOCKS5 代理的方式,将流量在多个节点之间进行转发,可以轻松构建多级代理
- **优点:** 体积小巧、使用简单、无需安装、支持多级代理
- **适用场景:** 在复杂的内网环境中,通过多个跳板机构建代理链,实现流量的隐蔽传输。
**3. Nps**
**Nps** 是一款功能强大的开源内网穿透工具,支持 TCP、UDP、SOCKS5、HTTP 等多种代理模式。它提供了 Web 管理界面,方便用户管理代理和查看流量信息
- **优点:** 功能丰富、有 Web 管理界面、支持多种协议、性能稳定
- **适用场景:** 需要长期、稳定地维护一个内网穿透通道时,特别是在团队协作的环境下。
**4. Ligolo-ng**
**Ligolo-ng** 是一款基于隧道(Tun)设备的代理工具。它在客户端和服务器端之间创建一个虚拟网络接口,使得攻击者可以像直接连接到内网一样,通过这个接口访问内网资源
- **优点:** 提供了完整的二层网络访问能力、流量隐蔽性高、不易被检测
- **适用场景:** 当你需要执行更复杂的网络操作(如端口扫描、漏洞利用等),而不仅仅是简单的流量转发时
**5. SSH Tunneling**
**SSH** 本身就是一种强大的代理转发工具。通过 SSH 隧道,你可以创建正向代理、反向代理和动态代理(SOCKS5 代理)
- **正向代理:** 将客户端的流量转发到 SSH 服务器
- **反向代理:** 将 SSH 服务器的流量转发到内网服务,实现内网穿透
- **动态代理:** 将本地端口变成一个 SOCKS5 代理,可以用于代理浏览器流量或整个系统的流量
**优点:** 系统自带、隐蔽性好、加密传输、无需额外工具
**适用场景:** 已经获得了 SSH 权限,且只需进行简单的端口转发或动态代理时
File diff suppressed because it is too large Load Diff
+21
View File
@@ -0,0 +1,21 @@
### 目标机器 Ping 不通外网,没有办法走网络层协议如何搭建隧道
**1. HTTP/HTTPS 隧道**
如果目标机器能够访问互联网上的某个网站,那么 HTTP/HTTPS 隧道就有了用武之地
- **工作原理:** 我们可以将流量伪装成正常的 **HTTP/HTTPS 请求**(例如 GET 或 POST),将其发送到攻击者控制的 Web 服务器。Web 服务器接收到请求后,再将流量转发到真正的目的地。反之亦然,通过 Web 服务器的响应将数据传回
- **工具:**
- **reGeorg** 一个经典的 HTTP 隧道工具,通过在 Web 服务器上部署一个 Web Shell,来建立 SOCKS 代理
- **Meterpreter 的 `http/https` 模块:** 在使用 Metasploit 框架时,这是一个非常方便的选项,可以直接利用 HTTP/HTTPS 协议进行反向连接
- **Tunna** 类似于 reGeorg,但提供了更多功能和灵活性
**2. DNS 隧道**
这是最常用也是最有效的方案之一。DNS 协议通常被认为是“无害”的,很少有防火墙会完全阻止它
- **工作原理:** 我们通过将恶意流量封装在 **DNS 查询请求(A 记录、TXT 记录等)**或 **DNS 响应**中,从而建立一个隐蔽的通道。目标机器作为客户端,向攻击者控制的 DNS 服务器发起查询,而查询的域名中就携带着数据。攻击者服务器收到查询后,通过 DNS 响应将数据传回给客户端
- **工具:**
- **iodine:** 一个非常经典的开源工具,支持 IPv4 over DNS
- **DNSCat2:** 支持加密和更复杂的数据传输,可以模拟一个交互式的 Shell
- **dnscapy** 侧重于 DNS 数据包的解析和生成,适合自定义隧道
File diff suppressed because it is too large Load Diff
+28
View File
@@ -0,0 +1,28 @@
### 内网的多级代理用什么东西代理
**1. SOCKS 代理**
**什么是 SOCKS 代理?** SOCKSSocket Secure)是一种网络协议,它允许客户端通过一个代理服务器进行通信,而不必知道具体的应用层协议。它工作在 OSI 模型的第五层(会话层),因此可以支持几乎所有的应用层协议,如 HTTP、FTP、SSH 等
**如何实现?**
- **SSH**: `ssh -D 1080 user@remote_server` 这是最常见也最简单的方式。这条命令会在本地开启一个 SOCKS 代理(通常是 1080 端口),所有经过该代理的流量都会通过 SSH 连接加密后发送到远程服务器。远程服务器再将流量转发到目标内网。SSH 的优点是自带加密,且几乎所有 Linux 系统都默认安装
- **Metasploit 的 `auxiliary/server/socks4a``socks5` 模块**: 如果已经获取了 Meterpreter 会话,你可以直接在会话中运行 `background`,然后在 MSFconsole 中使用这个模块。它会利用已有的会话作为通道,建立一个 SOCKS 代理,让你可以通过 Metasploit 访问内网
- **frp (Fast Reverse Proxy)**: frp 是一个高性能的反向代理工具,它可以在公网服务器和内网服务器之间建立一个 TCP/UDP/HTTP/HTTPS/SOCKS5 等协议的通道。在多级代理场景中,frp 表现出色,因为它支持多级级联代理,并且配置灵活
**2. HTTP 代理**
**什么是 HTTP 代理?** HTTP 代理是一种工作在应用层(OSI 模型的第七层)的代理,主要用于转发 HTTP 和 HTTPS 流量。虽然功能不如 SOCKS 代理通用,但在某些特定场景下非常有用,尤其是在内网中部署了 Web 服务器时
**如何实现?**
- **Venom**: Venom 是一种使用 Go 语言开发的强大代理工具,它支持多级级联代理,可以模拟 HTTP/HTTPS 协议,从而绕过一些网络审计设备的检测。它的优点是轻量、配置简单,并且支持 Windows、Linux 等多个平台
- **Neo-reGeorg**: Neo-reGeorg 是 reGeorg 的升级版,它利用 HTTP(S) 隧道技术将流量封装在 HTTP 请求中。这意味着只要目标内网能访问 Web 服务,并且你能上传一个脚本(如 ASP/JSP/PHP),就能建立一个代理隧道
**3. VPN**
**什么是 VPN** VPNVirtual Private Network)是一种虚拟专用网络,它可以在公用网络上建立一个加密的、安全的通信通道。在渗透测试中,我们有时会利用 VPN 软件(如 OpenVPN)在跳板机上建立一个 VPN 服务,然后让目标内网机器连接到这个服务,从而将目标机器完全纳入我们的攻击网络,实现对内网的完全控制
**如何实现?**
- **OpenVPN**: 这是最常见且开源的 VPN 软件。你可以在一台公网 VPS 上搭建 OpenVPN 服务器,然后将客户端配置上传到内网跳板机,在跳板机上运行客户端连接服务器。这样,你的本地机器就可以通过这个 VPN 通道直接访问内网
File diff suppressed because it is too large Load Diff
+19
View File
@@ -0,0 +1,19 @@
### 如果 TCP 和 UDP 不出网怎么绕过
**1. 利用 DNS 协议进行隧道传输**
DNS 协议是最常见的出网协议之一,很多防火墙为了保证正常的网络解析,都会放行 DNS 流量。因此,我们可以利用 DNS 请求和响应来传输数据
- **工作原理**: 我们把需要传输的数据编码成 DNS 域名请求(通常是子域名),发送给一个可控的 DNS 服务器。我们的服务器收到请求后,会解析这些数据,并把响应数据编码在 DNS 回复包中,发回给目标机器
- **常用工具**:
- **dnscat2**: 这是一个功能强大的 DNS 隧道工具,支持加密和交互式会话,可以建立一个类似 shell 的通道
- **iodine**: 另一个流行的 DNS 隧道工具,可以将 IPv4 流量封装在 DNS 请求中
**2. 利用 ICMP 协议进行隧道传输**
ICMP(互联网控制消息协议)主要用于网络诊断,例如 `ping` 命令就是基于 ICMP 协议。如果网络管理员没有禁用 ICMP,我们可以利用 ICMP 包来传输数据
- **工作原理**: 将数据封装在 ICMP Echo 请求或回复的数据载荷中。目标机器发送带有数据的 ICMP 请求到我们的服务器,我们的服务器解析数据并发送 ICMP 回复包,以此实现双向通信
- **常用工具**:
- **`icmpsh`**: 一个简单的 ICMP shell,可以在两台机器之间建立一个交互式命令行
- **`ptunnel`**: 一个 TCP over ICMP 的隧道工具,可以将 TCP 流量通过 ICMP 隧道传输
File diff suppressed because it is too large Load Diff
+32
View File
@@ -0,0 +1,32 @@
### 多级代理如何做一个 CDN 进行中转
**步骤一:准备 C2 服务器**
首先,你需要一台公网服务器作为你的 C2 服务器
1. **购买一台云服务器**:选择一个知名云服务商,比如 AWS、Azure、Google Cloud 或 Linode
2. **配置 C2 框架**:安装你的渗透测试框架,例如 **Cobalt Strike**、**Metasploit** 或 **Sliver**
3. **配置监听器**:在 C2 框架中设置一个 HTTP/HTTPS 的监听器。**确保监听的端口是 80 或 443**,这是 CDN 默认支持的端口,也是最常见的 Web 流量端口
**步骤二:配置 CDN 服务**
接下来,你需要配置一个 CDN 服务来指向你的 C2 服务器。这里我们以 Cloudflare 为例,因为它是最常用且免费的选项
1. **注册域名**:你需要一个自己的域名。可以是任何后缀,比如 `.com``.net``.xyz`
2. **将域名解析到 Cloudflare**
- 在域名注册商那里,将域名的 DNS 服务器修改为 Cloudflare 提供的 DNS 服务器
- 在 Cloudflare 中,添加你的域名
3. **创建 DNS 记录**
- 在 Cloudflare 的 DNS 设置页面,创建一个 **A 记录**,将你想要的子域名(例如 `cdn.yourdomain.com`)指向你的 **C2 服务器的真实 IP 地址**
- **关键步骤**:确保这个记录的代理状态(Proxy status)设置为 **“已代理”(Proxied)**,即那个云朵图标是亮的。这是告诉 Cloudflare 将流量通过它的网络中转,而不是直接解析到你的 IP
4. **配置 SSL/TLS**
- 在 Cloudflare 的 SSL/TLS 设置页面,将模式设置为 **“完全 (严格)”(Full (strict)**。这会确保从客户端到 Cloudflare 的流量是加密的,同时从 Cloudflare 到你的服务器的流量也是加密的
- 你需要在你的 C2 服务器上为你的域名安装一个有效的 SSL 证书。可以使用 Let's Encrypt 免费生成
**步骤三:在目标机器上执行**
现在,你已经有了一个通过 CDN 中转的 HTTPS 流量通道
1. **生成 payload**:使用你的 C2 框架生成一个 payload,其回调地址(Callback URL)就是你刚才配置的 **CDN 子域名**(例如 `https://cdn.yourdomain.com/`
2. **执行 payload**:将这个 payload 部署到目标机器上并执行
3. **C2 通信**:当 payload 在目标机器上运行时,它会向 `cdn.yourdomain.com` 发送 HTTPS 请求。这个请求首先会到达 Cloudflare 的边缘节点,Cloudflare 识别到这是一个代理流量,然后将它转发到你后台配置的 C2 服务器的真实 IP 地址。这样,C2 服务器就能与目标机器建立连接
+20
View File
@@ -0,0 +1,20 @@
# 网安面试题(涵盖护网、红队、逆向、二进制)
上万道安全面试题已经全部为您划分好,适用于网络安全所有岗位!!!
HR:请问…………
我:叽里咕噜说啥呢,看看八股文上写了没
Summary.md 是目录噢!!)
**🙏 特别感谢名单**
在整理和完善本项目的过程中,以下朋友给予了宝贵的帮助与支持,在此表示诚挚的感谢!(排名不分先后)
- **@用户名1** —— 提供了大量安全面试题方向的补充
- **@用户名2** —— 纠正了多个问题的答案与表述
- **@用户名3** —— 贡献了真实面试题经验分享
- **@用户名4** —— 对内容结构与目录提出改进建议
如果您也愿意参与本项目,欢迎通过 **微信: XR3327026244** 投稿面试题或反馈问题,我们会在后续版本中加入您的名字
File diff suppressed because it is too large Load Diff