SlideShare une entreprise Scribd logo
1  sur  49
Demo: Why NTLM sucks
      2013-01-24
      by Mart & vn
Déroulement
•   NTLMv1 en théorie
•   Fonctionnement
•   Faiblesse
•   Scénario
•   Stratégie d'attaque
•   Schéma de l'infrastructure
•   Démo
NTLMv1 en théorie
•      Acronyme de: NT Lan Manager
•      Successeur du protocole LM
•      Prédécesseur du protocole NTLMv2
•      Utilisation déconseillé par Microsoft depuis
       juillet 2010 [1]
•      Encore beaucoup trop utilisé sur le marché...



[1] http://msdn.microsoft.com/en-us/library/cc236715.aspx
NTLMv1 en théorie
•      NTLM et les réseaux Microsoft
        o Windows Integrated Authentication
           Kerberos est d'abord utilisé
           Si Kerberos échoue, NTLM est utilisé
        o Arrivé avec Windows 2000 SP4
        o Supporté jusqu'à Windows XP et Windows 2003




http://blogs.iss.net/archive/NTLMReflection.html
Fonctionnement
Faiblesse
•   Un seul challenge
    o Celui du serveur
    o Vulnérable aux "Reflection attacks"
Scénario
•   Nous sommes un développeur mal intentionné
    avec peu de privilèges (dev only).
    o   Évaluation difficile avec le boss? Manque d'écoute? Manque
        d'accès? Frustré de quoi que ce soit?
•   Nous avons un accès réseau
•   Victime: Nicolas Duchesneau
    o   Architecte ayant accès aux environnements de production et
        de développement
•   Les environnements de dev et de prod
    partagent le même réseau et domaine
Stratégie
•   Grandes étapes
    o   Récupérer un hash NTLM ainsi que le challenge (nonce)
        associé de Nicolas Duchesneau
    o   Cracker le hash
•   Contraintes
    o   Trouver un moyen qu'un individu s'authentifie sur une
        ressource contrôlé par nous.
    o   IE s'authentifie en NTLM seulement sur des sites de catégorie
        "Local Intranet"
          Le nom d'hôte de l'attaquant devra donc faire parti de la
            "white list" du navigateur
Stratégie
Stratégie
1. MITM
   o   Victime <-> DC + Victime <-> WEB
   o   Script Scapy
2. DNS Spoofing
   o   Il faut spoofer un nom valide afin que NTLM soit utilisé par le
       navigateur
3. WebScarab
   o   Configuré en proxy transparent
   o   Règle iptables qui forward le traffic HTTP
4. PokeHashBall
   o   Outil qui simulera un échange NTLM avec la victime
   o   nonce prédéfinit
Stratégie
5. Attendre que la victime accède la page
   o   Ou l'inviter subtilement via un courriel...
6. Lors de l'appel, intercepter une requête http
   o   Inclure une image afin que la victime effectue une requête vers le
       poste de l'attaquant
   o   Pourrait être automatisé dans WebScarab (java)
7. Récupérer le hash
8. Effectuer des recherches sur l'individu
9. Monter un dictionnaire sur mesure
10.Cracker le mot de passe
11.W00t :-)
Stratégie
•   Alternative
    o   Pour être plus furtif au niveau du réseau et éviter le
        ARP Poisoning, les accès suivants sont suffisants:
         créer une entrée dans les DNS
         modifier la page web
Stratégie
•   L'imagination est votre limite...
    o   Via un lien et un partage réseau
         http://blog.spiderlabs.com/2012/12/you-down-with-lnk.html
    o   Via un .doc
         http://jedicorp.com/security/exploit-dev/stealing-netntlm-credentials-by-injecting-unc-path-into-docx
    o   Via MSSQL
         http://www.netspi.com/blog/2012/12/26/executing-smb-relay-attacks-via-sql-server-using-
              metasploit/
Schéma de l'infrastructure
Demo
Alright, gimme my precious!
Profiling
ou coller des morceaux...
Intel
Pour ramasser de l'intelligence, il s'agit surtout d'avoir
  plusieurs sources, mais avant tout d'obtenir des
  informations de base :
•  Nickname
•  Nom
•  Ville
•  # de téléphone ou adresse
•  Nom de l'employeur
•  Infos sur la famille
•  Infos sur les loisirs
•  ...anything related
Sources d'intel
Bien évidemment, la meilleure place pour obtenir l'intel de
  base...est à la même place qu'on a obtenu cette
  dernière, sinon...
•  Google
•  Facebook/Twitter/LinkedIn
•  Whois
•  NEQ
•  Dumpster Diving
•  Social Engineering
•  ...
Ramassage de déchets...euh d'intel
•    Objectif : cracker un mot de passe qui n'a pas
     fonctionné avec des wordlists traditionnelles
     (rockyou, myspace, wikipedia, john.txt ou cain.txt)
•    http://360percents.com/posts/wordlist-by-scraping/
•    Permet de construire une wordlist en se basant sur une
     page Web
•    Nous allons donc bâtir de l'intel à partir de la page
     Intranet!
Ce que le script fait?
•    Extrait les mots/chiffres contenus dans la page Web et
     les rend uniques
•    Les classe en ordre alphabétique
•    Le script original ne permet pas de récupérer des
     chiffres/années...on modifie la regexp
     o   sed '/[^a-zA-Z]/d' ===> sed '/[^a-zA-Z0-9]/d'
•    Il y a une version plus avancée qui scrape
     récursivement...un peu trop
     o   Tout dépendant si vous voulez scraper style.css!
Après ./scrape.sh wtf we doin'?
•   Étudier la liste résultante et apporter des
    changements au besoin
    o Casse
    o Abbréviations
    o Accents
    o Attaque table-lookup manuelle
       Pour chars peu communs
           •   ex: hackfest ==> H@¢k£3§t

•   Ajouter des résultats d'intel et leurs variantes
    o   Apporter les changements susmentionnés
Manual intel avec notre exemple
•   On recherche des noms uniques
•   avril = avr, apr, 04
•   Google
    o   duchesneau+nicolas+camaro
    o   duchesneau+nicolas+ver-mac
    o   duchesneau+nicolas+"carrés rouges"
    o   Varknar
          On voit clairement que ça joue à WoW...on pourrait scraper
            WoWWiki juste pour ça...SKIP.
    o   nicolas+duchesneau+alexis OR maria
    o   camaro+rs/ss+1967 (genre pour avoir le model ID du moteur)
    o   "acton vale"+"cayo coco"
