在Go中使用反向代理進行網路釣魚測試
免責聲明:本文僅用於教育目的。切勿使用文中提及的技術從事任何非法活動!
對於一個攻擊者來說,要想實施一次網路釣魚攻擊,往往需要做大量的準備工作。例如搭建釣魚站點,引誘受害者上鉤,捕獲受害者的登錄憑證等。為了避免這些繁雜的過程,本文我將教大家使用Go自動化這些過程。
完整的代碼和使用說明可以在Github查看:https://github.com/JonCooperWorks/judas
代理被用來釣魚TechOnRoad用戶。你能看出它們之間的差別嗎?
使用代理進行網路釣魚
我們的代理需要接收來自受害者的請求,並在發送到目標網站之前重寫它們。Go有著許多在原生層面對並發編程進行支持的優秀特性,比如Goroutines、Channels等。我們建立了一個簡單的TCP偵聽器,spawn了一個新的goroutine來處理每個傳入的連接和一個goroutine worker來處理請求和響應。結果通過channel從請求處理goroutine傳遞給worker。
由於Go的優秀標準庫,請求處理非常簡潔。http包提供ReadRequest方法,用於解析從連接中讀取數據的請求。
將所有內容解析成Golang http.Request後,我們將它傳遞給目標。代理需要重寫來自受害者的HTTP頭,以防止目標站點連接中斷,特別是主機頭和URL。
在代理上使用HTTP客戶端,我們發起請求並確保請求成功。
一旦我們得到響應,我們使用傳遞給代理的ResponseTransformers(後面會詳細介紹)轉換它,使用標準庫httputil.DumpResponse函數將響應轉換為位元組,並將請求和響應發送給goroutine worker之後處理。
我們通過一個channel將HTTP事務傳遞給worker,以加快我們的操作進程避免受害者發生某些錯誤。
只需指向該代理,就能完美克隆目標網站。
ResponseTransformer允許你修改響應。我們可以用它來任何想做的事情,例如將自定義JavaScript注入到頁面,或者將比特幣地址替換成我們自己的。這對於那些在默認代理中無法100%工作的網站也很有用。
JavaScriptInjectionTransformer使用GoQuery將HTML響應解析到DOM樹中,並使用我們傳遞給transformer的URL注入腳本標籤。我們可以使用它來注入BeEF hook或繞過網站的安全防護。
如何防禦?
這類的釣魚攻擊並不是沒有破綻,其實只要我們稍微細心觀察,就能避免掉落壞人的陷阱。為此,我向大家提出以下幾點建議:
為你登錄的網站添加書籤,並僅使用該書籤訪問該網站
即使看到綠色安全提示,也要在登錄前仔細檢查網站的URL是否正常
仔細檢查通過電子郵件發送給你的任何鏈接並謹慎點擊
完整代碼可在GitHub上查看。
※微軟聯手英特爾,在Windows更新中推送Sepctre微代碼升級
※從一道CTF題目看Gopher攻擊MySql
TAG:瘋貓網路 |