主动扫描与漏洞扫描深度解析与实战
一、主动扫描:从 “未知” 到 “已知” 的探测之旅
主动扫描的核心是与目标系统主动交互,通过发送特制数据包分析响应,获取网络拓扑、主机状态、端口服务等基础信息。它就像网络世界的 “侦查兵”,为后续的漏洞分析和渗透测试铺路。
1. 主机发现:锁定网络中的 “活跃目标”
主机发现的核心是识别目标网络中存活的 IP 地址,常用的有三种层级的探测方式:
- 二层发现(ARP 协议):速度快、可靠性高,但只能在同一子网内使用。原理是发送 ARP 请求报文,目标主机收到后会主动应答,适合局域网内快速扫描。
- 三层发现(IP/ICMP 协议):最常用的就是 ping 命令,通过发送 ICMP Echo 消息等待应答。优点是简单通用,支持跨网段扫描,但容易被防火墙过滤。
- 四层发现(TCP/UDP 协议):基于端口探测,结果可靠且可路由,但扫描速度相对较慢。比如通过尝试连接目标端口来判断主机是否存活。


2. 端口扫描:找到系统的 “服务入口”
端口是网络服务的 “窗口”,每个开放端口对应一个运行中的应用程序(如 80 端口对应 Apache 服务器)。扫描端口的核心是判断端口状态,NMAP 将端口分为 5 种状态:
| 端口状态 | 含义 | 安全意义 | |
|---|---|---|---|
| Open(开放) | 端口正在运行服务,可接收连接 | 核心攻击面,需进一步探测服务版本 | |
| Closed(关闭) | 端口未运行服务,无响应 | 无直接风险,但可能临时开放 | |
| Filtered(过滤) | 防火墙拦截探测包,无明确响应 | 需尝试其他扫描方式(如 FIN 扫描)绕过防火墙 | |
| Unfiltered(未过滤) | 能收到响应,但无法判断开放 / 关闭 | 常见于 ACK 扫描,需结合其他扫描确认 | |
| Open | Filtered(开放或过滤) | 无法区分两种状态(如 UDP 端口无响应) | 需多次扫描或换协议验证 |
端口是网络服务的入口,不同端口对应不同的应用程序,找到开放端口就相当于找到了可能的攻击面。端口用 16 位二进制表示,范围从 0 到 65535,其中 0-1023 是知名端口(如 80 端口对应 HTTP 服务)。
常用的端口扫描方式:
- TCP 端口扫描:利用 TCP 三次握手原理,包括 TCP connect () 扫描、SYN 扫描、FIN 扫描等。SYN 扫描是半开放扫描,不建立完整连接,隐蔽性更强。


- UDP 端口扫描:向目标端口发送 UDP 数据包,若返回 ICMP_PORT_UNREACH 错误则说明端口关闭,无响应则可能为开放状态。


这里分享几个常用的知名端口对应关系,记下来很有用:
3. 操作系统与服务识别:精准定位 “目标特征”
操作系统协议栈指纹(OS Fingerprinting)是网络安全扫描中的关键技术,核心是通过分析目标设备发送的数据包特征,反向推断其操作系统类型及版本。尽管所有系统都遵循 TCP/IP 协议规范,但不同厂商、版本的协议栈在实现细节上存在差异,这些差异就像 “数字指纹”,成为识别依据 —— 对渗透测试而言,它是匹配漏洞、选择攻击路径的前提;对防御方,也是 IDS 识别异常设备的重要参考。协议栈指纹的核心特征分两类:基础表层特征来自 IP 头、TCP 头固定字段,如 IP TTL 值(Linux 4.10 + 默认 64、Windows 全版本默认 128)、TCP 窗口大小(Windows XP 默认 16384 字节、Linux 2.6.x 默认 5840 字节),获取门槛低,可通过 ping、Wireshark 快速捕捉;高级底层特征则体现在 TCP 交互逻辑,比如向开放端口发 FIN 包时,Windows 会回 RST 包、Linux 无响应,或 Windows ISN 按时间递增、Linux ISN 随机生成,这类特征能区分同系列系统版本。

4. 实战工具:NMAP
- 目标主机是否在线,所在的网络结构
- 开放的端口:80端口、135端口、443端口
- 目标主机所使用的操作系统:Win7、Linux、Android…
- 目标主机上运行的服务及其版本:Apache httpd、OpenSSH、Debian…
- 目标主机上所存在的漏洞:弱口令、ms08_067…
- 注意!NMAP 大小写敏感!
使用nmap扫描整个子网
先ifconfig获取自己的IP地址

