Qu’est-ce que l’exploitation de logiciels ? Comment commencer à l’apprendre ?


L'exploitation de logiciels consiste essentiellement à trouver des failles telles que les Buffer Overflows, Use After Free et ainsi de suite, dans les produits logiciels et à les exploiter.

Par exemple, VLC Media Player, est un célèbre lecteur multimédia pour lire différents types de médias.


Une vulnérabilité peut exister lors de la lecture de fichiers multimédia avec des données invalides/ ou des noms de fichiers avec des noms longs (noms de fichiers de 1000 caractères).
Si un traitement approprié des exceptions n'est pas effectué dans le logiciel, cela entraînerait un crash.

Donc, une fois qu'il s'est écrasé, votre objectif devrait être de trouver la valeur des registres écrasés, et de modifier EIP de telle manière, qu'il pointe vers votre shellcode.

Certaines des ressources, je vous suggérerais de jeter un coup d'œil aux tutoriels d'écriture d'exploit du site de l'équipe Corelan's, ainsi qu'aux tutoriels sur The Grey Corner. Il existe également d'excellents documents sur Packet Storm et Exploits Database par Offensive Security. Jetez-y un coup d'œil si vous le souhaitez.

Au cas où, vous n'auriez pas de compréhension préalable du langage assembleur, du débogage, vous devez voir le site de Vivek's Welcome to SecurityTube.net en commençant par le Megaprimer de la manière suivante :

  1. Assembly Language Primer for Linux
  2. Assembly Language Primer for Windows
  3. Buffer Overflow MegaPrimer
  4. Format String Vulnerabilities
  5. Exploit Research.

Une fois que vous avez terminé avec succès la pratique de toutes les vidéos, vous êtes maintenant prêt à sauter dans l'exploitation de logiciels avec comme mentionné précédemment l'équipe Corelan. Vous pouvez également consulter The ShellCoder's Handbook - ils ont une assez bonne approche de l'exploitation logicielle globale sur diverses cibles.

Bonne chance !