主动信息收集-发现
- 直接与目标系统交互通信
- 无法避免留下访问的痕迹
- 使用受控的第三方电脑进行探测
- 使用代理或已经被控制的主机
- 做好被封杀的准备
- 使用噪声迷惑目标,淹没真实的探测流量
- 扫描
- 发送不同的探测,根据返回结果判断目标状态
发现
- 识别活着的主机
- 潜在的被攻击目标
- 输出一个IP地址列表
- 2、3、4层发现
二层发现:
- 优点:扫描速度快,可靠
- 缺点:不可路由
- arp协议:
- 抓包
案例演示:
arping 192.168.0.1 -c 10 (查看局域网主机是否存活,-c是探测次数)
arping -d ##这个命令可以检测ARP攻击,看同一个地址是否为同一个mac
arping -c 5 192.168.0.1 | grep "bytes from" | cut -d" " -f 5 | cut -d "(" -f 2 | cut -d")" -f 1 #通过管道符将输出结果只输出IP地址
二层发现工具
nmap
nmap -sn 192.168.0.0/24 #sn只做ping扫描,不做端口扫描
- 也可以实现准备好需要扫描的IP地址进行扫描
- nmap很强大,后面详细介绍
.NETdiscover
- 专用于二层发现
- 可用于无线和交换网络环境
- 主动和被动探测
案例展示:
主动发现:
netdiscover -i eth0 -r 192.168.0.0/24
- 也支持探测地址列表
netdiscover -l addr.txt
被动发现
netdiscover -p #将网卡置于混杂模式,去被动侦听arp的包
Scapy
- 作为Python/ target=_blank class=infotextkey>Python库进行调用
- 也可作为单独的工具使用
- 抓包、分析、创建、修改、注入网络流量
注:可能运行的时候提示错误,这是因为python的matplotlib库的问题,直接输入以下命令更新一下即可;
python3 -m pip install --upgrade matplotlib
apt-get install python-gnuplot #可以消除一些软件打开的警告
ARP().display() #查看ARP()函数的调用信息
>>> arp=ARP() #将ARP()属性赋给arp这个变量
>>> arp.pdst="192.168.0.1" #给目的地址赋值
>>> arp.display() #查看arp变量的属性
###[ ARP ]###
hwtype= 0x1
ptype= IPv4
hwlen= None
plen= None
op= who-has
hwsrc= 00:0c:29:ef:99:45
psrc= 192.168.0.121
hwdst= 00:00:00:00:00:00
pdst= 192.168.0.1
sr1(arp) #发包