隨身Wifi+win7 搭建http代理 域名劫持 抓包 內容篡改實驗環境


需求來源:

       1.平板或手機是個封閉系統無法給wifi設置代理

       2.需要利用filllder進行抓包,內容篡改等實驗

擁有硬件資源:PC機器 + 小米隨身wifi

方案1: NtBind Dns + Nginx

基本原理:域名劫持 +  反向代理 + 正向代理

部署圖:

說明:

1.因為小米wifi與本地網卡是底層共享,設置PC機本地host和在MiWifi上設置DNS都沒有任何效果,所以只能在本地網卡上做文章

2.本地網卡上設置IPv4的首選DNS是127.0.0.1 指向本地DNS服務器

3.NtBind DNS是在Win7操作系統上搭建的本地DNS服務,具體配置參考鏈接:

   在Windows7 系統上部署DNS服務器 http://blog.csdn.net/hyman_c/article/details/53560891

   按照博文中的鏈接,在安裝NiBind時並不需要另外安裝dll文件,整個過程都很順暢

   按照博文中為鏈接,當某些郁悶本地DNS中沒有配置時,就從配置的DNS服務器中同步拉取,這部分拓撲圖略

4.NtBind DNS中可以將所有需要劫持的域名都指向本地:127.0.0.1

5.Nginx上對劫持域名進行反向代理,代理到本地fillder端口(如果某些接口需要訪問本地開發環境的服務,可以直接指向本地開發服務提供的接口)

6.fillder上可以對反代過來的請求進行重新host,訪問外網真實服務器,這個host文件僅對fillder有效,會覆蓋NtBind DNS的域名解析

 

附錄Nginx配置,這是對sohu網站的配置:

server {
         listen  80;
         charset utf-8;
         server_name  m.tv.sohu.com;
         location / {
            proxy_store off;
            proxy_redirect  off;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP  $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto  $scheme;
            proxy_pass   $scheme://127.0.0.1:8888;
            proxy_connect_timeout   90;
            proxy_read_timeout     90;
            proxy_send_timeout    90;
            proxy_next_upstream http_500 http_502 http_503 http_504 error timeout invalid_header;
        }         
    }

注意事項:

1.因為是本地網卡DNS配置,不僅會影響Pad的訪問,同時也會影響本機瀏覽器的訪問,在實驗結束,為了不影響工作,需要將本地DNS改回原有的

2.此方案僅針對http代理訪問有效,https因為客戶端對證書的嚴格檢查等因素,次方案基本不會奏效

-------------------------------------------------------------------------方案1 改良版-------------------------------------------------------------------------------------------

采用方案1,一直糾結的點在於     怎么在不安裝多余app的情況下(因為平板是封閉系統), 篡改平板上域名解析后的地址,讓這個請求被fillder代理

                  經過測驗,可以為平板上WIFI訪問設置靜態IP,手動配置DNS即可。這樣的話,如果當前環境擁有其他無線路由器(公共WIFI)也能訪問

                  到本機DNS,那么即使不用小米隨身wifi也能滿足我的需求(當前公司環境就是如此)

配置靜態IP

       靜態地址:就使用未修改前DHCP分配的那個IP(這樣能有效避免IP沖突)

       路由器地址:如果不知道,可以用自己手機安裝Ping & DNS 工具,然后連接公共WIFI,查看Network Info,Gateway 項就是路由器地址

     前綴長度:默認24位

     域名:這里就配置我們自己搭建的DNS地址

注意事項:

1.該方案因為沒有改變PC機本地網卡的DNS,因此不影響正常辦公,同時也不需要在fillder中再進行單獨host

2.因為公共wifi過來的IP不一定是192網段,所以建議在配置Bind DNS時在named.conf中為allow-query配置為any 即不做IP限制

改良后的部署圖:

 

 

方案2 : 在方案1的基礎上去掉nginx反向代理,將fillder的代理端口改為80端口即可

基本原理:域名劫持 +  正向代理

說明:

1.因為本機需要開啟nginx進行開發調測占用80端口,所以舍棄了該方案

 

方案3 : NtBind Dns + Htran

基本原理:域名劫持 +  正向代理 + 正向代理

部署圖:與方案1類似,只是將其中的Nginx用Htran取代

說明:

1.該方案可以滿足80端口被占用的情況下,也能用fillder進行抓包

2.域名劫持 +  端口轉發(正向代理)可以解決不僅限於http的數據,同時可以對socket進行代理,適宜於解決移動終端不能設置代理服務器的情況下的上網問題

3.此方案可以把80 443的接口都轉發到fillder代理上,可以對非嚴格校驗的https請求進行抓包解密,信息篡改

4.此方案對采用了httpDNS的移動應用會存在失效的情況

5.因為目前方案1滿足了我的原始需求可以支持我進行問題定位,因此此方案未進行驗證,不排除還有其他不可行的因素在其中

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM