1-主动资产发现
1、内网扫描
基于ARP协议
netdiscover【推荐】
sudo netdiscover -i eth1 -r 192.168.56.0/24
arp-scan 【推荐】
sudo arp-scan -I eth1 -l
基于ICMP协议
nmap -sn
sudo nmap -sn 192.168.56.0/24
-sn 不扫描端口,只ping主机
-PE 通过ICMP echo判定主机是否存活
-n 不反向解析IP地址到域名
大规模扫描(当IP太多时,nmap需要分组,然后串行扫描):
--min-hostgroup 1024 最小分组设置为1024个IP地址,
--min-parallelism 1024 限定探针的数目最小为1024
-oX nmap_output.xml 将结果以XML格式输出,方便过滤筛选结果
fping
命令:fping -a -g 192.168.56.0/24
-a:只显示存活主机;
-g:通过指定起始地址与终止地址产生目标列表。
PS:这里的IP网段不可以使用通配符”*”
2、公网扫描
masscan
masscan是一个 Internet 规模的端口扫描器,可用于 Internet 或内部网络的大规模调查。虽然默认传输速率仅为 100 个数据包/秒,但它可以选择高达 2500 万个数据包/秒的速度,这个速率足以在 3 分钟内扫描 Internet 的一个端口。
基于异步传输和自定义的TCP/IP协议栈
支持多种扫描模式,包括TCP和UDP端口扫描,以及SCTP和ICMP扫描
安装
kali安装
apt-get install -y masscan
源码安装
linux下安装masscan:
$ sudo apt-get install -y git gcc make libpcap-dev
$ git clone https://github.com/robertdavidgraham/masscan
$ cd masscan
$ make -j
功能:超高速主机发现和端口扫描工具,支持TCP/UDP探测,适合大范围快速扫描。
核心选项:
高速扫描子网内存活主机
sudo masscan 192.168.56.0/24 --ping
sudo masscan 192.168.56.0/24 -p 80,22
对大型网络进行快速存活探测
sudo masscan -i eth1 -p0 --rate 10000 192.168.56.0/24
常用命令:
masscan 192.168.56.0/24 -p 80,22
同时指定多个协议和端口
- Masscan默认只会扫描TCP端口,扫描其他协议的端口,需要使用参数指定
Masscan -p80,443,8080 -pU:53 192.168.56.0/24 #同时扫描TCP端口80、443和8080,以及UDP端口53。
常用参数
指定扫描端口
-p 80 指定要扫描的TCP端口,范围写法:-p1-65535
-pU:53 参数指定要扫描的UDP端口,范围写法:-pU:-pU:1-65535
-pS 参数指定要扫描的SCTP端口,范围写法:-pS:1-65535
-pI 参数指定要扫描的ICMP类型,范围写法:-pI:8-0
--ping :指定使用ICMP协议,只探测状态不扫描端口
-pA 参数指定要扫描的标志位类型,范围写法:-pA:SAF,扫描所有带有SYN、ACK和FIN标志位的数据包。
指定扫描范围
--includefile,-iL 从文件中读取要扫描的目标列表
--rotate:使用多个源IP地址进行扫描。
--shard <total shards>/<this shard>:将扫描任务分割为多个片段,同时运行多个Masscan实例
--exclude <IP range>:排除特定的IP地址范围,不进行扫描。
--excludefile <file>:从文件中读取要排除的IP地址列表。
性能优化
--rate 5000 : 发送包的速率,和扫描端口速度正相关
--wait 1000 : 发送完包等待时间,和性能负相关,不过时间越久可以扫到的端口就可以越多
--timeout <time>:设置每个端口的扫描超时时间。
扫描伪装
--adapter-ip 指定发包的伪装ip地址(IP欺骗)
--adapter-port 指定伪装用的发包源端口
--adapter-mac 指定发包的源MAC地址
--router-mac 指定网关MAC地址
输出格式
-oX filename :输出到filename的XML。
-oG filename :输出到filename在的grepable格式。
-oJ filename :输出到filename在JSON格式。
--nmap:生成与Nmap相似的输出格式。
tips:
当用户按下ctrl-c时,扫描将停止,扫描的当前状态将保存在文件“paused.conf”中,该文件在当前目录下。可以使用 --resume选项恢复扫描:
masscan --resume paused.conf
使用配置文件代替参数指定,完成扫描:
- -c 指定加载的配置文件
rate = 100000
output-format = xml
output-status = all
output-filename = scan.xml
ports = 0-65535
range = 0.0.0.0-255.255.255.255
excludefile = exclude.txt
3、嗅探扫描
nmap
nmap -sS -Pn -S <SIP_Address> <ip address>
-Pn 不进行ping通信,隐藏自己
-sI 僵尸扫描,通过僵尸机器对目标发起扫描,目标只会发现僵尸IP
-D <decoy1,decoy2[,ME],...>: 指定一组伪装ip地址,ME填真实地址
-S <IP_Address>: 伪装成其他 IP 地址
--spoof-mac <mac address/prefix/vendor name> : 伪装MAC地址
-e eth0 指定网卡
netdiscover
netdiscover -p
-p表示被动模式,不发送任何数据包,仅仅依靠嗅探发现主机
ai
在 Kali Linux 的官方工具包中,提供了多种用于局域网存活主机探测的工具,以下是常用工具及其核心功能、语法和典型场景:
1. nmap(网络扫描器)
功能:通过多种探测方式(ICMP、ARP、TCP/UDP端口探测等)判断主机是否存活,支持大规模网络扫描。
核心选项:
-sn
:仅主机发现(不扫描端口)-PE/PP/PM
:使用 ICMP Echo/时间戳/地址掩码请求探测-Pn
:将所有主机视为在线(跳过主机发现,直接扫描)--min-rate <数值>
:提高扫描速度(应对高延迟网络)
示例:
nmap -sn 192.168.56.0/24 # 扫描整个子网的存活主机
nmap -PE -n 192.168.1.10-20 # 通过 ICMP Echo 请求探测指定IP段
2. arping(ARP协议探测)
功能:基于 ARP 协议发送请求,快速发现局域网内存活主机(尤其适用于禁用 ICMP 的网络)。
核心选项:
-c <次数>
:指定发送 ARP 请求的次数-I <接口>
:指定网络接口(如eth0
、wlan0
)-S <源IP>
:伪造源IP地址(需root权限)
示例:
arping -c 3 192.168.1.100 # 向目标IP发送3次ARP请求
arping -I wlan0 192.168.56.0/24 # 通过无线接口扫描子网
3. netdiscover(主动/被动ARP扫描)
功能:主动发送 ARP 请求或被动监听网络流量,发现局域网内主机的 IP/MAC 地址对应关系。
核心选项:
-i <接口>
:指定监听接口-r <子网>
:主动扫描指定子网(如192.168.56.0/24
)-p
:被动模式(不发送请求,仅监听ARP响应)
示例:
netdiscover -i eth0 -r 192.168.56.0/24 # 主动扫描子网并显示IP/MAC列表
netdiscover -i eth0 -p # 被动模式捕获网络中的ARP数据包
4. fping(批量Ping工具)
功能:支持同时向多个IP发送ICMP请求,快速判断主机是否响应,适合大规模网络探测。
核心选项:
-a
:仅显示存活主机-g
:生成IP范围(如192.168.1.1-254
)-c <次数>
:每个IP发送的Ping次数
示例:
fping -a -g 192.168.1.1 192.168.1.254 # 扫描C段存活主机
fping -c 2 -a -f ip_list.txt # 从文件读取IP列表并探测
6. nbtscan(NetBIOS名称扫描)
功能:针对Windows主机的NetBIOS协议扫描,获取IP对应的NetBIOS名称(常用于Windows局域网)。
核心选项:
<子网>
:直接指定扫描范围(如192.168.56.0/24
)
示例:
nbtscan 192.168.56.0/24 # 扫描子网内Windows主机的NetBIOS信息
7. hping3(自定义数据包工具)
功能:手动构造TCP/UDP/ICMP数据包,支持灵活的存活探测(如绕过防火墙规则)。
核心选项:
-c <次数>
:发送数据包次数-I <接口>
:指定网络接口-p <端口>
:目标端口(用于TCP/UDP探测)
示例:
hping3 -c 3 -p 80 --syn 192.168.1.100 # 通过SYN包探测80端口是否开放(判断主机存活)
hping3 -c 3 -1 192.168.1.100 # 发送ICMP Echo请求(类似ping)
8. smbmap(SMB服务扫描)
功能:探测局域网内开放SMB服务的主机,常用于Windows网络环境,可结合存活探测。
核心选项:
-H <子网>
:扫描指定子网-u <用户名>
-p <密码>
:认证扫描(可选)
示例:
smbmap -H 192.168.56.0/24 -g # 扫描子网内开放SMB服务的主机
9. Metasploit 辅助模块(主动式扫描)
功能:利用Metasploit框架的辅助模块(如arp_sweep
)进行ARP扫描,支持脚本化和批量探测。
核心选项:
rhosts
:目标子网(如192.168.56.0/24
)
操作流程:
msfconsole
use auxiliary/scanner/discovery/arp_sweep # 加载ARP扫描模块
set rhosts 192.168.56.0/24
run
10. arp-scan(专业ARP扫描工具)
功能:专注于ARP协议的高速扫描工具,支持多线程和自定义参数,输出IP/MAC对应表。
核心选项:
-l
:扫描本地子网(自动获取子网掩码)-t <子网>
:指定目标子网(如192.168.56.0/24
)
示例:
arp-scan -l # 扫描当前接口所在的本地子网
arp-scan -t 192.168.56.0/24 -I eth0 # 通过eth0接口扫描指定大型子网
工具选择建议:
- 快速轻量:优先使用
arping
(ARP探测)或netdiscover
(主动/被动扫描),适合小型局域网。 - 全面扫描:
nmap -sn
结合ICMP和ARP探测,兼容多种网络环境。 - 高速扫描:
masscan
或fping
用于大规模网络,减少扫描时间。 - Windows环境:
nbtscan
或smbmap
结合NetBIOS/SMB协议探测,提高针对性。
这些工具均预装在Kali Linux中,可直接通过终端调用,满足从简单主机发现到复杂网络渗透测试的需求。