論如何黑掉舍友的網路賬號

前幾天完了Hacknet寫了篇關於如何使用漏洞進行攻擊的博客,但是有時候想要拿到某些信息入侵別人的電腦就小題大做了,這篇博客來講一講如何在區域網中進行網路欺騙。

這篇博客用途為教育意義,請勿拿其中提到的方法在公共網路中使用。

首先來說一說這次要幹什麼,就拿我們學校的登錄頁面做例子吧 login.shef.ac.uk ,這次講述如何竊取區域網中其他人的登錄密碼。

1 概述

這次得操作還是會在區域網環境中進行,使用一台Linux Mint電腦作為攻擊者(Attacker),使用我自己的Google Nexus 6P作為被攻擊的對象(Victim)。

下圖是網路布局:

我的筆記本電腦作為攻擊者IP為172.20.10.5,手機IP為172.20.10.6,路由器的網關地址為172.20.10.1 。

2 中間人攻擊(Man-in-the-Middle Attack)

我的手機若想訪問互聯網,那麼他會將請求發送到路由器,路由器再訪問互聯網,然後將網上的信息傳回給手機。那麼攻擊者根本沒有機會看到手機和路由器之間發送了什麼,也看不見路由器向手機傳回了什麼信息。那麼,有一種攻擊手法叫做中間人攻擊(MITM),這是一種很常見的攻擊手段,攻擊者會通過欺騙方式劫持手機和路由器之間的消息,導致所有受害者的發送給路由器的信息都會被發送到攻擊者,並由攻擊者進行轉發傳送到路由器,通過這樣的方式,受害者想要發送的消息通通經過攻擊者的電腦。

