【THM】Phishing(网络钓鱼)-红队

发布时间 2023-05-03 21:22:05作者: Hekeats

本文相关的TryHackMe实验房间链接:https://tryhackme.com/room/phishingyl

本文相关内容:学习什么是网络钓鱼以及它为什么能在红队演练中发挥重要作用,你将了解如何设置网络钓鱼的基础设施,如何编写具有可信度的网络钓鱼电子邮件并试图欺骗目标受害者打开你所发送的恶意email。

image

网络钓鱼攻击介绍

在你了解什么是网络钓鱼之前,你需要先了解一个被称为社会工程学的术语。社会工程学是指利用人性的弱点对目标受害者进行心理操纵,以使受害者展示或泄露足够多的敏感信息,这些人性“弱点”可能是人们的好奇、嫉妒、贪婪,甚至是善良和愿意帮助别人的优秀品质。

通常而言,网络钓鱼可以被认为是一种通过发送恶意电子邮件来实现攻击目标的社会工程技术,它的目的是欺骗目标群体泄露个人信息、登录凭据,甚至在目标受害者的计算机设备上执行恶意代码。

在网络钓鱼中,恶意邮件通常会表现出它具有可信的来源(有可信度的个人或企业),并且在这些恶意邮件中会包含试图诱导或欺骗人们下载软件、打开附件、点击虚假的网站链接的内容。

在攻防演练中,红队通常会采用的一种网络钓鱼活动类型是“鱼叉式网络钓鱼(spear-phishing)”,类似于投掷物理长矛一样,在鱼叉式网络钓鱼中,你需要瞄准一个目标(特定的个人、企业或组织)进行钓鱼攻击。鱼叉式网络钓鱼在红队演练中很有效,因为在这种类型的网络钓鱼攻击中所使用的恶意邮件是针对目标定制的,这可能会让红队发送的恶意邮件很难被垃圾邮件过滤器、反病毒程序、防火墙程序等防护技术检测到。

红队可以按照攻防演练的合同约定来单独地进行网络钓鱼评估,以查看目标企业是否容易受到此类攻击的影响,红队也可以将网络钓鱼作为更大规模评估的一部分,即通过网络钓鱼攻击来获得目标计算机系统或目标服务的访问权限。

开展网络钓鱼活动还有一些其他方法,这些方法主要是通过使用不同的信息传播媒介来实现的,例如通过短信进行网络钓鱼、通过电话进行网络钓鱼、通过聊天软件进行网络钓鱼等等。

示例场景

下面的示例场景展示了如何欺骗目标公司的员工泄露其可能使用的凭据信息:

  1. 攻击者尝试定位目标企业的物理位置。
  2. 攻击者开始寻找在目标企业附近的食品供应商,发现了一家名为“Ultimate Cookies”的公司!
  3. 攻击者注册了一个名为ultimate-cookies.thm的域名。
  4. 攻击者精心制作一封电子邮件并发送给目标公司的员工,邮件中写到“如果成功注册了ultimate-cookies网站,你就会收到一些免费的cookie(饼干)”;因为受害者可能听说过这家当地的公司,所以他们更有可能会选择相信这封电子邮件。
  5. 受害者点击恶意电子邮件中的链接,成功访问到由攻击者所创建的虚假网站并进行了在线注册;为了方便起见,受害者可能会对所有的在线账户都使用相同的密码。
  6. 只要攻击者有了受害者的电子邮件地址以及受害者可能会选择使用的密码,那么攻击者就可以尝试登录受害者的公司电子邮件帐户;攻击者现在可以尝试访问目标公司的私有信息,也可以选择基于已经获得的权限继续对其他员工发起另一次网络钓鱼攻击。

image

答题

阅读本小节的内容,回答以下问题。

image

编写具有可信度的钓鱼邮件

关于网络钓鱼电子邮件,我们需要处理三件事:发件人的电子邮件地址、钓鱼邮件的主题、钓鱼邮件的内容。

发件人的地址

在理想情况下,钓鱼邮件发件人的地址应该来自于一个域名,这个域名可以被伪装成一个重要的品牌、受害者的一个已知的联系人或者受害者的一个同事等。

为了找到能够与受害者发生合理交互的品牌或人员,你可以使用OSINT(开源情报-Open Source Intelligence)策略,例如:

  • 观察受害者的社交媒体帐户,了解与受害者有过交互记录的任何品牌或朋友。

  • 通过谷歌搜索引擎查找受害者的名字和粗略位置,找到受害者可能留下的关于当地商家或品牌的评论。

  • 查看受害者的公司网站,寻找和公司相关的供应商。

  • 在领英(LinkedIn)或其他招聘网站上寻找受害者的同事。

