Apprenez les tactiques, techniques et connaissances communes contradictoires (ATT @ CK). Tactiques d'entreprise. 3e partie

Reliure (persistance)


Liens vers toutes les parties:
Partie 1. Obtention de l'accès initial (accès initial)
Partie 2. Exécution
Partie 3. Fixation (persistance)
Partie 4. Escalade de privilèges
Partie 5. Évasion de la défense
Partie 6. Obtention des informations d'identification (accès aux informations d'identification)
Partie 7. Découverte
Partie 8. Mouvement latéral

La tâche principale de sécuriser l'accès est d'assurer une présence constante dans le système attaqué, car l'accès peut être perdu en raison d'un redémarrage du système attaqué, de la perte des informations d'identification ou du blocage des outils d'accès à distance en raison de la détection d'une attaque.

L'auteur n'est pas responsable des conséquences possibles de l'application des informations énoncées dans l'article, et s'excuse également pour d'éventuelles inexactitudes faites dans certaines formulations et termes. Les informations publiées sont une nouvelle version gratuite du contenu de MITRE ATT & CK .

Les méthodes permettant d'assurer la constance du système peuvent être divisées en 3 catégories:
  • Création non autorisée de comptes ou vol d'informations d'identification existantes;
  • Installation et lancement cachés d'outils d'accès à distance;
  • Apporter des modifications à la configuration du système attaqué à l'aide de laquelle il devient possible d'exécuter de nombreux codes malveillants. Un code malveillant peut être lancé automatiquement chaque fois que le système démarre ou que chaque utilisateur se connecte au système, lance des services modifiés ou malveillants, lance certains programmes par l'utilisateur ou démarre le processus de mise à jour du système ou d'un logiciel tiers.

De plus, les techniques de verrouillage d'accès offertes par ATT & CK sont présentées.

Modification des fichiers ~ / .bash_profile et ~ / .bashrc


