Protéger ses applications



Documents pareils
Le principe du moindre privilège appliqué aux systèmes Windows

EdelWeb. OSSIR Groupe SécuritS. curité Windows. Réunion du du 8 novembre EdelWeb/Groupe ON-X. Réunion OSSIR du 08/11/2004.

Service Informatique et Télématique (SITEL), Emile-Argand 11, 2009 Neuchâtel, Tél ,

Préconisations Techniques & Installation de Gestimum ERP

Formateurs : Jackie DAÖN Franck DUBOIS Médiapôle de Guyancourt

Guide d'installation. Release Management pour Visual Studio 2013

Les messages d erreur d'applidis Client

Symantec Backup Exec 12.5 for Windows Servers. Guide d'installation rapide

FORMATION PcVue. Mise en œuvre de WEBVUE. Journées de formation au logiciel de supervision PcVue 8.1. Lieu : Lycée Pablo Neruda Saint Martin d hères

Le modèle de sécurité windows

laissez le service en démarrage automatique. Carte de performance WMI Manuel Désactivé Vous pouvez désactiver ce service.

Installation de Windows 2000 Serveur

Acronis Backup & Recovery 10 Advanced Server Virtual Edition. Guide de démarrage rapide

Septembre 2012 Document rédigé avec epsilonwriter

HP Data Protector Express Software - Tutoriel 4. Utilisation de Quick Access Control (Windows uniquement)

Mise en route et support Envision 10 SQL server (Avril 2015) A l'intention de l'administrateur SQL Server et de l administrateur Envision

Installation de Windows 2003 Serveur

Projet : PcAnywhere et Le contrôle à distance.

contact@nqicorp.com - Web :

Procédure d installation :

Hyper-V et SC Virtual Machine Manager sous Windows Server 2008 R2

EA D S INNOVA TION W ORKS. Pass The Hash. Nicolas RUFF EADS-IW SE/CS nicolas.ruff (à) eads.net

STATISTICA Version 12 : Instructions d'installation

OSSIR Groupe SécuritS. curité Windows. Réunion du du février 2006 EADS. Réunion OSSIR du 13/02/2006. page 1

Installation ou mise à jour du logiciel système Fiery

Managed VirusScan et renforce ses services

Qu'est-ce que c'est Windows NT?

Assistance à distance sous Windows

Tutorial Terminal Server sous

VERITAS Backup Exec TM 10.0 for Windows Servers

LES ACCES ODBC AVEC LE SYSTEME SAS

KASPERSKY LABS. Kaspersky Administration Kit 6.0. Guide de deploiement

JetClouding Installation

Symantec Backup Exec TM 11d for Windows Servers. Guide d'installation rapide

Manuel d'installation de GESLAB Client Lourd

Prérequis. Résolution des problèmes WMI. Date 03/30/2010 Version 1.0 Référence 001 Auteur Antoine CRUE

Cyberclasse L'interface web pas à pas

HP Data Protector Express Software - Tutoriel 3. Réalisation de votre première sauvegarde et restauration de disque


TeamViewer 7 Manuel Manager

COMMENT INSTALLER LE SERVEUR QIPAIE

Comment configurer Kubuntu

CARPE. Documentation Informatique S E T R A. Version Août CARPE (Documentation Informatique) 1

Spécifications du logiciel. Mise à jour : 24 février 2011 Nombre total de pages : 7

Symantec Backup Exec Remote Media Agent for Linux Servers

MS 2615 Implémentation et support Microsoft Windows XP Professionnel

Guide de l administrateur DOC-OEMCS8-GA-FR-29/09/05

Cours 420-KEG-LG, Gestion de réseaux et support technique. Atelier 1. Installation de Windows Server 2003 Standard Edition (pour le serveur)

Microsoft Application Center Test

Manuel du logiciel PrestaTest.

La double authentification dans SharePoint 2007

ORTIZ Franck Groupe 4. Terminal serveur pour administrer un serveur Windows à distance, client rdp linux.

Corrigé de l'atelier pratique du module 3 : Récupération d'urgence

Faille dans Internet Explorer 7

Documentation utilisateur, manuel utilisateur MagicSafe Linux. Vous pouvez télécharger la dernière version de ce document à l adresse suivante :

LANDPARK NETWORK IP LANDPARK NETWORK IP VOUS PERMET D'INVENTORIER FACILEMENT VOS POSTES EN RÉSEAU

