Même les professionnels de la sécurité de haut niveau font des erreurs catastrophiques, et cette fois, ce sont les opérateurs de l’ITG18 iranien. Nous parlons encore une fois de l’étrange monde ténébreux du piratage par l’État. Cette histoire provient de l'IBM X-Force Incident Response Intelligence Services (IRIS). Je soupçonne qu’un fan de Deadpool doit travailler chez IBM, mais ce n’est pas la question.

Un serveur suspecté d'être utilisé par ITG18 était mal configuré, et lorsque des données et des vidéos de formation y étaient stockées, ces données étaient accessibles au public. Parmi les données saisies figuraient des enregistrements de comptes compromis appartenant à des militaires américains et grecs.

Les vidéos de formation contenaient également quelques informations intéressantes. Si un compte ciblé utilisait une authentification à deux facteurs, l'attaquant devait prendre note et renoncer à accéder à ce compte. En cas de violation d'un compte Google, la pratique consistait à commencer par Google Takeout, le service de Google qui permet de télécharger toutes les données que Google a collectées en rapport avec ce compte. Yoiks.

Pour faire un exploit à partir de zéro, vous devez d'abord inventer l'univers

Nous avons couvert de nombreux exploits au niveau du noyau dans cette colonne, mais jamais nous n'avons couvert un guide tout à fait comme celui qui vient d'être publié par Secfault Security. Ils tentent de combler le fossé entre le fait d'être un développeur et un auteur d'exploit, nous guidant tout au long du processus de création d'un PoC d'exploitation réel basé sur une rédaction de Google Project Zero.

ProcMon

ProcMon en action
Image de Microsoft, MIT sous licence

Microsoft continue de développer sa présence Linux, cette fois en repensant Process Monitor sous le nom de ProcMon pour Linux. Un peu d'histoire, Process Monitor fait partie de la suite Sysenternals, initialement développée par (Bryce Cogswell) et (Mark Russinovich), fondateurs de Winternals. Incidemment, ils ont également cassé l'histoire du rootkit Sony BMG, en utilisant des outils sysinternals. Moins d'un an après que cette histoire a éclaté, Winternals a été racheté par Microsoft, et bien que (Cogswell) ait évolué, (Russonovich) est resté avec Microsoft et est maintenant le CTO d'Azure.

ProcMon est écrit en C ++ et publié sous la licence MIT. Il garde une trace des appels système qui se déroulent sur la machine en temps réel, donnant un aperçu détaillé de l'activité du système. Il est utile pour la sécurité, le débogage et la résolution des problèmes de performances. Dans l’ensemble, c’est un outil très pratique et devrait constituer une partie utile de la boîte à outils de l’administrateur système. La source est disponible sous une licence approuvée OSI, de sorte que les différentes distributions devraient récupérer et empaqueter ProcMon avant longtemps.

Conteneurs Windows Server

Windows Server prend en charge plusieurs méthodes pour exécuter des processus dans des conteneurs: les conteneurs HyperV et les conteneurs Windows Server. Il est assez largement admis que la conteneurisation basée sur la virtualisation offre une isolation plus sécurisée. Autrement dit, si un conteneur virtualisé est compromis, il est beaucoup plus difficile pour un attaquant de migrer et d'attaquer la machine hôte, par rapport à une conteneurisation basée sur le noyau.

La nouvelle est une nouvelle façon d'échapper à un conteneur Windows Server. Bien que cela ne soit pas aussi fréquent que sur une machine Linux, Windows prend en charge les liens symboliques. La lecture de l'analyse approfondie montre également à quel point les machines Windows modernes deviennent des machines POSIX avec une couche de compatibilité Windows en plus. Par exemple, le répertoire «C:» est en fait un lien symbolique global vers « Device HarddiskVolumeX ».

Si un processus conteneurisé pouvait créer un lien symbolique global, AKA qui pointait vers le répertoire racine, alors l'échappement du conteneur serait trivial. Comme prévu, les contrôles de sécurité du conteneur ne permettent pas aux processus isolés de créer un tel lien symbolique lors de l'exécution. Cela dit, il existe une fonction particulière dont on peut abuser pour créer le lien symbolique global. Les paramètres fonctionnels spécifiques doivent encore être divulgués, afin de rendre l'exploitation dans la nature un peu plus difficile.

La réinitialisation du mot de passe a mal tourné