钓鱼邮件的主题

你应该把钓鱼邮件的主题设定为一些非常紧急、令人担忧的事情,或者也可以试图激起受害者的好奇心等,这样受害者就不会忽视钓鱼邮件,并可能会迅速采取相关行动。

这方面的例子有:

  1. 你的帐户已被入侵。
  2. 你的包裹已经被派送/装运。
  3. 员工工资信息(请勿转发!)。
  4. 你的照片已经发布成功了。

参考示例:https://www.inky.com/en/blog/six-convincing-phishing-emails-that-just-might-fool-you

钓鱼邮件的内容

如果你想冒充一个品牌或供应商进行网络钓鱼,那么就有必要研究他们的标准电子邮件模板和品牌特征(风格、logo标志图片、签名等),从而让你的钓鱼邮件内容看起来和你想要模仿的品牌和供应商一样,这样受害者对邮件的真实性就不会有过多的疑虑。

如果你想冒充受害者的已知联系人或者同事进行网络钓鱼,那么观察你想要模仿的对象可能是有益的。首先,你要模仿的对象可能会在他们的电子邮件模板中标注一些品牌特征,或者会有一个特别的电子邮件签名;此外,还有一些细节值得我们注意,比如被模仿者是如何称呼自己的,例如,假设受害者有个名为Dorothy的同事,他的Email地址为dorothy@company.thm,那么在他的Email签名中,可能会写着“Best Regards, Dot(致以最诚挚的问候,Dot)”。在编写钓鱼邮件时,了解上述这些类似的细节有时候会对受害者产生强烈的心理暗示,从而能够更好地说服受害者打开钓鱼邮件并采取相关行动。

如果你已经建立了一个假冒的网站来收集数据或者分发恶意软件,那么你可以使用锚文本(anchor text )来伪装与你的网站相关的链接;例如,将钓鱼邮件中的锚文本更改为类似于“Click Here(点击此处)”的文字,或者将钓鱼邮件中的锚文本更改为一个看起来正确的链接(该链接能够反映你正在假冒的业务):

<a href="http://spoofsite.thm">Click Here</a>

<a href="http://spoofsite.thm">https://onlinebank.thm</a>

答题

阅读本小节的内容,回答以下问题。

image

网络钓鱼基础设施

在攻防演练中,红队往往需要部署一定数量的网络钓鱼基础设施(专指恶意工具或者恶意软件等)才能成功发起网络钓鱼活动。

网络钓鱼常用基础设施

域名

你需要注册一个看起来可信的域名,或者注册一个用于模仿另一个域名身份的域名。

SSL/TLS Certificates(证书)

为你所选择的域名创建SSL/TLS证书,这将会为你的钓鱼攻击增加一层额外的真实性。

邮件服务器/帐户

你需要设置一个电子邮件服务器或者注册一个SMTP电子邮件服务提供商。

DNS 记录

配置 DNS 记录,如 SPF、DKIM、DMARC,这将提高你的电子邮件的可交付(投递)性,能够尽量确保钓鱼邮件进入受害者的收件箱,而不是被放到垃圾邮件文件夹中。

Web 服务器

你需要配置一个网络服务器,或者购买网络托管服务来托管你的钓鱼网站,正如如上文所述,你可以为你的钓鱼网站添加SSL/TLS证书。

信息分析

当网络钓鱼活动是红队演练的一部分时,持续进行信息分析显得尤为重要。因为,你需要跟踪那些已经发送的、被打开或者被点击的网络钓鱼邮件,你还需要将钓鱼邮件与你的钓鱼网站上的信息结合起来,最终总结得出:目标用户提供了什么个人信息或者目标用户已经下载了什么恶意软件。

自动化和有用的软件

通过使用以下工具,可以快速地自动化部署上述的一些网络钓鱼基础设施。

GoPhish-开源网络钓鱼框架 - getgophish.com

GoPhish 是一个基于网络的框架,它使得开展网络钓鱼活动变得更加简单。

GoPhish 允许你存储发送电子邮件的 SMTP 服务器设置,它还有一个基于网络的工具——可以使用一个简单的所见即所得(What You See Is What You Get)编辑器来创建电子邮件模板。在使用GoPhish时,你可以安排电子邮件的发送时间,并且会配备一个分析仪表盘,以显示有多少电子邮件已发送、被打开或者被点击。

社会工程学工具包 (SET -Social Engineering Toolkit) - trustedsec.com