3 ARP欺騙 (ARP Spoofing

那麼既然知道了中間人攻擊的大致原理,那麼具體有什麼攻擊手段呢,最常用的手段就是ARP欺騙。

在區域網中,區分不同的機器並不是使用普通的IP地址,所有的網路流通都是通過MAC地址流通的,比如我的電腦(攻擊者)IP為172.20.10.5,他的MAC地址可能為 aa-bb-cc-11-22-33 之類的序列,這個序列在一台機器上是惟一的,路由器通過這個地址為我發送消息。這樣的IP地址與MAC地址的映射是通過ARP來實現的。

ARP(Address Resolution Protocol)是地址解析協議,是一種將IP地址轉化成物理地址的協議,處於OSI中的網路層。在所有使用tcp/ip協議的電腦中,都會有一個緩存表,緩存表裡面IP地址與MAC地址一一對應,通過這張ARP緩存表,可以知道每一台機器的IP地址對應的MAC地址是什麼。

就像剛才說的,路由器(網關+交換機)與整個網路中的其他設備都會有這樣一張ARP緩存表,那麼這張緩存表是怎麼得到的呢?比如路由器想要向手機(172.20.10.5)發送消息,但是緩存表裡面沒有172.20.10.5的MAC地址,那麼路由器將會發送一個廣播,詢問整個網路里所有的設備 172.20.10.5 的MAC地址是多少,其中真正擁有這個IP地址的設備會回應他自己的MAC地址,然後路由器就會將這對地址加入到ARP緩存表中,下次再要向172.20.10.5發送數據的時候就有地址了。

因為所有tcp/ip協議的機器都有這個功能,區域網兩台機器要是想傳數據,都會預先發送廣播詢問,特定IP的MAC地址是什麼並等待其他機器回應。

那麼,這個機制是可以被利用的,攻擊者可以詢問發送廣播詢問網關和被攻擊者的MAC地址,並且回復相應錯誤的信息,這樣就可以造成信息不對稱,使得受害者認為攻擊者的地址為路由器的地址,而路由器會以為被攻擊者地址為攻擊者的地址。這樣,被攻擊者機器發送的所有的數據都會經過攻擊者轉發到路由器,反之,路由器想要發給被攻擊者的數據也會通過攻擊者轉發到被攻擊者。

4 Ettercap

想要進行ARP攻擊,可以使用Ettercap,這是一款嗅探和欺騙工具。

進入工具後點擊Host,Scan,然後List將網路環境中的機器列出來,從上圖可以看到172.20.10.1就是網關了,172.20.10.6就是手機(被攻擊者),將網關作為Target1,手機作為Target 2.

然後點擊MITM,選擇ARP Poisoning,勾選Sniff Remote Connections點擊確定。然後點擊Start之後我們的筆記本電腦(172.20.10.5)已經發起了中間人攻擊,之後手機所有的網路流量都會經過我的筆記本電腦。

5 流量分析

之後既然所有的網路流量都從我的電腦走,那麼可以使用Wireshark來進行抓包和分析操作,試著去分析一下情景,就拿我以前的學校舉個例子好了。(主要是因為這個站還在使用http協議)

我輸入了用戶名TEST,密碼123456,然後點擊Login按鈕。

然後就可以在Wireshark上看見了,首先過濾一下協議為http。Wireshark會把每次請求按幀羅列出來。然後大概看一下就可以看到剛才點擊login之後手機發送的請求。

然後拷貝出來拆分一下,我們已經可以看到user_id=TEST,至於密碼,網站加密了一下,但是稍微有編程經驗的人可以看出來這是一個base64編碼後的字元串,隨便百度下base64解碼然後就能解出來密碼是123456。

這個方法兩年前用可能還方便,但是現在網站都用https了,這個方法也就不能再使用了,因為抓到的https包都是加密過的,解密很困難。

6 社會工程學 (Social Engineering)

那麼既然抓取https包很難分析出來密碼,那麼我覺得使用社會工程學來解決問題更方便些。可以偽造出來一個和真實頁面一樣的頁面放在自己的電腦上,引導他人訪問自己的釣魚網站。

首先在Linux上部署好Web伺服器,Apache2,然後訪問下localhost或者127.0.01看下Apache有沒有成功啟用,如果啟用了,將會看到類似如下的頁面。

然後可以使用httrack來客隆一下學校的登錄頁面,拷貝到Web伺服器的根目錄 /var/www/html。 然後重新訪問localhost試一試。

左邊的是真的,右邊的是假的,長得一樣,為了區分我在假的頁面Log into旁邊加了一個X。

然後只要在區域網內,讓別人訪問你的IP,172.20.10.5就能進入這個釣魚頁面,不過。。。對方又不傻,你說這個地址是學校的登錄頁面他就信嗎。

7 DNS欺騙 (DNS Spoofing/ DNS cache poisoning

DNS(Domain Name System),域名系統,是一個用來儲存域名與伺服器IP地址映射的資料庫,比如你想訪問百度,那麼你的請求會先通過DNS伺服器,DNS查抄到baidu.com的ip然後直接訪問這個IP。

那麼,可以偽造一個DNS伺服器,使得被攻擊者對學校登錄頁面login.shef.ac.uk的IP查詢被引導到我的IP地址(172.20.10.5)就好了,剛好Ettercap也有這個功能。

首先編輯Ettercap的DNS映射,在/etc/ettercap/目錄下的etter.dns文件。

映射login.shef.ac.uk的A記錄到我的IP172.20.10.5,然後保存這個文件

回到Ettercap點擊Plugin,找到dns_spoof雙擊啟用即可。

之後被攻擊者訪問login.shef.ac.uk的時候,我偽造的DNS伺服器會返回給他我自己的ip,導致對方訪問進入我的釣魚頁面。

來看下DNS欺騙前後的對比,可以看到經過DNS欺騙,login.shef.ac.uk的地址已經被修改為172.20.10.5,也就是釣魚頁面的地址。

8 防範措施

至於如何防範中間人攻擊,現在已經到了https的時代,如果你的機器被中間人攻擊了,訪問頁面的時候瀏覽器會有相應的提示:

並且我偽造出來的釣魚網站沒有https的證書,在Chrome瀏覽器上也會有個感嘆號(夸克瀏覽器就不會,可能是因為他們產品經理屁都不懂去掉了這個功能,夸克瀏覽器雖然是出了名的好用,但是上我的釣魚網站根本看不出來)

並且有技術的同學可以用Wireshark抓一下包,如果ARP被做了手腳,抓ARP的包之後是能看出來的,會顯示一個Duplicate IP Address detected的警告。

論如何黑掉舍友的網路賬號MikeTech | MikeTech?

miketech.it圖標
推薦閱讀:

應對數字化環境下面臨的供應鏈網路威脅
HTTPS那些事之HTTPS原理
2018網路安全行業全景圖,幾維安全名列前茅
PHPCMS V9存儲型XSS漏洞
智能手機會中病毒嗎?

TAG:滲透測試 | 網路安全 |