一. 二层发现
二层发现使用arp协议;网段内广播;可查看是否有回包或直接抓包查看;优点:快、可靠;缺点:仅能检测同网段内主机。
1. arping
-c:发包次数 -w:超时时间
截取查看arping主机ip地址:
2. nmap
-sn:只主机发现,不端口扫描;
扫描任意连续的ip:135-138: 或创建iplist.txt存放ip135-138,扫描:
扫描文件:-iL后加从文件中输入域名或ip地址
3. netdiscover
netdiscover:专用与二层发现;用于无线和交换网络环境中;分为主动和被动检测,主动检测易触发报警。
主动探测:扫描一个网段:-i:指定网卡接口 -r指定网段range-l:扫描给定文件中的IP或域名由结果可知,存活主机ip为192.168.40.136;(1为物理机虚拟网卡、2为网关、254为边界路由):
被动探测:可以在左侧用netdiscover -p动态检测,同时在右侧执行ping命令。
4.scapy
设置arping目标主机ip地址并检查:执行arping扫描:
二、三层发现
使用ip/icmp包
优点:相对二层发现可以路由;
缺点:相对二层网络发现速度慢,经常会被防火墙过滤;
1. Ping
ping命令发送icmp包。
截取存活主机ip:
traceroute追踪路由:
2. fping
3. Hping3
(由于默认发tcp包,-c表示发包次数)
4. scapy
三、四层发现
使用tcp/udp;
优点:可以路由且可靠;不太可能被防火墙过滤;
缺点:基于状态过滤的防火墙可能过滤扫描,全端口扫描速度慢;
1. scapy
执行:
或者:q=sr1(IP(dst=‘192.168.40.136’)/TCP(flags=‘S’))
Udp: q=sr1(IP(dst=‘192.168.40.136’)/UDP(dport=‘53’)) \x00代表最小长度
2. nmap
查询主机的TCP80端口是否有ACK回应
-P是指Port端口
-A是查询TCP三次握手时是否会有ACK响应
-sn是指不扫描端口,仅查询主机是否存活
-PA80:查询80端口是否回应ack:
-IL:查询特定文件中的ip
默认主机存活,扫描特定端口:
3. dimtry
4. amap:查看banner版本信息
5. 识别操作系统识别
(1)scapy:
(2)nmap
nmap -O 192.168.40.136:
四.僵尸扫描
僵尸扫描分为七步,其目的是通过僵尸主机隐藏扫描主机同时检测目标主机端口是否存活,僵尸扫描为端口扫描的一种,默认目标主机存货检测端口,但也可以用于检测主机是否存活,僵尸扫描不能获得banner信息。
①扫描主机 ->> 僵尸主机: SYN-ACK;
②僵尸主机->>扫描主机: RST,IPID=y;
③扫描主机–>>目标主机: Z(IP),SYN;
④目标主机–>>僵尸主机:SYN-ACK;
⑤僵尸主机–>>目标主机:RST,IPID=y+1;
⑥扫描主机 ->> 僵尸主机: SYN-ACK;
⑦僵尸主机->>扫描主机: RST,IPID=y+2;
上述步骤中,将设在第二步中扫描主机收到来自僵尸主机的RST包中IPID号为y,若扫描主机最终在第七步获得的回复包中IPID号为y+2,则表示僵尸主机在第四步中收到来自目标主机的回复包并给与回复,即目标主机相应端口开放;反之,若扫描主机最终在第七步获得的回复包中IPID号为y+1,则表示僵尸主机与目标主机互动失败,目标主机相应端口关闭。