社会工程学工具包(SET)包含了大量的工具,其中关于网络钓鱼的一些重要的工具将能够帮助我们创建鱼叉式网络钓鱼攻击,还能帮助我们部署常见网站的假冒版本来欺骗受害者输入他们的登录凭据。

示意图

image

答题

阅读本小节内容,回答以下问题。

image

使用GoPhish

本小节将设置GoPhish来进行网络钓鱼活动,并将从假冒网站处捕获用户的登录凭据。

在TryHackMe中部署目标虚拟机,完成部署后再通过以下URL访问GoPhish登录页面: https://10-10-244-135.p.thmlabs.com:8443 ;如果你已经连接到TryHackMe的VPN,你也可以直接访问 https://10.10.244.135/

image

你可以使用用户名:admin 和密码:tryhackme 登录到GoPhish。

邮件发送配置

该配置文件将包含实际发送钓鱼邮件时所需的连接细节,并且将配置一个你可以访问的 SMTP 服务器。

在GoPhish界面中,单击左侧菜单上的“发送配置-Sending Profiles”,然后单击“新建配置文件-New Profile”按钮。

接下来,添加以下信息:

  • Name(配置名称):Local Server
  • From(邮件发送方):noreply@redteam.thm
  • Host(主机地址):127.0.0.1:25

image

然后单击“保存配置文件”即可。

登陆页

接下来,我们要建立一个登陆页面,这也是网络钓鱼邮件要把受害者引向的网站页面,这个页面通常会假冒成受害者所熟悉的网站。

在GoPhish界面中,单击左侧菜单上的“着陆页-Landing Pages”,然后单击“新建页-New Page”按钮。

