Skip to content
Analyst Insight : Téléchargez votre exemplaire du rapport Gartner® Hype Cycle™ for Security Operations, 2024 dès aujourd'hui ! | Obtenir le rapport
Blogs

Guide du débutant pour la chasse aux annuaires ouverts malveillants

Introduction

Les analystes de menaces qui enquêtent sur des infrastructures malveillantes sont susceptibles de rencontrer des "répertoires ouverts" au cours de leurs investigations. Ces répertoires, communément appelés "opendirs", sont des serveurs ouvertement accessibles où les acteurs de la menace hébergent des fichiers malveillants liés à leurs opérations.

Un annuaire ouvert est un concept simple que beaucoup connaissent. Malgré cela, il existe peu de documentation publique sur leur découverte et sur la manière d'identifier et de suivre les nouvelles infrastructures d'annuaires ouverts.

Ce blog couvre les bases d'un répertoire ouvert, comment vous pouvez les découvrir pendant la recherche et comment poursuivre vos investigations dans l'infrastructure du répertoire ouvert.

Qu'est-ce qu'un annuaire ouvert ?

Un répertoire ouvert est simplement un serveur où un répertoire a été laissé "ouvert" et est accessible au public en naviguant vers l'IP ou le domaine du site.

Du point de vue des acteurs de la menace, ce répertoire permet aux fichiers malveillants d'être facilement accessibles et livrés au moment et à l'endroit où ils sont nécessaires. Il s'agit souvent de fichiers de seconde phase pour les logiciels malveillants, ou d'outils utilisés dans des opérations pratiques.

Il existe également des cas d'utilisation légitime, lorsqu'un service légitime doit rendre un fichier publiquement et facilement accessible, mais pour aujourd'hui, nous nous concentrerons sur les cas d'utilisation malveillante et sur la manière de les distinguer des exemples authentiques.

L'exemple ci-dessous (partagé par RussianPanda9XX sur X/Twitter) montre qu'un répertoire ouvert héberge des fichiers malveillants. Cet exemple montre un répertoire ouvert basé sur Apache lorsqu'il est affiché directement dans un navigateur.

Répertoire ouvert hébergeant des fichiers malveillants

Un autre exemple est un répertoire ouvert utilisé par ValleyRat et signalé par Zscaler.

Le répertoire ouvert utilise le logiciel HFS (HTTP File Server).

L'apparence diffère d'un logiciel à l'autre, mais la fonctionnalité reste la même. Voici un autre exemple de légères différences entre Apache et Python. Ces différences sont traitées plus en détail dans le rapport "Dorking The Internet" de Censys.

Des serveurs web différents produisent des résultats légèrement différents

Comment trouver un annuaire ouvert ?

Les répertoires ouverts peuvent être découverts dans l'édition communautaire de Censys en recherchant le label open-dir.

Censys analyse automatiquement l'internet à la recherche de répertoires ouverts et applique le label " open-dir ", quel que soit le logiciel utilisé. Cela signifie qu'Apache, Python, HFS et d'autres seront tous inclus et n'auront pas besoin d'être recherchés individuellement.

Ce label inclura tous les annuaires ouverts, y compris les résultats malveillants et légitimes. L'étiquette peut à elle seule renvoyer des centaines de milliers de résultats.

Nous le voyons ci-dessous avec une recherche simple pour labels:open-dir, qui renvoie 450 153 répertoires ouverts actuels.

étiquettes : open-dir

Comme indiqué, la recherche de labels:open-dir renverra tous les résultats, qu'ils soient malveillants ou légitimes.

Dans la suite de ce blog, nous verrons comment combiner cette requête avec des paramètres supplémentaires afin d'identifier uniquement les résultats malveillants.

Section 1 : Noms de fichiers statiques pour l'Open Directory Hunting

La méthode la plus simple pour identifier les répertoires malveillants consiste à exploiter les noms de fichiers des incidents précédents.

