网络环境由终端设备、网络介质和网络设备构成。通过研究网络环境,可以了解网络运行情况。Nmap为此提供了大量的脚本,用于探测网络的运行模式。
- 嗅探目标
- nmap -sL --script=targets-sniffer --script-args=newtargets,targets-sniffer.timeout=<time>,targets-sniffer.iface=<interface>
- 监听广播包
- nmap --script broadcast-listener -e <接口>
- 发现最大传输单元
- nmap --script path-mtu [target]
- 探测防火墙规则
- nmap --script=firewalk --traceroute [target]
- firewalk.max-retries:指定允许重传的最大次数。
firewalk.recv-timeout:指定循环捕获包持续的时间,单位为ms。
firewalk.probe-timeout:指定探针有效时间,单位为ms。
firewalk.max-active-probes:指定探针并行的最大数。
firewalk.max-probed-ports:指定探测每个协议的最大端口数。如果设置为-1,将扫描每个被过滤的端口。
- firewalk.max-retries:指定允许重传的最大次数。
- nmap --script=firewalk --traceroute [target]
- 获取路由跟踪信息
- nmap --script targets-traceroute --script-args newtargets --traceroute [target]
- nmap --script targets-traceroute --script-args 192.168.198.1 --traceroute 192.168.0.104 -p 80
- nmap --script targets-traceroute --script-args newtargets --traceroute [target]
- 获取路由跟踪位置
- nmap --traceroute --script traceroute-geolocation [target]
- 广播Ping发现主机
- nmap -e eth0 --script broadcast-ping <target> [--ttl <ttl>] [--data-length<payload_length>]
- 其他参数
- broadcast-ping.timeout:等待响应时间,单位为s,默认为3s。
broadcast-ping.num_probes:指定要发送ICMP探测包的数量,默认为1。
broadcast-ping.interface:指定用于此脚本的接口,默认为所有接口。 - eg:nmap -e eth0 --script broadcast-ping 192.168.59.0/24
- nmap -e eth0 --script broadcast-ping <target> [--ttl <ttl>] [--data-length<payload_length>]
- 探测目标是否启用了IP转发
- nmap -sn --script ip-forwarding --script-args='target=[域名]' [目标]
- 基于EIGRP获取路由信息 增强内部网关路由协议(Enhanced Interior Gateway Routing Protocal,EIGRP)是思科公司的内部协议,该协议能够以较少的带宽更新路由信息。
- nmap --script=broadcast-eigrp-discovery <targets>
- nmap --script=broadcast-eigrp-discovery <targets> -e wlan0
- 其他参数
- roadcast-eigrp-discovery.as:设置自治系统值,如果没有设置,脚本将监听224.0.0.10获取自治系统值。
broadcast-eigrp-discovery.timeout:指定自治系统发布和更新的最长监听时间。默认值为10,单位为s(秒)。
broadcast-eigrp-discovery.kparams:指定自治系统发布和更新的最大参数量,默认值为101000。
broadcast-eigrp-discovery.interface:指定发送的接口
- roadcast-eigrp-discovery.as:设置自治系统值,如果没有设置,脚本将监听224.0.0.10获取自治系统值。
- 借助OSPF2协议探测网络
- nmap --script=broadcast-ospf2-discover
- 其他参数
- broadcast-ospf2-discover.md5_key:如果公开了消息摘要身份验证,则使用MD5摘要密钥。
broadcast-ospf2-discover.router_id:指定路由ID,默认为0.0.0.1。
broadcast-ospf2-discover.timeout:脚本在其他路由器上等待OSPF返回Hello消息的时间,默认为10s。该值将与Hello消息默认的间隔值进行比较。
broadcast-ospf2-discover.interface:指定强制发送所使用的网络接口。如果没有使用,则使用-e指定的网络接口。
- broadcast-ospf2-discover.md5_key:如果公开了消息摘要身份验证,则使用MD5摘要密钥。
- 广播唤醒休眠主机
- nmap --script broadcast-wake-on-lan
- 其他参数
- broadcast-wake-on-lan.address:接收WOL包的广播地址。
broadcast-wake-on-lan.MAC:要唤醒的远程系统的MAC地址。
- broadcast-wake-on-lan.address:接收WOL包的广播地址。
- 发现多宿主主机 多宿主主机是指一个主机安装多个网络接口,连接到一个或者多个网络中。
- nmap --script duplicates,nbstat,ssl-cert <ip>
- 利用IGMP发现主机
- nmap --script broadcast-igmp-discovery -e <interface> --script-args='broadcast-igmp-discovery.version=all, broadcast-igmp-discovery.timeout=3'
- 其他参数
- broadcast-igmp-discovery.timeout:指定报告等待的时间,单位为s,默认是5s。
broadcast-igmp-discovery.version:指定使用的IGMP版本。其中,可以指定的版本有1、2、3或all,默认是2。
broadcast-igmp-discovery.interface:指定使用的网络接口。
broadcast-igmp-discovery.mgroupnamesdb:指定多播组名的数据库。
- broadcast-igmp-discovery.timeout:指定报告等待的时间,单位为s,默认是5s。
- 广播发现PPPoE服务器
- nmap --script broadcast-pppoe-discover <target>
- 获取ASN信息
- 获取ASN列表 nmap --script targets-asn --script-args
- 其他参数 targets-asn.asn:指定搜索的ASN。
targets-asn.whois_server:指定使用的WHOIS服务器,默认是asn.shadowserver.org。
targets-asn.whois_port:指定使用的WHOIS端口,默认是43。
- 其他参数 targets-asn.asn:指定搜索的ASN。
- 获取IP地址的ASN编号 nmap --script asn-query target
- 获取ASN列表 nmap --script targets-asn --script-args
- 提取IPv6地址的编码信息
- nmap -6 --script address-info target、
- 枚举EAP提供的认证方法
- nmap --script eap-info --script-args -e <interface>
- 其他参数
- eap-info.identity:指定认证方法的ID。
eap-info.scan:指定测试认证列表。其中,4表示MD5;13表示TLS;25表示PEAP。默认为TLS、TTLS、PEAP和MSCHAP。
eap-info.interface:指定扫描使用的网络接口。
eap-info.timeout:指定扫描允许的最大超时值,默认是10s。
- eap-info.identity:指定认证方法的ID。