Masquer le processus dans le gestionnaire de tâches Windows.

                                  L'anonymat et le secret jouent souvent un rôle essentiel dans la réussite de la mise en œuvre de toute action, tant dans la réalité que dans la virtualité, en particulier dans les systèmes d'exploitation. Cet article explique comment devenir anonyme dans le système d'exploitation Windows. Toutes les informations sont fournies à titre informatif uniquement.

Nous allons donc essayer de nous cacher des yeux de l'utilisateur dans le gestionnaire de tâches Windows. La manière d'y parvenir est extrêmement simple en ce qui concerne celles basées sur l'interception de fonctions nucléaires (souvent non documentées) et sur la création de nos propres pilotes.

L'essence de la méthode:   Rechercher la fenêtre du gestionnaire de tâches -\u003e Rechercher une fenêtre enfant (liste) contenant les noms de tous les processus -\u003e Supprimer notre processus de la liste.

Comme vous pouvez le constater, aucune manipulation ne sera effectuée avec notre processus: cela a fonctionné comme il a fonctionné et fonctionnera pour lui-même. En règle générale, en tant qu’utilisateur Windows ordinaire ordinaire, il n’utilise aucun autre outil pour afficher les processus en cours sur son ordinateur; cela ne fait que jouer entre nos mains. Le processus ne sera pas détecté dans la plupart des cas.

Ce qui a été utilisé pour la recherche:

1) Spy ++ de Microsoft (pour étudier la hiérarchie du gestionnaire de tâches Windows)
  2) OllyDBG pour afficher les fonctions utilisées par le répartiteur pour obtenir un instantané des processus.
  3) En fait, moi-même taskmng.exe(Gestionnaire de tâches)

  Pour l'écriture de code, nous allons utiliser l'environnement Delphi. Au contraire, Delphi sera plus pratique dans notre cas que C ++. Mais ce n'est que mon humble avis.

Tout d’abord, nous allons essayer de savoir quelle est la liste des processus et comment elle fonctionne. Sur une demi-vue, il est clair qu'il s'agit d'une fenêtre normale de la classe “SysListView32” (liste), qui est mise à jour à une fréquence de 2 images par seconde (toutes les 0,5 seconde). Nous regardons la hiérarchie des fenêtres:

Comme vous pouvez le constater, la liste des processus est en fait la fenêtre habituelle de la classe «SysListView32», qui est un enfant de la fenêtre «Processus» (onglet), qui est également un enfant de la fenêtre principale du gestionnaire de tâches. Nous n'avons qu'un double niveau de nidification. De plus, la liste a une fenêtre enfant de la classe «SysHeader32» qui, comme il n’est pas difficile de le deviner, est un en-tête (marqueur de champ) pour la liste des processus.
Puisque nous avons une liste régulière, nous disposons de tout un ensemble de macros pour gérer son contenu. Leur diversité, à première vue, ravit. Mais beaucoup d'entre eux travaillent uniquement à partir du processus parent, c'est-à-dire que pour pouvoir les utiliser, il sera nécessaire d'imiter, comme s'ils étaient exécutés dans le processus parent. Mais tout le monde n'a pas une telle propriété, en particulier la macro-commande ListView_DeleteItem, qui supprime un élément de la fenêtre de la liste (classe «SysListView32»).
  Nous allons l'utiliser dans le processus. de notre  applications. Cette fonction est le deuxième paramètre qui obtient l’index de l’élément à supprimer.
  Maintenant, nous devons en quelque sorte déterminer le type d'index de l'élément avec l'étiquette du processus masqué dans le gestionnaire de tâches. Pour ce faire, nous devons en quelque sorte extraire tous les éléments (étiquettes avec les noms de processus) de la liste des processus du gestionnaire de tâches et les comparer de manière cohérente avec le nom du processus que nous voulons masquer.

En utilisant des macro-commandes du type ListView_GetItemText, nos actions seraient approximativement les suivantes:

