主動信息收集-發現
- 直接與目標系統交互通信
- 無法避免留下訪問的痕跡
- 使用受控的第三方電腦進行探測
- 使用代理或已經被控制的主機
- 做好被封殺的準備
- 使用噪聲迷惑目標,淹沒真實的探測流量
- 掃描
- 發送不同的探測,根據返回結果判斷目標狀態
發現
- 識別活著的主機
- 潛在的被攻擊目標
- 輸出一個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庫進行調用
- 也可作為單獨的工具使用
- 抓包、分析、創建、修改、注入網絡流量
注:可能運行的時候提示錯誤,這是因為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) #發包