Module 0 : Présentation de Windows 2000

ésylog, direction technique Esylog_PeerBackup outil de sauvegarde individuelle mails & fichiers personnels documentation technique

56K Performance Pro Modem

Les Audits. 3kernels.free.fr 1 / 10

Installation du client Cisco VPN 5 (Windows)

Système Normalisé de Gestion des Bibliothèques -SYNGEB : version Réseau-

contact@nqicorp.com - Web :

Accès à un coupleur/contrôleur Ethernet via une liaison téléphonique

Instructions d installation de MS SQL Server pour Sage 50 Classement et Gestion commerciale. Sage Suisse SA Avenue Mon-Repos Lausanne

Pré-requis pour les serveurs Windows 2003, Windows 2008 R2 et Windows 2012

Responsabilités du client

GUIDE ADMINISTRATEUR SUR L ASSISTANCE A DISTANCE WINDOWS : CAS DE EXCENT GROUPE

Windows Front-End Installation Guide HOPEX V1R1 FR

FileMaker 13. Guide ODBC et JDBC

Installation et Réinstallation de Windows XP

Cours 420-KEG-LG, Gestion de réseaux et support technique. Atelier No2 :

But de cette présentation

IP Office Installation et utilisation de MS-CRM

FICHE PEDAGOGIQUE. Questions à poser. - Avant de démarrer l ordinateur,

Didacticiel de mise à jour Web

Installation de Windows Vista

Windows 2000: W2K: Architecture. Introduction. W2K: amélioration du noyau. Gamme windows W2K pro: configuration.

Utilisation d'un réseau avec IACA

2010 Ing. Punzenberger COPA-DATA GmbH. Tous droits réservés.

Suite logicielle ZOOM version 7.1 Guide d installation 94ZM-ZMJ1F-712

Préparation à l installation d Active Directory

Installation de Bâtiment en version réseau

Installation du client Cisco VPN 5 (Windows)

GPI Gestion pédagogique intégrée

Sophos Endpoint Security and Control Guide de démarrage réseau

Directives d installation

Symantec Backup Exec Guide d'installation rapide

SQL Server Installation Center et SQL Server Management Studio

Guide de configuration de SQL Server pour BusinessObjects Planning

Cahier Technique Envoi par à partir des logiciels V7.00

FileMaker Pro 13. Utilisation d une Connexion Bureau à distance avec FileMaker Pro 13

Sage 50 Version 2014 Guide d installation. Sage Suisse SA

Mise à jour de version

Procédure d'installation de SQL Server Express 2005

Mobilité, quand tout ordinateur peut devenir cheval de Troie

Transcription:

Protéger ses applications contre l'élévation privilèges Nicolas RUFF Ingénieur Chercheur en sécurité EADS-CCR page 1

Introduction Les Les enjeux enjeux la la sécurité loca loca Qui Qui peut peut vouloir vouloir éver éver ses ses privilèges privilèges? Les Les virus virus exécutés exécutés s s utilisateurs utilisateurs non non administrateurs administrateurs Les Les utilisateurs utilisateurs s s terminaux terminaux en en libre libre service service Les Les utilisateurs utilisateurs clients clients légers légers (type (type Terminal Terminal Server) Server) Dans Dans l'idéal, l'idéal, l'utilisateur ne ne vrait vrait pas pas être être administrateur local local son son poste poste Microsoft Microsoft en en a pris pris conscience conscience et et travail travail sur sur s s solutions solutions Comman Comman RunAs RunAs Jeton Jeton "Restricted" "Restricted" Groupe Groupe "network "network operators" operators" pour pour s s nomas nomas Futur Futur Visual Visual Studio Studio 2005 2005 Rappel Rappel il il n'est n'est pas pas nécessaire nécessaire d'être d'être administrateur administrateur local local pour pour déboguer déboguer un un processus processus!! page 2

Objectifs la présentation Présenter s s erreurs "classiques" dans s s applications Méthos d'élévation privilèges Utilisateur Utilisateur -> -> Administrateur Administrateur Administrateur Administrateur -> -> SYSTEM SYSTEM Avec Avec s s exemps issus issus cas cas réels réels Donner s s solutions En En général simps Mais Mais requièrent la la plus plus gran attention Un Un simp simp guilmet guilmet oublié oubliépeut ouvrir ouvrir une une fail fail!! page 3

Plan Hypothèses Techniques d'élévation privilèges L'interface graphique Les Les interfaces communications Canaux Canaux nommés nommés LPC LPC Divers Divers Recommandations Recommandations généras généras L'ordre recherche s s exécutabs Conclusion Bibliographie Remerciements page 4

Hypothèses Les Les attaques physiques sont exclues l'étu Si Si l'utilisateur peut peut redémarrer poste poste sur sur un un support externe, il il pourra pourra en en prendre contrô Exemps Supports Supports bootabs bootabs CD, CD, disquette, disquette, clé cléusb, disque disque FireWire, FireWire, Outils Outils BartPE, BartPE, ERD ERD Commanr, Commanr, Auditor, Auditor, Le Le système est est protégé "à "àl'état l'art" En En ticulier, à jour jour s s correctifs sécurité page 5

L'interface graphique page 6

L'interface graphique (1/10) Contexte Une Une famil famil d'attaques appelée "shatter attacks" "Découverte" en en 2002 2002 (?) (?) Conditions d'existence Un Un "objet" (en (en général graphique) aptient aptient à un un processus processus privilégié privilégié (ex. (ex. SYSTEM) SYSTEM) accepte accepte s s messages messages provenant provenant d'un d'un processus processus utilisateur utilisateur crée crée s s processus processus ou ou redirige redirige son son flot flot d'exécution d'exécution en en fonction fonction du du contenu contenu d'un d'un message message Volontairement Volontairement (ex. (ex. WM_TIMER) WM_TIMER) Involontairement Involontairement (ex. (ex. "buffer "buffer overflow") overflow") page 7

L'interface graphique (2/10) Exemp n 1 (trivial mais vrai) Un Un processus SYSTEM affiche une une popup L'utilisateur presse F1 F1 Dans menu d'ai il il choisit "Jump to to url url CMD.EXE" Le Le shell qui qui apaît est est SYSTEM Cf. UTILMAN.EXE, qui peut être invoqué en en appuyant 5 fois sur la la touche "shift" Corrigé MS03-025 page 8

L'interface graphique (3/10) Exemp n 2 n 2 s s fonctions callback Message WM_TIMER envoyé à une une fenêtre WPARAM WPARAM TimerID, TimerID, LPARAM LPARAM lpfncallback lpfncallback La La fonction callback est est appelée avec avec s s droits droits la la cib cib Sauf Sauf si si message message est est intercepté intercepté l'application l'application (rare) (rare) Comportement corrigé MS02-071 Mais Mais il il existe existe d'autres d'autres messages messages utilisant utilisant s s fonctions fonctions Callback Callback Ex. Ex. LVM_SORTITEMS, LVM_SORTITEMS, LVM_SORTITEMSEX, EM_SETWORDBREAKPROC page 9

L'interface graphique (4/10) Exemp n 3 n 3 s s pointeurs données Certains messages fournissent un un pointeur vers vers la la zone zone sortie sorties résultats Il Il est est alors alors possib d'écrire dans dans la la mémoire avec avec s s droits droits la la cib cib Ex. Ex. message HDM_GETITEMRECT lparam lparampointe vers vers une une structure structure type type RECT RECT Attaque réel réel sur sur s s stys stys Windows XP XP "CommCtrl "CommCtrl6.0 6.0 Button ButtonShatter ShatterAttack" Cette Cette attaque est est en en général "multi-stages" Un Un message message met met en en place place la la structure structure cib cib Un Un autre autre message message provoque provoque l'écriture l'écriture page 10

L'interface graphique (5/10) Exemp n 4 n 4 pointeurs fonction dans s s zones données "user fined" Exemp s s données privées privées d'une d'une fenêtre fenêtre API API SetWindowLong() SetWindowLong() // SetWindowLongPtr() Message Message GWL_USERDATA GWL_USERDATA Le Le service service Messenger est est vulnérab Corrigé Corrigé MS04-032 MS04-032 L'API L'API AfxOldWndProc423() serait serait égament vulnérab Utilisée Utilisée pour pour sous sous classer classer s s fenêtres fenêtres non-mfc non-mfcdans une une fenêtre fenêtre MFC MFC page 11

L'interface graphique (6/10) Le Le problème global s s objets graphiques Ils Ils aptiennent au au bureau l'utilisateur qui qui peut peut modifier modifier ur ur comportement comportement qui qui peut peut ur ur envoyer envoyer s s messages messages Il Il ne ne faut faut pas pas ur ur faire confiance!! Les Les cases cases grisées peuvent être être réactivées Les Les fenêtres masquées peuvent être être affichées Ex. Ex. contournement contournement du du mot mot passe passe dans dans KAV KAV v5.0.149, v5.0.149, v5.0.153 v5.0.153 Le Le contenu du du texte texte masqué peut peut être être obtenu Ex. Ex. outils outils Revelation, Revelation, Asterisk AsteriskLogger La La tail tail limite limite texte texte peut peut être être modifiée Ex. Ex. un un message message WM_USER WM_USER envoyé envoyéau au service service "Still "StillImage" provoque provoque un "buffer un "bufferoverflow" (corrigé (corrigé MS00-065) MS00-065) page 12

L'interface graphique (7/10) De De nombreuses applications sont sont concernées Kerio KerioPersonal PersonalFirewall Firewall2.1.4 Sygate SygatePersonal PersonalFirewall FirewallPro Pro 5.0 5.0 McAfee McAfeeVirusScan VirusScan7.0 7.0 WinVNC WinVNC3.3.6 Y compris s s applications Microsoft Le Le fameux fameux UTILMAN UTILMAN NetDDE NetDDEcrée une une fenêtre fenêtre aptenant aptenant à WINLOGON WINLOGON La La fenêtre fenêtre "MM "MM Notify NotifyCallback" aptient aptient à WINLOGON WINLOGON Le Le service service "Messenger" "Messenger" crée crée une une fenêtre fenêtre aptenant aptenant à CSRSS CSRSS Ex. Ex. net net send send localhost localhost "hello" "hello" affiche affiche une une fenêtre fenêtre SYSTEM SYSTEM page 13

L'interface graphique (8/10) Une Une compxité supplémentaire s s sessions multips Principe accès accès graphique simultané plusieurs utilisateurs Utilisé Utilisé "Remote "RemoteDesktop" "Terminal "Terminal Server" Server" "Fast "FastUser Switching" Switching" Outils Outils tiers tiers tels tels que que "Superior "SuperiorSU" SU" Implémentation Fenêtre Fenêtre applicative applicative Bureau Bureau Window WindowStation Station Session Session page 14

Session Window Station Bureau Bureau Session Application Window Bureau Application Window Application Window Application Window Application Window Window Station Bureau Bureau Application Window Bureau Application Window Application Window Application Application Window Window Application Window Application Window WM_INPUT WM_KEYSTROKE WM_INPUT WM_KEYSTROKE Win32K.SYS Null Device Win32K.SYS Clavier, souris, Réunion OSSIR écrans du 13/06/2005 locaux page 15

L'interface graphique (9/10) Session Session Conserve Conserve l'état l'état global global l'interface l'interface graphique graphique Reçoit Reçoit s s entrées/sorties entrées/sorties Window WindowStation (ex. (ex. winsta0) winsta0) Gère Gère presse-papiers presse-papiers Une Une seu seu Window Window Station Station est est active active sur sur la la conso conso à à un un instant instant T T Bureau Bureau Plusieurs Plusieurs bureaux bureaux existent existent simultanément simultanément Ex. Ex. applications, applications, SAS SAS (winsta0\winlogon), (winsta0\winlogon), écran écran veil veil Seus Seus s s fenêtres fenêtres du du même même bureau bureau peuvent peuvent communiquer communiquer entre entre els els Outil Outil LogonSessions LogonSessions SysInternals SysInternals page 16

L'interface graphique (10/10) Recommandations Les Les objets objets graphiques graphiques doivent doivent être être créés créés dans dans contexte contexte sécurité sécurité l'utilisateur l'utilisateur Principe Principe séation séation s s privilèges privilèges Attention Attention au au RevertToSelf() RevertToSelf() Ne Ne pas pas envoyer envoyer données données sensibs sensibs dans dans l'espace l'espace utilisateur utilisateur Mots Mots passe passe masqués masqués Fenêtres Fenêtres masquées masquées Ne Ne pas pas rendre rendre s s services services "interactifs" "interactifs" sauf sauf exception exception Rappel Rappel contrô contrô l'interactivité l'interactivité Par Par service service flag flag SERVICE_INTERACTIVE_PROCESS SERVICE_INTERACTIVE_PROCESS (0x100) (0x100) Globament Globament la la clé clé HKLM\SYSTEM\CCS\Control\Windows\NoInteractiveServices HKLM\SYSTEM\CCS\Control\Windows\NoInteractiveServices Vérification Vérification la la comman comman "sc "sc query query type= type= interact" interact" Si Si besoin besoin d'interactivité, d'interactivité, utiliser utiliser un un bureau bureau différent différent page 17