1) L'allocation de mémoire dans le processus du gestionnaire de tâches (VirtualAllocEx)
  2) Envoi à la fenêtre enfant du gestionnaire de tâches d'un message LVM_GETITEMTEXT (SendMessage)
  3) Écrire dans la zone de mémoire sélectionnée du gestionnaire des tâches des informations sur l'élément de la liste (WriteProcessMemory)
  4) Lecture dans la mémoire du répartiteur des informations sur le processus qui nous intéressent (ReadProcessMemory)

En utilisant cette méthode, vous pouvez facilement vous "tirer une balle dans le pied" en comptant les octets de décalage à partir du début des différentes structures utilisées dans le code. En outre, cette méthode sera assez difficile pour ceux qui ne sont pas très profonds dans WinAPI, nous allons donc la retirer immédiatement. Dans d'autres domaines, trouver la mise en œuvre de cette méthode sur Internet ne sera pas difficile. Au lieu de cela, je vous suggérerai de créer votre propre liste de processus et, en vous concentrant déjà sur celle-ci, recherchez l'index de processus souhaité dans la liste de processus du gestionnaire de tâches.

Microsoft a décidé de ne pas s'inquiéter de l'outil appelé Gestionnaire des tâches et a utilisé les fonctions WinAPI habituelles pour obtenir tous les processus du système. Regarder superficiellement taskmng.exe  sous le débogueur:


Nous voyons l'utilisation des fonctions WinAPI CreateToolHelp32SnapShot.
  Tout le monde sait que «cette fonction peut être utilisée non seulement pour obtenir un instantané des processus, mais également des flux de processus ou des modules, par exemple. Mais dans ce cas, il est peu probable.
Nous nous sommes arrêtés au fait que nous voulions créer notre propre liste de processus et y chercher notre processus. Pour ce faire, utilisez la fonction trouvée dans le débogueur. Si nous ouvrons le gestionnaire de tâches sous l'onglet «Processus», nous constatons que tous les processus sont triés par ordre alphabétique pour une extraction facile. Par conséquent, nous devons obtenir une liste des noms de tous les processus du système. et les trier par ordre alphabétique croissant. Commençons à écrire du code dans Delphi.

Pour commencer, nous allons créer une application de fenêtre de démonstration avec deux minuteurs: le premier remodèle la liste avec des processus ayant la même fréquence que le gestionnaire de tâches Windows (toutes les deux secondes); le second déclenchera 1 000 fois par seconde et servira à suivre la mise à jour de la liste des processus dans le gestionnaire et, par conséquent, l'apparition de notre processus caché. Ajoutez également un bouton au formulaire.

Code:
  var ind entier; h: Thandle; last_c: entier; procedure UpdateList (); var th: THandle; entrée: PROCESSENTRY32; b: booléen; i, new_ind: entier; plist: TStringList; begin // Liste de processus: = TStringList.Create; // Créer une liste de processus th: = CreateToolHelp32SnapShot (TH32CS_SNAPPROCESS, 0); entry.dwSize: = sizeof (PROCESSENTRY32); b: = Process32First (th, entry); tandis que (b) ne commence plist.Add (entry.szExeFile); b: = Process32Next (th, entry); fin // Triez-le de sorte que les index des éléments // soient les mêmes que ceux du plist.Sort du gestionnaire de tâches. last_c: = plist.Count; // Recherche l'index de notre processus "explorer.exe" pour i: = 1 à plist.Count-1 do if (LowerCase (plist [i]) = "explorer.exe") then new_ind: = i-1; // Supprime un objet de la liste if (new_ind<>ind) puis ListView_DeleteItem (h, ind); ind: = new_ind; plist.Free; // Démarrer le chronomètre de suivi de mise à jour dans la liste des processus si (Form1.Timer2.Enabled = false), puis Form1.Timer2.Enabled: = true; fin procédure TForm1.HideProcessButton (Sender: TObject); begin // Recherche d'une fenêtre enfant de la classe "SysListView32" h: = FindWindow (nil, "Windows Task Manager"); h: = FindWindowEx (h, 0, nil, "Processus"); h: = FindWindowEx (h, 0, "SysListView32", nil); // Démarrer le minuteur de réorganisation de la liste de processus Timer1.Enabled: = true; fin procédure TForm1.Timer1Timer (Sender: TObject); commencer UpdateList (); fin procédure TForm1.Timer2Timer (Sender: TObject); begin // Rechercher les modifications dans la liste if (ListView_GetItemCount (h)\u003e last_c) alors ListView_DeleteItem (h, ind); last_c: = ListView_GetItemCount (h); fin

