mimikatz :: crypto et l’export forcé en vidéo

Une petite vidéo de l’utilisation de mimikatz et de son module crypto pour forcer l’export de certificats sous Windows 8

La version prenant en charge Windows 8 CP (et précédents) est disponible : https://blog.gentilkiwi.com/mimikatz

Actions exposées dans la vidéo :

  • impossibilité d’exporter les certificats protégés via la CryptoAPI et CNG
  • patch de la CryptoAPI
  • l’export du certificat protégé via la CryptoAPI devient possible, reste celui protégés via CNG
  • patch de la CNG via un bref passage en administrateur
  • l’export du certificat protégé via la CNG devient possible

Disponible sur : https://youtu.be/M3XX3CHihJY

Clé privée non exportable et CSP Microsoft…

Lors de la génération d’une bi-clé par un CSP (via CPGenKey depuis CryptGenKey), deux flags permettent de garantir l’exportabilité de la clé privée :
CRYPT_EXPORTABLE 0x00000001
CRYPT_ARCHIVABLE 0x00004000

Lors de l’export de la clé privée (CPExportKey , ces flags sont vérifiés afin de décider si l’export peut être effectué…
Depuis rsaenh.dll :

.text:6800C350                 test    word ptr [eax+8], 4001h
.text:6800C356                 jnz     short loc_6800C362
.text:6800C358                 mov     esi, 8009000Bh

Exemple avec Certutil pour une clé non exportable :

CertUtil : -exportPFX ÉCHEC de la commande : 0x8009000b (-2146893813)
CertUtil: Clé non valide pour l'utilisation dans l'état spécifié.

Sous Windows >= NT 5.1 mais < 6.0, ce test est suivi d'un autre test. Sous Windows >= NT 6.0, ce test est répété une autre fois.

Inclus dans mimikatz (article : http://blog.gentilkiwi.com/mimikatz/crypto#patchcapi)