Flux RSS - La vie du site - Nouveautés et mises à jour
Assiste.com - Sécurité informatique - Décontamination - Antivirus - Protection - Protection de la Vie Privée Assiste.com - Sécurité informatique préventive - Décontamination - Antivirus - Protection - Protection de la Vie Privée

HijackThis : Analyse des lignes F0, F1, F2, F3 - Autoloading programs

Dernière mise à jour : 2018-10-12T14:52 - 12.10.2018
18.06.2013 - 00h00 - Paris - (Assiste - Pierre Pinard) - Mise à jour de notre article antérieur (versions 1997-2007)

Les lignes F0, F1, F2, F3 d'une analyse HijackThis font ressortir les applications qui sont lancées automatiquement, au démarrage de Windows, depuis certains fichiers de paramétrage de Windows (les fichiers .ini (system.ini et win.ini) des anciennes versions de Windows - 95, 98, Me) ou depuis leurs emplacements équivalents dans le Registre Windows (nouvelles versions de Windows - NT, 2000, XP, Vista, 7, 8).

HijackThis : Analyse des lignes F0, F1, F2, F3 - Autoloading programsHijackThis : Analyse des lignes F0, F1, F2, F3 - Autoloading programsHijackThis : Analyse des lignes F0, F1, F2, F3 - Autoloading programs

Les lignes F0, F1, F2, F3 d'une analyse HijackThis font ressortir les applications qui sont lancées automatiquement, au démarrage de Windows, depuis certains fichiers de paramétrage de Windows (les fichiers .ini (system.ini et win.ini) des anciennes versions de Windows - 95, 98, Me) ou depuis leurs emplacements équivalents dans le Registre Windows (depuis les nouvelles versions de Windows - NT, 2000, XP, Vista, 7, 8).

Les fichiers system.ini et win.ini ne sont plus guère utilisés mais sont conservés pour des raisons de compatibilité. Leurs équivalents dans le Registre Windows sont complétés, lors de l'installation de nouvelles versions de Windows "sur" d'anciennes versions (win.ini et system.ini sont alors "basculés" automatiquement dans des emplacements spécifiques du Registre Windows).


