1. 程式人生 > >記一次成功的arp流量轉發以及實驗過程中出現的問題

記一次成功的arp流量轉發以及實驗過程中出現的問題

0x00    前言

之前筆者仔細學習了arp協議和arp欺騙的原理和細節,這裡通過kali linux和其他虛擬機器完成一個實驗

實驗環境: kali linux 2018.2(32位)  winxp(32位) ,均為虛擬機器

實驗工具:arpspoof,driftnet(獲取靶機圖片)

0x01    實驗

首先開啟kali linux 和winxp 虛擬機器,xp的命令列輸入

arp -a

在kali中首先可以用fping對區域網進行掃描,這裡由於是已知目標ip,就不多做贅述了。

然後在kali命令列中使用工具arpspoof,實現arp欺騙或者流量轉發。

具體步驟如下:

1、命令列輸入

arpspoof -i (網絡卡) -t ip1(目標主機) ip2(閘道器)

在本實驗中就是

arpspoof -i eth0 -t 192.168.0.5 192.168.0.1

2、觀察目標arp快取的變化

再次在xp機命令列中輸入

arp -a

可見,對於xp來說,已經成功受到arp欺騙,這時如果xp相要通過閘道器訪問網際網路是不行的

3、然後再在kali 命令列中輸入指令

表示資料包可轉發。

4、最後再利用driftnet擷取通過本機網絡卡的圖片,語法為

driftnet -i (interface),在此實驗中即為

driftnet -i eth0

跳出一個框

5、最後使用xp訪問網頁,可以在kali機上看到xp上面獲得的圖片

xp百度搜索 kali 跳出下列介面

然後觀察kali中driftnet的情況

可以看到,確實已經得到了xp上面訪問的圖片

0x02   原理

上面為操作過程,但是原理也同樣重要。

在之前的文章中,筆者寫過有關於arp相關的一些知識,有興趣的還請去看看,說得不清楚或者不正確的可以告訴我,我會及時修改。這裡對arp的原理就不多說了。

首先,arpspoof工具的原理其實就是欺騙IP1,告訴IP1自己是IP2,這裡筆者和網上一些文章所寫有所出入。

在語法   arpspoof -i interface -t ip1 ip2 中,一些文章說是告訴IP2自己是IP1,經過筆者利用arp -a測試,得出的結論是告訴ip1自己是ip2。有興趣的朋友可以試一試,對理解arp原理很有幫助,而且我也有可能寫錯了,瞭解的朋友還請指正。

另外,十分重要的一個指令

允許資料包轉發對於是十分重要的,如果沒有這一條指令,那麼你只是欺騙了內網中的一個使用者,告訴它閘道器是你,然後由於預設不允許轉發,你的主機也不能轉發該使用者的資料包,那麼它將處於斷網狀態,這時他會十分敏感地感受到異常,可能會及時處理異常網路情況,導致本次攻擊失敗。而如果轉發了,經過實測,目標機的網速比起沒有攻擊時會變慢,可能是由於本機將作為一個必經口會多出來一跳,但是我個人感覺這一跳影響不會大,具體為什麼會慢許多,有可能是虛擬機器本身自己的情況,因為就算不實驗,我感覺虛擬機器網速也挺慢。

最後說一說driftnet的原理,其實這個原理最好理解,目標機的資料包都通過你的網絡卡再轉發一次了,那麼它在網上乾的事情你也自然全都瞭解了。聽說還有比driftnet更好用的工具,之後幾天可能會出相關文章。

0x03 總結和本次實驗得失

說實話,本次實驗我個人走了許多誤區,總的來說歸結為以下幾點。

1、arp協議的理解和arpspoof的利用問題

主要還是新工具的使用,arpspoof的引數順序實驗進行了一段時間才出結論,不過也對該知識的理解透徹了不少

2、為何要實現資料包轉發,這個光靠說很難理解它的重要性,但只要你實驗一下你立刻就可以意識到它的意義。僅僅斷網對於進一步的工作是無意義的。

3、虛擬機器、實機的選用

一開始是想用kali來攻擊我的本機的,但僅僅實現了斷網這一步,關於資料包轉發這一步怎麼也沒有做到,可以確定的是那個重要引數確定是設定為1了的,需要轉發。最後看網上說可能是因為實機和虛擬機器間的不同造成的,於是選擇了兩個虛擬機器來進行實驗,之後準備做一下兩個實機間的實驗。

4、區域網的安全問題

可以看到,區域網中本身幾乎是沒有安全可言的,如果你和攻擊者處於同一區域網下,極其難以防禦,所以那些外面的網路不能亂連,尤其是那些隨地可以見的,不要密碼的wifi。