Considérons 81.71.147[.]158, qui a été partagé par @morimolymoly2 sur Twitter/X. Cette IP contient un répertoire ouvert avec un grand nombre de fichiers suspects.

Si nous recherchons l'IP sur Censys, nous arriverons à la page d'accueil où les informations suivantes sont disponibles sur le port 80.

Page d'accueil du port 80

Le répertoire ouvert sur 81.71.147[.]158 contient plusieurs fichiers qui sont suffisamment uniques pour être utilisés comme points pivots. Il s'agit de valeurs suffisamment uniques pour être utilisées dans une requête.

Deux schémas principaux se dégagent.

  • A.dll, a.exe, a.hta, a.jpg - Fichiers suspects dont les noms sont courts et ne comportent qu'un seul caractère.
  • Yaml-payload.jar - Fichier suspect contenant "payload" dans le nom du fichier. Probablement lié à un exploit de désérialisation Java.

Nous pouvons combiner ces noms de fichiers avec la requête labels:open-dir pour identifier les infrastructures de répertoires ouverts hébergeant des fichiers portant les mêmes noms.

Pivoter sur les noms de fichiers statiques

Les noms de fichiers tels que a.exe peuvent être combinés avec le paramètre labels:open-dir pour identifier les répertoires ouverts hébergeant des fichiers portant le même nom (mais pas nécessairement le même contenu de fichier).

Censys stocke le contenu des répertoires ouverts dans le champ services.http.response.body, c'est donc là que nous pouvons placer un nom de fichier en combinaison avec labels:open-dir

Nous pouvons donc rechercher les répertoires ouverts contenant a.exe en recherchant labels:open-dir et services.http.response.body:a.exe. Cette recherche simple renvoie 9 serveurs similaires.

Ouvrir les répertoires contenant a.exe

Comme indiqué ci-dessus, la recherche révèle 9 répertoires ouverts contenant a.exe.

Le premier résultat de la recherche est 159.223.130[.]216. La consultation de la page de l'hôte associé montre un répertoire ouvert hébergeant a.exe, ainsi que d'autres fichiers avec des schémas de dénomination similaires à un seul caractère. En plus de a.exe, nous avons maintenant b.exe, c.exe et curl.exe.

Curl est un outil "légitime" utilisé pour télécharger des fichiers. Il est donc peu probable que curl.exe soit un logiciel malveillant, mais plutôt un outil de soutien utilisé pour "installer" curl lors d'opérations où l'outil curl n'était pas présent.

curl.exe

Pour confirmer la nature de ces fichiers, nous pouvons les télécharger (à l'aide d'un bac à sable ou d'une machine d'analyse séparée) en naviguant directement sur le site, puis en effectuant une analyse manuelle ou en les soumettant à un bac à sable. Cette méthode n'est pas toujours recommandée pour des raisons d'opsec, mais il s'agit là d'un autre sujet de discussion.

In cases where the infrastructure is not sensitive, the files can be scanned by inputting the URL directly into VirusTotal. In this case, we can input <IP>/b.exe and see that it has 34 detections and contains a Sliver C2 Implant.

Notez que ce type d'analyse avertit souvent l'acteur que ses serveurs font l'objet d'une enquête. Vous devez en tenir compte lorsque vous enquêtez sur une infrastructure.

fichier b.exe

Le fichier b.exe a été détecté 34 fois, mais le répertoire ouvert qui l'héberge en a détecté 0.

Cela signifie que nous avons probablement trouvé une "nouvelle" infrastructure, en utilisant un simple nom de fichier pour notre analyse.

open directory hosting b.exe

Nous pouvons continuer à rechercher d'autres occurrences de a.exe dans les résultats de la recherche.

Un autre résultat de notre recherche préalable est 121.43.135[.]166, qui contient a.exe et de nombreux autres fichiers suspects.

a.exe et de nombreux fichiers suspects

Les mêmes schémas de dénomination des fichiers peuvent être observés sur d'autres serveurs renvoyés par la recherche, qui contiennent tous a.exe en combinaison avec d'autres fichiers suspects.

