Conférence DEFCON 27. Bénéficier des produits de piratage pour macOS. 2e partie

Conférence DEFCON 27. Bénéficier des produits de piratage pour macOS. Partie 1

Ayant reçu un fichier avec du code malveillant d'un serveur C&C pirate distant, l'exploit procède à son exécution. Il utilise la même méthode SDF lorsque l'archive du malware est décompressée à l'aide de la commande idem intégrée, puis exécutée via l'API NS. Ainsi, Windtall utilise un chargeur de démarrage intégré standard.



De plus, la porte dérobée est équipée d'une logique d'auto-liquidation, donc chaque fois que le malware démarre, il contacte le serveur pirate et lui demande s'il doit être désinstallé. Si le serveur C&C répond avec le code «1», le programme se supprime, arrêtant ainsi l'activité des logiciels espions.



Il s'agit d'une fonctionnalité très utile qui permet à un attaquant de "désinfecter" à distance une cible sans laisser de traces de son intervention. Je vais maintenant montrer comment nous avons refait ce virus pour nos propres besoins.



Tout d'abord, parlons de réprimander un exploit. La création d'une page Web de pirate qui télécharge automatiquement un fichier ZIP contenant une application malveillante est assez simple. Comme je l'ai mentionné, Safari dézippera automatiquement les archives ZIP par défaut, donc si nous plaçons une application malveillante dans cette archive qui implémente certains gestionnaires d'URL, Mac OS l'enregistrera automatiquement avant que l'utilisateur ne démarre l'application.

Une page Web malveillante peut alors demander cette URL utilisateur déjà enregistrée, ce qui conduira au lancement de l'application. Habituellement, une fenêtre d'avertissement apparaît, mais l'utilisateur clique sur le bouton sans y prêter attention.

Donc, vous voyez une démonstration de l'exploit repensé et une fenêtre d'avertissement que "Final_Presentation" est une application téléchargée sur Internet, demandant si l'utilisateur est sûr qu'il veut l'ouvrir sur l'ordinateur?

Cliquer sur le bouton «Ouvrir» est la deuxième requête provoquant une fenêtre pop-up, et si l'utilisateur clique sur l'icône de l'application qui y est affichée, nous verrons que le malware a été automatiquement installé sur le système.



Il y a une faille logique dans Apple où vous n'avez pas besoin de patcher le système d'exploitation pour infecter le système, et cela fonctionne toujours dans la dernière version de macOS. Maintenant que nous avons refait l'exploit, parlons de refaire le malware.



Notre première étape consiste à remplacer l'adresse intégrée du serveur C & C afin que l'exploit contacte notre serveur et en télécharge le malware converti. Malheureusement, l'adresse était cryptée, mais cela ne nous a pas dérangés. Nous avons décidé de faire en sorte que les logiciels malveillants chargent toujours la bibliothèque dynamique. Ensuite, dès que notre bibliothèque a été lancée dans l'espace d'adressage du processus malveillant, nous pourrions, en principe, modifier le malware afin qu'il intercepte les adresses décryptées du serveur C&C pendant le fonctionnement avant même d'utiliser ce serveur pour la connexion. Examinons de plus près ce processus.

Permettez-moi de vous rappeler encore une fois - notre objectif était de re-profiler les logiciels malveillants en spécifiant notre propre serveur C&C afin que les logiciels malveillants se connectent à notre infrastructure.



Ainsi, la bibliothèque dynamique a été chargée dans l'espace d'adressage des logiciels malveillants, et nous avons remplacé la procédure de décryptage ou appliqué Swizzle. Cette méthode de remplacement d'API efficace et puissante s'appelle Yoop.

La diapositive montre que nous avons remplacé la fonction de décryptage de telle manière que chaque fois que le malware l'appelle, il appelle en fait notre méthode de décryptage dans notre bibliothèque. Je n'ai aucune idée de ce que l'algorithme de décryptage est et comment il fonctionne, et, franchement, je m'en fiche, mais après la substitution, je peux voir le résultat de ce cryptage. Donc, si la méthode de cryptage d'origine me renvoie les adresses de serveur C&C décryptées, je peux simplement intégrer mon propre serveur C&C dans la logique du logiciel malveillant. Cela nous permet de remplacer de manière transparente le serveur C&C déchiffré par notre serveur.

