Intrusion cachée de mots de passe avec Smbexec

Intrusion cachée de mots de passe avec Smbexec

Nous écrivons régulièrement sur la manière dont les hackers s'appuient souvent sur l'utilisation de méthodes de piratage sans code malveillant, afin d'éviter d'être détectés. Ils survivent littéralement en se nourrissant des miettes, en utilisant des outils standards de Windows, contournant ainsi les antivirus et autres utilitaires de détection d'activités malveillantes. En tant que défenseurs, nous sommes maintenant contraints de faire face aux tristes conséquences de ces techniques de piratage sournoises : un employé bien placé peut utiliser la même méthode pour voler discrètement des données (propriété intellectuelle de l'entreprise, numéros de cartes de crédit). Et s'il prend son temps, en travaillant lentement et discrètement, il sera extrêmement difficile — mais néanmoins possible, si l'on adopte la bonne approche et les outils, de détecter une telle activité.

D'autre part, je ne voudrais pas diaboliser les employés, car personne ne souhaite travailler dans un environnement commercial directement tiré de « 1984 » d'Orwell. Heureusement, il existe des étapes pratiques et des astuces qui peuvent compliquer considérablement la vie des initiés. Nous examinerons les méthodes cachées d'attaque, utilisées par des hackers employés ayant un certain bagage technique. Un peu plus loin, nous discuterons des options pour réduire ces risques – en étudiant à la fois les approches techniques et organisationnelles.

Quel est le problème avec PsExec ?

Edward Snowden, à tort ou à raison, est devenu le synonymes de vol de données par des initiés. À propos, n'oubliez pas de jeter un œil à cet article sur d'autres initiés qui méritent également une certaine notoriété. Il est important de souligner un point concernant les méthodes qu'a utilisées Snowden : autant que nous le savons, il n'a pas installé de logiciels malveillants externes !

Au contraire, Snowden a utilisé un peu d'ingénierie sociale et a profité de sa position d'administrateur système pour recueillir des mots de passe et créer des identifiants. Rien de compliqué – aucune mimikatz, attaques man-in-the-middle ou metasploit.

Les employés d'organisations ne se trouvent pas toujours dans une position unique comme celle de Snowden, mais de cette notion de « survie sur les miettes », on peut tirer plusieurs leçons qu'il est bon de connaître – ne pas effectuer d'actions malveillantes pouvant être détectées, et surtout utiliser les identifiants avec précaution. Gardez cette pensée en tête.

Psexec et son cousin crackmapexec ont impressionné d'innombrables pentesteurs, hackers et blogueurs en cybersécurité. En combinaison avec mimikatz, psexec permet aux attaquants de se déplacer à l'intérieur du réseau sans avoir besoin de connaître le mot de passe en clair.

Mimikatz intercepte le hachage NTLM dans le processus LSASS, puis transmet le jeton ou les informations d'identification – le dit attaque « pass the hash » – dans psexec, permettant à l'attaquant de se connecter à un autre serveur en tant que autre utilisateur. À chaque nouveau déplacement vers un serveur, l'attaquant collecte des informations d'identification supplémentaires, élargissant ainsi ses capacités de recherche de contenu disponible.

Lorsque j'ai commencé à travailler avec psexec, cela m'a semblé magique – merci Mark Russinovich, le développeur génial de psexec, – mais je suis également conscient de ses composants bruyants. Il n'est absolument pas discret !

Le premier fait intéressant sur psexec est qu'il utilise un protocole de fichiers réseau SMB de Microsoft. Grâce à SMB, psexec transfère de petits fichiers binaires vers la cible, les plaçant dans le répertoire C:Windows.

Ensuite, psexec crée un service Windows à partir du binaire copié et le lance sous un nom extrêmement « inattendu » PSEXECSVC. Vous pouvez réellement voir tout cela, tout comme moi, en observant la machine distante (voir ci-dessous).

Intrusion cachée de mots de passe avec Smbexec

Cartes de visite de Psexec : service « PSEXECSVC ». Il exécute un fichier binaire qui a été placé via SMB dans le répertoire C:Windows.