Les interfaces communication page 18

Les canaux nommés s (1/5) Rappel qu'est-ce qu'un canal nommé? Canal Canal communication interprocessus (IPC) (IPC) Local Local ou ou distant distant (via (via SMB) SMB) Implémenté sous sous forme forme "fisystem driver" driver" Pilote Pilote NPFS.SYS NPFS.SYS Accès Accès via via "\\<machine>\pipe\<nom canal>" canal>" Avantages Avantages Sémantique Sémantique intique intique à à cel cel d'un d'un système système fichiers fichiers Bénéficie Bénéficie du du système système d'acls d'acls Outils Outils Pas Pas d'outil d'outil Microsoft Microsoft Outils Outils tiers tiers PIPELIST, PIPELIST, PIPEACL PIPEACL page 19

Les canaux nommés s (2/5) Contexte Une Une famil famil d'attaques d'attaques basée basée sur sur l'usurpation l'usurpation d'un d'un canal canal nommé nommé "Découverte" "Découverte" en en 2000 2000 (?) (?) MS00-053 MS00-053 canal canal nommé nommé prédictib prédictib utilisé utilisé SCM SCM Conditions d'existence Un Un client client avec avec un un niveau niveau privilège privilège évé évé (ex. (ex. SYSTEM) SYSTEM) se se connecte connecte sur sur un canal un canal nommé nommé Ce Ce canal canal n'existe n'existe pas pas initiament initiament ou ou limite limite nombre nombre d'instances d'instances simultanées simultanées Le Le nom nom du du canal canal est est prédictib prédictib Le Le niveau niveau d'impersonation d'impersonationn'est n'est pas pas limité limité client client Rappel Rappel s s niveaux niveaux QoS QoS Anonymous, Anonymous, Intification, Intification, Impersonation, Impersonation, Degation Degation Ces Ces niveaux niveaux sont sont passés passés dans dans amètre amètre dwflagsandattributes dwflagsandattributes CreateFi() CreateFi() exemp exemp page 20

Les canaux nommés s (3/5) Les Les services services pouvant pouvant être être démarrés démarrés un un utilisateur utilisateur non non privilégié privilégiésont sont s s cibs intéressantes cibs intéressantes Intifiabs Intifiabs la la comman comman "sc "sc sdshow" sdshow" Utilisent Utilisent souvent souvent s s canaux canaux nommés nommés cf. cf. outils outils PIPELIST, PIPELIST, PIPEACL PIPEACL Exemps Exemps réels réels exploitabs exploitabs via via l'api l'apiimpersonatenamedpipeclient() MS00-053 MS00-053 canal canal nommé nommé prédictib prédictib utilisé utilisé Service Service Control Control Manager Manager \\.\pipe\net\ntcontrolpipex \\.\pipe\net\ntcontrolpipex X X est est incrémenté incrémenté à à chaque chaque démarrage démarrage service service MS01-031 MS01-031 canal canal nommé nommé prédictib prédictib au au démarrage démarrage du du service service Telnet Telnet CAN-2003-0496 CAN-2003-0496 abus abus la la procédure procédure 'xp_fiexist' 'xp_fiexist' dans dans SQL SQL Server Server Permet Permet d'obtenir d'obtenir s s droits droits du du processus processus SQL SQL Server Server Corrigé Corrigé l'ajout l'ajout du du privilège privilège SeImpersonatePrivige SeImpersonatePrivige dans dans Windows Windows 2000 2000 SP4+ SP4+ (cf. (cf. Q821546) Q821546) page 21

