简单记录一下nmap的一些基本指令,别问,问就是命令太多了,英文文档翻得累,nmap的扫描功能和隐蔽性很强大的,很有必要多看看
-iL (从列表或文件输入)
-iR (随机选择生成目标数量)
--exclude (排除的主机网络)
-sL (列表扫描)
-sP (Ping扫描,可以和除了-P0的任何发现方式结合)
-P0 (无Ping,所有主机视为在线,跳过主机发现)
-PS (TCP SYN Ping)
-PA (TCP ACK Ping,实际发送的还是SYN报文,而不是ACK报文。无状态防火墙,有状态非预期防火墙,即指定-PS又指定-PA,即SYS和ACK)
-PU (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扫描,设置标志位或者扫描类型)
-sl (TCP端口盲扫描,没有报文从你的真实ip地址发送到目标,极端隐蔽,不加端口默认80)
-sO (IP协议扫描)
-b (FTP弹跳扫描,代理ftp连接,格式:@:,server是脆弱的FTP服务器名字ip)
-p (只扫描指定端口)
-F (快速扫描,大约1200常用端口)
-r (顺序扫描,出于效率,默认随机扫描,按照常用端口前移)
-sV (版本探测,-A 同时打开操作系统和版本探测)
--allports (不为版本探测排除任何端口,默认下跳过9100端口,像一些简单打印机的打印数据)
--version-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 ;--max-hostgroup (调整并行扫描组的大小范围)
--min-parallelism ;--max-parallelism (调整探测报文的并行度,通常max设为1,min设为10)
--min-rtt-timeout ;--max-rtt-timeout ;--initial-rtt-timeout (调整探测报文超时)
--host-timeout (放弃低速目标主机)
--scan-delay ;--max-scan-delay (调整探测报文的时间间隔,躲避基于阈值的入侵检测和预防系统)
-T (设置时间模板0-5,前两种用于IDS躲避,Polite降低扫描速度以使用更少的带宽和目标资源,默认Normal,Aggressive加速扫描,Insane更快的速度牺牲准确性)
-f (分段报文);--mtu (使用指定的MTU,可自定义偏移大小,使用时不用-f,偏移量必须是8的倍数)
-D (使用诱饵隐蔽扫描,第6个或更后位置使用me,端口扫描检测器不会报到这个真实ip,如果不使用nmap会将真实ip随机放一个位置)
-S (源地址哄骗,常配合-e或-P0使用)
-e (使用指定的接口)
--source-port ; -g (源端口哄骗,nmap从指定的端口发送数据)
--data-length (发送报文时,附加随机数据)
--ttl (设置IP time-to-live域)
--randomize-hosts (对目标主机的顺序随机排列)
--spoof-mac (MAC地址哄骗)
-oN (标准输出直接写入指定文件)
-oX (XML输出直接写入指定文件)
-oS (交互式输出)
-oG (Grep输出,不建议使用,XML 很强大)
-oA (扫描结果以标准格式、XML、Grep一次性输出,分别存放在 .nmap,.xml和 .gnmap文件中)
-v (详细输出)
-d [level] (设置调试级别0-9,比-v更多的信息,主要是开发人员用这个)
--packet-trace (跟踪发送和接收的报文,打印发送和接收的报文摘要,用于调试)
--iflist (列举接口和路由,输出检测到的接口列表和系统路由,调试路由和设备描述失误)
--append-output (在输出文件中追加,因为默认被覆盖)
--resume (继续中断的扫描,-oN或-oG日志被保留时,nmap将新的结果追加文件,不支持XML)
-A (激烈扫描模式,包括了操作系统 -O和版本扫描 -sV)
--interactive (在交互模式中启动,这个选项包含了一个!操作符,用于执行shell命令,可用于提权,这也是不安装Nmap setuid root的多个原因之一)
--send-eth (使用原以太网帧发送,原套接 字(IP层)是UNIX主机最有效的方式,而以太网帧最适合Windows操作 系统,因为Microsoft禁用了原套接字支持)
--send-ip (在原IP层发送,要求Nmap通过原IP套接字发送报文,而不是低层的以 太网帧)
nmap -v scanme.nmap.org
扫描主机所有的保留TCP端口,-v 更多细节
nmap -sS -O scanme.nmap.org/24
秘密SYN扫描,探测操作系统版本,主机同C段机器
nmap -sV -p 22,53,110,143,4564 198.116.0-255.1-127
主机列举,TCP扫描,对象为B类188.116网段中255个8位子网。用于确定系统是否运行了sshd、DNS、imapd或4564端口
nmap -v -iR 1000 -P0 -p 80
随机1000台主机扫描web服务是否开启
nmap -P0 -p80 -oX logs/pb-port80scan.xml -oG logs/pb-port80scan.gnmap 216.163.128.20/20
扫描4096个IP地址,查找Web服务器(不ping),将结果以Grep和XML格式保存。
host -l company.com | cut -d -f 4 | nmap -v -iL
进行DNS区域传输,以发现company.com中的主机,然后将IP地址提供给 Nmap。用于GNU/Linux,其它系统进行区域传输时有不同的命令。