Système: Linux, macOS
Droits: utilisateur, administrateur
Description: les attaquants peuvent incorporer du code dans les fichiers ~ / .bash_profile et ~ / .bashrc ( conçus pour créer un environnement utilisateur dans le système d'exploitation ), qui sera exécuté lorsque l'utilisateur se connecte ou démarre un nouveau shell. Le fichier ~ / .bash_profile est exécuté lorsque l'utilisateur se connecte, ~ / .bashrc est exécuté lorsque les shells sont ouverts de manière interactive. Lorsqu'un utilisateur se connecte (localement ou à distance, par exemple via SSH) avec un nom d'utilisateur et un mot de passe, ~ / .bash_profile est exécuté avant le retour de l'invitation de l'utilisateur. Après cela, chaque fois qu'un nouveau shell s'ouvre, ~ / .bashrc est exécuté.
Sur macOS, Terminal.app est légèrement différent en ce sens qu'il lance le shell de connexion par défaut à chaque ouverture de la fenêtre du terminal, invoquant ainsi ~ / .bash_profile à chaque fois.

Recommandations de protection: octroi de droits de modification des fichiers ~ / .bash_profile et ~ / .bashrc uniquement aux administrateurs autorisés.

Modification des fichiers exécutables des applications "fonctionnalités d'accessibilité de Windows" (fonctionnalités d'accessibilité)


Système: Windows
Droits: Administrateur
Description: les applications d'accessibilité (loupe d'écran, clavier à l'écran, etc.) peuvent être lancées à l'aide de combinaisons de touches avant qu'un utilisateur ne se connecte au système. Un attaquant peut remplacer les fichiers de démarrage de ces programmes ou changer la façon dont ils sont lancés et ouvrir une console de commande ou obtenir une porte dérobée sans se connecter.
  • C: \ Windows \ System32 \ sethc.exe - lancé en appuyant 5 fois sur la touche Maj;
  • C: \ Windows \ System32 \ utilman.exe - lancé en appuyant sur la combinaison de Win + U.

Dans WinXP et versions ultérieures, sethc.exe et utilman.exe peuvent être remplacés, par exemple, par cmd.exe, puis lorsque vous appuyez sur la combinaison de touches souhaitée, cmd.exe démarre avant d'entrer dans Windows avec les privilèges système.
Dans Vista et les versions ultérieures, vous devez modifier la clé de Registre qui configure cmd.exe ou un autre programme en tant que débogueur, par exemple, pour ultiman.exe. Après avoir modifié le registre et appuyé sur la combinaison de touches souhaitée sur l'écran de connexion ou lors de la connexion à l'hôte via RDP, cmd.exe avec les droits système sera exécuté.
Il existe également des programmes Windows qui peuvent être utilisés pour implémenter cette technique d'attaque:
  • C: \ Windows \ System32 \ osk.exe;
  • C: \ Windows \ System32 \ Magnify.exe;
  • C: \ Windows \ System32 \ Narrator.exe;
  • C: \ Windows \ System32 \ DisplaySwitch.exe;
  • C: \ Windows \ System32 \ AtBroker.exe.


Recommandations de sécurité: configurez le début de l'authentification réseau obligatoire pour les utilisateurs distants avant de créer une session RDP et d'afficher l'écran de connexion ( activé par défaut dans Windows Vista et versions ultérieures ). Utilisez la passerelle Bureau à distance pour gérer les connexions et configurer la sécurité RDP.

Modification de la clé des DLL AppCert


Système: Windows
Droits: administrateur, système
Description: les DLL spécifiées dans la valeur de clé AppCertDLLs sont chargées dans chaque processus qui appelle les fonctions d'API fréquemment utilisées: CreateProcess, CreateProcessAsUser, CreateProcessWithLoginW, CreateProcessWithTokenW, WinExec . La valeur de la clé AppCertDLLs peut être utilisée de manière abusive en provoquant le chargement d'une DLL malveillante et en exécutant certains processus. AppCertDLLs est stocké dans la clé de registre suivante:
HKEY_LOCAL_MACHINE \ System \ CurrentControlSet \ Control \ Session Manager .

Recommandations de protection: utilisez tous les moyens possibles pour bloquer les logiciels potentiellement dangereux et télécharger des DLL inconnues, comme AppLocker et DeviceGuard.

Modification de la clé des DLL AppInit


Système: Windows
Droits: administrateur, système
Description: les DLL spécifiées dans la valeur de clé AppInit_DLLs sont chargées dans chaque processus chargé par user32.dll. En pratique, c'est presque tous les programmes.
AppInit_DLLs est stocké dans les clés de registre suivantes:
  • HKEY_LOCAL_MACHINE \ Software \ Microsoft \ Windows NT \ CurrentVersion \ Windows;
  • HKEY_LOCAL_MACHINE \ Software \ Wow6432Node \ Microsoft \ Windows NT \ CurrentVersion \ Windows.

La valeur de la clé AppInit_DLLs peut être utilisée abusivement pour dépasser les privilèges en chargeant des DLL malveillantes et en démarrant certains processus. La fonctionnalité AppInit_DLLs est désactivée dans Windows 8 et versions ultérieures lorsque Secure Boot est activé.

Recommandations de protection: envisagez d'utiliser une version du système d'exploitation antérieure à Windows 8 et d'activer un démarrage sécurisé. Utilisez toutes sortes de moyens pour bloquer les logiciels potentiellement dangereux et télécharger des DLL inconnues, telles que AppLocker et DeviceGuard.

Abus du sous-système de compatibilité des applications (Application Shimming)


Système: Windows
Droits: Administrateur
Description: l' infrastructure / l'infrastructure de compatibilité des applications Microsoft Windows a été créée pour garantir la compatibilité des programmes avec les mises à jour Windows et les modifications du code du système d'exploitation. Le système de compatibilité utilise les soi-disant shim ("joints") - des bibliothèques qui agissent comme un tampon entre le programme et le système d'exploitation. À l'aide du cache de shim, le système détermine le besoin de joints de shim (stockés en tant que base de données .sdb). Divers fichiers .sdb stockent diverses procédures pour intercepter le code d'application, le traiter, puis le rediriger vers le système d'exploitation. La liste de tous les joints shim installés par le programme d'installation (sdbinst.exe) est stockée par défaut dans:
  • % WINDIR% \ AppPatch \ sysmain.sdb ;
  • HKLM \ Software \ Microsoft \ Windows NT \ CurrentVersion \ AppCompatFlags \ InstalledSDB .

Les bases de données shim personnalisées sont stockées dans:
  • % WINDIR% \ AppPatch [64] \ Custom;
  • HKLM \ Software \ Microsoft \ Windows NT \ CurrentVersion \ AppCompatFlags \ Custom .

Pour garantir la protection en mode utilisateur, la possibilité de changer le noyau du système d'exploitation à l'aide de shim-gaskets est exclue et des droits d'administrateur sont requis pour les installer. Cependant, certains cales peuvent être utilisées pour contourner le contrôle de compte d'utilisateur (UAC), l'injection de DLL, désactiver la prévention de l'exécution des données et le traitement des exceptions de structure , ainsi que pour intercepter les adresses mémoire. Un attaquant utilisant shim-gaskets peut augmenter les privilèges, installer des portes dérobées, désactiver la protection du système d'exploitation, comme Windows Defender.

Recommandations de protection: Il n'y a pas beaucoup de façons d'empêcher le shim d'application. La désactivation de la compatibilité des applications n'est pas recommandée afin d'éviter des problèmes avec la stabilité du système d'exploitation. Microsoft a publié KB3045645 , qui supprimera l'indicateur «élévation automatique» dans le fichier sdbinst.exe pour empêcher l'utilisation du système de shim pour contourner l'UAC.

Modification des composants du package d'authentification Windows


Système: Windows
Droits: Administrateur
Description: les DLL du pack d'authentification Windows sont chargées par le processus LSA (Local Security Authority) au démarrage du système et prennent en charge plusieurs processus de connexion et plusieurs protocoles de sécurité du système d'exploitation. Les attaquants peuvent utiliser le mécanisme d'exécution automatique LSA en plaçant un lien vers un fichier binaire dans la clé de registre suivante:
HKLM \ SYSTEM \ CurrentControlSet \ Control \ Lsa \ Authentication Packages: [cible binaire] .
[Binaire cible] sera lancé par le système lorsque les packs d'authentification seront téléchargés.

Recommandations de protection: sous Windows 8.1, Windows Server 2012 R2 et versions ultérieures, vous pouvez le faire fonctionner en tant que processus protégé (PPL) à l'aide de la clé de registre:
HKLM \ SYSTEM \ CurrentControlSet \ Control \ Lsa \ RunAsPPL = DWORD: 00000001 ,
ce qui nécessite que toutes les DLL chargées par les LSA soient signées avec un certificat numérique Microsoft.

Création de travaux BITS (travaux BITS)


Système: Windows
Droits: utilisateur, administrateur, système
Description: Le service de transfert intelligent en arrière-plan Windows (BITS) est un mécanisme de transfert asynchrone de fichiers via le modèle COM (Component Object Model) en utilisant une faible bande passante. BITS est généralement utilisé par les mises à jour, les messageries instantanées et d'autres applications qui préfèrent travailler en arrière-plan sans interrompre le fonctionnement des autres applications réseau. Les tâches de transfert de fichiers sont représentées comme des tâches BITS qui contiennent une file d'attente d'une ou plusieurs opérations sur les fichiers. L'interface de création et de gestion des tâches BITS est disponible dans l'outil PowerShell et BITSAdmin. Les attaquants peuvent utiliser BITS pour télécharger, lancer, puis nettoyer après avoir exécuté du code malveillant. Les tâches BITS sont stockées de manière autonome dans la base de données BITS, tandis que le système ne crée pas de nouveaux fichiers ou entrées de registre, souvent BITS est autorisé par le pare-feu. À l'aide des tâches BITS, vous pouvez prendre pied dans le système en créant de longues tâches (par défaut 90 jours) ou en appelant un programme arbitraire après la fin d'une tâche BITS ou d'une erreur (y compris après le redémarrage du système d'exploitation).

Recommandations de protection: BITS est une fonctionnalité standard du système d'exploitation, dont l'utilisation est difficile à distinguer des activités malveillantes.Le vecteur de protection doit donc viser à empêcher le lancement d'outils malveillants au début de la chaîne d'attaque. La désactivation complète de BITS peut arrêter les mises à jour logicielles légitimes, cependant, vous pouvez envisager de restreindre l'accès à l'interface BITS à des utilisateurs et groupes d'accès spécifiques, et vous pouvez également limiter la durée de vie des tâches BITS, qui est définie en modifiant les clés suivantes:
  • HKEY_LOCAL_MACHINE \ Software \ Policies \ Microsoft \ Windows \ BITS \ JobInactivityTimeout;
  • HKEY_LOCAL_MACHINE \ Software \ Policies \ Microsoft \ Windows \ BITS \ MaxDownloadTime .

Bootkits


Système: Linux, Windows
Droits: administrateur, système
Description: Bootkit est un type de malware qui peut modifier les secteurs de démarrage d'un disque dur, y compris le Master Boot Record (MBR) et le Volume Boot Record (VBR). Les attaquants peuvent utiliser Bootkit pour se connecter aux systèmes situés sous le système d'exploitation. MBR - la section du chemin de fer, qui est chargée immédiatement après l'achèvement de l'initialisation matérielle du BIOS. Un attaquant autorisé à réécrire le MBR peut remplacer le code du chargeur de démarrage par un code malveillant. VBR est la partition de disque dur qui reçoit le contrôle du processus de démarrage du MBR. Par analogie avec l'option de réécriture du MBR, un attaquant peut exécuter du code malveillant au démarrage du système.

Recommandations de protection: Utilisation des outils de contrôle d'intégrité MBR et VBR. Utilisation de Trusted Platform Module (TPM) et Secure Boot.

Extensions de navigateur


Système: Windows, Linux, macOS
Droits: utilisateur
Description: En règle générale, les plugins ont tous les accès et les droits qu'un navigateur peut obtenir. Des plugins malveillants peuvent être installés en téléchargeant des applications malveillantes déguisées en programmes légitimes utilisant des techniques d'ingénierie sociale, du phishing ou un attaquant qui a déjà compromis le système. Les plugins malveillants peuvent ouvrir des sites Web en arrière-plan, voler des informations qu'un utilisateur saisit dans un navigateur, y compris les informations d'identification, pour être utilisées comme installateurs d'outils d'administration à distance (RAT) et correctifs pour le système.

Recommandations de protection: installez les plugins uniquement à partir de sources fiables. Contrôlez les plugins installés à l'aide de la stratégie de groupe. Empêcher l'installation de plugins par des utilisateurs ordinaires. Inventaire et surveillance des plugins installés.

Modification des paramètres des associations de fichiers (Modifier l'association de fichiers par défaut)


Système: Windows
Droits: utilisateur, administrateur, système
Description: les attaquants peuvent modifier les associations de fichiers pour exécuter des commandes arbitraires. Le choix des associations de fichiers avec les applications est stocké dans le registre Windows et peut être modifié par les utilisateurs, les administrateurs et les programmes qui ont accès au registre. Les applications peuvent modifier les associations pour invoquer des programmes arbitraires. Les paramètres des associations système sont stockés dans le registre: HKEY_CLASSES_ROOT \. [Extension] , par exemple, HKEY_CLASSES_ROOT \ .txt . Les différentes commandes sont répertoriées en sous-sections: HKEY_CLASSES_ROOT \ [handler] \ shell \ [action] \ [command] , par exemple:
  • HKEY_CLASSES_ROOT \ txtfile \ shell \ open \ [commande];
  • HKEY_CLASSES_ROOT \ txtfile \ shell \ print \ [commande];
  • HKEY_CLASSES_ROOT \ txtfile \ shell \ printto \ [commande];

[commande] est la commande qui sera exécutée lors de l'ouverture du fichier avec l'extension spécifiée.

Meilleures pratiques de sécurité: suivez les recommandations de Microsoft concernant les associations de fichiers. Utilisez tous les moyens possibles pour bloquer les logiciels potentiellement dangereux, tels que AppLocker et DeviceGuard.

Micrologiciel des composants


Système: Windows
Droits: Système
Description: Certains cybercriminels peuvent utiliser des outils sophistiqués pour compromettre les composants informatiques et y installer des micrologiciels malveillants, qui exécuteront du code malveillant en dehors du système d'exploitation ou même du micrologiciel du système principal (Bios). La technique consiste à flasher des composants informatiques qui n'ont pas de système de contrôle d'intégrité intégré, par exemple des disques durs. Un appareil doté d'un micrologiciel malveillant peut fournir un accès constant au système attaqué malgré les pannes et l'écrasement du disque dur. La technique est conçue pour surmonter la protection logicielle et le contrôle d'intégrité.

Interception de liens et détournement de modèle d'objet de composant de liens


Système: Windows
Droits: utilisateur
Description: Microsoft Component Object Model (COM) est une technologie permettant de créer des logiciels basés sur les composants en interaction d'un objet, chacun pouvant être utilisé simultanément dans de nombreux programmes. Les attaquants peuvent utiliser COM pour injecter du code malveillant qui peut être exécuté au lieu d'un code légitime en capturant des liens COM et des liens. Pour intercepter un objet COM, vous devez remplacer le lien vers un composant système légitime dans le registre Windows. Un autre appel à ce composant exécutera du code malveillant.

Recommandations de protection: les mesures préventives pour empêcher cette attaque ne sont pas recommandées, car les objets COM font partie du système d'exploitation et sont installés dans le logiciel système. Le blocage des modifications apportées aux objets COM peut affecter la stabilité du système d'exploitation et des logiciels. Le vecteur de protection est recommandé pour bloquer les logiciels malveillants et potentiellement dangereux.

Créer des comptes


Système: Windows, Linux, macOS
Droits: Administrateur
Description: les attaquants disposant d'un accès suffisant peuvent créer des comptes locaux ou de domaine pour une consolidation ultérieure dans le système. Les commandes utilisateur réseau peuvent également être utilisées pour créer des comptes.

Recommandations de sécurité: utilisation de l'authentification multifacteur. Configurez les paramètres de sécurité sur les serveurs importants, configurez les contrôles d'accès, les pare-feu. Interdiction d'utiliser un compte d'administrateur de domaine pour effectuer des opérations quotidiennes pendant lesquelles un attaquant peut obtenir des informations sur le compte. Les attaquants qui ont créé des comptes dans le système ne peuvent obtenir qu'un accès limité au réseau si les niveaux d'accès sont correctement bloqués. Les comptes ne peuvent être nécessaires que pour sécuriser l'accès à un système distinct.

Interception de recherche de DLL (détournement de commande de recherche de DLL)


Système: Windows
Droits: utilisateur, administrateur, système
Description: La technique consiste à exploiter les vulnérabilités de l'algorithme pour trouver par les applications les fichiers DLL dont elles ont besoin pour fonctionner ( MSA2269637 ). Souvent, le répertoire de recherche de DLL est le répertoire de travail du programme. Les attaquants peuvent donc remplacer la DLL source par une DLL malveillante portant le même nom de fichier.
Des attaques à distance sur les recherches de DLL peuvent être effectuées lorsque le programme installe son répertoire actuel dans un répertoire distant, par exemple, un partage réseau. De plus, les attaquants peuvent modifier directement la méthode de recherche et de chargement des DLL en remplaçant les fichiers .manifest ou .local, qui décrivent les paramètres de recherche de DLL. Si le programme attaqué fonctionne avec un niveau de privilèges élevé, la DLL malveillante chargée par celui-ci sera également exécutée avec des droits élevés. Dans ce cas, la technique peut être utilisée pour augmenter les privilèges de l'utilisateur à l'administrateur ou au système.

Recommandations de protection: Empêchez le chargement de DLL à distance (activé par défaut dans Windows Server 2012+ et disponible avec les mises à jour pour XP + et Server 2003+). Active le mode de recherche sécurisé pour les DLL, ce qui limite les répertoires de recherche aux répertoires tels que % SYSTEMROOT% avant d'effectuer une recherche de DLL dans le répertoire d'application actuel.
Activation du mode de recherche de DLL sécurisée:
Configuration ordinateur> [Stratégies]> Modèles d'administration> MSS (hérité): MSS: (SafeDllSearchMode) Activez le mode de recherche DLL sécurisée.
Clé de registre correspondante:
HKLM \ SYSTEM \ CurrentControlSet \ Control \ Session Manager \ SafeDLLSearchMode.
Envisagez d'auditer un système protégé pour corriger les déficiences des DLL à l'aide d'outils tels que PowerUP dans PowerSploit. N'oubliez pas de bloquer les logiciels malveillants et potentiellement dangereux, ainsi que de suivre les recommandations de Microsoft .

Interception de recherche Dylib (détournement de Dylib)


Système: macOS
Droits: utilisateur
Description: La technique est basée sur des vulnérabilités dans les algorithmes de recherche de bibliothèque dynamique dylib sur macOS et OS X.L'essentiel est de déterminer le dylib que l'application attaquée charge, puis de placer la version malveillante de dylib avec le même nom dans le répertoire de travail de l'application. Cela entraînera l'application à charger dylib, qui se trouve dans le répertoire de travail du programme. Dans ce cas, le Dylib malveillant sera exécuté avec les droits d'accès de l'application attaquée. Conseils de sécurité

: empêchez les utilisateurs d'écrire des fichiers dans les répertoires de recherche dylib. Audit des vulnérabilités à l'aide du scanner de piratage Dylib d'Objective-See.

Services distants externes


Système:
Droits Windows :
Description de l' utilisateur : Les attaquants peuvent utiliser les services distants externes de l'organisation, tels que VPN, Citrix et WinRM, pour se sécuriser au sein du réseau attaqué. L'accès aux services peut être effectué à l'aide de comptes valides obtenus à l'aide de techniques pour rediriger les utilisateurs vers de faux sites (pharming), ou au stade de compromettre le réseau.

Recommandations de protection:Restreindre l'accès aux services distants à l'aide de commutateurs gérés centralement, à l'aide d'un VPN. Interdiction de l'accès direct à distance au réseau interne grâce à l'utilisation de proxys, passerelles et pare-feu. Désactiver les services pouvant être utilisés à distance, tels que WinRM. L'utilisation de l'authentification à deux facteurs. Suivi de l'activité d'utilisation des services à distance en dehors des heures de travail.

Inconvénients des autorisations au niveau du système de fichiers (faiblesse des autorisations du système de fichiers)


Système:
Droits Windows : Utilisateur, Administrateur
Description: L'essence de la technique consiste à remplacer les fichiers exécutables qui sont lancés automatiquement par divers processus (par exemple, lors du chargement du système d'exploitation ou à un certain moment, si les droits sur les fichiers exécutables sont configurés de manière incorrecte). Après l'usurpation d'identité, le fichier malveillant sera lancé avec les droits du processus, donc si le processus a un niveau d'accès plus élevé, l'attaquant pourra augmenter les privilèges. Dans cette technique, les attaquants peuvent tenter de manipuler les fichiers binaires du service Windows.
Une autre variante de l'attaque est associée aux lacunes des algorithmes dans le travail des installateurs auto-extractibles. Au cours du processus d'installation, les installateurs décompressent souvent divers fichiers utiles, y compris .dll et .exe, dans le répertoire% TEMP%, cependant, ils ne peuvent pas définir les autorisations appropriées pour restreindre l'accès aux fichiers décompressés, ce qui permet aux attaquants d'effectuer une usurpation de fichier et, en conséquence, augmenter les privilèges ou contourner le contrôle de compte, comme certains installateurs s'exécutent avec des privilèges étendus.

Recommandations de protection:Restriction des droits de compte afin que seuls les administrateurs puissent gérer les services et interagir avec les fichiers binaires utilisés par les services. Désactivez les options d'escalade de privilèges UAC pour les utilisateurs standard. Les paramètres UAC sont stockés dans la clé de registre suivante:
  • [HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Policies \ System] .

Pour rejeter automatiquement les demandes d'escalade de privilèges, vous devez ajouter une clé:
  • "ConsentPromptBehaviorUser" = dword: 00000000.

Pour contrôler le travail des installateurs, vous devez ajouter une clé:
  • "EnableInstallerDetection" = dword: 00000001 , qui nécessitera un mot de passe pour installer les programmes.


Fichiers et répertoires cachés


Système: Windows, Linux, macOS
Droits: Description de l' utilisateur
:Les attaquants peuvent utiliser la possibilité de masquer des fichiers et des dossiers afin de ne pas attirer l'attention des utilisateurs. Sous Windows, les utilisateurs peuvent masquer des fichiers à l'aide de la commande attrib. Il suffit de spécifier l'attribut + h <nom de fichier> pour masquer le fichier ou "+ s" pour marquer le fichier comme système. En ajoutant le paramètre "/ S", l'utilitaire attrib appliquera les modifications de manière récursive. Sous Linux / Mac, les utilisateurs peuvent masquer des fichiers et des dossiers en spécifiant simplement un "." Au début du nom de fichier. Après cela, les fichiers et dossiers seront masqués de l'application Finder et tels que l'utilitaire "ls". Sur macOS, les fichiers peuvent être marqués avec UF_HIDDEN, ce qui inclura une interdiction de leur visibilité dans Finder.app, mais ne les empêchera pas de voir les fichiers cachés dans Terminal.app. De nombreuses applications créent des fichiers et dossiers cachés afin de ne pas encombrer l'espace de travail de l'utilisateur. Par exempleLes utilitaires SSH créent un dossier .ssh caché qui stocke une liste d'hôtes connus et de clés utilisateur.

Recommandations de protection: il est difficile d'empêcher la possibilité d'utiliser cette technique car le masquage des fichiers est une fonctionnalité standard du système d'exploitation.

Interception des appels de fonctionnalités de l'API Windows (accrochage)


Système:
Droits Windows : Administrateur,
Description du système : Les fonctions de l'API Windows sont généralement stockées dans des DLL. La technique du hooking consiste à rediriger les appels vers les fonctions API en:
  • Procédures de hook - procédures intégrées au système d'exploitation qui exécutent du code lorsque divers événements sont appelés, par exemple, des frappes de touches ou le déplacement de la souris;
  • Modifications de la table d'adresses (IAT), qui stocke des pointeurs vers des fonctions API. Cela vous permettra de "tromper" l'application attaquée, la forçant à lancer une fonction malveillante;
  • Changement direct de fonction (épissage), au cours duquel les 5 premiers octets de la fonction sont modifiés, au lieu desquels la transition vers une fonction malveillante ou autre déterminée par l'attaquant est insérée.

Comme les injections, les attaquants peuvent utiliser le hook pour exécuter du code malveillant, masquer son exécution, accéder à la mémoire du processus attaqué et augmenter les privilèges. Les attaquants peuvent capturer des appels d'API qui incluent des paramètres qui contiennent des données d'authentification. Le hooking est généralement utilisé par les rootkits pour masquer les activités malveillantes dans le système.

Recommandations de protection:L'interception d'événements dans le système d'exploitation fait partie du fonctionnement normal du système, de sorte que toute restriction de cette fonctionnalité peut nuire à la stabilité des applications légitimes, telles que les logiciels antivirus. Les efforts visant à empêcher l'utilisation de techniques d'interception doivent se concentrer sur les premiers stades de la chaîne d'attaque. Vous pouvez détecter une activité de hook malveillante en surveillant les appels aux fonctions SetWindowsHookEx et SetWinEventHook, en utilisant des détecteurs de rootkit et en analysant le comportement anormal des processus.

Hyperviseur


Système:
Droits Windows : Administrateur,
Description du système : L'hyperviseur peut être compromis par un attaquant et avoir des rootkits cachés des systèmes invités.
Recommandations de sécurité: Empêchez tout accès malveillant aux comptes privilégiés nécessaires à l'installation et à la configuration d'un hyperviseur.

Injection IFEO (injection d'options d'exécution de fichier image)


Système:
Droits Windows : Administrateur,
Description du système : Le mécanisme IFEO (Image File Execution Options) vous permet d'exécuter un débogueur de programme au lieu d'un programme, précédemment spécifié par le développeur dans le registre:
  • HKLM \ Software \ Microsoft \ Windows NT \ CurrentVersion \ Options d'exécution de fichier image / [exécutable]
  • HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\[executable] ,, [executable] — .

Comme pour les injections, la valeur [exécutable] peut être utilisée abusivement en exécutant du code arbitraire pour augmenter les privilèges ou prendre pied dans le système. Les programmes malveillants peuvent utiliser IFEO pour contourner la protection en enregistrant des débogueurs qui redirigent et rejettent diverses applications système et de sécurité.

Recommandations de protection: La technique décrite est basée sur l'utilisation abusive des outils de développement de système d'exploitation courants, de sorte que toute restriction peut provoquer l'instabilité de logiciels légitimes, par exemple, des applications de sécurité. Les efforts visant à empêcher l'utilisation des techniques d'injection IFEO doivent se concentrer sur les premiers stades de la chaîne d'attaque. Vous pouvez détecter une telle attaque en surveillant les processus avec Debug_process etDebug_only_this_process .

Extensions et modules de noyau chargeables (modules et extensions de noyau)


Système: Linux, macOS
Droits: Root
Description: Les modules de noyau téléchargeables (LKM) sont des programmes spéciaux qui peuvent être chargés et déchargés du noyau sans avoir besoin d'un redémarrage complet du système. Par exemple, LKM inclut des pilotes de périphérique. Les attaquants peuvent charger des LKM malveillants à l'aide de divers rootkits. En règle générale, ces rootkits se cassent, les fichiers, les processus, l'activité réseau, les faux journaux d'audit, fournissent des portes dérobées. Comme LKM sur macOS, il existe des soi-disant KEXT qui sont chargés et déchargés avec les commandes kextload et kextunload.

Recommandations de protection:Utilisez les outils de détection de rootkit Linux: rkhunter, chrootkit. Limitez l'accès au compte root, qui est nécessaire pour charger les modules dans le noyau. Utilisez le contrôle d'accès forcé SELinux.

Modification de l'en-tête LC_LOAD_DYLIB Addition dans les fichiers Mach-O (LC_LOAD_DYLIB Addition)


Système: macOS
Droits: Utilisateur
Description: Les fichiers Mach-O contiennent un certain nombre d'en-têtes qui sont utilisés pour effectuer certaines opérations lors du téléchargement d'un fichier binaire. L'en-tête LC_LOAD_DYLIB dans les binaires Mach-O indique au système d'exploitation les bibliothèques dylib à charger. Les modifications apportées aux en-têtes invalideront la signature numérique, cependant, un attaquant peut supprimer la commande LC_CODE_SIGNATURE du fichier binaire et le système ne vérifiera pas que la signature est correcte lorsqu'elle est téléchargée.

Recommandations de protection: tous les fichiers binaires doivent être signés avec les ID de développeur Apple corrects, et les listes blanches d'applications sont compilées selon les hachages connus.

Pilotes de l'autorité de sécurité locale (pilote LSASS)


Système:
Droits Windows : Administrateur, système
Description: Autorité de sécurité locale (LSA) - un sous-système Windows qui fournit l'authentification des utilisateurs. Le LSA inclut plusieurs DLL interconnectées dynamiques qui s'exécutent dans le processus LSASS.exe. Les attaquants peuvent attaquer LSASS.exe en remplaçant ou en ajoutant des pilotes LSA illégitimes, puis en exécutant du code arbitraire. La technique est implémentée dans les logiciels malveillants Pasam et Wingbird, qui «lancent» les DLL modifiées utilisées pour charger LSASS. Dans ce cas, le code malveillant est exécuté avant que la DLL illégitime provoque un crash et un crash de service LSASS ultérieur.

Recommandations de protection: Dans Windows 8.1 et Server 2012 R2, activez la protection LSA en activant la clé spécifiée:
  • HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Lsa \ RunAsPPL = dword: 00000001.

Cette protection garantit que les plug-ins et pilotes chargés par LSA sont signés numériquement par Microsoft. Sous Windows 10 et Server 16, activez Windows Defender Credential Guard pour exécuter lsass.exe dans un environnement virtuel isolé. Pour réduire le risque de chargement de bibliothèques malveillantes dans lsass.exe, activez le mode de recherche de DLL sécurisé:
  • HKEY_LOCAL_MACHINE \ System \ CurrentControlSet \ Control \ Session Manager \ SafeDllSearchMode.


Agents de lancement


Système: macOS
Droits: utilisateur, administrateur
Description: La technique consiste à abuser de la fonctionnalité de création et de lancement par les utilisateurs Launch Agents - services autorun au niveau utilisateur. Lorsque chaque utilisateur se connecte au système, launchd charge les paramètres des agents de lancement à partir des fichiers * .plist. Les fichiers Plist ont une structure XML et contiennent des instructions qui indiquent à launchd quels exécutables et quand lancer. Les fichiers Plist se trouvent dans les répertoires suivants:
  • / System / Library / LaunchAgents;
  • / Library / LauncAgents;
  • $ Accueil / Bibliothèque / LaunchAgents.

Les attaquants peuvent également masquer les noms d'agents de lancement malveillants à l'aide des noms de programmes légitimes. Par exemple, le cheval de Troie Komplex crée un agent de lancement: $ HOME / Library / LaunchAgents / com.apple.updates.plist.

Recommandations de protection: à l' aide de la stratégie de groupe, configurez la restriction sur les utilisateurs créant des agents de lancement. La création d'agents de lancement implique le chargement ou la création de fichiers plist sur le disque, alors concentrez vos efforts de défense sur les premières étapes de l'attaque.

Launch Daemons (Launch Daemon)


Système: macOS
Droits: Administrateur
Description: La technique consiste à modifier les paramètres des services de lancement du système - Launch Daemon, spécifié dans les fichiers plist, par l'attaquant. Au démarrage du système, le processus Launchd charge les paramètres des services (démons) à partir des fichiers plist situés dans les répertoires suivants:
  • / System / Library / LaunchDeamons;
  • / Bibliothèque / LaunchDeamons.

Launch Daemon peut être créé avec des privilèges d'administrateur, mais exécuté sous le compte root, de sorte qu'un attaquant peut augmenter les privilèges. Les autorisations des fichiers plist doivent être root: alors que, cependant, le script ou le programme spécifié peut avoir des autorisations moins strictes. Par conséquent, un attaquant peut modifier les fichiers exécutables spécifiés dans plist, et ainsi modifier les services système actuels pour sécuriser le système ou augmenter les privilèges. Conseils de

sécurité: limitez les privilèges des utilisateurs afin que seuls les administrateurs autorisés puissent créer Launch Daemon. Pensez à surveiller la façon dont les fichiers plist sont créés sur votre système à l'aide d'applications telles que KnockKnock.

Launchctl Utility

Système: macOS
Droits: utilisateur, administrateur
Description: Launchctl - un utilitaire pour gérer le service Launchd. À l'aide de Launchctl, vous pouvez gérer les services système et utilisateur (LaunchDeamons et LaunchAgents), ainsi qu'exécuter des commandes et des programmes. Launchctl prend en charge les sous-commandes de ligne de commande qui sont interactives ou redirigées à partir de l'entrée standard:
launchctl submit -l [labelname] - / Path / to / thing / to / execute '' arg "'' arg" '' arg ".
Démarrage et redémarrage des services et les démons, les attaquants peuvent exécuter du code et même contourner la liste blanche si launchctl est un processus autorisé, cependant les services de chargement, de déchargement et de rechargement et les démons peuvent nécessiter des privilèges élevés.

Recommandations de protection:Limitation des droits d'utilisateur pour créer des agents de lancement et lancer des démons de lancement à l'aide de la stratégie de groupe. En utilisant l'application KnockKnock, vous pouvez découvrir des programmes qui utilisent launchctl pour gérer les agents de lancement et les démons de lancement.

Planification des travaux locaux


Système: Linux, macOS
Droits: utilisateur, administrateur, root
Description: Les attaquants peuvent créer des tâches sur les systèmes attaqués pour que des programmes non autorisés démarrent au démarrage du système ou selon un calendrier. Les systèmes Linux et Apple prennent en charge plusieurs méthodes pour planifier le lancement de tâches d'arrière-plan périodiques: cron, at, launchd. Contrairement au planificateur de tâches Windows, la planification des tâches sur les systèmes Linux ne peut pas être effectuée à distance, sauf pour l'utilisation de sessions distantes comme SSH.

Recommandations de protection: limitation des droits des utilisateurs pour créer des tâches planifiées, blocage des utilitaires système et autres logiciels pouvant être utilisés pour planifier des tâches.

Articles de connexion


Système: macOS
Droits:
Description de l' utilisateur : Les attaquants afin de se sécuriser dans le système peuvent configurer leur code pour démarrer automatiquement à l'aide des éléments de connexion (paramètres utilisateur pour le démarrage de l'application à chaque connexion). Les éléments de connexion créés à l'aide de Service Management Framework ne sont pas affichés dans les paramètres système et peuvent uniquement être supprimés via l'application dans laquelle ils ont été créés. Les utilisateurs ne peuvent gérer que les éléments de connexion affichés dans les paramètres système. Les paramètres de ces éléments de connexion sont stockés dans le fichier plist dans le répertoire utilisateur:
~ / Library / Preferences / com.apple.loginitems.plist.
Les applications qui font partie de l'élément de connexion peuvent afficher des fenêtres visibles par l'utilisateur au démarrage, mais vous pouvez les masquer avec l'option «Masquer».

Recommandations de protection: limitez les droits des utilisateurs à créer un élément de connexion. Il convient de noter que le fait de maintenir la touche Maj enfoncée lors de la connexion empêche le démarrage automatique des applications. Contrôlez les paramètres de l'élément de connexion ( Paramètres système → Utilisateurs et groupes → Éléments de connexion ).

Scripts de connexion


Système: Windows, macOS
Description: Afin de se consolider dans le système, un attaquant peut utiliser la possibilité de créer de nouveaux scripts de connexion ou de modifier des scripts existants - des scripts qui sont exécutés chaque fois qu'un utilisateur ou un groupe d'utilisateurs se connecte au système. Si un attaquant a accès à un script de connexion sur un contrôleur de domaine Windows, il peut le modifier pour exécuter du code sur tous les systèmes du domaine afin de «déplacer latéralement» le réseau. Selon les paramètres des droits d'accès aux fichiers de script d'ouverture de session (généralement ces scripts sont stockés dans \\ [DC] \ NETLOGON \ ), l'attaquant peut avoir besoin d'informations d'identification locales ou administratives.

Sur Mac, scripts de connexion ( connexion / déconnexion)), contrairement à l'élément de connexion, qui est lancé dans le contexte de l'utilisateur, peut être exécuté en tant que root.

Recommandations de sécurité: restriction des privilèges d'administrateur pour créer des scripts de connexion. Identification et blocage des logiciels potentiellement dangereux pouvant être utilisés pour modifier les scénarios de connexion.

Modifier les services existants


Système:
Droits Windows : Administrateur,
Description du système : Pour lancer à plusieurs reprises du code malveillant dans un système, un attaquant peut modifier la configuration des services existants à l'aide des utilitaires système ou des outils d'interaction avec l'API Windows. Les attaquants peuvent intentionnellement endommager ou tuer un service pour invoquer ultérieurement un programme modifié ou une commande de restauration de service. L'utilisation de services existants est l'une des techniques de mascarade qui rend difficile la détection d'une activité malveillante. Les informations sur la configuration des services Windows, y compris le chemin d'accès aux programmes et aux commandes pour démarrer et restaurer le service, sont stockées dans le registre:
  • HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ services .

Vous pouvez modifier la configuration des services à l'aide des utilitaires de la console sc.exe et Reg.

Recommandations de protection: limitation des privilèges des utilisateurs et des groupes pour modifier les configurations de service, octroi de droits uniquement aux administrateurs autorisés. Blocage des logiciels potentiellement dangereux. Pour étudier les modifications des services système afin d'identifier les tentatives de sécurisation d'un attaquant dans le système, vous pouvez utiliser l'utilitaire Sysinternals Autoruns.

DLL Netsh Helper (DLL Netsh Helper)


Système: Windows
Droits: administrateur, système
Description: les attaquants peuvent exécuter du code à l'aide de l'utilitaire de console Netsh intégré, qui permet de charger les DLL d'extension pour étendre les fonctionnalités:
netsh> ajouter une aide [chemin DLL]
Les informations sur les bibliothèques enregistrées utilisées par netsh sont stockées dans le registre:
HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ NetSh
Certains clients VPN d'entreprise et utilitaires réseau peuvent utiliser netsh.exe, en le démarrant au nom du système, dans cette situation, l'attaquant peut enregistrer ou modifier la DLL auxiliaire qui sera exécutée lorsque le client VPN utilise netsh. Des outils pour implémenter ce type d'attaque sont inclus avec CobaltStrike (framework de test de pénétration).

Conseils de sécurité: bloquez les logiciels potentiellement dangereux à l'aide d'outils tels que AppLocker.

De nouveaux services


Système: Windows
Droits: administrateur, système
Description: Nommez l'accès au système, les attaquants peuvent créer de nouveaux services et les configurer pour démarrer automatiquement. Le nom du service peut être masqué à l'aide de noms spécifiques au système d'exploitation. Les services peuvent être créés avec des privilèges d'administrateur, mais exécutés au nom du système. Les services peuvent être créés à partir de la ligne de commande, à l'aide d'outils d'accès à distance avec interopérabilité avec l'API Windows ou à l'aide d'outils de gestion Windows et PowerShell standard.

Recommandations de sécurité: limitez les droits des utilisateurs à créer de nouveaux services afin que seuls les administrateurs autorisés puissent le faire. Appliquez AppLocker et la politique de restriction logicielle .

Démarrage automatique dans les applications bureautiques (démarrage d'application Office)


Système: Windows
Droits: utilisateur, administrateur
Description: Certains mécanismes de travail de MS Office peuvent être utilisés pour exécuter du code lors de l'exécution d'applications bureautiques et, par conséquent, pour fournir aux attaquants leur constance dans le système:
• Incorporation de macros VBA malveillantes dans les modèles Office de base. Word utilise le modèle Normal.dotm:
C: \ Users \ [Nom d'utilisateur] \ AppData \ Roaming \ Microsoft \ Templates \ Normal.dotm .
Il n'y a pas de modèle par défaut dans Excel, mais vous pouvez l'ajouter manuellement et il se chargera automatiquement:
C: \ Users \ [Nom d'utilisateur] \ AppData \ Roaming \ Microsoft \ Excel \ XLSTART \ Personal.xls .
L'implémentation de l'attaque n'est possible que si l'option " Exécuter toutes les macros " est activée dans Office Trust Center:
HKEY_CURRENT_USER \ Software \ Microsoft \ Office \ [Version] \ [Application] \ Security \ VBAWarnings: 1;
? Placer un lien DLL dans la section de test Office du Registre Windows provoque l'exécution de la DLL spécifiée à chaque démarrage de l'application Office:
HKEY_CURRENT_USER \ Software \ Microsoft \ Office Test \ Special \ Perf \ [Par défaut]: [Spécifiez le chemin d'accès à la DLL];
• Ajout de modules complémentaires à l'application Office avec du code malveillant qui sera exécuté au démarrage de l'application attaquée.

Meilleures pratiques de sécurité : suivez les meilleures pratiques de Microsoft lors de la configuration des paramètres de sécurité des macros . Pour empêcher le fonctionnement du mécanisme Office Test, créez la section spécifiée dans le Registre et définissez-y des autorisations en lecture seule pour empêcher l'accès à celui-ci sans droits d'administrateur. Si possible, désactivez les compléments Office, si vous en avez besoin, puis suivez les recommandations de Microsoft lors de l'organisation de leur travail.

Interception de chemin


Système: Windows
Droits: utilisateur, administrateur, système
Description: La technique d'interception d'un chemin consiste à placer le fichier exécutable dans un répertoire à partir duquel l'application le lancera à la place du fichier cible. Un attaquant peut employer les méthodes suivantes:
  • Chemins inexistants. Les chemins d'accès aux fichiers exécutables du service sont stockés dans les clés de registre et peuvent avoir un ou plusieurs espaces, par exemple, C: \ Program Files \ service.exe , si l'attaquant crée le fichier C: \ Program.exe dans le système, Windows le démarrera au lieu de traiter le chemin d'accès fichier cible de service.
  • Configuration incorrecte des variables d'environnement. Si dans la variable PATH le chemin C: \ exemple précède c: \ Windows \ System32 et que le fichier C: \ exemple \ net.exe existe , alors lorsque la commande net est appelée, C: \ exemple \ net.exe sera exécuté, et non c: \ Windows \ System32 \ net.exe .
  • Interception de l'ordre de recherche (détournement de l'ordre de recherche). Lorsque le chemin d'accès complet au fichier exécutable n'est pas spécifié, Windows recherche généralement le fichier portant le nom spécifié dans le répertoire en cours, puis recherche les répertoires système. Par exemple, le fichier «example.exe», lorsqu'il est exécuté, démarre cmd.exe avec des arguments pour exécuter la commande net use. L'attaquant peut placer le fichier net.exe dans le répertoire d'emplacement example.exe et il sera lancé à la place de l' utilitaire c: \ Windows \ System32 \ net.exe . De plus, si l'attaquant place le fichier net.com dans le répertoire contenant le fichier net.exe, Windows exécutera net.com conformément à l'ordre d'exécution défini dans la variable système PATHEXT.

L'interception de l'ordre de recherche de fichiers est également utilisée pour exécuter des DLL à l'aide de la technique de DLL de piratage de recherche .

Recommandations de sécurité: les guillemets indiquent les chemins d'accès spécifiés dans les fichiers de configuration, les scripts, la variable PATH, les paramètres de service et les raccourcis. N'oubliez pas l'ordre de recherche des fichiers exécutables et n'utilisez que des chemins d'accès complets. Nettoyez les anciennes clés de registre laissées par le logiciel distant afin qu'aucune clé ne soit laissée dans le registre qui pointe vers des fichiers inexistants. Interdire l'écriture par les utilisateurs du système dans le répertoire racine C: \ et les répertoires système Windows, limiter les autorisations d'écriture aux répertoires contenant des fichiers exécutables.

Modification des fichiers Plist (Plist Modification)


Système: macOS
Droits: utilisateur, administrateur
Description: Les attaquants peuvent modifier les fichiers plist en leur spécifiant leur propre code pour son exécution dans le contexte d'un autre utilisateur. Les fichiers de propriétés plist situés dans / Library / Preferences sont exécutés avec des privilèges élevés, et les fichiers plist de ~ / Library / Preferences sont exécutés avec des privilèges utilisateur.

Conseils de sécurité : Empêchez la modification des fichiers plist en les rendant en lecture seule.

Coup de port


Système: Linux, macOS
Droits: utilisateur
Description: les attaquants peuvent utiliser les méthodes de détournement de port pour masquer les ports ouverts qu'ils utilisent pour se connecter au système.

Conseils de sécurité: l' utilisation de pare-feu avec état peut empêcher la mise en œuvre de certaines options de détournement de port.

Modification des moniteurs de port dans le gestionnaire d'impression (moniteurs de port)


Système: Windows
Droits: administrateur, système
Description: un attaquant peut arranger l'exécution d'une DLL arbitraire au nom du système à chaque démarrage de Windows en utilisant abusivement les paramètres du gestionnaire d'impression (Spoolsv.exe). Pour interagir avec les périphériques d'impression, Spoolsv.exe utilise les soi-disant moniteurs de port - ce sont des DLL qui utilisent des commandes de bas niveau à envoyer aux périphériques d'impression via une interface LAN, USB, LPT ou COM. Les DLL ci-dessus sont stockées dans C: \ windows \ system32 et sont enregistrées dans le registre:
HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Print \ Monitors .
Port Monitor peut être installé à l'aide de l'API AddMonitor ou directement en modifiant la clé de registre ci-dessus.

Recommandations de protection: organisez le blocage des logiciels potentiellement dangereux et utilisez des outils de contrôle de lancement d'applications.

Rc.common


Système: macOS
Droits: root
Description: un attaquant peut ajouter du code dans le fichier /etc/rc.common qui sera exécuté à chaque démarrage du système en tant que root. Rc.common est un script qui s'exécute pendant le démarrage OC et est le précurseur des agents de lancement et des démons Launh. Il s'agit d'une technologie obsolète pour les programmes à démarrage automatique, mais elle est toujours prise en charge sur macOS et OS X.

Recommandations de sécurité: limitez les privilèges des utilisateurs pour modifier le fichier rc.common.

Applications rouvertes


Système: macOS
Droits: utilisateur
Description: Sur les systèmes commençant par OS X 10.7 (Lion) , un attaquant peut organiser l'exécution d'un fichier malveillant à chaque redémarrage du système d'exploitation. La technique est basée sur l'abus de la fonction de redémarrage des applications après le redémarrage du système. À l'aide des outils intégrés à l'interface graphique, l'utilisateur peut indiquer au système quelles applications doivent être redémarrées en cas de redémarrage du système d'exploitation. Ces paramètres sont stockés dans des fichiers plist:
  • ~ / Library / Preferences / com.apple.loginwindow.plist;
  • ~ / Bibliothèque / Préférences / ByHost / com.apple.loginwindows. *. Plist.

Un attaquant peut modifier les fichiers ci-dessus pour exécuter du code malveillant à chaque redémarrage du système.

Recommandations de protection: La fonction de redémarrage de l'application peut être désactivée à l'aide de la commande de la console: écriture par défaut -g ApplePersistence -bool no .
De plus, maintenir la touche Maj enfoncée pendant le démarrage empêche le démarrage automatique des applications.

Accès redondant


Système: Windows, Linux, macOS
Droits: utilisateur, administrateur, système
Description: Les attaquants peuvent utiliser simultanément plusieurs outils d'accès à distance avec différents protocoles de contrôle afin de diversifier les risques de détection. Ainsi, si l'un des outils d'accès à distance est détecté et bloqué, mais que la partie défenderesse n'a pas identifié tous les outils de l'attaquant, l'accès à distance au réseau attaqué sera toujours préservé. Les attaquants peuvent également essayer d'accéder à des comptes valides de services d'entreprise distants, tels que des VPN, pour obtenir un accès alternatif au système en cas de blocage des outils de base d'accès à distance. L'utilisation d'un shell Web est également l'un des moyens d'accéder à distance à un réseau via un serveur Web.

Recommandations de protection: Surveillez la présence et le blocage du lancement d'outils d'accès à distance connus dans votre réseau (AmmyAdmin, Radmin, RemotePC, VNC, etc.), utilisez des outils pour contrôler le lancement d'applications et bloquer les logiciels potentiellement dangereux. L'introduction de systèmes IDS et IPS qui détectent des logiciels malveillants spécifiques à l'aide de signatures réduira la probabilité d'une attaque réussie, mais au fil du temps, les attaquants modifieront leurs outils pour modifier la signature et, par conséquent, contourneront les systèmes IDS et IPS.

Démarrage automatique à l'aide de la clé Run Keys et du dossier de démarrage (Registry Run Keys / Start Folder)


Système: Windows
Droits: utilisateur, administrateur
Description: un attaquant peut ajouter une «clé d'exécution» ou un lien vers le dossier Démarrage dans le registre Windows pour lancer un fichier malveillant lorsqu'un utilisateur se connecte au système. Le programme sera exécuté avec les droits de l'utilisateur actuel. Les attaquants peuvent masquer les clés de démarrage dans le registre afin qu'elles ressemblent à des programmes légitimes.
Les clés d'exécution sont stockées dans les clés de registre suivantes:
  • HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Run;
  • HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ RunOnce;
  • HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Run;
  • HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ RunOnce.


Recommandations de protection: identification et blocage des logiciels potentiellement dangereux, surveillance des modifications apportées au dossier de démarrage et aux branches de registre répertoriées ci-dessus.

Détournement SIP et Trust Provider (SIP et Trust Provider) , Subverting Trust in Windows


Système: Windows
Droits: administrateur, système
Description: Les attaquants peuvent modifier les composants de l'architecture pour signer et vérifier la signature numérique du code Windows pour contourner les moyens de contrôler le lancement de programmes qui permettent d'exécuter uniquement du code signé. Pour créer, signer et vérifier la signature de fichiers de différents formats dans Windows, le soi-disant Package d'Interface Sujet (SIP) est utilisé - des spécifications logicielles qui sont uniques pour chaque type de fichier, à travers lesquelles l'interaction entre les fonctions API qui initient la création, le calcul et la vérification des signatures et directement fichiers. La validité de la signature est confirmée par le soi-disant Trust Provider - ce sont des composants logiciels du système d'exploitation qui exécutent diverses procédures liées au calcul et à la vérification des signatures numériques.
Méthodes d'attaque populaires:
  • Modification des clés DLL et FuncName dans la section CryptSIPDllGetSignedDataMsg :
    HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Cryptography \ OID \ EncodingType 0 \ CryptSIPDllGetSignedDataMsg \ [SIP_GUID] .
    Il est effectué pour remplacer la bibliothèque DLL qui fournit la fonction CryptSIPDllGetSignedDataMSG , qui renvoie le certificat numérique codé à partir du fichier signé. Une fausse fonction peut toujours renvoyer une valeur de signature valide précédemment connue (par exemple, une signature Microsoft pour les fichiers système exécutables) lors de l'utilisation d'un SIP modifié. Un attaquant peut essayer d'appliquer une signature valide pour tous les fichiers, mais cela entraînera très probablement l'invalidation de la signature, car le hachage renvoyé par la fonction ne correspondra pas au hachage calculé à partir du fichier.
  • Modification des clés DLL et FuncName dans la section:
    HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Cryptography \ OID \ EncodingType 0 \ CryptSIPDllVerifyIndirectData / [SIP_GUID] .
    Il est effectué pour remplacer la bibliothèque DLL qui fournit la fonction CryptSIPDllVerifyIndirectData , qui vérifie le hachage calculé à partir du fichier avec le hachage spécifié dans la signature numérique et renvoie le résultat de la vérification (Vrai / Faux). Ainsi, un attaquant peut assurer la vérification réussie de tout fichier à l'aide de SIP modifié. Les valeurs de clé ci-dessus peuvent rediriger vers une fonction appropriée à partir d'une bibliothèque existante, éliminant ainsi la nécessité de créer un nouveau fichier DLL sur le disque.
  • Modification des clés DLL et FuncName dans la section:
    HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Cryptography \ Providers \ Trust \ FinalPolicy / [Trust Provider GUID] .
    L'objectif est de remplacer la bibliothèque DLL qui fournit la fonction FinalPolicy pour un fournisseur de confiance spécifique, qui décode, analyse la signature et prend une décision concernant la confiance. Semblable à CryptSIPDllVerifyIndirectData, la valeur des clés ci-dessus peut rediriger vers une DLL existante.

Il est important de noter que l'attaque décrite sur le mécanisme de confiance de Windows peut être implémentée à l'aide de la technique de détournement de commande de recherche de DLL.

Recommandations de protection: assurez-vous que les utilisateurs du système protégé ne peuvent pas modifier les clés de registre liées aux composants SIP et Trust Provider. Envisagez de supprimer les SIP inutiles et obsolètes. Utilisez tous les moyens possibles pour bloquer le téléchargement de DLL malveillantes, par exemple celles intégrées à Windows AppLocker et DeviceGuard.

Tâche planifiée


Système: Windows
Droits: utilisateur, administrateur, système
Description: des utilitaires tels que at, schtasks et le planificateur de tâches Windows peuvent être utilisés pour planifier des programmes et des scripts à exécuter à une date et une heure spécifiques. Une tâche peut être planifiée sur un système distant, à condition que RPC soit utilisé pour l'authentification et que le partage d'imprimantes et de fichiers soit activé. La planification des tâches sur un système distant nécessite des privilèges d'administrateur. Un attaquant pourrait utiliser l'exécution de code à distance pour obtenir des privilèges système ou pour démarrer un processus sous un compte spécifique.

Recommandations de protection: Limitez les privilèges des utilisateurs. L'utilisation d'outils, tels que le module PowerUP dans PowerSploit, qui peuvent être utilisés pour trouver des faiblesses dans la résolution des tâches planifiées. Désactiver la possibilité de démarrer des tâches au nom du système, désactiver l'option " Autoriser les opérateurs de serveur à planifier des tâches " dans la politique de sécurité et activer le paramètre " Attribution des droits utilisateur: augmenter la priorité de planification ".

Économiseur d'écran (économiseur d'écran)


Système: Windows
Droits: utilisateur
Description: les attaquants peuvent utiliser les paramètres de l'économiseur d'écran pour lancer des logiciels malveillants après une certaine période d'inactivité de l'utilisateur.
L'application Windows Screensaver (scrnsave.exe) se trouve dans C: \ Windows \ System32 , ainsi que d'autres économiseurs d'écran inclus dans l'assemblage du système d'exploitation de base. Un attaquant peut manipuler les paramètres de l'écran de démarrage dans la clé de registre HKEY_CURRENT_USER \ Control Panel \ Desktop :
  • SCRNSAVE.EXE - spécifiez le chemin d'accès au fichier exécutable malveillant;
  • ScreenSaveActivr - définissez la valeur sur "1" pour activer l'économiseur d'écran;
  • ScreenSaverISSecure - définissez la valeur sur «0» afin que le système ne nécessite pas de mot de passe pour déverrouiller le bureau Windows après avoir désactivé l'économiseur d'écran;
  • ScreenSaverTimeout - définissez la période d'inactivité avant de démarrer l'économiseur d'écran.


Recommandations de protection: Bloquez la possibilité d'exécuter des fichiers * .scr à partir d'emplacements non standard. Gérez vos paramètres d'économiseur d'écran à l'aide de la stratégie de groupe, qui interdit les modifications locales de vos paramètres d'économiseur d'écran.

Fournisseur de support de sécurité (SPP)


Système: Windows
Droits: Administrateur
Description: les attaquants peuvent configurer du code malveillant à exécuter à chaque démarrage du système ou lorsque la fonction API AddSecurityPackage est appelée en ajoutant un faux fournisseur de support de sécurité (SSP) à la configuration de l'autorité de sécurité locale (LSA). SSP - modules de programme (DLL) contenant un ou plusieurs schémas d'authentification et de cryptographie qui sont chargés dans le processus LSASS au démarrage du système. Les DLL SPP ont accès aux mots de passe chiffrés et en texte brut stockés dans Windows. La configuration SPP est stockée dans deux clés de registre:
  • HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Lsa \ Security Packages ;
  • HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Lsa \ OSConfig \ Security Packages .

Recommandations de protection: sous Windows 8.1, Windows Server R2 et les versions ultérieures du système d'exploitation, vous devez activer le mode protégé LSA (Process Protect Light - PPL), dans lequel tous les fichiers DLL SPP doivent être signés numériquement par Microsoft:
HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Lsa \ RunAsPPL = dword: 00000001

Faiblesses dans les autorisations de registre de services Faiblesse


Système: Windows
Droits: administrateur, système
Description: si les autorisations des utilisateurs et des groupes permettent de modifier les valeurs des clés dans le registre Windows où les paramètres de service sont stockés, les attaquants peuvent directement modifier les clés qui stockent les chemins d'accès aux fichiers exécutables pour lancer les services ou utiliser divers outils de gestion des services - sc.exe, PowerShell ou Reg. Les attaquants peuvent également modifier les paramètres liés à une défaillance du service, par exemple, FailureCommand, indiquant une commande qui sera exécutée en cas de défaillance du service ou de dommages intentionnels. Les paramètres de service sont stockés dans HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ services .

Recommandations de protection: assurez-vous que les utilisateurs du système protégé ne peuvent pas modifier les clés du registre qui stockent les paramètres des composants du système. Utilisez tous les moyens possibles pour bloquer les logiciels potentiellement dangereux, par exemple Windows AppLocker.

Modification de raccourci


Système: Windows
Droits: utilisateur, administrateur
Description: Les attaquants peuvent créer de nouveaux raccourcis et liens symboliques déguisés en programmes légitimes ou modifier les chemins d'accès des raccourcis existants afin que leurs outils s'exécutent à la place de l'application d'origine.

Recommandations de sécurité: limitez les droits des utilisateurs et des groupes, tels que les administrateurs, à créer des liens symboliques à l'aide de l'objet de stratégie de groupe:
Configuration ordinateur> [Stratégies]> Paramètres Windows> Paramètres de sécurité> Stratégies locales> Attribution des droits utilisateur: créez des liens symboliques.
Utilisez des outils pour bloquer les logiciels potentiellement dangereux et la politique de restriction logicielle.

Éléments de démarrage


Système: macOS
Droits: Administrateur
Description: Un attaquant peut utiliser le mécanisme de démarrage automatique obsolète mais fonctionnant toujours sous macOS Sierra pour les applications utilisant StartupItems pour configurer le lancement de son code avec les privilèges root au démarrage. StartupItems est un répertoire dans / Library / Startupitems , un script de commande et un fichier de propriétés StartupParameters.plist. Le script et le fichier de propriétés doivent se trouver en haut de la hiérarchie: / Library / Startupitems / [MyStartupItem] .

Recommandations de protection: le mécanisme StartupItems étant obsolète, l'interdiction d'écrire dans le répertoire / Library / Startupitems / vous permettra d'éviter de créer des éléments de démarrage.

Firmware système


Système: Windows
Droits: Administrateur,
Description du système : Des attaquants particulièrement sophistiqués peuvent modifier ou reflasher le Bios, UIFI ou UFI, afin de permettre d'installer des mises à jour de micrologiciel malveillantes et de les corriger dans le système.

Recommandations de protection: dirigez le vecteur de protection pour empêcher l'attaquant d'accéder aux comptes privilégiés nécessaires à la mise en œuvre de la technique décrite. Tenez compte de la nécessité et de l'applicabilité du module de plateforme sécurisée (TPM) dans le système protégé . Tenez compte de la nécessité d'utiliser des outils externes pour surveiller et analyser la sécurité du microprogramme du système, par exemple, le cadre CHIPSEC .

Fournisseurs de temps


Système:
Droits Windows : Administrateur,
Description du système : Les attaquants peuvent enregistrer en tant que fournisseur de temps (Time Provider) une DLL malveillante qui s'exécutera au démarrage du système ou modifiera la configuration de Windows Time Server (W32Time). Les paramètres des fournisseurs de temps sont stockés dans le registre:
HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ services \ W32Time \ TimeProviders .
Pour enregistrer un fournisseur de temps, vous avez besoin des droits d'administrateur, mais il sera exécuté dans le contexte du compte de service local.

Recommandations de protection:Pensez à utiliser un objet de stratégie de groupe pour configurer les modifications de blocage des paramètres W32Time. Utilisez toutes sortes de moyens pour bloquer le téléchargement de DLL malveillantes, par exemple celles intégrées à Windows AppLocker et DeviceGuard.

Équipe de piège


Système: Linux, macOS
Droits: utilisateur, administrateur
Description: La commande trap protège le script des interruptions ( ctrl + c, ctrl + d, ctrl + z , etc.). Si le script reçoit un signal d'interruption spécifié dans les arguments de la commande trap, alors il traite lui-même le signal d'interruption, tandis que le shell ne traitera pas un tel signal. Les attaquants peuvent utiliser trap pour enregistrer le code qui sera exécuté lorsque le shell recevra certains signaux d'interruption.

Recommandations de protection:L'utilisation de cette technique est difficile à empêcher, car l'attaquant utilise les mécanismes standards de l'OS. Le vecteur de protection doit viser à empêcher les actions malveillantes aux stades antérieurs de l'attaque, par exemple au stade de la livraison ou de la création d'un fichier malveillant dans le système.

Comptes valides


Description: les attaquants peuvent voler les informations d'identification d'un compte d'utilisateur ou de service spécifique à l'aide des techniques d'accès aux informations d'identification, capturer les informations d'identification pendant le processus de renseignement à l'aide de l'ingénierie sociale. Les informations d'identification compromises peuvent être utilisées pour contourner les systèmes de contrôle d'accès et accéder aux systèmes distants et aux services externes, tels que VPN, OWA, Bureau à distance, ou pour obtenir des privilèges élevés sur des systèmes et des zones spécifiques du réseau. Si le scénario réussit, les attaquants peuvent refuser les logiciels malveillants et les rendre difficiles à détecter. En outre, les attaquants peuvent créer des comptes en utilisant des noms et des mots de passe prédéfinis pour maintenir l'accès à la sauvegarde en cas de tentatives infructueuses d'utiliser d'autres moyens.

Recommandations de protection: appliquez une politique de mot de passe, suivez les recommandations de conception et d'administration d'un réseau d'entreprise pour limiter l'utilisation des comptes privilégiés à tous les niveaux administratifs. Vérifications régulières des comptes de domaine et locaux et de leurs droits afin d'identifier ceux qui pourraient permettre à un attaquant d'obtenir un large accès. Suivi de l'activité du compte à l'aide des systèmes SIEM.

Web shell


Système: Windows, Linux, macOS
Description: Web Shell peut être utilisé par un attaquant comme passerelle pour accéder à votre réseau ou un accès redondant au système attaqué, comme mécanisme de sauvegarde à sécuriser en cas de détection et de blocage des principaux canaux d'accès à l'environnement attaqué.

Recommandations de protection:Assurez-vous que vos serveurs Web externes sont régulièrement mis à jour et qu'aucune vulnérabilité connue ne permet aux attaquants de télécharger un fichier ou un script sur le serveur avec une exécution ultérieure. Vérifiez que les autorisations des comptes et des groupes avec des droits de gestion de serveur ne correspondent pas aux comptes du réseau interne qui peuvent être utilisés pour se connecter au serveur Web, lancer le shell Web ou épingler au serveur Web. Web Shell est difficile à détecter car ils n'initient pas de connexions et leur côté serveur peut être petit et inoffensif, par exemple, la version PHP du shell Web China Chopper ressemble à une ligne:
[? php eval ($ _POST ['password']));]

Abonnement aux événements de Windows Management Instrumentation


Système:
Droits Windows : Administrateur,
Description du système : L'abonnement aux événements WMI est une fonctionnalité qui permet à l'administrateur de configurer la réception des notifications d'événements, y compris celles qui se sont produites sur des systèmes distants, suivies de l'exécution automatique de toutes les actions (exécution d'un script, application etc.). Les attaquants, afin de prendre pied dans le système, peuvent abuser des fonctionnalités décrites ci-dessus en configurant un abonnement pour des événements tels que l'horloge système ou le temps de fonctionnement de l'ordinateur, suivis de l'exécution de code lorsque cet événement se produit.

Recommandations de protection:Assurez-vous que seuls les comptes d'administrateur ont le droit de se connecter à distance à WMI et que, dans le système protégé, il n'y a pas de coïncidence des comptes d'administrateur système avec d'autres comptes privilégiés. La désactivation de WMI peut entraîner une instabilité du système, par conséquent, nécessite une évaluation préliminaire des conséquences négatives possibles.

DLL d'aide Winlogon


Système:
Droits Windows : Administrateur,
Description du système : En modifiant dans le registre les paramètres des DLL auxiliaires utilisées par Winlogon.exe, un attaquant peut provoquer plusieurs exécutions de DLL malveillantes à corriger dans le système. Les paramètres de Winlogon sont stockés dans des sections:
  • HKEY_CURRENT_USER \ Software \ Microsoft \ Windows NT \ CurrentVersion \ Winlogon
  • HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ Winlogon

Plusieurs sous-sections vulnérables sont connues:
  • Winlogon \ Notify - Spécifie les DLL qui gèrent les événements Windows
  • Winlogon \ Userinit - pointe vers le fichier userinit.exe, le programme d'initialisation de l'utilisateur qui est exécuté lorsque l'utilisateur se connecte au système;
  • Winlogon \ Shell - pointe vers le fichier explorer.exe, le shell système qui s'exécute lorsqu'un utilisateur ouvre une session sur le système.

Recommandations de protection: assurez-vous que seuls les administrateurs autorisés peuvent modifier les paramètres de Winlogon. Utilisez toutes sortes de moyens pour bloquer le téléchargement de DLL malveillantes et de programmes potentiellement dangereux, par exemple ceux intégrés à Windows AppLocker et DeviceGuard.

Source: https://habr.com/ru/post/fr425177/


All Articles