L'histoire d'un audit de sécurité sur un site Web a attiré mon attention cette semaine, réalisée par (Maxwell «ꓘ» Dulin). Le formulaire de réinitialisation de mot de passe est au centre ici, et il présente quelques problèmes. Le premier est une faille courante: le formulaire de réinitialisation du mot de passe vérifie si une adresse e-mail donnée se trouve dans le système. Ce n’est pas le pire défaut, mais cela donne des informations à un attaquant – il peut deviner les adresses e-mail et obtient une confirmation quand il y a un compte avec cette adresse.

La faille suivante est subtile, le contenu de l'e-mail de réinitialisation du mot de passe est généré à l'aide de l'hôte envoyé dans la requête HTTP. Cela fonctionne normalement comme prévu: un utilisateur accède à ourwebsite.com/reset, saisit leur adresse e-mail et soumet le formulaire pour générer une demande de réinitialisation de mot de passe. Ils reçoivent un e-mail avec un lien vers ourwebsite.com qui permet la réinitialisation du mot de passe. Un attaquant, cependant, peut envoyer une requête HTTP malveillante au formulaire de réinitialisation de mot de passe, en utilisant l'adresse de quelqu'un d'autre, et manipuler la valeur Host. L'e-mail de réinitialisation pointe maintenant vers l'hôte injecté. Si l’utilisateur clique sur le lien dans l’e-mail, la valeur magique est envoyée à l’hôte spécifié par l’attaquant, qui peut alors réinitialiser le mot de passe de l’utilisateur.

Le dernier défaut (Maxwell) trouvé était le pire du groupe. Le jeton de réinitialisation est confirmé lorsque l'utilisateur clique pour la première fois sur le lien envoyé par e-mail, mais il n'est pas confirmé lorsque le mot de passe est effectivement mis à jour. Vous pouvez créer votre propre compte, suivre le processus de réinitialisation du mot de passe, puis modifier le formulaire de réinitialisation du mot de passe pour qu'il pointe vers le compte d'un autre utilisateur. Étant donné que le back-end vous considère comme déjà authentifié, il définit consciencieusement le nouveau mot de passe, même si le compte spécifié n'est pas le vôtre.

Aucun de nous n'utilisera probablement le petit site Web sur lequel cet audit a été effectué, mais les étapes décrites et les problèmes à rechercher sont un bon guide pour tous ceux qui ont besoin de faire de même.

Utilisation de la collecte des ordures après la gratuité

CVE-2019–1367 est un bogue plus ancien à ce stade, découvert en cours d'exploitation dans la nature en 2019, et ayant reçu une description complète de Confiant. C’est encore une autre vulnérabilité dans Internet Explorer jscript moteur. Pour une très brève revue, jscript.dll est l'implémentation IE obsolète de Javascript. Ce n’est plus l’implémentation par défaut, mais elle peut être demandée par une page Web à des fins de compatibilité. Il semble que jscript.dll n'est accessible que dans Internet Explorer, et aucune des deux itérations de Edge ne prend en charge l'implémentation héritée du tout.

Cette vuln était activement utilisée par les acteurs étatiques et était une attaque de style trou d'eau, où la simple visite du site malveillant suffisait à faire des compromis. La page suivante de la rédaction va dans les détails techniques. Il s’agit d’une classe de vulnérabilité que nous n’avons pas couverte auparavant. Il s'agit d'une utilisation après utilisation gratuite dans une langue de récupération de place.

Le nettoyage de la mémoire est l'alternative à la libération manuelle de la mémoire lorsque vous en avez terminé. L’un des avantages est qu’elle est censée faire en sorte que les bogues non utilisés soient révolus, alors que se passe-t-il ici? Le code de garbage collection dans jscript.dll ne suit pas correctement le nombre de références dans certaines situations. Ce bogue traite spécifiquement du Array.sort() fonction de rappel. Les arguments de cette fonction ne sont pas correctement suivis, de sorte que l’instance JS peut être manipulée de telle sorte qu’un balayage GC libère un objet qui sera accessible ultérieurement.

Pour l'exploit et une analyse plus approfondie de la façon dont cette faille a été utilisée dans la nature, consultez les parties 2 et 3 de la rédaction complète.

LAISSER UN COMMENTAIRE

Rédigez votre commentaire !
Entrez votre nom ici