- 直接与目标系统交互通信
- 无法避免留下访问的痕迹
- 使用受控的第三方电脑进行探测
- 使用代理或已经被控制的主机
- 做好被封杀的准备
- 使用噪声迷惑目标,淹没真实的探测流量
- 扫描
- 发送不同的探测,根据返回结果判断目标状态
阶段一:主机发现
1. 简介
- 识别或者的主机
- 潜在的被攻击目标
- 输出一个IP地址列表
- 2、3、4层发现
使用ARP协议
- 优点扫描速度快、可靠
- 缺点不可路由
2.1 ARP协议
1.分别arping网络里一个存在的ip与不存在的ip:
抓包分析:
广播发送,但只有目的IP地址会回包,告诉主机它的mac地址:
网络中无此ip地址,无回应:
2. arping 192.168.1.1 -d
可发现ARP欺骗(若发现不同的mac地址却是同一个ip)
甚至,如果该mac地址与网关的地址相同,则可能存在中间人攻击。该主机可能会伪装为网关,窃取本机发往真正网关的信息。
使用管道:
使用管道来使结果更加清晰,方便后面进行脚本操作:
实验:编写脚本:
编写shell脚本帮助我们提高效率,锻炼编写脚本的能力。
Arping指令虽然好用,但只能ping单个的ip地址,无法ping整个网段,这在实际渗透测试的工作量中是不可接收的,因此我们尝试编写脚本来使它一次检查整个网段:
Shell脚本:
脚本第一部分为错误提示与引导。正式代码为扫描本地子网,提取ip地址,获得网卡的网络地址段,然后从1到254用arping循环查询。
运行脚本:
所发现的活的ip地址:
抓包结果如下图:
抓包可观察到脚本确实帮我们用arping查询了整个网段:
我们还可改动脚本,将查询结果保存起来,然后编写另一个脚本,在任意时间可快速重新查询以前保存的活的ip是否还存在:
结果如下:
2.2 NMAP
主机扫描
• nmap 1.1.1.1-254 –sn (不做端口扫描)
• nmap -iL iplist.txt -sn
此指令也可对保存的ip进行二次扫描:
严格意义上说,指令不仅仅进行了ARP操作,我们只对一个ip进行扫描,并抓包分析,可以看出,不仅进行了ARP扫描,还进行了dns的反向解析:
2.3二层发现补充
除了上面的常用方法,我们还可采用以下的方式:
Netdiscover
专用于二层发现
可用无线和交换网络环境
主动和被动探测
主动:
netdiscover -i eth0 -r 1.1.1.0/24
netdiscover -l iplist.txt
被动:
netdiscover -p
主动ARP容易触发报警
Scapy
作为python库进行调用
也可作为单独的工具使用
抓包,分析,创建,修改,注入网络流量
三层发现及实验
优点:
(与二层相比)可路由
速度比较快
缺点:
速度比二层慢
经常被边界防火墙过滤
IP,icmp协议