En dernière étape, le fichier binaire copié ouvre une connexion RPC au serveur cible, puis reçoit les commandes (par défaut via cmd shell Windows), les exécutant et redirigeant l'entrée et la sortie vers la machine de l'attaquant. L'attaquant voit ainsi l'interface de ligne de commande de base – comme s'il était connecté directement.

De nombreux composants et un processus très bruyant !

Le mécanisme complexe des processus internes de psexec explique le message qui m'a dérouté lors de mes premiers tests il y a quelques années : « Démarrage de PSEXECSVC … » suivi d'une pause avant l'apparition de l'invite de commande.

Intrusion cachée de mots de passe avec Smbexec

Psexec d'Impacket montre en réalité ce qui se passe « sous le capot ».

Il n'est pas surprenant que psexec ait accompli un énorme volume de travail « sous le capot ». Si vous êtes intéressé par une explication plus détaillée, consultez ce formidable descriptif.

Il est évident qu'en tant qu'outil d'administration système, ce qui était le but initial de psexec, il n'y a rien de terrible dans le « bourdonnement » de tous ces mécanismes Windows. Pour un attaquant, cependant, psexec créera des complications et pour un insider prudent et rusé, comme Snowden, psexec ou un utilitaire similaire sera un risque trop grand.

Et c'est là que Smbexec entre en jeu.

SMB est une méthode habile et discrète de transfert de fichiers entre serveurs, et les hackers se sont infiltrés directement dans SMB depuis la nuit des temps. Je suppose que tout le monde sait maintenant qu'il ne faut pas ouvrir les ports SMB 445 et 139 sur Internet, n'est-ce pas ?

En 2013, à Defcon, Eric Millman (brav0hax) a présenté smbexec, afin que les testeurs de pénétration puissent essayer le piratage discret de SMB. Je ne connais pas toute l'histoire, mais ensuite Impacket a perfectionné smbexec. En fait, pour mes tests, j'ai téléchargé exactement les scripts d'Impacket en Python de Github.

Contrairement à psexec, smbexec évite le transfert d'un fichier binaire potentiellement détectable vers la machine cible. Au lieu de cela, l'utilitaire vit entièrement de « ressources locales » via l'exécution de la ligne de commande Windows locale. Voici ce qu'elle fait : elle transfère une commande depuis la machine de l'attaquant via SMB dans un fichier entrant spécial, puis crée et lance une ligne de commande complexe (comme un service Windows) qui semblera familière aux utilisateurs de Linux. En résumé : elle exécute le shell cmd natif de Windows, redirige la sortie dans un autre fichier et l'envoie ensuite par SMB de retour à la machine de l'attaquant.

La meilleure façon de comprendre cela est d'examiner la ligne de commande que j'ai pu obtenir à partir du journal des événements (voir ci-dessous).

N'est-ce pas la plus grande méthode de redirection d'entrée/sortie ? Cela dit, la création d'un service a un identifiant d'événement 7045.

Intrusion cachée de mots de passe avec Smbexec

Comme psexec, elle crée également un service qui exécute tout le travail, mais le service est ensuite

supprimé – il n'est utilisé qu'une seule fois pour exécuter la commande et disparaît ensuite ! Un employé de la sécurité de l'information surveillant la machine de la victime ne pourra pas détecter des signes évidents. d'évidents indicateurs d'attaque : aucun fichier exécutable malveillant, aucun service persistant n'est installé, et il n'y a aucune preuve de l'utilisation de RPC, car SMB est le seul moyen de transmission des données. Geniál !

Du côté de l'attaquant, un « pseudo-shell » est disponible avec des retards entre l'envoi de la commande et la réception de la réponse. Mais cela suffit largement pour un malfaiteur – qu'il soit un initié ou un hacker externe, déjà présent – pour commencer à chercher un contenu intéressant.

Intrusion cachée de mots de passe avec Smbexec

Pour renvoyer des données de la machine cible vers la machine de l'attaquant, on utilise smbclient. Oui, c'est le même Samba outil, mais seulement refait en un script Python par Impacket. En fait, smbclient vous permet d'organiser discrètement un transfert FTP sur SMB.

Revenons en arrière et réfléchissons à ce que cela pourrait signifier pour un employé. Dans mon scénario fictif, disons qu'un blogueur, un analyste financier ou un consultant en sécurité bien rémunéré est autorisé à utiliser son ordinateur portable personnel pour travailler. À la suite d'un certain processus magique, elle se sent offensée par l'entreprise et « se lance dans tous les excès ». Selon le système d'exploitation du portable, elle utilise soit la version Python d'Impact, soit la version Windows de smbexec ou smbclient sous forme de fichier .exe.

Comme Snowden, elle découvre le mot de passe d'un autre utilisateur soit en le regardant par-dessus l'épaule, soit par chance, elle tombe sur un fichier texte contenant le mot de passe. Et avec ces identifiants, elle commence à fouiller dans le système à un nouveau niveau de privilèges.

Exploitation DCC : nous n'avons pas besoin de Mimikatz « stupide »

Dans mes précédents articles consacrés au pentesting, j'ai souvent utilisé mimikatz. C'est un excellent outil pour intercepter les identifiants - les hachages NTLM et même les mots de passe en clair, cachés dans les ordinateurs portables et attendant d'être utilisés.
Les temps ont changé. Les outils de surveillance se sont améliorés pour détecter et bloquer mimikatz. Les administrateurs de la sécurité de l'information disposent également de plus d'options pour réduire les risques associés aux attaques de type « pass the hash » (ci-après – PtH).
Que doit donc faire un employé intelligent pour collecter des identifiants supplémentaires sans utiliser mimikatz ?

Le kit Impacket comprend un outil appelé secretsdump, qui extrait les identifiants du cache Domain Credential Cache, ou DCC en abrégé. D'après ce que je comprends, si un utilisateur de domaine se connecte au serveur mais que le contrôleur de domaine est indisponible, le DCC permet au serveur d'authentifier l'utilisateur. Quoi qu'il en soit, secretsdump vous permet de dumper tous ces hachages s'ils sont disponibles.

Les hachages DCC sont pas des hachages NTLM et ils ne peuvent pas être utilisés pour une attaque PtH.

Eh bien, vous pouvez essayer de les cracker pour obtenir le mot de passe d'origine. Cependant, Microsoft est devenu plus intelligent en ce qui concerne le DCC, et cracker les hachages DCC est devenu extrêmement difficile. Oui, il y a hashcat, « le craqueur de mots de passe le plus rapide au monde », mais il nécessite un GPU pour fonctionner efficacement.

Au lieu de cela, essayons de penser comme Snowden. Un employé peut réaliser une ingénierie sociale en personne et peut-être obtenir des informations sur la personne dont il souhaite cracker le mot de passe. Par exemple, découvrir si le compte en ligne de cette personne a déjà été compromis et examiner son mot de passe en clair pour y déceler des indices.

Et c'est le scénario que j'ai décidé de suivre. Supposons qu'un informateur ait appris que son supérieur, Cruella, a été piratée plusieurs fois sur différents sites. Après avoir analysé plusieurs de ces mots de passe, il réalise que Cruella préfère utiliser le format du nom de l'équipe de baseball 'Yankees' suivi de l'année actuelle - 'Yankees2015'.

Si vous essayez de reproduire cela chez vous, vous pouvez télécharger un petit code 'C' code, implémentant l'algorithme de hachage DCC, et le compiler. John the Ripper, soit dit en passant, a ajouté le support du DCC, donc il peut également être utilisé. Supposons que l'informateur ne veuille pas s'embarrasser à étudier John the Ripper et aime exécuter 'gcc' sur du code 'C' obsolète.

En prenant le rôle de l'informateur, j'ai essayé plusieurs combinaisons différentes et enfin pu découvrir que le mot de passe de Cruella est 'Yankees2019' (voir ci-dessous). Mission accomplie!

Intrusion cachée de mots de passe avec Smbexec

Un peu d'ingénierie sociale, un brin de conjecture et une pincée de Maltego - et vous êtes déjà en route pour cracker le hachage DCC.

Je propose de clore ici. Nous reviendrons sur cette question dans d'autres publications et examinerons encore plus de méthodes d'attaque lentes et discrètes, en continuant de nous appuyer sur l'excellent ensemble d'outils d'Impacket.

Source : habr.com

Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster