程序员伪造邮件钓鱼,从入门到入土!
郵件釣魚入門到入土
在大型企業(yè)邊界安全做的越來越好的情況下,不管是 APT 攻擊還是紅藍對抗演練,釣魚和水坑攻擊被越來越多的應用。
一、郵件安全的三大協(xié)議
1.1 SPF
SPF 是 Sender Policy Framework 的縮寫,中文譯為發(fā)送方策略框架。
主要作用是防止偽造郵件地址。
由于發(fā)送電子郵件的傳統(tǒng)規(guī)范 - 1982年制定的《簡單郵件傳輸協(xié)議(SMTP)》對發(fā)件人的郵件地址根本不進行認證,導致垃圾郵件制造者可以隨意編造寄件人地址來發(fā)送垃圾信,而接收者則毫無辦法,因為你無法判斷收到的郵件到底是誰寄來的。
在SPF體系中,每個需要發(fā)送電子郵件的企業(yè)在其對外發(fā)布的DNS域名記錄中,列出自己域名下需要發(fā)送郵件的所有IP地址段;而接收到郵件的服務器則根據(jù)郵件中發(fā)件人所屬的域名,查找該企業(yè)發(fā)布的合法IP地址段,再對照發(fā)送郵件的機器是否屬于這些地址段,就可以判別郵件是否偽造的。
查詢是否開啟 SPF
nslookup-type=txtqq.comdig-ttxtqq.com記錄中有spf1說明使用 spf ,所謂偽造郵件的時候是發(fā)送不到qq郵箱的。
但是一般甲方是沒有設置此協(xié)議的。
1.2 DKIM
DKIM,電子郵件驗證標準——域名密鑰識別郵件標準。DomainKeys Identified Mail的縮寫。
一般來說,發(fā)送方會在電子郵件的標頭插入DKIM-Signature及電子簽名資訊。而接收方則透過DNS查詢得到公開密鑰后進行驗證。
1.3 DMARC
dmarc,2012年1月30號由Paypal,Google,微軟,雅虎等開發(fā),相關(guān)內(nèi)容有DMARC協(xié)議。關(guān)注公眾號:Python人工智能編程,回復Python獲取資料。
[DMARC]協(xié)議基于現(xiàn)有的[DKIM]和[SPF]兩大主流電子郵件安全協(xié)議,由Mail Sender方(域名擁有者Domain Owner)在[DNS]里聲明自己采用該協(xié)議。當Mail Receiver方(其MTA需支持DMARC協(xié)議)收到該域發(fā)送過來的郵件時,則進行DMARC校驗,若校驗失敗還需發(fā)送一封report到指定[URI](常是一個郵箱地址)。
二、環(huán)境搭建
準備與目標相關(guān)聯(lián)相似域名
公網(wǎng)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端口代表釣魚網(wǎng)站開放的端口;后臺管理頁面開放的端口是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": ""}}后臺運行,目前環(huán)境即搭建完成。
chmod+x gophish./gophish &訪問https://IP:3333/
可能會提示證書不正確,依次點擊高級—繼續(xù)轉(zhuǎn)到頁面,輸入默認賬密進行登錄:admin/gophish
也有可能不是默認密碼,在vps啟動./gophish之后,會在命令行中給出一個臨時密碼,用臨時密碼登錄之后再設置新的密碼。
訪問釣魚界面:
打開瀏覽器,訪問http://ip:80/由于我們還未配置釣魚頁面,提示小段的404 page not found說明運行正常。
Gophish搭建完成。
2.2 EwoMail搭建
官方文檔:
http://doc.ewomail.com/docs/ewomail/installewomail要求 centos ,但是此時并不像重裝系統(tǒng),所以使用docker 進行搭建。
apt install docker.iodocker search ewomaildocker pull bestwu/ewomail創(chuàng)建并且啟動容器:(把命令中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發(fā)件策略六大功能:
| Dashboard | 儀表板,查看整體測試情況 |
| Campaigns | 每次攻擊前需要配置一次 |
| Users & Groups | 用戶和用戶組(添加需要進行釣魚的郵箱和相關(guān)基礎信息) |
| Email Templates | 電子郵件模板 |
| Landing Pages | 需要偽造的釣魚頁面 |
| Sending Profiles | 釣魚郵箱發(fā)送配置 |
Sending Profiles 發(fā)件策略
Sending Profiles的主要作用是將用來發(fā)送釣魚郵件的郵箱配置到gophish。
點擊New Profile新建一個策略,依次來填寫各個字段。填寫剛才新建的發(fā)送郵箱地址和用戶名。
Name:Name字段是為新建的發(fā)件策略進行命名,不會影響到釣魚的實施。
Interface Type:Interface Type 是接口類型,默認為SMTP類型且不可修改,因此需要發(fā)件郵箱開啟SMTP服務,但是大部分機器 smtp 的 25 端口被禁用了,因此需要配置成 465 端口。
From:From 是發(fā)件人,即釣魚郵件所顯示的發(fā)件人。(在實際使用中,一般需要進行近似域名偽造)。
Host:Host 是smtp服務器的地址,格式是smtp.example.com:25
Username:Username 是smtp服務認證的用戶名.Password:Password 是smtp服務認證的密碼。
(可選)Email Headers:Email Headers 是自定義郵件頭字段,例如郵件頭的X-Mailer字段,若不修改此字段的值,通過gophish發(fā)出的郵件,其郵件頭的X-Mailer的值默認為gophish。
設置好以上字段,可以點擊Send Test Email來發(fā)送測試郵件,以檢測smtp服務器是否認證通過。
但是QQ 郵箱收不到,啊.....
先用qq郵箱轉(zhuǎn)發(fā)吧:
用戶和from 都填 qq 郵箱賬號。
密碼填授權(quán)碼:
成功頁面。
1. Landing Pages 釣魚頁面
配置好釣魚郵件后,就可以通過LandingPages模塊來新建釣魚網(wǎng)站頁面,此處支持手寫 html文件,也可通過導入網(wǎng)站功能。
Name:Name 是用于為當前新建的釣魚頁面命名。
Import Site:gophish為釣魚頁面的設計提供了兩種方式,
第一種則是Import Site,點擊Import Site后,填寫被偽造網(wǎng)站的URL,再點擊Import,即可通過互聯(lián)網(wǎng)自動抓取被偽造網(wǎng)站的前端代碼。
這里測試百度。
內(nèi)容編輯框是編輯釣魚頁面的第二種方法,但是絕大多數(shù)情況下,它更偏向于用來輔助第一種方法,即對導入的頁面進行源碼修改以及預覽。
(重點)Capture Submitted Data:
通常,進行釣魚的目的往往是捕獲受害用戶的用戶名及密碼,因此,在點擊Save Page之前,記得一定要勾選Capture Submitted Data當勾選了Capture Submitted Data后,頁面會多出一個Capture Passwords的選項,顯然是捕獲密碼。通常,可以選擇勾選上以驗證賬號的可用性。如果僅僅是測試并統(tǒng)計受害用戶是否提交數(shù)據(jù)而不泄露賬號隱私,則可以不用勾選另外,當勾選了Capture Submitted Data后,頁面還會多出一個Redirect to,其作用是當受害用戶點擊提交表單后,將頁面重定向到指定的URL。可以填寫被偽造網(wǎng)站的URL,營造出一種受害用戶第一次填寫賬號密碼填錯的感覺(一般來說,當一個登錄頁面提交的表單數(shù)據(jù)與數(shù)據(jù)庫中不一致時,登錄頁面的URL會被添加上一個出錯參數(shù),以提示用戶賬號或密碼出錯,所以在Redirect to中,最好填寫帶出錯參數(shù)的URL)。
填寫好以上參數(shù),點擊Save Page,即可保存編輯好的釣魚頁面。
1. Email Templates 釣魚郵件模板
創(chuàng)建相應的釣魚郵件模板 此處釣魚模板可直接進行編輯,也可導入其他郵箱的模板。
Name:同樣的,這個字段是對當前新建的釣魚郵件模板進行命名。
Import Email:gophish為編輯郵件內(nèi)容提供了兩種方式,
第一種就是Import Email,用戶可以先在自己的郵箱系統(tǒng)中設計好釣魚郵件,然后發(fā)送給自己或其他伙伴,收到設計好的郵件后,打開并選擇導出為eml文件或者顯示郵件原文,然后將內(nèi)容復制到gophish的Import Email中,即可將設計好的釣魚郵件導入。
這里直接在 QQ 郵箱打開一封信,點擊顯示原文們就可以復制,導入,粘貼進去。
效果:
需要注意,在點擊Import之前需要勾選上Change Links to Point to Landing Page,該功能實現(xiàn)了當創(chuàng)建釣魚事件后,會將郵件中的超鏈接自動轉(zhuǎn)變?yōu)獒烎~網(wǎng)站的URL。
Subject:Subject 是郵件的主題,通常為了提高郵件的真實性,需要自己去編造一個吸引人的主題。
內(nèi)容編輯框:內(nèi)容編輯框是編寫郵件內(nèi)容的第二種模式,內(nèi)容編輯框提供了Text和HTML兩種模式來編寫郵件內(nèi)容,使用方式與正常的編輯器無異。其中HTML模式下的預覽功能比較常用到,在編輯好內(nèi)容后,點擊預覽,就可以清晰看到郵件呈現(xiàn)的具體內(nèi)容以及格式。
Add Tracking Image:Add Tracking Image 是在釣魚郵件末添加一個跟蹤圖像,用來跟蹤受害用戶是否打開了收到的釣魚郵件。默認情況下是勾選的,如果不勾選就無法跟蹤到受害用戶是否打開了釣魚郵件(注:跟蹤受害用戶是否點擊釣魚鏈接以及捕捉提交數(shù)據(jù)不受其影響)Add Files:Add Files 是在發(fā)送的郵件中添加附件,一是可以添加相關(guān)文件提高郵件真實性,二是可以配合免殺木馬誘導受害用戶下載并打開。
當填寫完以上字段后,點擊Save Template,就能保存當前編輯好的釣魚郵件模板。
1. User & Groups 用戶和組
Users & Groups的作用是將釣魚的目標郵箱導入gophish中準備發(fā)送點擊New Group新建一個釣魚的目標用戶組。
Name:Name 是為當前新建的用戶組命名。
Bulk Import Users:Bulk Import Users是批量導入用戶郵箱,它通過上傳符合特定模板的CSV文件來批量導入目標用戶郵箱點擊旁邊灰色字體的Download CSV Template可以下載特定的CSV模板文件。其中,模板文件的Email是必填項,其余的Frist Name、Last Name、Position可選填。
Add:除了批量導入目標用戶的郵箱,gophish也提供了單個郵箱的導入方法,這對于開始釣魚前,釣魚組內(nèi)部測試十分方便,不需要繁瑣的文件上傳,直接填寫Email即可,同樣其余的Frist Name、Last Name、Position可選填。
編輯好目標用戶的郵箱后,點擊Save Changes即可保存編輯好的目標郵箱保存在gophish中。
1. Campaigns 釣魚事件
Campaigns 的作用是將上述四個功能Sending Profiles、Email Templates、Landing Pages、Users & Groups聯(lián)系起來,并創(chuàng)建釣魚事件。
在Campaigns中,可以新建釣魚事件,并選擇編輯好的釣魚郵件模板,釣魚頁面,通過配置好的發(fā)件郵箱,將釣魚郵件發(fā)送給目標用戶組內(nèi)的所有用戶。
點擊New Campaign新建一個釣魚事件。
Name:Name 是為新建的釣魚事件進行命名。
Email Template:Email Template 即釣魚郵件模板,這里選擇剛剛上面編輯好的釣魚郵件模板。
Landing Page:Landing Page 即釣魚頁面,這里選擇剛剛上面編輯好的。
(重點)URL:URL 是用來替換選定釣魚郵件模板中超鏈接的值,該值指向部署了選定釣魚頁面的url網(wǎng)址。
簡單來說,這里的URL需要填寫當前運行g(shù)ophish腳本主機的ip。因為啟動gophish后,gophish默認監(jiān)聽了3333和80端口,其中3333端口是后臺管理系統(tǒng),而80端口就是用來部署釣魚頁面的。當URL填寫了http://主機IP/,或者[http://mail.xxx.xxx/](http://mail.xxx.xxx/)并成功創(chuàng)建了當前的釣魚事件后。gophish會在主機的80端口部署當前釣魚事件所選定的釣魚頁面,并在發(fā)送的釣魚郵件里,將其中所有的超鏈接都替換成部署在80端口的釣魚頁面的url。
Launch Date:Launch Date 即釣魚事件的實施日期,通常如果僅發(fā)送少量的郵箱,該項不需要修改。如果需要發(fā)送大量的郵箱,則配合旁邊的Send Emails By效果更佳。
(可選)Send Emails By:Send Emails By 配合Launch Date使用,可以理解為當前釣魚事件下所有釣魚郵件發(fā)送完成的時間。Launch Date作為起始發(fā)件時間,Send Emails By作為完成發(fā)件時間,而它們之間的時間將被所有郵件以分鐘為單位平分。
Sending Profile:Sending Profile 即發(fā)件策略,這里選擇剛剛編輯好的:
填寫完以上字段,點擊Launch Campaign后將會創(chuàng)建本次釣魚事件(注意:如果未修改Launch Date,則默認在創(chuàng)建釣魚事件后就立即開始發(fā)送釣魚郵件)。
1. Dashboard 儀表爬
當創(chuàng)建了釣魚事件后,Dashboard 會自動開始統(tǒng)計數(shù)據(jù)。統(tǒng)計的數(shù)據(jù)項包括郵件發(fā)送成功的數(shù)量及比率,郵件被打開的數(shù)量及比率,釣魚鏈接被點擊的數(shù)量及比率,賬密數(shù)據(jù)被提交的數(shù)量和比率,以及收到電子郵件報告的數(shù)量和比率。另外,還有時間軸記錄了每個行為發(fā)生的時間點。
需要注意的是,Dashboard統(tǒng)計的是所有釣魚事件的數(shù)據(jù),而非單個釣魚事件的數(shù)據(jù),如果僅需要查看單個釣魚事件的統(tǒng)計數(shù)據(jù),可以在Campaigns中找到該釣魚事件,點擊View Results按鈕查看。
三、郵箱打點
郵件釣魚信息收集:
信息刺探
信息驗證
郵箱定位
內(nèi)容偽造
文件偽造
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:”O(jiān)utlook 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 驗證郵箱
在收集郵箱之后,我們要對郵箱進行驗證,因為有些郵箱目標企業(yè)人員已經(jīng)放棄或不用(離職,職位調(diào)動等)。
通過mailtester.com可以查詢郵箱地址是否存在
https://mailtester.com/testmail.phpverifyemail這款工具可批量驗證郵箱
https://github.com/Tzeross/verifyemailmailtester.py
https://github.com/angusluk/MailTester這款工具可以自動組合郵箱地址再根據(jù)組合的結(jié)果逐個驗證。
腳本的好處在于,它會根據(jù) First / Last Name 中的名字隨意拼裝組合,然后再對其進行逐個驗證。
當我們在對郵箱用戶進行枚舉的時候,盡量多找一些字典,如中國人姓名拼音、字母縮寫top100,1000,10000,此處我們需要更多的魚叉,多一個郵箱就多一份成功率。
當然可以把搜集到疑似網(wǎng)絡管理員、運維人員、安全部門的人員提取出來,這些人單獨寫郵箱或者不發(fā),因為這些人安全意識相對較高,容易打草驚蛇,我們需要對一些非技術(shù)員工安全意識薄弱的人下手,挑軟柿子捏。
這里可以配合這個網(wǎng)址https://www.aies.cn/pinyin.htm根據(jù)收集到的目標信息制定對應人名字典進行組合。
3.4 郵箱爆破
這種方式的弱口令爆破只適用于目標企業(yè)自己的郵件服務器如owa等 像百度騰訊阿里網(wǎng)易的郵箱不優(yōu)先考慮。
用到的工具medusa、hydra、SNETCracker、APT34組織 owa爆破工具等。
另外郵箱用戶名與密碼往往還會使用公司簡稱+2019,2020等社工口令,多一個字典就多一份成功率。
四、郵箱偽造
一般情況下沒有SPF可以 直接用swaks偽造。
-t –to 目標地址 -t test@test.com-f –from 來源地址 (發(fā)件人) -f "text<text@text.com>"–protocol 設定協(xié)議(未測試)--body "http://www.baidu.com" //引號中的內(nèi)容即為郵件正文;--header "Subject:hello" //郵件頭信息,subject為郵件標題-ehlo 偽造郵件ehlo頭--data ./Desktop/email.txt //將正常源郵件的內(nèi)容保存成TXT文件,再作為正常郵件發(fā)送;在線偽造:
http://tool.chacuo.net/mailanonymous
匿名郵件:
http://tool.chacuo.net/mailsend
五、繞過 SPF
繞過 sendgird, mailgun
在有SPF的情況下,就需要繞過SPF,可以使用swaks+smtp2go,需要借助到郵件托管平臺來繞過SPF監(jiān)測。
swaks --to xxx@163.com --from admin@gov.com --ehlo xxx dan--body “hello ,i'm 007"--server mail.smtp2go.com -p 2525 -au user -ap pass六、釣魚域名注冊
有了文案,怎么能讓郵件看起來真實性更高呢?最簡單的就是用超鏈接,把元素內(nèi)容改成想要仿冒的域名,在郵箱頁面上,就會直接顯示元素的內(nèi)容,我們可以使用一些與目標相似的域名。比如用0代替o,用1代替l,用vv代替w等等,這就需要發(fā)揮你的想象來尋找相似的域名:如果找不到這樣形似的域名或者這種域名比較貴的情況下,可以嘗試一些更騷的操作。。例如使用國際域名這樣的域名是怎么注冊的呢?在了解怎么注冊一個這樣的域名前,需要先了解什么是國際域名IDN。
6.1什么是IDN?
是指在域名中包含至少一個特殊語言字母的域名,特殊語言包括中文、法文、拉丁文等。在DNS系統(tǒng)工作中,這種域名會被編碼成ASCII字符串,并通過Punycode進行翻譯。Punycode是一個根據(jù)RFC 3492標準而制定的編碼系統(tǒng),主要用于把域名從地方語言所采用的Unicode編碼轉(zhuǎn)換成為可用於DNS系統(tǒng)的編碼。
目前,因為操作系統(tǒng)的核心都是英文組成,DNS服務器的解析也是由英文代碼交換,所以DNS服務器上并不支持直接的中文域名解析,所有中文域名的解析都需要轉(zhuǎn)成punycode碼,然后由DNS解析punycode碼。其實目前所說的各種主流瀏覽器都完美支持IDN域名,瀏覽器里面會自動對IDN域名進行Punycode轉(zhuǎn)碼,而地址欄依舊顯示的是原始輸入的IDN域名。
看看這兩個域名,
www.bi?a?ce.comwww.binance.com乍一看,這一樣的把。可是當把第一個域名復制到瀏覽器后就成了其他字符了。仔細看看,第一個域名 n 下面有個點 ,哈哈哈,這就是區(qū)別,他其實是經(jīng)過punycode轉(zhuǎn)碼后的域名
www.xn--biace-4l1bb.com在試試
www.?liyun.com在這里可以找到相似的,然后編碼一下,
punycode在線轉(zhuǎn)換工具:http://tools.jb51.net/punycode/index.phpUniCode編碼表:https://www.cnblogs.com/csguo/p/7401874.html前邊仿冒的再像,但如果瀏覽器上直接出現(xiàn)了不安全警告或者紅斜杠,也很容易引起目標的警惕。所以在條件允許的情況下,盡量做戲做全套.
七、釣魚文件制作
7.1 APT小技能
偽造擴展名 kilerrat 工具
文件捆綁
傳統(tǒng)宏文件
CHM釣魚
CVE-2018-2174
Windows 快捷鍵
構(gòu)造DDE釣魚文檔
word 中插入外部對象(OLE)方式欺騙
IQY特性釣魚
PPT 動作按鈕特性構(gòu)造 PPSX釣魚
RAR解壓釣魚
---END---
推薦一個公眾號里有各種各樣的破姐應用、效率神器、學習資料以及各種漢化游戲,讓你完全不花一分錢就能體會到市面上各種SVIP的待遇,保證讓你能有一番全新的黑科技體驗,在他的公眾號中,所有應用、游戲、各種資源全都可以直接免費下載,絕對沒有任何套路!!!· END ·關(guān)注后臺回復【抽獎】參與抽獎 幾個號主共同舉辦的眾籌活動活動以人格保證,真實有效總結(jié)
以上是生活随笔為你收集整理的程序员伪造邮件钓鱼,从入门到入土!的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 我的软件工程师之梦
- 下一篇: onpropertychange与输入法