opensourceprojects.dev

A broadsheet for software that doesn't ask for your email

An open-source framework for authorized social-engineering assessments
GitHub RepoViews4

Project Description

View on GitHub

Testing Human Judgment: Inside the Social-Engineer Toolkit

You can lock down every server, patch every endpoint, and still lose to a well-crafted email. The weakest link in most security programs isn't technical—it's a person deciding whether to trust a message. If you need to measure that risk in a controlled, authorized way, the Social-Engineer Toolkit (SET) is the framework built for exactly that job.

What It Does

SET is an open-source penetration testing framework for authorized social-engineering assessments. It provides guided attack vectors for security teams that need to test user awareness, validate controls, and run consent-based red-team exercises. Rather than assembling tooling from scratch for every engagement, you get a structured framework that walks you through the assessment process.

The project is maintained by TrustedSec and written by David Kennedy (ReL1K). It's a Python application, with version 8.1.3 targeting Python 3.11 through 3.13. You launch it as an interactive console and work through the available vectors from there, which keeps the workflow contained and repeatable across engagements.

Why It's Cool

  • It's explicit about authorization. The README's responsible-use section isn't boilerplate—it states plainly that SET is only for testing where explicit permission and scope have been established. For a tool in this category, that framing matters. It sets the tone for how you should be using it and keeps the project grounded in legitimate red-team work.

  • A guided console beats a pile of scripts. Social-engineering assessments involve a lot of moving parts, and SET's interactive approach means you're following a defined path rather than improvising tooling mid-engagement. That structure is useful both for experienced testers and for teams formalizing their process.

  • Platform coverage that meets you where you are. Linux is the primary target, macOS is supported experimentally, and Windows works through WSL/WSL2 with Kali or another supported Linux environment. If your assessment machine is a Windows box, you're not locked out.

  • Two installation paths, clearly separated. You can grab it from the Kali repos with a single apt install, or run it from source in a virtual environment if you want to track changes or contribute. The legacy system-wide installer is still documented for anyone who prefers the traditional layout with /etc/setoolkit/set.config and /usr/local/bin/setoolkit.

  • It's straightforward to develop against. The README lays out the full loop—editable install, pytest, a compileall check, then the test suite. That's a low bar for anyone who wants to extend the framework or verify a change before submitting it.

How to Try It

The fastest route on Kali Linux or WSL:

sudo apt update
sudo apt install set -y

If you'd rather run from source:

git clone https://github.com/trustedsec/social-engineer-toolkit/ setoolkit/
cd setoolkit
python3 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
python -m pip install -e .

For the legacy system-wide layout, run the installer with elevated privileges:

sudo python3 setup.py

That copies SET to /usr/local/share/setoolkit, writes /etc/setoolkit/set.config, and creates /usr/local/bin/setoolkit.

Once installed, launch the interactive console:

sudo setoolkit

From a source checkout, sudo ./setoolkit works too. The full user manual lives in the repo as a PDF, and you'll want to read it before running anything—the guided vectors are powerful and deserve the context.

If you're developing, the loop is:

python -m pip install -e .
python -m pip install pytest
python -m compileall -q .
pytest -q

Find the project at github.com/trustedsec/social-engineer-toolkit. Security issues go through the process in SECURITY.md—not public issues—and non-sensitive bugs or enhancements belong in the issue tracker with your SET version, platform, Python version, and reproduction steps.

Final Thoughts

SET is best suited to security teams running authorized, consent-based assessments and to organizations that want to validate whether their awareness training actually sticks. It's not a casual tool, and the project is clear about that. The takeaway is simple: if you're testing the human layer of your defenses, you need a framework that takes scope and permission seriously—and this one does. The Python 3.11–3.13 support and straightforward dev workflow suggest a project that's being maintained rather than left to drift, which is what you want from a tool you'll trust in the field.


Follow @githubprojects for more developer tools and open source projects.

Back to Projects
Project ID: social-engineer-toolkitLast updated: November 14, 2026 at 02:46 AM