Les canaux nommés s (4/5) Ça se se complique La La connexion à un un canal nommé et et l'ouverture d'un d'un fichier utilisent la la même API API CreateFi() Ex. Ex. la la comman "runas "runascmd.exe" est est traitée traitée service RunAs RunAs donc donc la la comman "runas "runas\\.\pipe\hacker" permet permet (théoriquement) gagner s s droits droits SYSTEM!! Théoriquement l'impersonation n'est possib qu'après la la première cture/écriture Différence entre entre \\.\pipe \\.\pipe et et \\machine\pipe la la contrainte est est vée vée dans dans uxième cas cas!! page 22

Les canaux nommés s (5/5) Le Le serveur serveur vérifie-t-il vérifie-t-il co co retour retour ImpersonateNamedPipeClient? Si Si client client man man SecurityAnonymous, SecurityAnonymous, l'appel l'appel échoue échoue Dans Dans ce ce cas cas co co continue continue à à s'exécuter s'exécuter dans dans contexte contexte précént précént (SYSTEM (SYSTEM?)?) Si Si un un nouveau nouveau processus processus enregistre enregistre même même canal canal Les Les connexions connexions supplémentaires supplémentaires au au là là du du nombre nombre d'instances d'instances simultanées simultanées sont servies sont servies ce ce nouveau nouveau processus processus Recommandations Ne Ne pas pas tomber tomber dans dans s s pièges pièges précénts précénts Créer Créer s s instances instances avec avec flag flag FILE_FLAG_FIRST_PIPE_INSTANCE Windows Windows 2000 2000 SP2+, SP2+, Windows Windows XP XP Ne Ne pas pas abuser abuser du du privilège privilège SeImpersonatePrivige Windows Windows 2000 2000 SP4+ SP4+ (Q821546), (Q821546), Windows Windows XP XP SP2 SP2 page 23

LPC (1/2) Quelques fails classiques dans s LPC Droits d'accès trop trop laxistes Vulnérabilités dans l'implémentation (noyau et et clients) Numéros messages prédictibs Appel Appel à NtImpersonateClientOfPort() permettant spécifier n'importe quel quel processus cib cib Non Non utilisation du du hand handretourné NtAcceptConnectPort() Etc. Etc. etc. etc. Cf. Cf. travaux Todd Todd Sabin Sabin sur sur Windows NT4 NT4 page 24

LPC (2/2) Vulnérabilités Vulnérabilités dans dans l'implémentation l'implémentation noyau noyau s s LPC LPC Différentes Différentes exploitations exploitations l'api l'api NtImpersonateClientOfPort() NtImpersonateClientOfPort() Corrigé Corrigé MS00-003 MS00-003 et et MS00-091 MS00-091 Vulnérabilité Vulnérabilitéapplicative applicative NTLMSSP NTLMSSP Problème Problème d'inx d'inx non non vérifié vérifié Port Port NtLmSecuritySupportProvirPort NtLmSecuritySupportProvirPort Corrigé Corrigé MS01-008 MS01-008 Droits Droits d'accès d'accès laxistes laxistes DebPloit DebPloit Lors Lors d'un d'un déboguage, déboguage, Session Session Manager Manager (SMSS.EXE) (SMSS.EXE) communique communique LPC LPC Port Port DbgSsApiPort DbgSsApiPort Ce Ce port port possè possè une une ACL ACL incorrecte incorrecte "Tout "Tout mon" mon" peut peut s'y s'y connecter connecter avec avec ZwConnectPort( ZwConnectPort( DbgSsApiPort DbgSsApiPort ) ) Corrigé Corrigé MS02-024 MS02-024 page 25

Divers (1/1) Les Les communications communications avec avec noyau noyau Communication Communication Ring3/Ring Ring3/Ring 0 0 via via l'api l'api DeviceIoControl() DeviceIoControl() En En mo mo "Neither "Neither I/O", I/O", buffer buffer passé passé en en amètre amètre peut peut être être n'importe n'importe quel quel adresse mémoire adresse mémoire Le Le driver driver doit doit opérer opérer ses ses propres propres contrôs contrôs Exemp Exemp pilote pilote exploitab exploitab NAV NAV 2002 2002 Cf. Cf. travaux travaux S. S. K. K. Chong Chong Les Les espaces espaces mémoire mémoire tagés tagés API API OpenFiMapping() OpenFiMapping() / / MapViewOfFi() MapViewOfFi() Les Les droits droits d'accès d'accès à à s s espaces espaces mémoire mémoire tagés tagés peuvent peuvent être être trop trop laxistes laxistes Ces Ces espaces espaces sont sont fois fois utilisés utilisés pour pour s s communications communications Ring0/Ring3 Ring0/Ring3 (!) (!) Exemp Exemp MS05-012 MS05-012 "COM "COM Structured Structured Storage Storage Vulnerability" Vulnerability" Cf. Cf. travaux travaux Cesar Cesar Cerrudo Cerrudo Les Les RPC RPC Non Non présenté présenté ici ici mais mais attention attention néanmoins néanmoins page 26