Pivoter sur le nom d'un fichier d'exploitation

L'adresse IP initiale contenait un autre fichier suspect nommé yaml-payload.jar. Une recherche sur Google suggère que ce fichier est lié à un exploit de désérialisation Yaml.

En répétant le processus précédent, nous pouvons identifier des serveurs similaires en recherchant labels:open-dir et services.http.response.body : "yaml-payload.jar"

labels:open-dir et services.http.response.body : "yaml-payload.jar"

La recherche simple renvoie 8 répertoires ouverts hébergeant des fichiers portant le même nom.

L'un des résultats contient yaml-payload.jar et une référence à artifact_x86.exe, qui est un nom de fichier courant pour Cobalt Strike.

Cela signifie que notre simple pivot sur yaml-payload.jar a probablement conduit au serveur d'un acteur utilisant Cobalt Strike.

artefact_x86.exe

Le nom artifact_x86.exe est suffisamment unique pour être utilisé comme un autre point pivot. Un analyste pourrait effectuer un pivot supplémentaire sur le nom de l'artefact_x86.ex e.

Il suffit de répéter les recherches précédentes en introduisant des noms de fichiers différents dans le champ services.http.response.body .

Résumé - Noms de fichiers statiques pour la chasse aux répertoires ouverts

Les noms de fichiers statiques constituent un moyen simple et très efficace de découvrir de nouveaux répertoires ouverts malveillants.

En utilisant les rapports publics (médias sociaux, Intel Repos, incidents internes), vous pouvez facilement identifier de simples noms de fichiers qui peuvent mener à une nouvelle infrastructure.

Pour ce faire, il suffit de rechercher labels:open-dir et d'ajouter le nom de votre fichier suspect dans le champ services.http.response.body.

Section 2 : Systèmes autonomes et fournisseurs d'hébergement

La recherche de répertoires ouverts peut être fortement facilitée en combinant les fournisseurs d'hébergement avec la requête labels:open-dir.

Cela peut être particulièrement efficace lorsqu'un acteur utilise un fournisseur d'hébergement unique ou peu commun.

Considérons l'IP 77.105.160.30 (initialement partagée par @karol_paciorek). Ce serveur a un répertoire ouvert et est hébergé sur EVILEMPIRE avec un numéro de système autonome de 216309.

Répertoire ouvert hébergé sur Evil Empire

Comme il s'agit d'un fournisseur peu courant, nous pouvons découvrir d'autres répertoires ouverts en combinant le numéro ASN associé avec labels:open-dir.

L'utilisation d'EVILEMPIRE est suffisamment unique pour qu'il n'y ait que 8 annuaires ouverts qui y soient hébergés.

Open directory Evil Empire L'un de ces résultats est 77.105.132[.]27qui correspond à nos critères de recherche et qui a déjà été marqué comme C2 connu.

Répertoire ouvert sur Evil Empire hosting C2En accédant à la page d'accueil et en examinant le contenu des répertoires, il apparaît qu'elle héberge les logiciels malveillants Vidar et Lumma.

Résumé - Systèmes autonomes et fournisseurs d'hébergement

Combiner des recherches dans des annuaires ouverts avec des fournisseurs d'hébergement inhabituels peut rapidement conduire à de nouveaux résultats.

Cette technique fonctionne mieux lorsque le fournisseur est peu courant ou bien connu pour héberger des acteurs malveillants. Soyez donc prudent lorsque vous appliquez cette technique à un grand fournisseur tel qu'Amazon ou CloudFlare. De tels fournisseurs peuvent être associés à des dizaines de milliers de résultats, ce qui peut être difficile à analyser et extrêmement propice aux faux positifs en l'absence de filtrage supplémentaire.

Considérez que CloudFlare était lié à 38 614 annuaires ouverts rien qu'en 2023. Amazon étant lié à un nombre considérable de 21 805. D'autres statistiques sont présentées en détail dans "Dorking The Internet".

Section 3 : Modèles de noms de fichiers et expressions régulières

