Projet de déploiement d'un honey pot (2)

Table of Contents

Suite à mon précédent article, je partage ici une première partie des résultats de la collecte.

Je me penche sur les attaques subies par le serveur Web qui peut correspondre à un site vitrine, un portail de connexion de messagerie ou une interface d’administration qui serait rendue public par erreur …

 

Que s’est-il passé en un mois ?

 

En considérant que personne n’est sensé savoir que la porte est ouverte

 

Le bruit de fond est permanent … ici l’activité sur 24h

Mais en comparaison, sur un port d’administration console (ssh) c’est plutôt

L’origine géographique des requêtes

Rappelons que j’identifie ici le pays d’origine de la requête mais ce n’est pas nécessairement le même que l’attaquant qui le contrôle …

Qui ?

Un premier moyen grossier de caractériser notre attaquant est de consulter le champ “userAgent”, je dis grossier car il est facilement usurpé voir même est un support publicitaire :-)

Les moteurs de recherche

 

👉 La version américaine (Google et Microsoft)

188.x.x.23 [...] "GET / HTTP/1.1" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
13.x.x.8 [...] "GET /sitemap.txt HTTP/1.1" "Mozilla/5.0 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm)"  

 

👉 La version chinoise (Baidu)

23.x.x.245 [...] "GET / HTTP/1.1" "Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)"

 

Que retenir ?

alt text
rip

L’audit par les moteurs de recherche semble inoffensif néanmoins, j’insiste : cet “audit” à lieu sans que je me sois officiellement déclaré…

Une conséquence est le risque de voir des données personnelles indexées par le moteur de recherche comme par exemple sa base de films :-)

alt text
rip

       

Un autre type de moteur de recherche …

 

Nous pouvons constater le passage d’autres robots de moteur de recherche moins “amicaux” …

👉 Censys

167.x.x.38 [...] "GET / HTTP/1.1" "Mozilla/5.0 (compatible; CensysInspect/1.1; +https://about.censys.io/)"

👉 Et son cousin Shodan

185.x.x.34 [...] "GET /robots.txt HTTP/1.1" "-"
185.x.x.34 [...] "GET /sitemap.xml HTTP/1.1" "-"
185.x.x.34 [...] "GET /.well-known/security.txt HTTP/1.1" "-"

Ce dernier ne se dévoile pas dans son useragent mais il est identifiable grâce à son reverse dns.

Quels impacts ?

En seulement 48h mon serveur est présent dans les bases de Shodan et Censys avec les 3 ports du honeypot.

alt text
shodan

On notera que la version du serveur est également indexée.

Pratique pour lister des serveurs vulnérables à une CVE …

alt text
shodan

Shodan met à disposition gratuitement un service d’alerte en cas de découverte d’un nouveau service (une solution économique pour faire le suivi de sa surface exposée) et comme de toute façon Shodan finira par nous scanner.

       

Étude de quelques attaques

   

Penchons nous sur un échantillon de requêtes reçues.        

Attaques sur les développeurs “étourdis”

   

92.x.x.29 [...] "GET /.git/config"
92.x.x.29 [...] "GET /.env"
92.x.x.29 [...] "GET /sftp-config.json"
92.x.x.29 [...] "GET /.ftpconfig"
92.x.x.29 [...] "GET /.remote-sync.json"
92.x.x.29 [...] "GET /.vscode/ftp-sync.json"
92.x.x.29 [...] "GET /.vscode/sftp.json"
92.x.x.29 [...] "GET /deployment-config.json"
92.x.x.29 [...] "GET /ftpsync.settings"
82.x.x.32 [...] "GET /.env"

Que cherchent-ils ?

Des fichiers de configuration contenant des données sensibles avec le cas classique où l’arborescence complète de l’espace de développement est recopiée (ex: sftp-config.json, sftp.json, ftpconfig contenant des identifiants).

   

Passons maintenant aux tentatives d'exploitation de vulnérabilités ...

   

Attaque sur Exchange

 

Une série de vulnérabilités (CVE-2021-26855, CVE-2021-26857, CVE-2021-26858, CVE-2021-27065) a été publiée quelques semaines avant l’activation du pot de miel.

Ces vulnérabilités permettent d’exécuter du code à distance et sont activement utilisée, il est donc très probable que les requêtes ci-dessous correspondent à une phase de reconnaissance.

192.x.x.154 [...] "GET /owa/auth/logon.aspx?url=https%3a%2f%2f1%2fecp%2f"  "Mozilla/5.0 zgrab/0.x"
188.x.x.203 [...] "GET /owa/auth/getidtoken.htm" 
74.x.x.142 [...] "GET /owa/ HTTP/1.1" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML,like Gecko) Chrome/60.0.3112.113 Safari/537.36"
192.x.x.185 [...] "GET /owa/auth/logon.aspx?url=https%3a%2f%2f1%2fecp%2f"  "Mozilla/5.0 zgrab/0.x"
45.x.x.157 [...] "POST /Autodiscover/Autodiscover.xml" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML,like Gecko) Chrome/78.0.3904.108 Safari/537.36"
45.x.x.151 [...] "POST /Autodiscover/Autodiscover.xml" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML,like Gecko) Chrome/78.0.3904.108 Safari/537.36"

   