Recommandations généras g (1/1) Recommandations Vérifier que que s s points communication (même non non documentés) sont sécurisés ACL ACL (en (en local) local) Authentification du du client client + ACL ACL (à (àdistance) Dans Dans doute, doute, ne ne pas pas utiliser utiliser s s ACLs ACLs défaut défaut Ne Ne pas pas faire confiance aux aux données provenant d'un d'un niveau privilège inférieur Même Même si si ces ces données ne ne sont sont pas pas théoriquement "visibs" l'utilisateur page 27

La recherche d'exécutabs page 28

La recherche d'exécutabs (1/5) Contexte Nommer Nommer un un fichier fichier n'est n'est pas pas une une opération opération trivia trivia Compatibilité Compatibilité 8.3 8.3 Problème Problème s s séateurs séateurs (espaces, (espaces, / / vs. vs. \) \) Caractères Caractères localisés localisés et et noms noms Unico Unico (préfixe (préfixe \\?\) \\?\) Liens Liens symboliques symboliques et et "hard "hard links" links" Alternate Alternate Data Data Streams Streams L'ordre L'ordre recherche recherche s s EXE EXE et et DLL DLL peut peut être être configuré configuré Conditions d'existence Un Un exécutab exécutab lancé lancéavec avec s s privilèges privilèges évés évés (typiquement (typiquement un un service) service) est est désigné désigné un un chemin chemin ambigu ambigu Un Un exécutab exécutab lancé lancéavec avec s s privilèges privilèges évés évés charge charge s s dépendances dépendances "au "au mauvais mauvais endroit" endroit" page 29

La recherche d'exécutabs (2/5) Erreurs classiques Chemins contenant un un espace Ex. Ex. HKLM\SYSTEM\CurrentControlSet\Services\MonService\ KO KO ImagePath=C\Program ImagePath=C\Program Fis\Mon Fis\Mon Service\MonService.exe Service\MonService.exe OK OK ImagePath="C\Program ImagePath="C\Program Fis\Mon Fis\Mon Service\MonService.exe" Service\MonService.exe" Dans Dans premier premier cas, cas, "C\Program.exe" "C\Program.exe" est est exécuté exécutés'il s'il existe existe Exemp Exemp d'application d'application vulnérab vulnérab MS MS AntiSpyware AntiSpywareBeta Beta1 La La pire pire erreur erreur serait serait d'instalr d'instalr Windows Windows dans dans un un chemin chemin contenant contenant s s espaces espaces Ex. Ex. "C\Win "C\Win XP" XP" page 30

La recherche d'exécutabs (3/5) Ordre Ordre recherche s s EXEs EXEs Répertoire Répertoire courant courant %SystemRoot%\System32 %SystemRoot% %SystemRoot% Reste Reste du du %PATH% %PATH% Note Note sous sous Unix, Unix, ajouter ajouter "." "." dans dans PATH PATH l'administrateur l'administrateur est est considéré comme considéré comme une une fail fail sécurité sécurité D'où D'où problème s s "chemins incompts" Ex. Ex. clé cléshell = "Explorer.exe" "Explorer.exe" Lors Lors du du démarrage démarrage du du système, système, %SystemDrive% %SystemDrive% est est répertoire répertoire courant courant Si Si fichier fichier C\Explorer.exe C\Explorer.exe existe, existe, il il sera sera utilisé utilisé comme comme shell shell utilisateur utilisateur WINLOGON WINLOGON Correctif Correctif MS02-064 MS02-064 groupe groupe "tout "tout mon" mon" ne ne peut peut plus plus créer créer fichiers fichiers dans dans la racine la racine page 31

La recherche d'exécutabs (4/5) Ordre Ordre recherche recherche s s DLLs DLLs Si Si la la clé clé "HKLM\System\CCS\Control\Session "HKLM\System\CCS\Control\Session Manager\KnownDLLs" Manager\KnownDLLs" existe existe %SystemRoot%\system32 %SystemRoot%\system32 Répertoire Répertoire l'exécutab l'exécutab Répertoire Répertoire courant courant %SystemRoot% %SystemRoot% %PATH% %PATH% Sinon Sinon Répertoire Répertoire l'exécutab l'exécutab Répertoire Répertoire courant courant %SystemRoot%\system32 %SystemRoot%\system32 %SystemRoot% %SystemRoot% %PATH% %PATH% Cf. Cf. Q164501 Q164501 page 32

La recherche d'exécutabs (5/5) Ordre recherche s s DLLs (suite) Clé CléSafeDllSearchMo (Windows 2000 2000 SP3+) SP3+) Toujours Toujours rechercher rechercher %SystemRoot%\system32 et et %SystemRoot% %SystemRoot% en en premier premier Fichier Fichier.exe.local dans dans répertoire l'application Force Force chargement chargement s s DLLs DLLsà tir tir du du répertoire répertoire courant courant Recommandations La La plut s s problèmes se se posent lorsque l'utilisateur peut ajouter s s fichiers dans répertoire courant l'application page 33

Conclusion Créer Créer s s applications exécutées sous sous un un compte privilégié impose un un voir voir rigueur Les Les pièges pièges sont sont nombreux et et méconnus De De plus, plus, comportement comportement du du système système varie varie selon selon la la version version Windows Windows et et sa sa configuration configuration Tous Touss s pièges pièges n'ont n'ont pas pas été étéabordés ici ici Le Le service service AT AT lance lance s s tâches tâches sous sous compte compte SYSTEM SYSTEM L'installation L'installation pilotes pilotes d'imprimante d'imprimante permet permet charger charger s s modus modus noyau noyau Etc. Etc. Mais Mais j'espère que que cette cette présentation vous vous sera sera profitab!! page 34

Bibliographie Shatter Attacks Shatter Attacks --How Howto to break break Windows http//security.tombom.co.uk/shatter.html Shattering By By Examp http//www.security-assessment.com/papers/shattering_by_examp- V1_03102003.pdf V1_03102003.pdf Win32 Win32 Message Vulnerabilities Redux Redux http//www.ifense.com/idpapers/shatter_redux.pdf Shooting the themessenger http//www.blackhat.com/presentations/bh-usa-04/bh-us-04-moore/bh-us- 04-moore-whitepaper.pdf page 35

Bibliographie Canaux nommés Discovering and and Exploiting Named Named Pipe Pipe Security Flaws Flaws for for Fun Fun and and Profit Profit http//www.blakewatts.com/namedpipepaper.html Les Les travaux travaux Blake Blake Watts Watts sont sont la la référence référence dans dans domaine domaine Pipes Pipes http//msdn.microsoft.com/library/fault.asp?url=/library/enus/ipc/base/pipes.asp RPC Writing a Secure RPC RPC Client Client or or Server Server http//msdn.microsoft.com/library/enus/rpc/rpc/writing_a_secure_rpc_client_or_server.asp page 36

Bibliographie LPC LPC http//www.bindview.com/support/razor/advisories/2000/adv_ntpromotion.cf m http//www.bindview.com/support/razor/advisories/2000/lpcadvisory.cfm http//www.bindview.com/support/razor/advisories/2001/adv_ntlmssp.cfm DeviceIoControl() http//www.bellua.com/bcs2005/asia05.archive/bcsasia2005-t04-sk- Windows_Local_Kernel_Exploitation.ppt http//sec-labs.hack.pl/papers/win32ddc.php Exemp Exemp NAV NAV 2002 2002 http//www.scan-associates.net/papers/navx.c http//www.scan-associates.net/papers/navx.c En En chinois chinois dans dans texte texte http//www.xfocus.net/artics/200306/545.html http//www.xfocus.net/artics/200306/545.html page 37

Bibliographie Espaces mémoire tagés http//www.bellua.com/bcs2005/asia05.archive/bcsasia2005- T05-Cesar-Windows_IPC_Exploitation.ppt Writing Secure Co, 2 nd nd Ed. Michael Howard, David LeBlanc http//www.microsoft.com/mspress/books/5957.asp page 38