Nmap学习笔记
Nmap学习笔记作用:查看存活主机扫描目标主机开放的端口鉴别安全过滤机制识别目标主机的操作系统查看目标主机服务的版本信息利用脚本扫描漏洞适用系统:WindowsLinuxMac使用方式:命令行图形化GUI功能参数:目标说明TARGET SPECIFICATION:Can pass hostnames, IP addresses, networks, etc.Ex: scanme.nmap.org,
·
Nmap学习笔记
作用:
- 查看存活主机
- 扫描目标主机开放的端口
- 鉴别安全过滤机制
- 识别目标主机的操作系统
- 查看目标主机服务的版本信息
- 利用脚本扫描漏洞
适用系统:
Windows
Linux
Mac
使用方式:
命令行
图形化GUI
功能参数:
目标说明
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
- -iL: 从主机地址列表文件中导入扫描地址
- -iR: 随机选择目标进行扫描,num hosts表示数目,设置为0则无休止扫描
- –exclude: 排除某个主机地址
- –excludefile: 排除主机地址列表中的地址
主机发现
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 OS's DNS resolver
--traceroute: Trace hop path to each host
- -sL: 列表扫描 ,简单列出要扫描的目标,不进行主机发现
- -sn: 与-sP一样Ping 扫描,只进行主机发现,不扫描目标主机端口
- -Pn: 不进行主机发现,将所有指定主机视为已开启状态
- -PS/PA/PU/PY: 发送一个设置SYN/ACK/UDP标志位的空TCP报文,默认80端口,可以指定端口可 -PU可以穿透只过滤的防火墙
- -PE/PP/PM: ICMP 回显、时间戳和网络掩码请求发现探测
- -P0: 使用IP协议进行Ping操作
- -n/-R: -n不用域名解析,加速扫描;-R为目标IP做反向域名解析,扫描速度较慢
- –dns-servers: 自定义域名解析服务器地址
- –traceroute: 目标主机路由追踪
端口扫描
Nmap将目标端口分为6个状态:
- opne: 开放的
- closed: 关闭的
- filtered: 被过滤的
- unfiltered: (未被过滤的)可访问但是不确定开放情况
- open|filtered: (开放或者被过滤)无法确定端口是开放的还是被过滤的
- closed|filtered: (关闭或者被过滤)无法确定端口是关闭的还是被过滤的
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
- -sS: TCP SYN扫描,半开放扫描,速度快(不完成TCP连接),能明确区分端口状态
- -sT: TCP连接扫描,容易产生记录,效率低
- -sA: TCP ACK扫描,只扫描ACK标志位,区别被过滤与未被过滤的
- -sU: UDP服务扫描,效率低
- -sN/sF/sX: TCP Null,Fin,Xmas扫描,从RFC挖掘的微妙方法来区分开放端口和关闭端口
- -sI: 利用僵尸主机上已知IP分段ID序列生成算法来探测目标上开放端口的信息,极端隐蔽
- -sO: IP协议扫描,可以确定目标主机支持哪些IP协议
端口说明和扫描顺序
PORT SPECIFICATION AND SCAN ORDER:
-p <port ranges>: Only scan specified ports
Ex: -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 - don't randomize
--top-ports <number>: Scan <number> most common ports
--port-ratio <ratio>: Scan ports more common than <ratio>
- -p: 指定扫描端口,可以是单个端口,也可以是端口范围可以指定UDP或者TCP协议扫描特定端口
- –exclude-ports: 指定端口不扫描
- -F: 快速模式,仅扫描100个常用端口
服务与版本探测==(不是绝对正确)==
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)
- -sV: 进行服务版本探测
- –version-trace: 设定版本扫描强度,范围0~9,默认为7,强度越高,扫描时间越长,服务越可能被正确识别
脚本扫描
Nmap允许用户自己编写脚本来执行自动化操作或者拓展Nmap功能,使用Lua脚本语言.
SCRIPT SCAN:
-sC: equivalent to --script=default
--script=<Lua scripts>: <Lua scripts> is a comma separated list of
directories, script-files or script-categories
--script-args=<n1=v1,[n2=v2,...]>: provide arguments to scripts
--script-args-file=filename: provide NSE script args in a file
--script-trace: Show all data sent and received
--script-updatedb: Update the script database.
--script-help=<Lua scripts>: Show help about scripts.
<Lua scripts> is a comma-separated list of script-files or
script-categories.
- -sC: 使用默认类别脚本进行扫描
- –script=: 使用某个或者某类脚本进行扫描支持通配符描述
操作系统探测
Nmap使用TCP/IP协议栈fingerprinting进行探测,Nmap发送一系列TCP/UDP报文到远程主机,检查响应中的每一个比特.测试后Nmap把结果和数据库中的已知fingerprints比较,输出结果
OS DETECTION:
-O: Enable OS detection
--osscan-limit: Limit OS detection to promising targets
--osscan-guess: Guess OS more aggressively
- -O: 启用操作系统探测
- -A: 万能开关同时启用操作系统探测和服务版本探测
- –osscan-limit: 针对指定目标进行操纵系统检测
- –osscan-guess: 当Nmap无法确定所检测的操作系统时,会尽可能地提供最相近的匹配
时间和性能
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).
-T<0-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>: Specifies
probe 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
- -T<0-5>: 设置时间模板级数,到0~5中选择;T0,T1:用于IDS规避;T2:降低扫描速度可以使用更少的带宽和资源;默认为T3:未作任何优化;T4:假设具有合适及可靠的网络从而加速扫描;T5:假设具有特别快的网络或者愿意为速度牺牲准确性
- –host-timeout
防火墙/IDS规避和欺骗
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
- -f; --mtu : -f(报文分段);–mtu(使用指定的MTU)将TCP头分段在几个包中,使得包过滤器,IDS以及其他工具的检测更加困难
- -D: 隐蔽扫描;使用逗号分隔每个诱饵主机,用自己真实的IP作为诱饵使用ME选项.如在6号或更后的位置使用ME选项,一些检测器就不报告真实IP;如果不使用ME,真实IP将随机放置.
- -S <IP_Address>: 伪造数据包的源地址
- g/–source-port : 伪造源端口
输出选项
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
--noninteractive: Disable runtime interactions via keyboard
--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
- -oN: 标准输出
- -oX: XML输出写入指定的文件
- -oS: 脚本小子输出,类似于交互工具输出
- -oG: Grep输出
- -oA: 输出到所有格式
- -v: 提高输出信息的详细度
- –resume : 继续中断的扫描
Nmap常用扫描技巧
扫描单一主机
#默认发送一个ARP包扫描1-1000范围内开放的端口
nmap + 目标主机域名
nmap + 目标主机IP地址
例:
nmap baidu.com
nmap 192.168.xx.xx
扫描整个子网
#Nmap默认不扫描本机
nmap + 需要扫描的网段地址
例:
nmap 192.168.xx.xx/24
扫描多个目标
nmap + 多个目标主机IP地址或者域名
例:
nmap baidu.com 192.168.xx.xx google.com
扫描一个范围内的目标
nmap + 目标IP地址范围
例:
nmap 192.168.xx.xx-200
导入IP列表进行扫描
nmap -sL + IP列表
例:
nmap -sL ip.txt #ip.txt在Nmap的目录下
列举目标地址,但不进行扫描
nmap -sL + 需要扫描的网段地址
例:
nmap -sL 192.168.xx.xx/24
排除IP进行扫描
nmap + 网段地址 -exclude + 排除的IP地址
例:
nmap 192.168.xx.xx/24 -exclude 192.168.xx.xx
nmap + 网段地址 -exclude file + 排除的IP列表
例:
nmap 192.168.xx.xx -exclude file ip.txt #ip.txt要在Nmap目录下
扫描特定主机的特定端口
nmap -p + 端口 + 目标主机/域名
例:
nmap -p 80,21,22,8080 192.168.xx.xx
nmap -p 50-900 192.168.xx.xx
简单扫描,详细输出返回结果
nmap -vv + 目标主机IP地址/域名
例:
nmap -vv 192.168.xx.xx
简单扫描并进行路由跟踪
nmap -traceroute + IP地址/域名
例:
nmap -traceroute 192.168.xx.xx
ping扫描,不扫描端口Linux系统需要root权限
namp -sP + IP地址/域名
nmap -sn + IP地址/域名
例:
namp -sP 192.168.xx.xx
nmap -sn 192.168.xx.xx
探测操作系统类型
nmap -O + 目标主机的IP地址/域名
例:
nmap -O 192.168.xx.xx
Nmap万能开关-A参数
nmap -A + 目标主机的IP地址/域名
nmap -A 192.168.xx.xx
混合命令扫描
#按个人需求组合命令扫描
例:
namp -vv -p1-500 -O 192.168.xx.xx/24 -exclude 192.168.xx.x
#扫描192.168.xx.xx/24这个范围内除了192.168.xx.x这个IP地址的主机的1-500端口,识别目标操作系统然后详细输出
半开放TCP SYN端口扫描
namp -sS + 目标主机的IP地址/域名
例:
namp -sS 192.168.xx.xx
扫描UDP服务端口
nmap -sU + 目标主机的IP地址/域名
例:
nmap -sU 192.168.xx.xx
TCP连接扫描端口
nmap -sT + 目标主机的IP地址/域名
例:
nmap -sT 192.168.xx.xx
当目标主机存在IDS/IPS系统时,防火墙拦截SYN数据包时,可以发送设置FIN标志的数据包,无需完成TCP握手不产生日志
nmap -sF + 目标主机的IP地址/域名
例:
nmap -sF 192.168.xx.xx
Nmap的脚本扫描功能
Nmap允许用户自己编写脚本来执行自动化操作或者拓展Nmap功能,使用Lua脚本语言.
*脚本的默认路径为:/nmap/scripts/ *
脚本以==.nse==格式保存
–
-sC => -sC=default使用默认脚本进行扫描;
脚本分类:
- auth: 负责处理鉴权证书(绕开鉴权)的脚本
- broadcast: 在局域网内探查更多服务开启状况
- brute: 针对常见应用提供暴力破解方式;如http/sqlserver
- default: 使用-sC或-A选项扫描时默认的脚本,提供基本的脚本扫描能力
- discovery: 对网络进行更多的信息,如SMB\SNMP查询等
- dos: 用于进行拒绝服务器攻击DDOS攻击
- exploit: 利用已知的漏洞入侵系统
- external: 利用第三方的数据库或者资源,例如进行whois解析
- fuzzer: 模糊测试的脚本,发送异常的包到目标主机,探测潜在漏洞
- instrusive: 入侵性的脚本,此类脚本可以引发对方的IDS/IPS的记录或者屏蔽
- malware: 探测目标主机是否感染了病毒,开启了后门等信息
- safe: 此类与instrusive相反,属于安全性的脚本
- version: 负责增强服务与版本扫描(Version Detection)功能的脚本
- vuln: 负责检查目标主机是否有常见的漏洞(Vulnerability),比如MS08_067
例:
nmap --<script>= + 脚本 + 目标主机的IP/域名地址
更多推荐
已为社区贡献1条内容
所有评论(0)