Attaque sur Laravel

 

Laravel est un framework de développement couramment utilisé pour les sites Web.

45.x.x.151 [...] "GET /_ignition/execute-solution" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36"

Cette requête correspond à l’exploitation de la vulnérabilité CVE-2021-3129

Pour lequel un code d’exploitation est disponible.

   

Attaque sur MobileIron

 

MobileIron est un outil d’administration de flotte mobile.

45.x.x.151 [...] "POST /mifs/.;/services/LogService"

Une vulnérabilité publiée en 2020 permet d’exécuter du code à distance sur la plateforme.

Au passage je constate que cet attaquant a également réalisé d’autres tentatives.

Maintenant travaux pratiques : identifier les vulnérabilités qui sont recherchées, hop hop hop au boulot :-)

45.x.x.151 [...] "GET /?XDEBUG_SESSION_START=phpstorm" 
45.x.x.151 [...] "GET /index.php?s=/Index/\x5Cthink\x5Capp/invokefunction&function=call_user_func_array&vars[0]=md5&vars[1][]=HelloThinkPHP21" 
45.x.x.151 [...] "GET /vendor/phpunit/phpunit/src/Util/PHP/eval-stdin.php"
45.x.x.151 [...] "POST /vendor/phpunit/phpunit/src/Util/PHP/eval-stdin.php" 
45.x.x.151 [...] "POST /api/jsonws/invoke" 

   

Attaque sur Fortinet

 

👉 Été 2019 publication de la vulnérabilité CVE-2018-13379 touchant des boitiers de sécurité.

185.x.x.13 [...] "GET /remote/fgt_lang?lang=/../../../..//////////dev/cmdb/sslvpn_websession HTTP/1.1"  "Python-urllib/3.6"

👉 Plus de 50 000 boitiers affectés

👉 Potentiel énorme puisqu’il est possible de lire des mots de passe de connexion VPN en clair !

Illustration d’exploitation classique de la vulnérabilité

source

   

Attaque sur Wordpress

 

Wordpress est la plateforme la plus utilisée pour construire des sites Web c’est donc une cible de choix !

Voici possiblement une phase de reconnaissance pour une future attaque par force brute.

185.x.x.107 [...] "GET /wp-login.php HTTP/1.1" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:62.0) Gecko/20100101 Firefox/62.0"

De très nombreux plugins sont développés pour Wordpress, dans l’exemple ci-dessous nous avons une tentative d’identification de la présence d’un plugin vulnérable à la CVE-2020-25213 via la version contenue dans le fichier texte readme.txt.

45.x.x.151 [...] "GET /wp-content/plugins/wp-file-manager/readme.txt" 

Le code d’exploitation de la vulnérabilité est disponible publiquement sur Github.
   

Attaque sur Zeroshell

ZeroShell est un logiciel pour les équipements réseau, la vulnérabilité ciblée est sans doute la CVE-2019-12725

24.x.x.164 [...] "GET /cgi-bin/kerbynet?Action=Render&Object=StartSession"  "curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 OpenSSL/1.0.2f zlib/1.2.3 libidn/1.18 libssh2/1.4.2"

On constate que l’useragent est “curl”, il s’agit probablement d’un simple script déposé sur un serveur compromis.

   

Attaque sur Citrix

Terminons par une attaque sur les passerelles Citrix et la vulnérabilité CVE-2019-19781 qui possède également score CVSS critique.

185.193.91.250 [...] "GET /vpn/../vpns/cfg/smb.conf" 

Un petit tour sur Github pour trouver comment exploiter

Conclusion

   

Que retenir ?

alt text
rip

👉 Tout élément connecté à Internet est activement “audité”

👉 Et ce même sans avoir fait la démarche auprès des moteurs de recherche, la sécurité par l’obscurité est une illusion, transposable à la démarche d’ utiliser des numéros de port non standard qui donne un faux sentiment de protection

👉 Ne pas laisser trainer des fichiers inutiles pour le service à rendre

👉 Généralisation: minimiser sa surface d’attaque - exposer le strictement nécessaire

👉 La totalité des attaquants étaient référencés dans les bases d’abus

👉 Le pot de miel est une formidable source d’informations en le couplant à un outil de gestion de la donnée (ex: Splunk, ELK)

Eric
Eric
🛡️ Cybersecurity enthusiast driven by curiosity and the desire to share.

Related