Amélioration du dictionnaire
•   On a tous tendance à faire des patterns de
    passwords :
    o   $word1##$word2#
    o   $word1$word2
    o   ##$word
    o   ...
•   On peut créer des rules dans notre outil de
    cracking pour automatiser les combination attacks
•   On peut faire le table-lookup manuellement avec
    un sed -e...ou laisser les rules faire la job ou
    encore établir manuellement les variantes
Amélioration du dictionnaire
Utilisation de hashcat-utils
•   http://hashcat.net/wiki/doku.php?id=hashcat_utils
•   Disponible sur BackTrack
•   Pour l'exemple, on va se contenter de combinator
•   ./combinator.bin $wordlist $wordlist > ~/cbwl1
•   ./combinator.bin $wordlist ~/cbwl1 > ~/cbwl21
•   On peut faire de multiples combinaisons aussi...
Cracking time
Choix de l'outil de cracking
•   Le choix ne manque pas...
    o   *hashcat*
    o   John the Ripper (JtR)
    o   hashkill
    o   CloudCracker ($)
    o   Logiciels d'ElcomSoft ($)
    o   CryptoHaze
    o   ...
•   Ils ne supportent pas tous les mêmes types de
    hashes
•   Certains ont des clones...
Choix de l'outil de cracking
•   Au début je regardais les tools qui
    supportaient NTLM ET LM...
    o JtR
    o hashkill
    o Rainbow Tables @ max 8/9-char length
    o CloudCracker

•   Je me suis bien rendu compte que rien
    marchait et que le hash fittait pas avec le
    contexte
•   En fait le bon hashtype c'est netNTLMv1
Choix de l'outil de cracking
•    Un Google rapide nous indique que la version -jumbo de
     JtR fait le netntlmv1
•    Un exemple avec password réussit
•    L'étape suivante fut de savoir dans quel format disposer le
     data.
     o   user::WORKGROUP:5237496CFCBD3C0CB0B1D6E0D579FE9977C173
         BC9AA997EF:A37C5C9316D9175589FDC21F260993DAF3644F1AAE2
         A3DFE:1122334455667788
     o   domainuser:::5237496CFCBD3C0CB0B1D6E0D579FE9977C173BC9AA
         997EF:A37C5C9316D9175589FDC21F260993DAF3644F1AAE2A3DFE:
         1122334455667788
     o   ...
Cracking time...
•    Pourtant le résultat final...
      o    $NETNTLM$1122334455667788$727b4e35f947129ea52b9cdedae86934bb23
           ef89f50fc595:password
•    Donc, le format en entrée :
      o    user::WORKGROUP:5237496CFCBD3C0CB0B1D6E0D579FE9977C173BC9
           AA997EF:A37C5C9316D9175589FDC21F260993DAF3644F1AAE2A3DFE:11
           22334455667788
      OU
      o    DOMAINuser:::5237496CFCBD3C0CB0B1D6E0D579FE9977C173BC9AA997
           EF:A37C5C9316D9175589FDC21F260993DAF3644F1AAE2A3DFE:11223344
           55667788
      OU
      o    DOMAINuser:5237496CFCBD3C0CB0B1D6E0D579FE9977C173BC9AA997
           EF:A37C5C9316D9175589FDC21F260993DAF3644F1AAE2A3DFE:11223344
           55667788
      Enfin on avançait avec celui-là...mais le nonce semblait me poser problème
L'heure est arrivée...
# cat ~/cbwl1 ~/cbwl21 $wordlist > ~/wordlist.txt
# cat john.conf|grep Wordlist
# Wordlist file name, to be used in batch mode
#Wordlist = $JOHN/password.lst
#Wordlist = /pentest/passwords/wordlists/rockyou.txt
Wordlist = /root/wordlist.txt

•    root@bt:~/john-copy/run# ./john --wordlist --
     format=netntlm tocrack.txt
Résultat
root@bt:~/john-copy/run# ./john --wordlist --format=netntlm tocrack.txt
Loaded 7 password hashes with 3 different salts (NTLMv1 C/R MD4
   DES (ESS MD5) [32/64])
Cricket88!    (user)
82Varknar67     (LABOnicduc2404)
82Varknar67     (LABOnicduc2404)
camaro82Varknar (LABOnicduc2404)
guesses: 4 time: 0:00:00:01 DONE (Wed Jan 23 02:19:07 2013) c/s:
   2927K trying: wowwowcamaro - wowwowwow
Use the "--show" option to display all of the cracked passwords reliably
Résultat
root@bt:~/john-copy/run# cat john.pot
$NETNTLM$1122334455667788$a37c5c9316d9175589fdc21f2
   60993daf3644f1aae2a3dfe:Cricket88!
$NETNTLM$1122334455667788$6fa23b67cdb418c8c766ea9be
   b3e275e37ef7637ec213c4b:82Varknar67
$NETNTLM$2189375490783254$41888686e9823f598f726c631
   eaac42a320305582e5a45bb:82Varknar67
$NETNTLM$2189375490783254$67e4196eb5323bb864fc144e
   152cb61d726779db69434782:camaro82Varknar
Autres techniques de cracking
•   Mask attack
     o   $word#### ou ####$word
•   Bruteforce
     o   -1 ?d?l?s -2 ?u?l?d?s ?2?1?1?1?1?1?1?1
•   Bruteforce avec rules
     o   Doubler lettres
     o   table-lookup
     o   jouer avec la casse
     o   31337
•   Permutation
     o   abc = bac = cab
•   Toggle case
     o   chocolate = cHoColaTE
Applications potentielles
•   Privilege escalation
•   Espionnage professionnel
    o     Peut-être personnel...sachant que certains ne
          changent pas leurs mots de passe!
•   Abus de confiance
    o     Le facteur humain est trop souvent négligé
•   ...
Conclusion et développement
•   NTLMv1 sucks!
•   IWA c'est bien beau et pratique mais...
     o   Il faut bien configurer
     o   S'assurer que les mécanismes entourant IWA sont solides par design
         et bien structurés
