扫描单个主机
nmap 192.168.1.1
扫描多个主机
nmap 192.168.1.1-10
扫描整个网络
nmap 192.168.1.0/24
指定扫描的端口
扫描指定的端口
nmap -p 22,80,443 192.168.1.1
扫描所有端口
nmap -p- 192.168.1.1
扫描选项
TCP SYN扫描(默认)
nmap -sS 192.168.1.1
TCP连接扫描
nmap -sT 192.168.1.1
UDP扫描
nmap -sU 192.168.1.1
隐蔽扫描
nmap -sX 192.168.1.1
其他选项
快速扫描
nmap -F 192.168.1.1
详细输出
nmap -v 192.168.1.1
操作系统检测
nmap -O 192.168.1.1
服务版本检测
nmap -sV 192.168.1.1
输出结果到文件
nmap -oN output.txt 192.168.1.1
使用脚本引擎
nmap --script=all 192.168.1.1
进阶用法
规避防火墙:
nmap -f <8的倍数> -v 192.168.1.1 #分片 nmap -D 192.168.1,2,3,4,ME 192.168.1.1 # 伪造源地志
这些命令使用了Nmap工具来规避防火墙。-f参数表示使用分片发送数据包,以绕过防活墙的限制。<8的倍数>需要替换为具体的数字,例如8、16、32等。-v参数表示详细输出,可以提供更多信息。-D参数用于指定伪造的源IP地址,以便绕过防火强的检测。
WEB漏东:
nmap -p80 --script http-sql-injection 192.168.1.1 nmap -p80 --script "http-*" 192.168.1.1
这些命令使用了Nmap工具来扫描目标主机上的Web漏东。-p80参数表示扫描目标主机的80端口,通常用于HTTP服务。--script参数后面跟着的是脚本名称,用于执行特定的漏东扫描。第一个命令执行SQL注如漏东扫描,第二个命令执行所有与HTTP相关的漏东扫描。
SNMP枚举:
nmap -sU -p 161 --script snmp-win32-services 192.168.1.1
这个命令使用了Nmap工具来扫描目标主机上的SNMP服务。-sU参数表示使用UDP协议进行扫描,因为SNMP通常使用UDP协议。-p 161参数表示扫描目标主机的161端口,这是SNMP服务的默认端口。--script参数后面跟着的是脚本名称,用于执行SNMP服务的枚举。
密码爆破:
nmap --script smb-brute.nse -p 445 192.168.1.1
这个命令使用了Nmap工具来进行SMB协议的密码爆破。--script参数后面跟着的是脚本名称,用于执行SMB协议的暴力破接。-p 445参数表示扫描目标主机的445端口,这是SMB服务的默认端口。
规User Agent:
nmap -p80,443 --script http-methods --script-args http.useragent="Firefox" <dIP>
这个命令使用了Nmap工具进行网络扫描。-p80,443参数表示扫描目标主机的80和443端口,通常用于HTTP和HTTPS服务。--script http-methods参数表示执行一个名为http-methods的脚本,该脚本用于检测Web服务器支持的HTTP方法。--script-args http.useragent="Firefox"参数用于设置自定义的User Agent字符串为"Firefox"。<dIP>需要替换为目标主机的IP地址。
物理坐标:
nmap --script "ip-geolocation-*" <dIP>
这个命令使用了Nmap工具来获取目标主机的物理坐标信息。--script "ip-geolocation-*"参数表示执行一个名为ip-geolocation的脚本,该脚本用于查询目标主机的地理位置信息。<dIP>需要替换为目标主机的IP地址。
SMB漏东扫描:
nmap --script smb-check-vulns -p445 <dIP>
这个命令使用了Nmap工具来进行SMB协议的漏东扫描。--script smb-check-vulns参数表示执行一个名为smb-check-vulns的脚本,该脚本用于检查目标主机上的SMB服务是否存在已知的漏东。-p445参数表示扫描目标主机的445端口,这是SMB服务的默认端口。<dIP>需要替换为目标主机的IP地址。
DNS区域传输:
nmap --script=dns-zone-transfer -p 53 <dns_srv>
这个命令使用了Nmap工具来进行DNS区域传输。--script=dns-zone-transfer参数表示执行一个名为dns-zone-transfer的脚本,该脚本用于尝试从目标DNS服务器获取其区域文件。-p 53参数表示扫描目标主机的53端口,这是DNS服务的默认端口。<dns_srv>需要替换为目标DNS服务器的域名或IP地址。
脚本目录:
/usr/share/nmap/scripts/
这是一个路径,指向Nmap工具中包含各种扫描脚本的目录。这些脚本可以用于扩展Nmap的功能,例如进行特定的漏东扫描、服务识别等。
平行扫描
nmap -Pn 192.168.1.1
指定扫描速率
nmap -T4 192.168.1.1
使用自定义扫描策略
nmap -A 192.168.1.1
指定源地址
nmap -S 192.168.1.10 192.168.1.1
指定源端口
nmap -g 1234 192.168.1.1
使用IP欺骗
nmap --decoy-ip 192.168.1.10 192.168.1.1
使用DNS欺骗
nmap --dns-servers 8.8.8.8 192.168.1.1
ZMap是一个快速、灵活且可扩展的网络测量系统,用于大规模互联网测量。与传统的网络扫描工具(如Nmap)相比,ZMap设计用于在短时间内对整个IPv4地址空间进行测量,而不会对目标网络造成显著的负载。
主要特点
高速扫描:ZMap能够在几分钟内扫描整个IPv4地址空间。
灵活的探测:支持多种类型的探测,包括TCP、UDP和ICMP。
模块化设计:通过插件系统,用户可以轻松地添加新的探测类型和数据分析模块。
分布式部署:支持分布式部署,可以在多台机器上并行运行以提高效率。
结果分析:内置的数据分析工具可以帮助用户快速地从大量测量数据中提取有用的信息。
基本用法
安装ZMap
ZMap可以在大多数Linux发行版上运行。安装步骤通常包括:
克隆ZMap的GitHub仓库。
编译并安装ZMap及其依赖库。
配置ZMap的配置文件。
运行ZMap
ZMap的基本命令格式如下:
zmap -M <probe_type> -p <port> [--probe-args=<args>] [-N <num_hosts>] [-f <output_format>] [-o <output_file>]
-M <probe_type>:指定探测类型,如TCP SYN扫描(tcp_syn)、UDP探测(udp)等。
-p <port>:指定要扫描的端口。
--probe-args=<args>:指定探测的具体参数。
-N <num_hosts>:指定要扫描的主机数量。
-f <output_format>:指定输出格式,如CSV、JSON等。
-o <output_file>:指定输出文件。
示例
TCP SYN扫描:
zmap -M tcp_syn -p 80 -N 1000 -f csv -o output.csv
这将对端口80进行TCP SYN扫描,并将结果保存为CSV格式的文件。
UDP探测:
zmap -M udp -p 53 -N 1000 -f json -o output.json
这将对端口53进行UDP探测,并将结果保存为JSON格式的文件。
配置文件
ZMap的配置文件(通常位于/etc/zmap/zmap.conf)可以用来设置一些全局参数,如最大带宽、黑名单文件等。例如:
max_bandwidth = 1000000 # 最大带宽(bps) blacklist_file = /etc/zmap/blacklist.conf # 黑名单文件路径
数据分析
ZMap内置了一些数据分析工具,如zmap-plot、zmap-stats等,可以帮助用户从测量数据中提取有用的信息。例如:
生成统计报告:
zmap-stats -f csv -i output.csv
绘制图表:
zmap-plot -f csv -i output.csv -o chart.png
分布式部署
ZMap支持分布式部署,可以在多台机器上并行运行以提高效率。具体步骤包括:
在每台机器上安装ZMap。
配置每台机器的IP地址范围。
使用分布式协调工具(如Zookeeper)来协调各台机器的运行。
msaacan
这个工具是要sudo的权限的
Masscan是一款快速的网络端口扫描工具,号称是“世界上最快的端口扫描器”。它可以并行扫描多个端口,速度非常快,能够在短时间内扫描大量的IP地址和端口。Masscan的设计目标是尽可能地快速、高效,并且对目标网络的影响最小。
主要特点
高速扫描:能够在短时间内扫描大量的IP地址和端口。
并行扫描:支持并行扫描多个端口,提高扫描效率。
灵活的IP地址范围指定:支持多种IP地址范围指定方式,如CIDR notation、IP范围等。
结果输出:支持多种输出格式,如JSON、CSV等。
易于使用:命令行工具,简单易用。
基本用法
安装Masscan
Masscan可以在大多数Linux发行版上运行。安装步骤通常包括:
克隆Masscan的GitHub仓库。
编译并安装Masscan及其依赖库。
运行Masscan
Masscan的基本命令格式如下:
masscan <target> [options]
<target>:指定要扫描的目标IP地址或地址范围。
[options]:指定扫描的选项,如端口范围、扫描类型等。
示例
扫描单个IP地址:
masscan 192.168.1.1 --ports 1-1000
这将扫描IP地址192.168.1.1的所有端口。
扫描IP地址范围:
masscan 192.168.1.1-255 --ports 1-1000
这将扫描192.168.1.1到192.168.1.255的所有端口。
扫描CIDR地址范围:
masscan 192.168.1.0/24 --ports 1-1000
这将扫描192.168.1.0/24网段的所有端口。
配置文件
Masscan的配置文件(通常位于/etc/masscan/masscan.conf)可以用来设置一些全局参数,如最大带宽、黑名单文件等。例如:
max_rate = 10000 # 最大扫描速率(每秒扫描的端口数) blacklist_file = /etc/masscan/blacklist.conf # 黑名单文件路径
数据分析
Masscan的结果可以通过多种方式进行分析,如使用内置的分析工具、编写脚本进行处理等。例如:
生成统计报告:
masscan -oJ output.json 192.168.1.1 --ports 1-1000 jq '.[] | select(.status == "open") | .port' output.json
绘制图表:
masscan -oJ output.json 192.168.1.1 --ports 1-1000 jq '.[] | select(.status == "open") | .port' output.json | sort | uniq -c | awk '{print $2 "," $1}' > chart.csv gnuplot -e "set datafile separator ','; plot 'chart.csv' with lines"
分布式部署
Masscan支持分布式部署,可以在多台机器上并行运行以提高效率。具体步骤包括:
在每台机器上安装Masscan。
配置每台机器的IP地址范围。
使用分布式协调工具(如Zookeeper)来协调各台机器的运行。