Gophish:钓鱼执法

1,Gophish平台搭建

1.1,Gophish下载安装

Gophish是一款开源的渗透测试框架,用于模拟钓鱼攻击和进行社会工程学评估。它是一个强大的工具,可以帮助安全团队评估其组织的防御能力,并提供对内部员工的培训。Gophish提供了一个直观的Web界面,使用户能够轻松创建和发送钓鱼攻击。用户可以创建各种类型的钓鱼模板,包括伪造的登录页面、恶意文件下载等,并将其发送给目标用户。当目标用户点击链接或共享敏感信息时,Gophish会记录并生成报告,以评估组织的弱点和薄弱环节。需要注意的是,Gophish只能用于合法授权的渗透测试和安全评估活动。在使用Gophish时,请确保遵守适用的法律法规,并获得相关授权和许可。

【安装教程】

  • 下载Gophish包
mkdir gophish

cd gophish

wget https://github.com/gophish/gophish/releases/download/v0.12.1/gophish-v0.12.1-linux-64bit.zip

unzip gophish-v0.12.1-linux-64bit.zip

  • 修改配置文件 config.json
{
        "admin_server": {
                "listen_url": "0.0.0.0:3333",
                "use_tls": true,
                "cert_path": "gophish_admin.crt",
                "key_path": "gophish_admin.key",
                "trusted_origins": []
        },
        "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": ""
        }
}
=========================================================
​​​​​​​admin_server 是后台管理页面,我们要将 127.0.0.1 改为 0.0.0.0,默认开放的端口为3333。
phishserver是钓鱼网站,默认开放80端口。listenurl 也要是 0.0.0.0,如果 80 端口被占用了可以改为其他端口比如 81。
contact_address 不是一定要加上的,可以加一个。
  • 在阿里云开放3333端口
  • 启动Gophish
chmod 777 gophish
 
#直接启动
./gophish
#后台启动
nohup ./gophish &
  • 成功启动后,在命令行输出的初始账户密码可以用来登录控制台,首次登录会强制修改密码。
time="2023-07-27T15:06:42+08:00" level=warning msg="No contact address has been configured."
time="2023-07-27T15:06:42+08:00" level=warning msg="Please consider adding a contact_address entry in your config.json"
goose: no migrations to run. current version: 20220321133237
time="2023-07-27T15:06:42+08:00" level=info msg="Please login with the username admin and the password 80f6963c72506c12"
time="2023-07-27T15:06:42+08:00" level=info msg="Starting IMAP monitor manager"
time="2023-07-27T15:06:42+08:00" level=info msg="Starting new IMAP monitor for user admin"
time="2023-07-27T15:06:42+08:00" level=info msg="Starting admin server at https://0.0.0.0:3333"
time="2023-07-27T15:06:42+08:00" level=info msg="Starting phishing server at http://0.0.0.0:80"

1.2,Gophish平台各模块功能

Gophish左边从上到下分别是:

【Sending Profiles—钓鱼邮箱发送配置】Sending Profiles的主要作用是将用来发送钓鱼邮件的邮箱配置到Gophish,这里以QQ邮箱对自己进行钓鱼为案例。点击 “New Profile” 新建一个策略,依次来填写各个字段: ​​​​​​​​

  • Name:配置名字,自定义 Gophish-QQ-demo
  • Interface Type:Interface Type 是接口类型,默认为 SMTP类型 且不可修改,因此需要发件邮箱开启SMTP服务。
  • From:发件人,即钓鱼邮件所显示的发件人。在实际使用中,一般需要进行近似域名伪造,以qq邮箱为例,所以From字段可以写:myQQ@qq.com
  • Host:Host 是SMTP服务器的地址,格式是 smtp.example.com:25,例如qq邮箱的smtp服务器地址为 smtp.qq.com。但这里要注意,如果搭建Gophish平台用的vps是阿里云的话,是不能使用25端口的,因为阿里云禁用25端口,你可以通过提工单解封,但申请通过的难度很大。所以,我们这里可以把25端口改为465端口,即填写 smtp.qq.com:465,这样就可以成功发送邮件了。
  • Username:Username 是SMTP服务认证的用户名,如果是qq邮箱,Username则是自己的qq邮箱号 myQQ@qq.com
  • Password:Password 是SMTP服务认证的密码,例如qq邮箱,需要在登录qq邮箱后,依次点击 “设置”—>“账户”—>“开启SMPT服务”—>“生成授权码”来获取SMTP服务授权码,Password的值则填写我们收到的授权码。
  • Email Headers(选填):Email Headers 是自定义邮件头字段,例如邮件头的 X-Mailer 字段,若不修改此字段的值,通过gophish发出的邮件,其邮件头的X-Mailer的值默认为gophish。

设置好以上字段,可以点击 “Send Test Email” 来给自己发送一个测试邮件,以检测SMTP服务器是否认证通过。如下,成功收到测试邮件,说明SMTP服务器是否认证通过:

至此,发件邮箱的配置已经完成。当然,在实际钓鱼中,不可能使用自己的qq邮箱去发送钓鱼邮件。一是因为很容易暴露自身身份,而且邮件真实性低,二是qq邮箱这类第三方邮箱对每个用户每日发件数存在限制,对钓鱼有检测、会被封的,所以我们还是得自己搭建邮件服务器。

【Email Templates—钓鱼邮件模板】点击“New Template”新建钓鱼邮件模板,依次介绍填写各个字段:

  • Name:邮件模版名字,自定义。
  • Import Email:Gophish为编辑邮件内容提供了两种方式,第一种就是 “Import Email”。用户可以先在自己的邮箱系统中设计好钓鱼邮件,然后发送给自己或其他伙伴,收到设计好的邮件后,打开并选择“导出为eml文件”或者“显示邮件原文”,然后将内容复制到gophish的“Import Email”中,即可将设计好的钓鱼邮件的导入。需要注意的是,在点击“Import”之前需要勾选上“Change Links to Point to Landing Page”,该功能实现了当创建钓鱼事件后,会将邮件中的超链接自动转变为钓鱼网站的URL。
  • Subject:Subject 是邮件的主题,通常为了提高邮件的真实性,需要自己去编造一个吸引人的主题:您好,请核对您的工时。
  • 内容编辑框:内容编辑框是编写邮件内容的第二种模式,内容编辑框提供了 TextHTML两种模式来编写邮件内容,使用方式与正常的编辑器无异。其中HTML模式下的“预览”功能比较常用到,在编辑好内容后,点击预览,就可以清晰看到邮件呈现的具体内容以及格式。
  • Add Tracking Image:Add Tracking Image 是在钓鱼邮件末添加一个“跟踪图像”,用来跟踪受害用户是否打开了收到的钓鱼邮件。默认情况下是勾选的,如果不勾选就无法跟踪到受害用户是否打开了钓鱼邮件。
  • Add Files:Add Files 是在发送的邮件中“添加附件”,一是可以添加相关文件提高邮件真实性,二是可以配合免杀木马诱导受害用户下载并打开。

【Landing Pages—伪造钓鱼页面】完成钓鱼邮件的编写后,下一步则需要在Landing Pages中设计由邮件中超链接指向的钓鱼网页,点击 “New Page” 新建页面:

  • Name:自定义。
  • Import Site:与钓鱼邮件模板的编辑一样,gophish为钓鱼页面的设计也提供了两种方式,第一种就是 “Import Site”,即克隆目标网站。点击“Import Site”后,填写 被伪造网站的URL,再点击Import,即可通过互联网自动爬取被伪造网站的前端代码。
  • 内容编辑框:内容编辑框是编辑钓鱼页面的第二种方法,但是绝大多数情况下,它更偏向于用来辅助第一种方法,即对导入的页面进行源码修改以及预览。由于编码的不同,通常直接通过“Import Site”导入的网站,其中文部分多少存在乱码现象,这时候就需要查看源码并手动修改过来。
  • Capture Submitted Data(重点):通常,进行钓鱼的目的往往是捕获受害用户的用户名及密码,因此,在点击Save Page之前,记得一定要勾选左下方的 “Capture Submitted Data” 当勾选了“Capture Submitted Data”后,页面会多出一个“Capture Passwords”的选项,显然是捕获密码,通常可以选择勾选上以验证账号的可用性。如果仅仅是测试并统计受害用户是否提交数据而不泄露账号隐私,则可以不勾选。另外,当勾选了 “Capture Submitted Data” 后,页面还会多出一个 “Redirect to”,其作用就是当受害用户点击提交表单后,将页面重定向到指定的URL。可以填写被伪造网站的URL,营造出一种受害用户第一次填写账号密码填错的感觉。

【User&Groups—用户和组】Users&Groups 的作用是将钓鱼的目标邮箱导入Gophish中准备发送。点击“New Group”新建一个钓鱼的目标用户组:

  • 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”皆可选填。