Maintenant, j'ajoute quelques messages de débogage à la bibliothèque afin que lorsque nous exécutons le malware converti, nous pouvons voir comment les adresses du serveur C&C sont remplacées pendant son exécution. Dans la fenêtre du terminal de ligne de commande, vous pouvez voir comment notre bibliothèque, qui passe par la méthode de décryptage d'origine, détecte que cette réponse provient du serveur C&C, dont l'adresse est maintenant décryptée.



Comme nous ne voulons pas que notre programme fasse référence à la logique du malware d'origine, nous rejetons simplement cette fonction et retournons à notre propre programme. Bien sûr, nous devons toujours être sûrs que la porte dérobée accède à notre serveur C&C, et non au serveur du groupe APT d'origine.

Nous devions écrire notre serveur C&C, car maintenant les logiciels malveillants s'y connecteront, et nous devons fournir une «conversation» avec le protocole afin de perplexer correctement les logiciels malveillants.



La fonction principale de la porte dérobée Windtall est de collecter et d'extraire les fichiers utilisateur, nous avons donc d'abord dû ajouter cette fonction à notre serveur C&C. Les fichiers sont récupérés via une requête POST, nous avons donc simplement écrit quelques lignes de code Python pour nous permettre d'enregistrer les fichiers récupérés et qui nous sont envoyés depuis l'hôte infecté.

Vous voyez à l'écran comment notre serveur C&C reçoit les fichiers extraits de l'ordinateur attaqué.



Sur la gauche, vous pouvez voir comment les requêtes réseau entrent, et sur la droite - comment notre serveur les écrit dans le système de fichiers. Cela signifie que nous prenons désormais en charge la capacité des logiciels malveillants d'extraire des fichiers de tous types à partir d'un hôte infecté.

Nous avons également adapté notre serveur C&C pour prendre en charge les capacités de téléchargement et d'exécution de Windtall. Nous avons remarqué que ce malware exécute 2 requêtes.



La première demande concerne l'obtention du nom de fichier à télécharger, et la deuxième demande nous devons répondre avec des octets spécifiques du fichier que nous voulons télécharger. Les logiciels malveillants enregistrent tout cela dans le fichier que nous avons spécifié, puis le décompressent et l'exécutent. Je le répète encore une fois - cela nous a pris seulement quelques lignes en Python, c'est simple, car il utilise de nombreuses bibliothèques intégrées.

Dès que nous avons fait cela, nous avons eu l'occasion de "puzzle" l'implant. Regardons-le en action. Nous voyons comment les logiciels malveillants se connectent à notre serveur C&C, car nous avons réussi à changer l'adresse du serveur d'origine et à exécuter la tâche qui lui est confiée: il télécharge l'application Calculatrice.



La possibilité de télécharger et d'exécuter des applications à distance signifie que nous pouvons installer d'autres outils ou d'autres exemples de logiciels malveillants sur l'ordinateur de l'utilisateur. Cela augmente infiniment le potentiel d'utilisation d'un logiciel de piratage réutilisé.

Enfin, donnons à notre serveur la possibilité de supprimer à distance les logiciels malveillants. La fonction d'autodestruction est très utile si les gars du FBI s'introduisent par effraction dans votre porte. Un clic sur la clé - et le virus lui-même se supprimera de tous les systèmes infectés.



Les logiciels espions nous contactent périodiquement pour nous demander s’il est nécessaire de s’effacer et, si nécessaire, nous répondons simplement avec le code «1», après quoi il est complètement désinstallé du système.

Une autre démo le montrera en action. Vous pouvez voir que notre malware a son propre logo orange imitant un document Power Point, mais en réalité c'est un répertoire système caché.



