钓鱼指北 Gophish钓鱼平台和邮件服务器搭建

0x00 攻防演练钓鱼

起因,在大型攻防演练中,传统的web层面Nday打点突破难点变大,于是越来越多的攻击队会加入钓鱼行动中,本文章就常规邮件的钓鱼进行介绍,后续还有IM这种也是很有效的方式。

0x01 搭建Gophish钓鱼平台

Gophish 是一个功能强大的开源网络钓框架,安装运行都非常简单。

Github 地址:https://github.com/gophish/gophish

1、下载

https://github.com/gophish/gophish/releases

下载对应的版本

image-20220117161349446

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

unzip gophish-v0.11.0-linux-64bit.zip
image-20220117161600498

2、修改 config.json

vim config.json

image-20220117161759312

  • admin_server 把 127.0.0.1 改为 0.0.0.0,外网直接访问就要0.0.0.0

  • listen_url也要是0.0.0.0:81,我的80端口被占用了,所以改81

3、运行

chmod u+x gophish
./gophish 

image-20220117162021496

默认的admin密码再在最后,自己找一下

image-20220117162112606

4、搭建完成

https://VPS-IP:3333/

image-20220117162338519

也可以直接使用公共邮箱,去开通一下就好了。但是发多了会被封的,所以我们还是自己搭。

0x02 购买域名

建议使用国外的域名和云vps

要自己去弄一个近似域名发件人去发一些钓鱼邮件,这个自己购买吧

在此近似域名的DNS管理页面增加两条记录:

image-20220117160858770

0x03 邮件服务器的搭建

  • 公共邮箱其实也是可以,但是发多了会被封的,所以我们还是自己搭。
  • 由于我的VPS一直是Ubuntu,所以选择使用 Postfix+mailutils

