Files
Sec-Interview/_book/Chapter1/1-16.md
T
2025-11-08 21:00:06 +08:00

70 lines
3.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
### 如何判断目标单位的机器是哪种协议出网
**1. 自动化扫描与端口探测**
这是最直接且高效的方法
- **使用自动化工具**:利用 **Nmap****`port-scan`** 这类工具,对目标内网机器或出网网段进行扫描
- **常用端口与协议**
- **HTTP/HTTPS**80/443):这是最常见的出网协议。几乎所有企业都必须开放这两个端口以供员工浏览网页。这是一个非常好的 C2 通道选择
- **DNS**(53):如果 DNS 请求能够出网,那么你可以利用 DNS 隧道技术。这种方法非常隐蔽,因为 DNS 流量通常被认为是无害的
- **SMTP/SMTPS**25/465/587):如果企业允许员工收发邮件,那么这些端口很可能出网
- **FTP/FTPS**20/21):不常见,但如果开放了,也是一个很好的出网通道
- **SSH**(22):如果目标允许员工通过 SSH 远程访问服务器,那么这个端口很可能出网
- **优点**:快速、自动化,能提供初步的端口开放信息
- **缺点**:不一定能确定协议能否出网,因为端口开放可能只是用于内部服务
**2. 手动测试与验证**
自动化扫描后,你需要手动验证协议是否真的能出网
- **使用命令行工具**
- **`ping`**:测试 ICMP 协议是否出网
- **`telnet`** 或 **`nc` (netcat)**:测试 TCP 协议。例如,`telnet www.baidu.com 443``nc -vz www.baidu.com 443`。如果连接成功,说明 443 端口出网
- **利用编程语言**
- **Python**:编写一个简单的 Python 脚本,尝试通过不同的协议向你的服务器发送请求
```python
import socket
try:
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.settimeout(5)
s.connect(('your_server_ip', 443))
print("Port 443 is open")
s.close()
except Exception as e:
print(f"Port 443 is closed: {e}")
```
- **优点**:能精确验证某个端口是否出网,并能获得更详细的错误信息
**3. 基于 DNS 查询的隐蔽测试**
如果你无法通过常见的协议出网,DNS 是一个非常隐蔽的测试方法
- **原理**:即使防火墙非常严格,也必须允许 DNS 流量出网,否则员工将无法正常上网。你可以利用这个特性,通过 DNS 查询来判断出网情况
- **操作步骤**
1. 在你的攻击服务器上,搭建一个 DNS 服务器,并配置一个域名,例如 `test.com`
2. 在目标机器上,执行一个 DNS 查询命令,例如 `nslookup <随机字符串>.test.com`
3. 回到你的 DNS 服务器,如果收到了这个 DNS 查询请求,就说明 DNS 协议出网。你甚至可以从 DNS 请求的源 IP 地址,判断是哪台机器发出的请求
- **优点**:高度隐蔽,能绕过许多严格的防火墙规则
**4. 利用现有权限进行系统配置分析**
如果你已经通过其他漏洞(如钓鱼、弱口令等)获得了某台机器的权限,那么判断出网协议就变得更加容易
- **检查防火墙规则**
- **Windows**`netsh advfirewall firewall show rule name=all` 或 `Get-NetFirewallRule`。这能直接告诉你哪些端口是出网的
- **检查代理服务器**
- **Windows**`netsh winhttp show proxy` 或检查浏览器的代理设置。许多公司要求所有出网流量必须通过一个代理服务器。在这种情况下,你需要配置你的 C2 通道去使用这个代理
- **检查应用程序日志**
- 查看 Web 服务器、代理服务器或防火墙的日志。这些日志文件会记录所有出入流量,是判断出网协议的最佳来源