Professional Documents
Culture Documents
Stphane Sigmen
for HackerSpace
Introduction
Avec l'arriv de Windows Vista et de Windows 2008, Microsoft a dcid d'inclure la fonctionnalit d'authentification unique (Single Sign-On) au service Terminal Serveur. Bien que cette nouveaut simplifie la vie d'un utilisateur en lui vitant de saisir nouveau son mot de passe lors d'une connexion un bureau distant, nous verrons qu'elle peut aussi simplifier la vie d'un hacker / pen-tester.
Objectifs Section 1
D'o vient l'ide ? Qu'est-ce que le service Terminal Serveur? Nouvelle fonctionnalit Single Sign-On
Mandat client : Rdiger l'architecture d'une ferme de serveurs Remote Desktop sous Windows 2008 R2 incluant :
Est-ce possible d'injecter un Usager/Hash dans la SAM locale d'un de mes postes et d'utiliser celui-ci avec SSO pour se connecter un serveur possdant les mmes crdentials?
Donc, comment profiter de la fonctionnalit SSO pour tendre notre contrle en situation de pentest ?
Service Windows permettant aux usagers de se connecter une session Windows distance et d'obtenir un bureau comme s'ils taient branchs localement. Deux modes de fonctionnement :
Version actuelle pour windows 2008 R2 : RDP version 7 Port de communication : TCP 3389
Clients : 2000 Workstation / XP / Vista / 7 Serveurs : 2000 Serveur / 2003 / 2008 / 2008 R2
Authentification NLA (Network Level Authentication) Communication encrypte SSL / TLS 1.0
Sous Windows 2008 R2, le service Terminal Serveur est renomm par Remote Desktop Services Peu importe le nom, pour Nmap a reste 3389/tcp open microsoft-rdp
Single Sign-On
Mthode permettant un utilisateur de procder une seule authentification pour accder plusieurs applications / systmes informatiques.
A partir de Windows Vista/2008, Microsoft a ajout un nouveau Package d'authentification afin de permettre le SSO.
Le nouveau package appel CredSSP se prsente sous forme de Security Support Provider (SSP)
CredSSP
Systmes d'exploitation
Remote Desktop doit tre activ et configur pour accepter des connexions distantes Paramtres de la connexion RDP-tcp du service:
Security Layer : Negotiate ou SSL (TLS 1.0) Logon Settings : Always prompt for password check box is not selected En passant ce sont les configurations par dfaut :)
Aucune activation ncessaire si le serveur rpond aux pr-requis Par dfaut, si un serveur 2008 ou un poste Vista / 7 coute sur le port TCP 3389, il est accessible avec authentification SSO
Systme d'exploitation
Windows XP SP3 (avec activation CredSSP) Windows Vista / 7 Windows 2008 / 2008 R2
Support du protocol RDP >= 6.1 Support NLA (Network Level Authentication) Client par dfaut de Windows Vista / 7 / 2008
Pour les postes d'un domaine Windows Activation par GPO (Group Policy Object) Computer Configuration->Administrative Templates->Credentials Delegation
Allow Delegating Default Credentials Allow Delegating Default Credentials with NTLMonly
HKLM\SOFTWARE\Policies\Microsoft\Windows\CredentialsDelegation
HKLM\SOFTWARE\Policies\Microsoft\Windows\CredentialsDelegation\AllowDefaultCre dentials
REG_SZ = TERMSRV/*
HKLM\SOFTWARE\Policies\Microsoft\Windows\CredentialsDelegation\AllowDefCredent ialsWhenNTLMOnly
REG_SZ = TERMSRV/*
Schma labo
Objectifs Section 2
Contexte d'exploitation Mthode gnrale d'exploitation tapes d'exploitation de la DEMO Details Unlock Session DEMO (version Hackespace) SSO vs Password Hash Impacts Moyens de dfense Questions ?
Contexte d'exploitation
Mot de passe admin complexe > 14 caractres Pass-The-Hash impossible Accs une ressource restreinte par un ACL Tcp 3389 seulement
Segment de gestion Segment de serveurs hbergeant donnes nominatives / confidentielles Rseau partenaire
Poste compromis avec session verrouill, sans activit depuis longtemps Trop impatient pour attendre le rsultat du keylogger (fin de semaine, vacance des ftes :)
Mthode d'exploitation
Recon Recon Recon Recon Recon .. Intrusion en rgle dans le rseau Recon Recon Recon Recon Recon ... User Session Piggybacking
Obtenir les droits administrateur local Activer SSO Obtenir une session interactive (ex.VNC) Utilser mstsc.exe pour se connecter TS avec les credentials de l'usager.
Scnario Demo
Usager Supertech
Admin du domaine interne TARGET Admin du serveur de la DMZ XSS Java Signed Applet Bypass UAC (pour criture dans registre et injection de code) Activation Remote Desktop SSO Unlock Session utilisateur Obtenir session interactive avec VNC Connexion au serveur avec Credential de l'usager compromis Supertech Transfert d'un payload meterpreter (en mode copy&paste)
Schma labo
3 2
Utilisation de mimikatz.exe
Outils de manipulation des processus Windows l'aide d'injection DLL et d'injection de code en memoire. Klock.dll : dll permettant la manipulation des bureaux windows http://blog.gentilkiwi.com/mimikatz
Winlogon vs lockscreen
Pourquoi est-ce impossible de combiner SSO avec Pass-The-Hash ou injection de hash dans SAM?
Lors de l'utilisation du client RDP, le package d'authentification Credssp n'utilise pas la cache des mots de passe hash stock dans LSA mais plutt sa propre version du mot de passe obtenu lors de l'authentification. Donc si CredSSP n'utilise pas de Hash pour l'authenfication, qu'est-ce qu'il utilise? Credssp conserve et utilise le mot de passe en mmoire ... EN CLAIR!!!
DEMO Exploitation rapide Rcupration des mots de passe en mmoire (en clair)
Contraintes
Il faut compromettre un poste ayant une session ouverte par l'usager cibl.
Impacts
CredSSP est activ par dfaut sur tous les postes Vista / Windows 7
Le SSP wdigest est aussi activ par dfaut sur les postes XP et conserve aussi le mot de passe en clair en mmoire
Mot de passe en clair disponible en mmoire sur tous les postes dans leur configuration par dfaut
Contient aussi les mots de passe des comptes utiliss avec RunAs
Compromettre un serveur Terminal Serveur en mode applicatif permet d'obtenir un maximum de mot de passe en un seul dump (20 users = minimum 20 passwords) Un usager compromis par Social-Engineering ou virus (pourquoi pas) = haute probabilit de leaker son mot de passe en clair.
Dfenses
Sur les postes, dsactiver Credssp et wdigest en les supprimant de la liste des SSP charger au dmarrage.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControl Set\Control\SecurityProviders
Questions?
Rfrences
Enable RDC Client Single Sign-On for Remote Desktop Services http://technet.microsoft.com/en-us/library/cc742808.aspx How to enable Single Sign-On for my Terminal Server connections http://blogs.msdn.com/b/rds/archive/2007/04/19/how-to-enable-single-sign-on-for-my-terminal-serverconnections.aspx XP Clients, CredSSP, SSO, Connection Broker and other animals http://blogs.technet.com/b/mrsnrub/archive/2010/12/16/xp-clients-credssp-sso-connection-broker-and-otheranimals.aspx Book - Windows Internals, Fifth Edition http://www.microsoft.com/learning/en/us/book.aspx?id=12069&locale=en-us Metasploit http:/www.metasploit.com/ Mimikatz http://blog.gentilkiwi.com/mimikatz