Injection de Code DLL
..:: DescriptioN ::..
Là, on passe au niveau supérieur. Je vais essayer d'énoncer clairement l'utilité d'un tel programme, et sa réalisation. Tout d'abord,
il s'agit d'une idée de Kdm (kodmaker@netcourrier.com). J'ai juste fait quelques modifications de code et quelques ajouts de
commentaires pour bien comprendre ce qu'il a fait. Il s'agit juste d'une demande d'une page HTML avec
le protocole HTTP 1.1 depuis Internet Explorer.
L'injection de code ? Késako ?
On va manipuler une DLL. Une DLL est un programme qui ne peut pas fonctionner seul. Il faut charger son code en mémoire, via un
programme principal, pour exécuter le code d'une DLL.
Jusque là, rien de transcendant. Le code de la DLL peut, par exemple, demander au programme principal de se connecter à un site Web et
récupérer des informations. Si le programme principal est "autorisé" par le firewall, pas de soucis. Sinon, il faut utiliser l'injection.
L'injection consiste à exécuter le code de notre DLL, non pas dans notre programme principal (non "autorisé"), mais dans un
programme tiers (Internet Explorer, par exemple).
C'est bien beau, mais ca sert à quoi ?
On va parler de trois programmes.
Le premier est NOTRE programme principal, celui qui injecte la DLL : on le notera P1 (kInject.exe).
Le second est le code de NOTRE DLL : noté P2 (injDLL.dll).
La troisième est un programme tiers, dont on ne dispose pas du source : noté P3 (IEXPLORE.EXE).
Pour que la manipulation fonctionne, il faut un PC relié à internet (pour notre exemple) et un programme P3 "autorisé" par le firewall
à se connecter à internet (Internet Explorer, AOL, eMule, Kazaa, etc ...). Le programme P1 va injecter P2 dans la zone mémoire de P3, ensuite P3 va
l'exécuter. Enfin, P2 récupère le résultat (on affichera un MessageBox, avec le source HTML de la page).
C'est vraiment efficace ?
Tous les PC reliés à internet ont forcément un firewall et un antivirus à jour. J'ai moi-même Norton Antivirus 2002 et
ZoneAlarm Pro 4.5.538.001. Le code que je vous propose fait clairement un bras d'honneur à ce genre de programme.
Ils n'y voient que du feu. ZoneAlarm autorise IE à faire ce qu'il veut sur Internet.
J'ai peur quand même !
Il y a de quoi. Je n'ai pas encore envisagé les pires scénarios. On peut penser rapidement à un cheval de Troies capable de récupérer toutes vos
informations personnelles pour les envoyer (avec votre IP) à un site internet malveillant. C'est très rapide d'envoyer ce genre d'informations,
surtout avec une connexion DSL ou supérieure.
Pourquoi diffuser ce code !
Pour que les failles de sécurités soient bouchées, pour montrer que cette manipulation est possible. Ce code est assez vieux, donc il a forcément déjà
du être expérimenté.
Mise à jour : depuis quelques mois, les firewalls se sont améliorés. Les dernières version de Kerio peuvent détecter
l'injection de code (en mode très sécurisé), idem pour Look'n'Stop (en mode normal). Je n'ai pas testé sur d'autres.
..:: Téléchargez InjDLL ::..
..:: ScreenshotS ::..
..:: InformationS ::..
Version : 1.0 (08 juillet 2004)
Compilateur : Dev-C++ 4.9.8.10
Programmation : Langage C
Configuration Recommandée :
Etre relié à Internet ;)
Windows 2000/XP (non testé sur 95/98)
..:: Compilation ::..
Sous DevCpp
Double-cliquez sur le fichier injDLL.dev.
Lancez la compilation en appuyant sur la touche CTRL+F11.
Vous obtiendrez injDLL.dll
Double-cliquez sur le fichier kInject.dev.
Lancez la compilation en appuyant sur la touche CTRL+F11.
Vous obtiendrez kInject.exe
Lancez ensuite injection.bat
dllmain.c : fichier source de la DLL
kInject.c : fichier source du programme principal pour l'injection
..:: Liens ::..
Logiciel DevCpp
http://www.bloodshed.net/devcpp.html
Idée
http://espionet.com:7080/espi00gle/programmation/c/Contournement%20firewall%20-%20injection%20de%20code.html
http://www.thehackademy.net/download.php?man=12
BeLZeL - [http] belzel.free.fr
belzel [at] free [dot] fr
visiteurs