文章目录
基础概念
什么是端口?
**端口(Port)**是计算机网络通信中的逻辑连接点,用于区分不同的网络服务。
关键知识点:
- 端口范围:0-65535(共 65536 个)
- 协议类型:TCP 和 UDP
- 端口分类 :
- 知名端口(0-1023):HTTP(80)、HTTPS(443)、SSH(22)
- 注册端口(1024-49151):MySQL(3306)、Redis(6379)
- 动态端口(49152-65535):临时连接使用
端口状态详解
| 状态 | 英文 | 含义 | 技术原理 |
|---|---|---|---|
| 开放 | Open | 有程序监听 | 收到 SYN/ACK |
| 关闭 | Closed | 无程序监听 | 收到 RST |
| 被过滤 | Filtered | 防火墙阻止 | 无响应或 ICMP 错误 |
| 未过滤 | Unfiltered | 可访问但未知 | 无法确定状态 |
形象比喻:
- Open:门开着,有人在里面
- Closed:门关着,但你能摸到门把手(收到拒绝)
- Filtered:门被墙堵住了,看不见里面
常见高危端口
严重风险:
| 端口 | 服务 | 风险 |
|---|---|---|
| 135 | RPC | 系统信息泄露,远程代码执行 |
| 139 | NetBIOS | 共享泄露,密码破解 |
| 445 | SMB | 勒索病毒入口(永恒之蓝) |
| 3389 | RDP | 远程桌面,暴力破解 |
中等风险:
| 端口 | 服务 | 风险 |
|---|---|---|
| 21 | FTP | 明文传输,匿名访问 |
| 23 | Telnet | 明文传输,无加密 |
| 3306 | MySQL | 数据库未授权访问 |
Nmap 工具详解
Nmap 简介
**Nmap(Network Mapper)**是最流行的网络扫描和安全审计工具。
核心功能:
- 主机发现(Host Discovery)
- 端口扫描(Port Scanning)
- 服务版本探测(Version Detection)
- 操作系统识别(OS Detection)
- 漏洞扫描(Script Scanning)
常用扫描命令
1. 快速扫描(100 个常见端口)
bash
nmap -F 192.168.0.114
适用场景:快速了解目标开放的服务
2. 全端口扫描
bash
nmap -p- 192.168.0.114
说明:扫描所有 65535 个端口,耗时较长但更全面
3. 服务版本探测
bash
nmap -sV 192.168.0.114
说明:识别运行在开放端口上的服务版本
4. 操作系统识别
bash
nmap -O 192.168.0.114
说明:通过 TCP/IP 协议栈特征识别操作系统
5. 综合扫描(推荐)
bash
nmap -sV -sC -O 192.168.0.114
参数说明:
-sV:版本探测-sC:默认脚本扫描-O:操作系统识别
6. 漏洞扫描
bash
# SMB 漏洞扫描
nmap --script smb-vuln-* -p 445 192.168.0.114
# RDP 漏洞扫描
nmap --script rdp-vuln* -p 3389 192.168.0.114
7. UDP 端口扫描
bash
nmap -sU --top-ports 100 192.168.0.114
说明:UDP 扫描较慢,建议只扫描常见端口
8. 隐蔽扫描(SYN 扫描)
bash
nmap -sS 192.168.0.114
说明:不完成 TCP 三次握手,相对隐蔽
扫描输出格式
bash
# XML 格式(便于程序解析)
nmap -oX scan_result.xml 192.168.0.114
# 文本格式
nmap -oN scan_result.txt 192.168.0.114
# 所有格式
nmap -oA scan_result 192.168.0.114
实战演练
实验环境
| 角色 | 系统 | IP 地址 | 工具 |
|---|---|---|---|
| 攻击机 | WSL Kali Linux | 192.168.0.x | Nmap 7.98 |
| 目标机 | Windows 10 物理机 | 192.168.0.114 | 默认防火墙 |
步骤 1:主机发现
bash
# Ping 扫描(快速发现存活主机)
nmap -sn 192.168.0.0/24
输出示例:
Nmap scan report for 192.168.0.114
Host is up (0.0092s latency).
说明:确认目标主机在线
步骤 2:快速端口扫描
bash
nmap -F -v -oX scan_result.xml 192.168.0.114
扫描结果:
Starting Nmap 7.98 at 2026-05-07 10:02 +0800
Nmap scan report for MS-CCKGOIXMZBLY (192.168.0.114)
Host is up (0.0092s latency).
Not shown: 95 filtered tcp ports (no-response)
PORT STATE SERVICE
135/tcp open msrpc
139/tcp open netbios-ssn
445/tcp open microsoft-ds
3389/tcp open ms-wbt-server
5357/tcp open wsdapi
Nmap done: 1 IP address (1 host up) scanned in 1.96 seconds
步骤 3:服务版本探测
bash
nmap -sV 192.168.0.114
输出示例:
PORT STATE SERVICE VERSION
135/tcp open msrpc Microsoft Windows RPC
139/tcp open netbios-ssn Microsoft Windows netbios-ssn
445/tcp open microsoft-ds Microsoft Windows 10 SMB
3389/tcp open ms-wbt-server Microsoft Terminal Services
5357/tcp open http Microsoft HTTPAPI httpd 2.0
步骤 4:操作系统识别
bash
nmap -O 192.168.0.114
输出示例:
Device type: general purpose
Running: Microsoft Windows 10
OS CPE: cpe:/o:microsoft:windows_10
OS details: Microsoft Windows 10 1507 - 1909
步骤 5:漏洞扫描
bash
# 扫描 SMB 漏洞(永恒之蓝等)
nmap --script smb-vuln-* -p 445 192.168.0.114
# 扫描 RDP 漏洞
nmap --script rdp-vuln* -p 3389 192.168.0.114
输出示例:
Host script results:
| smb-vuln-ms17-010:
| VULNERABLE:
| Remote Code Execution in SMB
| State: VULNERABLE
| Risk: HIGH
| CVE: CVE-2017-0143
结果解读
扫描结果统计
| 项目 | 数量 | 占比 | 说明 |
|---|---|---|---|
| 扫描端口数 | 100 | 100% | 快速扫描模式 |
| 开放端口 | 5 | 5% | 存在风险 |
| 被过滤端口 | 95 | 95% | 防火墙保护 |
| 关闭端口 | 0 | 0% | 无 |
开放端口列表
| 端口 | 协议 | 服务 | 风险等级 |
|---|---|---|---|
| 135 | TCP | msrpc | 高危 |
| 139 | TCP | netbios-ssn | 高危 |
| 445 | TCP | microsoft-ds | 严重 |
| 3389 | TCP | ms-wbt-server | 严重 |
| 5357 | TCP | wsdapi | 中等 |
被过滤端口分析
95 个被过滤端口包括:
- 21-23:FTP、SSH、Telnet(远程管理服务)
- 80, 443, 8080:HTTP/HTTPS Web 服务
- 3306:MySQL 数据库
- 1433:MSSQL 数据库
- 5432:PostgreSQL 数据库
过滤机制:
- Windows 防火墙静默丢弃数据包
- 不发送 RST 拒绝包
- 扫描器无法确定真实状态
结论:防火墙配置正确,有效保护了未开放的服务。
下一步学习
完成端口扫描后,你需要了解:
. 如何配置防火墙保护端口 → 阅读《防火墙配置与外网访问》