Dans la première section, nous avons utilisé des noms de fichiers statiques pour pivoter vers des répertoires ouverts supplémentaires. Cependant, il existe une bien meilleure façon de procéder avec l'ajout d'expressions régulières.

Prenons l'exemple de la recherche de "fichiers nommés a.exe"par rapport à la recherche de "TOUT caractère unique .exe". La seconde option est plus générique (dans le bon sens du terme) et permet une recherche plus efficace.

Nous pouvons abstraire le nom de fichier a.exe à l'aide d'expressions régulières pour rechercher tout exécutable à un seul caractère. Pour une recherche plus efficace, nous pouvons même étendre cette recherche à tout nom de fichier d'un seul caractère portant les extensions exe, hta ou rtf.

Prenons les noms de fichiers suivants, issus de l'une de nos recherches précédentes.

Noms de fichiers d'un seul caractère avec les extensions exe, hta ou rtf

Le répertoire ouvert contient 9 fichiers dont l'extension est précédée d'un seul caractère(a.dll, 1.rtf, a.hta, etc.).

Plutôt que de rechercher ces noms individuellement, créons une expression régulière qui recherche les noms de fichiers d'un seul caractère portant l'une des extensions exe, rtf ou hta.

Nous pouvons créer un prototype simple à l'aide de CyberChef, puis l'ajouter au champ services.http.response.body.

Expression régulière dans CyberChef

Notez que nous devons maintenant utiliser le contenu HTML brut et non le rendu HTML des captures d'écran précédentes, nous ajouterons donc .*\" de part et d'autre de nos expressions régulières. Cela tient compte de la syntaxe HTML (illustrée ci-dessous) et spécifie que nous ne voulons que les fichiers nommés a.exe, et non ceux qui contiennent a.exe.

Ci-dessous, nous pouvons voir les guillemets " avant et après les noms de fichiers, dont nous devons tenir compte dans notre expression régulière.

Résultat de l'expression régulière

En prenant en compte le code HTML brut, nous pouvons rechercher des noms de fichiers à un seul caractère avec la requête suivante.

labels:open-dir et services.http.response.body:/.*\"\w\.(exe|hta|rtf)\".*/

Pour ceux qui ne sont pas familiers avec les expressions régulières, voici une visualisation réalisée avec l'aimable autorisation de regexper.com

Visualisation des expressions régulières L'exécution de cette nouvelle recherche renvoie 57 résultats pour les répertoires ouverts dont les noms de fichiers ne comportent qu'un seul caractère.

57 résultats pour les répertoires ouverts avec des noms de fichiers uniques L'un de ces résultats est 20.98.129[.]89qui contient un seul caractère e.hta (correspondant à notre expression régulière) ainsi qu'un fichier charge utile.exe.

Résultat d'une expression rationnelle avec une charge utile suspecte

Un autre résultat de recherche est 1.92.96[.]35, où notre expression régulière correspond à des noms de fichiers à un seul caractère comme f.exe, m.exe, m.hta, p.hta.

En plus des noms correspondants, nous avons maintenant un répertoire ouvert référençant cs4.9, qui est probablement une référence à Cobalt Strike Version 4.9. La chaîne cs4.9 pourrait être utilisée pour des pivots supplémentaires.

répertoire ouvert faisant référence à c.s49

Un autre résultat de recherche est 38.206.173[.]58, qui semble héberger un ransomware en raison de la présence de unlocker.exe et READ_TO_DECRYPT.html.

Il y a ici de nombreuses possibilités de dossiers qui pourraient être utilisés pour pivoter vers des serveurs supplémentaires.

Fichiers pouvant être utilisés pour pivoter vers des serveurs supplémentaires

Résumé - Modèles de noms de fichiers et expressions régulières

Les motifs de noms de fichiers sous forme d'expressions régulières peuvent être beaucoup plus efficaces que la recherche statique de noms. Si vous remarquez que plusieurs noms de fichiers ont des valeurs différentes mais "similaires", essayez d'utiliser une expression régulière pour les regrouper.

