Socket基礎九 ARP欺騙程式設計

2021-10-14 15:45:56 字數 1681 閱讀 4200

位於資料鏈路層的arp欺騙(arp spoofing)是針對乙太網位址解析協議(arp)的一種攻擊技術。此種攻擊可讓攻擊者取得區域網上的資料分組甚至篡改分組,且可讓網路上特定電腦或所有電腦無法正常連線。這種假訊息攻擊目前已被用於許多攻擊方式中,如交換式網路環境中的嗅探、「中間人」會話劫持攻擊等。除了應用於網路攻擊之外,arp欺騙還可以作為解決方案應用於在一些要 求強制重定向的業務中,比如在一- 個需要登入的網路中,讓未登入的電腦將其瀏覽網頁強制轉向登入頁面,以便登入後才可使用網路;或者在有些設有備援機制的網路裝置或伺服器中,利用arp欺騙可以在裝置出現故障時將任務重定向到備用的裝置上。

1、位址解析協議

2、arp欺騙的原理

事實上,並不是每次對ip位址的解析都是通過arp請求和應答來完成的。arp請求是一種廣播包,為了提高網路的效率,在每個主機中通常快取著本網路內ip位址和mac位址的對映表,這個快取稱為arp快取。該快取幫助主機在需要時將ip位址對映為mac位址,或是將mac位址對映為ip位址,從而提高網路的效率。除了使用arp快取外,為了避免在區域網中傳送過多的arp廣播包,arp協議還採取了另外兩個措施來提高網路效率:

●響應arp請求的主機快取請求者的ip-mac對映。

●主動的arp應答會被視為有效資訊而被目的主機接受。

arp是乙個無連線的協議,對可靠性的要求不高。傳送錯誤傳送者mac位址的arp請求和arp應答都將使接收到arp包的主機信任這種對映,從而自動更新其arp快取,記錄錯誤的ip-mac位址對映。arp欺騙就是基於這種原理實現的。

3、資料傳送相關函式

winpcap提供了傳送佇列和傳送單包兩種方式進行資料傳送,對於單包傳送,pcap sendpac-ket(函式完成了資料傳送功能,該函式定義如下:

int pcap_ sendpacket (pcap_ t *p,u_ char *buf,int size);

其中: p指定乙個開啟的winpcap會話,並在該會話中傳送資料報,該捕獲控制代碼一般是在pcap_ open live0函式開啟與網路介面卡繫結的裝置時返回的; buf 指向待傳送資料幀的緩衝區;size宣告待傳送緩衝區的長度。

在資料傳送過程中,資料幀中的mac crc校驗不需要計算,該部分內容會由網絡卡驅動透明計算並附加到資料幀尾部。如果傳送成功則返回0,否則返回-1。

4、arp欺騙的實現步驟

實現arp欺騙有兩種方法:

1)傳送錯誤ip-mac對映的arp請求。

2)傳送錯誤ip-mac對映的arp應答。

基於winpcap程式設計框架中的wpcap.dll庫,實現arp欺騙的具體步驟如下:

第一步:呼叫pcap lookupdev()函式獲得主機上的網路裝置,該函式返回個指向主機 上的網路裝置(如網絡卡)的指標。

第二步:選擇待傳送資料報的網路裝置,呼叫pcap open live0函式開啟這個網路裝置,並返回乙個包捕獲描述符pcap t。

第三步:構造乙個arp請求或應答資料報(該原始資料報為鏈路幀,包括幀首部和arp請求或響應協議資料),指明傳送目標,寫入錯誤的ip-mac對映關係。

第四步:根據傳送策略,呼叫pcap sendpacket(函式傳送構造的arp協議資料報。

第五步:呼叫pcap close(函式關閉庫。

kaliarp欺騙注入 kali之ARP欺騙

root localhost macof 洪水式的arp欺騙針對不同的交換機建議多開幾個視窗 root localhost dsniff 監聽網路資料報 dsniff listening on eth0 arpspoof是乙個非常好的arp欺騙的源 程式。它的執行不會影響整個網路的通訊,該工具通過替...

網路基礎 ARP協議

arp協議 arp資料報格式 arp工作過程 arp請求 arp響應 免費arp arp協議 位址解析協議,資料鏈路層在進行資料封裝時,需要目的mac位址,通過目的ip位址獲取目的mac位址的過程是由arp協議實現的。protocol type 三層協議 一般來說是ip協議 operation co...

arp 的基礎概念

打算整理網路這一塊,先把概念寫完。就是有乙個問題,那就是為什麼有ip位址還有mac位址呢?原因是這樣子的,我們知道ip協議是第三層,那麼有乙個問題了,如果只有第三層的ip是否能過識別到主機?答案是不能的啊,第一層和第二層 分別是物理層 資料鏈路層,這兩層的實現協議叫做乙太網,乙太網依靠mac位址,那...