四種假消息攻擊-惡搞你的室友

關鍵詞: ARP欺騙 ICMP重定向 IP欺騙 DoS攻擊linux

00x1 前言

在學習網絡攻防技術時若是隻對各類攻擊的原理和理論進行了解和學習,那麼可能不到3分鐘就開始拽瞌睡了,若是加上實踐的反饋,那種實驗成功的快感會成爲你源源不斷的動力,讓你沉迷,讓你上癮。不過法網恢恢疏而不漏,掌握這些技能用來學習、交流、研究或者吹吹牛就好了,在你蠢蠢欲動的時候先看看《網絡安全法》冷靜冷靜,千萬不要挑戰法律的底線,人在作,天在看。此文章僅提供技術的討論和交流,對任何用於惡意攻擊的違法行爲概不負責。數據庫

00x2 原理介紹

ARP欺騙

根據百度百科的定義,ARP地址解析協議是根據IP地址獲取物理地址的一個TCP/IP協議。主機發送信息時將包含目標IP地址的ARP請求廣播到網絡上的全部主機,並接收返回消息,以此肯定目標的物理地址;收到返回消息後將該IP地址和物理地址存入本機ARP緩存中並保留必定時間,下次請求時直接查詢ARP緩存以節約資源。可經過arp -a命令查詢本機ARP緩存中IP地址-->MAC地址的對應關係。具體詳細介紹見ARPwindows

地址解析協議是創建在網絡中各個主機互相信任的基礎上的,網絡上的主機能夠自主發送ARP應答消息,其餘主機收到應答報文時不會檢測該報文的真實性就會將其記入本機ARP緩存;由此攻擊者就能夠向某一主機發送僞ARP應答報文,使其發送的信息沒法到達預期的主機或到達錯誤的主機,這就構成了一個ARP欺騙。緩存

ICMP重定向攻擊

根據百度百科的定義,ICMP是Internet控制報文協議。它是TCP/IP協議簇的一個子協議,用於在IP主機、路由器之間傳遞控制消息。控制消息是指網絡通不通、主機是否可達、路由是否可用等網絡自己的消息。這些控制消息雖然並不傳輸用戶數據,可是對於用戶數據的傳遞起着重要的做用。具體詳細介紹見ICMP安全

ICMP重定向報文是ICMP控制報文中的一種。在特定的狀況下,當路由器檢測到一臺機器使用非優化路由的時候,它會向該主機發送一個ICMP重定向報文,請求主機改變路由。路由器也會把初始數據包向它的目的地轉發。這樣攻擊者能夠僞造路由器給客戶端發送一個ICMP重定向包,告訴客戶端到達服務器的最佳路由是攻擊者的機器。服務器

IP欺騙

根據百度百科的定義,IP地址欺騙是指行動產生的IP數據包爲僞造的源IP地址,以便冒充其餘系統或發件人的身份。這是一種黑客的攻擊形式,黑客使用一臺計算機上網,而借用另一臺機器的IP地址,從而冒充另一臺機器與服務器打交道。具體詳細介紹見IP欺騙網絡

DoS攻擊

根據百度百科的定義,DoS即拒絕服務,形成DoS的攻擊行爲被稱爲DoS攻擊,其目的是使計算機或網絡沒法提供正常的服務。最多見的DoS攻擊有計算機網絡帶寬攻擊和連通性攻擊。socket

DoS攻擊是指故意的攻擊網絡協議實現的缺陷或直接經過野蠻手段殘忍地耗盡被攻擊對象的資源,目的是讓目標計算機或網絡沒法提供正常的服務或資源訪問,使目標系統服務系統中止響應甚至崩潰,而在此攻擊中並不包括侵入目標服務器或目標網絡設備。這些服務資源包括網絡帶寬,文件系統空間容量,開放的進程或者容許的鏈接。這種攻擊會致使資源的匱乏,不管計算機的處理速度多快、內存容量多大、網絡帶寬的速度多快都沒法避免這種攻擊帶來的後果。具體詳細介紹見DoS攻擊tcp

00x3 實踐

不登高山,不知天之高也;不臨深溪,不知地之厚也,實踐是檢驗真理的惟一標準。本次實驗是在VMware虛擬機局域網的環境下進行。話很少說,直接上圖。工具

本次實驗使用的虛擬機的IP-MAC地址映射關係以下:

實驗機IP-MAC地址映射關係

ARP欺騙

ARP欺騙實驗的網絡拓撲圖以下:

ARP欺騙網絡拓撲圖

(Windows7做爲攻擊機,Centos做爲服務器,kali linux做爲客戶端)

首先查看kali linux/windows 7/Centos的IP地址、MAC地址和arp的IP-MAC地址映射表,一切顯示正常。

Windows7 IP-MAC地址映射表
kali linux IP-MAC地址映射表
Centos IP-MAC地址映射表

打開Cain工具,開始嗅探,發現本網段內有4臺已經開啓的虛擬機,嗅探時能夠全局嗅探,也能夠在必定網段範圍內嗅探。

Scan MAC Address

轉到ARP,添加進行ARP欺騙的主機,點擊start開始進行ARP欺騙。

ARP Attack Start

此時kali linux的用戶登陸搭建在Centos服務器上的DVWA,在Cain工具的password欄裏將監聽到明文的用戶名和密碼。

Get User And Password

用wireshark抓包進行分析,發現第一次kali的IP-MAC地址映射表裏的Centos的MAC地址變成了Windows7的MAC地址,因此發送tcp包時先發送給了Windows7攻擊機,以後Windows7會將此包發送給Centos,Centos將響應包先發送給Windows7,Windows7將響應包再發送給kali,這樣Windows7在kali用戶絕不知情的狀況下竊取了他的通訊信息。

查看三臺機器上的ARP的IP-MAC地址映射表,發現kali中Centos的MAC地址變成了windows7的MAC地址,Centos中的kali的MAC地址變成了Windows7的MAC地址,而Windows7中的IP-MAC映射表是正常的。

Windows7 IP-MAC地址映射表-new
Centos IP-MAC地址映射表-new
kali linux IP-MAC地址映射表-new

至此,一次中間人竊聽的攻擊就這樣成功進行了。

ICMP重定向攻擊

ICMP重定向攻擊的網絡拓撲圖以下:

ICMP重定向攻擊網絡拓撲圖

(Windows7做爲攻擊機、Windows xp做爲靶機)

查看靶機和攻擊機的IP/MAC地址,並經過route print命令記錄下靶機的路由表狀態。

靶機的路由表狀態

開啓netwox工具進行ICMP路由重定向,依次輸入5和86使用86號工具,按照工具的介紹和提示進行數據包的篡改:

netwox 86 -f "tcp and host 192.168.188.130" -g 192.168.188.134 -i 192.168.188.2 -c 1

netwox工具菜單欄

netwox-86號工具

這條指令的意思是嗅探網絡中來自主機192.168.188.130的TCP包,一旦出現,就以網關192.168.188.2的名義,向數據包的源地址發送一個ICMP重定向報文,使之使用192.168.188.134做爲默認的路由。

打開wireshark輸入過濾條件:(tcp or arp or icmp)&&ip.addr == 192.168.188.130並開始抓包。

ICMP重定向過程

當靶機想訪問百度的IP時,攻擊機會假裝成默認網關給靶機發送ICMP重定向報文,此時在靶機的終端上輸入route print指令,發現靶機已經錯誤地將網關地址改爲了攻擊機地址。

攻擊後的靶機的路由表狀態

至此,一次ICMP重定向攻擊成功實現了。

(注:因爲某些緣由我修改了虛擬機的IP地址,以前的實驗不想再重作從新截圖了,因此接下來的實驗使用一下IP地址,實在很差意思,各位看官將就看吧)
新的實驗機IP-MAC地址映射關係以下:

實驗機IP-MAC地址映射關係-new

TCP會話劫持

TCP會話劫持的網絡拓撲圖以下:

TCP會話劫持網絡拓撲圖

(kali linux做爲攻擊機,Windows7做爲客戶端,Centos做爲服務器)

爲了構造客戶端和服務器進行tcp會話的過程,咱們在服務器上搭建telnet服務器,並在客戶端上用telnet遠程鏈接服務器,用攻擊機對其進行監聽和會話劫持。

在Centos服務器上運行netstat -an | grep 23或netstat -ntl查看23端口有沒有開啓,發現服務器上沒有開設23號端口的telnet服務,須要搭建telnet服務器。

服務器沒有開設23號端口

Centos裏搭建telnet服務器的過程是:

  1. 檢查Centos是否已經安裝瞭如下兩個安裝包:

    telnet-server
    xinetd(rpm -qa telnet-server/rpm -qa xinetd)
  2. 若是沒有就安裝:

    yum install telnet-server/yum install xinetd
  3. 安裝完成後,將telnet服務和xinetd服務加入開機自啓動:

    systemctl enable xinetd.service /systemctl enable telnet.socket
  4. 啓動兩個服務:

    systemctl start telnet.socket/systemctl start xinetd
  5. 安裝完成後檢查兩個服務有沒有開啓:

    systemctl status telnet.scoket/systemctl status xinetd

telnet服務器搭建

用windows7的telnet鏈接Centos,創建TCP鏈接。

客戶端鏈接上服務器

在kali linux下運行hunt工具。

hunt工具menu

在此工具下運行1指令能夠看見該局域網下的全部TCP鏈接,發現windows7連上了Centos服務器。