Les requêtes avancées utilisant des expressions régulières conduisent souvent à des serveurs malveillants supplémentaires.

Section 4 : Combinaison d'extensions de fichiers

Les extensions de fichiers constituent un autre moyen simple et efficace d'identifier les répertoires ouverts suspects.

Par exemple, la combinaison d'un fichier .exe et d'un fichier .hta dans le même répertoire ouvert est rare et peu susceptible de se produire dans un répertoire légitime. Nous pouvons donc utiliser cette idée pour identifier les serveurs malveillants. Le même concept peut être appliqué à un fichier .hta et .ps1 partageant le même répertoire.

Prenons l'un de nos résultats précédents, qui contient un mélange de fichiers .hta, .png, .exe, .msi et .txt. Nous pouvons utiliser cette combinaison (ou un sous-ensemble) pour identifier des infrastructures supplémentaires.

Combinaisons d'extensions de fichiers dans un répertoire ouvert

Nous pouvons élaborer une requête qui recherche tous les répertoires ouverts contenant à la fois une extension .hta et .exe.

labels:open-dir et same_service(services.http.response.body:*.hta* et services.http.response.body:*.exe*) et non services.http.response.body:*htaccess*

Quelques remarques rapides sur cette requête :

  • Same_service - Ce paramètre indique à la recherche de n'inclure que les résultats pour lesquels les fichiers ont été observés sur le même port. Nous ne voulons pas d'un serveur avec.hta sur le port 443 et .exe séparément sur le port 80.
  • Pas .htaccess - Il s'agit d'un fichier légitime qui correspond à notre recherche de caractères génériques pour .hta, nous voulons l'exclure de nos résultats sans avoir recours à des expressions régulières.

L'exécution de cette requête renvoie 9 résultats, dont l'un est un répertoire ouvert sur 20.163.176[.]155.

Ce répertoire correspond à notre recherche d'un fichier .hta et d'un fichier.exe sur le même service.

Correspondance des répertoires pour les fichiers .hta et .exe sur le même service

Ce répertoire ouvert sur 20.163.176[.]155 contient plusieurs fichiers "update" qui sont marqués comme téléchargeurs par VirusTotal. Nous avons donc rencontré un autre serveur contenant des fichiers malveillants.

Le répertoire ouvert contient également un nouveau modèle de fichiers ps1 et exe . Nous pouvons donc adapter notre requête pour rechercher ces fichiers et identifier d'autres résultats suspects.

Cette requête recherche les répertoires ouverts contenant à la fois un script powershell et un fichier exécutable.

labels:open-dir et same_service(services.http.response.body:*.ps1* et services.http.response.body:*.exe*)

Ouvrir les répertoires contenant le powershell et le fichier exécutable

La recherche renvoie 84 résultats pour des répertoires ouverts contenant des scripts et des exécutables powershell.

L'un de ces résultats est 96.255.173[.]42, qui contient à la fois .exe et ps1, ainsi qu'une collection d'autres fichiers suspects probablement liés à la boîte à outils PowerSploit.

Bonus Pivot sur les modèles de noms de fichiers

Le répertoire indiqué précédemment contient plusieurs fichiers dont le nom contient "power", suivi d'une extension ps1 ou py.

En utilisant des expressions régulières, nous pouvons transformer cela en une requête générique pour tout répertoire ouvert contenant.py ou ps1 et un nom de fichier commençant par power.

Nous pouvons d'abord prototyper une expression régulière à l'aide de CyberChef.

Prototype d'expression régulière à l'aide de Cyber Chef Grâce à l'expression régulière, nous pouvons rechercher .ps1 ou .py les fichiers dont le nom contient power.

Recherche de fichiers .ps1 ou .py dont le nom contient power

La recherche renvoie 7 résultats, dont l'un est 95.111.214[.]111.

Nous pouvons voir que ce répertoire contient encore plus de fichiers liés aux boîtes à outils Powershell offensives.