Après avoir à nouveau envoyé une demande de destruction au serveur C & C et nous y avons répondu, l'icône orange a disparu du répertoire du programme et l'application elle-même a cessé de «nous parler» car elle a effectué une auto-destruction.



Nous avons donc montré comment certains échantillons de logiciels malveillants pour macOS sont reprofilés, et discutons maintenant comment rester non détecté. Comme nous refaisons des programmes malveillants connus que la protection intégrée de macOS et un logiciel antivirus tiers détectent et bloquent, nous devons en quelque sorte résoudre ce problème.

Comment ne pas être détecté


Tout d'abord, parlons des programmes de détection et de contrôle des virus intégrés à macOS, tels que XProtect, l'outil de suppression des virus MRT et la vérification de la révocation des certificats.



À première vue, cela semble problématique, car ces programmes peuvent bloquer nos logiciels espions convertis sur n'importe quel Mac. Par conséquent, vous devez réfléchir à la façon de contourner la protection, car si nous sommes pris avec notre logiciel malveillant soigneusement repensé et qu'Apple le bloque, ce sera un échec complet.

Jetons d'abord un coup d'œil à XProtect. Il s'agit d'un simple scanner antivirus basé sur des bases de données de signatures de virus et intégré aux dernières versions de macOS.



Il analyse les fichiers téléchargés par l'utilisateur sur l'ordinateur avant leur premier lancement, guidé par les règles de détection de virus. À l'écran, nous voyons une analyse de la signature du virus OSX.KeRanger.A, dont nous venons d'examiner le reprofilage.

Nous avons écrit un utilitaire simple appelé UXProtect, qui vous permet d'examiner ces signatures via l'interface utilisateur de l'interface utilisateur, ainsi que d'analyser les fichiers à tout moment pour les signatures de virus. Parce que XProtect utilise uniquement le moteur de détection de signature, il est extrêmement facile de se déplacer. Examinons de plus près la signature du virus KeRanger.



Nous voyons une indication d'un groupe de signatures de logiciels malveillants que vous avez juste besoin de réorganiser ou de modifier l'une de ces instructions pour contourner. La modification de quelques octets d'une instruction fait que la signature ne correspond plus aux paramètres de détection. Par exemple, nous avons changé le nombre d'octets à lire dans le tampon de 0x400 à 0x300. Cela n'a pas affecté la fonctionnalité du virus, mais dès que nous avons changé le nombre d'octets que le scanner vérifie pour une correspondance avec la signature, nous avons complètement exclu la possibilité que XProtect réagisse à cette menace.

Il est temps pour une autre démonstration, où vous verrez deux exemples de KeRanger. Nous utilisons à nouveau le client BitTorrent infecté. Sur la gauche de l'écran se trouve la copie originale du pirate informatique du virus, et sur la droite se trouve sa version réutilisée qui, afin d'obtenir la clé de cryptage, communique avec notre serveur C&C. De plus, il est modifié pour contourner la protection XProtect.



Vous voyez qu'une instance du virus d'origine est bloquée par le système sans possibilité de démarrage, et la seule opération autorisée est la suppression.



Si nous lançons une version KeRanger repensée, le système signale simplement qu'elle est téléchargée sur Internet et nous demande si nous voulons vraiment la lancer.



Si nous cliquons sur «Ouvrir», le ransomware est installé silencieusement dans le système et commence immédiatement à crypter tous les fichiers utilisateur.



La prochaine façon de protéger votre Mac consiste à vérifier les signatures de certificats. La plupart des binaires macOS signés ne sont pas bloqués par la fonction de sécurité de GateKeeper, c'est pourquoi les pirates informatiques fournissent des signatures pour la plupart des logiciels malveillants Mac modernes. En revanche, une fois qu'un virus signé est détecté, Apple révoque simplement son certificat de signature. Cela signifie que ce malware ne peut être exécuté sur aucun Mac.

Par exemple, nous avons un binaire du virus Windtall dont le certificat de signature a été révoqué par Apple. Cela signifie que même si nous le reprofilons et l'appliquons au nouveau système, nous ne pourrons toujours pas commencer. Par conséquent, nous essayons simplement de contourner la procédure de révocation de certificat en supprimant le certificat de signature lui-même.



