英语作文网站,天津工程建设信息网官网,a站是啥,怎样做免费企业网站文章目录 Linux Nmap 命令解析简介Nmap 的核心功能主机发现端口扫描服务版本检测OS 指纹识别#xff08;操作系统指纹识别#xff09;脚本扫描 安装 NmapNmap 命令结构Nmap 命令文档英文中文 主机发现Ping 扫描ARP 扫描关于nmap -PR#xff08;ARP Ping Scan#xff09;和n… 文章目录 Linux Nmap 命令解析简介Nmap 的核心功能主机发现端口扫描服务版本检测OS 指纹识别操作系统指纹识别脚本扫描 安装 NmapNmap 命令结构Nmap 命令文档英文中文 主机发现Ping 扫描ARP 扫描关于nmap -PRARP Ping Scan和nmap -PnNo Ping Scan-PR ARP Ping Scan-Pn No Ping Scan示例总结 端口扫描常见的端口扫描类型示例SYN 扫描 服务版本检测OS 指纹识别使用 Nmap 脚本引擎 (NSE)输出和报告文本输出XML 输出Grepable 输出 高级技术防火墙绕过时间和性能脚本参数 安全性和合法性结语 Linux Nmap 命令解析
简介
NmapNetwork Mapper是一款开源的网络探测和安全审核工具。它设计用于快速扫描大型网络但也适合对单个主机进行各种检查。Nmap 由 Gordon Lyon又名 Fyodor编写并首次发布于 1997 年。
Nmap 的核心功能
主机发现
主机发现是确定哪些主机在网络上活跃并响应的过程。
端口扫描
端口扫描用于发现目标主机上开放的 TCP 和 UDP 端口。
服务版本检测
服务版本检测可以确定端口上运行的应用程序及其版本信息。
OS 指纹识别操作系统指纹识别
通过发送特定的数据包序列并分析响应Nmap 能够推断出目标系统可能运行的操作系统。
操作系统指纹识别具体参考nmap os detection原理及golang实现
脚本扫描
Nmap 提供了一个强大的脚本引擎NSE可以使用特定的脚本来发现额外的网络信息或者检测和利用漏洞。
安装 Nmap
Nmap 在大多数 Linux 发行版中都可以通过包管理器轻松安装
# Debian/Ubuntu 系统:
sudo apt-get install nmap# Red Hat/CentOS 系统:
sudo yum install nmap# Fedora 系统:
sudo dnf install nmapNmap 命令结构
基本命令格式如下
nmap [扫描类型...] [选项] {目标规范}其中“扫描类型”定义了将执行的扫描方法“选项”可用于进一步定制扫描而“目标规范”指定了要扫描的目标。
Nmap 命令文档
nmap -h英文
Nmap 7.80 ( https://nmap.org )
Usage: nmap [Scan Type(s)] [Options] {target specification}
TARGET SPECIFICATION:Can pass hostnames, IP addresses, networks, etc.Ex: scanme.nmap.org, microsoft.com/24, 192.168.0.1; 10.0.0-255.1-254-iL inputfilename: Input from list of hosts/networks-iR num hosts: Choose random targets--exclude host1[,host2][,host3],...: Exclude hosts/networks--excludefile exclude_file: Exclude list from file
HOST DISCOVERY:-sL: List Scan - simply list targets to scan-sn: Ping Scan - disable port scan-Pn: Treat all hosts as online -- skip host discovery-PS/PA/PU/PY[portlist]: TCP SYN/ACK, UDP or SCTP discovery to given ports-PE/PP/PM: ICMP echo, timestamp, and netmask request discovery probes-PO[protocol list]: IP Protocol Ping-n/-R: Never do DNS resolution/Always resolve [default: sometimes]--dns-servers serv1[,serv2],...: Specify custom DNS servers--system-dns: Use OSs DNS resolver--traceroute: Trace hop path to each host
SCAN TECHNIQUES:-sS/sT/sA/sW/sM: TCP SYN/Connect()/ACK/Window/Maimon scans-sU: UDP Scan-sN/sF/sX: TCP Null, FIN, and Xmas scans--scanflags flags: Customize TCP scan flags-sI zombie host[:probeport]: Idle scan-sY/sZ: SCTP INIT/COOKIE-ECHO scans-sO: IP protocol scan-b FTP relay host: FTP bounce scan
PORT SPECIFICATION AND SCAN ORDER:-p port ranges: Only scan specified portsEx: -p22; -p1-65535; -p U:53,111,137,T:21-25,80,139,8080,S:9--exclude-ports port ranges: Exclude the specified ports from scanning-F: Fast mode - Scan fewer ports than the default scan-r: Scan ports consecutively - dont randomize--top-ports number: Scan number most common ports--port-ratio ratio: Scan ports more common than ratio
SERVICE/VERSION DETECTION:-sV: Probe open ports to determine service/version info--version-intensity level: Set from 0 (light) to 9 (try all probes)--version-light: Limit to most likely probes (intensity 2)--version-all: Try every single probe (intensity 9)--version-trace: Show detailed version scan activity (for debugging)
SCRIPT SCAN:-sC: equivalent to --scriptdefault--scriptLua scripts: Lua scripts is a comma separated list ofdirectories, script-files or script-categories--script-argsn1v1,[n2v2,...]: provide arguments to scripts--script-args-filefilename: provide NSE script args in a file--script-trace: Show all data sent and received--script-updatedb: Update the script database.--script-helpLua scripts: Show help about scripts.Lua scripts is a comma-separated list of script-files orscript-categories.
OS DETECTION:-O: Enable OS detection--osscan-limit: Limit OS detection to promising targets--osscan-guess: Guess OS more aggressively
TIMING AND PERFORMANCE:Options which take time are in seconds, or append ms (milliseconds),s (seconds), m (minutes), or h (hours) to the value (e.g. 30m).-T0-5: Set timing template (higher is faster)--min-hostgroup/max-hostgroup size: Parallel host scan group sizes--min-parallelism/max-parallelism numprobes: Probe parallelization--min-rtt-timeout/max-rtt-timeout/initial-rtt-timeout time: Specifiesprobe round trip time.--max-retries tries: Caps number of port scan probe retransmissions.--host-timeout time: Give up on target after this long--scan-delay/--max-scan-delay time: Adjust delay between probes--min-rate number: Send packets no slower than number per second--max-rate number: Send packets no faster than number per second
FIREWALL/IDS EVASION AND SPOOFING:-f; --mtu val: fragment packets (optionally w/given MTU)-D decoy1,decoy2[,ME],...: Cloak a scan with decoys-S IP_Address: Spoof source address-e iface: Use specified interface-g/--source-port portnum: Use given port number--proxies url1,[url2],...: Relay connections through HTTP/SOCKS4 proxies--data hex string: Append a custom payload to sent packets--data-string string: Append a custom ASCII string to sent packets--data-length num: Append random data to sent packets--ip-options options: Send packets with specified ip options--ttl val: Set IP time-to-live field--spoof-mac mac address/prefix/vendor name: Spoof your MAC address--badsum: Send packets with a bogus TCP/UDP/SCTP checksum
OUTPUT:-oN/-oX/-oS/-oG file: Output scan in normal, XML, s|rIpt kIddi3,and Grepable format, respectively, to the given filename.-oA basename: Output in the three major formats at once-v: Increase verbosity level (use -vv or more for greater effect)-d: Increase debugging level (use -dd or more for greater effect)--reason: Display the reason a port is in a particular state--open: Only show open (or possibly open) ports--packet-trace: Show all packets sent and received--iflist: Print host interfaces and routes (for debugging)--append-output: Append to rather than clobber specified output files--resume filename: Resume an aborted scan--stylesheet path/URL: XSL stylesheet to transform XML output to HTML--webxml: Reference stylesheet from Nmap.Org for more portable XML--no-stylesheet: Prevent associating of XSL stylesheet w/XML output
MISC:-6: Enable IPv6 scanning-A: Enable OS detection, version detection, script scanning, and traceroute--datadir dirname: Specify custom Nmap data file location--send-eth/--send-ip: Send using raw ethernet frames or IP packets--privileged: Assume that the user is fully privileged--unprivileged: Assume the user lacks raw socket privileges-V: Print version number-h: Print this help summary page.
EXAMPLES:nmap -v -A scanme.nmap.orgnmap -v -sn 192.168.0.0/16 10.0.0.0/8nmap -v -iR 10000 -Pn -p 80
SEE THE MAN PAGE (https://nmap.org/book/man.html) FOR MORE OPTIONS AND EXAMPLES
中文
Nmap 7.80 ( https://nmap.org )
用法nmap [扫描类型] [选项] {目标指定}
目标指定可以传递主机名、IP地址、网络等。例如scanme.nmap.org, microsoft.com/24, 192.168.0.1; 10.0.0-255.1-254-iL 输入文件名从主机/网络列表中输入-iR 主机数随机选择目标--exclude 主机1[,主机2][,主机3],...排除主机/网络--excludefile 排除文件从文件中排除列表
主机发现-sL列表扫描 - 仅列出要扫描的目标-snPing扫描 - 禁用端口扫描-Pn将所有主机视为在线 - 跳过主机发现-PS/PA/PU/PY[portlist]对给定端口进行TCP SYN/ACK, UDP或SCTP发现-PE/PP/PMICMP回声请求时间戳和网络掩码请求探测-PO[协议列表]IP协议Ping-n/-R从不进行DNS解析/总是解析[默认有时]--dns-servers 服务器1[,服务器2],...指定自定义DNS服务器--system-dns使用操作系统的DNS解析器--traceroute追踪到每个主机的跳点路径
扫描技术-sS/sT/sA/sW/sMTCP SYN/Connect()/ACK/Window/Maimon扫描-sUUDP扫描-sN/sF/sXTCP Null, FIN, 和 Xmas扫描--scanflags 标志自定义TCP扫描标志-sI 僵尸主机[:探测端口]空闲扫描-sY/sZSCTP INIT/COOKIE-ECHO扫描-sOIP协议扫描-b FTP中继主机FTP弹跳扫描
端口规范和扫描顺序-p 端口范围仅扫描指定端口例如-p22; -p1-65535; -p U:53,111,137,T:21-25,80,139,8080,S:9--exclude-ports 端口范围从扫描中排除指定端口-F快速模式 - 扫描的端口少于默认扫描-r连续扫描端口 - 不随机化--top-ports 数字扫描最常见的数字个端口--port-ratio 比率扫描比比率更常见的端口
服务/版本检测-sV探测开放端口以确定服务/版本信息--version-intensity 级别从0轻量到9尝试所有探针设置--version-light限制最可能的探针强度2--version-all尝试每一个探针强度9--version-trace显示详细的版本扫描活动用于调试
脚本扫描-sC相当于 --scriptdefault--scriptLua脚本Lua脚本是一个以逗号分隔的目录、脚本文件或脚本类别列表--script-argsn1v1,[n2v2,...]向脚本提供参数--script-args-filefilename在文件中提供NSE脚本参数--script-trace显示发送和接收的所有数据--script-updatedb更新脚本数据库。--script-helpLua脚本显示关于脚本的帮助。Lua脚本是一个以逗号分隔的脚本文件或脚本类别列表。
操作系统检测-O启用操作系统检测--osscan-limit将操作系统检测限制为有希望的目标--osscan-guess更积极地猜测操作系统
计时和性能接受time的选项单位是秒或者在数值后面添加ms毫秒、s秒、m分钟或h小时例如30m。-T0-5设置计时模板数字越大速度越快--min-hostgroup/max-hostgroup size并行主机扫描组的大小--min-parallelism/max-parallelism numprobes探针并行化--min-rtt-timeout/max-rtt-timeout/initial-rtt-timeout time指定探针往返时间。--max-retries tries限制端口扫描探针重传的次数。--host-timeout time在这段时间后放弃目标主机--scan-delay/--max-scan-delay time调整探针之间的延迟--min-rate number发送包的速度不低于每秒number个--max-rate number发送包的速度不高于每秒number个
防火墙/IDS规避与伪装-f; --mtu val分片数据包可选择给定MTU-D decoy1,decoy2[,ME],...使用诱饵隐藏扫描-S IP_Address伪造源地址-e iface使用指定接口-g/--source-port portnum使用指定端口号--proxies url1,[url2],...通过HTTP/SOCKS4代理转发连接--data hex string向发送的数据包附加自定义有效载荷--data-string string向发送的数据包附加自定义ASCII字符串--data-length num向发送的数据包附加随机数据--ip-options options发送带有指定IP选项的数据包--ttl val设置IP生存时间字段--spoof-mac mac address/prefix/vendor name伪造您的MAC地址--badsum发送带有错误的TCP/UDP/SCTP校验和的数据包
输出-oN/-oX/-oS/-oG file分别以普通、XML、s|rIpt kIddi3、可搜索格式输出扫描结果到指定文件名。-oA basename同时以三种主要格式输出-v提高详细等级使用-vv或更多获得更大效果-d提高调试等级使用-dd或更多获得更大效果--reason显示端口处于特定状态的原因--open仅显示开放的或可能开放的端口--packet-trace显示所有发送和接收的数据包--iflist打印主机接口和路由用于调试--append-output附加到指定的输出文件而不是覆盖--resume filename恢复中断的扫描--stylesheet path/URLXSL样式表将XML输出转换为HTML--webxml引用Nmap.Org的样式表以获得更便携的XML--no-stylesheet阻止将XSL样式表与XML输出关联
杂项-6启用IPv6扫描-A启用操作系统检测、版本检测、脚本扫描和路由追踪--datadir dirname指定自定义Nmap数据文件位置--send-eth/--send-ip使用原始以太网帧或IP数据包发送--privileged假设用户具有完全权限--unprivileged假设用户缺乏原始套接字权限-V打印版本号-h打印此帮助摘要页面。
示例nmap -v -A scanme.nmap.orgnmap -v -sn 192.168.0.0/16 10.0.0.0/8nmap -v -iR 10000 -Pn -p 80
查看手册页https://nmap.org/book/man.html了解更多选项和示例主机发现
Ping 扫描
Ping 扫描用于确定哪些主机正在响应 ICMP 请求示例如下
nmap -sn 192.168.1.0/24这将对 192.168.1.x 的所有地址执行 Ping 扫描其中 x 是从 0 到 255 的任意值。 也可以对单个地址扫描
nmap -sn 192.168.1.116ARP 扫描
局域网中ARP地址解析协议扫描通常比标准 ICMP ping 更有效命令如下
nmap -PR 192.168.1.0/24对单个地址扫描
nmap -PR 192.168.1.116关于nmap -PRARP Ping Scan和nmap -PnNo Ping Scan
在Nmap中-PR 和 -Pn 是两个不同的扫描选项它们用于不同的场景
-PR ARP Ping Scan
-PR 选项告诉Nmap使用ARP请求来确定本地网络上的主机是否活跃。这种方法非常适合局域网内部因为ARP请求无法跨过路由器所以它只对本地子网有效。当想确认本地网络同一广播域中某个IP地址是否被占用时使用-PR是合适的。
如果尝试对一个响应ARP但是不响应ICMP的设备进行-PR扫描且结果显示Host seems down可能是因为该设备设置了防火墙规则来忽略或阻止ARP请求或者Nmap没有正确地发送或接收ARP回应。这种情况下可能需要检查你的网络设置或该设备的安全配置。
-Pn No Ping Scan
-Pn 选项告诉Nmap跳过发现阶段直接执行端口扫描等后续操作。它假定目标主机是活跃的不会先检测主机是否在线。这个选项适用于目标主机可能屏蔽了所有类型的ping探针包括ICMP、ARP、TCP和UDP的情况。
当使用-Pn选项时即使目标主机关闭了对ICMP、ARP等探针的响应Nmap也会尝试连接目标主机的端口来判断其在线状态。这种方法适用于任何网络环境包括本地网络和跨越路由器的远程网络。
示例
nmap -Pn 192.168.1.215此命令将对IP地址192.168.1.215执行扫描不管目标主机是否响应任何形式的探针。
总结
如果确定是在本地网络上并且知道目标主机可能会响应ARP请求则使用-PR是合理的。如果-PR报告说主机看起来已经关闭而怀疑主机实际上是开着的并且可能只是屏蔽了ARP请求那么你可以尝试使用-Pn来绕过主机发现阶段直接进行端口扫描。这样即使ARP发现失败仍然有机会通过观察端口的响应来确定主机是否在线。
端口扫描
常见的端口扫描类型
-sTTCP 连接扫描-sSSYN 扫描-sUUDP 扫描-sAACK 扫描-sN、-sF、-sXNULL、FIN 和 Xmas 扫描-sP不扫描端口
示例SYN 扫描
SYN 扫描是最流行的扫描类型因为它快速且在网络上的隐蔽性较高
nmap -sS 192.168.1.1这将对 IP 地址为 192.168.1.1 的主机执行 SYN 扫描。 服务版本检测
使用 -sV 参数启动服务版本检测
nmap -sV 192.168.1.1这会对目标主机进行端口扫描并尝试确定每个开放端口上运行的服务及其版本。 OS 指纹识别
OS 指纹识别可以通过 -O 参数启动
nmap -O 192.168.1.1这将提供关于目标主机操作系统的猜测。 使用 Nmap 脚本引擎 (NSE)
Nmap 具有广泛的脚本库可用于进行更复杂的网络探测。运行特定的脚本可以使用 --script 参数
nmap --scripthttp-title 192.168.1.1这将运行 http-title 脚本该脚本会抓取 HTTP 服务的标题。
输出和报告
Nmap 支持多种输出格式包括普通文本、XML 和 grepable 格式。
文本输出
默认情况下Nmap 以文本形式输出到控制台。
XML 输出
XML 输出可以被许多其他工具用于进一步处理命令如下
nmap -oX output.xml 192.168.1.1Grepable 输出
Grepable 格式便于使用文本处理工具如 grep 进行搜索命令如下
nmap -oG output.grep 192.168.1.1高级技术
防火墙绕过
某些 Nmap 扫描技术可用于绕过防火墙例如碎片扫描-f或者自定义 MTU--mtu。
时间和性能
调整扫描速度与准确性之间的平衡可以使用 -T 选项它接受从 0最慢到 5最快的值。
脚本参数
向 NSE 脚本传递参数可以使用 --script-args 选项这样可以定制脚本的行为。
安全性和合法性
使用 Nmap 进行扫描时必须遵守当地法律和政策。未经授权扫描他人网络或设备可能违反法律。
结语
Nmap 是网络管理员和安全专家的重要工具。它的灵活性和强大功能使其成为评估网络安全状态的理想选择。正确使用 Nmap 可以帮助识别和缓解网络安全风险。