【Campaigns—钓鱼事件】Campaigns 的作用是将上述四个功能Sending Profiles 、Email Templates 、Landing Pages 、Users & Groups联系起来,并创建钓鱼事件。在Campaigns中,可以新建钓鱼事件,并选择编辑好的钓鱼邮件模板,钓鱼页面,通过配置好的发件邮箱,将钓鱼邮件发送给目标用户组内的所有用户。点击“New Campaign”新建一个钓鱼事件:

  • Name:自定义。
  • Email Template:Email Template 即钓鱼邮件模板。
  • Landing Page:Landing Page 即钓鱼页面。
  • URL(重点):URL 是用来替换选定钓鱼邮件模板中超链接的值,该值指向部署了选定钓鱼页面的url地址。简单来说,这里的URL需要填写当前运行Gophish脚本主机的IP。因为启动Gophish后,Gophish默认监听了3333端口和80端口,其中3333端口是后台管理系统,而80端口就是用来部署钓鱼页面的。当URL填写了http://主机IP/,并成功创建了当前的钓鱼事件后,Gophish会在主机的80端口部署当前钓鱼事件所选定的钓鱼页面,并在发送的钓鱼邮件里,将其中所有的超链接都替换成部署在80端口的钓鱼页面的url。
  • Launch Date:Launch Date 即钓鱼事件的实施日期,通常如果仅发送少量的邮箱,该项不需要修改。如果需要发送大量的邮箱,则配合旁边的“Send Emails By”效果更佳。
  • Send Emails By(可选):Send Emails By 配合Launch Date使用,可以理解为当前钓鱼事件下所有钓鱼邮件发送完成的时间。Launch Date作为起始发件时间,Send Emails By 作为完成发件时间,而它们之间的时间将被所有邮件以分钟为单位平分。例如,Launch Date的值为 2020.07.22,09:00,Send Emails By的值为 2020.07.22,09:04,该钓鱼事件需要发送50封钓鱼邮件。那么经过以上设定,从9:00到9:04共有5个发件点,这5个发件点被50封邮件平分,即每个发件点将发送10封,也就是每分钟仅发送10封。这样的好处在于,当需要发送大量的钓鱼邮件,而发件邮箱服务器并未限制每分钟的发件数,那么通过该设定可以限制钓鱼邮件不受约束的发出,从而防止因短时间大量邮件抵达目标邮箱而导致的垃圾邮件检测,甚至发件邮箱服务器IP被目标邮箱服务器封禁。
  • Sending Profile:Sending Profile 即上文中我们配置的发件邮箱策略。
  • Groups:Groups 即接收钓鱼邮件的目标用户组。

【Dashboard—仪表盘】当创建了钓鱼事件后,Dashboard 会自动开始统计数据。统计的数据项包括邮件发送成功的数量及比率,邮件被打开的数量及比率,钓鱼链接被点击的数量及比率,账密数据被提交的数量和比率,以及收到电子邮件报告的数量和比率。另外,还有时间轴记录了每个行为发生的时间点。

2,域名申请

阿里云,腾讯云,华为云均提供此类服务。申请完,需要备案,2周左右。

3,邮件服务器搭建

在实际钓鱼中,我们不可能使用自己的qq邮箱去发送钓鱼邮件。一是因为很容易暴露自身身份,而且邮件真实性低,二是qq邮箱这类第三方邮箱对每个用户每日发件数存在限制,对钓鱼有检测、会被封的,所以我们还是得自己搭建邮件服务器,常见的邮件服务器有:

  • sendmail:性能好,设置复杂,适合老手
  • qmail:体积小260+k ,模块化。需要做二次开发,适合对邮件性能有要求的
  • postfix:前身是sendmail,postfix原本是sendmail里面的一个模块
  • zmailer:近几年才出来的邮件
  • coremail:国内做的最好的商业平台,运行在linux上

【postfix+mailutils 搭建邮件服务器】阿里云ES服务器25端口被占用,无法使用。

  • 安装Postfix,默认一路向下
apt-get install postfix
  • ​​​​​​​修改配置:/etc/postfix/main.cf

biff = no

# appending .domain is the MUA's job.
append_dot_mydomain = no

# Uncomment the next line to generate "delayed mail" warnings
#delay_warning_time = 4h

readme_directory = no

# See http://www.postfix.org/COMPATIBILITY_README.html -- default to 2 on
# fresh installs.
compatibility_level = 2



# TLS parameters
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_tls_security_level=may

smtp_tls_CApath=/etc/ssl/certs
smtp_tls_security_level=may
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache


smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
myhostname = iZf8zgj0rn2t1i9nw79ymvZ
#域名
mydomain = webank.work
myorigin = $mydomain
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
mydestination =
relayhost =
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
#IP
inet_protocols = ipv4
#邮件保存目录
home_mailbox = /root
#设置banner
smtpd_banner = $myhostname ESMTP
  • 安装mailx软件包

apt-get install mailutils
  • 启动postfix服务

systemctl start postfix
  • 发送测试邮件

echo "email content" | mail -s "title" myQQ@qq.com

邮件服务器搭建完成后,便可以用自己的邮件服务器来发送钓鱼邮件了,即在Sending Profiles的钓鱼邮箱发送配置的host里面将smtp服务器的地址为指定为 127.0.0.1:25 即可。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

燕双嘤

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值