一、主动扫描:从 “未知” 到 “已知” 的探测之旅

主动扫描的核心是与目标系统主动交互,通过发送特制数据包分析响应,获取网络拓扑、主机状态、端口服务等基础信息。它就像网络世界的 “侦查兵”,为后续的漏洞分析和渗透测试铺路。

1. 主机发现:锁定网络中的 “活跃目标”

主机发现的核心是识别目标网络中存活的 IP 地址,常用的有三种层级的探测方式:

  • 二层发现(ARP 协议):速度快、可靠性高,但只能在同一子网内使用。原理是发送 ARP 请求报文,目标主机收到后会主动应答,适合局域网内快速扫描。
  • 三层发现(IP/ICMP 协议):最常用的就是 ping 命令,通过发送 ICMP Echo 消息等待应答。优点是简单通用,支持跨网段扫描,但容易被防火墙过滤。
  • 四层发现(TCP/UDP 协议):基于端口探测,结果可靠且可路由,但扫描速度相对较慢。比如通过尝试连接目标端口来判断主机是否存活。

2. 端口扫描:找到系统的 “服务入口”

端口是网络服务的 “窗口”,每个开放端口对应一个运行中的应用程序(如 80 端口对应 Apache 服务器)。扫描端口的核心是判断端口状态,NMAP 将端口分为 5 种状态:

端口状态含义安全意义
Open(开放)端口正在运行服务,可接收连接核心攻击面,需进一步探测服务版本
Closed(关闭)端口未运行服务,无响应无直接风险,但可能临时开放
Filtered(过滤)防火墙拦截探测包,无明确响应需尝试其他扫描方式(如 FIN 扫描)绕过防火墙
Unfiltered(未过滤)能收到响应,但无法判断开放 / 关闭常见于 ACK 扫描,需结合其他扫描确认
OpenFiltered(开放或过滤)无法区分两种状态(如 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

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

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