如何利用Arp欺騙進(jìn)行MITM?

2021-03-17    分類: 網(wǎng)站建設(shè)

arp欺騙也是很古老的滲透手段了,主要起著信息收集的作用,比如你可以利用欺騙獲取對方的流量,從流量分析你認(rèn)為重要的信息,例如某某賬號密碼?;蚴抢肁rp攻擊,切斷局域網(wǎng)內(nèi)某一用戶的網(wǎng)絡(luò)訪問(單向欺騙)。下面著重講一下中間人攻擊的原理,配和實(shí)戰(zhàn)演練分析,不對的地方,還請大家多多反饋和包涵!

Arp欺騙

MITM

借用Wiki百科的一個(gè)比喻來理解MITM(中間人攻擊):

假設(shè)愛麗絲(Alice)希望與鮑伯(Bob)通信。同時(shí),馬洛里(Mallory)希望攔截竊會(huì)話以進(jìn)行竊聽并可能在某些時(shí)候傳送給鮑伯一個(gè)虛假的消息。

  1. 首先,愛麗絲會(huì)向鮑勃索取他的公鑰。如果Bob將他的公鑰發(fā)送給Alice,并且此時(shí)馬洛里能夠攔截到這個(gè)公鑰,就可以實(shí)施中間人攻擊。馬洛里發(fā)送給愛麗絲一個(gè)偽造的消息,聲稱自己是鮑伯,并且附上了馬洛里自己的公鑰(而不是鮑伯的)。
  2. 愛麗絲收到公鑰后相信這個(gè)公鑰是鮑伯的,于是愛麗絲將她的消息用馬洛里的公鑰(愛麗絲以為是鮑伯的)加密,并將加密后的消息回給鮑伯。馬洛里再次截獲愛麗絲回給鮑伯的消息,并使用馬洛里自己的私鑰對消息進(jìn)行解密,如果馬洛里愿意,她也可以對消息進(jìn)行修改,然后馬洛里使用鮑伯原先發(fā)給愛麗絲的公鑰對消息再次加密。當(dāng)鮑伯收到新加密后的消息時(shí),他會(huì)相信這是從愛麗絲那里發(fā)來的消息。

我們的身份就是Mallory,我們希望欺騙Alice和Bob,讓其認(rèn)為我們是交互的正確目標(biāo),從而來獲取他們之間交流的信息。

一、Arp攻擊分析

想要進(jìn)行中間人攻擊,先理解最基礎(chǔ)的arp攻擊

Arp協(xié)議

ARP(Address Resolution Protocol,地址解析協(xié)議)是一個(gè)位于TCP/IP協(xié)議棧中的網(wǎng)絡(luò)層,負(fù)責(zé)將某個(gè)IP地址解析成對應(yīng)的MAC地址。

以太網(wǎng)(局域網(wǎng))進(jìn)行信息傳輸時(shí),不是根據(jù)IP地址進(jìn)行通信,因?yàn)镮P地址是可變的,用于通信是不安全的。然而MAC地址是網(wǎng)卡的硬件地址,一般出廠后就具有唯一性。ARP協(xié)議就是將目標(biāo)IP地址解析成MAC地址進(jìn)行驗(yàn)證通信。

Arp通信過程

  1. 每臺(tái)主機(jī)都會(huì)在自己的ARP緩沖區(qū)建立一個(gè)ARP列表(生命周期二十分鐘),用于表示IP地址和MAC地址的對應(yīng)關(guān)系。
  2. 主機(jī)A若想和主機(jī)B通信,首先主機(jī)A會(huì)查詢Arp緩存表(后面稱ip-mac緩存表)是否有B主機(jī)對應(yīng)的ip-mac,有的話就將B主機(jī)的mac地址封裝到數(shù)據(jù)包發(fā)送。若沒有的話,主機(jī)A會(huì)向以太網(wǎng)發(fā)送一個(gè)Arp廣播包,告訴以太網(wǎng)內(nèi)的所有主機(jī)自己的ip-mac,并請求B主機(jī)(以ip來表示B主機(jī))的mac地址。當(dāng)B主機(jī)收到Arp廣播包后,確認(rèn)A主機(jī)是想找自己的mac地址,就會(huì)對A主機(jī)進(jìn)行回應(yīng)一個(gè)自己的mac地址。A主機(jī)就會(huì)更新自己的ip-mac緩存表,同時(shí)B主機(jī)也會(huì)接收A主機(jī)的ip-mac對應(yīng)關(guān)系到自己的ip-mac緩存表。

