(1):扫描目标时用到的相关参数
-iL:从文件中导入目标主机或目标网段
-IR:随机选择目标主机
–exclude:后面跟的主机或网段不在扫描范围内
–excludefile:导入文件中的主机或网段将不再扫描范围内
(2):与主机发现有相关的参数
-sL:List Scan(列表扫描),仅列举指定目标的IP,不进行主机发现
-sn:Ping Scan,只进行主机发现,不进行端口扫描
-Pn:将所有指定的主机视为已开启,跳过主机发现的过程。这个参数适用于已经确定了存活的主机,需要对存活主机进行端口扫描时使用,这样可以跳过主机发现,从而加快扫描
-PS/PA/PU/PY(P代表portlist):通过发送TCP SYN/ACK或SCTP INIT/ECHO数据包的方式来发现主机
-PE/PP/PM:通过发送ICMP echo/timestamp/netmask请求包的方式来发现主机
-PO:使用IP协议包探测对方主机是否开启
-n/-R:-n表示不进行DNS解析;-R表示总是进行DNS解析 –dns-server:指定DNS服务器 –system-dns:指定使用系统的DNS服务器 –traceroute:追踪每个路由节点
(3):与端口扫描相关的参数
-sS/sT/sA:指定使用TCP SYN/Connect()/ACK的方式对目标主机进行扫描。
-sS:半连接扫描,发送SYN数据包,不会在对方主机日志中进行记录
-sT:全连接扫描,进行三次握手,会在对方主机日志中进行记录
-sA:半连接扫描,发送ACK数据包,不会在对方主机日志中进行记录
-/sW/sM:指定使用Window/Mainon scans的方式对目标主机进行扫描
-sU:指定使用UDP扫描的方式确定目标主机的UDP端口状况 使用UDP端口一般是用来判断端口关闭的情况,如果主机存活并且端口开启,那么不会收到回复的数据包,但是如果主机存活但是端口关闭,会收到一个端口不可达的信息(通常也被用来判断主机是否存活,收到端口不可达说明主机一定存活)
-sN/sF/sX:指定使用TCP Null/FIN/Xmas scans秘密扫描的方式协助探测对方的TCP端口状态 –scanflags:定制TCP包的flags
-sI:指定使用僵尸主机的方式扫描目标主机(前提是找到合适的僵尸主机)
-sY/sZ:使用SCTP INIT/COOKIE-ECHO扫描SCTP协议端口的开放情况
-sO:使用IP协议扫描确定目标主机支持的协议类型
-b:使用FTP bounce scan扫描方式
(4):与端口参数和扫描顺序设置相关的参数
-p:指定要扫描的端口号或者端口列表
-F:Fast mode(快速模式),仅扫描前100个端口
-r:不进行端口随机打乱的操作(nmap扫描的端口顺序是以随机的方式进行的,这是为了让nmap的扫描不被对方防火墙检测到) –top-ports:扫描开放端口最高的number个端口
-p-:扫描所有端口 –port-radio:扫描指定频率以上的端口
(5):与版本侦测相关的参数
-sV:扫描开放的端口所对应服务的版本 –version-intensity:指定侦测版本的强度(0-9),默认为7,数值越大,探测服务越详细,探测时间也越长
–version-light:指定使用轻量级侦测方式(initensity=2)
–version-all:指定使用probes侦测方式(initensity=9)
–version-trace:显示出详细的版本侦测信息
(6):与操作系统相关的参数
-O:扫描目标主机的操作系统
(7):与脚本有关的参数(脚本位于/usr/share/nmap/scripts)
–script=来指明脚本进行扫描
和ftp相关的一些漏洞检测脚本:
ftp-anon.nse 检查目标ftp是否允许匿名登录,光能登陆还不够,它还会自动检测目录是否可读写,如,批量ftp抓鸡
nmap -p 21 --script ftp-anon.nse -v 192.168.3.23
ftp-brute.nse ftp爆破脚本 [只会尝试一些比较简单的弱口令,时间可能要稍微长一些(挂vpn以后这个爆破速度可能会更慢),毕竟,是直接在公网爆破]
nmap -p 21 --script f