文章

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 <接口>:指定网络接口(如 eth0wlan0
  • -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探测,兼容多种网络环境。
  • 高速扫描masscanfping 用于大规模网络,减少扫描时间。
  • Windows环境nbtscansmbmap 结合NetBIOS/SMB协议探测,提高针对性。

这些工具均预装在Kali Linux中,可直接通过终端调用,满足从简单主机发现到复杂网络渗透测试的需求。

License:  CC BY 4.0