Répertoire contenant les fichiers Powershell offensifs

Un autre résultat est 116.114.20[.]180, qui contient powercat.ps1, parmi d'autres noms de fichiers suspects.

Le fichier Powercat est probablement une référence à l'implémentation Powershell de Netcat.

Implémentation Powershell de Netcat

Résumé : combinaison d'extensions de fichiers

Les extensions de fichiers peuvent être aussi utiles et simples que les noms de fichiers lors de la recherche de répertoires ouverts.

Si une enquête révèle un répertoire ouvert avec une combinaison inhabituelle de types de fichiers, essayez de l'utiliser dans votre requête. Vous seriez surpris de constater à quel point cette opération est simple, mais combien elle peut souvent conduire à de nouveaux résultats malveillants.

Conclusion

Nous avons maintenant montré 4 techniques utiles pour identifier et chasser les annuaires ouverts malveillants. Ces techniques sont extrêmement efficaces pour trouver et chasser les infrastructures d'annuaires ouverts utilisées par les acteurs de la menace.

Bien qu'il ne s'agisse pas d'une liste exhaustive, ces techniques, prises isolément ou combinées entre elles, constituent de formidables méthodes à intégrer dans votre boîte à outils d'investigation.

À l'exception des expressions régulières, toutes ces techniques peuvent être testées dans l'édition communautaire de Censys.

Et pour ceux qui aiment les statistiques et les études approfondies, consultez le rapport Dorking The Internet de Censys. Cet énorme rapport de 31 pages examine toutes les subtilités de l'exposition aux répertoires ouverts, y compris comment et où ils sont trouvés dans des scénarios à la fois malveillants et légitimes.

 

Graphique des annuaires ouverts à partir de Censys Dorking the Internet Report

Requêtes liées au bonus 

Pour les utilisateurs communautaires

ANY open directory(Lien)

labels:open-dir

Ouvrir les répertoires contenant des fichiers a.exe(Lien)

labels:open-dir et services.http.response.body:a.exe

Ouvrir les répertoires contenant "Payload.exe"

labels:open-dir et services.http.response.body:payload.exe

Annuaires ouverts référençant CS4.9(Lien)

labels:open-dir et services.http.response.body:cs4.9

Pour les utilisateurs ayant accès aux expressions régulières

Ouvrir les répertoires contenant des fichiers "Power" avec l'extension ps1 ou py

labels:open-dir et services.http.response.body:/.*power[a-z]+\.(ps1|py).*/

Ouvrir les répertoires contenant des fichiers "Power" avec l'extension ps1 ou py

Ouvrir des répertoires contenant des fichiers RTF, HTA ou PS1 à caractère unique

labels:open-dir et services.http.response.body:/.*\W\w\.(hta|rtf|ps1)\W.*/Ouvrir des répertoires contenant des fichiers RTF, HTA ou PS1 à caractère unique

Ouvrir les répertoires référençant n'importe quelle version de Cobalt Strike au format csX.X(Lien)

labels:open-dir et services.http.response.body:/.*\W(cs|cobalt)[34]\d(\.exe) ?.*/

Ouvrir les répertoires référençant n'importe quelle version de Cobalt Strike au format csX.X (Lien)

Ouvrir des répertoires avec des noms numériques courts pour les fichiers PNG

labels:open-dir and services.http.response.body:/.*\”[0-9]{1,5}\.png\W.*/

Ouvrir des répertoires avec des noms numériques courts pour les fichiers PNG

 

 

Visitez Embee Research

Aller sur Censys Recherche

A propos de l'auteur

Matthew Embee Recherche
Matthieu
Recherche Embee
Matthew (alias @embee_research) est un chercheur en sécurité basé à Melbourne, en Australie. Matthew est passionné par tout ce qui touche aux logiciels malveillants, aux burritos et à la création de contenu cybernétique éducatif.

Contenu similaire

Retour au centre de ressources
Solutions de gestion de la surface d'attaque
En savoir plus