Nous écrivons régulièrement sur la façon dont les pirates utilisent souvent des techniques de piratage non malveillantes pour éviter la détection. Ils «survivent littéralement sur l'herbe» , en utilisant les outils Windows standard, contournant ainsi les antivirus et autres utilitaires de détection des activités malveillantes. En tant que défenseurs, nous devons désormais faire face aux conséquences désastreuses de ces techniques de piratage intelligentes: un employé bien placé peut utiliser la même approche pour voler furtivement des données (propriété intellectuelle de l'entreprise, numéros de carte de crédit). Et s'il prend son temps et travaille lentement et inaperçu, il sera extrêmement difficile - mais toujours possible, avec la bonne approche et les bons outils - de détecter une telle activité.
D'un autre côté, je ne voudrais pas diaboliser les employés, car personne ne veut travailler dans un environnement professionnel depuis 1984 d'Orwell. Heureusement, il existe un certain nombre d'étapes pratiques et de hacks de la vie qui peuvent rendre la vie beaucoup plus difficile pour les initiés. Nous examinerons les méthodes d'attaque furtives utilisées par les pirates informatiques par des employés ayant des connaissances techniques. Et un peu plus loin, nous discuterons des options pour réduire ces risques - nous étudierons les options d'action à la fois techniques et organisationnelles.
Quel est le problème avec PsExec?
Edward Snowden, à juste titre ou non, est devenu synonyme de vol de données d'initiés. En passant, n'oubliez pas de jeter un œil à cet article sur d'autres initiés qui méritent également un statut de renommée. Un point important à souligner concernant les méthodes utilisées par Snowden est qu'à notre connaissance, il n'a installé aucun logiciel malveillant externe!
Au lieu de cela, Snowden a utilisé un peu d'ingénierie sociale et a utilisé son travail d'administrateur système pour collecter des mots de passe et créer des informations d'identification. Rien de compliqué - pas de mimikatz , d' attaque de l' homme du milieu ou de metasploit .
Les organisations ne sont pas toujours dans la position unique de Snowden, mais il y a un certain nombre de leçons à tirer du concept de «survie au pâturage» - ne pas effectuer d'actions nuisibles qui peuvent être détectées, et faire particulièrement attention à l'utilisation des informations d'identification. Souvenez-vous de cette pensée.
Psexec et son cousin crackmapexec ont impressionné d'innombrables pentesters, hackers et blogueurs de sécurité de l'information. Et lorsqu'il est combiné avec mimikatz, psexec permet aux attaquants de naviguer dans le réseau sans avoir à connaître le mot de passe en texte clair.
Mimikatz intercepte le hachage NTLM du processus LSASS, puis transmet le jeton ou les informations d'identification - le soi-disant. Attaque "Passer le hachage"- dans psexec, permettant à un attaquant de se connecter à un autre serveur pour le compte d' un autre utilisateur. Et à chaque passage ultérieur vers un nouveau serveur, l'attaquant collecte des informations d'identification supplémentaires, élargissant ainsi la gamme de ses capacités à trouver le contenu disponible.
Quand j'ai commencé à travailler avec psexec, cela me semblait magique - grâce à Mark Russinovich , le développeur génial de psexec - mais je connais aussi ses composants bruyants . Il n'est jamais secret!
Le premier fait intéressant à propos de psexec est qu'il utilise le protocole de fichiers réseau SMB extrêmement complexe de Microsoft. Psexec utilise SMB pour envoyer de petits binairesfichiers sur le système cible en les plaçant dans le dossier C: \ Windows.
Ensuite, psexec crée un service Windows en utilisant le binaire copié et l'exécute sous le nom extrêmement "inattendu" PSEXECSVC. En même temps, vous pouvez réellement voir tout cela, comme je l'ai fait, en regardant la machine distante (voir ci-dessous).
Carte de visite Psexec: service "PSEXECSVC". Il lance un fichier binaire qui a été placé sur SMB dans le dossier C: \ Windows.
Enfin, le binaire copié ouvre une connexion RPC au serveur cible, puis accepte les commandes de contrôle (par défaut via le shell cmd Windows), les exécute et redirige l'entrée et la sortie vers la machine domestique de l'attaquant. Dans ce cas, l'attaquant voit la ligne de commande de base - la même chose que s'il était connecté directement.
Beaucoup de composants et un processus très bruyant!
Le processus interne sophistiqué de Psexec explique le message qui m'a intrigué lors de mes premiers tests il y a quelques années: "Démarrage de PSEXECSVC ..." suivi d'une pause avant l'apparition de la ligne de commande.
Psexec d'Impacket montre vraiment ce qui se passe sous le capot.
Pas étonnant: psexec a fait beaucoup de travail sous le capot. Si vous êtes intéressé par une explication plus détaillée, consultez cette excellente description ici.
Évidemment, lorsqu'il est utilisé comme outil d'administration système, ce qui était le but initial de psexec, il n'y a rien de mal à bourdonner tous ces mécanismes Windows. Pour un attaquant, cependant, psexec créerait des complications, et pour un initié prudent et rusé comme Snowden, psexec ou un utilitaire similaire serait trop risqué.
Et puis vient Smbexec
SMB est un moyen intelligent et furtif de transférer des fichiers entre les serveurs, et les pirates informatiques ont infiltré SMB directement pendant des siècles. Je suppose que tout le monde sait déjà que vous ne devriez pas ouvrir les ports SMB 445 et 139 à Internet, non?
Chez Defcon en 2013, Eric Milman ( brav0hax ) a publié smbexec afin que les testeurs d' intrusion puissent essayer le piratage SMB furtif. Je ne connais pas toute l'histoire, mais Impacket a ensuite raffiné smbexec. En fait, pour mes tests, j'ai téléchargé les scripts d'Impacket en python depuis Github .
Contrairement à psexec, smbexec évitetransférer un fichier binaire potentiellement détectable vers la machine cible. Au lieu de cela, l'utilitaire vit entièrement de l'herbe en exécutant la ligne de commande Windows locale .
C'est ce qu'il fait: il envoie une commande de la machine attaquante via SMB vers un fichier d'entrée spécial, puis crée et exécute une ligne de commande complexe (comme un service Windows) qui semblera familière aux utilisateurs de Linux. En bref: il lance un shell cmd Windows natif, redirige la sortie vers un autre fichier, puis la renvoie via SMB vers la machine de l'attaquant.
La meilleure façon de comprendre cela est d'étudier la ligne de commande, que j'ai pu récupérer dans le journal des événements (voir ci-dessous).
N'est-ce pas le meilleur moyen de rediriger les E / S? À propos, la création de service a l'ID d'événement 7045.
Comme psexec, il crée également un service qui fait tout le travail, mais le service est ensuite supprimé - il n'est utilisé qu'une seule fois pour exécuter la commande, puis disparaît! Un responsable de la sécurité de l'information surveillant la machine de la victime ne sera pas en mesure de détecter les indicateurs évidents d'une attaque: il n'y a pas de fichier exécutable malveillant, aucun service persistant n'est installé et il n'y a aucune preuve d'utilisation de RPC, puisque SMB est le seul moyen de transférer des données. Brillant!
Dans le même temps, un "pseudo-shell" est disponible du côté de l'attaquant avec des délais entre l'envoi d'une commande et la réception d'une réponse. Mais c'est tout à fait suffisant pour qu'un attaquant - qu'il s'agisse d'un initié ou d'un hacker extérieur qui a déjà un pied - commence à rechercher un contenu intéressant.
Pour renvoyer les données de la machine cible vers la machine de l'attaquant, smbclient est utilisé . Oui, c'est le même utilitaire Samba , mais modifié pour le script Python par Impacket. En fait, smbclient vous permet d'organiser secrètement des transferts FTP sur SMB.
Prenons du recul et réfléchissons à ce que cela peut faire pour l'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 un ordinateur portable personnel pour le travail. À la suite d'un processus magique, elle s'offusque de l'entreprise et «fait tout son possible». En fonction du système d'exploitation de l'ordinateur portable, il utilise soit la version Python d'Impact, soit la version Windows de smbexec ou smbclient sous forme de fichier .exe.
Comme Snowden, elle apprend le mot de passe d'un autre utilisateur soit en le regardant par-dessus son épaule, soit elle a de la chance et elle tombe sur un fichier texte avec le mot de passe. Et avec ces informations d'identification, elle commence à fouiller dans le système à un nouveau niveau de privilèges.
Hacking DCC: Nous n'avons pas besoin de Mimikatz stupide
Dans mes précédents articles sur les pentest, j'ai beaucoup utilisé le mimikatz. C'est un excellent outil pour intercepter les informations d'identification - les hachages NTLM et même les mots de passe en texte clair cachés à l'intérieur des ordinateurs portables et en attente d'être utilisés.
Les temps ont changé. Les outils de surveillance sont devenus meilleurs pour détecter et bloquer les mimikatz. Les administrateurs de la sécurité de l'information ont également obtenu davantage d'options pour atténuer les risques associés à la réussite des attaques de hachage (ci-après dénommées PtH).
Alors, que doit faire un employé intelligent pour collecter des informations d'identification supplémentaires sans utiliser mimikatz?
Impacket comprend un utilitaire appelé secretsdumpqui récupère les informations d'identification à partir du cache d'informations d'identification de domaine, ou DCC pour faire court. Pour autant que je sache, si un utilisateur de domaine se connecte au serveur, mais que le contrôleur de domaine n'est pas disponible, DCC permet au serveur d'authentifier l'utilisateur. Quoi qu'il en soit, secretsdump vous permet de vider tous ces hachages, s'ils sont disponibles.
Les hachages DCC ne sont pas des hachages NTML et ne peuvent pas être utilisés pour une attaque PtH .
Eh bien, vous pouvez essayer de les casser pour obtenir le mot de passe d'origine. Cependant, Microsoft est devenu plus intelligent avec DCC et il est devenu extrêmement difficile de déchiffrer les hachages DCC. Oui, il existe hashcat , "le sélecteur de mot de passe le plus rapide au monde", mais il nécessite un GPU pour fonctionner efficacement.
Essayons plutôt de penser comme Snowden. L'employée peut faire de l'ingénierie sociale en face à face et éventuellement trouver des informations sur la personne dont elle souhaite déchiffrer le mot de passe. Par exemple, découvrez si le compte en ligne de cette personne a déjà été piraté et examinez son mot de passe en texte clair à la recherche d'indices.
Et c'est le scénario que j'ai décidé d'aller. Supposons qu'un initié découvre que son patron, Cruella, a été piraté plusieurs fois sur différentes ressources Web. Après avoir analysé plusieurs de ces mots de passe, il se rend compte que Cruella préfère utiliser le format de nom d'équipe de baseball "Yankees" suivi de l'année en cours, "Yankees2015".
Si vous essayez actuellement de le reproduire chez vous, vous pouvez télécharger un petit "C"code qui implémente l'algorithme de hachage DCC et le compile. John the Ripper a ajouté le support DCC, vous pouvez donc l'utiliser aussi. Supposons qu'un initié ne veuille pas s'impliquer dans l'apprentissage de John the Ripper et aime exécuter "gcc" dans le code C hérité.
Tout en décrivant le rôle d'un initié, j'ai couru plusieurs combinaisons différentes et à la fin j'ai pu constater que le mot de passe de Cruella était "Yankees2019" (voir ci-dessous). Mission accomplie!
Avec un peu d'ingénierie sociale, un peu de bonne aventure et une pincée de Maltego, vous êtes sur la bonne voie pour déchiffrer le hachage DCC.
Je propose de mettre fin à cela. Nous reviendrons sur cette question dans d'autres articles et examinerons des méthodes d'attaque encore plus lentes et furtives, tout en continuant à nous appuyer sur l'excellent ensemble d'utilitaires d'Impacket.