Arp協(xié)議缺陷

ARP協(xié)議信任以太網(wǎng)所有的節(jié)點(diǎn),效率高但是不安全。這份協(xié)議沒有其它字協(xié)議來保證以太網(wǎng)內(nèi)部信息傳輸?shù)陌踩?,它不?huì)檢查自己是否接受或發(fā)送過請求包,只要它就收到的arp廣播包,他就會(huì)把對應(yīng)的ip-mac更新到自己的緩存表

網(wǎng)關(guān)的理解

在wiki中這樣定義網(wǎng)關(guān):

在計(jì)算機(jī)網(wǎng)絡(luò)中,網(wǎng)關(guān)(英語:Gateway)是轉(zhuǎn)發(fā)其他服務(wù)器通信數(shù)據(jù)的服務(wù)器,接收從客戶端發(fā)送來的請求時(shí),它就像自己擁有資源的源服務(wù)器一樣對請求進(jìn)行處理。有時(shí)客戶端可能都不會(huì)察覺,自己的通信目標(biāo)是一個(gè)網(wǎng)關(guān)

區(qū)別于路由器(由于歷史的原因,許多有關(guān)TCP/IP的文獻(xiàn)曾經(jīng)把網(wǎng)絡(luò)層使用的路由器(英語:Router)稱為網(wǎng)關(guān),在今天很多局域網(wǎng)采用都是路由來接入網(wǎng)絡(luò),因此現(xiàn)在通常指的網(wǎng)關(guān)就是路由器的IP),經(jīng)常在家庭中或者小型企業(yè)網(wǎng)絡(luò)中使用,用于連接局域網(wǎng)和Internet。

網(wǎng)關(guān)也經(jīng)常指把一種協(xié)議轉(zhuǎn)成另一種協(xié)議的設(shè)備,比如語音網(wǎng)關(guān)。

網(wǎng)關(guān)可以把內(nèi)網(wǎng)ip轉(zhuǎn)化為外網(wǎng)ip,從而向服務(wù)器發(fā)出請求。也可以把外網(wǎng)Ip獲得的數(shù)據(jù)包轉(zhuǎn)換成內(nèi)網(wǎng)ip發(fā)給內(nèi)網(wǎng)主機(jī)。

Arp攻擊原理

根據(jù)以上說的arp協(xié)議缺陷,如果我們冒充網(wǎng)關(guān)主機(jī)C,不停的向以太網(wǎng)發(fā)送自己的ARP廣播包,告知自己的ip-mac,此時(shí)其它主機(jī)就會(huì)被欺騙,更新我們C的ip-mac為網(wǎng)關(guān)主機(jī)的ip-mac,那么其它主機(jī)的數(shù)據(jù)包就會(huì)發(fā)送到C主機(jī)上,因?yàn)闆]有發(fā)給真正的網(wǎng)關(guān),就會(huì)造成其它主機(jī)的網(wǎng)絡(luò)中斷。

 

二、Arp攻擊實(shí)操

環(huán)境

攻擊主機(jī)A:Kali—>ip: 192.168.11.106
被攻擊主機(jī)B: windows 7—>ip: 192.168.11.105
網(wǎng)關(guān)主機(jī)C: 192.168.11.1