hunt發現TCP鏈接

依次輸入a、0,一路默認下去,實現會話監聽。

此時用戶windows7的輸入和迴應就全顯示在攻擊機頁面了。

hunt監聽界面

繼續使用快捷鍵ctrl+c進行會話劫持,此時用戶Windows7被擠下線,全部的輸入都不會獲得相應,會話被劫持到了kali linux攻擊端。

hunt劫持界面

至此,TCP會話劫持成功實現,下面咱們經過抓包分析整個繪畫劫持的過程,抓包結果以下:

wireshark抓包結果

爲了方便觀察,設置過濾條件,只顯示telnet協議的包,發如今如圖所示的包處源地址的MAC地址發生了變化,大膽猜想kali linux在此處進行了TCP會話劫持。

源地址MAC地址改變

觀察這個包的上一個從192.168.188.129發出的包,將上一個包的相關信息與該包的信息比較進行驗證。

劫持前的一個包

用於劫持的包

能夠看出939的Seq序列號應該爲203,可是hunt工具假裝Windows7客戶端給Centos服務器發送了一個Seq=190的包,並繼續與服務器通信,接管了會話,能夠看到服務器隨着kali linux攻擊機而改變了本身的包的Seq、Next、Ack序號。

劫持前服務器發的包

劫持後服務器發的包

此時客戶端Windows7並不知道本身的會話已經被劫持了,也不知道如今服務器的序列號已經發生了改變,因此當客戶端想要再次發送請求時,會發送Seq爲203的包,而服務器的ACK已經再也不是203了,因此服務器不會再對客戶端進行應答了。

客戶端繼續發送請求包

(注:這部分個人理解還有一些牽強,有興趣的讀者能夠仔細瞭解TCP協議的相關知識,可以更好地理解會話劫持的原理,待我總結清楚後再新寫一篇文章仔細分析)

DoS攻擊

(攻擊機Windows7,目標機Windows xp)

打開Cain工具,使用76號工具進行DoS攻擊,輸入IP地址和端口號,實行攻擊。

DoS攻擊開始

此時ping Windows xp,發現沒有ICMP回顯,Windows xp資源已經被耗盡拒絕服務了,用wireshark進行抓包分析,發現全是Windows7發送給xp的TCP包。

DoS-TCP

DoS攻擊能夠利用現有網絡協議中存在的缺點、能夠利用現有軟件和應用程序自身的漏洞,能夠利用合法的服務請求耗盡服務資源,具體的原理和方法我會單列一章進行介紹,順便附上以前編寫的簡易的DDoS程序。

00x4 總結

假消息攻擊:利用網絡協議設計中的缺陷,經過發送僞造的數據包達到欺騙目標、從中獲利的目的。

ARP欺騙的防範:

  1. 網關創建靜態IP/MAC對應關係,各主機創建MAC數據庫
  2. 創建DHCP服務器
  3. IDS監聽網絡安全

ICMP重定向攻擊的防範:

  1. 修改系統和防火牆配置,拒絕接收ICMP重定向報文
  2. 在Windows 2000裏可修改註冊表HKLMSYSTEMCurrentControlSetServicesTcpipParamentsEnableICMPRedirects REG_DWORD 0x0(默認值爲0x1)
  3. 經過route print命令來查看本機的路由表

IP欺騙的防範:

  1. 拋棄基於地址的信任策略
  2. 進行包過濾,只信任內部主機
  3. 利用路由器屏蔽掉全部外部但願向內部發出的鏈接請求
  4. 使用加密傳輸和驗證的方法
  5. 使用隨機化的初始序列號,使得TCP序列號難以猜想

DoS攻擊的防範:

  1. DDoS 必須透過網絡上各個團體和使用者的共同合做,制定更嚴格的網絡標準來解決
  2. 每臺網絡設備或主機都須要隨時更新其系統漏洞、關閉不須要的服務、安裝必要的防 毒和防火牆軟件、隨時注意系統安全,避免被黑客和自動化的 DDoS 程序植入攻擊程序,以避免成爲黑客攻擊的幫兇。
千里之行始於足下,懂得攻擊的原理纔會懂得如何防護,環境的搭建也是學習的路上必不可少的重要組成部分,在此我列出了這次實踐運用到的環境和工具。
環境:VMware Workstation,Telnet server
操做系統:Kali linux,Windows7,Windows xp,Centos
工具:Cain,Hunt-1.5,Netwox539,wireshark

(注:本人是個剛起步的小菜雞,表達能力也不強,總結得不對的地方還請你們多多包涵,歡迎你們相互交流,共同窗習,一塊兒進步,感激涕零)
【同步更新於:https://www.jianshu.com/p/a076dfe081ad

相關文章
相關標籤/搜索