•   Avoir une politique de mots de passes solide aiderait
    grandement
     o   Blacklister des strings ou des parties, en se basant
             Sur des variables, genre $nom, $annéenaissance
             Des mots contenus dans des wordlists populaires
     o   Limiter la validité et la possibilité de répétition des mots de passe
     o   Stockage et transit sécurisés
Conclusion et développement
•   Utiliser des protocoles sécuritaires
    o   Kerberos
    o   NTLMv2
•   Segmentation des environnements
    o   2x Réseau
    o   2x domaines
Depuis la présentation...
•   atom de hashcat a intégré netntlmv1 en CPU
    o   Prévoit l'intégration GPU
    o   Implémente une meilleure attaque
•   Meilleure performance+++++
    o   jtr CPU = 14M hashes/s sur un AMD FX-8120
    o   hashcat CPU = 76M hashes/s sur un AMD FX-8120
    o   oclHashcat+ = 8B hashes/s sur une Radeon 7970
Questions?
martin.dube@hackfest.ca
    vn@hackfest.ca

Contenu connexe

Tendances

Guide de piratage d'un reseau wifi domestiquee (ou commentexploserune clef we...
Guide de piratage d'un reseau wifi domestiquee (ou commentexploserune clef we...Guide de piratage d'un reseau wifi domestiquee (ou commentexploserune clef we...
Guide de piratage d'un reseau wifi domestiquee (ou commentexploserune clef we...DICKO Yacouba
 
Cassandra Lan Party à Devoxx France
Cassandra Lan Party à Devoxx FranceCassandra Lan Party à Devoxx France
Cassandra Lan Party à Devoxx FranceJérémy Sevellec
 
Guide De Piratage Dun Reseau Wifi Domestique (Ou Commentexploserune Clef Wep)...
Guide De Piratage Dun Reseau Wifi Domestique (Ou Commentexploserune Clef Wep)...Guide De Piratage Dun Reseau Wifi Domestique (Ou Commentexploserune Clef Wep)...
Guide De Piratage Dun Reseau Wifi Domestique (Ou Commentexploserune Clef Wep)...guest0b40ec
 
08 03 sécurisation d'un serveur web avec ssl
08 03 sécurisation d'un serveur web avec ssl08 03 sécurisation d'un serveur web avec ssl
08 03 sécurisation d'un serveur web avec sslNoël
 
Installation Et Configuration De Monkey Spider
Installation Et Configuration De Monkey SpiderInstallation Et Configuration De Monkey Spider
Installation Et Configuration De Monkey SpiderMohamed Ben Bouzid
 
Présentation gnireenigne
Présentation   gnireenignePrésentation   gnireenigne
Présentation gnireenigneCocoaHeads.fr
 
Presentation langage go_19022015
Presentation langage go_19022015Presentation langage go_19022015
Presentation langage go_19022015Stéphane Legrand
 

Tendances (9)

Guide de piratage d'un reseau wifi domestiquee (ou commentexploserune clef we...
Guide de piratage d'un reseau wifi domestiquee (ou commentexploserune clef we...Guide de piratage d'un reseau wifi domestiquee (ou commentexploserune clef we...
Guide de piratage d'un reseau wifi domestiquee (ou commentexploserune clef we...
 
Les tests de securite devops
Les tests de securite devopsLes tests de securite devops
Les tests de securite devops
 
Cassandra Lan Party à Devoxx France
Cassandra Lan Party à Devoxx FranceCassandra Lan Party à Devoxx France
Cassandra Lan Party à Devoxx France
 
Guide De Piratage Dun Reseau Wifi Domestique (Ou Commentexploserune Clef Wep)...
Guide De Piratage Dun Reseau Wifi Domestique (Ou Commentexploserune Clef Wep)...Guide De Piratage Dun Reseau Wifi Domestique (Ou Commentexploserune Clef Wep)...
Guide De Piratage Dun Reseau Wifi Domestique (Ou Commentexploserune Clef Wep)...
 
08 03 sécurisation d'un serveur web avec ssl
08 03 sécurisation d'un serveur web avec ssl08 03 sécurisation d'un serveur web avec ssl
08 03 sécurisation d'un serveur web avec ssl
 
Installation Et Configuration De Monkey Spider
Installation Et Configuration De Monkey SpiderInstallation Et Configuration De Monkey Spider
Installation Et Configuration De Monkey Spider
 
Présentation gnireenigne
Présentation   gnireenignePrésentation   gnireenigne
Présentation gnireenigne
 
Chiffrer et sécuriser MariaDB
Chiffrer et sécuriser MariaDBChiffrer et sécuriser MariaDB
Chiffrer et sécuriser MariaDB
 
Presentation langage go_19022015
Presentation langage go_19022015Presentation langage go_19022015
Presentation langage go_19022015
 

En vedette

Windows Attacks AT is the new black
Windows Attacks   AT is the new blackWindows Attacks   AT is the new black
Windows Attacks AT is the new blackRob Fuller
 
Conv paul b
Conv paul bConv paul b
Conv paul bschool
 
22 la présentation au temple, v. carpaccio c. lauras
22 la présentation au temple, v. carpaccio c. lauras22 la présentation au temple, v. carpaccio c. lauras
22 la présentation au temple, v. carpaccio c. laurasseminaire_venitien
 
baromètre du Figaro magazine avril 2012
baromètre du Figaro magazine avril 2012baromètre du Figaro magazine avril 2012
baromètre du Figaro magazine avril 2012melclalex
 
La revolucion francesa
La revolucion francesaLa revolucion francesa
La revolucion francesapaulatorresrey
 
Guide Enseignant OBii
Guide Enseignant OBiiGuide Enseignant OBii
Guide Enseignant OBiiMATICE_CDP
 
Remplir l’entonnoir
Remplir l’entonnoirRemplir l’entonnoir
Remplir l’entonnoirBlog Atlantic
 
Accessibilité du Web, petit tour d’horizons des idées reçues - RMLL 2010
Accessibilité du Web, petit tour d’horizons des idées reçues - RMLL 2010Accessibilité du Web, petit tour d’horizons des idées reçues - RMLL 2010
Accessibilité du Web, petit tour d’horizons des idées reçues - RMLL 2010Access42
 
Évolution ou révolution
Évolution ou révolution Évolution ou révolution
Évolution ou révolution Frenskata
 
Communiqué de presse incidence immobilier
Communiqué de presse incidence immobilierCommuniqué de presse incidence immobilier
Communiqué de presse incidence immobilierIncidence
 
Sistemas operativos
Sistemas operativosSistemas operativos
Sistemas operativosmarthagamez
 

En vedette (20)

Windows Attacks AT is the new black
Windows Attacks   AT is the new blackWindows Attacks   AT is the new black
Windows Attacks AT is the new black
 
Higiene industrial exposicion
Higiene industrial exposicionHigiene industrial exposicion
Higiene industrial exposicion
 
MOD French
MOD FrenchMOD French
MOD French
 
Conv paul b
Conv paul bConv paul b
Conv paul b
 
notas de ellen white leccion 09
notas de ellen white leccion 09notas de ellen white leccion 09
notas de ellen white leccion 09
 
Datapero #2 opendata71
Datapero #2   opendata71Datapero #2   opendata71
Datapero #2 opendata71
 
1. literatura i programa
1. literatura i  programa1. literatura i  programa
1. literatura i programa
 
Portraits mine
Portraits minePortraits mine
Portraits mine
 
22 la présentation au temple, v. carpaccio c. lauras
22 la présentation au temple, v. carpaccio c. lauras22 la présentation au temple, v. carpaccio c. lauras
22 la présentation au temple, v. carpaccio c. lauras
 
baromètre du Figaro magazine avril 2012
baromètre du Figaro magazine avril 2012baromètre du Figaro magazine avril 2012
baromètre du Figaro magazine avril 2012
 
La revolucion francesa
La revolucion francesaLa revolucion francesa
La revolucion francesa
 
Guide Enseignant OBii
Guide Enseignant OBiiGuide Enseignant OBii
Guide Enseignant OBii
 
Remplir l’entonnoir
Remplir l’entonnoirRemplir l’entonnoir
Remplir l’entonnoir
 
Semestral
SemestralSemestral
Semestral
 
Accessibilité du Web, petit tour d’horizons des idées reçues - RMLL 2010
Accessibilité du Web, petit tour d’horizons des idées reçues - RMLL 2010Accessibilité du Web, petit tour d’horizons des idées reçues - RMLL 2010
Accessibilité du Web, petit tour d’horizons des idées reçues - RMLL 2010
 
Évolution ou révolution
Évolution ou révolution Évolution ou révolution
Évolution ou révolution
 
Resumen12
Resumen12Resumen12
Resumen12
 
Communiqué de presse incidence immobilier
Communiqué de presse incidence immobilierCommuniqué de presse incidence immobilier
Communiqué de presse incidence immobilier
 
Castigo al hijo rebelde
Castigo al hijo rebeldeCastigo al hijo rebelde
Castigo al hijo rebelde
 
Sistemas operativos
Sistemas operativosSistemas operativos
Sistemas operativos
 

Similaire à Hackerspace jan-2013

.NET Microframework: du code, de l&rsquo;électronique, de la robotique
.NET Microframework: du code, de l&rsquo;électronique, de la robotique.NET Microframework: du code, de l&rsquo;électronique, de la robotique
.NET Microframework: du code, de l&rsquo;électronique, de la robotiqueMicrosoft
 
Power shell saturday Paris 2017 Omiossec
Power shell saturday  Paris 2017 OmiossecPower shell saturday  Paris 2017 Omiossec
Power shell saturday Paris 2017 OmiossecOlivier Miossec
 
Kevin Avignon: Roslyn - La plateforme de compilation .NET
Kevin Avignon: Roslyn - La plateforme de compilation .NETKevin Avignon: Roslyn - La plateforme de compilation .NET
Kevin Avignon: Roslyn - La plateforme de compilation .NETMSDEVMTL
 
Apache solr andré bois-crettez 08
Apache solr   andré bois-crettez 08Apache solr   andré bois-crettez 08
Apache solr andré bois-crettez 08Loïc Descotte
 
Javascript & tools
Javascript & toolsJavascript & tools
Javascript & toolsSlim Soussi
 
Retour d'expérience sur notre stack de log
Retour d'expérience sur notre stack de logRetour d'expérience sur notre stack de log
Retour d'expérience sur notre stack de logJulien Maitrehenry
 
Importer 500 millions de données de MySQL vers Neo4j
Importer 500 millions de données de MySQL vers Neo4jImporter 500 millions de données de MySQL vers Neo4j
Importer 500 millions de données de MySQL vers Neo4jGabriel Pillet 🐙
 
gRPC, ECHANGES A HAUTE FREQUENCE !
gRPC, ECHANGES A HAUTE FREQUENCE !gRPC, ECHANGES A HAUTE FREQUENCE !
gRPC, ECHANGES A HAUTE FREQUENCE !Carles Sistare
 
gRPC, échange à haute fréquence!
gRPC, échange à haute fréquence!gRPC, échange à haute fréquence!
gRPC, échange à haute fréquence!David Caramelo
 
Rétro-ingénierie de protocole crypto: Un "starter pack"
Rétro-ingénierie de protocole crypto: Un "starter pack"Rétro-ingénierie de protocole crypto: Un "starter pack"
Rétro-ingénierie de protocole crypto: Un "starter pack"Maxime Leblanc
 
La mise en cache et ses secrets
La mise en cache et ses secretsLa mise en cache et ses secrets
La mise en cache et ses secretsAymeric Bouillat
 
C++ 11 - Tech Days 2014 in Paris
C++ 11 - Tech Days 2014 in ParisC++ 11 - Tech Days 2014 in Paris
C++ 11 - Tech Days 2014 in Parischristophep21
 
Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
Bonnes pratiques pour apprivoiser le C++11 avec Visual C++Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
Bonnes pratiques pour apprivoiser le C++11 avec Visual C++Microsoft
 
Tout ce que le getting started MongoDB ne vous dira pas
Tout ce que le getting started MongoDB ne vous dira pasTout ce que le getting started MongoDB ne vous dira pas
Tout ce que le getting started MongoDB ne vous dira pasBruno Bonnin
 
Réussir une montée en charge avec MongoDB
Réussir une montée en charge avec MongoDBRéussir une montée en charge avec MongoDB
Réussir une montée en charge avec MongoDB MongoDB
 
Enib cours c.a.i. web - séance #1 - html5 css3-js - 2
Enib   cours c.a.i. web - séance #1 - html5 css3-js - 2Enib   cours c.a.i. web - séance #1 - html5 css3-js - 2
Enib cours c.a.i. web - séance #1 - html5 css3-js - 2Horacio Gonzalez
 
Suivi qualité avec sonar pour php
Suivi qualité avec sonar pour phpSuivi qualité avec sonar pour php
Suivi qualité avec sonar pour phpGabriele Santini
 
Conférence Shinken à SophiaConf2012 (Jean Gabès)
Conférence Shinken à SophiaConf2012 (Jean Gabès)Conférence Shinken à SophiaConf2012 (Jean Gabès)
Conférence Shinken à SophiaConf2012 (Jean Gabès)Jean Gabès
 

Similaire à Hackerspace jan-2013 (20)

Javascript proprement
Javascript proprementJavascript proprement
Javascript proprement
 
.NET Microframework: du code, de l&rsquo;électronique, de la robotique
.NET Microframework: du code, de l&rsquo;électronique, de la robotique.NET Microframework: du code, de l&rsquo;électronique, de la robotique
.NET Microframework: du code, de l&rsquo;électronique, de la robotique
 
Power shell saturday Paris 2017 Omiossec
Power shell saturday  Paris 2017 OmiossecPower shell saturday  Paris 2017 Omiossec
Power shell saturday Paris 2017 Omiossec
 
Kevin Avignon: Roslyn - La plateforme de compilation .NET
Kevin Avignon: Roslyn - La plateforme de compilation .NETKevin Avignon: Roslyn - La plateforme de compilation .NET
Kevin Avignon: Roslyn - La plateforme de compilation .NET
 
Apache solr andré bois-crettez 08
Apache solr   andré bois-crettez 08Apache solr   andré bois-crettez 08
Apache solr andré bois-crettez 08
 
Javascript & tools
Javascript & toolsJavascript & tools
Javascript & tools
 
Retour d'expérience sur notre stack de log
Retour d'expérience sur notre stack de logRetour d'expérience sur notre stack de log
Retour d'expérience sur notre stack de log
 
Importer 500 millions de données de MySQL vers Neo4j
Importer 500 millions de données de MySQL vers Neo4jImporter 500 millions de données de MySQL vers Neo4j
Importer 500 millions de données de MySQL vers Neo4j
 
gRPC, ECHANGES A HAUTE FREQUENCE !
gRPC, ECHANGES A HAUTE FREQUENCE !gRPC, ECHANGES A HAUTE FREQUENCE !
gRPC, ECHANGES A HAUTE FREQUENCE !
 
gRPC, échange à haute fréquence!
gRPC, échange à haute fréquence!gRPC, échange à haute fréquence!
gRPC, échange à haute fréquence!
 
Rétro-ingénierie de protocole crypto: Un "starter pack"
Rétro-ingénierie de protocole crypto: Un "starter pack"Rétro-ingénierie de protocole crypto: Un "starter pack"
Rétro-ingénierie de protocole crypto: Un "starter pack"
 
La mise en cache et ses secrets
La mise en cache et ses secretsLa mise en cache et ses secrets
La mise en cache et ses secrets
 
C++ 11 - Tech Days 2014 in Paris
C++ 11 - Tech Days 2014 in ParisC++ 11 - Tech Days 2014 in Paris
C++ 11 - Tech Days 2014 in Paris
 
Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
Bonnes pratiques pour apprivoiser le C++11 avec Visual C++Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
 
Tout ce que le getting started MongoDB ne vous dira pas
Tout ce que le getting started MongoDB ne vous dira pasTout ce que le getting started MongoDB ne vous dira pas
Tout ce que le getting started MongoDB ne vous dira pas
 
Networxx (intro et fin)
Networxx (intro et fin)Networxx (intro et fin)
Networxx (intro et fin)
 
Réussir une montée en charge avec MongoDB
Réussir une montée en charge avec MongoDBRéussir une montée en charge avec MongoDB
Réussir une montée en charge avec MongoDB
 
Enib cours c.a.i. web - séance #1 - html5 css3-js - 2
Enib   cours c.a.i. web - séance #1 - html5 css3-js - 2Enib   cours c.a.i. web - séance #1 - html5 css3-js - 2
Enib cours c.a.i. web - séance #1 - html5 css3-js - 2
 
Suivi qualité avec sonar pour php
Suivi qualité avec sonar pour phpSuivi qualité avec sonar pour php
Suivi qualité avec sonar pour php
 
Conférence Shinken à SophiaConf2012 (Jean Gabès)
Conférence Shinken à SophiaConf2012 (Jean Gabès)Conférence Shinken à SophiaConf2012 (Jean Gabès)
Conférence Shinken à SophiaConf2012 (Jean Gabès)
 

Plus de Hackfest Communication

Du fuzzing dans les tests d'intrusions? (Éric Gingras)
Du fuzzing dans les tests d'intrusions? (Éric Gingras)Du fuzzing dans les tests d'intrusions? (Éric Gingras)
Du fuzzing dans les tests d'intrusions? (Éric Gingras)Hackfest Communication
 
Quelles lois sont applicables au hacker? Énormément moins que tu penses. (Bot...
Quelles lois sont applicables au hacker? Énormément moins que tu penses. (Bot...Quelles lois sont applicables au hacker? Énormément moins que tu penses. (Bot...
Quelles lois sont applicables au hacker? Énormément moins que tu penses. (Bot...Hackfest Communication
 
Conservation et la circulation des renseignements personnels des services de ...
Conservation et la circulation des renseignements personnels des services de ...Conservation et la circulation des renseignements personnels des services de ...
Conservation et la circulation des renseignements personnels des services de ...Hackfest Communication
 
Stack Smashing Protector (Paul Rascagneres)
Stack Smashing Protector (Paul Rascagneres)Stack Smashing Protector (Paul Rascagneres)
Stack Smashing Protector (Paul Rascagneres)Hackfest Communication
 
Mots de passe et mécanismes d’authentification (Thomas Pornin)
Mots de passe et mécanismes d’authentification (Thomas Pornin)Mots de passe et mécanismes d’authentification (Thomas Pornin)
Mots de passe et mécanismes d’authentification (Thomas Pornin)Hackfest Communication
 
Comment détecter des virus inconnus en utilisant des « honey pots » et d’autr...
Comment détecter des virus inconnus en utilisant des « honey pots » et d’autr...Comment détecter des virus inconnus en utilisant des « honey pots » et d’autr...
Comment détecter des virus inconnus en utilisant des « honey pots » et d’autr...Hackfest Communication
 
Comment détecter des virus inconnus en utilisant des « Honeypots » et d’autre...
Comment détecter des virus inconnus en utilisant des « Honeypots » et d’autre...Comment détecter des virus inconnus en utilisant des « Honeypots » et d’autre...
Comment détecter des virus inconnus en utilisant des « Honeypots » et d’autre...Hackfest Communication
 
PostNet, une nouvelle ère de Botnet résilient (Julien Desfossez & David Goulet)
PostNet, une nouvelle ère de Botnet résilient (Julien Desfossez & David Goulet)PostNet, une nouvelle ère de Botnet résilient (Julien Desfossez & David Goulet)
PostNet, une nouvelle ère de Botnet résilient (Julien Desfossez & David Goulet)Hackfest Communication
 
La détection d'intrusions est-elle morte en 2003 ? (Éric Gingras)
La détection d'intrusions est-elle morte en 2003 ? (Éric Gingras)La détection d'intrusions est-elle morte en 2003 ? (Éric Gingras)
La détection d'intrusions est-elle morte en 2003 ? (Éric Gingras)Hackfest Communication
 
Responsabilisation des données confidentielles en entreprise (Étienne Dubreuil)
Responsabilisation des données confidentielles en entreprise (Étienne Dubreuil)Responsabilisation des données confidentielles en entreprise (Étienne Dubreuil)
Responsabilisation des données confidentielles en entreprise (Étienne Dubreuil)Hackfest Communication
 
Le GPU à la rescousse du CPU (Charles Demers-Tremblay)
Le GPU à la rescousse du CPU (Charles Demers-Tremblay)Le GPU à la rescousse du CPU (Charles Demers-Tremblay)
Le GPU à la rescousse du CPU (Charles Demers-Tremblay)Hackfest Communication
 
802.1X filaire, un monde idéal illusoire? (Olivier Bilodeau)
802.1X filaire, un monde idéal illusoire? (Olivier Bilodeau)802.1X filaire, un monde idéal illusoire? (Olivier Bilodeau)
802.1X filaire, un monde idéal illusoire? (Olivier Bilodeau)Hackfest Communication
 

Plus de Hackfest Communication (14)

Hackfest @ WAQ2011
Hackfest @ WAQ2011Hackfest @ WAQ2011
Hackfest @ WAQ2011
 
Du fuzzing dans les tests d'intrusions? (Éric Gingras)
Du fuzzing dans les tests d'intrusions? (Éric Gingras)Du fuzzing dans les tests d'intrusions? (Éric Gingras)
Du fuzzing dans les tests d'intrusions? (Éric Gingras)
 
Quelles lois sont applicables au hacker? Énormément moins que tu penses. (Bot...
Quelles lois sont applicables au hacker? Énormément moins que tu penses. (Bot...Quelles lois sont applicables au hacker? Énormément moins que tu penses. (Bot...
Quelles lois sont applicables au hacker? Énormément moins que tu penses. (Bot...
 
Broken by design (Danny Fullerton)
Broken by design (Danny Fullerton)Broken by design (Danny Fullerton)
Broken by design (Danny Fullerton)
 
Conservation et la circulation des renseignements personnels des services de ...
Conservation et la circulation des renseignements personnels des services de ...Conservation et la circulation des renseignements personnels des services de ...
Conservation et la circulation des renseignements personnels des services de ...
 
Stack Smashing Protector (Paul Rascagneres)
Stack Smashing Protector (Paul Rascagneres)Stack Smashing Protector (Paul Rascagneres)
Stack Smashing Protector (Paul Rascagneres)
 
Mots de passe et mécanismes d’authentification (Thomas Pornin)
Mots de passe et mécanismes d’authentification (Thomas Pornin)Mots de passe et mécanismes d’authentification (Thomas Pornin)
Mots de passe et mécanismes d’authentification (Thomas Pornin)
 
Comment détecter des virus inconnus en utilisant des « honey pots » et d’autr...
Comment détecter des virus inconnus en utilisant des « honey pots » et d’autr...Comment détecter des virus inconnus en utilisant des « honey pots » et d’autr...
Comment détecter des virus inconnus en utilisant des « honey pots » et d’autr...
 
Comment détecter des virus inconnus en utilisant des « Honeypots » et d’autre...
Comment détecter des virus inconnus en utilisant des « Honeypots » et d’autre...Comment détecter des virus inconnus en utilisant des « Honeypots » et d’autre...
Comment détecter des virus inconnus en utilisant des « Honeypots » et d’autre...
 
PostNet, une nouvelle ère de Botnet résilient (Julien Desfossez & David Goulet)
PostNet, une nouvelle ère de Botnet résilient (Julien Desfossez & David Goulet)PostNet, une nouvelle ère de Botnet résilient (Julien Desfossez & David Goulet)
PostNet, une nouvelle ère de Botnet résilient (Julien Desfossez & David Goulet)
 
La détection d'intrusions est-elle morte en 2003 ? (Éric Gingras)
La détection d'intrusions est-elle morte en 2003 ? (Éric Gingras)La détection d'intrusions est-elle morte en 2003 ? (Éric Gingras)
La détection d'intrusions est-elle morte en 2003 ? (Éric Gingras)
 
Responsabilisation des données confidentielles en entreprise (Étienne Dubreuil)
Responsabilisation des données confidentielles en entreprise (Étienne Dubreuil)Responsabilisation des données confidentielles en entreprise (Étienne Dubreuil)
Responsabilisation des données confidentielles en entreprise (Étienne Dubreuil)
 
Le GPU à la rescousse du CPU (Charles Demers-Tremblay)
Le GPU à la rescousse du CPU (Charles Demers-Tremblay)Le GPU à la rescousse du CPU (Charles Demers-Tremblay)
Le GPU à la rescousse du CPU (Charles Demers-Tremblay)
 
802.1X filaire, un monde idéal illusoire? (Olivier Bilodeau)
802.1X filaire, un monde idéal illusoire? (Olivier Bilodeau)802.1X filaire, un monde idéal illusoire? (Olivier Bilodeau)
802.1X filaire, un monde idéal illusoire? (Olivier Bilodeau)
 

Hackerspace jan-2013

  • 1. Demo: Why NTLM sucks 2013-01-24 by Mart & vn
  • 2. Déroulement • NTLMv1 en théorie • Fonctionnement • Faiblesse • Scénario • Stratégie d'attaque • Schéma de l'infrastructure • Démo
  • 3. NTLMv1 en théorie • Acronyme de: NT Lan Manager • Successeur du protocole LM • Prédécesseur du protocole NTLMv2 • Utilisation déconseillé par Microsoft depuis juillet 2010 [1] • Encore beaucoup trop utilisé sur le marché... [1] http://msdn.microsoft.com/en-us/library/cc236715.aspx
  • 4. NTLMv1 en théorie • NTLM et les réseaux Microsoft o Windows Integrated Authentication  Kerberos est d'abord utilisé  Si Kerberos échoue, NTLM est utilisé o Arrivé avec Windows 2000 SP4 o Supporté jusqu'à Windows XP et Windows 2003 http://blogs.iss.net/archive/NTLMReflection.html
  • 6. Faiblesse • Un seul challenge o Celui du serveur o Vulnérable aux "Reflection attacks"
  • 7. Scénario • Nous sommes un développeur mal intentionné avec peu de privilèges (dev only). o Évaluation difficile avec le boss? Manque d'écoute? Manque d'accès? Frustré de quoi que ce soit? • Nous avons un accès réseau • Victime: Nicolas Duchesneau o Architecte ayant accès aux environnements de production et de développement • Les environnements de dev et de prod partagent le même réseau et domaine
  • 8. Stratégie • Grandes étapes o Récupérer un hash NTLM ainsi que le challenge (nonce) associé de Nicolas Duchesneau o Cracker le hash • Contraintes o Trouver un moyen qu'un individu s'authentifie sur une ressource contrôlé par nous. o IE s'authentifie en NTLM seulement sur des sites de catégorie "Local Intranet"  Le nom d'hôte de l'attaquant devra donc faire parti de la "white list" du navigateur
  • 10. Stratégie 1. MITM o Victime <-> DC + Victime <-> WEB o Script Scapy 2. DNS Spoofing o Il faut spoofer un nom valide afin que NTLM soit utilisé par le navigateur 3. WebScarab o Configuré en proxy transparent o Règle iptables qui forward le traffic HTTP 4. PokeHashBall o Outil qui simulera un échange NTLM avec la victime o nonce prédéfinit
  • 11. Stratégie 5. Attendre que la victime accède la page o Ou l'inviter subtilement via un courriel... 6. Lors de l'appel, intercepter une requête http o Inclure une image afin que la victime effectue une requête vers le poste de l'attaquant o Pourrait être automatisé dans WebScarab (java) 7. Récupérer le hash 8. Effectuer des recherches sur l'individu 9. Monter un dictionnaire sur mesure 10.Cracker le mot de passe 11.W00t :-)
  • 12. Stratégie • Alternative o Pour être plus furtif au niveau du réseau et éviter le ARP Poisoning, les accès suivants sont suffisants:  créer une entrée dans les DNS  modifier la page web
  • 13. Stratégie • L'imagination est votre limite... o Via un lien et un partage réseau  http://blog.spiderlabs.com/2012/12/you-down-with-lnk.html o Via un .doc  http://jedicorp.com/security/exploit-dev/stealing-netntlm-credentials-by-injecting-unc-path-into-docx o Via MSSQL  http://www.netspi.com/blog/2012/12/26/executing-smb-relay-attacks-via-sql-server-using- metasploit/
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27. Profiling ou coller des morceaux...
  • 28. Intel Pour ramasser de l'intelligence, il s'agit surtout d'avoir plusieurs sources, mais avant tout d'obtenir des informations de base : • Nickname • Nom • Ville • # de téléphone ou adresse • Nom de l'employeur • Infos sur la famille • Infos sur les loisirs • ...anything related
  • 29. Sources d'intel Bien évidemment, la meilleure place pour obtenir l'intel de base...est à la même place qu'on a obtenu cette dernière, sinon... • Google • Facebook/Twitter/LinkedIn • Whois • NEQ • Dumpster Diving • Social Engineering • ...
  • 30. Ramassage de déchets...euh d'intel • Objectif : cracker un mot de passe qui n'a pas fonctionné avec des wordlists traditionnelles (rockyou, myspace, wikipedia, john.txt ou cain.txt) • http://360percents.com/posts/wordlist-by-scraping/ • Permet de construire une wordlist en se basant sur une page Web • Nous allons donc bâtir de l'intel à partir de la page Intranet!
  • 31. Ce que le script fait? • Extrait les mots/chiffres contenus dans la page Web et les rend uniques • Les classe en ordre alphabétique • Le script original ne permet pas de récupérer des chiffres/années...on modifie la regexp o sed '/[^a-zA-Z]/d' ===> sed '/[^a-zA-Z0-9]/d' • Il y a une version plus avancée qui scrape récursivement...un peu trop o Tout dépendant si vous voulez scraper style.css!
  • 32. Après ./scrape.sh wtf we doin'? • Étudier la liste résultante et apporter des changements au besoin o Casse o Abbréviations o Accents o Attaque table-lookup manuelle  Pour chars peu communs • ex: hackfest ==> H@¢k£3§t • Ajouter des résultats d'intel et leurs variantes o Apporter les changements susmentionnés
  • 33. Manual intel avec notre exemple • On recherche des noms uniques • avril = avr, apr, 04 • Google o duchesneau+nicolas+camaro o duchesneau+nicolas+ver-mac o duchesneau+nicolas+"carrés rouges" o Varknar  On voit clairement que ça joue à WoW...on pourrait scraper WoWWiki juste pour ça...SKIP. o nicolas+duchesneau+alexis OR maria o camaro+rs/ss+1967 (genre pour avoir le model ID du moteur) o "acton vale"+"cayo coco"
  • 34. Amélioration du dictionnaire • On a tous tendance à faire des patterns de passwords : o $word1##$word2# o $word1$word2 o ##$word o ... • On peut créer des rules dans notre outil de cracking pour automatiser les combination attacks • On peut faire le table-lookup manuellement avec un sed -e...ou laisser les rules faire la job ou encore établir manuellement les variantes
  • 35. Amélioration du dictionnaire Utilisation de hashcat-utils • http://hashcat.net/wiki/doku.php?id=hashcat_utils • Disponible sur BackTrack • Pour l'exemple, on va se contenter de combinator • ./combinator.bin $wordlist $wordlist > ~/cbwl1 • ./combinator.bin $wordlist ~/cbwl1 > ~/cbwl21 • On peut faire de multiples combinaisons aussi...
  • 37. Choix de l'outil de cracking • Le choix ne manque pas... o *hashcat* o John the Ripper (JtR) o hashkill o CloudCracker ($) o Logiciels d'ElcomSoft ($) o CryptoHaze o ... • Ils ne supportent pas tous les mêmes types de hashes • Certains ont des clones...
  • 38. Choix de l'outil de cracking • Au début je regardais les tools qui supportaient NTLM ET LM... o JtR o hashkill o Rainbow Tables @ max 8/9-char length o CloudCracker • Je me suis bien rendu compte que rien marchait et que le hash fittait pas avec le contexte • En fait le bon hashtype c'est netNTLMv1
  • 39. Choix de l'outil de cracking • Un Google rapide nous indique que la version -jumbo de JtR fait le netntlmv1 • Un exemple avec password réussit • L'étape suivante fut de savoir dans quel format disposer le data. o user::WORKGROUP:5237496CFCBD3C0CB0B1D6E0D579FE9977C173 BC9AA997EF:A37C5C9316D9175589FDC21F260993DAF3644F1AAE2 A3DFE:1122334455667788 o domainuser:::5237496CFCBD3C0CB0B1D6E0D579FE9977C173BC9AA 997EF:A37C5C9316D9175589FDC21F260993DAF3644F1AAE2A3DFE: 1122334455667788 o ...
  • 40. Cracking time... • Pourtant le résultat final... o $NETNTLM$1122334455667788$727b4e35f947129ea52b9cdedae86934bb23 ef89f50fc595:password • Donc, le format en entrée : o user::WORKGROUP:5237496CFCBD3C0CB0B1D6E0D579FE9977C173BC9 AA997EF:A37C5C9316D9175589FDC21F260993DAF3644F1AAE2A3DFE:11 22334455667788 OU o DOMAINuser:::5237496CFCBD3C0CB0B1D6E0D579FE9977C173BC9AA997 EF:A37C5C9316D9175589FDC21F260993DAF3644F1AAE2A3DFE:11223344 55667788 OU o DOMAINuser:5237496CFCBD3C0CB0B1D6E0D579FE9977C173BC9AA997 EF:A37C5C9316D9175589FDC21F260993DAF3644F1AAE2A3DFE:11223344 55667788 Enfin on avançait avec celui-là...mais le nonce semblait me poser problème
  • 41. L'heure est arrivée... # cat ~/cbwl1 ~/cbwl21 $wordlist > ~/wordlist.txt # cat john.conf|grep Wordlist # Wordlist file name, to be used in batch mode #Wordlist = $JOHN/password.lst #Wordlist = /pentest/passwords/wordlists/rockyou.txt Wordlist = /root/wordlist.txt • root@bt:~/john-copy/run# ./john --wordlist -- format=netntlm tocrack.txt
  • 42. Résultat root@bt:~/john-copy/run# ./john --wordlist --format=netntlm tocrack.txt Loaded 7 password hashes with 3 different salts (NTLMv1 C/R MD4 DES (ESS MD5) [32/64]) Cricket88! (user) 82Varknar67 (LABOnicduc2404) 82Varknar67 (LABOnicduc2404) camaro82Varknar (LABOnicduc2404) guesses: 4 time: 0:00:00:01 DONE (Wed Jan 23 02:19:07 2013) c/s: 2927K trying: wowwowcamaro - wowwowwow Use the "--show" option to display all of the cracked passwords reliably
  • 43. Résultat root@bt:~/john-copy/run# cat john.pot $NETNTLM$1122334455667788$a37c5c9316d9175589fdc21f2 60993daf3644f1aae2a3dfe:Cricket88! $NETNTLM$1122334455667788$6fa23b67cdb418c8c766ea9be b3e275e37ef7637ec213c4b:82Varknar67 $NETNTLM$2189375490783254$41888686e9823f598f726c631 eaac42a320305582e5a45bb:82Varknar67 $NETNTLM$2189375490783254$67e4196eb5323bb864fc144e 152cb61d726779db69434782:camaro82Varknar
  • 44. Autres techniques de cracking • Mask attack o $word#### ou ####$word • Bruteforce o -1 ?d?l?s -2 ?u?l?d?s ?2?1?1?1?1?1?1?1 • Bruteforce avec rules o Doubler lettres o table-lookup o jouer avec la casse o 31337 • Permutation o abc = bac = cab • Toggle case o chocolate = cHoColaTE
  • 45. Applications potentielles • Privilege escalation • Espionnage professionnel o Peut-être personnel...sachant que certains ne changent pas leurs mots de passe! • Abus de confiance o Le facteur humain est trop souvent négligé • ...
  • 46. Conclusion et développement • NTLMv1 sucks! • IWA c'est bien beau et pratique mais... o Il faut bien configurer o S'assurer que les mécanismes entourant IWA sont solides par design et bien structurés • Avoir une politique de mots de passes solide aiderait grandement o Blacklister des strings ou des parties, en se basant  Sur des variables, genre $nom, $annéenaissance  Des mots contenus dans des wordlists populaires o Limiter la validité et la possibilité de répétition des mots de passe o Stockage et transit sécurisés
  • 47. Conclusion et développement • Utiliser des protocoles sécuritaires o Kerberos o NTLMv2 • Segmentation des environnements o 2x Réseau o 2x domaines
  • 48. Depuis la présentation... • atom de hashcat a intégré netntlmv1 en CPU o Prévoit l'intégration GPU o Implémente une meilleure attaque • Meilleure performance+++++ o jtr CPU = 14M hashes/s sur un AMD FX-8120 o hashcat CPU = 76M hashes/s sur un AMD FX-8120 o oclHashcat+ = 8B hashes/s sur une Radeon 7970