我的Kali是在虛擬機(jī)下,需要Bridge連接保證機(jī)器在同一網(wǎng)段,很多人用Nat連接來轉(zhuǎn)發(fā),在實(shí)戰(zhàn)的輕快下,需要更改虛擬機(jī)的網(wǎng)絡(luò)配置。

網(wǎng)絡(luò)配置如圖:
Arp欺騙

實(shí)操

這里模擬真實(shí)環(huán)境,攻擊主機(jī)A和被攻擊主機(jī)B在同一局域網(wǎng)下。
1. 先用命令查看一下ip是否正確:
Kali:
Arp欺騙
可以看到ip是192.168.11.106
Windows7:
Arp欺騙
ip是192.168.11.105,網(wǎng)關(guān)地址是192.108.11.1
2. 用nmap查看當(dāng)前網(wǎng)端的活躍主機(jī)

nmap -sF 192.168.11.0/24

Arp欺騙

掃描得到如圖活躍主機(jī),可以看到我們的主機(jī)B。當(dāng)然獲取Ip的途徑不可能這么簡單,你也可以用fping的方法來分析,之前我用fping探測局域網(wǎng)windows10的主機(jī),發(fā)現(xiàn)Ping不通,win10防火墻還是有點(diǎn)東西。不過你可以根據(jù)fping的發(fā)送包來推斷主機(jī)是否真正存活,具體可以google一下fping的用法,這里給推薦一個(gè)鏈接

Kali信息收集:Fping

3. 檢查被攻擊主機(jī)是否可以正常上網(wǎng)
Arp欺騙
百度正常訪問

4. 利用Arpspoof進(jìn)行欺騙攻擊
Kali自帶的Arpspoof可以很好的進(jìn)行欺騙,man arpspoof查看官網(wǎng)手冊(網(wǎng)上翻譯):

名字 
  arpspoof # 截獲交換局域網(wǎng)中的數(shù)據(jù)包

用法
  arpspoof [-i interface] [-c own|host|both] [-t target] [-r] host

描述
  # arpspoof通過偽造的ARP響應(yīng)包改變局域網(wǎng)中從目標(biāo)主機(jī)(或所有主機(jī))到另一個(gè)主機(jī)(host)的數(shù)據(jù)包轉(zhuǎn)發(fā)路徑。這是交換局域網(wǎng)中嗅探網(wǎng)絡(luò)流量的一種極為有效的方法。內(nèi)核IP轉(zhuǎn)發(fā)(或如fragrouter這樣的、用戶層面的、能完成同樣功能的軟件)必須提前開啟。

參數(shù)
  -i interface
    # 指定要使用的接口(即指定一塊網(wǎng)卡)

  -c own|host|both
    # 指定在恢復(fù)ARP配置時(shí)使用的硬件地址;當(dāng)在清理(cleaning up)時(shí),數(shù)據(jù)包的源地址可以用自己的也可以用主機(jī)(host)的硬件地址。使用偽造的硬件地址可能導(dǎo)致某些配置下的交換網(wǎng)絡(luò)、AP網(wǎng)絡(luò)或橋接網(wǎng)絡(luò)通信中斷,然而它比起默認(rèn)值————使用自己的硬件地址要工作地更為可靠。

  -t target
    # 指定一個(gè)特殊的、將被ARP毒化的主機(jī)(如果沒有指定,則認(rèn)為是局域網(wǎng)中所有主機(jī))。重復(fù)可以指定多個(gè)主機(jī)。

  -r 
    # 毒化兩個(gè)主機(jī)(目標(biāo)和主機(jī)(host))以捕獲兩個(gè)方向的網(wǎng)絡(luò)流量。(僅僅在和-t參數(shù)一起使用時(shí)有效)

  host  #你想要截獲數(shù)據(jù)包的主機(jī) (通常是網(wǎng)關(guān))。

5. 主機(jī)A作為網(wǎng)關(guān)主機(jī)欺騙
命令語句

