Démarrage de Windows - Liste des emplacements de lancement utilisés

Démarrage de Windows - Liste des emplacements de lancement utilisés

   
En savoir plus :  Retourner à la page précédente   Imprimer cette page   

FAQ Microsoft Windows
 
 

Mise à jour de ce document :
Voir : Liste des emplacements utilisés pour le lancement de Windows.

Démarrage de Windows - Liste des emplacements de lancement utilisés

Divers emplacements sont utilisés pour lancer quelque chose lors du démarrage de Windows. Bien sûr, la base de registre est un lieu privilégié avec plusieurs emplacements en son sein mais bien d'autres emplacements existent dont plusieurs, anciens et semblant obsolètes, sont maintenus pour des raisons de compatibilité et ne sont pas oubliés des maffias et autres criminels s'attaquant à nos machines pour en faire des zombies ou des script kiddies pour le plaisir de détruire nos machines.

Nous avons répertorié 76 emplacements à partir desquels il est possible d'indiquer des objets (tâches, programmes...) devant se lancer avec le démarrage de Windows ! Leurs contenus constituent votre "Liste de démarrage". Des parasites peuvent figurer dans cette liste.

Des outils comme HijackThis permettent d'en voir le contenu.

Qu'est-ce que la "Liste de démarrage"?
Au démarrage / redémarrage d'un ordinateur sous Windows, un ensemble de tâches est lancé automatiquement. Ces tâches sont inscrites dans une liste de travaux à effectuer. Une fois installé, un parasite va tout faire pour s'assurer d'être, lui aussi, lancé automatiquement et va donc s'inscrire dans cette liste. Lorsque vous la lisez, vous vous demandez:

  • Qu'est-ce que c'est que ce truc ? Est-ce hostile ou légitime ?
  • Est-ce que j'en ai besoin ?
  • Même si c'est légitime, ça prend du temps et de la place ! Comment éviter son chargement intempestif alors que je n'en ai besoin qu'épisodiquement ?

Pour répondre à ces interrogations, un inventaire des "trucs" se lançant au démarrage de Windows a été fait, avec commentaires et annotations (Hostile, Légitime...). La version officielle de cet inventaire esxiste, officiellement, en français : PacMan Startup Liste -version officielle française.
De quoi est constituée la "Liste de démarrage"?
De plus de 76 emplacements contenant des objets à lancer au démarrage de Windows !
La "Liste de démarrage" n'est pas une liste unique au sens propre mais un ensemble dispersé d'emplacements (au moins 76 !) qui coopèrent et concourent au démarrage d'un PC sous Windows. Les utilitaires permettant de la gérer la montre sous forme d'une liste virtuelle unique pour plus de simplicité et lisibilité. Les groupes d'emplacements suivants participent à cette liste :
  1. MBR - Master Boot Record
  2. C:\config.sys
  3. C:\autoexec.bat
  4. System.ini
  5. Win.ini
  6. Démarrage
  7. base de registre
  8. Explorer.exe
  9. Divers
Malheureusement, toutes ces sources sont faciles d'accès et bien des spywares, keyloggers et autres backdoors installent ici de quoi être lancés automatiquement à chaque démarrage de Windows.

