信息收集_网络扫描_nmap
信息收集_网络扫描nmap
目标说明
-iL <inputname> (从列表或文件输入)
-iR <hostnum> (随机选择生成目标数量)
--exclude <host1,host2> (排除的主机网络)
-T1~6 (设置扫描速度,一般T4足够)
主机发现
-sL (列表扫描)
-sP (Ping扫描,可以和除了-P0的任何发现方式结合)
-P0 (无Ping,所有主机视为在线,跳过主机发现)
-PS <portlist> (TCP SYN Ping)
-PA <portlist> (TCP ACK Ping,实际发送的还是SYN报文,而不是ACK报文。无状态防火墙,有状态非预期防火墙,即指定-PS又指定-PA,即SYS和ACK)
-PU <portlist> (UDP Ping,穿越TCP防火墙)
-PE;-PP;-PM (ICMP Ping)
-PR (ARP Ping ,基于ARP比基于IP更快更可靠,默认当目标主机在同一局域网上时,即使指定了ping的类型,也会使用ARP。不想要ARP,--send-ip)
-n (永不进行反向域名解析)
-R (所有目标反向域名解析)
--system-dns (使用系统域名解析器,除非nmap的DNS有问题才这样,因为贼慢)
端口扫描
nmap的6个端口状态
1、open(开放的)
2、closed (关闭的)
3、filtered(被过滤的)
4、unfiltered(未被过滤的,ACK扫描才会分类这种状态,其他类型扫描确认)
5、open|filtered(开放或被过滤的)
6、closed|filtered(关闭或被过滤的)
-sS (SYN扫描,TCP半连接不易发现,返回明确的端口状态,使用最频繁,安全,快)
-sT (TCP连接扫描,不安全,慢)
-sU (UDP)
-sN;-sF;-sX (TCP Null,FIN,Xmas,除了探测标志位不同,行为上完全一致,可以躲过一些无状态防火墙,甚至比SYN更隐秘,缺点无法正确标记端口状态)
-sA (ACK,无法判断端口状态,用于发现防火墙规则)
-sW (TCP窗口,不准确)
-sM (Maimon,和Null,FIN,Xmas完全一样,除了报文是FIN/ACK)
--scanflags (定制的TCP扫描,设置标志位或者扫描类型)
端口说明
-p <port range> (只扫描指定端口)
-F (快速扫描,大约1200常用端口)
-r (顺序扫描,出于效率,默认随机扫描,按照常用端口前移)
服务和版本探测
-sV(版本探测,-A 同时打开操作系统和版本探测)
--allports (不为版本探测排除任何端口,默认下跳过9100端口,像一些简单打印机的打印数据)
--version-intensity <intensity> (设置版本扫描强度1-9,默认7)
--version-light (version-intensity2 的别名,轻量级更快,识别服务弱一点)
--version-all (尝试所有探测,version-intensity9 的别名,对每个端口的探测)
--version-trace (跟踪版本扫描活动,打印详细的关于正在进行的扫描调试信息)
-sR (RPC,-sV版本探测包含了它且更全面,所有-sR很少需要)
操作系统探测
-O (启用操作系统检测,-A)
--osscan-limit (对指定的目标操作系统检测,仅在使用-O或-A操作系统检测起作用)
--osscan-guess;--fuzzy (推测操作系统检测结果,无法确定时尽可能的匹配,默认匹配)
时间和性能
--min-hostgroup <milliseconds>;--max-hostgroup <milliseconds> (调整并行扫描组的大小范围)
--min-parallelism <milliseconds>;--max-parallelism <milliseconds> (调整探测报文的并行度,通常max设为1,min设为10)
--min-rtt-timeout <milliseconds>;--max-rtt-timeout <milliseconds>;--initial-rtt-timeout <milliseconds> (调整探测报文超时)
--host-timeout <milliseconds> (放弃低速目标主机)
--scan-delay <milliseconds>;--max-scan-delay <milliseconds> (调整探测报文的时间间隔,躲避基于阈值的入侵检测和预防系统)
-T <Paranoid|Sneaky|Polite|Normal|Aggressive|Insane> (设置时间模板0-5,前两种用于IDS躲避,Polite降低扫描速度以使用更少的带宽和目标资源,默认Normal,Aggressive加速扫描,Insane更快的速度牺牲准确性)
防火墙/IDS躲避
-f (分段报文);--mtu (使用指定的MTU,可自定义偏移大小,使用时不用-f,偏移量必须是8的倍数)
-D <decoy1,decoy2,decoy3.....,me....> (使用诱饵隐蔽扫描,第6个或更后位置使用me,端口扫描检测器不会报到这个真实ip,如果不使用nmap会将真实ip随机放一个位置)
-S <IP_address> (源地址哄骗,常配合-e或-P0使用)
-e <interface> (使用指定的接口)
--source-port <portnumber>; -g <portnumber> (源端口哄骗,nmap从指定的端口发送数据)
--data-length <number> (发送报文时,附加随机数据)
--ttl <value> (设置IP time-to-live域)
--randomize-hosts (对目标主机的顺序随机排列)
--spoof-mac <mac address,prefix,or vendor name> (MAC地址哄骗)
输出
-oN <filespec> (标准输出直接写入指定文件)
-oX <filespec> (XML输出直接写入指定文件)
-oS <filespec> (交互式输出)
-oG <filespec> (Grep输出,不建议使用,XML 很强大)
-oA <basename> (扫描结果以标准格式、XML、Grep一次性输出,分别存放在 <basename>.nmap,<basename>.xml和 <basename>.gnmap文件中)
-v (详细输出)
-d [level] (设置调试级别0-9,比-v更多的信息,主要是开发人员用这个)
--packet-trace (跟踪发送和接收的报文,打印发送和接收的报文摘要,用于调试)
--iflist (列举接口和路由,输出检测到的接口列表和系统路由,调试路由和设备描述失误)
--append-output (在输出文件中追加,因为默认被覆盖)
--resume <filename> (继续中断的扫描,-oN或-oG日志被保留时,nmap将新的结果追加文件,不支持XML)
其他选项
-A (激烈扫描模式,包括了操作系统 -O和版本扫描 -sV)
--interactive (在交互模式中启动,这个选项包含了一个!操作符,用于执行shell命令,可用于提权,这也是不安装Nmap setuid root的多个原因之一)
--send-eth (使用原以太网帧发送,原套接 字(IP层)是UNIX主机最有效的方式,而以太网帧最适合Windows操作 系统,因为Microsoft禁用了原套接字支持)
--send-ip (在原IP层发送,要求Nmap通过原IP套接字发送报文,而不是低层的以 太网帧)
实例
Nmap 1.1.1.1 单个目标扫描
多个目标扫描
Nmap 1.1.1.1 1.1.1.2
或nmap 1.1.1.1/24
扫描主机列表1.txt中的所有IP地址
Nmap -iL 1.txt
扫描处某一个地址目标之外的所有地址
Nmap 1.1.1.1/24 -exclude 1.1.1.12
除文件类似 -excludefile
Nmap -p 80,21 192.168.96.4 //指定端口扫描
Nmap -O 192.168.96.4 //识别目标地址的操作系统版本
Nmap -sV 192.168.96.4 //对端口上的服务程序版本进行扫描
nmap -sS 192.168.96.4 //SYN扫描,使用最频繁,安全,快
nmap -sn 192.168.96.4 //对目标进行ping检测,不进行端口扫描(会发送四种报文确定目标是否存活,)
nmap -Pn 192.168.96.4 //目标机禁用ping,绕过ping扫描
nmap -sn -T4 -PE 192.168.96.4/24 //存活主机探测
-sn:只进行主机发现,不进行端口扫描
-PE:使用ICMP Echo扫描方式
-T4:有<0-5>,数字越大扫描越快
nmap -F 192.168.96.4 //常用端口扫描
nmap -p0-65535 192.168.110.128 //全端口扫描
nmap -T4 -A -v -p- 192.168.96.4 //全端口扫描
-v 详细输出