上次我們使用 arpspoof 工具在命令行中完成了 arp 欺騙實驗,今天我們用另一種工具 ettercap 工具來實現。ettercap支持圖形化操作,對新手非常友好,並且操作非常簡單,
ettercap 工具
ettercap是一款現有流行的網絡抓包軟件,他利用計算機在局域網內進行通信的ARP協議的缺陷進行攻擊,在目標與服務器之間充當中間人,嗅探兩者之間的數據流量,從中竊取用戶的數據資料。
安裝命令如下:
apt-get install ettercap-graphical
實驗要求:
- 兩台可以正常上網的主機,其中一個為 Linux 並且安裝了 ettercap。
- 請保持兩台設備在同一局域網中,並且實驗前檢查設備間是否連通。
在本文中,攻擊機使用 kali Linux ,被攻擊機者為 deepin Linux,實驗環境為 windows 10 系統中架設的虛擬機中測試。
注:技術可以造福社會,也可以危害社會,不要濫用技術去做非法勾當。
聲明:本文僅作為學習用途,旨在技術上互相學習,切勿拿去做危害他人及社會的事。非法使用與本人無關 。
開始教程
在kali (裝有 ettercap)的Linux上,打開 terminal 輸入》ettercap -G
打開圖形界面
點擊 sniff 》 Unified sniffing 開啟統一嗅探
選擇網卡,這里選擇 eth0 即可。 ps:eth0: 第一塊有線網卡,wlan0: 第一塊無線網卡。如果是無線網卡選擇 wlan0 即可。
分別點擊圖中 1,2按鈕。打開主機列表,掃描存活主機。
掃描結束,列表中的主機就是當前局域網下的主機
arp 欺騙
准備工作:
在目標機上使用 ifconfig
命令查看其ip地址(防止攻擊錯主機)。在windows系統中使用組合鍵 win+R打開運行窗口,輸入 CMD 打開cmd窗口,輸入 ipconfig
查看其ip的地址。
windows 系統下查看 ip 地址。
由於我這里連接的是無線局域網,因此在這里我們查看無線局域網適配器 WLAN,其中的 IPv4就是我windows的IP 地址了。
開始 ARP欺騙
注:在測試 arp 欺騙前測試各自網絡的連通性,可以通過 ping 命令互相 ping 對方的地址,以及測試能否訪問網站。ping 命令格式為 ping xxx.xxx.xxx.xxx
。這里就只測試了目的機deepin主機。
回到我們的攻擊者 kali Linux上,現在可以添加的目標了。
把想要攻擊的兩台主機分別加入target1 與 target2。這里我們把deeping xxx.xxx.xxx.223
和 網關 xxx.xx.xxx.1
分別添加。(這里順序無所謂)
可以通過 target 》 的 current targets 打開窗口查看添加的目標。
點擊 Mitm 》 ARP poisoning 開啟ARP毒化
因為我們要竊聽目的主機與互聯網的通信,這里選擇 中間人模式雙向連接。
理論上,此時已經arp投毒成功,也就是我們所說的arp欺騙。
打開目的機(受害者),輸入 arp 查看其arp高速緩存表。有關arp知識請參考上一章博客,有關鏈接在文章結尾。
注:下圖為被arp欺騙前后,受害者目的主機的 arp表中對應 MAC 地址情況。我們可以看到成功的讓deepin主機認為網關的 MAC 地址是我們攻擊者的MAC地址,從而在發送數據包時用攻擊者代為接收,而后送給網關到達公網。同理,在接收時也是同樣的方式,這就實現了監聽目的主機通信的目的。
此時可以使用抓包工具分析目的主機的數據,比如用上文提到的使用 driftnet 抓取對方上網圖片,以及利用 ettercap 來抓取賬號密碼等。
測試目的機是否可以正常上網,如果無法目的主機無法上網,查看是否已開啟端口轉發功能(也叫IP轉發),默認為關閉狀態。
# 查看端口轉發,1則表示開啟,0則表示關閉
cat /proc/sys/net/ipv4/ip_forward
# 開啟端口轉發,關閉的話把1改為0。該命令的意思是把 1 寫入 /proc/sys/net/ipv4/ip_forward 文件中
echo 1 >/proc/sys/net/ipv4/ip_forward
DNS欺騙
ip地址:簡單來說,我們平時輸入的網址最終都會被解析成一串點分十進制的ip地址,ip地址就像我們的身份證號(其實更像是郵政編碼或地區區號)。我們訪問互聯網最終都是訪問到互聯網中的某一台主機上,而ip地址用於在網絡上唯一標識一台主機從而確定該主機的位置。就像是我們的家庭地址,從中國xx省xx市xx縣xx鎮……一級一級的划分,這樣確定某個人的位置只要知道地址就很方便的。
域名:那么要訪問某台計算機就要知道對方的ip地址才行嘍,但是我們人腦以下記不住那么多的地址怎么辦,於是計算機科學家們就想了一個辦法,使用一串用點分隔的名字組成互聯網上的一個計算或計算機組,而這個名字也就是我們所說的域名。
域名解析:在我們訪問百度是,首先要做的是查詢該域名對應的IP地址,從而根據IP地址找到該計算機的位置,只不過這個查詢的過程有計算機替我們代勞了。
DNS欺騙:其實這一過程,就是我們以前用座機的時候多要准備一個電話本,是一樣的道理,而我們所說的 DNS 欺騙,實際上就是篡改電話本上的IP地址,使其訪問百度時訪問到我們給它提供的ip地址對應的主機。
好了,閑話不多說,我們直接開始實戰。
在攻擊者的terminal上輸入 vim /etc/ettercap/etter.dns
配置 etter.dns 文件
如圖所示,我們只需要在對應的域名后加上 A xx.xx.xx.xx
和 PTR xx.xx.xx.xx
。其中 xx.xx.xx.xx 是提供服務的主機ip地址。這里我們使用自身的 ip 把域名解析到本機上。
# 對應格式
*.*.* A xx.xx.xx.xx # *可以表示任意的域名
*.*.* PTR xx.xx.xx.xx #
# A(Address)記錄是用來指定主機名(或域名)對應的IP地址記錄
# PTR是pointer的簡寫,用於將一個IP地址映射到對應的域名,也可以看成是A記錄的反向,IP地址的反向解析。
打開 ettercap,按如下圖示選擇。
在ettercap 的下部窗體中出現 Activating dns_spoof plugin… 即打開成功。
此時DNS劫持成功
並且我們可以在 ettercap 上看到目的主機的操作都被重定向到本機中
開啟本地web服務
首先要配置我們的服務器,只有對外提供服務才可以讓其他人來着里使用。我們現在的角色就是一個電話簿提供者的身份。
# 開啟 apach2 服務
/etc/init.d/apache2 start
# 或者使用
service apache2 start
如果想要修改網頁內容進入 /var/www/html 中修改 index.html文件,這里我們不做修改。
測試效果:可以看到 apache2 HTTP服務器已經啟動。
如圖所示,輸入 www.googal.com 被重定向到本地的HTTP網頁中。
附:kali Linux 滲透測試 | ARP 欺騙 :https://blog.csdn.net/weixin_43919932/article/details/104114066