Ensuite, nous utilisons une copie non signée du logiciel malveillant converti ou nous lui fournissons un certificat de signature juridique différent, ce qui est assez facile à obtenir.

Pour supprimer réellement le certificat, Apple lui-même fournit un utilitaire appelé Code Sign qui contient l'indicateur de suppression de signature non documenté, ou «remove signature». Si vous effectuez cette opération avec votre logiciel malveillant, Apple ne fera tout simplement pas attention au certificat de signature révoqué.

Nous pouvons également signer à nouveau notre application à l'aide du même utilitaire à l'aide de la commande codesign -s «Developer ID Applikation:». Cela entraînera le Windtall re-signé ne sera plus bloqué par macOS.

Enfin, nous passons à MRT, l'outil de suppression de virus intégré disponible sur les dernières versions du système d'exploitation Mac. Il est similaire à XProtect, mais il analyse les logiciels malveillants déjà installés sur le système et les détecte automatiquement lors de la détection. Contrairement à XProtect, ses signatures sont intégrées dans son propre fichier binaire. Apple utilise souvent cet outil pour supprimer les applications légitimes qu'il considère dangereuses pour votre ordinateur. Ce sont généralement des applications contenant des vulnérabilités connues.



Puisque MRT, comme XProtect, fonctionne avec des signatures, il peut également être contourné. Nous avons utilisé le vidage MRT, encore une fois, car les signatures sont intégrées au binaire lui-même, et nous avons pu toutes les visualiser, y compris la signature du virus Fruitfly. Nous nous demandions si MRT pouvait détecter notre copie convertie de ce malware?



Nous avons commencé à rechercher la signature intégrée de Fruitfly et avons constaté que sa détection était basée sur deux choses: le chemin d'installation du virus et le fichier .plist téléchargé. Cela signifie que si nous modifions le chemin ou le nom d'un malware, MRT ne pourra pas le détecter. Comme je l'ai dit, en conséquence, contourner cette protection s'est avéré assez simple.

Nous avons constaté que contourner un logiciel antivirus tiers n'est pas non plus difficile, car vous pouvez exécuter un virus converti même sur un système sur lequel l'utilisateur a déjà installé un antivirus.



Il y a eu beaucoup de discussions à ce sujet, je ne veux pas entrer dans les détails, mais en général, les produits antivirus traditionnels sont basés sur la vérification de signature, comme le logiciel antivirus Apple, ce qui signifie qu'ils peuvent être contournés par les mêmes méthodes.

Par exemple, j'ai pris le même Fruitfly, je me suis souvenu qu'il s'agissait également d'un script Perl et je l'ai transmis à l'utilitaire en ligne gratuit Perl Obfuscator, conçu pour rendre le script Perl difficile à lire et réduire à zéro la probabilité de sa détection. Naturellement, cela a fonctionné. Mais vous pouvez aller de manière plus ingénieuse, surtout si vous utilisez un malware binaire. Vous pouvez l'intégrer dans une archive, utiliser un chiffreur ou même une exécution en mémoire, c'est-à-dire un téléchargement sans fichier et une exécution de virus dans la RAM.

Il y a quelques années, ces technologies ont été discutées lors de la conférence BlackHat et il a été conclu que même si un utilisateur Mac avait installé un logiciel antivirus tiers sur le système, il n'était toujours pas en mesure de détecter les logiciels malveillants reprogrammés. C'est une mauvaise nouvelle pour les utilisateurs de macOS, car nous savons que les pirates expérimentés utilisent des logiciels malveillants convertis. Souvent, toute la modification se résume à changer quelques octets de code ou d'arguments de ligne de commande, ce qui permet de prendre le contrôle d'un ordinateur afin de l'utiliser à leurs propres fins. De plus, la plupart des outils antivirus intégrés à macOS et les logiciels antivirus tiers ne sont pas en mesure de détecter les menaces converties.

