🔍常见扫描类型
| 扫描类型 | 原理 | 示例命令 | 特点 |
|---|---|---|---|
| TCP CONNECT | 完成三次握手,端口开放则连接成功 | nmap -sT target | 可靠但易被日志记录 |
| SYN Scan | 发送SYN包,不完成握手,半开放扫描 | nmap -sS target | 速度快,不记录日志 |
| UDP Scan | 发送UDP包,无握手协议 | nmap -sU target | 速度慢,结果不可靠 |
| FIN Scan | 发送FIN包,绕过防火墙 | nmap -sF target | 隐蔽,但仅对Unix有效 |
| NULL Scan | 发送标志位为0的包 | nmap -sN target | 极度隐蔽 |
| XMAS Scan | 发送FIN+URG+PUSH标志位 | nmap -sX target | 类似于FIN扫描 |
| ACK Scan | 发送ACK包,探测防火墙规则 | nmap -sA target | 不检测端口开闭,只测防火墙 |
| Window Scan | 利用TCP窗口大小差异 | nmap -sW target | 某些系统可区分端口状态 |
| Idle/Zombie Scan | 利用第三方僵尸主机 | nmap -sI zombie target | 最隐蔽,源IP隐藏 |
| Protocol Scan | 探测目标支持的IP协议 | nmap -sO target | 扫描IP协议而非端口 |
| FTP Bounce Scan | 通过FTP服务器中转 | nmap -b target | 隐藏真实来源 |
扫描状态详解
| 状态 | 含义 | 说明 |
|---|---|---|
| open | 端口开放 | 有服务监听,连接成功 |
| closed | 端口关闭 | 有服务但未监听 |
| filtered | 被过滤 | 防火墙/IDS阻止,无法确定 |
| unfiltered | 未被过滤 | ACK扫描时出现,无法判断开闭 |
| open/filtered | 开放或被过滤 | 无法区分两者 |
| closed/filtered | 关闭或被过滤 | 无法区分两者 |
Nmap 常用端口扫描命令
| 命令 | 扫描类型 | 适用场景 |
|---|---|---|
| nmap -sS -p 1-1000 target | SYN扫描,扫描1-1000端口 | 快速扫描 |
| nmap -sS -p- target | SYN扫描,全端口 | 全面扫描 |
| nmap -sT -p 22,80,443 target | TCP Connect扫描指定端口 | 快速确认服务 |
| nmap -sU -p 53,67,123 target | UDP扫描DNS/DHCP/NTP | 服务发现 |
| nmap -sS -F target | SYN扫描快速模式(top 100端口) | 日常巡检 |
| nmap -sV target | 版本检测 | 识别服务版本 |
| nmap -O target | 系统检测 | 识别操作系统 |
| nmap -A target | 综合扫描(系统+版本+脚本) | 深度探测 |
| nmap --script=vuln target | 漏洞扫描脚本 | 安全评估 |
常用端口对照表
| 端口 | 服务 | 说明 |
|---|---|---|
| 21 | FTP | 文件传输协议 |
| 22 | SSH | 远程连接(加密) |
| 23 | Telnet | 远程连接(明文) |
| 25 | SMTP | 邮件发送 |
| 53 | DNS | 域名解析 |
| 80 | HTTP | Web服务 |
| 110 | POP3 | 邮件接收 |
| 143 | IMAP | 邮件协议 |
| 443 | HTTPS | 安全Web |
| 445 | SMB | 文件共享 |
| 端口 | 服务 | 说明 |
|---|---|---|
| 1433 | MSSQL | SQL Server |
| 1521 | Oracle | Oracle数据库 |
| 3306 | MySQL | MySQL数据库 |
| 3389 | RDP | 远程桌面 |
| 5432 | PostgreSQL | Postgres数据库 |
| 6379 | Redis | 缓存数据库 |
| 8080 | HTTP Alt | 代理/Web |
| 27017 | MongoDB | MongoDB数据库 |
扫描结果示例
SYN扫描结果示例
$ nmap -sS -p 1-100 target.com
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
443/tcp open https
445/tcp filtered microsoft-ds
3306/tcp open mysql
TCP Connect 完整扫描
$ nmap -sT -p 22,80,443 target.com
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
443/tcp open https
UDP 扫描
$ nmap -sU -p 53,67 target.com
PORT STATE SERVICE
53/udp open domain
67/udp filtered dhcps
防御建议
| 措施 | 说明 |
|---|---|
| 防火墙规则 | 限制入站连接,只开放必要端口 |
| IDS/IPS | 部署入侵检测/防御系统 |
| 最小化服务 | 关闭不必要的服务 |
| 日志监控 | 关注异常扫描行为 |
| 连接限制 | 限制单IP连接数 |
| SYN Cookies | 防止SYN Flood攻击 |
【说明】以上信息仅作学习交流使用,未经授权的端口扫描是违法行为,请注意!