基礎知識
網關是啥?
網關是工作在OSI七層模型中的傳輸層或者應用層,用於高層協議的不同
網絡之間的連接,網關就好比一個房間通向另一個房間的一扇門。
ARP協議
ARP欺騙原理
ARP也分為單向欺騙和雙向欺騙
假設主機 A 192.168.1.2,B 192.168.1.3,C 192.168.1.4; 網關 G 192.168.1.1; 在同一局域網,主機A和B通過網關G相互通信,就好比A和B兩個人寫信,由郵遞員G送信,C永遠都不會知道A和B之間說了些什么話。但是並不是想象中的那么安全,在ARP緩存表機制存在一個缺陷,就是當請求主機收到ARP應答包后,不會去驗證自己是否向對方主機發送過ARP請求包,就直接把這個返回包中的IP地址與MAC地址的對應關系保存進ARP緩存表中,如果原有相同IP對應關系,則原有的會被替換。
這樣C就有了偷聽A和B的談話的可能,繼續思考上面的例子:
C假扮郵遞員,首先要告訴A說:“我就是郵遞員” (C主機向A發送構造好的返回包,源IP為G 192.168.1.1,源MAC為C自己的MAC地址),愚蠢的A很輕易的相信了,直接把“C是郵遞員”這個信息記在了腦子里;C再假扮A,告訴郵遞員:“我就是A” (C向網關G發送構造好的返回包,源IP為A 192.168.1.2,源MAC地址為自己的MAC地址),智商捉急的郵遞員想都沒想就相信了,以后就把B的來信送給了C,C當然就可以知道A和B之間聊了些什么
上面ABCG的故事就是ARP雙向欺騙的原理了
ARP單向欺騙就更好理解了,C只向A發送一個返回包,告訴A:G 192.168.1.1 的MAC地址為 5c-63-bf-79-1d-fa(一個錯誤的MAC地址,C的MAC地址),A把這個信息記錄在了緩存表中,而G的緩存表不變,也就是說,A把數據包給了C,而G的包還是給A,這樣就是ARP單向欺騙了。
局域網DNS劫持(失敗)
局域網內的DNS劫持可以依靠arp欺騙網關來達到修改dns請求,將其請求到我們指定的網站。
這里我們使用bettercap來完成局域網DNS劫持實驗
kali_hacker:192.168.41.130
win7_hackde:192.168.41.128
win10_apache:100.66.10.247
安裝bettercap
apt-get install bettercap
創建一個 dns.conf 文件,下面這個dns語句的意思是:所有的.com結尾的網站全部解析到我的本地Http服務器, .*\.com就是一個正則,也可以是自定義的正則
169.254.197.219 .*\.com
查看網關地址
netstat -rn route -n
因為安裝的使bettercap2.x,感覺沒有1.x操作簡單,完全變了。所以重新找到一篇文章實驗:
dns欺騙這里有一個前提,那就是局域網內的主機的DNS服務器是局域網內的網關,那樣我們才能進行DNS欺騙,如果DNS服務器設置的是公網的DNS服務器,比如設置的谷歌的8.8.8.8 DNS服務器的話,這樣是不能進行DNS欺騙的。
ipconfig/all #查看DNS服務器
DNS欺騙之前,我們先得進行ARP欺騙,就是先欺騙主機讓其認為網關就是我(攻擊機)。然后由於主機的DNS服務器就是網關,所以主機會向我們發送DNS請求,這樣我們就可以進行欺騙了。
set arp.spoof.targets 192.168.41.128 #設置arp欺騙的主機以逗號分隔,默認是整個子網 arp.spoof on #先開啟arp欺騙 set dns.spoof.domains www.baidu.com,www,taobao.com #設置要欺騙的域名,多個域名用,分開,如果要欺騙所有的域名的話,為 * set dns.spoof.address 100.66.10.247 #設置將要欺騙的域名轉換成對應的ip地址 dns.spoof on #開啟dns欺騙,www.baidu.com和www.taobao.com對應的ip是100.66.10.247
使用bettercap2.x實驗失敗,一直返回endpoint。
還是使用ettercap實驗
成功實驗
修改/etc/ettercap/etter.dns文件
開啟ettercap
ettercap -G
選擇模式默認全局Sniff->Unified sniffing
選擇hosts->hosts-lists
添加到Target1
先arp毒化,選擇Mitm->arp poisoning
然后選擇plugin插件,選擇dns_spoof,進行DNS劫持
查看靶機的ping項
第一個是arp攻擊dns劫持前,第二個是arp攻擊dns劫持后
瀏覽器查看
ettercap顯示欄
ettercap通過view選項查看嗅探到的結果
因為我用的是之前出的題目的php,正好也有post請求,模擬hacker通過apr欺騙嗅探到受害者網頁輸入的密碼
嗅探到了請求和返回,同時可以看到用戶輸入的密碼。模擬了在局域網內通過apr欺騙網關,DNS劫持,使受害者所有的行徑暴露於攻擊者的視線中,通過可以誘騙用戶訪問你想要讓他訪問的網站。如果想把DNS劫持做的更完美的話,可以做一個很漂亮的前端,做的幾乎分辨不出,然后讓受害者下載一些木馬病毒,比如誠殷網絡的創始人黑無常做的天衣無縫的Flash下載頁面,誘導受害者下載並執行。(前提是你的后門免殺)
最后總結
kali查看mac地址的一些命令
cat /proc/net/arp 查看遠端連接ip的mac,非自身
cat /sys/class/net/eth0/address 查看自身mac地址
實驗中網關的ip為192.168.41.2,mac為00:50:56:fc:26:85
通過arp欺騙,使受害者中的arp表中的網關mac地址變為hacker的mac地址
這里講一下流程,更加的加深學習印象,hacker通過發送偽造的ARP包給局域網內的其他主機宣布自己的ip地址為192.168.41.2,把自己偽造成網關設備,其他主機學習到偽造的ARP包,誤把網關的MAC地址解析為hacker主機的mac地址,此后,則受害者的所有訪問外網的數據包都會發送給hacker。
ARP中的還有很多類型的攻擊,有雙向流量嗅探,有單向欺騙斷網,有泛洪攻擊影響網絡通信等
注意:
結束后實驗記得刷新下DNS緩存
ipconfig/flushdns
重啟下瀏覽器,在訪問baidu.com就會跳轉到正常的訪問頁面了
參考鏈接:
https://blog.csdn.net/qq_36119192/article/details/84582109
如果要改成老版本1.6的話可以參考這篇文章:
https://www.cnblogs.com/diligenceday/p/9912542.html