Étant donné que ce logiciel réutilisé est juste un logiciel espion original et bien connu, je vais mettre un "chapeau blanc" et vous dire comment vous pouvez toujours le trouver.

Détection du logiciel de reconfiguration


Il est bien connu qu'un logiciel antivirus basé sur les signatures ne résiste pas aux logiciels malveillants convertis. Par conséquent, nous devons prêter attention au comportement inhabituel, anormal et malveillant de ces logiciels malveillants.

Nous devons essayer de le détecter, non pas grâce à la signature bien connue du virus, mais en observant ses actions dans le système. Nous nous sommes assurés que lorsque vous refaites un logiciel espion bien connu, ses fonctions de base et son objectif restent inchangés.

Si nous refaisons le cheval de Troie ransomware Ransomware, il cryptera toujours vos fichiers, et la porte dérobée repensée continuera à collecter des fichiers et à les envoyer au serveur espion.
Sur la diapositive ci-dessus, j'ai affiché les fonctions ou capacités du système, qui devraient être surveillées et surveillées pour leur activité. Ceux-ci incluent la «persistance» des applications, l'activité inhabituelle du microphone ou de la caméra, le téléchargement ou le transfert de fichiers, la capture d'écran non autorisée, les symptômes d'interception du clavier, les cliqueurs synthétiques et le cryptage des fichiers. Cela détectera même les logiciels malveillants réutilisés.

Parlons de persévérance. Lorsque je dis «persévérance», je veux dire que dès que le logiciel espion est installé sur l'ordinateur, il démarre automatiquement à chaque fois après le redémarrage du système. Il s'agit d'une fonctionnalité de tout logiciel malveillant pour macOS ou Windows - afin de s'efforcer durement d'atteindre un objectif malveillant.

Nous pouvons simplement contrôler le système de fichiers en observant le comportement de l'application «persistante» et, si quelque chose change, en informer l'utilisateur ou l'administrateur système.

Maintenant, je veux montrer comment vous pouvez détecter l'activité du virus Windtall original ou remodelé, qui se manifeste par un accès non autorisé à un microphone ou à une webcam Mac.



De nombreux logiciels malveillants Mac accèdent à une webcam ou à un microphone afin d'espionner un utilisateur d'un système infecté. Pour détecter cette activité virale, nous pouvons enregistrer chaque allumage de la caméra et du microphone dans le système macOS afin que l'utilisateur reçoive automatiquement une notification concernant cet événement. , FruitFly, , Zoom, .

. , .



macOS – Event Taps. , . .

FruitFly, , , – «» .



, macOS, . . , macOS , . , .

Objective-See, - macOS. , . , , .



, – , , « ».



, Digita Security, . : . Apple, , .

, . , , , , macOS.

, . , Windtall, , Safari , .



, URL , - URL. Windtall, , .

FruitFly , , - . , , , Apple, - .

, FruitFly , . , . template . , .

, , . , , macOS.

, Mac, 2020 , .




Un peu de publicité :)


Merci de rester avec nous. Aimez-vous nos articles? Vous voulez voir des matériaux plus intéressants? Soutenez-nous en passant une commande ou en recommandant à vos amis, le cloud VPS pour les développeurs à partir de 4,99 $ , une réduction de 30% pour les utilisateurs Habr sur un analogue unique de serveurs d'entrée de gamme que nous avons inventé pour vous: toute la vérité sur VPS (KVM) E5-2650 v4 (6 Cœurs) 10 Go DDR4 240 Go SSD 1 Gbps à partir de 20 $ ou comment partager un serveur? (les options sont disponibles avec RAID1 et RAID10, jusqu'à 24 cœurs et jusqu'à 40 Go de DDR4).

Dell R730xd 2 fois moins cher? Nous avons seulement 2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 TV à partir de 199 $ aux Pays-Bas! Dell R420 - 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB - à partir de 99 $! Pour en savoir plus sur la création d'un bâtiment d'infrastructure. classe utilisant des serveurs Dell R730xd E5-2650 v4 coûtant 9 000 euros pour un sou?

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


All Articles