2025-12-20
敢于浪费哪怕一个钟头时间的人,说明他还不懂得珍惜生命的全部价值。——达尔文
Social-Engineer Toolkit(SET)深度介绍:一款专注社会工程的渗透测试框架
仓库地址:trustedsec/social-engineer-toolkit
作者:David Kennedy (ReL1K) @HackingDave,来自 TrustedSec
默认分支:master
语言:Python
重要声明:SET 仅用于授权且明确同意的安全测试场景。请严格遵守法律与道德规范。
SET 是什么?
Social-Engineer Toolkit(简称 SET)是一款开源的社会工程渗透测试框架。它的设计目标非常明确:为红队/安全测试人员提供一组“可快速发起、逼真可信”的社会工程攻击向量,用于在合法授权的前提下验证组织的人为风险与安全流程。
官方 README 概述了它的核心定位:
- 专注“社会工程”场景的渗透测试框架
- 提供多种可定制的攻击手法(attack vectors),用于模拟真实社工
- 高度脚本化与模块化,强调“快速”与“可组合”的测试流程
- 明确的法律合规声明:仅在“严格同意(strict consent)”的前提下使用
小结:如果你的目标是评估人员安全意识、流程抗社工能力、响应机制是否有效,SET 是非常合适的专业工具。
支持平台与环境准备
README 中明确列出支持平台:
- Linux(完整支持)
- macOS(实验性支持)
此外,README 对 Windows 10(WSL/WSL2 的 Kali Linux)也给出了安装建议,这意味着在 Windows 环境下可通过 WSL 运行 Kali 再安装 SET。
安装方式总览
SET 的安装方式十分直接,适合不同操作系统与使用习惯:
1) 使用 requirements.txt 安装依赖后安装
1 | |
2) macOS(实验性)与 M2 芯片的虚拟环境建议
README 对 M2 环境给出“务必使用虚拟环境(venv)”的提示:
1 | |
3) WSL/WSL2 下的 Kali Linux(一条命令即可)
1 | |
说明:Kali on Windows 10 的默认安装通常是“最小化环境”,需要手工安装工具;使用
apt无需 pip 直接安装 SET。
4) Linux 的标准源码安装流程
1 | |
文档与学习资源
- 官方用户手册(PDF):SET User Manual
建议从这里开始了解各模块、攻击向量以及操作流程的细节。 - 问题与增强:可在 Issues 中提报。
合法合规的重要性
README 明确强调:
- SET 仅用于“测试目的”(testing purposes)
- 且“只能在严格同意(strict consent)”的场景下使用
- 请勿用于任何非法用途
在使用前,请确保:
- 你拥有书面授权(含时间范围、目标范围、测试类型边界)
- 已与相关团队明确沟通(IT/法务/人力/管理层)
- 制定清晰的测试计划、风险缓解与应急响应流程
快速上手:建议的运行与使用思路
虽然 README 没有给出完整“启动命令与交互界面”示例(这部分详见用户手册),但你可以遵循如下安全测试思路:
- 环境准备
- 在 Kali / Linux / macOS(实验)上完成依赖安装与
setup.py安装 - 建议使用虚拟环境(venv)隔离依赖
- 在 Kali / Linux / macOS(实验)上完成依赖安装与
- 目标授权
- 明确授权边界(人员、组织、系统、时长)
- 记录并备查
- 攻击向量选择
- 根据测试目标选择模块(例如模拟钓鱼邮件、恶意文档、日志社会工程等)
- 在用户手册中查阅每个向量的配置参数与适用场景
- 运行与记录
- 迭代执行测试步骤,注意保留日志与证据(供复盘与改进)
- 复盘与改进
- 输出报告(发现点、改进建议、培训与流程优化)
代码与命令片段示例
以下片段来自 README 的安装方式,适合作为你的“最小工作流骨架”:
使用 pip + setup 安装(Linux/macOS)
1 | |
macOS(M2)推荐用 venv
1 | |
WSL/WSL2(Kali Linux)一键安装
1 | |
标准 Linux 源码安装
1 | |
提示:执行完安装后,下一步应参考用户手册(PDF)来选择和配置具体的攻击向量与模块。不要在未授权的系统与人员上尝试任何社工活动。
常见注意事项与实践建议
- 虚拟环境优先(venv):降低依赖冲突,便于多版本管理
- 日志与证据留存:完整记录测试过程,便于复盘与合规审计
- 风险控制:在任何“可能触发真实业务中断”的环节前做好演练与隔离
- 跨平台差异:macOS 标注为“实验性”,建议首选 Kali / Linux 作为主战环境
- 社工测试是“人类工程”:在技术手段之外,同样重视“培训与流程改进”
总结
SET 作为一款“面向社会工程”的渗透测试框架,强调在合法授权下,通过快速可定制的攻击向量来评估组织的人为风险与响应机制。它并非用于“炫技”,而是帮助企业更系统地识别薄弱点、优化培训、完善流程。
- 项目主页与代码:trustedsec/social-engineer-toolkit
- 用户手册(PDF):SET User Manual
- 反馈与增强:Issues
在严格授权与合规前提下,合理地使用 SET,将有效提升组织对社会工程的防御与认知水平。