(如果是centos,有更好用的平台EwoMail搭建,参考官方文档进行一步步搭建http://doc.ewomail.com/docs/ewomail/install)

1、安装Postfix

 apt install postfix

image-20220117160043668

写入自己域名,不需要前缀

image-20220117102647996

2、安装mailx软件包

apt install mailutils

3、增加测试用户

这个用户就是将来收发邮件那个同名用户

useradd -m -s /bin/bash master
passwd master

image-20220117103020892

4、测试邮件发送

root@10-7-21-215:~# telnet localhost 25
Trying ::1...
Connected to localhost.
Escape character is '^]'.
220 10-7-21-215 ESMTP Postfix (Ubuntu)
ehlo localhost
250-10-7-21-215
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-STARTTLS
250-ENHANCEDSTATUSCODES
250-8BITMIME
250-DSN
250 SMTPUTF8
mail from:master@icbxxxxices.ml
250 2.1.0 Ok
rcpt to:123456@qq.com
250 2.1.5 Ok
data
354 End data with <CR><LF>.<CR><LF>
Subject:this is test qq mail
qqqq
ssss
.
250 2.0.0 Ok: queued as 09B30C444A
quit
221 2.0.0 Bye
Connection closed by foreign host.

image-20220117160745104

image-20220117160726281

5、收到测试邮件

image-20220117160654796

6、回复一下邮件,可以接受邮件

切换用户看一下

su - master
mail

image-20220117114317418

7、邮件服务器done

0x04 实战钓鱼

环境搭建好了,那么下面就开始正式钓鱼了

1、Sending Profiles-邮箱配置

使用本机刚刚陪着好邮件服务器

image-20220117172647005

此处需要注意的是Host处:

  • 因为大部分的国内云厂商因为 监管要求,为防止邮件泛滥,都将25端口禁用了,因此可采用带有SSL的SMTP服务的端 口:465端口。
  • 我能用是因为,我用的vps是国外的,大家自行更改。
  • 因为我们的 Gophish 服务器跟邮件服务器搭在同一台 VPS 上面,所以在这里填写 127.0.0.1

发送测试一下

image-20220117172859038

收到邮件

image-20220117173154818

2、Email Templates-钓鱼邮件模板

第一种自己写

image-20220117173838799

<html>
<head>
	<title></title>
</head>
<body>
<p>您好:</p>

<p>近期检测到您在学者网教学科研协作单位平台的密码已过期, 请点击<a href="{{.URL}}">此链接</a>尽快修改密码,谢谢配合!</p>
{{.Tracker}}</body>

<p>请不要直接回复本邮件。</p>
<p>学信网</p>
</html>

第二种可以导入现有的邮件

首先将原有的邮件导出为eml格式。

image-20220117174448234

导入即可

image-20220117174400492

把超链接的部分,加上URL标签,最后设置钓鱼页面

image-20220117174749203

3、Landing Pages-伪造钓鱼页面

配置好钓鱼邮件后,就可以通过LandingPages模块来新建钓鱼网站页面。

1、此处支持手写 html文件

2、直接克隆网站

我使用第二种:

image-20220117175521760

其中选项:

  • CaptureSubmitted Data和CapturePasswords,记录受害者输入的账号和密码。
  • Redirect to填写该页面真实的地址,方便受害者点击完提交按钮后,自动跳转至真正的网站。

4、Users& Groups-邮件用户和组

此时就可以进行下一步的配置,设置要进行钓鱼攻击的邮箱地址

使用模版批量导入,导入邮箱可以使用CSV进行批量添加

(格式可点击Download CSV TEmplate获取模板)

image-20220117175956861

5、Campaigns-钓鱼测试

配置Campaigns,填写Name、选择钓鱼邮件模板、选择钓鱼网站模板、填写钓鱼网站 URL、填写发件邮箱、选择受害者邮件组。

image-20220117180250617

注意这个URL是VPS上gophish一开始配置的那个

就是 http://vps-ip:81

image-20220117180454331

6、查看战果

这里有全部任务的统计

image-20220117190809333

7、打开详细内容

可以看到发送成功的邮件、打开邮件的情况、点击链接的情况、提交数据的情况

image-20220117180333865

0x05 总结

这个只是邮件钓鱼的基础设施搭建,和基本使用方式,后续还有很多要点,木马免杀、钓鱼话术、邮箱收集等等。。。还有就是通过IM的方式也是十分有效的,后续再说。

<think>好的,我现在要解决用户提出的关于OpenGL中缺失EGL的问题。首先,我需要回忆EGLOpenGL中的作用。EGL是作为OpenGL和本地窗口系统之间的中间层,负责上下文管理、表面创建等。如果缺少EGL,可能导致无法正确初始化渲染环境。 用户提到的问题可能是他们在开发过程中遇到了EGL相关的错误,比如无法初始化EGLDisplay或者找不到相关的函数。我需要考虑可能导致这个问题的原因。根据引用[1]中的代码片段,eglInitialize函数的实现位于特定的源码位置,这可能意味着在某些环境EGL的实现可能没有被正确链接或包含。 接下来,我需要分步骤思考解决方案。首先,用户应该检查开发环境是否安装了正确的EGL库。例如,在Linux上,可能需要安装如libegl1-mesa-dev这样的包。引用[4]提到,开发板需要GPU厂商提供的OpenGL ES库和头文件,这可能意味着用户需要确保这些依赖项已正确安装。 然后,用户需要验证他们的项目配置是否正确,包括编译器和链接器是否指向正确的库路径。例如,使用-lEGL来链接EGL库。如果用户使用的是跨平台环境,比如Android,可能需要检查NDK的配置,确保包含EGL头文件和库。 另外,用户可能需要检查代码中的初始化流程是否正确。例如,在引用[3]中提到的EGL环境搭建步骤,是否正确创建了Display、Config、Context和Surface。如果步骤有误,可能导致EGL功能无法正常使用。 还有可能需要考虑硬件支持的问题。某些集成显卡或旧硬件可能不支持EGL,或者需要特定的驱动程序。用户应检查GPU是否支持所需的EGL版本,并安装最新的驱动。 最后,用户可能需要查阅更多的文档或社区资源,如Khronos的官方文档,以获取针对他们特定平台的指导。如果问题依然存在,可能需要调试代码,使用工具检查库的加载情况,或者查看更详细的错误日志。</think>### OpenGL缺失EGL问题的解决方案 EGLOpenGL/OpenGL ES与本地窗口系统之间的接口层,负责上下文管理、表面创建和资源绑定。若出现EGL缺失问题,可按照以下步骤排查解决: #### 1. 验证系统环境支持 - **Linux系统**需安装Mesa库: ```bash sudo apt-get install libegl1-mesa-dev mesa-common-dev ``` - **Android NDK开发**需在`CMakeLists.txt`中添加EGL链接: ```cmake target_link_libraries(YourTarget EGL GLESv2) ``` - **嵌入式平台**需确认GPU厂商提供了EGL库(如Mali/Adreno驱动),引用[4]指出需确保GPU相关库已正确安装 #### 2. 检查代码初始化流程 正确EGL初始化顺序应为: 1. 获取Display:`eglGetDisplay()` 2. 初始化Display:`eglInitialize()` 3. 选择Config:`eglChooseConfig()` 4. 创建Context:`eglCreateContext()` 5. 创建Surface:`eglCreateWindowSurface()` 6. 绑定上下文:`eglMakeCurrent()` 代码示例参考引用[1]中的`eglInitialize`实现: ```cpp EGLBoolean eglInitialize(EGLDisplay dpy, EGLint* major, EGLint* minor) { clearError(); egl_connection_t* const cnx = &gEGLImpl; return cnx->platform.eglInitialize(dpy, major, minor); } ``` #### 3. 检查依赖项链接 - 编译时需添加`-lEGL`链接器标志 - Windows系统需要`egl.h`和`egl.lib`(通常由ANGLE库提供) - 确认头文件包含路径正确: ```cpp #include <EGL/egl.h> #include <GLES2/gl2.h> ``` #### 4. 调试常见错误场景 | 错误现象 | 可能原因 | 解决方案 | |--------------------------|---------------------------|------------------------------| | `eglInitialize`失败 | 显示设备不兼容 | 改用`EGL_DEFAULT_DISPLAY` | | 未找到EGL函数符号 | 动态库加载顺序错误 | 先加载`libEGL.so`再加载GL库 | | `eglCreateContext`返回NULL| 未正确设置GL版本属性 | 添加`EGL_CONTEXT_CLIENT_VERSION`属性 | #### 5. 平台特定注意事项 - **Android**:必须使用`EGLContext`而非`GLX/WGL`,引用[3]中Android OpenGLES开发教程强调必须通过EGL创建渲染环境 - **WebGL**:浏览器自动处理EGL等价功能,无需手动配置 - **嵌入式系统**:可能需要设置`LD_LIBRARY_PATH`指向GPU厂商提供的库路径
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值