https://www.cnblogs.com/-Lucky-/p/17100073.html
Nmap基本端口扫描
nmap中考虑的端口状态
Open:表示服务正在侦听指定端口。
Closed:表示没有服务在指定端口上侦听,尽管该端口可以访问。可访问性是指它可以访问并且未被防火墙或其他安全设备/程序阻止。
Filtered : 表示 Nmap 无法确定端口是打开还是关闭,因为端口不可访问。这种状态通常是由于防火墙阻止 Nmap 到达该端口。Nmap 的数据包可能会被阻止到达端口;或者,响应被阻止到达 Nmap 的主机。
Unfiltered : 表示 Nmap 无法确定端口是打开还是关闭,尽管端口是可访问的。使用 ACK 扫描时会遇到此状态-sA。
Open|Filtered:这意味着Nmap无法确定端口是打开还是过滤。
Closed|Filtered:这意味着 Nmap 无法决定端口是关闭还是过滤。
六个标志位
URG :紧急标志表示紧急指针归档是重要的。紧急指针指示传入数据是紧急的,并且立即处理设置了 URG 标志的TCP段,而无需考虑必须等待先前发送的 TCP 段。
ACK :确认标志表示确认号是重要的。它用于确认收到TCP段。
PSH :推送标志,要求TCP及时将数据传递给应用程序。
RST :重置标志用于重置连接。另一个设备(例如防火墙)可能会发送它来断开TCP 连接。当数据发送到主机并且接收端没有服务响应时,也会使用此标志。
SYN :同步标志用于启动TCP 3 次握手并与其他主机同步序列号。序号应该在TCP连接建立时随机设置。
FIN:发送方没有更多数据要发送。
TCP扫描
运行 TCP 连接扫描 -sT
TCP连接扫描通过完成 TCP 3 次握手来工作。在标准的 TCP 连接建立中,客户端发送一个设置了 SYN 标志的 TCP 数据包,如果端口打开,服务器以 SYN/ACK 响应;最后,客户端通过发送 ACK 完成 3 次握手。
我们感兴趣的是了解TCP端口是否打开,而不是建立 TCP 连接。因此,一旦通过发送 RST/ACK 确认其状态,连接就会断开。
TCP SYN扫描
SYN扫描不需要建立三次握手,它会在收到服务器的SYN,ACK响应后断开连接 -sS
UDP扫描
UDP是一种无连接协议,因此它不需要任何握手来建立连接。我们不能保证侦听 UDP 端口的服务会响应我们的数据包。但是,如果将 UDP 数据包发送到关闭的端口,则会返回 ICMP 端口不可达错误。可以使用该选项选择 UDP 扫描 -sU。
微调范围和性能
# 端口
端口列表:-p22,80,443将扫描端口 22、80 和 443。
端口范围:-p1-1023将扫描 1 到 1023(含)之间的所有端口,同时-p20-25 将扫描 20 到 25(含)之间的端口。
请求扫描所有端口-p-
如果要扫描最常见的 100 个端口,请添加-F
--top-ports 10将检查十个最常见的端口。
控制扫描时间-T<0-5>,-T0是最慢的(偏执狂),而 -T5是最快的。
-T4通常在 CTF 和学习扫描练习目标时使用,而-T1通常在隐身性更重要的真实交战中使用。
# 数据包速率
--min-rate <number>
--max-rate <number>
--max-rate=10 确保您的扫描仪每秒发送的数据包不超过十个
# 指定可以并行运行的此类探测的数量
--min-parallelism <numprobes>
--max-parallelism <numprobes>
--min-parallelism=512推动 Nmap 保持至少 512 个并行探测
nmap 高级端口扫描
TCP 空扫描, FIN扫描, Xmas扫描
NULL Scan
空扫描不设置任何标志;所有六个标志位都设置为零。使用该 -sN选项选择此扫描。
一个没有设置标志的TCP数据包在到达一个开放端口时不会触发任何响应。
因此,从 Nmap 的角度来看,在空扫描中缺少回复表明端口已打开或防火墙正在阻止数据包。
FIN Scan
FIN 扫描发送一个设置了 FIN 标志的TCP数据包。使用该选项选择此扫描类型-sF 。
同样,如果 TCP 端口打开,则不会发送任何响应。同样,Nmap 无法确定端口是否打开或防火墙是否阻止与此 TCP 端口相关的流量。
Xmas Scan
Xmas 扫描同时设置 FIN、PSH 和 URG 标志。您可以使用选项选-sX
与Null scan 和FIN scan 一样,如果收到RST 包,则表示端口已关闭。否则,它将被报告为 open|filtered。
TCP ACK、窗口 扫描
TCP ACK Scan
ACK 扫描将发送一个设置了 ACK 标志的 TCP 数据包。使用该-sA选项选择此扫描。
无论端口状态如何,目标都会使用 RST 响应 ACK。发生此行为是因为设置了 ACK 标志的 TCP 数据包应该仅在响应接收到的 TCP 数据包时发送,以确认某些数据的接收,这与我们的情况不同。
因此,此扫描不会告诉我们目标端口是否在简单设置中打开。
window Scan
TCP窗口扫描。TCP窗口扫描和ACK扫描几乎一样;但是,它会检查返回的 RST 数据包的 TCP 窗口字段。在特定系统上,这可以表明端口已打开。
可以使用选项选择此扫描类型-sW。
无论端口是打开还是关闭,我们都希望得到一个 RST 数据包来回复我们“不请自来”的 ACK 数据包。
欺骗和诱饵
-S nmap -S SPOOFED_IP MACHINE_IP
Nmap 将使用提供的源 IP 地址制作所有数据包SPOOFED_IP。目标机器将响应传入的数据包,将回复发送到目标 IP 地址 SPOOFED_IP。为了使此扫描起作用并给出准确的结果,攻击者需要监控网络流量以分析回复。
攻击者向目标机器发送一个带有欺骗性源 IP 地址的数据包。
目标机器回复欺骗性 IP 地址作为目的地。
攻击者捕获回复以找出打开的端口。
指定源 MAC 地址--spoof-mac SPOOFED_MAC,只有处于同一子网才行
启动诱饵扫描-D。例如, nmap -D 10.10.0.1,10.10.0.2,ME MACHINE_IP。将使 MACHINE_IP 的扫描显示为
来自 IP 地址 10.10.0.1、10.10.0.2,然后ME指示您的 IP 地址应按第三顺序出现。
另一个示例命令是nmap -D 10.10.0.1,10.10.0.2,RND,RND,ME MACHINE_IP,其中第三个和第四个源 IP 地址是随机分配的,
而第五个源将是攻击者的 IP 地址。换句话说,每次执行后一个命令时,您都会期望两个新的随机 IP 地址成为第三个和第四个诱饵源。
碎片包
Nmap 提供了对数据包进行分段的选项-f。一旦选择,IP 数据将被分成 8 个字节或更少。添加另一个-f(-f -f或-ff)
会将数据拆分为 16 个字节片段而不是 8 个。您可以使用--mtu;更改默认值。但是,您应该始终选择 8 的倍数。
如果您希望增加数据包的大小以使它们看起来无害,则可以使用选项--data-length NUM,其中 num 指定要附加到数据包的字节数。
nmap后端扫描
服务检测
-sV 收集和确定开放端口的服务和版本信息
--version-intensity LEVEL级别介于 0(最轻)和 9(最完整)之间。
-sV --version-light强度为 2, -sV --version-all强度为 9
操作系统检测
启用操作系统检测 -O
跟踪路由 --traceroute
脚本引擎
--script
--script=default可以选择使用或简单地添加运行默认类别中的脚本-sC。除了default之外,
类别还包括 auth、broadcast、brute、default、discovery、dos、exploit、external、fuzzer、intrusive、malware、safe、version 和 vuln
保存输出
-oN 正常格式类似于您在扫描目标时在屏幕上获得的输出
-oG 将扫描结果保存为 grepable 格式
-oX 使用 以 XML 格式保存扫描结果
-oS 无用的
实例
nmap -sC -sV -sS -T4 -vv ip
nmap -T4 -A -v -p- ip //全端口扫描
nmap -sn -T4 -PE 192.168.96.4/24 //存活主机探测
标签:nmap,端口,扫描,TCP,--,IP,数据包,tryhackme
From: https://www.cnblogs.com/-Lucky-/p/17213717.html