Last update: 29/05/2007


EtatStable
Version1.10
Mise à jour29/05/2007

Projet WiShMaster
"WiShMaster" est un outil permettant de générer des shellcodes pour Windows à partir de code source en C.

Présentation de WiShMaster
Le web recèle maintenant de nombreuses ressources permettant d’obtenir assez rapidement un shellcode.
L’outil Metasploit, par exemple, contient une base impressionnante de 75 shellcodes pour différentes plateformes directement utilisables. Une simple recherche sur google permet également de récupérer une liste conséquente de documents, d’articles et de codes commentés offrant une bonne base à la création d’un shellcode.
Ces différents éléments sont généralement orientées vers l’écriture en assembleur de shellcodes de taille très réduite exécutant des opérations relativement simple : ajout d’un utilisateur, écoute sur un port, reverse connect, ...

Cependant, il existe de nombreux cas nécessitant des shellcodes effectuant des opérations beaucoup plus complexes. Par exemple, lors d’une exploitation entièrement en mémoire, un premier shellcode de taille très réduite exécuté via une faille pourra effectuer le téléchargement en mémoire d’un second shellcode offrant des fonctionnalités avancées. Ou encore, lors du développement d’une application utilisant des techniques d’injection de thread.
La question se pose alors : comment obtenir alors de tels shellcodes ?
Du fait de leur complexité, leur écriture directement en assembleur peut s’avérer relativement longue et fastidieuse. Il serait beaucoup plus pratique d’écrire un code en C, de le compiler et d’extraire le shellcode du binaire généré.

WiShMaster est un outil permettant de générer automatiquement un shellcode pour Windows à partir d'un ensemble de fichiers source C.
C'est un freeware ; le binaire peut être téléchargé à partir de la section "Ressources" ci-dessous.
A qui s'adresse cet outil ?
WiShMaster vise un public relativement large : les consultants en sécurité ayant besoin de shellcodes pour mener des tests d'intrusion, les responsables sécurité souhaitant sensibiliser les utilisateurs finaux avec des démonstrations, les chercheurs en sécurité voulant explorer des techniques comme l'injection de thread,...
En images...
Si vous souhaitez avoir un réel apperçu des possibilités ouvertes par WiShMaster, je vous conseille de lire la page dédier à la shellcodisation de RConnect et de visualiser les vidéos associées
Cette vidéo montre comment installer WiShMaster et générer un squelette d'application avec le wizard pour faire un premier test de shellcodisation. Elle a été réalisé avec la version 1.00 de WiShMaster, légèrement différente de l'actuelle version, mais le principe reste globalement identique.
Installation
WiShMaster est une application graphique développée en C#. Elle requiert donc le framework .net 2.0 ou supérieur.
La partie compilation est effectuée en lançant des scripts qui appellent eux-mêmes des makefiles. Elle nécessite donc les éléments suivants : Ces liens sont fournis à titre informationnel et peuvent ne pas être à jour. La meilleur solution pour avoir la dernière version reste d'utiliser une petite recherche sous google.
L'installation en elle-même se résume à décompresser l'archive de WiShMaster dans le répertoire de votre choix.
Accès aux ressources
Cette archive contient la dernière version de WiShMaster. Actuellement, seula la version binaire est disponible. Les sources seront peut-être mise en ligne dans un second temps, en fonction de l'évolution du projet.
Cette archive contient l'ancienne version de WiShMaster. Si vous créez un nouveau projet je vous conseille d'utiliser la dernière version.
Un outil permettant de rendre un fichier projet créé avec une ancienne version de WiShMaster compatible avec la dernière version sera bientôt mis à disposition.
Un document présentant rapidement le principe de WiShMaster
Le même document en HTML, sur le site de SecuObs
Ce document détaille de manière assez technique le fonctionnement de WiShMaster. Sa lecture est indispensable si vous souhaitez l'utiliser.
Une remarque/un bug ?
Ce projet est réellement en développement intense. N'hésitez donc pas à me faire part de vos remarques/suggestions pour l'améliorer: Benjamin CAILLAT