将登录页命名为ACME Login,接下来再点击“源代码-Source”按钮,让我们输入如下所示的 HTML 代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>ACME IT SUPPORT - Admin Panel</title>
    <style>
        body { font-family: "Ubuntu", monospace; text-align: center }
        div.login-form { margin:auto; width:300px; border:1px solid #ececec; padding:10px;text-align: left;font-size:13px;}
        div.login-form div input { margin-bottom:7px;}
        div.login-form input { width:280px;}
        div.login-form div:last-child { text-align: center; }
        div.login-form div:last-child input { width:100px;}
    </style>
</head>
<body>
    <h2>ACME IT SUPPORT</h2>
    <h3>Admin Panel</h3>
    <form method="post">
        <div class="login-form">
            <div>Username:</div>
            <div><input name="username"></div>
            <div>Password:</div>
            <div><input type="password" name="password"></div>
            <div><input type="submit" value="Login"></div>
        </div>
    </form>
</body>
</html>

再次单击“源代码-Source”按钮,你应该能看到一个登录框,里面有用户名和密码字段,然后我们接着点击“捕获提交的数据-Capture Submitted Data”框和“捕获密码-Capture Passwords”框,最后单击“保存页面”按钮即可。

image

电子邮件模版

在此处,你可以设计实际要发送给受害者的电子邮件内容,该邮件需要有说服力,并且将包含一个能够指向你设置的登陆页的链接,这将让我们能够尝试获取受害者的用户名和密码。

在GoPhish界面中,单击左侧菜单上的“电子邮件模板-Email Templates”,然后单击“新建模板-New Template”按钮;将电子邮件模板命名为“Email 1”,将邮件主题为“New Message Received”,点击 HTML 选项卡,然后单击“源代码-Source”按钮以启用 HTML 编辑器模式。

在邮件内容中书写有说服力的文字,以说服受害者点击链接,注意将链接的锚文本设置为https://admin.acmeitsupport.thm,但是实际的链接URL需要被设置为{{.URL}},这样当电子邮件被发送时,相关链接则会被更改为指向我们的假冒登录页面,你可以通过选中链接锚文本,然后单击编辑器图标顶行中的链接按钮来设置实际的链接,此外,还需确保将协议下拉菜单设置为<other>

image

你的电子邮件内容应该看起来类似于下面的截图,完成邮件模版设置后点击保存模版即可。

image

Users & Groups(用户和组)

这是我们可以存储预定目标的电子邮件地址的地方。在GoPhish页面中,单击左侧菜单上的“用户和组”链接,然后单击“新建组”按钮,并将组命名为Targets,然后使用Email字段逐一添加以下电子邮件地址:

  • martin@acmeitsupport.thm
  • brian@acmeitsupport.thm
  • accounts@acmeitsupport.thm

一旦完成后,它应该看起来像下面的截图:

image

开始钓鱼活动

现在是时候发送你的第一封钓鱼邮件了,点击GoPhish页面左侧菜单上的“Campaigns”链接,然后点击“New Campaign”按钮并设置具体值,相关内容如下所示:

  • Name(钓鱼活动名称):Campaign One
  • Email Template(钓鱼邮件模版):Email 1
  • Landing Page(假冒登录页面):ACME Login
  • URL(目标ip地址): http://10.10.244.135
  • Launch Date(开始日期):设置邮件发送日期,在本小节任务中将日期设置为两天之前。
  • Sending Profile(邮件发送配置):Local Server
  • Groups(目标组):Targets

完成设置后,单击“Launch Campaign”按钮,开始网络钓鱼攻击:

image

然后,你将被重定向到网络钓鱼活动的结果页面,你可以等待查看此次钓鱼攻击的结果。

钓鱼攻击结果

GoPhish的钓鱼结果页面通过让我们知道有多少钓鱼邮件被发送、打开、点击,以及有多少受害者向我们的假冒网站提交了数据,从而能够让我们了解网络钓鱼活动是如何进行的。

你将在结果页面的底部看到每个被发送的电子邮件地址的分类,你将注意到发送给martin和brian的电子邮件都已成功送达,但是发送给account的电子邮件出现了发送错误。

image

单击account行旁边的下拉箭头,我们可以更加深入地挖掘邮件发送错误的原因,通过查看详细信息或错误提示,我们可以看到邮件发送错误是由于用户(收件人)未知而导致的。

image

忽视上述错误不提,在等待一分钟后,如果受害者已经点击了钓鱼邮件,那么你应该会看到发送给brian的钓鱼邮件被更改为“Submitted Data-已提交数据”状态。

image

展开关于brian的详细信息,然后查看受害用户所提交的数据,你应该能够看到与brian相关的用户名和密码。

image

答题

部署目标机器,访问GoPhish登录页面: https://10-10-244-135.p.thmlabs.com:8443

用户名:admin

密码:tryhackme

image

按照本小节内容部署网络钓鱼攻击(注意填入目标ip地址的URL),然后查看最终结果:

image

Dropper(植入程序)

Dropper是网络钓鱼的受害者往往会被诱骗下载并在他们的系统上运行的一种软件,Dropper可能会表现为有用的或合法的东西,如用于查看特定视频的编码解码器或者用于打开特定文件的软件。

Dropper(一种植入程序)本身通常不是恶意的,所以它们往往能通过防病毒检查。一旦Dropper程序被成功安装到目标计算机上,预期的恶意软件可能将被解包安装,或者目标机器会基于远程服务器下载恶意软件,然后再安装恶意软件到受害者的计算机上。被成功安装的恶意软件通常会回连攻击者的基础设施,从而使得攻击者可以控制受害者的计算机,并能进一步探索和利用目标机器所在的内部网络。

答题

阅读本小节内容,回答以下问题。

image

选择钓鱼域名

在网络钓鱼活动中,选择正确的钓鱼域名来发动攻击是必不可少的,这能确保你在针对目标受害者时具有一定心理优势(更能增加钓鱼邮件的可信度)。

在攻防演练中,红队可以使用下面的一些方法来选择合适的钓鱼域名。

过期域名(旧域名)

虽然这不是必不可少的,但是购买一个有使用历史的域名可能会使其在面对垃圾邮件过滤器时具有更好的评分。垃圾邮件过滤器可能会倾向于不信任全新的域名,相比之下,它会更容易信任那些具有一定使用历史的旧域名。

误植域名(假冒URL)

误植域名,是一种域名抢注的形式,常常会导致发生品牌劫持,这种劫持方式通常有赖于用户在访问网址时的错误输入,如域名拼写错误等;一旦用户在浏览器中不小心输入了一个和目标域名相似但错误的URL,便有可能会被导向其他网址。

在网络钓鱼攻击中,红队可以利用误植域名来构造钓鱼邮件,通过注册看起来与试图模仿的目标非常相似的域名,攻击者能够大大增加钓鱼邮件的可信度。

以下是一些常用的构造误植域名的方法:

  • 错误拼写:goggle.com Vs google.com
  • 添加英文句点:go.ogle.com Vs google.com
  • 把字母换成数字:g00gle.com Vs google.com
  • 单复数替换:googles.com Vs google.com
  • 添加单词:googleresults.com Vs google.com

利用这些发生变化的域名上可能看起来不切实际,但是在粗略地查看钓鱼域名时,人类的大脑往往会自动填补空白,因此受害者将会认为自己看到了大脑想看到的东西,即正确的域名。

替换 TLD(顶级域)

TLD(顶级域)是指.com.net.co.uk.org.gov等等,它们是完整域名的一部分,目前有100多种各种各样的TLD。选择钓鱼域名的一个常见技巧是使用和要模仿的域名相同的名称,但同时使用不同的TLD;例如,攻击者可以注册tryhackme.co.uk来假冒tryhackme.com

IDN同形异义词攻击/字母系统假冒

最初的域名是由拉丁字符 a-z 和0-9组成的,但在1998年,IDN (国际化域名)开始被应用,它能支持来自于其他语言的特定语言字母系统,如阿拉伯语、汉语、西里尔语、希伯来语等。应用 IDN 将产生的一个问题是——来自不同语言的不同字母实际上可能看起来完全相同;例如,西里尔语中的Unicode字符 U+0430(小写西里尔字母a)看起来与英语中使用的Unicode字符 U+0061(小写拉丁字母a)相同,这就使得攻击者能够注册一个看起来与所模仿的域名完全相同的钓鱼域名。

image

答题

阅读本小节内容,回答以下问题。

image

在网络钓鱼中使用MS Office

通常在网络钓鱼活动期间,Microsoft Office 文档(通常是 Word、 Excel 或 PowerPoint)可以作为附件包括在钓鱼邮件内。Office 文档可以包含宏(macros),虽然宏(macros)有其合法的用途,但它也可以用来运行特定的计算机命令,在经过攻击者精心构造后,这些命令就可以导致恶意软件被安装到受害者的计算机上,或者可让受害者机器连接到攻击者的网络,最终使攻击者能够控制受害者的计算机。

以下面的场景为例:

为 Acme IT Support公司工作的员工收到了疑似来自人力资源部的电子邮件,其中包含了一个名为“ Staff_Salaries.xlsx”的 Excel 电子表格,这个.xlsx文件本应该发送给老板,但不知怎么却出现在了员工的收件箱里。

实际发生的情况是:攻击者伪造了人力资源部门的电子邮件地址,精心制作了一封具有心理吸引力的钓鱼邮件,它能够诱使员工打开邮件中的附件。

一旦工作人员打开了钓鱼邮件中的附件并且启用宏(macros),那么这些员工的计算机将会受到网络攻击入侵。

答题

阅读本小节内容,回答以下问题。

image

在网络钓鱼中利用浏览器漏洞

另一种控制受害者电脑的方法可能是通过浏览器漏洞利用;这是指浏览器本身存在漏洞,常见的浏览器有Internet Explorer/Edge、Firefox、Chrome、Safari等。有些浏览器漏洞允许攻击者在受害者的电脑上运行远程命令。

浏览器漏洞利用通常不会是红队演练中所采用的常用攻击路径,除非你事先了解到当前目标计算机中的浏览器正在使用一些可能存在漏洞的旧技术。

许多浏览器都是与时俱进的,而且由于浏览器的开发方式,往往很难形成有效的漏洞利用;此外,关于浏览器的漏洞利用通常也很值钱,如果你在SRC平台向浏览器开发人员报告相关漏洞的话,就会得到丰厚的赏金。

尽管如此,利用浏览器漏洞还是有可能发生的,正如前面所提到的那样,常见的浏览器漏洞可能会被用来针对当前目标计算机中正在使用旧技术的浏览器;在现实世界中,目标计算机所使用的浏览器软件,可能会由于与其他商业软件/硬件不兼容而不能保持及时更新,这种情况会经常发生在一些大型机构中,如教育机构、政府机构,特别是医疗保健机构。

通常,受害者会收到一封电子邮件,邮件内容会说服他们去访问由攻击者所建立的特定网站。一旦受害者访问了攻击者的站点,那么相关的浏览器漏洞利用程序就会对受害者所使用的浏览器起作用,从而使攻击者能够在受害者的计算机上执行任何希望执行的命令。

浏览器漏洞一个例子是2021年9月的CVE-2021-40444,它是在微软系统中发现的漏洞,能够允许仅通过让受害者访问一个网站来使攻击者进行远程代码执行。

答案

阅读本小节内容,回答以下问题。

image

网络钓鱼简单示例

现在你已经了解了钓鱼电子邮件活动的内容,让我们看看你是否能够区分钓鱼邮件,启动本小节的钓鱼测试模拟,你需要检查每封电子邮件,分析它的来源、链接和附件,然后判断相关电子邮件是否安全。

image

image

image

image

image

image

答题

完成本小节模拟示例,回答以下问题。

image