Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
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
CVE-2020-0796-BOF — Cobalt Strike Beacon Object File implémentant CVE-2020-0796 SMBGhost, une élévation de privilèges locale avec deux voies d'armement pour le vol de jetons et l'élévation de session. | Kitploit
Outils/GitHubGitHub/rsmudge/cve-2020-0796-bof
Escalade de PrivilègesFrameworks d'ExploitationExploitationShellcodePost-ExploitationTests d'IntrusionRed TeamingDéveloppement de Charges UtilesExploitation de Binaires
GitHubrsmudge/cve-2020-0796-bof

CVE-2020-0796-BOF

Cobalt Strike Beacon Object File implémentant CVE-2020-0796 SMBGhost, une élévation de privilèges locale avec deux voies d'armement pour le vol de jetons et l'élévation de session.

701920il y a 6 ansVérifié par Kitploit

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
Voir le dépôt

C'est le bricolage de Raphael autour du SMBGhost LPE.

J'ai commencé avec le code source du Metasploit Framework:

cve-2020-0796: Débordement de tampon de compression SMBv3 (SMBGhost) (CVE 2020-0796) https://github.com/rapid7/metasploit-framework/tree/master/external/source/exploits/CVE-2020-0796 [Sous licence BSD]

Et voici ce que j'ai fait :

  1. J'ai converti la DLL réflexive en un fichier objet Beacon de Cobalt Strike 4.1.

Cela a nécessité de déclarer plusieurs API Win32 dans le format Dynamic Function Resolution MODULE$Function. Du côté positif, cela a réduit une partie du code pour appeler des choses dans NTDLL puisque DFR s'en occupe pour nous. :)

J'ai supprimé le tableau ptr de 1 000 éléments inutilisé de get_handle_addr. Cela faisait que cl.exe insérait une fonction __chkstk à cause des variables locales dépassant une limite de 8 Ko. Les BOFs n'ont pas cette fonction disponible.

J'ai ensuite ajouté quelques API spécifiques à Beacon (par exemple, BeaconPrintf, BeaconInjectProcess, etc.) pour faire les choses à la manière native de Beacon.

J'ai dû écrire quelques fonctions pour compenser les trucs de libc que je n'ai pas (à cause des... BOFs).

  1. J'ai divisé le code en deux chemins de weaponization différents :

Utilisez l'alias 'smbghost' dans Beacon, sans arguments, pour exécuter cet exploit et n'affecter que le jeton de processus Beacon. Si l'exploit réussit, votre jeton de processus actuel aura des super pouvoirs qu'il n'avait pas avant. Par exemple, vous pouvez maintenant injecter dans d'autres processus (même dans d'autres sessions de bureau) ou générer un processus enfant sous winlogon.exe. Vous devrez peut-être exécuter smbghost plusieurs fois car l'exploit ne réussit pas toujours du premier coup.

En option, utilisez 'elevate smbghost' pour obtenir une nouvelle session Beacon en utilisant l'API d'élévation de privilèges disponible dans l'Aggressor Script de Cobalt Strike. C'est acceptable pour une démo rapide, cela s'intègre aux workflows du produit, etc. mais... cela injecte dans winlogon.exe. Injecter dans winlogon.exe n'est pas une invariante de cette élévation particulière. Je soupçonne que tous les POCs publics le font car CreateRemoteThread ne fonctionne pas à travers les limites de processus et qui veut écrire le code supplémentaire pour le spoofing de processus parent ? winlogon.exe est le fruit à portée de main facile pour démontrer que nous avons des droits élevés.

Pour compiler cela avec Visual Studio :

Utilisez make.bat à partir de l'invite de commande Cross Tools x64.

Cela produira expoit.x64.o dans dist/

J'ai utilisé Visual Studio 2013. Les autres compilateurs/versions n'ont pas été testés. Je n'ai pas essayé/testé x86.

Télécharger l’outil