第4章 主动扫描
注意:
1、保证所有主机(Kali2和靶机)都接到NAT,是在同一个网段,192.168.137.0/24
2、所有主机设置为自动获取IP参数,即DHCP模式。
3、靶机关闭防火墙,否则有些端口无法扫描。
本地主机为kali linux 2024版:地址为192.168.137.10/24
我这里自动获取到的IP地址为:
第一台靶机 Windows 7 32位的IP地址:192.168.137.161/24
第二台靶机linux centOS 7的IP地址:192.168.137.237/24
Nmap,即Network Mapper,是Linux下的网络扫描和嗅探工具包。一个网络连接端扫描软件,用来扫描网上电脑开放的网络连接端。确定哪些服务运行在哪些连接端,并且推断计算机运行哪个操作系统(这是亦称 fingerprinting)。它是网络管理员必用的软件之一,以及用以评估网络系统安全。
4.1 Nmap的基本用法
1、对单台设备进行扫描。
使用 -sn 进行ping扫描的端口禁用情况
对单台靶机进行扫描:nmap -sn 192.168.137.161
-
对IP地址不连续的多台设备进行扫描。
使用nmap对IP地址不连续的两台靶机进行扫描:nmap 192.168.137.161 192.168.137.237。
-
对IP地址在连续范围内的多台设备进行扫描。
使用nmap -sn 192.168.137.1-255 对连续范围内的多台设备进行扫描。
-
对整个子网的设备进行扫描。
使用nmap -sn 192.168.137.0/24 对整个子网的设备进行扫描。
4.2 使用Nmap进行设备发现
1、使用ARP进行设备发现。
使用wireshark进行ARP的设备发现。第一步点击左上角的“菜单”,第二步点击‘09-sniffing & spoofing’,第三步点击‘wireshark’。
打开wireshark后,点击eh0,使用nmap -sn 192.168.137.0/24进行端口扫描,在wireshark中观察。
-
使用ICMP进行设备发现。
使用nmap -Pn192.168.137.161命令对ICMP进行设备发现。
-Pn的作用是跳过主机发现阶段,直接扫描指定目标的所有端口,适用于目标主机禁止Ping或防火墙限制ICMP请求的情况。
-
使用TCP进行设备发现。
-
TCP SYN扫描。
使用nmap -sn -PS 10000 192.168.137.161进行TCP SYM扫描。
10000端口是TCP/IP协议中用于特定服务的网络端口,主要用途包括Webmin系统管理工具默认端口、HiveServer2数据库接口端口以及工业设备配置端口。
-sn -sP的作用是进行ICMP和TCP协议的主机发现。
-
TCP ACK扫描。
使用nmap -sn -PA 80 192.168.137.10进行TCP ACK扫描。
-sn -PA的作用是使用TCP ACK协议对目标主机进行存活扫描(主机发现)。
80端口是HTTP(超文本传输协议)的默认端口,主要用于万维网(WWW)的网页浏览服务,是互联网上使用最广泛的协议端口之一。
-
使用UDP进行设备发现。
使用nmap -sn -PU 80 192.168.137.10进行UDP扫描。
-sn -PU的作用是使用UDP协议进行主机发现。
4.3使用Nmap进行端口扫描
-
SYN扫描。
使用nmap -sS 192.168.137.161进行SYN扫描。
Nmap 的-sS选项用于进行 SYN扫描 (SYN半连接扫描),这是一种常用的扫描方式。
-
Connect扫描。
使用nmap -sT 192.168.137.161进行Connect扫描。
-sT是通过对每个端口进行tcp连接来确定端口是否存在。
-
UDP扫描。
使用nmap -sU 192.168.137.161进行UDP扫描。
-sU是用于UDP端口扫描。
4、端口扫描范围的确定:
(1)扫描全部端口。
使用nmap -p “*” 192.168.137.161进行UDP扫描。“*”表示全部端口。
-p :只扫描指定的端口,单个端口和用连字符表示的端口范 围(如 1-1023)都可以。
-
扫描使用频率最高的10个端口。
使用nmap --top-ports 192.168.137.161进行最高频率的10的端口扫描。
Nmap 的--top-ports参数用于指定扫描最常见的端口。具体来说,--top-ports参数后面可以跟一个数字,表示要扫描的端口数量。
-
扫描指定端口。
使用nmap -p 80 192.168.137.161进行指定80端口扫描。
4.4 使用Nmap扫描目标操作系统
使用nmap -O --osscan-guess 192.168.137.161进行目标操作系统扫描。
nmap 命令的-O选项用于启用操作系统检测,而--osscan-guess选项用于在无法确定操作系统时提供最相近的匹配。
4.5 使用Nmap扫描目标服务
使用nmap -sV 192.168.137.161进行目标服务扫描。
-sV:可以显示服务的详细版本。
4.6 将Nmap的扫描结果保存为XML文件
使用nmap -oX Report.xml 192.168.137.161将扫描结果保存为xml文件。
Nmap 命令 -oX 选项的作用是将扫描结果保存为 XML 格式的文件。
具体来说,使用 -oX 选项可以将 Nmap 的扫描结果保存为 XML 格式的文件。
4.7 对Web服务进行扫描
1、使用dirb扫描工具。
Dirb 是一个基于字典的 Web目录扫描工具 ,主要用于查找现有的(或隐藏的)Web对象。它通过对Web服务器发起基于字典的攻击并分析响应的数据,来获取更多的目录信息。
使用dirb http://192.168.137.161/dvwa/ 命令对web服务进行扫描。
-
使用whatweb工具。
WhatWeb 是一款用于识别网站技术栈和特征的开源Web扫描工具。它能够自动分析网站的响应,识别出使用的Web框架、CMS、服务器、JavaScript库等技术组件,从而帮助安全测试人员快速了解目标网站的技术特征,发现可能存在的漏洞。
先使用systemctl restart apache2命令启动服务,否则无法执行下面命令。
使用whatweb http://192.168.137.10/dvwa/ -v 命令对kali本机扫描。加 -v可以将详细结果显示出来。
4.8、Nmap核心功能总结
类别 | 命令示例 | 作用 | 适用场景 |
---|---|---|---|
主机发现 | | 存活主机扫描(禁用端口扫描) | 快速定位网段内活跃设备 |
多目标扫描 | | 扫描不连续IP | 针对特定目标 |
| 扫描连续IP范围 | 批量探测子网设备 | |
协议级发现 | | TCP SYN扫描(向指定端口发SYN包) | 绕过防火墙ICMP限制 |
| TCP ACK扫描(发ACK包触发RST响应) | 检测状态防火墙规则 | |
| UDP扫描(发空UDP包) | 探测开放UDP服务的设备 | |
端口扫描 | | SYN半连接扫描(不完成TCP握手) | 隐蔽扫描,避免日志记录 |
| TCP全连接扫描(完成三次握手) | 无root权限时使用 | |
| UDP端口扫描 | 探测DNS/DHCP等UDP服务 | |
端口范围控制 | | 扫描所有端口(1-65535) | 全面探测,耗时长 |
| 扫描最常见10个端口(如80,443,22等) | 快速扫描,效率优先 | |
| 扫描指定端口 | 针对性验证服务 | |
高级识别 | | 操作系统指纹识别(推测系统类型) | 通过TCP/IP栈行为差异识别OS |
| 服务版本探测(Banner抓取) | 识别运行中的服务及版本号 | |
结果输出 | | 输出XML格式报告 | 便于工具解析(如Metasploit) |
Web专项扫描 | | 基于字典的Web目录爆破 | 发现隐藏路径/文件 |
| 识别网站技术栈(CMS/框架/服务器) | 快速获取Web应用技术指纹 |
4.9、关键技术原理解析
-
主机发现(Host Discovery)
-
ARP扫描:局域网内最可靠的二层发现(
-sn
在本地网段默认使用ARP)。 -
ICMP探测:通过
-PE
(回显请求)触发响应,但易被防火墙拦截。 -
TCP/UDP技巧:
-
-PS
:发送SYN包,若端口关闭则收RST,开放或无响应均表明主机存活。 -
-PA
:发送ACK包,依赖防火墙返回RST(无视状态过滤规则)。 -
-PU
:发送空UDP包,依赖ICMP端口不可达响应判断存活。
-
-
-
端口扫描技术对比
扫描类型
原理
优势
劣势
SYN扫描
发送SYN → 收SYN/ACK即开放
速度快,隐蔽性强
需root权限
Connect
完成完整TCP三次握手
无需特权权限
易被日志记录
UDP扫描
发UDP包 → 收ICMP不可达即关闭
唯一有效UDP探测方法
速度慢(需等待超时)
-
操作系统识别(-O)
-
通过分析TCP/IP协议栈差异(如初始TTL、窗口大小、DF位等)生成指纹,与Nmap数据库比对。
-
--osscan-guess
:当匹配不精确时提供最接近的推测结果。
-
-
服务版本探测(-sV)
-
向开放端口发送定制化探针(如HTTP GET请求),解析返回的Banner信息(如
Apache/2.4.29
)。
-
5.1、最佳实践建议
-
扫描策略选择
-
内网环境:优先使用
ARP扫描
(nmap -sn
)快速定位存活主机。 -
绕过防火墙:组合
-Pn
(跳过主机发现)+-PS/PA
(TCP探测)应对禁Ping场景。 -
全面扫描:
-sS -sV -O -p 1-65535
(SYN扫描+服务识别+OS检测+全端口)。
-
-
效率优化
-
常用端口扫描:
--top-ports 100
(覆盖90%常见服务)。 -
结果输出:
-oX
生成结构化报告,便于后续分析。
-
-
Web渗透扩展
-
Dirb:聚焦目录枚举,使用
/usr/share/wordlists
中的字典增强覆盖率。 -
WhatWeb:快速识别Web技术栈(如
WordPress 5.7.1
),辅助漏洞匹配。
-
5.2、注意事项
-
权限要求:SYN扫描(
-sS
)需root权限(Kali默认满足)。 -
防火墙干扰:靶机防火墙需关闭,否则可能漏报(如Windows防火墙拦截ICMP)。
-
法律合规:仅限授权目标扫描,避免未授权探测。
注:部分内容源于网络。