主机探测

二层主机发现

优缺点

二层主机发现中“二层”指的是链路层,即利用OSI中的链路层协议进行主机发现,一般使用ARP协议。ARP协议在局域网通信中使用,利用MAC地址作为对应识别地址,不经过路由,优点是速度快、数据包不会被过滤掉可靠性高;缺点在于无法扫描经过路由的主机,不能跨子网扫描。

arping工具

kali下自带arping工具可完成对应二层主机发现,但无法多个主机同时扫描。

terminal下执行"arping 192.168.X.X"指令会发现该工具会进行不停的扫描。

而"arping -c 1 192.168.X.X"只进行一次探测。

netdiscover工具

netdiscover可以针对特定子网进行多主机扫描。

terminal下直接执行"netdiscover"该工具会从192.168.1.0/16开始一次扫描各个子网。

使用"netdiscover -r 192.168.X.0/24"来指定子网扫描。(“netdiscover -h"帮助列表里各种特定命令要好好研究一下,功能强大。)

三层主机发现

优缺点

三层主机发现一般使用ICMP协议,可以跨子网探测远程主机,速度相对较快,但其依赖的ICMP协议经常被防火墙过滤,速度比不上二层发现。

ping工具

Linux下ping不指定-c参数会一直扫描,Windows下默认进行四次探测。不能用来探测某个子网内的主机存活性。

fping工具

用来针对多个主机(开启状态)同时进行主机发现,“fping -g CIDR”

hping3工具

kali自带的hping3可以发送自定义ICMP数据包对目标进行三层主机发现。

“hping3 -c 1 –icmp 192.168.X.X”

用-h参数来查看可选项

四层主机发现

优缺点

利用传输层协议(一般使用TCP、UDP探测)进行主机发现。可以被探测远程主机,比三层发现更可靠,但是花费的时间更长

nmap工具

kali自带的nmap可以进行二、三、四层的探测,“namp ipaddress"指令以进行对应的端口扫描以及主机发现

hping3工具

使用"hping3 –udp -c 3 (-p 80 指定端口号,默认为0)ipaddress"进行对应的四层主机发现(所探测主机上的防火墙有可能过滤掉探测发出的UDP包 ,导致loss,所以要结合多层主机来进行探测。)

python脚本

各种各样的脚本可以尝试,各自有各自的特点和功能。