敢于浪费哪怕一个钟头时间的人,说明他还不懂得珍惜生命的全部价值。——达尔文

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
pip3 install -r requirements.txt
python3 setup.py

2) macOS(实验性)与 M2 芯片的虚拟环境建议

README 对 M2 环境给出“务必使用虚拟环境(venv)”的提示:

1
2
3
4
5
6
7
# 进入 social-engineer-toolkit 目录后执行
python3 -m venv path/to/venv
source path/to/venv/bin/activate
python3 -m pip install -r requirements.txt

# 安装 SET(需要 sudo)
sudo python3 setup.py

3) WSL/WSL2 下的 Kali Linux(一条命令即可)

1
sudo apt install set -y

说明:Kali on Windows 10 的默认安装通常是“最小化环境”,需要手工安装工具;使用 apt 无需 pip 直接安装 SET。

4) Linux 的标准源码安装流程

1
2
3
4
git clone https://github.com/trustedsec/social-engineer-toolkit/ setoolkit/
cd setoolkit
pip3 install -r requirements.txt
python setup.py

文档与学习资源

  • 官方用户手册(PDF):SET User Manual
    建议从这里开始了解各模块、攻击向量以及操作流程的细节。
  • 问题与增强:可在 Issues 中提报。

合法合规的重要性

README 明确强调:

  • SET 仅用于“测试目的”(testing purposes)
  • 且“只能在严格同意(strict consent)”的场景下使用
  • 请勿用于任何非法用途

在使用前,请确保:

  • 你拥有书面授权(含时间范围、目标范围、测试类型边界)
  • 已与相关团队明确沟通(IT/法务/人力/管理层)
  • 制定清晰的测试计划、风险缓解与应急响应流程

快速上手:建议的运行与使用思路

虽然 README 没有给出完整“启动命令与交互界面”示例(这部分详见用户手册),但你可以遵循如下安全测试思路:

  1. 环境准备
    • 在 Kali / Linux / macOS(实验)上完成依赖安装与 setup.py 安装
    • 建议使用虚拟环境(venv)隔离依赖
  2. 目标授权
    • 明确授权边界(人员、组织、系统、时长)
    • 记录并备查
  3. 攻击向量选择
    • 根据测试目标选择模块(例如模拟钓鱼邮件、恶意文档、日志社会工程等)
    • 在用户手册中查阅每个向量的配置参数与适用场景
  4. 运行与记录
    • 迭代执行测试步骤,注意保留日志与证据(供复盘与改进)
  5. 复盘与改进
    • 输出报告(发现点、改进建议、培训与流程优化)

代码与命令片段示例

以下片段来自 README 的安装方式,适合作为你的“最小工作流骨架”:

使用 pip + setup 安装(Linux/macOS)

1
2
3
4
5
# 安装依赖
pip3 install -r requirements.txt

# 安装 SET
python3 setup.py

macOS(M2)推荐用 venv

1
2
3
4
5
6
7
8
9
# 创建并进入虚拟环境
python3 -m venv path/to/venv
source path/to/venv/bin/activate

# 安装依赖
python3 -m pip install -r requirements.txt

# 安装 SET(可能需要管理员权限)
sudo python3 setup.py

WSL/WSL2(Kali Linux)一键安装

1
sudo apt install set -y

标准 Linux 源码安装

1
2
3
4
git clone https://github.com/trustedsec/social-engineer-toolkit/ setoolkit/
cd setoolkit
pip3 install -r requirements.txt
python setup.py

提示:执行完安装后,下一步应参考用户手册(PDF)来选择和配置具体的攻击向量与模块。不要在未授权的系统与人员上尝试任何社工活动。


常见注意事项与实践建议

  • 虚拟环境优先(venv):降低依赖冲突,便于多版本管理
  • 日志与证据留存:完整记录测试过程,便于复盘与合规审计
  • 风险控制:在任何“可能触发真实业务中断”的环节前做好演练与隔离
  • 跨平台差异:macOS 标注为“实验性”,建议首选 Kali / Linux 作为主战环境
  • 社工测试是“人类工程”:在技术手段之外,同样重视“培训与流程改进”

总结

SET 作为一款“面向社会工程”的渗透测试框架,强调在合法授权下,通过快速可定制的攻击向量来评估组织的人为风险与响应机制。它并非用于“炫技”,而是帮助企业更系统地识别薄弱点、优化培训、完善流程。

在严格授权与合规前提下,合理地使用 SET,将有效提升组织对社会工程的防御与认知水平。