网络钓鱼方法论

方法

  • 1.侦查受害者
    • 1.选择受害域
    • 2.执行一些基本的网络枚举,搜索受害者使用的登录门户,并决定模拟哪一个
    • 3.使用一些OSINT查找电子邮件
  • 2.准备环境
    • 1.购买您要用于网络钓鱼评估的域名
    • 2.配置电子邮件服务相关记录(SPF、DMARC、DKIM、rDNS)
    • 3.使用gophish配置 VPS
  • 3.准备活动
    • 1.准备电子邮件模板
    • 2.准备网页以窃取凭据
  • 4.发起活动!

生成相似的域名或购买受信任的域名

域名变异技术

  • 关键字:域名包含原域名的重要关键字(例如zelster.com-management.com)。
  • 连字符子域:更改子域连字符的点(例如,www-zelster.com)。
  • 新 TLD :使用新 TLD 的同一域(例如 zelster.org)
  • 同形文字:它将域名中的字母替换为看起来相似的字母(例如,zelfser.com)。
  • 换位:交换域名中的两个字母(例如,zelster.com)。
  • 单数/复数:添加或删除域名末尾的“s”(例如,zeltsers.com)。
  • 省略:它删除域名中的字母之一(例如,zelser.com)。
  • 重复:重复域名中的字母之一(例如,zeltsser.com)
  • 替换:像同形文字但不那么隐秘。它会替换域名中的一个字母,可能会替换为键盘上原始字母附近的一个字母(例如,zektser.com)。
  • 子域名:在域名内引入一个点(例如,ze.lster.com)。
  • 插入:它将一个字母插入域名中(例如,zerltser.com)。
  • 缺少点:将 TLD 附加到域名。(例如,zelstercom.com)

自动工具

  • dnstwist
  • 网址疯狂

网站

http://dnstwist.it/
https://dnstwister.report/
https://www.internetmarketingninjas.com/tools/free-tools/domain-typo-generator/

位翻转

在计算世界中,一切都在幕后以位(零和一)存储在内存中。 这也适用于域。例如,windows.com在计算设备的易失性内存中变为01110111...。 然而,如果其中一位由于太阳耀斑、宇宙射线或硬件错误而自动翻转怎么办?即其中一个 0 变成 1,反之亦然。 将此概念应用于 DNS 请求时,到达 DNS 服务器的请求的域可能与最初请求的域不同。

例如,对域 windows.com 进行 1 位修改可以将其转换为Windnws.com。攻击者可能会注册与受害者相关的尽可能多的位翻转域,以便将合法用户重定向到其基础设施

购买可信域名

您可以在https://www.expireddomains.net/中搜索您可以使用的过期域名。 为了确保您要购买的过期域名已经具有良好的 SEO,您可以搜索它是如何分类的:

https://urlfiltering.paloaltonetworks.com/query/

发现电子邮件

为了发现更多有效的电子邮件地址或验证您已经发现的电子邮件地址,您可以检查是否可以暴力破解受害者的 smtp 服务器。在此处了解如何验证/发现电子邮件地址。 此外,不要忘记,如果用户使用任何门户网站访问他们的邮件,您可以检查它是否容易受到用户名暴力攻击,并在可能的情况下利用该漏洞。

配置 GoPhish

安装

您可以从https://github.com/gophish/gophish/releases/tag/v0.11.0下载它

下载并在里面解压/opt/gophish并执行,/opt/gophish/gophish 您将在输出中获得端口 3333 中 admin 用户的密码。因此,访问该端口并使用这些凭据来更改管理员密码。您可能需要将该端口隧道连接到本地:

ssh-L3333:127.0.0.1:3333 <user>@<ip>

配置

TLS 证书配置

在此步骤之前,您应该已经购买了要使用的域名,并且它必须指向您要配置gophish的 VPS 的IP 。

DOMAIN="<domain>"
wget https://dl.eff.org/certbot-auto
chmod +x certbot-auto
sudoaptinstall snapd
sudo snap install core
sudo snap refresh core
sudoapt-get remove certbot
sudo snap install--classic certbot
sudoln-s /snap/bin/certbot /usr/bin/certbot
certbot certonly --standalone-d"$DOMAIN"
mkdir /opt/gophish/ssl_keys
cp"/etc/letsencrypt/live/$DOMAIN/privkey.pem" /opt/gophish/ssl_keys/key.pem
cp"/etc/letsencrypt/live/$DOMAIN/fullchain.pem" /opt/gophish/ssl_keys/key.crt

邮件配置

开始安装:apt-get install postfix