arpspoof -i eth0 -t 192.168.11.105 192.168.1.1

Arp欺騙
執(zhí)行命令,Kali會(huì)向主機(jī)B發(fā)送ARP響應(yīng)包,響應(yīng)包的內(nèi)容是Kali的ip-mac地址,而響應(yīng)包里的ip則是網(wǎng)關(guān)主機(jī)ip地址。每一行代表一個(gè)響應(yīng)包。從左到右:自己Kali的mac、主機(jī)B的mac、幀類型碼(0806,代表ARP包)、包大小、包內(nèi)容。

6. 被攻擊主機(jī)B網(wǎng)絡(luò)中斷
我們在B主機(jī)用arp -a查看一下是否欺騙成功
Arp欺騙
可以看到,網(wǎng)關(guān)主機(jī)C和攻擊者主機(jī)A的mac地址相同,欺騙成功

在kali終端輸入control + c 可以停止,清空并恢復(fù)原來正確的arp相應(yīng)包,主機(jī)重新恢復(fù)聯(lián)網(wǎng)狀態(tài)

 

三、基于Arp攻擊理解下的MITM

在前面Arp成功進(jìn)行攻擊后,我們開始作為中間人進(jìn)行欺騙,需要設(shè)置ip轉(zhuǎn)發(fā),獲取目標(biāo)主機(jī)B的流量,其后配合其它工具(drifnet)等進(jìn)行進(jìn)一步嗅探。

值得一提的是,我們的Arp攻擊也是欺騙,但它是單向欺騙,冒充網(wǎng)關(guān)主機(jī)來欺騙目標(biāo)主機(jī)。實(shí)際中,中間人攻擊一般是雙向欺騙。即作為中間人,主機(jī)A雙向欺騙主機(jī)B與C獲得通信內(nèi)容,但是不破壞通信數(shù)據(jù)的傳輸。為了不影響B(tài)與C傳輸?shù)臄?shù)據(jù)丟失,主機(jī)A開啟ip轉(zhuǎn)發(fā),開啟后來自B主機(jī)的數(shù)據(jù)包經(jīng)過A主機(jī)的Kali后轉(zhuǎn)發(fā)給主機(jī)C。欺騙兩個(gè)主機(jī)B和C后,我們就能嗅探到雙向數(shù)據(jù)包。

如果你的kali在虛擬機(jī),那么以下步驟均需要一個(gè)外置的usb無線網(wǎng)卡。在虛擬機(jī)中,網(wǎng)絡(luò)的連接比較復(fù)雜,而Ip轉(zhuǎn)發(fā)很大程度上取決于網(wǎng)卡性能。如果你是在虛擬機(jī)中Kali進(jìn)行轉(zhuǎn)發(fā),基本都會(huì)失敗,因?yàn)楣P記本的內(nèi)置無限網(wǎng)卡滿足不了需求。由于放假在家我的usb無線網(wǎng)卡落在了寢室..下面僅以文字給大家介紹攻擊的思路和流程,還請見諒…….

linux的ip轉(zhuǎn)發(fā)

linux因?yàn)橄到y(tǒng)安全,是不支持IP轉(zhuǎn)發(fā)的,其配置文件寫在/proc/sys/net/ipv4的ip_forward中。默認(rèn)為0,需要修改為1。

開啟方法大致有兩種:

  1. 只接進(jìn)入文件修改
    cd /proc/sys/net/ipv4
    ls
    cat ip_forward
    #顯示結(jié)果為0
    echo 1 > ip_forward
    cat ip_forward
    #顯示結(jié)果為1,修改成功
    
  2. 使用echo
    # echo "1"> /proc/sys/net/ipv4/ip_forward
    

對網(wǎng)關(guān)和目標(biāo)主機(jī)B的雙向欺騙

這里進(jìn)行一步執(zhí)行,選用第二種Ip轉(zhuǎn)發(fā)手段
命令如下:

