Nmap目标指定技术入门与常用方法详解
{ "position ":0, "title ": "介绍 ", "layout ": "doc-fullscreen ", "text ": " 介绍nn在本次实验中,你将认识 Nmap,这是一款被安全从业者广泛使用的强大网络扫描工具。本实验将重点讲解 Nmap 的目标指定技术,因为它们是定义扫描主机、IP 地址与网
{"position":0,"title":"介绍","layout":"doc-fullscreen","text":"## 介绍nn在本次实验中,你将认识 Nmap,这是一款被安全从业者广泛使用的强大网络扫描工具。本实验将重点讲解 Nmap 的目标指定技术,因为它们是定义扫描主机、IP 地址与网络范围的关键方法。nn掌握这些目标指定方式,对于开展高效的网络侦察、资产发现和安全评估非常重要。完成本实验后,你将能够使用多种方法在 Nmap 中指定扫描目标,并更准确地理解和分析扫描结果。n","need_verify":false,"has_solution":false},{"position":1,"title":"安装并探索 Nmap","layout":"doc-workbench-split","text":"## 安装并探索 Nmapnn在这一步中,我们将先确认 Nmap 是否已正确安装在你的系统中,并进一步了解它的基础功能。Nmap 是 Network Mapper 的简称,是一款开源的网络发现与安全审计工具。借助 Nmap,你可以识别网络中有哪些设备在线、开放了哪些端口,以及这些端口上可能运行着哪些服务。这些能力在网络安全和运维管理中都非常重要,因为它们有助于你了解网络环境并发现潜在风险。nn首先,我们需要检查当前系统是否已经安装 Nmap。为此,我们将使用终端。终端是一个基于文本的操作界面,你可以通过输入命令与计算机交互。打开终端并运行以下命令:nn```bashnnmap --versionn```nn这条命令会让系统显示当前安装的 Nmap 版本信息。如果 Nmap 已正确安装,你会看到类似下面的输出,其中包含版本号和构建信息:nn```nNmap version 7.80 ( https://nmap.org )nPlatform: x86_64-pc-linux-gnunCompiled with: liblua-5.3.3 openssl-1.1.1d nmap-libssh2-1.8.2 libz-1.2.11 libpcre-8.39 libpcap-1.9.1 nmap-libdnet-1.12 ipv6nCompiled without:nA vailable nsock engines: epoll poll selectn```nn接下来,我们来了解如何在 Nmap 扫描中指定目标。目标指定非常关键,因为它决定了 Nmap 将扫描哪些主机、IP 或网络段。为了学习这一点,我们先查看一部分基础帮助文档。在终端中运行以下命令:nn```bashnnmap -h | grep -A 10 \"TARGET SPECIFICATION\"n```nn这条命令会先通过 `nmap -h` 输出 Nmap 的帮助信息,再使用 `grep -A 10 \"TARGET SPECIFICATION\"` 搜索 “TARGET SPECIFICATION” 部分,并显示其后 10 行内容。你将看到 Nmap 支持的多种目标指定方法,这也是后续扫描操作的重要基础。nn现在,我们需要一个位置来保存 Nmap 的扫描结果。为此,我们将创建一个目录。目录就像计算机中的文件夹,可用于整理和存储文件。请在终端中运行以下命令:nn```bashnmkdir -p /home/labex/project/nmap_scansncd /home/labex/project/nmap_scansn```nn`mkdir -p` 命令会在 `/home/labex/project` 路径下创建一个名为 `nmap_scans` 的目录。`-p` 选项表示如果中间目录不存在,也会一并创建。`cd` 命令则会将当前工作目录切换到新建的 `nmap_scans` 目录中。nn接下来,我们通过对本地机器执行一次简单扫描,直观了解 Nmap 的工作方式。本地机器就是你当前正在使用的计算机。运行以下命令:nn```bashnnmap localhost > local_scan.txtn```nn这条命令会使用 Nmap 扫描本地主机。`>` 符号表示将扫描输出重定向到一个名为 `local_scan.txt` 的文件中,便于后续查看和分析。nn最后,让我们查看扫描结果。运行以下命令:nn```bashncat local_scan.txtn```nn`cat` 命令会显示 `local_scan.txt` 文件的内容。你将看到 Nmap 扫描出的端口列表,以及哪些端口处于开放状态、这些开放端口可能对应哪些服务。这些信息能够帮助你初步判断本地机器的网络服务暴露情况和基本安全状态。n","need_verify":true,"has_solution":false},{"position":2,"title":"设置服务并扫描特定端口","layout":"doc-workbench-split","text":"## 设置服务并扫描特定端口nn在这一步中,你将学习如何启动一个本地 Web 服务器,并使用强大的网络扫描工具 Nmap 通过扫描指定端口来识别它。理解这一过程非常重要,因为它展示了如何借助 Nmap 发现主机或网络中正在运行的服务。nn首先,你需要进入项目目录。这是你配置简单 Web 服务器的位置。进入正确目录后,你将启动一个 Python HTTP 服务器,让它监听 8000 端口。8000 是测试 Web 服务时常用的端口之一。请执行以下命令:nn```bashncd /home/labex/project/nmap_scansnpython3 -m http.server 8000 &n```nn命令末尾的 `&` 非常重要,它会让服务器在后台运行。这意味着在 HTTP 服务启动后,你仍然可以继续在同一个终端中执行其他命令。运行完成后,你通常会看到如下输出,表示服务器已经成功启动:nn```nServing HTTP on 0.0.0.0 port 8000 (https://0.0.0.0:8000/) ...n```nn现在服务器已经启动,下一步要确认它是否真的在监听 8000 端口。你可以使用 `lsof` 命令,它的含义是 “list open files”(列出打开的文件)。这个命令可以帮助你查看当前哪些进程正在占用某个端口。执行如下命令:nn```bashnlsof -i :8000n```nn如果服务器运行正常,你会看到类似下面的输出:nn```nCOMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAMEnpython3 12345 labex 4u IPv4 123456 0t0 TCP *:8000 (LISTEN)n```nn这段输出说明 Python 进程正在监听 8000 端口,也就表示本地 Web 服务器已经按预期运行。nn接下来,你将使用 Nmap 扫描本地主机上的 8000 端口,以检测刚刚启动的 HTTP 服务器。请运行以下命令:nn```bashnnmap -p 8000 localhost > http_server_scan.txtn```nn在这条命令中,`-p` 参数用于指定需要扫描的端口。这里扫描的是本地主机 `localhost` 的 8000 端口。`>` 符号会将 Nmap 扫描结果重定向保存到 `http_server_scan.txt` 文件中,方便后续查看。nn现在查看扫描结果:nn```bashncat http_server_scan.txtn```nn如果扫描成功,你会看到类似下面的输出结果:nnStarting Nmap 7.80 ( https://nmap.org ) at 2023-10-25 12:34 UTC\nNmap scan report for localhost (127.0.0.1)\nHost is up (0.000097s latency).\n\nPORT STATE SERVICE\n8000/tcp open http-alt\n\nNmap done: 1 IP address (1 host up) scanned in 0.03 seconds\nnn这段结果说明 8000 端口处于开放状态,并且对应的是 HTTP 相关服务。换句话说,Nmap 已成功发现了你刚刚启动的本地服务器。nn接下来,你可以把扫描范围进一步扩大,检查本机上是否还有其他服务正在运行。执行下面这条命令:nnnmap -p 1-1000 localhost > port_range_scan.txtnn这条命令表示让 Nmap 扫描本地主机 1 到 1000 范围内的所有端口,并将输出结果保存到 `port_range_scan.txt` 文件中。nn然后查看扫描结果:nncat port_range_scan.txtnn输出会列出本地主机在 1 到 1000 端口范围内哪些端口是开放的。这种做法非常实用,尤其适合发现那些已经在运行、但平时不容易被注意到的本地服务。nn当你需要一次性扫描多个主机或整个网络时,Nmap 的多目标扫描功能会非常有帮助,能够显著提升效率。nn首先,我们创建一个包含多个待扫描 IP 地址的文本文件。这里将加入本地主机 `127.0.0.1` 以及另外几个本地回环地址。本地主机是一个特殊 IP,表示当前设备本身,因此非常适合用于本地测试。nn```bashncd /home/labex/project/nmap_scansnecho \"127.0.0.1\" > targets.txtnecho \"127.0.0.2\" >> targets.txtnecho \"127.0.0.3\" >> targets.txtn```nn在上述命令中,`cd` 会将当前目录切换到 `/home/labex/project/nmap_scans`。`echo` 用于输出文本,`>` 用来创建新文件并写入内容,`>>` 则表示向已有文件追加内容。因此,我们先创建 `targets.txt` 文件并写入 `127.0.0.1`,然后继续追加 `127.0.0.2` 和 `127.0.0.3`。nn现在,查看刚刚创建的文件,确认 IP 地址是否已正确写入。nn```bashncat targets.txtn```nn`cat` 命令用于显示文件内容。运行后,你应当看到如下输出:nn```n127.0.0.1n127.0.0.2n127.0.0.3n```nn接下来,我们使用 Nmap 的 `-iL` 参数,一次性扫描 `targets.txt` 文件中列出的全部 IP 地址。`-iL` 的作用是让 Nmap 从文件中读取目标列表。nn```bashnnmap -iL targets.txt > multiple_targets_scan.txtn这里的 `nmap` 命令用于执行网络扫描,`-iL` 参数表示从文件中导入目标列表,`>` 则会把扫描结果重定向保存到 `multiple_targets_scan.txt` 文件中。nn接下来可以查看扫描结果:nn```bashncat multiple_targets_scan.txtn```nn执行该命令后,通常会看到这 3 个 IP 地址各自对应的扫描结果。需要注意的是,`127.0.0.1` 往往会显示存在开放端口,因为本地主机上通常正在运行某些服务。至于 `127.0.0.2` 和 `127.0.0.3`,很多系统不会对它们进行额外配置,因此它们可能没有明显响应。nn除了通过文件指定多个扫描目标外,也可以在 Nmap 命令中直接使用空格分隔多个 IP,或者使用 CIDR 表示法来扫描一段地址范围。nn```bashnnmap 127.0.0.1 127.0.0.2 > space_notation_scan.txtn```nn这条命令中,两个 IP 地址通过空格分隔,表示让 Nmap 同时扫描 `127.0.0.1` 和 `127.0.0.2`。扫描结果会被重定向到 `space_notation_scan.txt` 文件中。nn然后查看结果:nn```bashncat space_notation_scan.txtn```nn你还可以使用 CIDR 表示法扫描连续的 IP 地址范围。CIDR(无类别域间路由)是一种更紧凑、更常见的 IP 范围表示方式。nn```bashnnmap 127.0.0.0/30 > cidr_notation_scan.txtn```nn这里的 `127.0.0.0/30` 表示从 `127.0.0.0` 到 `127.0.0.3` 的地址范围,总共包含 4 个地址。扫描输出同样会被重定向保存到 `cidr_notation_scan.txt` 文件中。nn我们检查一下结果:nn```bashncat cidr_notation_scan.txtn```nn最后,让我们了解如何在扫描时排除特定目标。当你想扫描一个网段,但不希望包含某些主机时,这个功能会非常有用。nn```bashnnmap 127.0.0.0/30 --exclude 127.0.0.3 > exclude_scan.txtn```nn在这条命令中,我们使用 `--exclude` 参数告诉 Nmap:在扫描 `127.0.0.0/30` 范围时,跳过 IP 地址 `127.0.0.3`。扫描结果会被重定向保存到 `exclude_scan.txt` 文件中。nn让我们查看结果:nn```bashncat exclude_scan.txtn```nn你应该会看到 `127.0.0.0`、`127.0.0.1` 和 `127.0.0.2` 的扫描结果,而不会看到 `127.0.0.3` 的结果。nn通过这些更高级的目标指定方法,你可以更精确地控制 Nmap 扫描哪些主机、哪些 IP 范围以及哪些端口,从而让网络侦察和安全排查更加高效、准确且有针对性。n","need_verify":true,"has_solution":false},{"position":4,"title":"总结","layout":"doc-fullscreen","text":"## 总结nn在本次实验中,你学习了如何使用 Nmap 进行网络侦察,重点掌握了目标指定技术。首先,你确认并使用了 Nmap,通过对本地主机执行基础扫描来了解它的核心功能。随后,你搭建了一个本地 HTTP 服务器,并借助 Nmap 对特定端口进行扫描,成功识别出正在运行的服务。nn这些技能对于网络管理员、安全工程师以及运维人员开展网络发现、服务识别和安全评估都十分重要。掌握 Nmap 的目标指定方法后,你就能够更高效地扫描不同规模和复杂度的网络,并根据实际任务聚焦于特定主机、端口和服务。请始终在获得授权的前提下使用 Nmap,并遵守相关法律与安全规范,以避免不必要的法律和道德风险。n","need_verify":false,"has_solution":false}
来源:https://labex.io/zh/tutorials/nmap-learn-target-specification-techniques-in-nmap-415935
本站内容用于信息整理与展示,如有侵权或内容问题请及时联系处理。
相关推荐
补充同频道和同主题内容,方便继续浏览更多相关内容。
同类最新
继续查看同栏目最近更新的文章。
DDoS攻击的三大主要形式:原理、特征与防御重点
DDoS攻击主要分为基于流量(Volume)、基于应用层(Application)和基于协议(Protocol)三种形式。流量型攻击通过海量数据淹没带宽;应用层攻击利用Web漏洞耗尽服务器资源;协议层攻击则利用TCP握手缺陷导致系统挂起。了解这些原理是制定针对性防御策略的基础。
如何有效预防和缓解DDoS攻击:5大核心策略详解
面对DDoS攻击,单纯增加带宽已非长久之计。本文详解5大核心防护策略:优化网络硬件配置、建立DNS冗余机制、部署透明缓解技术、引入负载平衡器及专用Anti-DDoS模块。通过合理组合这些技术手段,可有效抵御SYN泛洪、Slowloris等常见攻击,保障业务连续性与网站可用性。
DDoS防护四大误区:CDN、防火墙与黑名单的局限性解析
许多企业误以为CDN、防火墙或黑名单能完全抵御DDoS攻击。本文深入解析四大常见误区:CDN仅提供部分缓解、静态黑名单易失效、防火墙算力有限且可能成为目标、阈值警报仅具滞后性。了解这些局限性,有助于构建更立体的防御体系,避免在攻击发生时措手不及。
常见DDoS攻击类型详解:原理、特征与防御策略
本文详细解析四种常见DDoS攻击类型:SYN Flood利用TCP三次握手缺陷耗尽资源;UDP Flood通过海量数据包造成带宽拥塞;ICMP Flood利用Ping请求消耗系统算力;应用层Flood针对Web脚本进行高频请求。了解其原理是制定有效防御策略的基础。
如何有效抵御DDOS攻击:4种核心防护方案解析
面对DDOS攻击,企业需构建多层防护体系。本文详解四大核心策略:利用反向路由器查询进行流量清洗,通过GCDN智能分配节点隐藏源站IP,部署负载均衡硬件分担压力,以及接入高防机房抵御数百G恶意流量。掌握这些技术,可最大程度保障业务连续性。