然后将域添加到以下文件中:

  • /etc/postfix/virtual_domains
  • /etc/postfix/transport
  • /etc/postfix/virtual_regexp

还可以更改 /etc/postfix/main.cf 中以下变量的值

myhostname = <domain>

mydestination = $myhostname, <domain>, localhost.com, localhost

最后修改文件和您的域名并重新启动您的VPS。/etc/hostname /etc/mailname

现在,创建一条指向VPS的IP地址DNS A记录和一条指向VPS的IP地址的DNS MX记录mail.<domain>mail.<domain>

现在让我们测试发送电子邮件:

aptinstall mailutils

echo"This is the body of the email"| mail -s"This is the subject line" test@email.com

Gophish配置

停止执行 gophish 并进行配置。 修改/opt/gophish/config.json为以下内容(注意使用https):

{
        "admin_server": {
                "listen_url": "127.0.0.1:3333",
                "use_tls": true,
                "cert_path": "gophish_admin.crt",
                "key_path": "gophish_admin.key"
        },
        "phish_server": {
                "listen_url": "0.0.0.0:443",
                "use_tls": true,
                "cert_path": "/opt/gophish/ssl_keys/key.crt",
                "key_path": "/opt/gophish/ssl_keys/key.pem"
        },
        "db_name": "sqlite3",
        "db_path": "gophish.db",
        "migrations_prefix": "db/db_",
        "contact_address": "",
        "logging": {
                "filename": "",
                "level": ""
        }
}

配置 gophish 服务

为了创建 gophish 服务以便它可以自动启动并管理服务,您可以创建/etc/init.d/gophish包含以下内容的文件:

#!/bin/bash
# /etc/init.d/gophish
# initialization file for stop/start of gophish application server
#
# chkconfig: - 64 36
# description: stops/starts gophish application server
# processname:gophish
# config:/opt/gophish/config.json
# From https://github.com/gophish/gophish/issues/586

# define script variables

processName=Gophish
process=gophish
appDirectory=/opt/gophish
logfile=/var/log/gophish/gophish.log
errfile=/var/log/gophish/gophish.error

start() {
    echo 'Starting '${processName}'...'
    cd ${appDirectory}
    nohup ./$process >>$logfile 2>>$errfile &
    sleep 1
}

stop() {
    echo 'Stopping '${processName}'...'
    pid=$(/bin/pidof ${process})
    kill ${pid}
    sleep 1 
}

status() {
    pid=$(/bin/pidof ${process})
    if [["$pid" != ""| "$pid" != "" ]]; then
        echo ${processName}' is running...'
    else
        echo ${processName}' is not running...'
    fi
}

case $1 in
    start|stop|status) "$1" ;;
esac

完成服务配置并检查它:

mkdir /var/log/gophish
chmod +x /etc/init.d/gophish
update-rc.d gophish defaults
#Check the service
service gophish start
service gophish status
ss -l | grep "3333\|443"
service gophish stop

配置邮件服务器和域

等待

域名越旧,被视为垃圾邮件的可能性就越小。那么您应该在网络钓鱼评估之前等待尽可能长的时间(至少 1 周)。 请注意,即使您需要等待一周,您现在也可以完成所有配置。

配置反向 DNS (rDNS) 记录

设置 rDNS (PTR) 记录,将 VPS 的 IP 地址解析为域名。

发件人策略框架 (SPF) 记录

您必须为新域配置 SPF 记录。如果您不知道什么是 SPF 记录阅读此页

您可以使用https://www.spfwizard.net/生成您的 SPF 策略(使用 VPS 机器的 IP)

这是必须在域内的 TXT 记录中设置的内容:

v=spf1 mx a ip4:ip.ip.ip.ip ?all

基于域的消息身份验证、报告和一致性 (DMARC) 记录

您必须为新域配置 DMARC 记录。如果您不知道什么是 DMARC 记录阅读此页

您必须创建一个新的 DNS TXT 记录,指向_dmarc.<domain>具有以下内容的主机名:

v=DMARC1;p=none

域名密钥识别邮件 (DKIM)

您必须为新域配置 DKIM 。如果您不知道什么是 DMARC 记录阅读此页

本教程基于: How To Install and Configure DKIM with Postfix on Debian Wheezy | DigitalOcean

您需要连接 DKIM 密钥生成的两个 B64 值:

