网络钓鱼方法论-CSDN博客

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

方法

  • 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/

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

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6