Il existe plusieurs autres méthodes, beaucoup moins utilisées, dont certaines détournent carrément l'usage normal d'une fonction. Pour en savoir beaucoup plus sur les diverses méthodes d'autostart, il faut absolument lire cet article (en anglais).

  1. Le MBR (Master Boot Record) (1 emplacement)
    HijackThis ne tiend pas compte du contenu du MBR (ce qui n'est pas une erreur mais une impossibilité technique de par la nature de HijackThis - seuls les antivirus commerciaux ou les antivirus gratuits ou les anti-trojans commerciaux ou les anti-trojans gratuits sont capables d'analyser le contenu d'un MBR.

    Le MBR est un emplacement impliqué dans le démarrage de Windows. Au démarrage de l'ordinateur (à sa mise sous tension ou à son redémarrage) c'est le BIOS (Basic Input Output System) qui est le premier programme à s'exécuter. Il est contenu dans un composant électronique de la carte mère de l'ordinateur, une mémoire de type ROM, et n'est pas modifiable (sauf par "flashage"). Le BIOS teste la machine puis va chercher le premier programme à exécuter et le lance. Ce premier programme, un mini programme nommé le "BootStrap" - littéralement "coup de pied au fondement" - est, conventionnellement, mémorisé dans le MBR (le Master Boot Record). Il s'agit toujours du bloc de 2 secteurs se trouvant sur le premier support de démarrage, généralement le premier disque dur, en piste 0, tête 0, secteurs 0 et 1. Le BootStrap va, lui même, charger le Kernel (le noyau - l'amande) du système d'exploitation (s'il y a plusieurs systèmes d'exploitation installés simultanément sur le disque dur, il va charger et lancer un autre bootstrap, dans la partition de démarrage choisie, qui va à son tour lancer le kernel du système choisi).

    Le MBR est connu pour avoir eu, pendant des années, la capacité d'être modifié librement et c'est là, dans le seecteur de "boot", que se chargeaient les tout premiers virus qui infestaient toutes ces disquettes piégées qui circulaient. Aujourd'hui le MBR est protégé par le BIOS (à condition de sélectionner l'option dite "antivirus" du BIOS qui n'est pas un antivirus mais simplement une surveillance de toute tentative d'altération du MBR).

    1. Nota : Le MBR se nettoie à partir de la disquette de boot de sécurité confectionnée lors de l'installation du système ou de sa dernière modification. Bien entendu, vous avez aussi pensé à mettre la disquette de boot de sécurité en protection d'écriture (ouvrir le trou marqué d'un vérou avec la glissière de protection contre l'écriture - les 2 trous doivent être ouverts).

      Disquette non protégée en écriture     Disquette protégée en écriture
      Disquette non
      protégée
      en écriture
      Disquette
      protégée
      en écriture

    2. Démarrez à partir d'elle et faire "fdisk /mbr". Le MBR initial est restauré (les partitions et les données ne sont pas affectées). Il peut être nécessaire d'ôter la protection du MBR au niveau du BIOS momentanément ou de passer outre son alerte. Immédiatement derrière il faut la réinstaller puis re-démarrer votre ordinateur : là, votre antivirus, le vrai, risque de détecter la modification du MBR et hurler - dites-lui que tout va bien.

    3. Le MBR peut aussi contenir le lancement d'un antivirus ou d'un pare-feu qui s'assurent ainsi de bien prendre le contrôle et la surveillance du système avant que celui-ci ne charge la moindre tâche. Si un message d'anomalie vous signale un disfonctionnement de votre antivirus ou de votre pare-feu ou si vous constatez, après avoir restauré votre MBR et redémarré votre ordinateur, que votre antivirus ou votre parefeu n'est pas lancé, ré-installez-le.

    4. Nota : A ma connaissance, strictement aucun utilitaire de gestion, ou même de simple visualisation, sans gestion, de la liste de démarrage ne jette un oeil dans le MBR.


  2. c:\config.sys (1 emplacement)
    HijackThis ne tiend pas compte du contenu du fichier de commandes "config.sys"

    Config.sys est un fichier impliqué dans le démarrage de Windows. C'est un fichier "texte" situé à la racine du disque de démarrage, hérité du monde DOS. Editable avec un traitement de texte aussi simpliste que Notepad ou "edit" sous Dos. Bien qu'il s'en défende et tente de le cacher, Windows 9x/Me démarrent toujours en mode MS-DOS. Les systèmes Windows à base de noyau NT (Windows NT/2000/XP) démarrent, eux, directement sous Windows et émulent DOS, lorsqu'il le faut, dans l'Invite de commandes - le fichier config.sys n'est alors présent que pour des raisons de compatibilité et est, normalement, totalement vide.

    Il s'agit du premier fichier de cette nature (contenant des commandes - des ordres) que le système ouvre et balaye pour en exécuter chacune des lignes de commande grâce à l'interpréteur de commandes "command.com". On trouve dans le fichier config.sys, au moins, l'emplacement du driver graphique générique initial et le code pays qui va déterminer certaines orientations dans la gestion internationalisée de Windows. On peut aussi lancer, d'ici, un gestionnaire de mémoire etc. ...

    Exemple de contenu d'un fichier "config.sys"
    shell=c:\command.com /e:32768 /k c:\parasite.bat
    device=C:\WINDOWS\COMMAND\display.sys con=(ega,,1)
    Country=033,850,C:\WINDOWS\COMMAND\country.sys


  3. c:\autoexec.bat (1 emplacement)
    HijackThis ne tiend pas compte du contenu du fichier de commandes "Autoexec.bat"

    Autoexec.bat est un fichier batch impliqué dans le démarrage des Windows 95/98/ME, situé à la racine du disque de démarrage, hérité du monde DOS (le PC démarre alors en mode MS-DOS avant de basculer en mode Windows) - sous les nouvelles versions de Windows (NT/2000/XP...) le PC démarre directement en mode Windows et le fichier autoexec.bat est ignoré (il est simplement analysé et seules les variables d'environnement qui s'y trouveraient sont retenues et utilisées.

    Il s'agit du second fichier d'ordres à être exploité par la séquence de démarrage. Fichier texte éditable avec Notepad ou "edit" sous Dos. Peut contenir le lancement de plusieurs programmes, dont certains modules du parefeu ou de l'antivirus par exemple, qui doivent être chargés avant Windows pour être efficaces.

    Exemple de contenu d'un fichier "autoexec.bat"
    mode con codepage prepare=((850) C:\WINDOWS\COMMAND\ega.cpi)
    mode con codepage select=850
    keyb fr,,C:\WINDOWS\COMMAND\keyboard.sys
    @C:\NORTON\NAVDX.EXE /startup
    c:\parasite.exe

    Truc : sous Windows 95/98, l'interpréteur de commandes "command.com" ne charge pas autoexec.bat mais autoexec.???. Si un autoexec.bat est trouvé, c'est ce batch qui est chargé mais, sinon, command.com balaye tout simplement la racine pour prendre le premier autoexec trouvé et, dans l'ordre alphabétique, s'il tombe sur un autoexec.com il sera exécuté ou, autoexec.exe ! Du pain béni pour les développeurs de parasites (heureusement que les Windows 95/98 se fassent rares de nos jours).


  4. c:\windows\system.ini (section [boot]) (en moyenne, 10 emplacements par machine)
    HijackThis tiend compte, partiellement, du contenu du fichier de commandes "system.ini"

    System.ini est un fichier impliqué dans le démarrage de Windows. C'est un fichier texte situé, classiquement, à c:\windows\system.ini. Comme son nom l'indique, il sert à l'initialisation du kernel (du noyau) de Windows. Ce long fichier, éditable avec Notepad ou "edit" sous Dos, comporte une foule de paramètres dont une liste de .exe et de .dll à utiliser par le Kernel de Windows. Dans ce fichier, les lignes entre [] sont les noms des sections de cette liste et la section [boot] est celle qui retient notre attention. Les lignes commençant par une "*" sont des lignes de commentaires ou des paramètres inhibés (transformés en commentaires mais qu'il sera possible de retrouver et réactiver).

    1. Emplacement Shell
      HijackThis tiend compte du contenu de l'emplacement Shell et le signale par la ligne appelée "F0" dans son analyse (log). Plus de détail sur les lignes F0 d'un log HijackThis.

      L'une des possibilités de lancer une tâche automatiquement est de l'inscrire ici, en utilisant la méthode "shell" qui assurera son lancement à chaque lancement de Windows. On peut indiquer, sur cette même ligne, d'autres programmes, simplement séparés par un espace, et qui seront lancés en même temps que le noyau du système d'exploitation lors du chargement de celui-ci, sous la forme:

      Exemple de lancement avec la commande "shell" dans une section [boot] du fichier system.ini
      shell=Explorer.exe c:\windows\parasite.exe

      Si le chemin de fichier n'est pas complet (pas de "c:\windows" par exemple), cherchez l'emplacement utilisé pour le répertoire Windows qui est alors remplacé par une variable d'environnement "%WinDir%".

      Une méthode de camouflage courant du contenu de cette ligne consiste à faire précéder le nom du fichier parasite d'un nombre considérable d'espaces de manière à tenter de le rejeter en dehors de la zone d'affichage à l'écran lors de la visualisation de cette liste (mais ceci n'échappera pas à HijackThis.

      Exemple de camouflage avec des espaces
      shell=Explorer.exe           <un très grand nombre d'espaces rejetant ce qui suit au dela de la droite de l'écran>        c:\windows\parasite.exe

    2. Emplacement keyboard.drv
      HijackThis ne tiend pas compte du contenu de cet emplacement.

      Le driver du clavier. Un keylogger peut avoir été substitué au driver légitime (et même certains grands constructeurs, tel Hewlett Packard) ont livrés des drivers contenant un keylogger et se connectant au Net !

    3. Emplacement gdi.exe
      HijackThis ne tiend pas compte du contenu de cet emplacement.

      Un interface graphique personnalisé, et généralement piégé, peut avoir été substitué au gdi légitime

    4. Emplacement mouse.drv
      HijackThis ne tiend pas compte du contenu de cet emplacement.

      Driver de la souris. Incroyable mais on a vu une grande marque de souris (Logitech) livrer un pilote piégé.

    5. Emplacement scrnsave.exe
      HKCU\Control Panel\Desktop\scrnsave.exe
      HijackThis ne tiend pas compte du contenu de cet emplacement.

      Cet emplacement indique le "screenSaver" (économiseur d'écran) à utiliser - il s'agit d'un programme à exécuter. La quasi totalité des économiseurs d'écran, surtout les gratuits, remplaçant celui d'origine (de Microsoft) sont des trojans embarquant un backdoor ou d'autres malveillances.

    System.ini est généralement vide de nos jours car tous ces lancements sont maintenant insérés dans la base de registre de Windows.

    Exemple de contenu d'une section [Boot] d'un fichier de commandes "system.ini"
    [boot]
    system.drv=system.drv
    drivers=mmsystem.dll power.drv
    shell=Explorer.exe
    user.exe=user.exe
    gdi.exe=gdi.exe
    sound.drv=mmsound.drv
    dibeng.drv=dibeng.dll
    comm.drv=comm.drv
    mouse.drv=lmouse.drv
    keyboard.drv=keyboard.drv
    oemfonts.fon=vga850.fon
    *DisplayFallback=0
    fixedfon.fon=vgafix.fon
    fonts.fon=vgasys.fon
    386Grabber=vgafull.3gr
    display.drv=pnpdrvr.drv


  5. c:\windows\system.ini (sections [386enh]) (2 emplacements)
    HijackThis ne tiend pas compte du contenu de la section [386enh].

    Dans cette section sont regroupés les lancements des pilotes (device drivers). Cette ligne peut être hijackée mais HijackThis ne l'analyse pas. En s'inscrivant ici, un parasite sera lancé automatiquement à chaque démarrage de Windows comme un pilote virtuel de périphérique (et sera probablement chargé avant l'antivirus !).

    Exemple de contenu d'une section [386enh] d'un fichier de commandes "system.ini"
    [386enh]
    device = win95.fono.15327.vxd


  6. c:\windows\win.ini (sections [Windows], entrées Load et run) (2 emplacements)
    HijackThis tiend compte du contenu des emplacements [load] et [run] et le signale par la ligne appelée "F1" dans son analyse (log). Plus de détail sur les lignes F1 d'un log HijackThis.

    Win.ini est un fichier texte situé classiquement à c:\windows\win.ini. Comme son nom l'indique, il participe à l'initialisation de Windows dont l'initialisation de l'IHM (Interface Homme Machine) et de l'environnement de Windows. Ce long fichier texte, éditable avec Notepad ou "edit" sous Dos ou msconfig.exe, comporte une foule de paramètres dont, dès le début, une liste de services à charger et à exécuter (load et run). Les lignes entre [] sont les noms des sections de cette liste. Les lignes commençant par une "*" sont des lignes de commentaires ou des paramètres inhibés (transformés en commentaires mais qu'il sera possible de retrouver et réactiver).

    Tous les fichiers indiqués après les entrées "run" et "load" seront lancés à chaque démarrage en mode normal de Windows.
    Comme pour System.ini, il est possible de tenter de camoufler, visuellement, un nom de fichier en introduisant un grand nombre d'espaces devant son nom afin de le rejeter en dehors de la zone d'affichage à l'écran. Des parasites de capture des mots de passe d'AOL pratiquent cela, par exemple.

    Cette liste est généralement vide sous les version récentes de Windows car tous ces lancements sont maintenant insérés dans la base de registre de Windows.

    Exemple de contenu des entrées "load" et "run" d'un fichier de commandes "win.ini"
    [windows]
    load= parasite1.exe
    run= parasite2.exe
    NullPort=None
    device=Canon BJC-3000,CJRSTR,USBPRN01


  7. Répertoires de démarrage (de 7 à n emplacements)
    Une liste de "raccourcis" vers des programmes à lancer et qui se trouve à
    c:\windows\menu démarrer\programmes\démarrage

    C:\Documents and Settings\<profile>\Menu Démarrer\Programmes\Démarrage
    Il peut y avoir plusieurs <profile>, par exemple "Admin", "Pierre", "Paul", "Jaques" etc. ... s'il a été créé plusieurs "profils" d'utilisateurs de l'ordinateur

    User\Startup\


    All Users\Startup\


    windir\system\iosubsys\


    windir\system\vmm32\


    windir\Tasks\

    Tous ces emplacements peuvent contenir des listes de programmes à lancer au démarrage de Windows. Ils comportent une série de raccourcis, strictement identiques à ce que sont les icônes de lancement de programmes sur votre bureau. Ils permettent de lancer certains programmes au démarrage de Windows. Certaines de ces listes sont généralement vides de nos jours car tous ces lancements sont maintenant insérés dans la base de registre de Windows. S'il y a des raccourcis ici, on vérifiera que l'on connaît les programmes qui se lancent, qu'on les y a mis volontairement, et on s'intéressera à tous leurs paramètres de lancement (les switch utilisés en mode "command line"). Ceci relève du mode d'emploi de chaque programme.

  8. La base de registre (46 emplacements)
    Toutes les sections et méthodes suivantes sont liées au démarrage de Windows. La base de registre a été conçue opaque et hermétique par Microsoft pour, justement, lui permettre de faire ce qu'il veut dans divers domaines dont l'anti-piratage de ses logiciels... En matière d'espionnage, Microsoft a institutionnalisé l'espionnage de ses clients à partir de Windows 98 avec traces de toutes nos activités notées dans la base de registre, GUID partout, licences légales ou non de tous les logiciels Microsoft ou concurrents notés dans la base de registre, interception et transmission des erreurs avec force données contextuelles etc. ... Cette base de données, le "registre", contient une foultitude de clés chiffrées totalement incompréhensibles, même pour des utilisateurs avancés. Avec le tollé général que cela souleva, Microsoft à livré quelques explications et RegEdit, un utilitaire minimaliste pour entrer dans cette base.

    Toutes les clés suivantes peuvent être mises à contribution pour lancer un objet (un programme) et/ou un flux ADS - Alternate Data Stream

    Exemple de lancement d'un programme ou d'un flux ADS depuis un clé de registre
    Lancement d'un programme
    Valeur de clé = c:\parasite.exe

    Lancement d'un flux ADS - Alternate Data Stream
    Valeur de clé = rundll32.exe c:\C:\Documents and Settings:parasite.dll
    Ici, rundll32.exe permet de faire s'exécuter une dll comme un exécutable autonome, celle-ci étant invisible.


    1. Les sections suivantes, les plus courrantes, sont utilisées :

      HKLM\Software\Microsoft\Windows\CurrentVersion\Run
      Toutes les valeurs de cette clé sont exécutées

      HKLM\Software\Microsoft\Windows\CurrentVersion\RunOnce
      Toutes les valeurs de cette clé sont exécutées puis les valeurs sont supprimées

      HKLM\Software\Microsoft\Windows\CurrentVersion\RunOnceEx
      Valeurs exécutées par Windows Desktop Update component 'W98, W2000 et IE 4.0' - plusieurs sous-clés 0001 à 000n et "Depend"

      HKLM\Software\Microsoft\Windows\CurrentVersion\RunServices
      Toutes les valeurs de cette clé sont lancées en tant que services

      HKLM\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce
      Toutes les valeurs de cette clé sont lancées en tant que services puis les valeurs sont supprimées

      HKCU\Software\Microsoft\Windows\CurrentVersion\Run
      Toutes les valeurs de cette clé sont exécutées

      HKCU\Software\Microsoft\Windows\CurrentVersion\RunOnce
      Toutes les valeurs de cette clé sont exécutées puis les valeurs sont supprimées

      HKCU\Software\Microsoft\Windows\CurrentVersion\RunOnceEx
      Valeurs exécutées par Windows Desktop Update component 'W98, W2000 et IE 4.0' - plusieurs sous-clés 0001 à 000n et "Depend"

      HKCU\Software\Microsoft\Windows\CurrentVersion\RunServices
      Toutes les valeurs de cette clé sont lancées en tant que services

      HKCU\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce
      Toutes les valeurs de cette clé sont lancées en tant que services puis les valeurs sont supprimées

      HKCU\Software\Microsoft\Windows\CurrentVersion\RunOnce\Setup\
      Normalement utilisé uniquement par "Setup". Affiche une boite de dialogue de progression tandis que les clés sont exécutées, une à la fois.

      HKU\.Default\Software\Microsoft\Windows\CurrentVersion\Run\
      Similaire à la clé Run de HKCU (HKEY_CURRENT_USER).

      HKU\.Default\Software\Microsoft\Windows\CurrentVersion\RunOnce\
      Similaire à la clé RunOnce de HKCU (HKEY_CURRENT_USER).

      HKU\nnnnnn\Software\Microsoft\Windows\CurrentVersion\Run
      HKU\nnnnnn\Software\Microsoft\Windows\CurrentVersion\RunOnce
      HKU\nnnnnn\Software\Microsoft\Windows\CurrentVersion\RunOnceEx
      HKU\nnnnnn\Software\Microsoft\Windows\CurrentVersion\RunServices
      HKU\nnnnnn\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce

      nnnnnn étant un GUID chiffré d'utilisateur


    2. Les clés suivantes sont utilisées : Si les clés suivantes n'ont pas la valeur "\"%1\" %*" comme montrée ci-après mais que celle-ci est changé en quelque chose comme "\"unnomdefichierquelconque.exe %1\" %*" alors le fichier est invoqué automatiquement.

      [HKEY_CLASSES_ROOT\exefile\shell\open\command] ="\"%1\" %*"
      Exécuté chaque fois qu'un fichier .EXE (Executable) est sollicité.

      [HKEY_CLASSES_ROOT\comfile\shell\open\command] ="\"%1\" %*"
      Exécuté chaque fois qu'un fichier .COM (Command) est sollicité.

      [HKEY_CLASSES_ROOT\batfile\shell\open\command] ="\"%1\" %*"
      Exécuté chaque fois qu'un fichier .BAT (Batch Command) est sollicité.

      [HKEY_CLASSES_ROOT\htafile\Shell\Open\Command] ="\"%1\" %*"
      Exécuté chaque fois qu'un fichier .hta (Hypertext Application) est sollicité.

      [HKEY_CLASSES_ROOT\piffile\shell\open\command] ="\"%1\" %*"
      Exécuté chaque fois qu'un fichier .PIF (Portable Interchange Format) est sollicité.

      HKEY_CLASSES_ROOT\vbsfile\shell\open\command\
      Exécuté chaque fois qu'un fichier .VBS (Visual Basic Script) est sollicité.

      HKEY_CLASSES_ROOT\vbefile\shell\open\command\
      Exécuté chaque fois qu'un fichier .VBE (Encoded Visual Basic Script) est sollicité.

      HKEY_CLASSES_ROOT\jsfile\shell\open\command\
      Exécuté chaque fois qu'un fichier .JS (Javascript) est sollicité.

      HKEY_CLASSES_ROOT\jsefile\shell\open\command\
      Exécuté chaque fois qu'un fichier .JSE (Encoded Javascript) est sollicité.

      HKEY_CLASSES_ROOT\wshfile\shell\open\command\
      Exécuté chaque fois qu'un fichier .WSH (Windows Scripting Host) est sollicité.

      HKEY_CLASSES_ROOT\wsffile\shell\open\command\
      Exécuté chaque fois qu'un fichier .WSF (Windows Scripting File) est sollicité.

      HKEY_CLASSES_ROOT\scrfile\shell\open\command\
      Exécuté chaque fois qu'un fichier .SCR (Screen Saver) est sollicité.

      [HKEY_LOCAL_MACHINE\Software\CLASSES\batfile\shell\open\command] ="\"%1\" %*"

      [HKEY_LOCAL_MACHINE\Software\CLASSES\comfile\shell\open\command] ="\"%1\" %*"

      [HKEY_LOCAL_MACHINE\Software\CLASSES\exefile\shell\open\command] ="\"%1\" %*"

      [HKEY_LOCAL_MACHINE\Software\CLASSES\htafile\Shell\Open\Command] ="\"%1\" %*"

      [HKEY_LOCAL_MACHINE\Software\CLASSES\piffile\shell\open\command] ="\"%1\" %*"


    3. Méthode utilisée, par exemple, par le RAT SubSeven 2.2

      HKEY_LOCAL_MACHINE\Software\Microsoft\Active Setup\Installed Components
      Toutes les sous clés sont gérées, surtout les valeurs StubPath de chaque sous clés

      HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\ Currentversion\explorer\User shell folders

    4. Autres méthodes diverses

      HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon
      Cette valeur est exécutée après le login.


      HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD\
      Toutes ses sous-clés sont à surveiller dont, particulièrement, les valeurs "StaticVXD" de chaque sous clé.

      HKEY_CURRENT_USER\Control Panel\Desktop
      La valeur "scrnsave.exe" (économiseur d'écran" est à surveiller. C'est elle qui est lancée lorsque votre économiseur d'écran s'active. La quasi totalité des économiseurs d'écran, particulièrement les gratuits, utilisés en remplacement de celui d'origine, son des trojans cachant un backdoor ou un keylogger etc. ...

      HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager
      Les fichiers listés dans "BootExecute" sont à regarder. Il s'agit d'applications en mode natif exécutées avant le démarrage de Windows.

      HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\
      Liste des services à démarrage paramétré sur le mode "automatique". Ils sont exécuté avant le login utilisateur.

      HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Winsock2\ Parameters\Protocol_Catalog\Catalog_Entries\
      Layered Service Providers, exécuté avant le login utilisateur.

      HKEY_LOCAL_MACHINE\System\Control\WOW\cmdline
      Exécuté lorsqu'une application Windows en 16bits est exécuté.

      HKEY_LOCAL_MACHINE\System\Control\WOW\wowcmdline
      Exécuté lorsqu'une application Dos en 16bits est exécuté.

      HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\Userinit
      Exécuté au login d'un utilisateur.

      HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\ ShellServiceObjectDelayLoad\
      Exécuté par explorer.exe dès qu'il s'est chargé.

      HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows\run
      Exécuté au login d'un utilisateur.

      HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows\load
      Exécuté au login d'un utilisateur.

      HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\ Policies\Explorer\run\
      Les sous valeurs sont exécutées lorsque l'explorateur s'initialise.

      HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\ Policies\Explorer\run\
      Les sous valeurs sont exécutées lorsque l'explorateur s'initialise.

      Icq Inet - un cas particulier
      [HKEY_CURRENT_USER\Software\Mirabilis\ICQ\Agent\Apps\test]
      "Path"="test.exe"
      "Startup"="c:\\test"
      "Parameters"=""
      "Enable"="Yes"

      [HKEY_CURRENT_USER\Software\Mirabilis\ICQ\Agent\Apps\]
      Cette clé spécifie que toutes les applications seront exécutées si ICQNET détecte une connexion Internet.

      [HKEY_LOCAL_MACHINE\Software\CLASSES\ShellScrap] ="Scrap object" "NeverShowExt"=""
      Cette clé modifie vos spécifications d'extensions de fichiers.


  9. C:\explorer.exe (1 emplacement)
    Windows charge le fichier "explorer.exe" (normalement localisé dans le répertoire de Windows soit, généralement, c:\windows\explorer.exe) au démarrage. Toutefois, si un fichier c:\explorer.exe existe, c'est celui-ci qui sera chargé et exécuté. S'il est corrompu, l'utilisateur sera maintenu hors d'un contexte légal de Windows. S'il contient un RAT (ou tout autre parasite), celui-ci sera exécuté. Contrairement à toutes les autres méthodes de démarrage automatique, celle-ci ne nécessite aucune inscription nulle part ni aucune modification de la base de registre - le fichier doit simplement s'appeler c:\explorer.exe.


  10. Autres emplacements divers (5 emplacements)

    1. %windir%\wininit.ini
      Wininit.ini est un fichier texte indirectement impliqué dans le démarrage de Windows 95/98/Me. Il est parfois utilisé pour détruire des fichiers, lors de la phase de démarrage de Windows, avant que ce dernier n'en prenne le contrôle et que leur destruction devienne impossible. Les programmes d'installation d'applications l'utilisent pour faire le ménage après une installation. Il ne permet pas de lancer directement quelque chose mais est invoqué par le programme wininit.exe qui le renomme ensuite en wininit.bak. On le trouve sous les autres versions de Windows, sans savoir s'il est réellement exploité et comment.

      Exemple de destruction d'un fichier au redémarrage de Windows avec wininit.ini
      Dans cet exemple, sous XP, un fichier index.dat va être détruit au prochain redémarrage de Windows.

      [Rename]

      NUL=C:\DOCUME~1\Admin\LOCALS~1\TEMPOR~1\Content.IE5\index.dat


      Exemple de modification de nom et d'emplacement d'un fichier au redémarrage de Windows avec wininit.ini
      Dans cet exemple un fichier d'apparence anodine (anodin.tmp dans un répertoire temporaire) va être déplacé dans un répertoire système et renommé en programme exécutable.

      [Rename]

      c:\windows\system\parasite.exe=c:\temp\anodin.tmp



    2. %windir%\wininit.exe
      Divers virus utilisent un composant auquel ils donnent le nom de wininit.exe ( W32/HLLW/Bymer , le backdoor Wolf16 etc. ...). Ils sévissent sous les système windows 32 bits et ne doivent pas être confondu avec la méthode de lancement automatique %windir%\wininit.exe. Dans ce cas, qui ne concerne que les Windows 95/98/Me, il s'agit d'un composant système qui est lancé systématiquement lors du démarrage de Windows, après l'affichage du logo Windows. Si ce composant est usurpé ou compromis par un parasite, celui-ci est assuré d'être exécuté à chaque démarrage/redémarrage de Windows.

    3. %windir%\winstart.bat (batch normal utilisé au démarrage d'anciennes versions de Windows, si présent dans "%WinDir%" - utilisé par exemple pour supprimer des fichiers avant que Windows ne les ouvre et qu'ils deviennent "protégés" par Windows. Totalement ignoré dans les versions recentes de Windows (Win NT/2000/XP etc. ...).

    4. %windir%\dosstart.bat (lire la KB 138996 Microsoft : redémarrer l'ordinateur en mode MS-DOS)

    5. %windir%\system\autoexec.nt

    6. %windir%\system\config.nt



  11. Ajout d'une barre horizontale à Internet Explorer
    HKEY_CLASSES_ROOT\CLSID\<Your GUID>\Implemented Categories\{00021494-0000-0000-C000-000000000046}
    Concerne Internet Explorer 5 et suivants donc Windows 2000 et suivants
    Voir le papier de Microsoft sur ce sujet

  12. Ajout d'une barre verticale à Internet Explorer
    HKEY_CLASSES_ROOT\CLSID\<Your GUID>\Implemented Categories\{00021493-0000-0000-C000-000000000046}
    Concerne Internet Explorer 5 et suivants donc Windows 2000 et suivants
    Voir le papier de Microsoft sur ce sujet

  13. HKEY_CLASSES_ROOT\CLSID\<Your GUID>\InProcServer32
    Indication d'une dll (Shdocvw.dll ...)
    Concerne Internet Explorer 5 et suivants donc Windows 2000 et suivants
    Voir le papier de Microsoft sur ce sujet

  14. HKEY_CLASSES_ROOT\CLSID\<Your GUID>\Instance\InitPropertyBag\Url
    Indique une URL qui peut être usurpée (hijackée)
    Concerne Internet Explorer 5 et suivants donc Windows 2000 et suivants
    Voir le papier de Microsoft sur ce sujet

  15. HKEY_LOCAL_MACHINE\Software\Microsoft\Internet Explorer\DownloadUI
    Si cette clé existe, elle indique un outil de téléchargement alternatif à celui natif dans Internet Explorer
    Voir le papier de Microsoft à ce sujet

  16. HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\DownloadUI
    Si cette clé existe, elle indique un outil de téléchargement alternatif à celui natif dans Internet Explorer
    Voir le papier de Microsoft à ce sujet


  17. Liste des dlls de la clé AppInit_DLLs
    Des DLLs peuvent être lancées automatiquement avec chaque application qui se lance, donc au lancement de Windows puisque plusieurs applications sont lancées automatiquement dont votre antivirus, votre firewall, votre anti-spam etc. ... Cette liste est stockée dans la clé AppInit_DLLs qui se trouve dans la hiérarchie HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows de votre base de registre

    AppInit_DLLs : cette clé comporte une ou une suite de dll (de composants de programmes) qui sont chargées avec chaque application Windows en cours d'exécution durant la session actuelle. Les dll sont délimitées par une "," ou un espace. Seuls les 32 premiers caractères sont utilisés donc les dll sont probablement dans le répertoire c:\windows\system32 afin de ne pas avoir à spécifier un chemin d'accès. Plusieurs dll légitimes peuvent se trouver sur cette ligne, comme apitrap.dll qui vient avec Norton CleanSweep (et avec les bundle contenant Norton CleanSweep comme Norton SystemWorks). Voir notre tutoriel de lecture, interprétation et nettoyage de la clé AppInit_DLLs


  18. Le scheduler de Windows
    Oui, c'est tellement énorme que personne ne pense à chercher là-dedans un hijack possible qui permettrait à une tâche d'être lancée ni vu ni connu. Qui remet le nez dans son scheduler une fois celui programmé lors de l'installation du PC et des premiers travaux (scan antivirus périodique, défragmentation, backup etc. ...). Le scheduler est souvent oublié durant des années.





Historique des révisions de ce document :

01.07.04 - rev 1 Ajout AppInit_DLLs
13.09.04 - rev 2 Pacman Startup List en français
08.08.06 - rev 3 V4 et liaisons avec HijackThis
 
   
Rédigé en écoutant :
Music