再通过nmap 192.168.17.0/24扫描子网,这样就可以扫描整个子网

发现80端口的http是开放的,到浏览器中搜索,就可以访问metasploitable2了

(1)常用参数组合
| 功能 | 命令示例 | 说明 |
|---|---|---|
| 单个主机扫描 | nmap www.sina.com.cn | 基础扫描,探测常见端口 |
| 子网扫描 | nmap 192.168.64.0/24 | 扫描整个子网的存活主机 |
| 指定端口扫描 | nmap -p 80,443 + IP | 只扫描 80 和 443 端口 |
| 操作系统探测 | nmap -O +IP | 识别目标操作系统类型 |
| 服务版本探测 | nmap -sV +IP | 探测开放端口的服务版本 |
| 脚本扫描 | nmap --script=brute +IP | 运行暴力破解脚本 |
(2)使用nmap进行主机发现
- 跳过ping扫描阶段 namp –PN [目标]
- 仅使用ping协议进行主机发现 namp –sP [目标]
- 使用ARP协议进行主机发现 namp –PR [目标] 同一子网的目标
- 使用TCP协议进行主机发现 namp –sS [目标]
- 使用UDP协议进行主机发现 namp –sU [目标]
(2)NSE 脚本:拓展扫描能力
NMAP 脚本引擎(NSE)包含 500 + 脚本,覆盖漏洞探测、暴力破解、服务枚举等场景,常用脚本类别:
- vuln 类:检测常见漏洞,如
ftp-vsftpd-backdoor.nse(检测笑脸漏洞)。 -
brute 类:暴力破解服务密码,如
ssh-brute.nse(破解 SSH 密码)。nmap --script=ssh-brute --script-args=userdb=user.txt,passdb=pass.txt 192.168.64.129
二、漏洞扫描:挖掘系统的 “安全软肋”
如果说主动扫描是 “摸清目标底细”,漏洞扫描就是 “找到目标弱点”—— 即系统中可能被黑客利用的安全缺陷。
(1)漏洞的定义
- 编码失误:缓冲区未做边界检查(导致缓冲区溢出)。
- 设计缺陷:FTP 协议明文传输密码(导致密码被截获)。
- 配置错误:数据库默认密码未修改(导致弱口令登录)。
(2)漏洞扫描
- 0 day
- 零日漏洞或零时差漏洞(Zero-day exploit、 zero-day、0-day)通常是指还没有补丁的安全漏洞
- 零日攻击或零时差攻击(Zero-day attack)则是指利用这种漏洞进行的攻击。
- 提供该漏洞细节或者利用程序的人通常是该漏洞的发现者。零日漏洞的利用程序对网络安全具有巨大威胁,因此零日漏洞不但是黑客的最爱,掌握多少零日漏洞也成为评价黑客技术水平的一个重要参数。
漏洞扫描-笑脸漏洞
- 目标系统(Metasploitable2)上安装了软件VSFTPD v2.3.4
- vsftpd是Very Secure FTP daemon;是FTP服务器
- 但是在它的代码中却存在着一个重大问题,
- 在文件str.c中出现了一行与程序功能无关的代码。
- vsf_sysutil_extra():打开6200端口



漏洞扫描-检测笑脸漏洞

NetCat-瑞士军刀
首先查看目标主机地址,发现6200端口是关闭的

然后版本探测,
发现是存在这个vsftpd v2.3.4的存在,这就可以进行漏洞攻击
发现6200端口开放,也就是获得了控制权
就可以建立连接;获得shell,查看主机的一些信息

Nmap系统漏洞的扫描
- 针对VSFTPD v2.3.4的检测脚本名字为“ftp-vsftpd-backdoor.nse”使用它的方法为--script加上脚本名。
- nmap --script ftp-vsftpd-backdoor + ip

网络安全是一个 “攻防对抗、持续迭代” 的领域,这次主动扫描与漏洞扫描的学习,让我从 “理论” 走向 “实践”。后续我会继续深入学习漏洞利用和渗透测试流程,也欢迎大家在评论区交流实操中遇到的问题,共同进步!
更多推荐


所有评论(0)