AYI-NEDJIMI commited on
Commit
73e4426
·
verified ·
1 Parent(s): 10da83e

Upload ad-attack-simulator Space

Browse files
Files changed (3) hide show
  1. README.md +105 -6
  2. app.py +1116 -0
  3. requirements.txt +4 -0
README.md CHANGED
@@ -1,12 +1,111 @@
1
  ---
2
- title: Ad Attack Simulator
3
- emoji: 🏆
4
- colorFrom: gray
5
- colorTo: pink
6
  sdk: gradio
7
- sdk_version: 6.5.1
 
8
  app_file: app.py
9
  pinned: false
 
 
 
 
 
 
 
 
10
  ---
11
 
12
- Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  ---
2
+ title: AD Attack Simulator
3
+ emoji: 🏰
4
+ colorFrom: purple
5
+ colorTo: red
6
  sdk: gradio
7
+ sdk_version: 4.44.0
8
+ python_version: "3.10"
9
  app_file: app.py
10
  pinned: false
11
+ license: apache-2.0
12
+ tags:
13
+ - cybersecurity
14
+ - active-directory
15
+ - attack-simulation
16
+ - kill-chain
17
+ - mitre-attack
18
+ - ayinedjimi-consultants
19
  ---
20
 
21
+ # AD Attack Simulator - Interactive Kill Chain Visualizer
22
+
23
+ An interactive visualization tool for understanding 20 critical Active Directory attack techniques with detailed kill chain analysis, MITRE ATT&CK mappings, detection methods, and defense recommendations.
24
+
25
+ ## Features
26
+
27
+ - **20 AD Attack Techniques**: Comprehensive coverage of major AD attack vectors including:
28
+ - Golden Ticket
29
+ - DCSync
30
+ - Kerberoasting
31
+ - AS-REP Roasting
32
+ - Pass-the-Hash
33
+ - Pass-the-Ticket
34
+ - Skeleton Key
35
+ - DCShadow
36
+ - Silver Ticket
37
+ - AD CS/Certificates
38
+ - AdminSDHolder
39
+ - ACL Abuse
40
+ - NTLM Relay
41
+ - SIDHistory Injection
42
+ - RBCD Abuse
43
+ - GPO Abuse
44
+ - AD FS/SAML
45
+ - Forest Trust Abuse
46
+ - Password Filter DLL
47
+ - Computer Account Takeover
48
+
49
+ - **Kill Chain Visualization**: Interactive Plotly diagrams showing attack progression through:
50
+ - Reconnaissance
51
+ - Initial Access
52
+ - Execution
53
+ - Persistence
54
+ - Privilege Escalation
55
+ - Lateral Movement
56
+ - Exfiltration
57
+
58
+ - **Bilingual Support**: Full English and French language support for all content
59
+
60
+ - **MITRE ATT&CK Integration**: Mapping of each attack to official MITRE ATT&CK techniques
61
+
62
+ - **Detection & Defense**: Practical detection methods and security recommendations for each attack
63
+
64
+ - **Tool Information**: Lists of both offensive and defensive tools for each technique
65
+
66
+ ## Resources
67
+
68
+ ### Top 10 Attacks
69
+ - [Top 10 Attaques Active Directory](https://ayinedjimi-consultants.fr/top-10-attaques-active-directory.html)
70
+
71
+ ### Detailed Attack Guides
72
+ - [Golden Ticket - Attaque & Défense](https://ayinedjimi-consultants.fr/attaques_active-directory/golden-ticket-attaque-defense.html)
73
+ - [DCSync - Attaque & Défense](https://ayinedjimi-consultants.fr/attaques_active-directory/dcsync-attaque-defense.html)
74
+ - [Kerberoasting - Attaque & Défense](https://ayinedjimi-consultants.fr/attaques_active-directory/kerberoasting-attaque-defense.html)
75
+ - [Pass-the-Hash - Attaque & Défense](https://ayinedjimi-consultants.fr/attaques_active-directory/pass-the-hash-attaque-defense.html)
76
+ - [Pass-the-Ticket - Attaque & Défense](https://ayinedjimi-consultants.fr/attaques_active-directory/pass-the-ticket-attaque-defense.html)
77
+ - [Skeleton Key - Attaque & Défense](https://ayinedjimi-consultants.fr/attaques_active-directory/skeleton-key-attaque-defense.html)
78
+ - [DCShadow - Attaque & Défense](https://ayinedjimi-consultants.fr/attaques_active-directory/dcshadow-attaque-defense.html)
79
+ - [Silver Ticket - Attaque & Défense](https://ayinedjimi-consultants.fr/attaques_active-directory/silver-ticket-attaque-defense.html)
80
+ - [AD CS/Certificats - Attaque & Défense](https://ayinedjimi-consultants.fr/attaques_active-directory/adcs-certificats-attaque-defense.html)
81
+
82
+ ### Security Guides & Tools
83
+ - [Cluster Active Directory Hub](https://ayinedjimi-consultants.fr/cluster-active-directory-hub.html)
84
+ - [Livre Blanc - Sécurité Active Directory](https://ayinedjimi-consultants.fr/livre-blanc-securite-active-directory.html)
85
+ - [Guide de Sécurisation Active Directory 2025](https://ayinedjimi-consultants.fr/guide-securisation-active-directory-2025.html)
86
+ - [Top 10 Outils d'Audit Active Directory 2025](https://ayinedjimi-consultants.fr/top-10-outils-audit-active-directory-2025.html)
87
+ - [Top 5 Outils d'Audit Active Directory](https://ayinedjimi-consultants.fr/top-5-outils-audit-active-directory.html)
88
+
89
+ ## How to Use
90
+
91
+ 1. Select your preferred language (English or Français)
92
+ 2. Choose an attack from the dropdown menu
93
+ 3. Review the kill chain visualization showing attack phases
94
+ 4. Study the description and MITRE ATT&CK mapping
95
+ 5. Learn about detection methods and defense recommendations
96
+ 6. Explore the tools used for both offense and defense
97
+ 7. Visit the Resources tab for deep-dive guides and additional learning materials
98
+
99
+ ## About the Creator
100
+
101
+ Created by [AYI-NEDJIMI Consultants](https://ayinedjimi-consultants.fr/bio.html) - Cybersecurity expertise and Active Directory security solutions.
102
+
103
+ ## License
104
+
105
+ Apache License 2.0
106
+
107
+ ## Technologies
108
+
109
+ - **Gradio 4.44.0**: Interactive web interface
110
+ - **Plotly**: Interactive kill chain visualizations
111
+ - **Python 3.10**: Core application logic
app.py ADDED
@@ -0,0 +1,1116 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import gradio as gr
2
+ import plotly.graph_objects as go
3
+ import plotly.express as px
4
+ from typing import Tuple
5
+
6
+ # Attack Data Dictionary
7
+ ATTACKS_DATA = {
8
+ "Golden Ticket": {
9
+ "en": {
10
+ "description": "Forges a Kerberos Ticket Granting Ticket (TGT) using the KRBTGT account hash. Allows attackers to create valid authentication tickets without needing the legitimate account credentials.",
11
+ "mitre": "T1558.001",
12
+ "kill_chain": ["Recon", "Persistence", "Privilege Escalation", "Lateral Movement"],
13
+ "detection": [
14
+ "Monitor for unusual TGT requests",
15
+ "Detect logon events without corresponding network logons",
16
+ "Alert on KRBTGT hash changes",
17
+ "Monitor Event ID 4768 (Kerberos TGT requested)"
18
+ ],
19
+ "defense": [
20
+ "Reset KRBTGT password twice",
21
+ "Enable Kerberos armoring",
22
+ "Monitor and restrict DC access",
23
+ "Implement strong audit policies",
24
+ "Use Kerberos pre-authentication"
25
+ ],
26
+ "tools": {
27
+ "offensive": ["Mimikatz", "Rubeus", "kekeo"],
28
+ "defensive": ["Splunk", "ELK Stack", "Windows Defender", "CrowdStrike"]
29
+ }
30
+ },
31
+ "fr": {
32
+ "description": "Forge un ticket Kerberos TGT en utilisant le hash du compte KRBTGT. Permet aux attaquants de créer des tickets d'authentification valides sans avoir besoin des identifiants du compte légitime.",
33
+ "mitre": "T1558.001",
34
+ "kill_chain": ["Recon", "Persistence", "Privilege Escalation", "Lateral Movement"],
35
+ "detection": [
36
+ "Surveiller les demandes TGT inhabituelles",
37
+ "Détecter les événements de connexion sans logons réseau correspondants",
38
+ "Alerter sur les modifications du hash KRBTGT",
39
+ "Surveiller Event ID 4768 (Kerberos TGT demandé)"
40
+ ],
41
+ "defense": [
42
+ "Réinitialiser le mot de passe KRBTGT deux fois",
43
+ "Activer l'armure Kerberos",
44
+ "Surveiller et restreindre l'accès DC",
45
+ "Implémenter des politiques d'audit robustes",
46
+ "Utiliser la pré-authentification Kerberos"
47
+ ],
48
+ "tools": {
49
+ "offensive": ["Mimikatz", "Rubeus", "kekeo"],
50
+ "defensive": ["Splunk", "ELK Stack", "Windows Defender", "CrowdStrike"]
51
+ }
52
+ }
53
+ },
54
+ "DCSync": {
55
+ "en": {
56
+ "description": "Uses the Directory Replication Service (DRS) protocol to replicate AD database contents. Attackers with replication permissions can extract password hashes from the domain controller.",
57
+ "mitre": "T1033",
58
+ "kill_chain": ["Recon", "Lateral Movement", "Exfiltration"],
59
+ "detection": [
60
+ "Monitor DRS (Directory Replication Service) requests",
61
+ "Alert on DS-Replication-Get-Changes operations",
62
+ "Monitor Event ID 4662 (Object accessed)",
63
+ "Track logons with replication permissions"
64
+ ],
65
+ "defense": [
66
+ "Restrict replication permissions",
67
+ "Monitor and audit DRS requests",
68
+ "Implement least privilege access",
69
+ "Use RBAC for sensitive operations",
70
+ "Enable object access auditing"
71
+ ],
72
+ "tools": {
73
+ "offensive": ["Mimikatz", "secretsdump.py", "BloodHound"],
74
+ "defensive": ["Splunk", "ELK Stack", "Microsoft Defender for Identity"]
75
+ }
76
+ },
77
+ "fr": {
78
+ "description": "Utilise le protocole DRS (Directory Replication Service) pour répliquer le contenu de la base de données AD. Les attaquants disposant de permissions de réplication peuvent extraire les hashes de mot de passe du contrôleur de domaine.",
79
+ "mitre": "T1033",
80
+ "kill_chain": ["Recon", "Lateral Movement", "Exfiltration"],
81
+ "detection": [
82
+ "Surveiller les demandes DRS (Directory Replication Service)",
83
+ "Alerter sur les opérations DS-Replication-Get-Changes",
84
+ "Surveiller Event ID 4662 (Objet accédé)",
85
+ "Suivre les connexions avec permissions de réplication"
86
+ ],
87
+ "defense": [
88
+ "Restreindre les permissions de réplication",
89
+ "Surveiller et auditer les demandes DRS",
90
+ "Implémenter l'accès au moindre privilège",
91
+ "Utiliser RBAC pour les opérations sensibles",
92
+ "Activer l'audit d'accès aux objets"
93
+ ],
94
+ "tools": {
95
+ "offensive": ["Mimikatz", "secretsdump.py", "BloodHound"],
96
+ "defensive": ["Splunk", "ELK Stack", "Microsoft Defender for Identity"]
97
+ }
98
+ }
99
+ },
100
+ "Kerberoasting": {
101
+ "en": {
102
+ "description": "Requests Kerberos Service Tickets (TGS) for Service Principal Names (SPNs) and cracks the session key offline. Targets service accounts that don't use managed passwords.",
103
+ "mitre": "T1558.003",
104
+ "kill_chain": ["Recon", "Execution"],
105
+ "detection": [
106
+ "Monitor for mass TGS requests (Event ID 4769)",
107
+ "Detect TGS tickets with weak encryption",
108
+ "Alert on SPN enumeration",
109
+ "Monitor Kerberos ticket requests patterns"
110
+ ],
111
+ "defense": [
112
+ "Use Managed Service Accounts (MSA)",
113
+ "Implement strong password policies for service accounts",
114
+ "Enable Kerberos pre-authentication",
115
+ "Use Group Managed Service Accounts (gMSA)",
116
+ "Monitor TGS request patterns"
117
+ ],
118
+ "tools": {
119
+ "offensive": ["Rubeus", "GetUserSPNs.py", "hashcat"],
120
+ "defensive": ["Splunk", "Microsoft Defender for Identity", "Nessus"]
121
+ }
122
+ },
123
+ "fr": {
124
+ "description": "Demande des tickets de service Kerberos (TGS) pour les noms de principal de service (SPN) et déchiffre la clé de session hors ligne. Cible les comptes de service qui n'utilisent pas de mots de passe gérés.",
125
+ "mitre": "T1558.003",
126
+ "kill_chain": ["Recon", "Execution"],
127
+ "detection": [
128
+ "Surveiller les demandes TGS massives (Event ID 4769)",
129
+ "Détecter les tickets TGS avec chiffrement faible",
130
+ "Alerter sur l'énumération SPN",
131
+ "Surveiller les modèles de demandes de tickets Kerberos"
132
+ ],
133
+ "defense": [
134
+ "Utiliser les comptes de service gérés (MSA)",
135
+ "Implémenter des politiques de mot de passe robustes pour les comptes de service",
136
+ "Activer la pré-authentification Kerberos",
137
+ "Utiliser des comptes de service gérés par groupe (gMSA)",
138
+ "Surveiller les modèles de demandes TGS"
139
+ ],
140
+ "tools": {
141
+ "offensive": ["Rubeus", "GetUserSPNs.py", "hashcat"],
142
+ "defensive": ["Splunk", "Microsoft Defender for Identity", "Nessus"]
143
+ }
144
+ }
145
+ },
146
+ "AS-REP Roasting": {
147
+ "en": {
148
+ "description": "Requests Kerberos Authentication Server (AS-REP) responses for accounts with pre-authentication disabled. The response contains encrypted password information crackable offline.",
149
+ "mitre": "T1558.004",
150
+ "kill_chain": ["Recon", "Execution"],
151
+ "detection": [
152
+ "Monitor Event ID 4768 (Kerberos TGT requested) for AS-REP responses",
153
+ "Alert on accounts with pre-auth disabled",
154
+ "Monitor KDC responses without pre-authentication",
155
+ "Track accounts requiring encryption"
156
+ ],
157
+ "defense": [
158
+ "Enable Kerberos pre-authentication for all users",
159
+ "Regularly audit pre-authentication settings",
160
+ "Disable accounts that don't require pre-auth",
161
+ "Implement Group Policy for pre-auth enforcement",
162
+ "Monitor policy compliance"
163
+ ],
164
+ "tools": {
165
+ "offensive": ["Rubeus", "GetNPUsers.py", "hashcat"],
166
+ "defensive": ["Microsoft Defender for Identity", "Splunk", "BloodHound"]
167
+ }
168
+ },
169
+ "fr": {
170
+ "description": "Demande des réponses du serveur d'authentification Kerberos (AS-REP) pour les comptes avec pré-authentification désactivée. La réponse contient des informations de mot de passe chiffrées crackables hors ligne.",
171
+ "mitre": "T1558.004",
172
+ "kill_chain": ["Recon", "Execution"],
173
+ "detection": [
174
+ "Surveiller Event ID 4768 (Kerberos TGT demandé) pour les réponses AS-REP",
175
+ "Alerter sur les comptes avec pré-auth désactivé",
176
+ "Surveiller les réponses KDC sans pré-authentification",
177
+ "Suivre les comptes nécessitant un chiffrement"
178
+ ],
179
+ "defense": [
180
+ "Activer la pré-authentification Kerberos pour tous les utilisateurs",
181
+ "Auditer régulièrement les paramètres de pré-authentification",
182
+ "Désactiver les comptes qui ne nécessitent pas de pré-auth",
183
+ "Implémenter la stratégie de groupe pour l'application de la pré-auth",
184
+ "Surveiller la conformité de la politique"
185
+ ],
186
+ "tools": {
187
+ "offensive": ["Rubeus", "GetNPUsers.py", "hashcat"],
188
+ "defensive": ["Microsoft Defender for Identity", "Splunk", "BloodHound"]
189
+ }
190
+ }
191
+ },
192
+ "Pass-the-Hash": {
193
+ "en": {
194
+ "description": "Uses captured NTLM hashes to authenticate without knowing the plaintext password. The hash acts as proof of authentication over the network.",
195
+ "mitre": "T1550.002",
196
+ "kill_chain": ["Execution", "Lateral Movement"],
197
+ "detection": [
198
+ "Monitor for logon events without interactive login",
199
+ "Detect NTLM authentication from unusual sources",
200
+ "Alert on credential access patterns",
201
+ "Monitor Event ID 4624 (Successful logon) for unusual sources"
202
+ ],
203
+ "defense": [
204
+ "Disable NTLM protocol (use Kerberos)",
205
+ "Implement NTLMv2 authentication",
206
+ "Enable MFA for critical accounts",
207
+ "Monitor credential access",
208
+ "Use Windows Defender Credential Guard"
209
+ ],
210
+ "tools": {
211
+ "offensive": ["Mimikatz", "PsExec", "CrackMapExec"],
212
+ "defensive": ["Microsoft Defender for Identity", "Splunk", "Windows Defender"]
213
+ }
214
+ },
215
+ "fr": {
216
+ "description": "Utilise les hashes NTLM capturés pour s'authentifier sans connaître le mot de passe en clair. Le hash sert de preuve d'authentification sur le réseau.",
217
+ "mitre": "T1550.002",
218
+ "kill_chain": ["Execution", "Lateral Movement"],
219
+ "detection": [
220
+ "Surveiller les événements de connexion sans connexion interactive",
221
+ "Détecter l'authentification NTLM à partir de sources inhabituelles",
222
+ "Alerter sur les modèles d'accès aux identifiants",
223
+ "Surveiller Event ID 4624 (Connexion réussie) pour les sources inhabituelles"
224
+ ],
225
+ "defense": [
226
+ "Désactiver le protocole NTLM (utiliser Kerberos)",
227
+ "Implémenter l'authentification NTLMv2",
228
+ "Activer l'AMF pour les comptes critiques",
229
+ "Surveiller l'accès aux identifiants",
230
+ "Utiliser Windows Defender Credential Guard"
231
+ ],
232
+ "tools": {
233
+ "offensive": ["Mimikatz", "PsExec", "CrackMapExec"],
234
+ "defensive": ["Microsoft Defender for Identity", "Splunk", "Windows Defender"]
235
+ }
236
+ }
237
+ },
238
+ "Pass-the-Ticket": {
239
+ "en": {
240
+ "description": "Uses captured Kerberos tickets to access resources without credentials. Stolen TGT or TGS tickets can be injected into new sessions.",
241
+ "mitre": "T1550.003",
242
+ "kill_chain": ["Execution", "Lateral Movement"],
243
+ "detection": [
244
+ "Monitor for ticket usage by unexpected users",
245
+ "Alert on ticket injection attempts",
246
+ "Monitor Kerberos ticket reuse",
247
+ "Track Event ID 4769 (Kerberos TGS issued) anomalies"
248
+ ],
249
+ "defense": [
250
+ "Enable Kerberos armoring",
251
+ "Use ticket encryption",
252
+ "Implement short ticket lifetimes",
253
+ "Monitor ticket issuance and usage",
254
+ "Enable detailed Kerberos auditing"
255
+ ],
256
+ "tools": {
257
+ "offensive": ["Mimikatz", "Rubeus", "Kekeo"],
258
+ "defensive": ["Microsoft Defender for Identity", "Splunk", "ELK Stack"]
259
+ }
260
+ },
261
+ "fr": {
262
+ "description": "Utilise les tickets Kerberos capturés pour accéder aux ressources sans identifiants. Les tickets TGT ou TGS volés peuvent être injectés dans de nouvelles sessions.",
263
+ "mitre": "T1550.003",
264
+ "kill_chain": ["Execution", "Lateral Movement"],
265
+ "detection": [
266
+ "Surveiller l'utilisation du ticket par des utilisateurs inattendus",
267
+ "Alerter sur les tentatives d'injection de ticket",
268
+ "Surveiller la réutilisation des tickets Kerberos",
269
+ "Suivre les anomalies Event ID 4769 (Kerberos TGS émis)"
270
+ ],
271
+ "defense": [
272
+ "Activer l'armure Kerberos",
273
+ "Utiliser le chiffrement des tickets",
274
+ "Implémenter des durées de vie de ticket courtes",
275
+ "Surveiller l'émission et l'utilisation des tickets",
276
+ "Activer l'audit Kerberos détaillé"
277
+ ],
278
+ "tools": {
279
+ "offensive": ["Mimikatz", "Rubeus", "Kekeo"],
280
+ "defensive": ["Microsoft Defender for Identity", "Splunk", "ELK Stack"]
281
+ }
282
+ }
283
+ },
284
+ "Skeleton Key": {
285
+ "en": {
286
+ "description": "Injects a master password into the Domain Controller's LSASS memory. Allows authentication to any account in the domain using the injected password.",
287
+ "mitre": "T1556",
288
+ "kill_chain": ["Persistence", "Privilege Escalation"],
289
+ "detection": [
290
+ "Monitor LSASS process access and modification",
291
+ "Alert on Skeleton Key installation attempts",
292
+ "Monitor Event ID 4675 (Pre-authentication tickets were requested)",
293
+ "Detect unusual DC memory access patterns"
294
+ ],
295
+ "defense": [
296
+ "Protect LSASS memory (Credential Guard)",
297
+ "Monitor DC process access",
298
+ "Enable kernel-mode code signing",
299
+ "Use Windows Defender for LSASS protection",
300
+ "Implement strict DC access controls"
301
+ ],
302
+ "tools": {
303
+ "offensive": ["Mimikatz", "PowerShell"],
304
+ "defensive": ["Windows Defender", "Splunk", "Microsoft Defender for Identity"]
305
+ }
306
+ },
307
+ "fr": {
308
+ "description": "Injecte un mot de passe maître dans la mémoire LSASS du contrôleur de domaine. Permet l'authentification à n'importe quel compte du domaine en utilisant le mot de passe injecté.",
309
+ "mitre": "T1556",
310
+ "kill_chain": ["Persistence", "Privilege Escalation"],
311
+ "detection": [
312
+ "Surveiller l'accès et la modification du processus LSASS",
313
+ "Alerter sur les tentatives d'installation de clé de squelette",
314
+ "Surveiller Event ID 4675 (Tickets de pré-authentification demandés)",
315
+ "Détecter les modèles d'accès à la mémoire DC inhabituels"
316
+ ],
317
+ "defense": [
318
+ "Protéger la mémoire LSASS (Credential Guard)",
319
+ "Surveiller l'accès au processus DC",
320
+ "Activer la signature du code en mode noyau",
321
+ "Utiliser Windows Defender pour la protection LSASS",
322
+ "Implémenter des contrôles d'accès DC stricts"
323
+ ],
324
+ "tools": {
325
+ "offensive": ["Mimikatz", "PowerShell"],
326
+ "defensive": ["Windows Defender", "Splunk", "Microsoft Defender for Identity"]
327
+ }
328
+ }
329
+ },
330
+ "DCShadow": {
331
+ "en": {
332
+ "description": "Creates a rogue Domain Controller that replicates AD changes without detection. Allows attackers to modify any AD object or create backdoor accounts.",
333
+ "mitre": "T1207",
334
+ "kill_chain": ["Persistence", "Privilege Escalation", "Lateral Movement"],
335
+ "detection": [
336
+ "Monitor for unauthorized DC registration",
337
+ "Alert on DRS replication from unknown sources",
338
+ "Monitor Event ID 4742 (Computer object changed)",
339
+ "Track DC discovery events"
340
+ ],
341
+ "defense": [
342
+ "Restrict DC registration privileges",
343
+ "Monitor DRS traffic and sources",
344
+ "Implement network segmentation for DCs",
345
+ "Use DNSSEC for DC discovery",
346
+ "Monitor SRV record changes"
347
+ ],
348
+ "tools": {
349
+ "offensive": ["Mimikatz", "DCShadow"],
350
+ "defensive": ["Microsoft Defender for Identity", "Splunk", "NetworkNTA"]
351
+ }
352
+ },
353
+ "fr": {
354
+ "description": "Crée un contrôleur de domaine voyou qui réplique les modifications AD sans détection. Permet aux attaquants de modifier n'importe quel objet AD ou de créer des comptes de porte dérobée.",
355
+ "mitre": "T1207",
356
+ "kill_chain": ["Persistence", "Privilege Escalation", "Lateral Movement"],
357
+ "detection": [
358
+ "Surveiller l'enregistrement non autorisé de DC",
359
+ "Alerter sur la réplication DRS à partir de sources inconnues",
360
+ "Surveiller Event ID 4742 (Objet ordinateur modifié)",
361
+ "Suivre les événements de découverte DC"
362
+ ],
363
+ "defense": [
364
+ "Restreindre les privilèges d'enregistrement DC",
365
+ "Surveiller le trafic et les sources DRS",
366
+ "Implémenter la segmentation réseau pour les DC",
367
+ "Utiliser DNSSEC pour la découverte DC",
368
+ "Surveiller les modifications d'enregistrements SRV"
369
+ ],
370
+ "tools": {
371
+ "offensive": ["Mimikatz", "DCShadow"],
372
+ "defensive": ["Microsoft Defender for Identity", "Splunk", "NetworkNTA"]
373
+ }
374
+ }
375
+ },
376
+ "Silver Ticket": {
377
+ "en": {
378
+ "description": "Forges Kerberos Service Tickets (TGS) using a service account's NTLM hash. Provides direct access to services without needing legitimate credentials.",
379
+ "mitre": "T1558.002",
380
+ "kill_chain": ["Execution", "Lateral Movement"],
381
+ "detection": [
382
+ "Monitor for forged TGS tickets",
383
+ "Alert on service account hash compromise",
384
+ "Monitor Event ID 4624 (Successful logon) to services",
385
+ "Track unusual service access patterns"
386
+ ],
387
+ "defense": [
388
+ "Protect service account hashes",
389
+ "Monitor service account usage",
390
+ "Implement Kerberos pre-authentication",
391
+ "Use strong encryption for service accounts",
392
+ "Enable detailed service access auditing"
393
+ ],
394
+ "tools": {
395
+ "offensive": ["Mimikatz", "Rubeus"],
396
+ "defensive": ["Microsoft Defender for Identity", "Splunk", "CrowdStrike"]
397
+ }
398
+ },
399
+ "fr": {
400
+ "description": "Forge des tickets de service Kerberos (TGS) en utilisant le hash NTLM d'un compte de service. Fournit un accès direct aux services sans avoir besoin d'identifiants légitimes.",
401
+ "mitre": "T1558.002",
402
+ "kill_chain": ["Execution", "Lateral Movement"],
403
+ "detection": [
404
+ "Surveiller les tickets TGS forgés",
405
+ "Alerter sur la compromission du hash du compte de service",
406
+ "Surveiller Event ID 4624 (Connexion réussie) aux services",
407
+ "Suivre les modèles d'accès aux services inhabituels"
408
+ ],
409
+ "defense": [
410
+ "Protéger les hashes des comptes de service",
411
+ "Surveiller l'utilisation du compte de service",
412
+ "Implémenter la pré-authentification Kerberos",
413
+ "Utiliser le chiffrement fort pour les comptes de service",
414
+ "Activer l'audit d'accès au service détaillé"
415
+ ],
416
+ "tools": {
417
+ "offensive": ["Mimikatz", "Rubeus"],
418
+ "defensive": ["Microsoft Defender for Identity", "Splunk", "CrowdStrike"]
419
+ }
420
+ }
421
+ },
422
+ "AD CS/Certificates": {
423
+ "en": {
424
+ "description": "Exploits misconfigurations in Active Directory Certificate Services to issue fraudulent certificates for domain controllers or privileged accounts.",
425
+ "mitre": "T1649",
426
+ "kill_chain": ["Execution", "Privilege Escalation", "Lateral Movement"],
427
+ "detection": [
428
+ "Monitor certificate issuance requests",
429
+ "Alert on suspicious certificate templates",
430
+ "Monitor Event ID 4887 (Certificate enrollment operation completed)",
431
+ "Track certificate authority access"
432
+ ],
433
+ "defense": [
434
+ "Audit and harden certificate templates",
435
+ "Restrict certificate enrollment permissions",
436
+ "Monitor certificate issuance patterns",
437
+ "Implement certificate pinning",
438
+ "Use CRL checking and OCSP"
439
+ ],
440
+ "tools": {
441
+ "offensive": ["Certify", "Certipy"],
442
+ "defensive": ["Microsoft Defender for Identity", "Splunk", "Nessus"]
443
+ }
444
+ },
445
+ "fr": {
446
+ "description": "Exploite les mauvaises configurations des services de certificats Active Directory pour émettre des certificats frauduleux pour les contrôleurs de domaine ou les comptes privilégiés.",
447
+ "mitre": "T1649",
448
+ "kill_chain": ["Execution", "Privilege Escalation", "Lateral Movement"],
449
+ "detection": [
450
+ "Surveiller les demandes d'émission de certificats",
451
+ "Alerter sur les modèles de certificats suspects",
452
+ "Surveiller Event ID 4887 (Opération d'inscription de certificat terminée)",
453
+ "Suivre l'accès à l'autorité de certification"
454
+ ],
455
+ "defense": [
456
+ "Auditer et renforcer les modèles de certificats",
457
+ "Restreindre les permissions d'inscription de certificats",
458
+ "Surveiller les modèles d'émission de certificats",
459
+ "Implémenter l'épinglage de certificat",
460
+ "Utiliser la vérification CRL et OCSP"
461
+ ],
462
+ "tools": {
463
+ "offensive": ["Certify", "Certipy"],
464
+ "defensive": ["Microsoft Defender for Identity", "Splunk", "Nessus"]
465
+ }
466
+ }
467
+ },
468
+ "AdminSDHolder": {
469
+ "en": {
470
+ "description": "Manipulates the AdminSDHolder object ACL to add persistent backdoor permissions on privileged groups. Changes are replicated across the domain.",
471
+ "mitre": "T1548.004",
472
+ "kill_chain": ["Persistence", "Privilege Escalation"],
473
+ "detection": [
474
+ "Monitor AdminSDHolder ACL changes",
475
+ "Alert on unexpected permission additions",
476
+ "Monitor Event ID 4670 (Permissions changed on object)",
477
+ "Track privileged group membership changes"
478
+ ],
479
+ "defense": [
480
+ "Protect AdminSDHolder from modifications",
481
+ "Monitor AdminSDHolder ACL regularly",
482
+ "Restrict permissions on AdminSDHolder",
483
+ "Implement Group Policy for ACL enforcement",
484
+ "Enable detailed ACL auditing"
485
+ ],
486
+ "tools": {
487
+ "offensive": ["Mimikatz", "PowerShell", "BloodHound"],
488
+ "defensive": ["Microsoft Defender for Identity", "Splunk", "ADExplorer"]
489
+ }
490
+ },
491
+ "fr": {
492
+ "description": "Manipule l'ACL de l'objet AdminSDHolder pour ajouter des permissions de porte dérobée persistantes sur les groupes privilégiés. Les modifications sont répliquées dans tout le domaine.",
493
+ "mitre": "T1548.004",
494
+ "kill_chain": ["Persistence", "Privilege Escalation"],
495
+ "detection": [
496
+ "Surveiller les modifications ACL AdminSDHolder",
497
+ "Alerter sur les ajouts de permissions inattendus",
498
+ "Surveiller Event ID 4670 (Permissions modifiées sur objet)",
499
+ "Suivre les modifications d'appartenance aux groupes privilégiés"
500
+ ],
501
+ "defense": [
502
+ "Protéger AdminSDHolder des modifications",
503
+ "Surveiller régulièrement l'ACL AdminSDHolder",
504
+ "Restreindre les permissions sur AdminSDHolder",
505
+ "Implémenter Group Policy pour l'application ACL",
506
+ "Activer l'audit ACL détaillé"
507
+ ],
508
+ "tools": {
509
+ "offensive": ["Mimikatz", "PowerShell", "BloodHound"],
510
+ "defensive": ["Microsoft Defender for Identity", "Splunk", "ADExplorer"]
511
+ }
512
+ }
513
+ },
514
+ "ACL Abuse": {
515
+ "en": {
516
+ "description": "Exploits weak or overly permissive Access Control Lists (ACLs) to modify AD objects, reset passwords, or escalate privileges without proper authorization.",
517
+ "mitre": "T1098",
518
+ "kill_chain": ["Persistence", "Privilege Escalation"],
519
+ "detection": [
520
+ "Monitor ACL modifications on critical objects",
521
+ "Alert on suspicious permission assignments",
522
+ "Monitor Event ID 4670 (Permissions on object changed)",
523
+ "Track write access to sensitive attributes"
524
+ ],
525
+ "defense": [
526
+ "Implement least privilege ACLs",
527
+ "Regularly audit AD object permissions",
528
+ "Use Access Control Review tools",
529
+ "Implement role-based access controls",
530
+ "Enable detailed ACL auditing"
531
+ ],
532
+ "tools": {
533
+ "offensive": ["BloodHound", "PowerShell", "ADSI"],
534
+ "defensive": ["Microsoft Defender for Identity", "Splunk", "AdExplorer"]
535
+ }
536
+ },
537
+ "fr": {
538
+ "description": "Exploite les listes de contrôle d'accès (ACL) faibles ou trop permissives pour modifier les objets AD, réinitialiser les mots de passe ou escalader les privilèges sans autorisation appropriée.",
539
+ "mitre": "T1098",
540
+ "kill_chain": ["Persistence", "Privilege Escalation"],
541
+ "detection": [
542
+ "Surveiller les modifications ACL sur les objets critiques",
543
+ "Alerter sur les attributions d'autorisations suspectes",
544
+ "Surveiller Event ID 4670 (Permissions sur objet modifiées)",
545
+ "Suivre l'accès en écriture aux attributs sensibles"
546
+ ],
547
+ "defense": [
548
+ "Implémenter les ACL au moindre privilège",
549
+ "Auditer régulièrement les permissions des objets AD",
550
+ "Utiliser les outils d'examen du contrôle d'accès",
551
+ "Implémenter des contrôles d'accès basés sur les rôles",
552
+ "Activer l'audit ACL détaillé"
553
+ ],
554
+ "tools": {
555
+ "offensive": ["BloodHound", "PowerShell", "ADSI"],
556
+ "defensive": ["Microsoft Defender for Identity", "Splunk", "AdExplorer"]
557
+ }
558
+ }
559
+ },
560
+ "NTLM Relay": {
561
+ "en": {
562
+ "description": "Captures NTLM authentication attempts and relays them to other systems. Allows lateral movement by impersonating authenticated users without knowing passwords.",
563
+ "mitre": "T1557.002",
564
+ "kill_chain": ["Execution", "Lateral Movement"],
565
+ "detection": [
566
+ "Monitor for suspicious NTLM relay patterns",
567
+ "Alert on unexpected authentication sources",
568
+ "Monitor Event ID 4627 (Membership changes in security-sensitive groups)",
569
+ "Track unusual credential usage"
570
+ ],
571
+ "defense": [
572
+ "Disable NTLM (use Kerberos only)",
573
+ "Implement SMB signing",
574
+ "Enable Extended Protection for Authentication (EPA)",
575
+ "Use MFA for critical services",
576
+ "Monitor NTLM authentication patterns"
577
+ ],
578
+ "tools": {
579
+ "offensive": ["Responder", "ntlmrelayx", "Inveigh"],
580
+ "defensive": ["Microsoft Defender for Identity", "Splunk", "Zeek"]
581
+ }
582
+ },
583
+ "fr": {
584
+ "description": "Capture les tentatives d'authentification NTLM et les relaye vers d'autres systèmes. Permet le mouvement latéral en usurpant l'identité des utilisateurs authentifiés sans connaître les mots de passe.",
585
+ "mitre": "T1557.002",
586
+ "kill_chain": ["Execution", "Lateral Movement"],
587
+ "detection": [
588
+ "Surveiller les modèles de relais NTLM suspects",
589
+ "Alerter sur les sources d'authentification inattendues",
590
+ "Surveiller Event ID 4627 (Modifications d'appartenance dans les groupes sensibles)",
591
+ "Suivre l'utilisation d'identifiants inhabituels"
592
+ ],
593
+ "defense": [
594
+ "Désactiver NTLM (utiliser uniquement Kerberos)",
595
+ "Implémenter la signature SMB",
596
+ "Activer la protection étendue pour l'authentification (EPA)",
597
+ "Utiliser l'AMF pour les services critiques",
598
+ "Surveiller les modèles d'authentification NTLM"
599
+ ],
600
+ "tools": {
601
+ "offensive": ["Responder", "ntlmrelayx", "Inveigh"],
602
+ "defensive": ["Microsoft Defender for Identity", "Splunk", "Zeek"]
603
+ }
604
+ }
605
+ },
606
+ "SIDHistory Injection": {
607
+ "en": {
608
+ "description": "Injects fraudulent SIDHistory attributes into user objects to inherit permissions from other groups. Useful for creating persistent backdoors across domain boundaries.",
609
+ "mitre": "T1134.005",
610
+ "kill_chain": ["Persistence", "Privilege Escalation", "Lateral Movement"],
611
+ "detection": [
612
+ "Monitor SIDHistory attribute modifications",
613
+ "Alert on unexpected SID additions",
614
+ "Monitor Event ID 4738 (User object changed)",
615
+ "Track privilege escalations via SIDHistory"
616
+ ],
617
+ "defense": [
618
+ "Restrict SIDHistory modifications",
619
+ "Audit SIDHistory attributes regularly",
620
+ "Monitor cross-forest trusts",
621
+ "Implement least privilege SIDHistory",
622
+ "Enable detailed AD auditing"
623
+ ],
624
+ "tools": {
625
+ "offensive": ["Mimikatz", "PowerShell", "BloodHound"],
626
+ "defensive": ["Microsoft Defender for Identity", "Splunk", "AdExplorer"]
627
+ }
628
+ },
629
+ "fr": {
630
+ "description": "Injecte des attributs SIDHistory frauduleux dans les objets utilisateur pour hériter des permissions d'autres groupes. Utile pour créer des portes dérobées persistantes entre les limites du domaine.",
631
+ "mitre": "T1134.005",
632
+ "kill_chain": ["Persistence", "Privilege Escalation", "Lateral Movement"],
633
+ "detection": [
634
+ "Surveiller les modifications d'attribut SIDHistory",
635
+ "Alerter sur les ajouts de SID inattendus",
636
+ "Surveiller Event ID 4738 (Objet utilisateur modifié)",
637
+ "Suivre les escalades de privilèges via SIDHistory"
638
+ ],
639
+ "defense": [
640
+ "Restreindre les modifications SIDHistory",
641
+ "Auditer régulièrement les attributs SIDHistory",
642
+ "Surveiller les approbations entre forêts",
643
+ "Implémenter le SIDHistory au moindre privilège",
644
+ "Activer l'audit AD détaillé"
645
+ ],
646
+ "tools": {
647
+ "offensive": ["Mimikatz", "PowerShell", "BloodHound"],
648
+ "defensive": ["Microsoft Defender for Identity", "Splunk", "AdExplorer"]
649
+ }
650
+ }
651
+ },
652
+ "RBCD Abuse": {
653
+ "en": {
654
+ "description": "Exploits Resource-Based Constrained Delegation (RBCD) to impersonate any user and gain access to target resources. Works on computer accounts with delegation rights.",
655
+ "mitre": "T1548.004",
656
+ "kill_chain": ["Persistence", "Privilege Escalation", "Lateral Movement"],
657
+ "detection": [
658
+ "Monitor msDS-AllowedToActOnBehalfOfOtherIdentity changes",
659
+ "Alert on unusual delegation configurations",
660
+ "Monitor Event ID 4662 (Object accessed)",
661
+ "Track service ticket requests for delegation"
662
+ ],
663
+ "defense": [
664
+ "Limit RBCD delegation rights",
665
+ "Monitor delegation attribute changes",
666
+ "Restrict computer account privileges",
667
+ "Implement least privilege delegation",
668
+ "Enable detailed auditing of delegation"
669
+ ],
670
+ "tools": {
671
+ "offensive": ["Rubeus", "BloodHound", "PowerShell"],
672
+ "defensive": ["Microsoft Defender for Identity", "Splunk", "ADExplorer"]
673
+ }
674
+ },
675
+ "fr": {
676
+ "description": "Exploite la délégation contrainte basée sur les ressources (RBCD) pour usurper l'identité de n'importe quel utilisateur et accéder aux ressources cibles. Fonctionne sur les comptes d'ordinateur avec droits de délégation.",
677
+ "mitre": "T1548.004",
678
+ "kill_chain": ["Persistence", "Privilege Escalation", "Lateral Movement"],
679
+ "detection": [
680
+ "Surveiller les modifications msDS-AllowedToActOnBehalfOfOtherIdentity",
681
+ "Alerter sur les configurations de délégation inhabituelles",
682
+ "Surveiller Event ID 4662 (Objet accédé)",
683
+ "Suivre les demandes de tickets de service pour délégation"
684
+ ],
685
+ "defense": [
686
+ "Limiter les droits de délégation RBCD",
687
+ "Surveiller les modifications d'attribut de délégation",
688
+ "Restreindre les privilèges du compte d'ordinateur",
689
+ "Implémenter la délégation au moindre privilège",
690
+ "Activer l'audit détaillé de la délégation"
691
+ ],
692
+ "tools": {
693
+ "offensive": ["Rubeus", "BloodHound", "PowerShell"],
694
+ "defensive": ["Microsoft Defender for Identity", "Splunk", "ADExplorer"]
695
+ }
696
+ }
697
+ },
698
+ "GPO Abuse": {
699
+ "en": {
700
+ "description": "Exploits Group Policy Object (GPO) misconfigurations or takes over GPOs to push malicious policies across the domain. Affects all users and computers in the scope.",
701
+ "mitre": "T1098.004",
702
+ "kill_chain": ["Execution", "Persistence"],
703
+ "detection": [
704
+ "Monitor GPO creation and modifications",
705
+ "Alert on unusual policy deployments",
706
+ "Monitor Group Policy application events",
707
+ "Track changes to critical GPOs"
708
+ ],
709
+ "defense": [
710
+ "Restrict GPO modification permissions",
711
+ "Audit GPO changes regularly",
712
+ "Implement change management for GPOs",
713
+ "Monitor policy application",
714
+ "Use GPO versioning and backups"
715
+ ],
716
+ "tools": {
717
+ "offensive": ["BloodHound", "PowerShell", "SharpGPOAbuse"],
718
+ "defensive": ["Microsoft Defender for Identity", "Splunk", "Group Policy Analyzer"]
719
+ }
720
+ },
721
+ "fr": {
722
+ "description": "Exploite les mauvaises configurations de Group Policy Object (GPO) ou prend le contrôle des GPO pour pousser des politiques malveillantes dans tout le domaine. Affecte tous les utilisateurs et ordinateurs de la portée.",
723
+ "mitre": "T1098.004",
724
+ "kill_chain": ["Execution", "Persistence"],
725
+ "detection": [
726
+ "Surveiller la création et les modifications de GPO",
727
+ "Alerter sur les déploiements de politiques inhabituels",
728
+ "Surveiller les événements d'application Group Policy",
729
+ "Suivre les modifications des GPO critiques"
730
+ ],
731
+ "defense": [
732
+ "Restreindre les permissions de modification de GPO",
733
+ "Auditer régulièrement les modifications de GPO",
734
+ "Implémenter la gestion des modifications pour les GPO",
735
+ "Surveiller l'application de la politique",
736
+ "Utiliser la gestion des versions et les sauvegardes GPO"
737
+ ],
738
+ "tools": {
739
+ "offensive": ["BloodHound", "PowerShell", "SharpGPOAbuse"],
740
+ "defensive": ["Microsoft Defender for Identity", "Splunk", "Group Policy Analyzer"]
741
+ }
742
+ }
743
+ },
744
+ "AD FS/SAML": {
745
+ "en": {
746
+ "description": "Exploits vulnerabilities in Active Directory Federation Services (AD FS) or SAML trust relationships to forge tokens and gain unauthorized access.",
747
+ "mitre": "T1528",
748
+ "kill_chain": ["Initial Access", "Lateral Movement"],
749
+ "detection": [
750
+ "Monitor AD FS token requests and issuance",
751
+ "Alert on suspicious SAML assertions",
752
+ "Monitor Event ID 411 (AD FS audit events)",
753
+ "Track token validation failures"
754
+ ],
755
+ "defense": [
756
+ "Harden AD FS configuration",
757
+ "Implement token signing and encryption",
758
+ "Monitor AD FS audit logs",
759
+ "Restrict token lifetime",
760
+ "Implement MFA for AD FS"
761
+ ],
762
+ "tools": {
763
+ "offensive": ["AADInternals", "TokenTactics", "Custom scripts"],
764
+ "defensive": ["Microsoft Defender for Identity", "Splunk", "Azure Sentinel"]
765
+ }
766
+ },
767
+ "fr": {
768
+ "description": "Exploite les vulnérabilités dans Active Directory Federation Services (AD FS) ou les relations de confiance SAML pour forger des jetons et obtenir un accès non autorisé.",
769
+ "mitre": "T1528",
770
+ "kill_chain": ["Initial Access", "Lateral Movement"],
771
+ "detection": [
772
+ "Surveiller les demandes et l'émission de jetons AD FS",
773
+ "Alerter sur les assertions SAML suspectes",
774
+ "Surveiller Event ID 411 (Événements d'audit AD FS)",
775
+ "Suivre les échecs de validation de jeton"
776
+ ],
777
+ "defense": [
778
+ "Renforcer la configuration AD FS",
779
+ "Implémenter la signature et le chiffrement de jetons",
780
+ "Surveiller les journaux d'audit AD FS",
781
+ "Restreindre la durée de vie des jetons",
782
+ "Implémenter l'AMF pour AD FS"
783
+ ],
784
+ "tools": {
785
+ "offensive": ["AADInternals", "TokenTactics", "Custom scripts"],
786
+ "defensive": ["Microsoft Defender for Identity", "Splunk", "Azure Sentinel"]
787
+ }
788
+ }
789
+ },
790
+ "Forest Trust Abuse": {
791
+ "en": {
792
+ "description": "Exploits transitive trusts between forests to move laterally and gain unauthorized access across forest boundaries.",
793
+ "mitre": "T1199",
794
+ "kill_chain": ["Lateral Movement"],
795
+ "detection": [
796
+ "Monitor inter-forest authentication events",
797
+ "Alert on unusual trust-based logons",
798
+ "Monitor Event ID 4706 (New trust established)",
799
+ "Track cross-forest security group changes"
800
+ ],
801
+ "defense": [
802
+ "Restrict forest trust transitivity",
803
+ "Monitor forest trust health",
804
+ "Implement selective authentication",
805
+ "Audit cross-forest access",
806
+ "Monitor trust modifications"
807
+ ],
808
+ "tools": {
809
+ "offensive": ["BloodHound", "PowerShell", "Mimikatz"],
810
+ "defensive": ["Microsoft Defender for Identity", "Splunk", "AD Auditing"]
811
+ }
812
+ },
813
+ "fr": {
814
+ "description": "Exploite les approbations transitives entre forêts pour se déplacer latéralement et accéder sans autorisation à travers les limites de la forêt.",
815
+ "mitre": "T1199",
816
+ "kill_chain": ["Lateral Movement"],
817
+ "detection": [
818
+ "Surveiller les événements d'authentification inter-forêts",
819
+ "Alerter sur les connexions basées sur la confiance inhabituelles",
820
+ "Surveiller Event ID 4706 (Nouvelle approbation établie)",
821
+ "Suivre les modifications des groupes de sécurité entre forêts"
822
+ ],
823
+ "defense": [
824
+ "Restreindre la transitivité des approbations forestales",
825
+ "Surveiller la santé des approbations forestales",
826
+ "Implémenter l'authentification sélective",
827
+ "Auditer l'accès entre forêts",
828
+ "Surveiller les modifications d'approbation"
829
+ ],
830
+ "tools": {
831
+ "offensive": ["BloodHound", "PowerShell", "Mimikatz"],
832
+ "defensive": ["Microsoft Defender for Identity", "Splunk", "AD Auditing"]
833
+ }
834
+ }
835
+ },
836
+ "Password Filter DLL": {
837
+ "en": {
838
+ "description": "Installs a malicious password filter DLL on domain controllers to intercept and exfiltrate passwords as they are changed.",
839
+ "mitre": "T1556.001",
840
+ "kill_chain": ["Persistence", "Credential Access"],
841
+ "detection": [
842
+ "Monitor password filter DLL installation",
843
+ "Alert on suspicious DLL loading on DCs",
844
+ "Monitor Event ID 4657 (Registry value modified)",
845
+ "Track DLL file access on DCs"
846
+ ],
847
+ "defense": [
848
+ "Protect password filter registry keys",
849
+ "Monitor password filter changes",
850
+ "Implement Code Integrity/Code Signing",
851
+ "Restrict DLL installation on DCs",
852
+ "Enable detailed audit logging"
853
+ ],
854
+ "tools": {
855
+ "offensive": ["Mimikatz", "Custom DLLs", "PowerShell"],
856
+ "defensive": ["Windows Defender", "Splunk", "Autoruns"]
857
+ }
858
+ },
859
+ "fr": {
860
+ "description": "Installe une DLL de filtre de mot de passe malveillante sur les contrôleurs de domaine pour intercepter et exfiltrer les mots de passe lors de leur modification.",
861
+ "mitre": "T1556.001",
862
+ "kill_chain": ["Persistence", "Credential Access"],
863
+ "detection": [
864
+ "Surveiller l'installation de DLL de filtre de mot de passe",
865
+ "Alerter sur le chargement de DLL suspect sur les DC",
866
+ "Surveiller Event ID 4657 (Valeur de registre modifiée)",
867
+ "Suivre l'accès aux fichiers DLL sur les DC"
868
+ ],
869
+ "defense": [
870
+ "Protéger les clés de registre du filtre de mot de passe",
871
+ "Surveiller les modifications du filtre de mot de passe",
872
+ "Implémenter l'intégrité du code/signature du code",
873
+ "Restreindre l'installation de DLL sur les DC",
874
+ "Activer la journalisation d'audit détaillée"
875
+ ],
876
+ "tools": {
877
+ "offensive": ["Mimikatz", "Custom DLLs", "PowerShell"],
878
+ "defensive": ["Windows Defender", "Splunk", "Autoruns"]
879
+ }
880
+ }
881
+ },
882
+ "Computer Account Takeover": {
883
+ "en": {
884
+ "description": "Compromises a computer account and uses it to gain elevated privileges. Computer accounts can be used for lateral movement and accessing sensitive resources.",
885
+ "mitre": "T1078.003",
886
+ "kill_chain": ["Initial Access", "Persistence", "Privilege Escalation"],
887
+ "detection": [
888
+ "Monitor computer account password changes",
889
+ "Alert on computer account logon anomalies",
890
+ "Monitor Event ID 4741 (Computer object changed)",
891
+ "Track unusual computer account activities"
892
+ ],
893
+ "defense": [
894
+ "Rotate computer account passwords regularly",
895
+ "Monitor computer account privilege usage",
896
+ "Restrict computer account delegation",
897
+ "Implement strong computer account security",
898
+ "Monitor for unusual computer account activity"
899
+ ],
900
+ "tools": {
901
+ "offensive": ["Mimikatz", "Rubeus", "PowerShell"],
902
+ "defensive": ["Microsoft Defender for Identity", "Splunk", "CrowdStrike"]
903
+ }
904
+ },
905
+ "fr": {
906
+ "description": "Compromet un compte d'ordinateur et l'utilise pour obtenir des privilèges élevés. Les comptes d'ordinateur peuvent être utilisés pour le mouvement latéral et l'accès aux ressources sensibles.",
907
+ "mitre": "T1078.003",
908
+ "kill_chain": ["Initial Access", "Persistence", "Privilege Escalation"],
909
+ "detection": [
910
+ "Surveiller les modifications de mot de passe du compte d'ordinateur",
911
+ "Alerter sur les anomalies de connexion du compte d'ordinateur",
912
+ "Surveiller Event ID 4741 (Objet ordinateur modifié)",
913
+ "Suivre les activités inhabituelles du compte d'ordinateur"
914
+ ],
915
+ "defense": [
916
+ "Faire pivoter les mots de passe du compte d'ordinateur régulièrement",
917
+ "Surveiller l'utilisation des privilèges du compte d'ordinateur",
918
+ "Restreindre la délégation du compte d'ordinateur",
919
+ "Implémenter la sécurité robuste du compte d'ordinateur",
920
+ "Surveiller l'activité inhabituelle du compte d'ordinateur"
921
+ ],
922
+ "tools": {
923
+ "offensive": ["Mimikatz", "Rubeus", "PowerShell"],
924
+ "defensive": ["Microsoft Defender for Identity", "Splunk", "CrowdStrike"]
925
+ }
926
+ }
927
+ }
928
+ }
929
+
930
+ def create_kill_chain_plot(kill_chain_phases):
931
+ """Create a Plotly visualization of the kill chain"""
932
+ phases_order = ["Recon", "Initial Access", "Execution", "Persistence", "Privilege Escalation", "Lateral Movement", "Exfiltration"]
933
+
934
+ phase_colors = {
935
+ "Recon": "#FF6B6B",
936
+ "Initial Access": "#FF8C42",
937
+ "Execution": "#FFC857",
938
+ "Persistence": "#9D84B7",
939
+ "Privilege Escalation": "#E63946",
940
+ "Lateral Movement": "#A8DADC",
941
+ "Exfiltration": "#1D3557"
942
+ }
943
+
944
+ filtered_phases = [p for p in phases_order if p in kill_chain_phases]
945
+
946
+ fig = go.Figure()
947
+
948
+ y_pos = 0
949
+ for i, phase in enumerate(filtered_phases):
950
+ fig.add_trace(go.Scatter(
951
+ x=[i],
952
+ y=[0],
953
+ mode='markers+text',
954
+ marker=dict(size=40, color=phase_colors.get(phase, "#gray")),
955
+ text=[phase],
956
+ textposition="middle center",
957
+ textfont=dict(color="white", size=12, family="Arial Black"),
958
+ hovertemplate=f"<b>{phase}</b><extra></extra>",
959
+ showlegend=False
960
+ ))
961
+
962
+ if i < len(filtered_phases) - 1:
963
+ fig.add_annotation(
964
+ x=i + 0.5,
965
+ y=0,
966
+ text="→",
967
+ font=dict(size=24),
968
+ showarrow=False
969
+ )
970
+
971
+ fig.update_layout(
972
+ title="Kill Chain Progression",
973
+ xaxis=dict(showgrid=False, showticklabels=False, zeroline=False),
974
+ yaxis=dict(showgrid=False, showticklabels=False, zeroline=False),
975
+ height=300,
976
+ margin=dict(l=20, r=20, t=50, b=20),
977
+ hovermode='closest',
978
+ plot_bgcolor='white'
979
+ )
980
+
981
+ return fig
982
+
983
+ def create_attack_visualization(attack_name, language):
984
+ """Create comprehensive attack visualization"""
985
+ if attack_name not in ATTACKS_DATA:
986
+ return None, "Attack not found"
987
+
988
+ attack = ATTACKS_DATA[attack_name][language]
989
+
990
+ description_text = attack["description"]
991
+ mitre_text = f"MITRE ATT&CK: {attack['mitre']}"
992
+
993
+ detection_list = "\n".join([f"• {item}" for item in attack["detection"]])
994
+ defense_list = "\n".join([f"• {item}" for item in attack["defense"]])
995
+
996
+ offensive_tools = ", ".join(attack["tools"]["offensive"])
997
+ defensive_tools = ", ".join(attack["tools"]["defensive"])
998
+
999
+ kill_chain_fig = create_kill_chain_plot(attack["kill_chain"])
1000
+
1001
+ return kill_chain_fig, description_text, mitre_text, detection_list, defense_list, offensive_tools, defensive_tools
1002
+
1003
+ def map_language(language_name):
1004
+ """Map language radio value to dictionary key"""
1005
+ return "en" if language_name == "English" else "fr"
1006
+
1007
+ def update_content(attack_name, language):
1008
+ """Update all content based on selected attack and language"""
1009
+ if not attack_name:
1010
+ attack_name = "Golden Ticket"
1011
+
1012
+ lang_key = map_language(language)
1013
+ fig, desc, mitre, detect, defense, off_tools, def_tools = create_attack_visualization(attack_name, lang_key)
1014
+
1015
+ return fig, desc, mitre, detect, defense, off_tools, def_tools
1016
+
1017
+ with gr.Blocks(title="AD Attack Simulator", theme=gr.themes.Soft(primary_hue="purple", secondary_hue="red")) as demo:
1018
+ gr.Markdown("# AD Attack Simulator - Interactive Kill Chain Visualizer")
1019
+ gr.Markdown("*Comprehensive visualization of Active Directory attack techniques with MITRE ATT&CK mappings*")
1020
+
1021
+ with gr.Row():
1022
+ language = gr.Radio(
1023
+ choices=["English", "Français"],
1024
+ value="English",
1025
+ label="Language / Langue",
1026
+ scale=2
1027
+ )
1028
+
1029
+ with gr.Row():
1030
+ attack_dropdown = gr.Dropdown(
1031
+ choices=list(ATTACKS_DATA.keys()),
1032
+ value="Golden Ticket",
1033
+ label="Select Attack / Sélectionner une attaque",
1034
+ scale=3
1035
+ )
1036
+
1037
+ with gr.Row():
1038
+ plot_output = gr.Plot(label="Kill Chain Visualization", scale=1)
1039
+
1040
+ with gr.Row():
1041
+ description_output = gr.Markdown(label="Description")
1042
+
1043
+ with gr.Row():
1044
+ mitre_output = gr.Markdown(label="MITRE ATT&CK Mapping")
1045
+
1046
+ with gr.Row():
1047
+ with gr.Column(scale=1):
1048
+ gr.Markdown("### Detection Methods")
1049
+ detection_output = gr.Markdown()
1050
+
1051
+ with gr.Column(scale=1):
1052
+ gr.Markdown("### Defense Recommendations")
1053
+ defense_output = gr.Markdown()
1054
+
1055
+ with gr.Row():
1056
+ with gr.Column(scale=1):
1057
+ gr.Markdown("### Offensive Tools")
1058
+ offensive_tools_output = gr.Markdown()
1059
+
1060
+ with gr.Column(scale=1):
1061
+ gr.Markdown("### Defensive Tools")
1062
+ defensive_tools_output = gr.Markdown()
1063
+
1064
+ with gr.Tab("Resources"):
1065
+ resources_content = """
1066
+ ## AD Attack Resources
1067
+
1068
+ ### French Resources - AYI-NEDJIMI Consultants
1069
+
1070
+ #### Top 10 Attacks
1071
+ - [Top 10 Attaques Active Directory](https://ayinedjimi-consultants.fr/top-10-attaques-active-directory.html)
1072
+
1073
+ #### Detailed Attack Guides
1074
+ - [Golden Ticket - Attaque & Défense](https://ayinedjimi-consultants.fr/attaques_active-directory/golden-ticket-attaque-defense.html)
1075
+ - [DCSync - Attaque & Défense](https://ayinedjimi-consultants.fr/attaques_active-directory/dcsync-attaque-defense.html)
1076
+ - [Kerberoasting - Attaque & Défense](https://ayinedjimi-consultants.fr/attaques_active-directory/kerberoasting-attaque-defense.html)
1077
+ - [Pass-the-Hash - Attaque & Défense](https://ayinedjimi-consultants.fr/attaques_active-directory/pass-the-hash-attaque-defense.html)
1078
+ - [Pass-the-Ticket - Attaque & Défense](https://ayinedjimi-consultants.fr/attaques_active-directory/pass-the-ticket-attaque-defense.html)
1079
+ - [Skeleton Key - Attaque & Défense](https://ayinedjimi-consultants.fr/attaques_active-directory/skeleton-key-attaque-defense.html)
1080
+ - [DCShadow - Attaque & Défense](https://ayinedjimi-consultants.fr/attaques_active-directory/dcshadow-attaque-defense.html)
1081
+ - [Silver Ticket - Attaque & Défense](https://ayinedjimi-consultants.fr/attaques_active-directory/silver-ticket-attaque-defense.html)
1082
+ - [AD CS/Certificats - Attaque & Défense](https://ayinedjimi-consultants.fr/attaques_active-directory/adcs-certificats-attaque-defense.html)
1083
+
1084
+ #### Security Guides & Tools
1085
+ - [Cluster Active Directory Hub](https://ayinedjimi-consultants.fr/cluster-active-directory-hub.html)
1086
+ - [Livre Blanc - Sécurité Active Directory](https://ayinedjimi-consultants.fr/livre-blanc-securite-active-directory.html)
1087
+ - [Guide de Sécurisation Active Directory 2025](https://ayinedjimi-consultants.fr/guide-securisation-active-directory-2025.html)
1088
+ - [Top 10 Outils d'Audit Active Directory 2025](https://ayinedjimi-consultants.fr/top-10-outils-audit-active-directory-2025.html)
1089
+ - [Top 5 Outils d'Audit Active Directory](https://ayinedjimi-consultants.fr/top-5-outils-audit-active-directory.html)
1090
+
1091
+ ---
1092
+
1093
+ Created by [AYI-NEDJIMI Consultants](https://ayinedjimi-consultants.fr/bio.html)
1094
+ """
1095
+ gr.Markdown(resources_content)
1096
+
1097
+ language.change(
1098
+ fn=update_content,
1099
+ inputs=[attack_dropdown, language],
1100
+ outputs=[plot_output, description_output, mitre_output, detection_output, defense_output, offensive_tools_output, defensive_tools_output]
1101
+ )
1102
+
1103
+ attack_dropdown.change(
1104
+ fn=update_content,
1105
+ inputs=[attack_dropdown, language],
1106
+ outputs=[plot_output, description_output, mitre_output, detection_output, defense_output, offensive_tools_output, defensive_tools_output]
1107
+ )
1108
+
1109
+ demo.load(
1110
+ fn=update_content,
1111
+ inputs=[attack_dropdown, language],
1112
+ outputs=[plot_output, description_output, mitre_output, detection_output, defense_output, offensive_tools_output, defensive_tools_output]
1113
+ )
1114
+
1115
+ if __name__ == "__main__":
1116
+ demo.launch()
requirements.txt ADDED
@@ -0,0 +1,4 @@
 
 
 
 
 
1
+ gradio==4.44.0
2
+ huggingface_hub==0.24.7
3
+ plotly==5.18.0
4
+ pandas==2.1.4