Formation

Développement d’outils d’intrusion ciblant Windows

Objectifs

Fini le temps où il suffisait de dropper metasploit et mimikatz sur un poste cible pour récupérer les mots de passe et pivoter derrière.  

De nos jours, les AVs et EDRs scannent agressivement les processus créés pour y détecter les intrusions, et Windows tente de se protéger via un nombre important de contremesures récemment introduites (AppContainer, ProtectedProcess, AMSI, etc.). C’est pourquoi il devient de plus en plus nécessaire pour un pentester de pouvoir se construire un outillage d’intrusion personnalisé sous Windows afin de passer sous le radar des solutions de sécurité lors de ses missions de redteam.

 

Au cours de cette formation les élèves apprendront à utiliser les APIs bas niveau de Windows afin d'effectuer de manière furtive des opérations considérées comme hostiles sur le système ciblé. Ils apprendront aussi à manipuler les outils traditionnels de diagnostic système tel qu'un débuggeur applicatif dans le but de résoudre les problèmes inhérents au développement d'outils d'intrusions. Enfin ils seront exposés au modèle de sécurité de Windows et à la façon dont le système d'exploitation est architecturé du côté espace utilisateur.

 

L'introduction au développement d’outils d’intrusions personnalisés pour Windows est une formation de niveau avancé conçue pour les pentesters, les développeurs sous Windows et les équipes de sécurité. Il est recommandé de savoir écrire du C et de connaître le modèle de mémoire associé pour y participer.

 

5 jours / 8 heures de théorie / 27 heures de pratique

Contenu

1ère Partie (1j)

 

  • Accueil et démarrage des environnements de travail. (Des laptops avec des VMs préinstallées sont fournis aux élèves)
  • Présentation du format PE et des moyens de diagnostics sous Windows.
  • Utilisation basique d'un debugger (x64dbg et WinDBG)

 

2nde Partie (3j)

 

  • Toolchain VisualStudio

  • Dévelopement natif Windows (Win32):

    • API native

    • WinAPI :

      • Process & Threads

      • IPC

      • Registre

      • Services

      • CryptoAPI

      • Networking

  • Injection de code:

    • CreateRemoteThread

    • ProcessHollowing

    • Thread Hijacking

    • DLL Reflective

    • APC Injection

  • Persistence

  • Hooking

     

Cette partie est le coeur de la formation. Le but au bout des 3 jours est de fournir aux élèves un prototype de RAT sur lequel ils peuvent itérer, notamment pour tester des techniques d'injection ou de persistance.

 

3ème Partie (1j)

 

Cette partie s'articule autour de la présentation du modèle de sécurité de Windows (niveau d'intégrité, token, security descriptor, SID, etc.). Cela complète la présentation des API dans les jours précédents et fournit aux élèves des pistes pour comprendre pourquoi certaines actions sur le système sont interdites.

 

  • Modèle de Securité

    • SID

    • ACL

    • Privileges

    • Token

    • UAC

    • Sessions

    • Integrity Level

  • Technologies récemment introduites dans Windows

    • AMSI

    • SmartScreen

    • Protected Process

    • ATP