尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

内网渗透主机发现与端口扫描:nmap/arp-scan/nc实战方法总结

内网渗透主机发现与端口扫描:nmap/arp-scan/nc实战方法总结 1. 从一次内网资产梳理说起主机发现与端口扫描的先后逻辑做过几轮内网安全评估的人都知道真正费时间的从来不是跑命令而是决定该往哪儿跑、跑了有没有用。主机发现和端口扫描是渗透测试流程里最靠前的两步也是决定后面所有动作质量的地基。地基打歪了后面拿到的指纹、服务版本、漏洞线索都会跟着失真。我见过不少新手一上来就对着一个 /24 甩nmap -p- -A扫了两个小时发现整段地址里其实只有三台机器活着剩下全是超时重传纯粹在做无用功。这篇内容围绕主机发现和端口扫描的方法总结展开把 nmap、arp-scan、ping 命令、nc.traditional、伪设备连接这几类手段摊开讲透。适合刚接触渗透测试、想搞明白为什么这么扫的同学也适合已经会敲命令但结果老是飘忽、想知道背后原理的从业者。重点不在罗列参数而在于讲清楚每种方法在什么网络层次上工作、什么场景下会失灵、失灵之后该怎么换招。主机发现解决的是有哪些目标在线端口扫描解决的是在线目标上开了哪些门这两个问题的答案质量直接决定了后续测试的效率。我个人的习惯是把这两步拆成先粗后细、层层收敛的过程。第一轮用最快的手段把存活主机圈出来第二轮针对存活主机做端口探测第三轮再对确认开放的端口做服务识别和脚本探测。每一轮的输入是上一轮的输出这样既省时间也避免把扫描流量无差别地泼到整段地址上——后者不仅慢还容易触发网络侧的告警日志给后续工作添麻烦。1.1 主机发现到底在发现什么主机发现Host Discovery本质上是在判断一个 IP 地址背后有没有活着的、愿意回应我们的设备。注意这里有两个限定词活着以及愿意回应。很多设备其实是活着的只是它被配置成不回 ICMP、不回某些 TCP 探测包这时候发现就变成了一个概率问题——你用的探测手段越多、覆盖的协议层次越全漏判的概率就越低。这就是为什么单一手段不可靠。ping 命令走的是 ICMP 协议属于网络层arp-scan 走的是 ARP 协议属于链路层nc.traditional 探活走的是 TCP 握手属于传输层。三个层次被过滤的难度完全不同。链路层的 ARP 在同一广播域里几乎无法被静默丢弃——设备要通信就必须回应 ARP 请求这是协议设计决定的。而 ICMP 在网络边界上被整段屏蔽是家常便饭很多安全策略第一条就是禁 ping。理解了这个层次差异你就能明白一个常见现象为什么ping 192.168.1.50显示超时但arp-scan却能把这台机器列出来。不是命令有问题是它们问的问题不一样。ping 问的是你愿意回我一个 ICMP 回显应答吗arp-scan 问的是你的网卡 MAC 地址是多少。后者对于同网段设备来说是必须回答的。1.2 端口扫描的层次与状态判定端口扫描看起来是看看哪些端口开着实际上它要区分四种状态理解这四种状态比记住端口号重要得多状态含义典型成因open端口开放有服务监听服务正常运行closed端口关闭主机可达主机在线但无服务filtered探测包被丢弃无法判定防火墙 DROP、安全组拦截unfiltered可达但无法判定开放与否防火墙 REJECT 或 ACK 扫描场景open和closed的区别很直观真正让人头疼的是filtered。它的意思是我发了探测包但没收到任何回应也没收到拒绝。这种沉默既可能来自防火墙的 DROP 规则也可能来自目标主机负载过高直接丢包还可能来自中间链路的 ACL。你没法从一次扫描结果里区分这几种原因所以排查filtered时换探测方式、降低速率、加长超时逐一来验证是常规操作。unfiltered通常出现在 ACK 扫描-sA里它只能告诉你这个端口没被防火墙挡住但不告诉你服务是否监听。它更适合用来摸清防火墙规则的分布而不是找开放服务。2. 五种主机发现手段的取舍与实战细节主机发现的方法不止五种但这五类覆盖了绝大多数真实场景ping 命令含 fping 批量、arp-scan、nmap 的-sn、nc.traditional 探活、以及 /dev/tcp 伪设备连接。它们在速度、隐蔽性、准确度、依赖条件上各有取舍下面一个个拆。2.1 ping 命令最朴素也最容易让你误判ping是最容易上手的工具原理是发 ICMP Echo Request、等 Echo Reply。单个目标用ping -c 3 192.168.1.10就够了批量场景下原生命令的短板就暴露了——它串行执行一个 /24 扫下来慢得让人想放弃。这时候可以用 shell 循环配合后台并发for i in $(seq 1 254); do ping -c 1 -W 1 192.168.1.$i /dev/null 21 echo 192.168.1.$i alive done wait这段脚本的逻辑是每个地址只发一个包超时设 1 秒成功就打印。用把任务丢到后台最后wait等全部结束。实测下来一个 /24 在 3 秒内能跑完。但要注意-W的单位在不同系统上不一致Linux 是秒某些 BSD 系是毫秒跨平台写脚本时最好显式确认一下。fping是更专业的选择fping -a -g 192.168.1.0/24一行就能列出所有存活地址-a表示只显示存活-g表示按网段展开。它的并发能力比 shell 循环强得多而且输出干净适合直接管道给下一步处理。注意只靠 ping 做主机发现漏判率可能高达三成以上。凡是开了主机防火墙、或者上游设备屏蔽 ICMP 的环境存活主机会大量显示为超时。ping 只适合做第一轮的快速探测结论必须用其他手段交叉验证。2.2 arp-scan同网段里几乎不会漏的那把尺子只要你做测试的机器和目标在同一个广播域也就是同一个二层网络里arp-scan 就是准确率最高的主机发现工具没有之一。它发送 ARP 请求任何配置了 IP 的网卡都必须回应自己的 MAC 地址这跟操作系统类型、防火墙规则都无关。典型用法arp-scan --interfaceeth0 --localnet arp-scan -I eth0 192.168.1.0/24--localnet会自动读取接口的网段信息并展开扫描省去手敲网段的麻烦。输出里会列出 IP、MAC 地址和网卡厂商那个厂商字段特别有用——看到 VMware、VirtualBox 的 OUI你基本能判断这是虚拟化环境看到某些网络设备的 OUI能猜到网关或交换机的身份。这里有个坑值得单独说arp-scan 的准确率依赖于同网段这个前提。一旦目标跨了三层路由ARP 请求就出不了本地广播域结果自然全是空的。很多新手在内网测试时把测试机接在办公网目标却在服务器区跨了好几跳路由然后抱怨 arp-scan 扫不到东西。这不是工具的问题是位置的问题。要发挥它的威力得先把测试机放到和目标同一个二层网络里。另外arp-scan 的结果可以反过来验证其他扫描工具的漏报。比如 nmap-sn没扫出来的地址arp-scan 扫出来了说明这台机器屏蔽了 ICMP 和常见 TCP 探测但二层是通的。这个信息本身就很有价值——它告诉你目标主机有主动的主机防火墙策略后续扫描要调整参数。2.3 nmap -sn组合探测的稳妥选择nmap -sn 192.168.1.0/24常被误称为ping 扫描其实它早就不是单纯发 ICMP 了。现代 nmap 的-sn会组合多种探测ICMP Echo、ICMP Timestamp、TCP SYN 到 443、TCP ACK 到 80、以及针对同网段的 ARP 请求。它相当于把前面几种手段打包谁先回应就算谁活着容错率高得多。几个实用变体nmap -sn -T4 192.168.1.0/24 # 常规快速发现 nmap -sn -PS22,80,443 192.168.1.0/24 # 只发 TCP SYN 到指定端口 nmap -sn -PE -PP 192.168.1.0/24 # 只用 ICMP Echo Timestamp nmap -sn -Pn 192.168.1.0/24 # 跳过发现全部当作在线-PS指定用 TCP SYN 探测的端口这个参数对付 ICMP 被封的环境特别有效——很多防火墙屏蔽 ICMP 却放行了 80、443 这些业务端口用-PS80,443就能把这类主机揪出来。-PE和-PP分别对应 ICMP Echo 和 Timestamp后者经常被忽略但有些老设备只回 Timestamp 不回 Echo。-Pn是个需要谨慎使用的参数。它的意思是跳过主机发现把所有目标都当成在线的直接扫端口。在确认目标存活但探测手段全部失效时这是必要的兜底但无脑加上它去扫一个 /16你会把大量时间浪费在对不存在主机的端口扫描上扫描时长会成倍增长。提示-sn在同网段时 nmap 会自动使用 ARP 请求准确率接近 arp-scan。跨网段时会退化成 ICMP 加 TCP 组合探测。所以同一个命令在不同位置执行结果可能完全不同别拿跨网段的结果去否定 nmap 的发现能力。2.4 nc.traditional用 TCP 握手绕开 ICMP 封锁Debian 系里把 netcat 拆成了两个包nc.traditional是传统版本nc.openbsd是 OpenBSD 版本两者的参数行为有差异脚本里最好显式指定用哪个。传统版本的-z参数是只扫描不发送数据配合-v输出详细信息正好用来做 TCP 探活nc.traditional -zv -w 2 192.168.1.10 22 80 443 3389-z表示零 I/O 模式连上就断-w 2设置连接超时 2 秒。输出里succeeded表示端口有响应Connection refused表示主机在线但端口关闭。这个区别很关键——收到refused就意味着主机是活的哪怕它屏蔽了所有 ICMP。所以 nc 探活实际上一箭双雕既确认了主机存活又顺便摸清了几个常见端口的状态。批量场景下 nc 也有短板它一次只能指定一个目标地址。要给整个网段做探活得靠循环for ip in $(seq 1 254); do (nc.traditional -z -w 1 192.168.1.$ip 445 21 | \ grep -q succeeded\|refused echo 192.168.1.$ip up) done wait这里用 grep 同时匹配succeeded和refused因为这两种回应都说明主机在线。实测下来用 445 端口做探测比较顺手这个端口在很多环境里是开放的而且防火墙放行率相对高。2.5 伪设备连接无工具环境下的兜底方案所谓伪设备连接指的是利用 bash 内建的/dev/tcp和/dev/udp特性发起网络连接。它们不是真实的设备文件而是 bash 编译时开启的特殊功能写法是timeout 2 bash -c echo /dev/tcp/192.168.1.10/80 echo port open如果连接成功命令返回 0否则返回非零。原理是 bash 在读取这个路径时会真正发起一次 TCP 连接把标准输出重定向过去。加timeout是因为 bash 的这个特性没有内置超时万一目标不回包会一直挂着。这种方法的独特价值在于目标环境可能没有 nmap、没有 nc、没有 arp-scan但只要有 bash就能做最基本的端口探测。它常出现在受限终端环境或者应急排查里——比如你在某台设备上只有一个简单的 shell想快速确认某台内网机器的某个端口通不通/dev/tcp就是最轻量的答案。给整个网段做批量探测也可以for i in $(seq 1 254); do (timeout 1 bash -c echo /dev/tcp/192.168.1.$i/22 2/dev/null \ echo 192.168.1.$i:22 open) done wait注意/dev/tcp是 bash 专属特性sh、dash、zsh 默认不支持。写脚本时务必用#!/bin/bash声明或者显式调用bash -c。我踩过这个坑脚本在本地 bash 下跑得好好的丢到用 dash 的系统上直接报No such file or directory排查了半天才发现是解释器的问题。3. nmap 端口扫描的参数组合与选型逻辑主机发现圈定了目标范围接下来就是端口扫描。nmap 的参数多到能出一本小册子但真正决定扫描质量的也就那么几组。我把它们按扫描类型、端口范围、性能时序、服务识别四类拆开讲。3.1 扫描类型的取舍-sS、-sT、-sU、-sA 怎么选扫描类型决定了 nmap 用什么报文去探测端口也决定了它需要什么权限、隐蔽性如何、结果可信度多高。参数类型权限要求特点-sSTCP SYN 半开root快、隐蔽不发完整握手默认推荐-sTTCP 全连接普通用户兼容性好会留下完整连接日志-sUUDProot慢、结果不可靠但能发现 DNS、SNMP 等服务-sATCP ACKroot只判断防火墙规则不判开放-sN/-sF/-sXNULL/FIN/Xmasroot绕过某些无状态防火墙命中率看运气-sS是默认选择前提是你有 root 权限。它发送 SYN 包收到 SYN-ACK 就判定开放然后直接发 RST 断开不完成三次握手所以叫半开。这种方式的优点是目标的服务日志里不会留下完整的连接记录相对低调。-sT在拿不到 root 权限时是唯一选择它走完整的 connect() 系统调用相当于用操作系统正常的网络栈去连。缺点很明显会在目标服务日志里留下完整访问记录而且在某些环境下更容易被主动防御系统捕捉。-sU单独说因为 UDP 扫描的体验跟 TCP 完全不一样。UDP 是无连接协议没有握手可循nmap 只能靠收到 ICMP 端口不可达来判断关闭靠没有回应来推测开放。问题是没有回应也可能是包丢了。所以 UDP 扫描必须配合较长的超时和重试速度慢到让人怀疑人生。实战中通常只扫常见 UDP 端口比如nmap -sU -p 53,67,68,69,123,161,500,1900 --max-retries 2 192.168.1.10-sA不用于找开放端口它的用途是画防火墙地图。如果 ACK 包被丢弃说明端口被过滤如果收到 RST说明端口没被防火墙挡但也不告诉你服务状态。用-sA扫一遍能大致看出防火墙是默认拒绝还是默认放行、逐个屏蔽。3.2 端口范围的写法与优先级端口范围怎么写直接决定扫描时长。全端口-p-是 1 到 65535在千兆内网里对单台主机大概要几分钟到十几分钟取决于时序参数和目标响应速度。常见的写法-p 80 # 单个端口 -p 80,443,8080 # 指定列表 -p 1-1000 # 范围 -p- # 全部 65535 个端口 -p http,https,ssh # 按服务名 --top-ports 1000 # 按 nmap 统计的高频端口我的习惯是分层扫先用--top-ports 1000快速摸底这 1000 个端口覆盖了绝大多数真实服务的监听位置对重点主机再用-p-全扫。直接全扫所有主机既慢又没必要因为大量主机上根本没开什么冷门端口。nmap 的端口频率统计来自互联网上的大量扫描数据--top-ports的排序是按出现频率排的。要提醒的是这套统计偏向公网服务分布内网环境的端口分布跟公网差别很大。内网里 445、3389、1433、6379、9200 这类端口的出现率远高于公网所以内网测试时最好自己维护一份常用端口列表别完全依赖默认排序。3.3 时序、重试与性能参数-T系列是最常被滥用的参数。很多人无脑-T4甚至-T5觉得越快越好结果扫出来一堆filtered还以为是防火墙问题其实是自己发太快把包丢了。-T有六个等级从-T0偏执极慢到-T5疯狂极快。-T3是默认值-T4是局域网里比较合适的加速档-T5只在网络质量极好且你不在乎丢包时用。丢包的后果很隐蔽它不报错只是让一部分本来开放的端口显示为 filtered 或者干脆不出现。你拿着这份残缺的结果去做后续测试可能就漏掉了关键入口。比-T更精细的是直接控制底层参数nmap --min-rate 500 --max-retries 2 --min-parallelism 50 192.168.1.10--min-rate 500表示每秒至少发 500 个包--max-retries 2限制重传次数--min-parallelism控制并行探测数。这几个参数配合起来能在够快和够准之间找平衡。我在丢包率较高的无线网络里会把--max-retries提到 3 到 4同时把--min-rate降到 200 左右牺牲速度换准确度。还有一个容易忽略的参数是--host-timeout用来给单台主机的扫描设总时限nmap -sS -p- --host-timeout 5m 192.168.1.10超过 5 分钟就放弃这台跳到下一台。批量扫描时这个参数能防止某台响应极慢的主机拖垮整个任务。3.4 服务识别与脚本引擎端口开放只是开始真正有价值的是端口后面跑的是什么服务、什么版本。这靠-sV和--script。nmap -sV --version-intensity 5 -p 22,80,443 192.168.1.10 nmap -sC -sV -p 22,80,443 192.168.1.10 nmap --scriptbanner,http-title -p 80,8080 192.168.1.10-sV会主动发送探测报文根据响应特征匹配服务指纹。--version-intensity控制探测强度0 到 9默认 7。强度越高识别越准但越慢也越容易被察觉。生产环境测试时我会降到 2 到 5。-sC等价于--scriptdefault运行默认脚本集包括 banner 抓取、HTTP 标题获取等。这些脚本能快速给出服务的自我介绍对后续判断很有帮助。--script后面可以跟脚本名、类别名或者路径。常用的类别有default、safe、discovery、vuln。要特别提醒vuln类别它会主动发送漏洞探测报文有触发目标异常的风险只能在明确授权并且确认可以承受影响的环境里用。我一般先跑safe和discovery确认范围后再单独挑脚本跑。3.5 输出格式与结果归档扫描结果如果不归档等于白扫。nmap 支持多种输出格式实际工作中我会同时输出三种nmap -sS -sV -p- -oA scan_result 192.168.1.10-oA是输出全部的意思会生成三个文件.nmap人类可读、.xml机器可解析、.gnmap便于 grep。XML 格式尤其重要后续用工具做结果聚合、比对、生成报告都靠它。.gnmap的 grep 友好性值得单独提一句。比如提取所有开放了 445 的主机grep 445/open scan_result.gnmap | cut -d -f2这种扫描一次、反复分析的做法比重复扫描高效得多。我把每轮扫描的结果按时间戳命名存好后面做对比分析时能清楚看到资产的变化轨迹。4. 完整实操流程一次内网资产梳理的现场记录把前面讲的手段串起来看一遍完整流程。场景设定测试机位于 192.168.10.0/24 网段授权范围是 192.168.10.0/24 和 192.168.20.0/24 两段。4.1 第一步确认自身网络位置动手之前先搞清楚自己在哪。这一步经常被跳过但非常关键因为它决定了你能不能用 arp-scan。ip addr show ip route showip addr看自己的 IP 和网段ip route看路由表。如果目标网段是直连路由说明同网段arp-scan 可用如果走网关说明跨网段arp-scan 基本无效得靠 nmap 的组合探测。4.2 第二步同网段用 arp-scan 快速圈地对 192.168.10.0/24 直接上 arp-scanarp-scan --interfaceeth0 --localnet --retry2--retry2是重试次数局域网里默认 1 次通常够了加一次重试能降低偶发丢包带来的漏判。输出里会列出所有响应的 IP、MAC 和厂商。把结果存下来arp-scan -I eth0 --localnet --retry2 arp_10.txt同时用 nmap 做一次交叉验证nmap -sn -T4 192.168.10.0/24 -oA hostdis_10两个结果做差集看看有没有 arp-scan 扫到但 nmap 没扫到的地址那些就是屏蔽了 ICMP 和 TCP 探测的主机需要单独关注。4.3 第三步跨网段用组合探测对 192.168.20.0/24arp-scan 用不上改用 nmap 的 TCP 组合探测nmap -sn -PS80,443,22,445 -PE -T4 192.168.20.0/24 -oA hostdis_20-PS指定了四个探测端口覆盖 Web、SSH、SMB 三类常见服务。这四个端口的放行率在很多环境里都比较高用它们做探针命中率比单靠 ICMP 好得多。如果这一轮扫出来的地址数量明显偏少低于你对这个网段的预期就加大探测端口范围或者换成-Pn结合端口扫描直接验证nmap -Pn -p 80,443,22,445,3389 -T4 192.168.20.0/24 --open -oA probe_20--open让 nmap 只输出有开放端口的主机省去大量host down的噪音。4.4 第四步对存活主机做分层端口扫描拿到存活列表后先跑快速端口摸底nmap -sS -sV --top-ports 1000 -T4 --max-retries 2 \ -iL alive_hosts.txt -oA port_top1000-iL从文件读目标列表这一步把上一轮的输出直接当输入用。为什么先跑 top 1000 而不是全端口因为 top 1000 能在几分钟内给出一个初步画像让你快速识别哪些主机值得深挖。对其中看起来有意思的主机再单独跑全端口nmap -sS -p- -T4 --max-retries 2 --host-timeout 10m \ 192.168.20.15 -oA port_full_20_15全端口扫描建议避开业务高峰时段因为-p-的流量相对可观在网络设备上会留下明显的流量痕迹。4.5 第五步服务识别与结果复核对确认开放的端口做版本识别nmap -sV --version-intensity 5 -sC \ -p 22,80,443,445,3306,6379,9200 \ 192.168.20.15 -oA service_20_15-sC会跑一批安全脚本抓取服务 banner、HTTP 标题、TLS 证书信息等。这些信息对判断服务类型和版本极有帮助。最后一步是复核。挑几个结果里的端口用独立手段验证一遍nc.traditional -zv -w 2 192.168.20.15 445 timeout 2 bash -c echo /dev/tcp/192.168.20.15/9200 echo open curl -sI http://192.168.20.15:9200/ | head -5用不同工具验证同一个结论能有效排除误报。我遇到过 nmap 报某端口 open、实际用 nc 连却被拒绝的情况原因是有中间设备对特定探测报文做了应答属于蜜罐或者负载均衡的干扰。5. 常见问题与排查技巧实录扫描结果不符合预期是常态关键是知道往哪个方向排。下面这张表是我这几年攒下来的高频问题清单。现象可能原因排查动作主机 ping 不通但端口能连ICMP 被屏蔽换-PSTCP 探测或 nc 探活arp-scan 结果为空目标跨网段确认路由改用 nmap-sn大量端口显示 filtered防火墙 DROP 或发太快丢包降-T、加--max-retries端口全 closed主机在线但服务未监听换端口范围确认是否-Pn误判扫描结果每轮都不一样丢包或负载均衡提高重试固定源端口分时段复扫UDP 扫描几乎全 openfilteredUDP 无连接特性-sS报权限错误未使用 root改用-sT或提权/dev/tcp报文件不存在解释器非 bash显式用bash -c调用5.1 扫描速率与准确度的平衡怎么看新手最容易犯的错是把速度拉满。-T5加--min-rate 10000跑出来的结果看着很快实际上不可信。丢包导致的漏报没有明显标志你只会看到一个偏少的端口列表然后误以为目标很干净。判断是否发太快有个简单方法用同一组参数扫两遍对比结果。如果两遍差异明显说明你的速率超过了链路或目标的承受能力需要降速。稳定的扫描应该在多次执行下给出一致结果。这个自检动作花不了几分钟但能避免后面基于错误结果做一堆无用功。另一个经验是分时段扫。有些设备在业务高峰时会主动丢弃扫描类流量深夜再扫结果就正常。如果某个目标白天扫全 filtered、晚上扫有开放端口那大概率不是防火墙策略是负载导致的丢包。5.2 关于 -Pn 的取舍建议-Pn是个双刃剑。它的好处是跳过主机发现直接扫端口能揪出那些对所有探测都不回应的主机。坏处是它对不存在的主机也会老老实实发完所有探测包一个 /24 全端口扫描加上-Pn时间会膨胀到难以接受。我的做法是分两步第一轮用组合探测-sn -PS...圈存活第二轮只对存活地址做详细扫描。只有在确信目标存在但死活探不到的情况下才对单个地址用-Pn。比如某台机器在资产台账里明确登记着但 ping 和 TCP 探测都没反应这时单独nmap -Pn -p 22,80,443 该地址是合理的。5.3 结果归档与对比分析的习惯扫描是一次性的数据是长期资产。我坚持每轮扫描都-oA存档并且按日期_任务名命名。时间长了之后你能做很多有意思的对比某个端口是什么时候开放的、某台主机的服务版本什么时候变的、资产数量是增长还是减少。用diff对比两次.gnmap文件是个低成本高收益的操作grep /open/ run_0715.gnmap | cut -d -f2 | sort today.txt grep /open/ run_0801.gnmap | cut -d -f2 | sort last.txt diff last.txt today.txt新增的行就是这段时间新暴露的资产这类信息在资产管理和安全评估里都属于重点关注对象。提示扫描数据里包含网络拓扑和服务信息属于敏感内容。归档时注意存储位置和访问权限不要随手丢在共享目录或者同步到公共网盘。这条看起来是常识但实际工作中因为结果文件乱放引起的问题并不少见。6. 授权边界与操作自律技术手段讲完了最后必须强调这件事主机发现和端口扫描属于主动探测行为会产生真实的网络流量会在目标设备上留下日志记录。所有操作都必须建立在明确的书面授权之上。授权范围要写清楚网段、时间窗口、允许的扫描强度、是否允许跑漏洞探测脚本。超出授权范围的动作哪怕技术上只是多发一个包性质也完全不同。实操层面我给自己定了几条线未经授权的地址一律不扫vuln类脚本默认不跑要用先单独确认全端口扫描尽量安排在低峰时段并控制--min-rate扫描结果文件加密存储。这些约束看起来繁琐但它们是把技术能力用在对的地方的前提。回到工具本身ping、arp-scan、nmap、nc.traditional、/dev/tcp这五类手段并不是互相替代的关系而是覆盖不同协议层次、适配不同环境条件的组合拳。同网段靠 arp-scan 打底跨网段靠 nmap 组合探测受限环境靠 nc 和/dev/tcp兜底每一层都有它不可替代的位置。把这些手段的适用条件和失效场景摸清楚比记住一堆参数组合更有价值——参数会变判断力不会。
返回列表