在大型企業邊界安全做的越來越好的情況下,不管是 APT 攻擊還是紅藍對抗演練,釣魚和水坑攻擊被越來越多的應用。
一、郵件安全的三大協議1.1 SPFSPF 是 Sender Policy Framework 的縮寫,中文譯為發送方策略框架。
主要作用是防止偽造郵件地址。
由於發送電子郵件的傳統規範 - 1982年制定的《簡單郵件傳輸協議(SMTP)》對發件人的郵件地址根本不進行認證,導致垃圾郵件製造者可以隨意編造寄件人地址來發送垃圾信,而接收者則毫無辦法,因為你無法判斷收到的郵件到底是誰寄來的。
在SPF體系中,每個需要發送電子郵件的企業在其對外發布的DNS域名記錄中,列出自己域名下需要發送郵件的所有IP位址段;而接收到郵件的伺服器則根據郵件中發件人所屬的域名,查找該企業發布的合法IP位址段,再對照發送郵件的機器是否屬於這些地址段,就可以判別郵件是否偽造的。
查詢是否開啟 SPF
nslookup-type=txtqq.comdig-ttxtqq.com記錄中有spf1說明使用 spf ,所謂偽造郵件的時候是發送不到qq郵箱的。
但是一般甲方是沒有設置此協議的。
1.2 DKIMDKIM,電子郵件驗證標準——域名密鑰識別郵件標準。DomainKeys Identified Mail的縮寫。
一般來說,發送方會在電子郵件的標頭插入DKIM-Signature及電子籤名資訊。而接收方則透過DNS查詢得到公開密鑰後進行驗證。
1.3 DMARCdmarc,2012年1月30號由Paypal,Google,微軟,雅虎等開發,相關內容有DMARC協議。
[DMARC]協議基於現有的[DKIM]和[SPF]兩大主流電子郵件安全協議,由Mail Sender方(域名擁有者Domain Owner)在[DNS]裡聲明自己採用該協議。當Mail Receiver方(其MTA需支持DMARC協議)收到該域發送過來的郵件時,則進行DMARC校驗,若校驗失敗還需發送一封report到指定[URI](常是一個郵箱地址)。
二、環境搭建準備與目標相關聯相似域名
公網VPS
Gophish
EwoMai
2.1 Gophish 搭建我用的是ubuntu
下載
wgethttps://github.com/gophish/gophish/releases/download/v0.11.0/gophish-v0.11.0-linux-64bit.zip解壓
mkdir-p/gophishunzip gophish-v0.11.0-linux-64bit.zip -d/gophish/cd/gophish/修改config.json 中 127.0.0.1 為 0.0.0.0 。
80埠代表釣魚網站開放的埠;後臺管理頁面開放的埠是3333,默認的帳號和密碼是 admin/gophish。
{"admin_server": {"listen_url": "0.0.0.0:3333","use_tls": true,"cert_path": "gophish_admin.crt","key_path": "gophish_admin.key"},"phish_server": {"listen_url": "0.0.0.0:80","use_tls": false,"cert_path": "example.crt","key_path": "example.key"},"db_name": "sqlite3","db_path": "gophish.db","migrations_prefix": "db/db_","contact_address": "","logging": {"filename": "","level": ""}}後臺運行,目前環境即搭建完成。
chmod+x gophish./gophish &訪問https://IP:3333/
可能會提示證書不正確,依次點擊高級—繼續轉到頁面,輸入默認帳密進行登錄:admin/gophish
也有可能不是默認密碼,在vps啟動./gophish之後,會在命令行中給出一個臨時密碼,用臨時密碼登錄之後再設置新的密碼。
訪問釣魚界面:
打開瀏覽器,訪問http://ip:80/由於我們還未配置釣魚頁面,提示小段的404 page not found說明運行正常。
Gophish搭建完成。
2.2 EwoMail搭建官方文檔:
http://doc.ewomail.com/docs/ewomail/install
ewomail要求 centos ,但是此時並不像重裝系統,所以使用docker 進行搭建。
apt install docker.iodocker search ewomaildocker pull bestwu/ewomail創建並且啟動容器:(把命令中mail.ewomail.com 替換成你自己的域名 mail.*.格式)。
docker run -d-hmail.ewomail.com --restart=always \-p25:25 \-p109:109 \-p110:110 \-p143:143 \-p465:465 \-p587:587 \-p993:993 \-p995:995 \-p81:80 \-p8080:8080 \-v`pwd`/mysql/:/ewomail/mysql/data/ \-v`pwd`/vmail/:/ewomail/mail/ \-v`pwd`/ssl/certs/:/etc/ssl/certs/ \-v`pwd`/ssl/private/:/etc/ssl/private/ \-v`pwd`/rainloop:/ewomail/www/rainloop/data \-v`pwd`/ssl/dkim/:/ewomail/dkim/ \--nameewomail bestwu/ewomail域名解析:
最終搭建的效果:
http://域名:8080
帳號 admin 密碼 ewomail123
添加郵箱:
2.3 Gophish 功能介紹進入後臺後,左邊的欄目即代表各個功能,分別是Dashboard儀錶板、Campaigns釣魚事件、Users & Groups用戶和組、Email Templates郵件模板、Landing Pages釣魚頁面、Sending Profiles發件策略六大功能:
功能簡述Dashboard儀錶板,查看整體測試情況Campaigns每次攻擊前需要配置一次Users & Groups用戶和用戶組(添加需要進行釣魚的郵箱和相關基礎信息)Email Templates電子郵件模板Landing Pages需要偽造的釣魚頁面Sending Profiles釣魚郵箱發送配置Sending Profiles 發件策略
Sending Profiles的主要作用是將用來發送釣魚郵件的郵箱配置到gophish。
點擊New Profile新建一個策略,依次來填寫各個欄位。填寫剛才新建的發送郵箱地址和用戶名。
Name:Name欄位是為新建的發件策略進行命名,不會影響到釣魚的實施。
Interface Type:Interface Type 是接口類型,默認為SMTP類型且不可修改,因此需要發件郵箱開啟SMTP服務,但是大部分機器 smtp 的 25 埠被禁用了,因此需要配置成 465 埠。
From:From 是發件人,即釣魚郵件所顯示的發件人。(在實際使用中,一般需要進行近似域名偽造)。
Host:Host 是smtp伺服器的地址,格式是smtp.example.com:25
Username:Username 是smtp服務認證的用戶名.Password:Password 是smtp服務認證的密碼。
(可選)Email Headers:Email Headers 是自定義郵件頭欄位,例如郵件頭的X-Mailer欄位,若不修改此欄位的值,通過gophish發出的郵件,其郵件頭的X-Mailer的值默認為gophish。
設置好以上欄位,可以點擊Send Test Email來發送測試郵件,以檢測smtp伺服器是否認證通過。
但是QQ 郵箱收不到,啊
先用qq郵箱轉發吧:
用戶和from 都填 qq 郵箱帳號。
密碼填授權碼:
成功頁面。
1. Landing Pages 釣魚頁面
配置好釣魚郵件後,就可以通過LandingPages模塊來新建釣魚網站頁面,此處支持手寫 html文件,也可通過導入網站功能。
Name:Name 是用於為當前新建的釣魚頁面命名。
Import Site:gophish為釣魚頁面的設計提供了兩種方式,
第一種則是Import Site,點擊Import Site後,填寫被偽造網站的URL,再點擊Import,即可通過網際網路自動抓取被偽造網站的前端代碼。
這裡測試百度。
內容編輯框是編輯釣魚頁面的第二種方法,但是絕大多數情況下,它更偏向於用來輔助第一種方法,即對導入的頁面進行源碼修改以及預覽。
(重點)Capture Submitted Data:
通常,進行釣魚的目的往往是捕獲受害用戶的用戶名及密碼,因此,在點擊Save Page之前,記得一定要勾選Capture Submitted Data當勾選了Capture Submitted Data後,頁面會多出一個Capture Passwords的選項,顯然是捕獲密碼。通常,可以選擇勾選上以驗證帳號的可用性。如果僅僅是測試並統計受害用戶是否提交數據而不洩露帳號隱私,則可以不用勾選另外,當勾選了Capture Submitted Data後,頁面還會多出一個Redirect to,其作用是當受害用戶點擊提交表單後,將頁面重定向到指定的URL。可以填寫被偽造網站的URL,營造出一種受害用戶第一次填寫帳號密碼填錯的感覺(一般來說,當一個登錄頁面提交的表單數據與資料庫中不一致時,登錄頁面的URL會被添加上一個出錯參數,以提示用戶帳號或密碼出錯,所以在Redirect to中,最好填寫帶出錯參數的URL)。
填寫好以上參數,點擊Save Page,即可保存編輯好的釣魚頁面。
1. Email Templates 釣魚郵件模板
創建相應的釣魚郵件模板 此處釣魚模板可直接進行編輯,也可導入其他郵箱的模板。
Name:同樣的,這個欄位是對當前新建的釣魚郵件模板進行命名。
Import Email:gophish為編輯郵件內容提供了兩種方式,
第一種就是Import Email,用戶可以先在自己的郵箱系統中設計好釣魚郵件,然後發送給自己或其他夥伴,收到設計好的郵件後,打開並選擇導出為eml文件或者顯示郵件原文,然後將內容複製到gophish的Import Email中,即可將設計好的釣魚郵件導入。
這裡直接在 QQ 郵箱打開一封信,點擊顯示原文們就可以複製,導入,粘貼進去。
效果:
需要注意,在點擊Import之前需要勾選上Change Links to Point to Landing Page,該功能實現了當創建釣魚事件後,會將郵件中的超連結自動轉變為釣魚網站的URL。
Subject:Subject 是郵件的主題,通常為了提高郵件的真實性,需要自己去編造一個吸引人的主題。
內容編輯框:內容編輯框是編寫郵件內容的第二種模式,內容編輯框提供了Text和HTML兩種模式來編寫郵件內容,使用方式與正常的編輯器無異。其中HTML模式下的預覽功能比較常用到,在編輯好內容後,點擊預覽,就可以清晰看到郵件呈現的具體內容以及格式。
Add Tracking Image:Add Tracking Image 是在釣魚郵件末添加一個跟蹤圖像,用來跟蹤受害用戶是否打開了收到的釣魚郵件。默認情況下是勾選的,如果不勾選就無法跟蹤到受害用戶是否打開了釣魚郵件(註:跟蹤受害用戶是否點擊釣魚連結以及捕捉提交數據不受其影響)Add Files:Add Files 是在發送的郵件中添加附件,一是可以添加相關文件提高郵件真實性,二是可以配合免殺木馬誘導受害用戶下載並打開。
當填寫完以上欄位後,點擊Save Template,就能保存當前編輯好的釣魚郵件模板。
1. User & Groups 用戶和組
Users & Groups的作用是將釣魚的目標郵箱導入gophish中準備發送點擊New Group新建一個釣魚的目標用戶組。
Name:Name 是為當前新建的用戶組命名。
Bulk Import Users:Bulk Import Users是批量導入用戶郵箱,它通過上傳符合特定模板的CSV文件來批量導入目標用戶郵箱點擊旁邊灰色字體的Download CSV Template可以下載特定的CSV模板文件。其中,模板文件的Email是必填項,其餘的Frist Name、Last Name、Position可選填。
Add:除了批量導入目標用戶的郵箱,gophish也提供了單個郵箱的導入方法,這對於開始釣魚前,釣魚組內部測試十分方便,不需要繁瑣的文件上傳,直接填寫Email即可,同樣其餘的Frist Name、Last Name、Position可選填。
編輯好目標用戶的郵箱後,點擊Save Changes即可保存編輯好的目標郵箱保存在gophish中。
1. Campaigns 釣魚事件
Campaigns 的作用是將上述四個功能Sending Profiles、Email Templates、Landing Pages、Users & Groups聯繫起來,並創建釣魚事件。
在Campaigns中,可以新建釣魚事件,並選擇編輯好的釣魚郵件模板,釣魚頁面,通過配置好的發件郵箱,將釣魚郵件發送給目標用戶組內的所有用戶。
點擊New Campaign新建一個釣魚事件。
Name:Name 是為新建的釣魚事件進行命名。
Email Template:Email Template 即釣魚郵件模板,這裡選擇剛剛上面編輯好的釣魚郵件模板。
Landing Page:Landing Page 即釣魚頁面,這裡選擇剛剛上面編輯好的。
(重點)URL:URL 是用來替換選定釣魚郵件模板中超連結的值,該值指向部署了選定釣魚頁面的url網址。
簡單來說,這裡的URL需要填寫當前運行gophish腳本主機的ip。因為啟動gophish後,gophish默認監聽了3333和80埠,其中3333埠是後臺管理系統,而80埠就是用來部署釣魚頁面的。當URL填寫了http://主機IP/,或者[http://mail.xxx.xxx/](http://mail.xxx.xxx/)並成功創建了當前的釣魚事件後。gophish會在主機的80埠部署當前釣魚事件所選定的釣魚頁面,並在發送的釣魚郵件裡,將其中所有的超連結都替換成部署在80埠的釣魚頁面的url。
Launch Date:Launch Date 即釣魚事件的實施日期,通常如果僅發送少量的郵箱,該項不需要修改。如果需要發送大量的郵箱,則配合旁邊的Send Emails By效果更佳。
(可選)Send Emails By:Send Emails By 配合Launch Date使用,可以理解為當前釣魚事件下所有釣魚郵件發送完成的時間。Launch Date作為起始發件時間,Send Emails By作為完成發件時間,而它們之間的時間將被所有郵件以分鐘為單位平分。
Sending Profile:Sending Profile 即發件策略,這裡選擇剛剛編輯好的:
填寫完以上欄位,點擊Launch Campaign後將會創建本次釣魚事件(注意:如果未修改Launch Date,則默認在創建釣魚事件後就立即開始發送釣魚郵件)。
1. Dashboard 儀表爬
當創建了釣魚事件後,Dashboard 會自動開始統計數據。統計的數據項包括郵件發送成功的數量及比率,郵件被打開的數量及比率,釣魚連結被點擊的數量及比率,帳密數據被提交的數量和比率,以及收到電子郵件報告的數量和比率。另外,還有時間軸記錄了每個行為發生的時間點。
需要注意的是,Dashboard統計的是所有釣魚事件的數據,而非單個釣魚事件的數據,如果僅需要查看單個釣魚事件的統計數據,可以在Campaigns中找到該釣魚事件,點擊View Results按鈕查看。
三、郵箱打點郵件釣魚信息收集:
3.1 尋找目標開放的郵件服務埠和Web端郵箱入口通過掃描c段找到入口
首先要先從MX記錄域名找到他的真實ip地址。
然後針對這個ip地址的c段進行掃描(25、109、110、143、465、995、993埠),一般情況下都很容易找到目標的郵件伺服器入口。
通過子域名的方式找到郵件入口
Sublist3r、TeeMO、LangSrcCurise、挖掘機等。
通過搜尋引擎爬取
Google hack 搜索;
百度、搜狗、360、bing。
site:target.com intitle:」Outlook Web App」
site:target.com intitle:」mail」
site:target.com intitle:」webmail」
Shodan、fofa、zoomeye搜索等。
3.2 批量收集目標郵箱https://hunter.io/
http://www.skymem.info/
https://www.email-format.com/i/search/
https://github.com/bit4woo/teemo
https://github.com/laramies/theHarvester
3.3 驗證郵箱在收集郵箱之後,我們要對郵箱進行驗證,因為有些郵箱目標企業人員已經放棄或不用(離職,職位調動等)。
通過mailtester.com可以查詢郵箱地址是否存在
https://mailtester.com/testmail.php
verifyemail這款工具可批量驗證郵箱
https://github.com/Tzeross/verifyemail
mailtester.py
https://github.com/angusluk/MailTester
這款工具可以自動組合郵箱地址再根據組合的結果逐個驗證。
腳本的好處在於,它會根據 First / Last Name 中的名字隨意拼裝組合,然後再對其進行逐個驗證。
當我們在對郵箱用戶進行枚舉的時候,儘量多找一些字典,如中國人姓名拼音、字母縮寫top100,1000,10000,此處我們需要更多的魚叉,多一個郵箱就多一份成功率。
當然可以把搜集到疑似網絡管理員、運維人員、安全部門的人員提取出來,這些人單獨寫郵箱或者不發,因為這些人安全意識相對較高,容易打草驚蛇,我們需要對一些非技術員工安全意識薄弱的人下手,挑軟柿子捏。
這裡可以配合這個網址https://www.aies.cn/pinyin.htm根據收集到的目標信息制定對應人名字典進行組合。
3.4 郵箱爆破這種方式的弱口令爆破只適用於目標企業自己的郵件伺服器如owa等 像百度騰訊阿里網易的郵箱不優先考慮。
用到的工具medusa、hydra、SNETCracker、APT34組織 owa爆破工具等。
另外郵箱用戶名與密碼往往還會使用公司簡稱+2019,2020等社工口令,多一個字典就多一份成功率。
四、郵箱偽造一般情況下沒有SPF可以 直接用swaks偽造。
-t –to 目標地址 -t test@test.com-f –from 來源地址 (發件人) -f "text<text@text.com>"–protocol 設定協議(未測試)--body "http://www.baidu.com" --header "Subject:hello" -ehlo 偽造郵件ehlo頭--data ./Desktop/email.txt在線偽造:
http://tool.chacuo.net/mailanonymous
匿名郵件:
http://tool.chacuo.net/mailsend
五、繞過 SPF繞過 sendgird, mailgun
在有SPF的情況下,就需要繞過SPF,可以使用swaks+smtp2go,需要藉助到郵件託管平臺來繞過SPF監測。
六、釣魚域名註冊有了文案,怎麼能讓郵件看起來真實性更高呢?最簡單的就是用超連結,把元素內容改成想要仿冒的域名,在郵箱頁面上,就會直接顯示元素的內容,我們可以使用一些與目標相似的域名。比如用0代替o,用1代替l,用vv代替w等等,這就需要發揮你的想像來尋找相似的域名:如果找不到這樣形似的域名或者這種域名比較貴的情況下,可以嘗試一些更騷的操作。。例如使用國際域名這樣的域名是怎麼註冊的呢?在了解怎麼註冊一個這樣的域名前,需要先了解什麼是國際域名IDN。
6.1什麼是IDN?是指在域名中包含至少一個特殊語言字母的域名,特殊語言包括中文、法文、拉丁文等。在DNS系統工作中,這種域名會被編碼成ASCII字符串,並通過Punycode進行翻譯。Punycode是一個根據RFC 3492標準而制定的編碼系統,主要用於把域名從地方語言所採用的Unicode編碼轉換成為可用於DNS系統的編碼。
目前,因為作業系統的核心都是英文組成,DNS伺服器的解析也是由英文代碼交換,所以DNS伺服器上並不支持直接的中文域名解析,所有中文域名的解析都需要轉成punycode碼,然後由DNS解析punycode碼。其實目前所說的各種主流瀏覽器都完美支持IDN域名,瀏覽器裡面會自動對IDN域名進行Punycode轉碼,而地址欄依舊顯示的是原始輸入的IDN域名。
看看這兩個域名,
www.biṇaṇce.com
www.binance.com乍一看,這一樣的把。可是當把第一個域名複製到瀏覽器後就成了其他字符了。仔細看看,第一個域名 n 下面有個點 ,哈哈哈,這就是區別,他其實是經過punycode轉碼後的域名
www.xn--biace-4l1bb.com
在試試
www.ąliyun.com
在這裡可以找到相似的,然後編碼一下,
punycode在線轉換工具:http://tools.jb51.net/punycode/index.php
UniCode編碼表:https://www.cnblogs.com/csguo/p/7401874.html前邊仿冒的再像,但如果瀏覽器上直接出現了不安全警告或者紅斜槓,也很容易引起目標的警惕。所以在條件允許的情況下,儘量做戲做全套.
七、釣魚文件製作7.1 APT小技能偽造擴展名 kilerrat 工具
文件捆綁
傳統宏文件
CHM釣魚
CVE-2018-2174
Windows 快捷鍵
構造DDE釣魚文檔
word 中插入外部對象(OLE)方式欺騙
IQY特性釣魚
PPT 動作按鈕特性構造 PPSX釣魚
RAR解壓釣魚