Emplacements analysés
HKLM = ruches "HKEY_LOCAL_MACHINE" dans la base de registre (touche tous les utilisateurs)
HKCU =
ruches "HKEY_CURRENT_USER" dans la base de registre (touche l'utilisateur courant)
Pour F0
L'instruction Shell= dans le fichier System.ini

Pour F1
L'instruction Run= et l'instruction Load= dans win.ini

Pour F2
HKLM\software\Microsoft\Windows NT\CurrentVersion\IniFileMapping\system.ini
HKLM\software\Microsoft\Windows NT\CurrentVersion\IniFileMapping
HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\Userinit

Pour F3
HKLM\software\Microsoft\Windows NT\CurrentVersion\IniFileMapping\win.ini



Usage / Signification
Pour F0
Correspond à l'instruction Shell= dans System.ini.
System.ini est un fichier impliqué dans le démarrage de Windows (anciennes versions). Il existe toujours dans les nouvelles versions de Windows mais est, généralement, vide ou quasiment vide, les paramètres qu'il passait à Windows ayant été transportés dans la base de registre depuis Windows NT. Il est localisé dans le répertoire Windows. %Windir% est la variable d'environnement qui fait référence au répertoire d'installation de Windows. Par défaut, il s'agit de, selon votre système :
  • C:\Windows
  • C:\Winnt
Ce fichier sert à préciser certains composants à utiliser pour configurer le système. System.ini peut être édité aisément avec msconfig.exe. Deux "sections" sont importantes en ce qui nous concerne et permettent le lancement d'applications (mais HijackThis n'en analyse qu'une).
  • Section [boot]
    L'instruction shell= dans la section [boot] du fichier system.ini est utilisée dans Windows 95/98/Me pour désigner le programme qui doit servir de shell (interpréteur de commandes / interface avec l'utilisateur) pour le système d'exploitation. Le "Shell" est un logiciel faisant partie des composants de base d'un système d'exploitation. Son rôle est de traiter les lignes de commande tapées au clavier, de les interpréter afin de réaliser telle ou telle tâche d'administration, ou de lancer l'exécution d'un logiciel... Dans l'usage quotidien d'un ordinateur, le shell est de plus en plus "camouflé" par des environnements et utilitaires graphiques, des menus etc. ... qui rendent son usage convivial. Ainsi, l'Explorateur de Windows (Windows Explorer) est le shell utilisé actuellement par tous les environnements Windows. Il charge le bureau, gère les fenêtres, permet à l'utilisateur d'interagir avec le système grâce aux fonctions shell (ou shell API). Le shell d'origine peut parfaitement être remplacé par une alternative non Microsoft comme LiteStep (et donc peut être remplacé par une version frelatée comportant des spywares, voleurs de mots de passe, exploitation cachée de l'ordinateur etc. ...)

    Exemple de ligne de commande Shell dans un fichier system.ini
    [boot]

    Shell = Explorer.exe

    Tout programme indiqué après l'instruction shell= sera lancé automatiquement au démarrage de Windows et sera considéré "shell" par défaut.
    • Command.com sous MS-DOS, est un shell
    • Progman.exe est le shell graphique 16 bits de Windows 3.x (d'ailleurs utilisé par le composant WoW de Windows XP pour émuler les applications 16 bits)
    • Explorer.exe est le shell de Windows 95/98/Me/2000/XP
    • Cmd.exe est le shell sous Windows NT
    • MSH est le shell sous .NET 2.0
    Le problème à surveiller est donc l'utilisation d'un shell exotique (parasité) en remplacement du shell normal et, également, la présence, sur la même ligne F0, 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.

    Exemples de lignes de commande Shell parasitées dans un fichier system.ini
    [boot]

    Shell = shell32.exe

    ou

    [boot]
    Shell = explorer.exe parasite.exe


  • Section [386Enh]
    Cette ligne peut être hijackée mais HijackThis ne l'analyse pas. Dans cette section sont regroupés les lancements des pilotes (device drivers). 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
Un dossier sur tous les emplacements utilisables pour lancer quelque chose lors du démarrage de Windows peut être consulté sur Assiste.com : Liste des emplacements de lancement utilisés.

Pour F1
Correspond aux éléments Run= et Load= dans le fichier win.ini.
Win.ini est un fichier impliqué dans le démarrage de Windows. Tous les programmes inscrits derrière run= et load= seront chargés avec Windows lors du démarrage de Windows. Cette instruction était principalement utilisée à l'époque de Windows 3.1, 95, et 98, et est conservée actuellement à des fins de compatibilité avec d'anciens programmes. Les programmes récents n'utilisent pas cette forme de paramétrage et inscrivent leurs paramètres dans la base de registre lors de leur installation / utilisation. Si vous n'utilisez pas de vieux programmes vous pouvez à juste titre être méfiant avec tout ce que HijackThis liste en F1. L'instruction run= était utilisée pour lancer un programme et l'instruction load= était utilisée pour charger les pilotes (drivers) de votre matériel.

Un dossier sur tous les emplacements utilisables pour lancer quelque chose lors du démarrage de Windows peut être consulté sur Assiste.com : Liste des emplacements de lancement utilisés.

Pour F2
F2 est l'équivalent de F0 dans le registre, sous XP, 2000 et NT.
Ces versions de Windows n'utilisent généralement pas les fichiers system.ini et win.ini. Au lieu de conserver une rétro-compatibilité, ils utilisent une fonction nommée IniFileMapping. IniFileMapping place tout le contenu d'un fichier .ini dans le Registre, avec des clés pour y stocker chaque ligne trouvée dans le fichier .ini. Ensuite, lorsque vous lancez un programme qui normalement lit ses paramètres dans un fichier .ini, une trappe (un "hook") intercepte tous les appels API aux fichiers .ini (win.ini, system.ini et, également, clock.ini) et commence par chercher les valeurs dans la clé de Registre: HKLM\software\Microsoft\Windows NT\CurrentVersion\IniFileMapping. Si un mappage .ini existe et la valeur est trouvée, elle sera retournée au programme appelant sinon, si la clé n'existe pas ou est vide, la recherche se poursuit dans les fichiers .ini. Pour les programme appelants, cela est totalement transparent.

Un autre élément trouvé fréquemment dans les lignes F2 est l'élément UserInit qui correspond à la clé HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\Userinit que l'on trouve dans Windows NT, 2000, XP et 2003. Cette clé précise quel programme doit être lancé juste après qu'un utilisateur ait ouvert une session dans Windows.

Que vous tapiez Alt/Cntrl/Del ou que vous cliquiez sur votre icone d'identification (avec votre mot de passe éventuel) la procédure de "logon" est la même :

Windows (WinLogon) appelle GINA (Graphical Identification and Authentication) pour obtenir l'identifiant et le mot de passe et génère un code de sécurité local unique (SID - Security ID) pour la session de l'utilisateur qu'il passe à LSASS (Local Security Authentority Subsystem Service).

LSASS procède à l'authentification et, si elle est réussie, LSASS inscrit l'utilisateur et les droits du groupe auquel il appartient.

Puis WinLogon lit le (les) valeurs de la clé HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\Userinit et exécute le (les) programme(s) inscrits dans cette clé (la valeur par défaut est userinit.exe dont la localisation par défaut est C:\windows\system32\userinit.exe) mais il est possible d'ajouter des programmes à lancer en même temps en les ajoutant dans cette clé, simplement séparés par une virgule. Il s'agit là de l'un des emplacements fréquemment utilisés par les crapules du Net pour y implanter le lancement systématique de programmes parasites.

userinit.exe établit le profil, polices, couleurs, etc. ... de l'utilisateur qui s'est identifié puis regarde la clé HKLM/software/Microsoft/Windows NT/CurrentVersion/Winlogon/Shell pour voir quel est le shell (bureau) à lancer (cette clé n'existe pas par défaut et la valeur par défaut est explorer.exe). Une fois le shell lancé, userinit.exe se termine (et le shell semble donc ne pas avoir de "parent" dans la session).

Puis se sont les scripts des 3 emplacements suivants qui sont exécutés :
HKLM / Software / Microsoft / Windows / CurrentVersion / RunOnceEx (que nous verrons avec la section O4 de HijackThis)
"User Properties / Profile / Logon Script" et "Group policy/policies – user configuration" qui ne sont pas analysés par HijackThis.

Un dossier sur tous les emplacements utilisables pour lancer quelque chose lors du démarrage de Windows peut être consulté sur Assiste.com : Liste des emplacements de lancement utilisés.

Pour F3
F3 est l'équivalent de F1 dans le registre, sous XP, 2000 et NT.
Voir F2, ci-dessus, pour des explications



Exemples
En rouge = exemples d'hostilités à supprimer ("Fix checked")
Pour F0
F0 - system.ini: Shell=Explorer.exe C:\WINDOWS\System32\FF.EXE
F0 - system.ini: Shell=Explorer.exe C:\WINDOWS\System32\System32.exe
F0 - system.ini: Shell=explorer.exe winuser32.exe
F0 - system.ini: Shell=Explorer.exe C:\WINDOWS\System32\cmd32.exe
F0 - system.ini: Shell=Explorer.exe C:\WINDOWS\Nail.exe
F0 - system.ini: Shell=Explorer.exe C:\WINDOWS\SYSTEM32\winmgd.win

Pour F1
F1 - win.ini: run=hpfsched
F1 - win.ini: run=C:\WINDOWS\SYSTEM32\mouse_configurator.win
F1 - win.ini: load=ptsnoop.exe mbtn.exe
F1 - win.ini: run=c:\windows\system\unldr32.exe

Pour F2
F2 - REG:system.ini: UserInit=userinit,nddeagnt.exe
F2 - REG:system.ini: Shell=explorer.exe beta.exe
F2 - REG:system.ini: Shell=Explorer.exe C:\WINDOWS\Nail.exe
F2 - REG:system.ini: UserInit=C:\WINDOWS\system32\userinit.exe,iycojeo.exe

Pour F3
F3 - REG:win.ini: run=C:\CAL80\TRAY.EXE
F3 - REG:win.ini: load=K:\WINDOWS\WinIogon.exe
F3 - REG:win.ini: run=K:\WINDOWS\WinIogon.exe
F3 - REG:win.ini: load=D:\DMI\WIN32\bin\ .bat;D:\DMI\WIN32\bin\ .exe;D:\DMI\WIN32\bin\ .com;D:\DMI\WIN32\bin\ .scr;D:\DMI\WIN32\bin\ .vbs;D:\WINDOWS\system32\ .bat;D:\WINDOWS\system32\ .exe;D:\WINDOWS\system32\ .com;D:\WINDOWS\system32\ .scr;D:\WINDOWS\system32\ .vbs;D:\WINDOWS\ .bat;D:\WINDOWS\ .exe;D:\WINDOWS\ .com;D:\WINDOWS\ .scr;D:\WINDOWS\ .vbs;D:\WINDOWS\System32\Wbem\ .bat;D:\WINDOWS\System32\Wbem\ .exe;D:\WINDOWS\System32\Wbem\ .com;D:\WINDOWS\System32\Wbem\ .scr;D:\WINDOWS\System32\Wbem\ .vbs



Que faire ? Boite à outils HijackThis
Pour F0
Supprimez ("Fix Cheked") toutes les lignes F0
Les lignes F0 sont toujours malveillantes donc supprimez-les ("Fix Checked""). Dans une ligne F0 si vous voyez une expression comme Shell=Explorer.exe autrechose.exe, vous devriez absolument la supprimer. En général vous pouvez supprimer ces éléments, mais il est préférable de faire une recherche avant. Voir les outils pour F0 dans la Boite à outils HijackThis.

Voir les outils à utiliser pour la section F0, F1, F2, F3 dans la Boite à outils HijackThis

Pour F1
Vérifiez, avant de supprimer ("Fix Cheked"), les lignes F1
Pour les éléments F1, il faut chercher sur le Net afin de déterminer s'il s'agit de programmes légitimes. Les lignes F1 sont généralement de très vieux programmes sains donc vous devriez faire des recherches complémentaires sur ce nom de fichier pour voir s'il est connu comme hostile ou légitime.
Notre liste des processus de démarrage d'Assiste.com peut vous aider à identifier ces items pour voir ce que c'est et si c'est légitime ou hostile (ou simplement inutile).

Voir les outils à utiliser pour la section F0, F1, F2, F3 dans la Boite à outils HijackThis

Pour F2
Pour les éléments F2 :
Si vous voyez UserInit=userinit.exe, avec ou sans nddeagnt.exe, comme dans l'exemple ci-dessus, vous pouvez laisser cet élément tranquille. Si vous voyez UserInit=userinit.exe (remarquez l'absence de virgule) cela est également correct. Si vous voyez un autre élément avec userinit.exe, il pourrait s'agir d'un parasite. Il en est de même pour F2 Shell =; si vous voyez explorer.exe seul, cela devrait être correct, sinon il pourrait s'agir d'un parasite. Vous pouvez en général supprimer ces éléments, mais il est préférable de faire une recherche avant. Voir les outils pour F0 dans la Boite à outils HijackThis.

Veuillez noter que lorsque l'un de ces éléments est corrigé, HijackThis ne supprime pas le fichier associé. Vous devez le supprimer manuellement.

Voir les outils à utiliser pour la section F0, F1, F2, F3 dans la Boite à outils HijackThis

Pour F3
Pour les éléments F3 (URLSearchHooks) :
Supprimez ("Fix checked") les lignes R3 inconnues. Toujours supprimez ("Fix checked") sauf si elles mentionnent un programme que vous reconnaissez, comme Copernic.
Cas particulier des lignes dont la clé comporte le caractère "_" (underscore - souligné) devant ou derrière son nom (ce qui n'est le cas d'aucune clé légitime). Ces clés sont parfois difficiles à détruire avec HijackThis. Utilisez alors RegEdit (Démarrer > Exécuter > RegEdit) puis localisez la clé HKCU\Software\Microsoft\Internet Explorer\URLSearchHooks et détruisez manuellement les valeurs dont le nom comporte, à l'extremité droite ou gauche, le caractère "_" (underscore - souligné). Ne touchez pas aux autres. En cas de doute, consultez un spécialiste sur un forum.

Voir les outils à utiliser pour la section F0, F1, F2, F3 dans la Boite à outils HijackThis