一、SOCIALFish 简介
SOCIALFish 是一款由 UndeadSec 团队开发的智能社交工程钓鱼系统,主要用于教育和安全研究领域。它可以快速生成针对各种社交媒体平台的仿冒登录页面,用来模拟真实的网络钓鱼攻击场景,帮助安全研究人员评估和提高网络安全防护能力。
核心特性
- 自定义页面模板:用户可以创建个性化的钓鱼页面,模仿常见的登录界面。
- 多种平台兼容:支持针对各种操作系统和设备的攻击模拟。
- 实时报告:提供详细的用户交互报告,便于分析测试结果。
- 内网穿透支持:集成 Ngrok,可实现对本地服务的远程访问。
二、安装与配置
2.1 环境要求
- 操作系统:Kali Linux 2021.2 及以上版本,或其他支持 Python 的 Linux 发行版
- Python 版本:Python 3.6 及以上
- 依赖库:flask, colorama, sqlite3, flask_login, shutil, re, os, secrets, python-nmap, smtplib, email, pylatex, qrcode
2.2 安装步骤
2.2.1 克隆项目
打开终端,执行以下命令克隆 SOCIALFish 项目:
git clone https://github.com/UndeadSec/SocialFish.git
如果克隆速度较慢,可以先使用代理工具进行加速下载。
2.2.2 安装依赖
进入 SOCIALFish 目录,查看项目文件:
cd SocialFish/
ls
可以看到项目中有一个 requirements.txt 文件,这是安装依赖库的配置文件。在安装依赖之前,建议先创建一个虚拟环境:
# 创建虚拟环境
python3 -m venv venv
# 激活虚拟环境
source venv/bin/activate
激活虚拟环境后,终端提示符前会出现 (venv) 字样。接下来,使用以下命令安装依赖库:
pip install -r requirements.txt
2.2.3 配置 App 密钥
编辑 SocialFish/core/config.py 文件,修改 APP_SECRET_KEY 的值,将其替换为一个随机字符串:
APP_SECRET_KEY = 'your_random_secret_key'
三、运行 SOCIALFish
3.1 启动服务
在终端中执行以下命令启动 SOCIALFish 服务,并设置登录用户名和密码:
python3 SocialFish.py your_username your_password
其中,your_username 和 your_password 分别为你设置的登录用户名和密码。
3.2 访问控制台
服务启动后,在浏览器中访问 http://0.0.0.0:5000/neptune ,输入刚刚设置的用户名和密码,即可登录到 SOCIALFish 的控制台。
四、使用 SOCIALFish 进行钓鱼测试
4.1 创建钓鱼页面
在控制台的右上角输入框中,输入你想要模仿的登录页面的 URL,例如 https://github.com/login ,然后在后面的输入框中设置用户输入用户名和密码后跳转的页面,例如 https://www.baidu.com 。
设置完成后,点击右侧的闪电图标,即可生成钓鱼页面。
4.2 访问钓鱼页面
在另一台设备上,访问钓鱼页面的 URL,格式为 http://<你的服务器 IP 地址>:5000 。例如,如果你的服务器 IP 地址是 192.168.174.134,则钓鱼页面的 URL 为 http://192.168.174.134:5000 。
在钓鱼页面中输入假的用户名和密码,点击登录按钮,页面会跳转到你设置的目标页面。
4.3 查看钓鱼结果
回到 SOCIALFish 的控制台,刷新页面,可以看到在"Successful Attacks"下面显示了成功钓鱼的记录。点击"View"按钮,可以查看用户输入的用户名和密码。
五、内网穿透配置
默认情况下,SOCIALFish 只能在局域网内访问。如果想要让外网用户也能访问钓鱼页面,需要配置内网穿透。以下是两种常用的内网穿透工具的配置方法。
5.1 Ngrok
5.1.1 注册并下载 Ngrok
访问 Ngrok 的官方网站( https://ngrok.com/ ),注册一个账号并下载 Ngrok 客户端。
5.1.2 配置 Authtoken
将下载的 Ngrok 客户端解压缩到本地目录,然后执行以下命令配置 Authtoken:
./ngrok config add-authtoken your_authtoken
其中,your_authtoken 是你在 Ngrok 官网获取的 Authtoken。
5.1.3 启动内网穿透服务
执行以下命令启动内网穿透服务:
./ngrok http <你的服务器 IP 地址>:5000
例如,如果你的服务器 IP 地址是 192.168.174.134,则命令为:
./ngrok http 192.168.174.134:5000
启动成功后,会显示一个外网访问地址,例如 http://xxxx-xx-xx-xx-xx.ngrok.io 。外网用户可以通过这个地址访问你的钓鱼页面。
5.2 NATAPP
5.2.1 注册并购买免费套餐
访问 NATAPP 的官方网站( https://natapp.cn/ ),注册一个账号并购买免费套餐。
5.2.2 配置隧道
在 NATAPP 控制台中,点击"修改隧道配置",将本地地址设置为运行 SOCIALFish 的服务器 IP 地址,端口设置为 5000,然后保存配置。
5.2.3 启动内网穿透服务
下载 NATAPP 客户端,执行以下命令启动内网穿透服务:
./natapp -authtoken=your_authtoken
其中,your_authtoken 是你在 NATAPP 控制台获取的 Authtoken。
六、注意事项与法律声明
6.1 合法使用
本教程仅用于教育和安全研究目的,请勿在无合法授权的情况下使用 SOCIALFish 进行测试。未经授权使用此类工具可能会侵犯他人隐私,触犯相关法律,任何因此引发的法律或利益纠纷与本人无关。
6.2 安全防范
在使用 SOCIALFish 进行测试时,应注意保护自己的网络安全,避免被他人反向攻击。同时,应提醒用户不要随意点击陌生人发送的链接,以防止遭受网络钓鱼攻击。
6.3 法律责任
使用 SOCIALFish 进行非法活动可能会导致严重的法律后果,包括但不限于罚款、监禁等。请务必遵守相关法律法规,合法使用本工具。
七、总结
SOCIALFish 是一款功能强大的社会工程学测试工具,它能够帮助安全研究人员模拟网络钓鱼攻击,评估目标系统的安全防护能力。通过学习和使用 SOCIALFish,我们可以更加深入地了解网络钓鱼的攻击原理,从而提高在实际场景中识别和防御此类攻击的能力。
希望本教程能够帮助你快速上手 SOCIALFish,并在安全研究工作中发挥作用。如果你在使用过程中遇到问题,可以参考 SOCIALFish 的官方文档( https://github.com/UndeadSec/SocialFish )或在云栈社区等技术社区中寻求帮助。
本文仅供教育和安全研究目的使用
请遵守法律法规,合法使用安全测试工具