v=DKIM1; h=sha256; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0wPibdqPtzYk81njjQCrChIcHzxOp8a1wjbsoNtka2X9QXCZs+iXkvw++QsWDtdYu3q0Ofnr0Yd/TmG/Y2bBGoEgeE+YTUG2aEgw8Xx42NLJq2D1pB2lRQPW4IxefROnXu5HfKSm7dyzML1gZ1U0pR5X4IZCH0wOPhIq326QjxJZm79E1nTh3xj" "Y9N/Dt3+fVnIbMupzXE216TdFuifKM6Tl6O/axNsbswMS1TH812euno8xRpsdXJzFlB9q3VbMkVWig4P538mHolGzudEBg563vv66U8D7uuzGYxYT4WS8NVm3QBMg0QKPWZaKp+bADLkOSB9J2nUpk4Aj9KB5swIDAQAB

测试您的电子邮件配置分数

您可以使用https://www.mail-tester.com/执行此操作 ,只需访问该页面并向他们提供的地址发送电子邮件即可:

echo "This is the body of the email" | mail -s "This is the subject line" test-iimosa79z@srv1.mail-tester.com

您还可以检查您的电子邮件配置,发送电子邮件至check-auth@verifier.port25.com并读取响应(为此,如果您以 root 身份发送电子邮件,则需要打开端口25并在文件/var/mail/root中查看响应)。 检查您是否通过了所有测试:

==========================================================

Summary of Results

==========================================================

SPF check: pass

DomainKeys check: neutral

DKIM check: pass

Sender-ID check: pass

SpamAssassin check: ham

或者,您可以向您控制的 Gmail 地址发送邮件,在 Gmail 收件箱中查看收到的电子邮件的标头,该标头应显示在标头字段中。dkim=passAuthentication-Results

Authentication-Results: mx.google.com;
       spf=pass (google.com: domain of contact@example.com designates --- as permitted sender) smtp.mail=contact@example.com;
       dkim=pass header.i=@example.com;

从垃圾邮件黑名单中删除

www.mail-tester.com 页面可以指示您的域是否被垃圾邮件屋阻止。您可以请求删除您的域名/IP:https://www.spamhaus.org/lookup/

从微软黑名单中删除

您可以在https://sender.office.com/请求删除您的域名/IP 。

创建并启动 GoPhish 活动

发送配置文件

  • 设置一些名称来识别发件人配置文件
  • 决定您要从哪个帐户发送网络钓鱼电子邮件。建议:noreply、支持、服务台、销售人员...
  • 您可以将用户名和密码留空,但请务必选中“忽略证书错误”

建议使用“发送测试电子邮件”功能来测试一切是否正常。 我建议将测试电子邮件发送到 10 分钟邮件地址,以避免在测试时被列入黑名单。

电子邮件模板

  • 设置一些名称来识别模板
  • 然后写一个主题(没什么奇怪的,只是你可以在普通电子邮件中读到的内容)
  • 确保您已选中“添加跟踪图像
  • 编写电子邮件模板(您可以使用以下示例中的变量):
<html>
<head>
    <title></title>
</head>
<body>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;color:black">Dear {{.FirstName}} {{.LastName}},</span></p>

<p class="MsoNormal"><span style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;color:black">As you may be aware, due to the large number of employees working from home, the "PLATFORM NAME" platform is being migrated to a new domain with an improved and more secure version. To finalize account migration, please use the following link to log into the new HR portal and move your account to the new site: <a href="{{.URL}}"> "PLATFORM NAME" login portal </a><br />
<br />
Please Note: We require all users to move their accounts by 04/01/2021. Failure to confirm account migration may prevent you from logging into the application after the migration process is complete.<br />
<br />
Regards,</span></p>

WRITE HERE SOME SIGNATURE OF SOMEONE FROM THE COMPANY

<p>{{.Tracker}}</p>
</body>
</html>

请注意,为了增加电子邮件的可信度,建议使用客户电子邮件中的一些签名。建议:

  • 向不存在的地址发送电子邮件并检查回复是否有任何签名。
  • 搜索公共电子邮件(例如 info@ex.com 或 press@ex.com 或 public@ex.com)并向他们发送电子邮件并等待回复。
  • 尝试联系一些有效的发现电子邮件并等待回复

电子邮件模板还允许附加要发送的文件。如果您还想使用一些特制的文件/文档来窃取 NTLM 挑战,请阅读此页面

登陆页面

  • 写一个名字
  • 编写网页的HTML 代码。请注意,您可以导入网页。
  • 标记捕获提交的数据捕获密码
  • 设置重定向

通常您需要修改页面的 HTML 代码并在本地(可能使用某些 Apache 服务器)进行一些测试,直到您喜欢结果为止。然后,将该 HTML 代码写入框中。 请注意,如果您需要在 HTML 中使用一些静态资源(可能是一些 CSS 和 JS 页面),您可以将它们保存在/opt/gophish/static/endpoint中,然后从/static/<filename>访问它们

对于重定向,您可以将用户重定向到受害者的合法主网页,或者将他们重定向到/static/migration.html例如,放置一些旋转轮 ( https://loading.io/ ) 5 秒钟,然后表明该过程成功

用户和组

  • 设置名称
  • 导入数据(请注意,为了使用示例模板,您需要每个用户的名字、姓氏和电子邮件地址)

活动

最后,创建一个营销活动,选择名称、电子邮件模板、登录页面、URL、发送配置文件和组。请注意,该 URL 将是发送给受害者的链接

请注意,发送配置文件允许发送测试电子邮件以查看最终的网络钓鱼电子邮件的外观

我建议将测试电子邮件发送到 10 分钟邮件地址,以避免在测试时被列入黑名单。

一切准备就绪后,就可以发起活动了!

网站克隆

如果出于任何原因您想克隆该网站,请阅读以下内容:

对于网络钓鱼评估,有时完全克隆网站可能会很有用。

请注意,您还可以向克隆的网站添加一些有效负载,例如 BeEF 挂钩,以“控制”用户的选项卡。

您可以使用不同的工具来实现此目的:

获取

wget -mk -nH

克隆

#https://github.com/imthaghost/goclone

goclone <url>

社会工程工具包

#https://github.com/trustedsec/social-engineer-toolkit

后门文档和文件

在某些网络钓鱼评估(主要针对红队)中,您还需要发送包含某种后门的文件(可能是 C2,也可能只是触发身份验证的东西)。 查看以下页面的一些示例:

办公文件

Microsoft Word 在打开文件之前执行文件数据验证。数据验证是根据 OfficeOpenXML 标准以数据结构识别的形式执行的。如果数据结构识别过程中出现错误,则无法打开正在分析的文件。

通常,包含宏的 Word 文件使用该.docm扩展名。但是,可以通过更改文件扩展名来重命名文件,并且仍然保留其宏执行功能。 例如,RTF 文件在设计上不支持宏,但重命名为 RTF 的 DOCM 文件将由 Microsoft Word 处理,并且能够执行宏。 相同的内部结构和机制适用于 Microsoft Office 套件的所有软件(Excel、PowerPoint 等)。

您可以使用以下命令来检查某些 Office 程序将执行哪些扩展:

assoc | findstr /i "word excel powerp"

引用包含宏的远程模板(文件 - 选项 - 插件 - 管理:模板 - Go)的 DOCX 文件也可以“执行”宏。

网络钓鱼 MFA

通过代理中间人

之前的攻击非常聪明,因为您伪造了一个真实的网站并收集用户设置的信息。不幸的是,如果用户没有输入正确的密码,或者您伪造的应用程序配置了 2FA,则此信息将不允许您冒充受骗的用户

这时,evilginx2CredSnipermuraena等工具就派上用场了。该工具将允许您生成类似 MitM 的攻击。基本上,攻击通过以下方式进行:

  • 1.您模仿真实网页的登录表单。
  • 2.用户将其凭据发送到您的虚假页面,然后该工具将其发送到真实网页,检查凭据是否有效
  • 3.如果帐户配置了2FA ,MitM 页面将要求提供该信息,一旦用户引入该帐户,该工具就会将其发送到真实网页。
  • 4.一旦用户通过身份验证,您(作为攻击者)将捕获凭据、2FA、cookie 以及工具执行 MitM 时每次交互的任何信息。

通过VNC

如果您不是将受害者发送到与原始页面具有相同外观的恶意页面,而是将他发送到浏览器连接到真实网页的 VNC 会话,会怎么样?你将能够看到他做了什么,窃取密码、使用的 MFA、cookie... 您可以使用来做到这一点

检测检测

显然,了解您是否已被查封的最佳方法之一是在黑名单中搜索您的域名。如果它出现在列表中,则说明您的域被检测为可疑域。

检查您的域是否出现在任何黑名单中的一种简单方法是使用http://malwareworld.com/

但是,还有其他方法可以了解受害者是否正在积极寻找可疑的网络钓鱼活动,如下所述:

检测网络钓鱼

介绍

要检测网络钓鱼尝试,了解当今使用的网络钓鱼技术非常重要。在这篇文章的父页面上,您可以找到此信息,因此,如果您不知道今天使用哪些技术,我建议您转到父页面并至少阅读该部分。

这篇文章基于这样的想法:攻击者将尝试以某种方式模仿或使用受害者的域名。如果您的域名被调用example.com,并且由于某种原因(例如 )而使用完全不同的域名对您进行网络钓鱼youwonthelottery.com,那么这些技术将无法发现它。

域名变体

发现那些在电子邮件中使用类似域名的网络钓鱼尝试很容易生成攻击者可能使用的最有可能的网络钓鱼名称列表并检查它是否已注册或仅检查是否有任何IP使用它就 足够了。

查找可疑域

为此,您可以使用以下任何工具。请注意,这些收费站还将自动执行 DNS 请求,以检查该域是否分配有任何 IP:

位翻转

在计算世界中,一切都在幕后以位(零和一)存储在内存中。 这也适用于域。例如,windows.com在计算设备的易失性内存中变为01110111...。 然而,如果其中一位由于太阳耀斑、宇宙射线或硬件错误而自动翻转怎么办?即其中一个 0 变成 1,反之亦然。 将此概念应用于 DNS 请求,到达 DNS 服务器的请求的域可能与最初请求的域不同。

例如,对域microsoft.com 进行1 位修改可以将其转换为windnws.com。攻击者可能会注册与受害者相关的尽可能多的位翻转域,以将合法用户重定向到其基础设施

欲了解更多信息,请阅读

所有可能的位翻转域名也应受到监控。

基本检查

一旦您获得了潜在可疑域名的列表,您应该检查它们(主要是 HTTP 和 HTTPS 端口),看看它们是否使用与受害者域中的某人类似的登录表单。 您还可以检查端口 3333 以查看它是否已打开并正在运行gophish. 了解每个发现的可疑域的年龄也很有趣,年龄越小,风险就越大。 您还可以获取HTTP 和/或 HTTPS 可疑网页的屏幕截图,看看它是否可疑,在这种情况下,可以访问它进行更深入的了解

高级检查

如果您想更进一步,我建议您监控这些可疑域并偶尔搜索更多域(每天?只需要几秒钟/分钟)。您还应该检查相关IP的开放端口,搜索类似工具的实例(是的,攻击者也会犯错误),并监控可疑域和子域的HTTP和HTTPS网页,看看它们是否复制了任何登录表单来自受害者的网页。gophish 为了实现自动化,我建议拥有受害者域的登录表单列表,抓取可疑网页,并使用类似ssdeep. 如果您找到了可疑域的登录表单,您可以尝试发送垃圾凭据检查它是否将您重定向到受害者的域

使用关键字的域名

父页面还提到了一种域名变异技术,该技术包括将受害者的域名放入更大的域中(例如,将 paypal-financial.com 替换为 paypal.com)。

证书透明度

不可能采用以前的“暴力破解”方法,但由于证书透明度,实际上可以发现此类网络钓鱼尝试。每次 CA 发出证书时,详细信息都会公开。这意味着通过读取证书透明度甚至监控它,可以找到在其名称中使用关键字的域。例如,如果攻击者生成https://paypal-financial.com的证书,则可以看到该证书可以找到关键字“paypal”并知道正在使用可疑电子邮件。

帖子Finding Phishing: Tools and Techniques建议您可以使用 Censys 搜索影响特定关键字的证书,并按日期(仅“新”证书)和 CA 颁发者“Let's Encrypt”进行过滤:

但是,您可以使用免费的网络crt.sh执行“相同的操作” 。如果您愿意,可以搜索关键字并按日期和 CA过滤结果。

使用最后一个选项,您甚至可以使用“匹配身份”字段来查看真实域中的任何身份是否与任何可疑域匹配(请注意,可疑域可能是误报)。

另一种选择是名为CertStream 的出色项目。CertStream 提供新生成的证书的实时流,您可以使用它来(近)实时检测指定的关键字。事实上,有一个名为phishing_catcher的项目就是这样做的。

新域名

最后一种选择是收集一些 TLD新注册的域列表( Whoxy提供此类服务)并检查这些域中的关键字。然而,长域名通常使用一个或多个子域名,因此关键字不会出现在 FLD 中,您将无法找到钓鱼子域名。

您可以购买与受害者域名称非常相似的域和/为您控制的包含受害者域关键字的域的子域生成证书。如果受害者与他们进行任何类型的DNS 或 HTTP 交互,您就会知道他正在积极寻找可疑域,因此您需要非常隐秘。

评估网络钓鱼

使用Phishious评估您的电子邮件是否会进入垃圾邮件文件夹,或者是否会被阻止或成功。

参考

https://0xpatrik.com/phishing-domains/
https://darkbyte.net/robando-sesiones-y-bypasseando-2fa-con-evilnovnc/

声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流,若将工具或在文中所学到的技术用于其他用途,由使用者承担全部法律及连带责任,作者和发布者不承担任何法律责任。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值