C'est tout le code.
  Par exemple, nous masquons dans le gestionnaire de tâches le processus du gestionnaire de tâches lui-même:

La voici:


Et en cliquant sur le bouton "Masquer le processus", le processus disparaît de la liste:


Toutes les traces de présence dans le système sont effacées et il s'exécute calmement comme d'habitude quelque part dans les profondeurs du processeur :)

Outro
  Eh bien, je pense que cette voie mérite d’exister, même si elle nécessite des améliorations mineures. Oui, bien sûr, il ne peut pas être utilisé pour cacher le processus au système lui-même, mais se cacher dans le système Windows standard, qui est utilisé par la part du lion de tous les utilisateurs, n’est pas mauvais non plus.
  J'espère que j'ai réussi à vous intéresser au moins un peu avec ce sujet.

A bientôt! Et que le pouvoir de l'anonymat soit avec vous ...

Tags:

       Ajouter des tags

    L'espion cache son emplacement, son processus et son service dans le système. Mais ce n'est pas toutes les surprises. Il sait se défendre en bloquant tous les moyens possibles pour mener à bien ses processus et supprimer des fichiers. Les logiciels espions le font au cas où vous les trouverez. Cependant, il est impossible de détecter la présence d’un espion dans le système. Pour cette raison, de nombreux utilisateurs perdent leurs informations personnelles sans même le savoir.

    Pour savoir si vous êtes surveillé à l'aide de cet espion ou non, il est inutile d'afficher les moniteurs standard, en essayant de le rechercher manuellement ou en analysant le système. Lors des tests, les antivirus ne détectent pas les logiciels espions. L'utilisateur a donc l'impression que tout est en ordre.

    Pour détecter la surveillance, accédez au moniteur "Processus système". Ouvrez ensuite le «Moniteur de processus cachés» en cliquant sur le bouton «Processus cachés». Dans la fenêtre ouverte, les processus qui se cachent du système sont surlignés en rouge.


    Tout en un Keylogger est détecté. Ajoutez le nom du processus à la base de données des menaces via le menu contextuel du programme. Dans différents systèmes de test, l'espion avait différents noms de processus et de fichiers. Lorsque vous essayez de terminer un processus caché, vous recevez un message d'erreur. Vous pouvez entrer dans le dossier avec l'application espion via l'élément du menu contextuel, cela ne fonctionnera pas d'une autre manière. L’utilisation du programme de désinstallation ne fonctionnera pas non plus - l’espion s’empêche d’être supprimé, ce qui signifie que d’autres processus contrôlent la situation avec le travail de l’espion. Ouvrez «Moniteur de services cachés» (uniquement dans les versions Pro) dans la fenêtre «Services système». Tout service se cachant du système sera surligné en rouge. Dans la version standard de la liste des services système, cette surveillance ne peut pas être identifiée.


    Le service caché de l'espion All In One Keylogger est également détecté. Ce service et ce processus se protègent et ne permettent pas de s’arrêter. Ajoutez-le à la base de données des menaces via le menu contextuel. La première tâche est terminée - l'observation est révélée. Maintenant, vous savez avec certitude que vous êtes sous surveillance.

    Pour supprimer l'espion All In One Keylogger, entrez dans la plate-forme de sécurité COVERT en cliquant sur le bouton indiquant: «Connectez-vous à la plate-forme de sécurité».
      Dans la fenêtre «Processus système», vous verrez les processus surlignés en rouge. Dans le menu contextuel, complétez-les. Dans la plate-forme de défense, l'espion ne peut pas se cacher et se protéger.


    Ensuite, ouvrez la fenêtre «Services système». Dans la liste standard «Services actifs», via le menu contextuel, arrêtez et supprimez le service surligné en rouge (ou dans la liste «Tous les services», il peut être surligné en jaune). Dans la plate-forme de protection, l'espion ne peut pas se cacher et se protéger.


    Une fois les actions effectuées, quittez la plateforme de protection et supprimez le dossier d'espionnage contenant les fichiers. Il ne sera pas caché et protégé.

    Si vous avez installé COVERT Base ou COVERT USB sans la fonction «Moniteur de services cachés», accédez à la plate-forme de protection COVERT et travaillez avec toutes les applications pour dissimuler vos actions de l'espionnage All In One Keylogger. Les logiciels espions ne pourront pas obtenir de données sur votre activité tant que vous serez à l'intérieur de la plate-forme de toute version du programme COVERT.

    Matériel du site

    Cet article décrit les méthodes et les méthodes d'extraction de fichiers cachés (rootkits, pilotes) à l'aide des fonctionnalités non documentées de l'analyseur antivirus Dr.Web® et d'utilitaires tiers supplémentaires.

    Dr.Web Scanner

    Si vous connaissez le nom du pilote dans la session en cours, vous pouvez le copier en quarantaine à l'aide d'un scanner et l'envoyer au laboratoire antivirus.

    • Créez un fichier texte dans le répertoire anti-virus Drweb, par exemple
      filelist.txt

    Si vous avez installé la version 5.0 ou une version ultérieure, la création du fichier filelist.txt dans le répertoire antivirus sera bloquée par la légitime défense. Dans ce cas, créez le fichier filelist.txt dans un autre répertoire (voir exemple).

    • Ecrivez le chemin complet du fichier du pilote de rootkit, par exemple
      c: \\ windows \\ system32 \\ drivers \\ driver.sys

    Les lignes d'un fichier peuvent être nombreuses.

    • Exécutez le scanner avec les paramètres:
      drweb32w.exe /copy:filelist.txt

    Par exemple:  Un antivirus est installé dans le répertoire C: \\ Program Files \\ DrWeb et j'ai créé un fichier texte à la racine du lecteur C: \\ filelist.txt.

    "C: \\ Program Files \\ DrWeb \\ drweb32w.exe" /copy:C:\\filelist.txt

    Attention! Des citations sont nécessaires dans ce cas!

    • Ou si vous utilisez CureIT, alors
    launch.exe -sp / copy: [chemin_accès_du_fichier_de_liste]

    Après cela, si un tel pilote existe sur le disque, il est en quarantaine dans le dossier C: \\ Program Files \\ DrWeb \\ Infected. !!! (ou dans le dossier% USERPROFILE% \\ DoctorWeb \\ Quarantine \\ de KureIta), il y aura un fichier.sys.sys.dwq. Maintenant, nous l’archivons et l’envoyons à virlab.

    Gmer

    • Sous l'onglet Rootkit / Malware, cliquez sur le bouton Analyser. Nous attendrons que toutes les données soient collectées par le programme. Cliquez ensuite sur l'onglet "\u003e\u003e\u003e\u003e
    • Cliquez avec le bouton droit sur le module requis et sélectionnez "Copier" dans le menu contextuel.
    • Si le menu "Copier" n'est pas actif, sélectionnez "Module de vidage".
    • Sur l'onglet "Processus", nous examinons le processus nécessaire et, dans le champ "Commande", entrez la commande cmd.exe / c copy

    Par exemple:

    Cmd.exe / c copie c: \\ drweb \\ spidernt.exe c: \\ spidernt.exe

    Dans ce cas, nous aurons sur le disque C: le fichier exécutable du processus spidernt.exe

    Si aucune de ces méthodes ne vous a aidé, vous pouvez alors rechercher le fichier.

    • Il est nécessaire de cliquer avec la souris sur l'onglet "\u003e\u003e\u003e\u003e" pour ouvrir les onglets masqués.
    • Allez dans l'onglet "Fichiers"
    • Nous recherchons un fichier comme dans l'Explorateur, sélectionnez-le.
    • Appuyez sur le bouton "Copier". Enregistrez le fichier dans le répertoire dont vous avez besoin.


    Rku

    • Sélectionnez l'onglet "Pilotes" et sélectionnez "Copier" dans le menu contextuel.
    • Si vous ne pouvez pas copier - faites un cliché. Pour ce faire, sélectionnez la commande "Dump Selected" via le menu contextuel.


    Rootrepeal

    • Sélectionnez l'onglet "Process" et cliquez sur le bouton "Scan"
    • Faites un clic droit sur le processus suspect et sélectionnez l'élément de menu "Copier le fichier ..."


    Suppression retardée à l'aide de

    Parfois, une situation se présente où il est nécessaire de supprimer un fichier (cheval de Troie), mais cela ne fonctionne pas avec les outils standard d'Explorer. Pour ce faire, utilisez HJ. Après avoir lancé HJ, cliquez sur le bouton "Ouvrir la section Outils divers", puis cliquez sur le bouton "Supprimer un fichier au redémarrage ...". Une boîte de dialogue de sélection de fichier apparaît (si le fichier n'est pas visible, vous pouvez sélectionner le dossier dans lequel il se trouve et entrer manuellement le nom du fichier et son extension ... ou utiliser les recommandations.

    Tous les systèmes d'exploitation multitâches modernes, y compris Linux, exécutent plusieurs processus pour effectuer chacune des tâches. L'utilisation du bloc-notes, de la fenêtre de terminal, du serveur SSH, de la connexion SSH, etc., constituent tous des processus distincts. Le système d'exploitation, dans notre cas, Linux distribue les ressources système (temps CPU, mémoire, E / S), entre les processus, afin que chaque processus puisse fonctionner.

    Pour afficher une liste des processus en cours d'exécution, utilisez l'utilitaire ps:

    Les paramètres auxiliaires indiquent à l'utilitaire qu'il est nécessaire de générer tous les processus système avec des informations sur l'utilisateur à partir duquel ils ont été démarrés et la commande call.


    Comme vous pouvez le constater, la liste contient des processus appartenant à différents utilisateurs, y compris pi - l'utilisateur par défaut dans Raspberry Pi, root et www-data. Voici une autre capture d'écran qui montre les processus et les informations sur leur commande de démarrage et leurs paramètres:


    Si vous regardez au bas de la liste, vous verrez la nano commande MYBANKACCOUNTNUMBER.TXT exécutée par l'utilisateur john. Ces données sont fournies à tous les utilisateurs du système et peuvent être utilisées à des fins malveillantes.

    Dans les versions 3.2 et supérieures du noyau, la fonction consistant à interdire à l'utilisateur de visualiser des informations sur des processus qui ne lui appartiennent pas est implémentée. La commande ps extrait les informations de processus du système de fichiers / proc. Un nouveau paramètre, hidepid, a été ajouté et est utilisé lors du montage du système de fichiers. Cela vous permet de cacher des informations sur les processus aux utilisateurs qui n'y ont pas accès.

    • hidepid = 0 est la valeur par défaut, tous les utilisateurs peuvent lire les fichiers / proc / pid
    • hidepid = 1 - les utilisateurs peuvent uniquement accéder à leur propre sous-répertoire / proc / pid, mais les fichiers d'état cmdline, io, sched *, sont accessibles à tous.
    • hidepid = 2 - tous les sous-répertoires / proc / pid sont cachés des utilisateurs

    Le système de fichiers / proc peut être remonté à la volée à l'aide de l'option de montage de l'utilitaire de montage. Pour tester hidepid, vous pouvez utiliser la commande suivante:

    sudo mount -o remount, rw, hidepid = 2 / proc

    Ensuite, essayez de relancer ps:

    Nous ne verrons maintenant que les processus exécutés à partir de l'utilisateur pi.

    Pour rendre ces modifications permanentes, vous devez éditer le fichier / etc / fstab. Ce fichier contrôle le montage des systèmes de fichiers au démarrage.

    sudo nano / etc / fstab

    Trouvez cette ligne:

    proc / proc proc par défaut 0 0

    Et remplacez-le par:

    proc / proc proc par défaut, hidepid = 2 0 0

    Fermez l'éditeur avec le raccourci clavier Ctrl + C et redémarrez votre ordinateur. Après le redémarrage, / proc sera monté avec les options correctes. Pour vérifier les options de montage, utilisez les commandes mount et grep.

    monter | Grep Hidpid

    Maintenant, essayez de lancer ps:

    Comme vous pouvez le constater, seuls les processus appartenant à l'utilisateur actuel sont visibles. Mais il y a une remarque. Le superutilisateur peut toujours voir tous les processus et paramètres d’appel.

    Un moyen de détecter les virus sur un PC consiste à afficher les processus en cours dans le gestionnaire de tâches. Les programmes anti-virus ne gèrent pas toujours à 100% les tâches qui leur sont assignées. Parfois, vous devez attraper les virus manuellement.

    De nombreux virus cachent leur présence dans le gestionnaire de tâches - ils sont invisibles. Dans ce cas, des gestionnaires de tâches alternatifs viennent à la rescousse. Chacun d'entre eux peut être téléchargé en ligne et en profiter. Windows intégré, son propre gestionnaire de tâches est non informatif et ne montre pas les processus cachés. Des utilitaires tiers similaires sont privés de cet inconvénient et affichent des processus cachés. Si le répartiteur standard ne contient aucun processus apparaissant dans la fenêtre d'analyse d'un autre utilitaire, vous devez alors porter une attention particulière à ces processus. Il s'agit peut-être d'applications malveillantes. Il est nécessaire de regarder le fabricant du processus, il est généralement toujours clairement et clairement indiqué, ainsi que la quantité de ressources que ce processus consomme. Si beaucoup, comparé aux autres, alors il est extrêmement méfiant.

    Une telle inspection doit être effectuée lorsque les applications sont désactivées, de sorte que les processus standard et les virus restent, bien sûr. Mieux fait en Mode sans échec. Très bien, lorsque vous venez d'installer Windows, prenez un instantané de la page Gestionnaire des tâches avec les processus standard afin de pouvoir comparer les différences. L'instantané est dû au fichier enregistré avec l'écran, et non à l'instantané par la caméra (en appuyant sur le bouton Imprimer l'écran du clavier, qui ne sait pas comment le faire, demandez dans les commentaires).

    Alors, considérons les processus standard:

    1. Sistem  - processus système pas d'extension exeSi un tel processus existe avec l'extension, ce virus est déguisé en processus système.
    2. Smss.exe  -processus gérant le lancement des comptes utilisateurs. Si vous avez activé, pour le moment, un compte de session et si vous traitez plusieurs fois Smss.exe, tirez les conclusions appropriées.
    3. Csrss .exe.  - le processus régissant la création de fenêtres doit toujours être un.
    4. Winlogon.exe.  - est responsable de la connexion utilisateur autoritaire. Un seul.
    5. Services.exe.  - fournit les services du système d'exploitation, s'exécute pour le compte du système, également un.
    6. Lsass.exe  - assure la sécurité du système d'exploitation, toujours un.
    7. Svchost.exe. - exécuter des fichiers Dll (bibliothèque connectée dynamiquement, y compris les pilotes, les contrôles ActiveX) nom d'utilisateur: LOCAL SERVICE, NETWORK SERVICE et SYSTEM, ne doit pas dépasser six.
    8. Système - est responsable de la disposition du clavier et de la barre de langue dans la barre des tâches. Doit en être un.
    9. Explorer.exe.  - gère le bureau (étiquettes, icônes, etc.), son interface. Fonctionne une fois.
    10. Spoolsv.exe.  - place des objets dans la file d'attente. Un Aucune imprimante - et vous pouvez désactiver le processus n'est pas critique.
    11. Wdfmgr .exe.  - est responsable du bon fonctionnement du pilote du lecteur multimédia, n'est pas non plus un processus critique.
    12. Taskmgr.exe. - Gestionnaire de tâches lui-même
    13. Eh bien, le dernier - Système de ralenti. Affiche des ressources gratuites.

    En mode normal, en plus de ces processus, vous aurez les processus d'exécution des applications et des pilotes. Pour désactiver un processus suspect, sélectionnez-le et cliquez sur Arrêter le processus.

    C’est l’un des moyens plus sûrs que, par exemple, d’expérimenter avec le registre du système.

    Vous aimez cet article? Partager avec des amis: