nmap
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
| # 基本扫描 nmap [IP] # 扫描一个主机 nmap -Pn [IP] # 扫描一个主机如果无法ping通也继续扫描 nmap [网络地址/子网前缀长度] # 扫描一个CIDR地址 nmap [-iL] hosts.txt # 扫描文件内的所有主机 nmap 192.168.1.1-10 # 扫描一个IP范围内的
# 指定端口 nmap -p [端口号] [IP] # 扫描某个端口 nmap -p [端口号-端口号] [IP] # 扫描某个区间端口 nmap -p [端口号,..] [IP] # 扫描某个特定端口 nmap -p- www.example.com # 扫描所有端口
# 指定扫描类型 TCP SYN扫描(默认):使用TCP SYN包探测主机上的开放端口。使用-sS选项指定。 nmap -sS www.example.com TCP 连接扫描:使用TCP连接探测主机上的开放端口。使用-sT选项指定。 nmap -sT www.example.com UDP 扫描:探测主机上的开放UDP端口。使用-sU选项指定。--top-ports <number> 最常用的UDP端口 nmap -sU www.example.com nmap -sU --top-ports 20 <target> .将扫描前 20 个最常用的 UDP 端口,从而获得更可接受的扫描时间。 操作系统检测:尝试识别主机的操作系统类型和版本。使用-O选项指定。 nmap -O www.example.com 版本检测:尝试识别主机上运行的服务及其版本。使用-sV选项指定。 nmap -sV www.example.com 全面扫描:结合TCP SYN扫描、TCP连接扫描、UDP扫描、操作系统检测和版本检测进行全面扫描。使用-sS -sT -sU -O -sV选项指定。 nmap -sS -sT -sU -O -sV www.example.com TCP Null Scans TCP 空扫描 -sN TCP FIN Scans -sF TCP Xmas Scans -sX ping扫描 -sn 增加信息 nmap -v www.example.com nmap -vv www.example.com # 二级 aggressive 侵略模式 nmap -A www.example.com
# 指定扫描速度 -T0:非常慢的速度 -T1:慢速 -T2:正常速度 -T3:快速 -T4:非常快的速度 -T5:极快的速度
# 输出扫描结果 -oA <file>: 三种格式文件 -oN <file>:将扫描结果保存为普通文本文件 -oX <file>:将扫描结果保存为XML文件 -oG <file>:将扫描结果保存为可读性更好的格式 nmap -oA example_scan www.example.com # 这将在当前目录中创建三个文件,文件名分别为:xample_scan.nmap:普通格式 example_scan.xml:XML格式 example_scan.gnmap:可grep格式 nmap -oN result.txt www.example.com # 将扫描结果保存为普通文本文件 nmap -oX result.xml www.example.com # 将扫描结果保存为XML文件 nmap -oG result.txt www.example.com # 将扫描结果保存为可读性更好的格式
# 使用脚本 要从nmap脚本库中激活一个脚本,可以使用--script选项,后跟要激活的脚本名称。例如,以下命令将激活http-title脚本,该脚本可用于提取目标Web服务器的标题: nmap --script=http-title www.example.com 您还可以使用逗号分隔的列表来激活多个脚本。例如,以下命令将激活http-title和http-headers脚本: nmap --script=http-title,http-headers www.example.com 如果您想要激活所有脚本,可以使用 --script=all 选项。这将激活nmap脚本库中的所有脚本,但可能会导致扫描时间变长。 nmap --script=all www.example.com 以下命令将激活所有"vuln"类别中的脚本,并对www.example.com进行扫描: nmap --script=vuln www.example.com 脚本库 safe :- 不会影响目标 intrusive :- 不安全:可能会影响目标 vuln :- 扫描漏洞 exploit :- 尝试利用漏洞 auth :- 尝试绕过正在运行服务的身份验证(例如匿名登录FTP服务器) brute :- 尝试暴力破解正在运行服务的凭据 discovery :- 尝试查询正在运行的服务以获取有关网络的更多信息(例如查询 SNMP 服务器)。 https://nmap.org/book/nse-usage.html 某些脚本需要参数(例如,凭据,如果它们正在利用经过身份验证的漏洞)。这些可以通过 --script-args Nmap开关提供。这方面的一个例子是 http-put 脚本(用于使用 PUT 方法上传文件)。这需要两个参数:要将文件上传到的 URL 和文件在磁盘上的位置。例如: nmap -p 80 --script http-put --script-args http-put.url='/dav/shell.php',http-put.file='./shell.php'
|
搜索NSE脚本
grep "{脚本名字}" /usr/share/nmap/scripts/script.db
防火墙规避
-f
:- 用于对数据包进行分段(即将它们分成更小的部分),使防火墙或 IDS 不太可能检测到数据包。
-f
替代方法,但可以更好地控制数据包的大小: --mtu <number>
,接受用于发送的数据包的最大传输单元大小。这必须是 8 的倍数。
--scan-delay <time>ms
:- 用于在发送的数据包之间添加延迟。如果网络不稳定,这非常有用,但对于规避可能存在的任何基于时间的防火墙/ IDS触发器也非常有用。
--badsum
:- 这用于生成无效的数据包校验和。任何真正的TCP / IP堆栈都会丢弃此数据包,但是,防火墙可能会自动响应,而无需费心检查数据包的校验和。因此,此开关可用于确定是否存在防火墙/IDS。