root@kali:~# echo 1 > /proc/sys/net/ipv4/ip_forward && arpspoof -i eth0 -t 192.168.11.105 -r 192.168.11.1

利用driftnet進(jìn)程監(jiān)控

持續(xù)保持欺騙,再重新打開一個(gè)命令終端。
輸入命令:

root@kali:~# driftnet -i eth0

跳出來的drift窗口即會(huì)顯示本機(jī)正在瀏覽的圖片

使用ettercap工具獲取密碼

  1. 打開新的終端,輸入 attercap -G 啟動(dòng)工具
  2. 點(diǎn)擊Sniff -> unified sniffing,選擇要抓包的網(wǎng)卡,默認(rèn)是自己的網(wǎng)卡eth0,點(diǎn)確定
  3. 然后單擊Hosts -> Scan for host,待掃描完成后再次Scan for host,此時(shí)可以看到ettercap-NG已經(jīng)掃描的主機(jī)列表
  4. 選擇攻擊目標(biāo),點(diǎn)擊192.168.11.105的ip地址,點(diǎn)擊Add to Target 1 ,然后選擇網(wǎng)關(guān)的ip地址192.168.11.1,點(diǎn)擊Add to Target 2
  5. 明確目標(biāo)攻擊方式:點(diǎn)擊Mitm -> arp poisoning -> Sniff remote connections -> 確定
  6. 開始監(jiān)聽:start -> Start sniffing

工具就會(huì)抓取主機(jī)B的數(shù)據(jù)包和主機(jī)C返回的數(shù)據(jù)包,分析http post請求可以判斷賬號密碼信息。

urlsnarf:獲得受害者的HTTP請求

輸入命令:

root@kali:~# urlsnarf -i eth0

使用Wireshark抓包

使用Wireshark抓取所有的數(shù)據(jù)包,過濾分析不同請求,類似于ettercap。
例如,要找HTTP POST請求,過濾,查看明文密碼,一般是以POST形式上傳的賬號密碼。

 

四、關(guān)于Arp欺騙的防御

Arp欺騙
防御原理很簡單,就是不讓攻擊者肆意表明自己就是網(wǎng)關(guān)主機(jī)。我們進(jìn)入網(wǎng)關(guān)主機(jī)(路由器后臺(tái)地址),網(wǎng)絡(luò)參數(shù)一欄一般有ip與mac綁定一欄,把網(wǎng)關(guān)的mac地址與網(wǎng)關(guān)地址綁定就好了。只要確定了對應(yīng)關(guān)系,當(dāng)攻擊者發(fā)布arp相應(yīng)包時(shí),就不會(huì)更新相應(yīng)的ip-mac緩存表。

我們重新進(jìn)行欺騙后,再查詢B主機(jī)的arp緩存表,如圖
Arp欺騙
網(wǎng)關(guān)主機(jī)的mac并沒有被欺騙成功,我們的防御達(dá)到目的

如果想知道對方主機(jī)的ip地址其實(shí)也容易。我們在Cmd下鍵入命令arp -a看一下相同mac,就找到了攻擊者。

 

總結(jié)

  • 公共區(qū)域的wifi存在釣魚風(fēng)險(xiǎn)
  • 在傳輸數(shù)據(jù)過程中盡量使用加密程序
本文由安全客原創(chuàng)發(fā)布
轉(zhuǎn)載,請參考轉(zhuǎn)載聲明,注明出處: https://www.anquanke.com/post/id/151762

新聞名稱:如何利用Arp欺騙進(jìn)行MITM?
網(wǎng)頁路徑:http://www.bm7419.com/news26/105326.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供軟件開發(fā)、做網(wǎng)站網(wǎng)站策劃、網(wǎng)站維護(hù)網(wǎng)站收錄、手機(jī)網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

手機(jī)網(wǎng)站建設(shè)