Skip to content

Ky9oss/rustphish

Repository files navigation

Rustphish

made-with-rust Maintenance Maintainer rustc-version Compilation-Chain



简体中文 | English

一个client-server分离的轻量化、高效能的钓鱼邮件演练工具,旨在替代gophish


目录

免责声明

本工具仅面向合法授权的企业安全建设行为,如您需要测试本工具的可用性,请自行搭建靶机环境。

在使用本工具进行检测时,您应确保该行为符合当地的法律法规,并且已经取得了足够的授权。请勿对非授权目标进行钓鱼。

如您在使用本工具的过程中存在任何非法行为,您需自行承担相应后果,我们将不承担任何法律及连带责任。

在安装并使用本工具前,请您务必审慎阅读、充分理解各条款内容,限制、免责条款或者其他涉及您重大权益的条款可能会以加粗、加下划线等形式提示您重点注意。 除非您已充分阅读、完全理解并接受本协议所有条款,否则,请您不要安装并使用本工具。您的使用行为或者您以其他任何明示或者默示方式表示接受本协议的,即视为您已阅读并同意本协议的约束。

快速开始

./bin/client.exe --help

项目介绍

下载

根据操作系统环境,在Github右侧的Releases中下载clientserver

client_read 是条件编译的最小客户端,只用于读取数据库,不支持发送邮件。该程序的设计用于面向内网数据库文件不便于传出的场景,可以将该文件传入内网服务器中,直接用于解密数据库记录 client_all 是完整客户端,支持发送邮件

使用方法

一、搭建服务器

  1. 修改config.toml,配置服务端监听端口、数据库路径、smtp服务器信息等,详情见配置文件
  2. 修改frontend/index.html,配置仿冒页面,详情见仿冒页面
  3. 运行./server,启动服务端
  4. 所有信息自动记录进./database数据库,该数据库只能使用客户端软件读取:./client.exe --read ./database

二、使用客户端发送钓鱼邮件

  1. ./client.exe --input xxx.txt: 导入邮箱
  2. ./client.exe --show: 确认邮箱成功导入
  3. 修改配置文件config.toml,配置每封邮件的间隔时间、发信人、主题等信息,详情见配置文件
  4. 修改邮件模板文件template.html,配置邮件内容,详情见邮件模板
  5. ./client.exe --send-all: 发送所有钓鱼邮件

三、使用客户端读取服务端的数据库记录

  1. 确保email_database文件中含有对应的受害者邮箱信息和ID,使用client.exe --show确认
  2. ./client.exe --read ./database: 读取数据库记录(或使用client_read

注意事项

重要文件

  • email_database:受害者邮箱信息和ID,在最初--input导入邮箱时,会记录邮箱信息。在发送钓鱼邮件后,请勿删除该文件或使用--delete删除非测试的邮箱,否则无法解析服务端数据库记录。建议备份保存
  • database:服务端数据库,在发送钓鱼邮件后,请勿删除该文件,否则无法读取受害人访问记录。建议备份保存

仿冒页面

下方为最简化的仿冒页面,建议使用forminput标签完成提交功能,目的是将数据通过POST包提交到{{submit}}接口

<!DOCTYPE html>
<html>
<head>
    <title>Dynamic Form</title>
</head>
<body>
    <!-- 重要部分 -->
    <form action="{{submit}}" method="post">
        <input type="text" name="key1"><br>
        <input type="text" name="key2"><br>
        <input type="text" name="key3"><br>
        <button type="submit">Submit</button>
    </form>
</body>
</html>

邮件模板

只需要修改ipport,请不要修改url路径接口部分(不要修改http/index/{{id}}/image/{{id}})

<html><head>
......
点击下方链接,完成测试: <a href="http://ip:port/index/{{id}}">http://ip:port/index/{{id}}</a>
<img src="http://ip:port/image/{{id}}" alt=""> <!-- 用于记录受害者是否打开邮件 -->
</body></html>

配置文件

[server]
ip = "0.0.0.0" #服务端监听ip
port = 8080 #服务端端口

[paths]
phish_page = "./frontend/test.html" #仿冒页面路径
redirect_url = "http://localhost:8080/success" #提交成功后,重定向的url
success_page = "./frontend/success.html" #路由`/success`下的成功页面路径,可以用于`paths.redirect_url`重定向

[smtp]
server = "smtp.126.com" #smtp服务器地址
username = "[email protected]" #smtp服务器用户名
from_email = "Test <[email protected]>" #发件人邮箱
subject = "Test Subject" #邮件主题
interval = 5 #每封邮件间隔时间

[email]
template = "template.html" #邮件模板路径

编译

如需自行编译,按如下方式操作

cargo build --release -p client --features db
cargo build --release -p client --all-features
cargo build --release -p server

功能实现

服务端

  • 图片识别接口
  • 外部config
  • 替换unwrap,确保稳定性
  • https
  • 挂载木马

客户端

  • 导入受害人列表,存储受害人信息及对应ID
  • 利用邮件模板和受害人信息,生成对应钓鱼邮件
  • 读取服务端数据库,格式化输出所有钓鱼信息
  • 使用smtp通过其他邮箱平台发送邮件

About

Open-Source Phishing Toolkit

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages