Retour sur quelques conférences de la Hack.lu 2018

Retour sur quelques conférences de la Hack.lu 2018

XMCO a pu assister aux conférences de la HACK.LU 2018. En attendant l’Actu-Sécu numéro 51 qui présentera de manière plus complète les conférences de cette session 2018, nous vous proposons de revenir sur 4 conférences qui nous ont marquées.

Les organisateurs de HACK.LU ont mis à disposition sur YouTube les conférences filmées, accessibles à l’adresse suivante : https://www.youtube.com/channel/UCI6B0zYvK-7FdM0Vgh3v3Tg

Les supports de présentation sont consultables sur le site officiel de la conférence (http://archive.hack.lu/2018/). Pour l’instant peu de supports sont disponibles, mais cette liste devrait être complétée dans les prochains jours.

 


#1 The Snake keeps reinventing itself (Jean-Ian Boutin & Matthieu Faou)

Twitter : @jiboutin
Vidéo : https://www.youtube.com/watch?v=yIibzqEEHV8

Les deux analystes de malware de la société ESET sont revenus sur la compromission de documents du gouvernement allemand par l’APT Turla. L’APT, aussi connue sous le nom de Snake ou d’Uroburos, est l’une des campagnes d’espionnage informatique les plus sophistiquées qui sévit actuellement. L’APT cible essentiellement des organisations étatiques, militaires ou diplomatiques, et utilise une grande variété d’outils.

Snake utilise majoritairement deux vecteurs d’infection initiaux qui sont le phishing ciblé (spear phishing) et le wateringhole, technique consistant à infecter un site ou une application utilisée par les victimes afin de les compromettre à leur tour.

Dans le cas étudié, le vecteur d’infection initial est un faux fichier d’installation Flash, pourtant téléchargeable sur un vrai domaine d’Adobe (IP légitime). Après avoir analysé les possibilités de compromission (attaquant en position d’homme au milieu, compromission de passerelle réseau, compromission de fournisseur Internet, détournement BGP, ou compromission d’Adobe), il s’avère que le cas d’un homme au milieu sur le réseau du fournisseur Internet compromis est l’explication la plus cohérente. En effet, les victimes avérées de l’attaque souscrivent toutes au même ensemble de fournisseurs Internet, et se sont fait réinfecter à de multiples reprises.

En exécutant ce fichier d’installation, le chercheur Jean-Ian a été en mesure de dévoiler les outils inclus au sein du binaire malveillant pour effectuer un mouvement latéral sur le réseau. Après avoir enregistré le trafic sur des ports TCP classiques (FTP, SMTP, POP3, IMAP4, SSH, HTTP et LDAP) avec un exécutable personnalisé (dwiw.exe), un autre outil spécifique (cliproxy) est utilisé comme reverse Shell afin d’exécuter des commandes sur les machines infectées. Les attaquants ont utilisé des outils Open source couramment utilisés pour élever leurs privilèges : PwDump pour obtenir divers mots de passe de comptes locaux ou de comptes du domaine, mais aussi Mimikatz et LaZagne afin d’obtenir d’autres identifiants. Des outils de NirSoft (webBrowserPassView, mailPassView et messenPass) ont également été employés pour récupérer des mots de passe liés à des comptes de messagerie ou liés à des services Internet.

 

Des évidences de l’utilisation de la porte dérobée ComRAT ont été relevées au niveau suivant de l’attaque. Ce RAT (Remote Access Terminal) permet principalement d’exécuter des commandes Shell, mais également de changer de serveur maître. L’analyse des logs montre qu’au début de l’attaque, de nombreuses commandes Shell ont été exécutées (dont 70% des commandes du serveur de Command and Control (C&C)). Après quelques jours, la majorité des commandes exécutées sur les machines des victimes consistait à changer de serveur maître (90% des commandes).

De nouveaux malwares ont été déployés grâce au RAT et une phase de surveillance a démarré. Les attaquants ont attendu d’avoir récolté suffisamment d’informations pour mener la dernière phase de l’attaque : la récupération de documents confidentiels. Les chercheurs de l’ESET ont remarqué qu’une attention particulière avait été déployée afin d’effacer les traces des attaquants. Le logiciel Gazer a notamment été utilisé pour supprimer les fichiers importants, ainsi que des tâches dans la base de registre et l’ensemble des malwares utilisés.

 

Pour finir, la porte dérobée nommée Mosquito a été déployée. Celle-ci contient 2 modules permettant de récolter des mots de passe WiFi et de créer des utilisateurs à distance sur les postes infectés. De plus, elle met en place un mécanisme de Command and Control peu commun, car il utilise le mail comme vecteur de communication principal.

Matthieu Faou est revenu alors en détail sur ce mécanisme de C&C utilisé par Mosquito. La porte dérobée n’effectue aucune élévation de privilèges sur le système, mais remplace une DLL d’Outlook utilisée lors de l’envoi de mail. Elle utilise le mécanisme qualifié de « COM hijacking » afin de persister sur le système. L’avantage du mail est qu’il n’est généralement pas finement filtré et parvient toujours à son destinataire. Ainsi, la DLL malveillante est conçue de manière à intercepter tous les emails entrants et sortants en collectant l’ensemble des métadonnées liées à l’émetteur ou au destinataire du mail.

hacklu-2018-1

source: Chaîne Youtube HackLu 2018

La porte dérobée utilise la réception de PDF par mail pour embarquer des commandes à exécuter sur la machine de la cible. Lorsqu’elle détecte la réception d’un PDF contenant des commandes (selon un certain format), elle provoque l’exécution de celles-ci. Périodiquement, elle rassemble les logs des commandes exécutées et les envoie à l’attaquant sous forme d’un nouveau PDF, vers un domaine contrôlé par ce dernier, avant de supprimer le message de la boîte des messages envoyés depuis la machine de la victime.

Alors que le serveur lié à une porte dérobée classique pourrait être placé sur liste noire, stoppant la compromission, le mécanisme de l’APT Turla et expliqué par Matthieu Faou n’est pas sensible à ce type de blocage. Il suffit en effet à l’attaquant d’envoyer des emails depuis un autre domaine pour continuer l’exploitation de Mosquito.
 

#2 WHAT THE FAX?! (Eyal Itkin, Yaniv Balmas)

Twitter : @EyalItkin, @ynvb
Vidéo : https://www.youtube.com/watch?v=aahHbliwfm0

Cette présentation avait pour but de présenter des recherches effectuées sur la technologie du Fax. Les deux chercheurs Eyal Itkin et Yaniv Balmas se sont fixés l’objectif de compromettre un équipement Fax pour rebondir sur un réseau interne.

Les conférenciers ont tout d’abord rappelé que, même si le Fax est souvent considéré comme une technologie obsolète et n’est plus utilisé, il est encore massivement présent en entreprise. Google référence plusieurs centaines de millions de numéros de contacts par Fax. Cependant, les équipements derrière les numéros de Fax ont bien évolué de nos jours : ils permettent d’effectuer des tâches d’impression, disposent d’interfaces WiFi, Bluetooth, d’accès au réseau filaire et peuvent même être connectés à  Internet (“all-in-one printers”).

Un modèle d’équipement Fax/Imprimante HP Office Jet a été choisi pour l’étude.

La première étape de l’étude a consisté à récupérer le Firmware de l’équipement. Après avoir suivi différentes pistes physiques, dont la connexion aux ports de debug sans succès, les chercheurs ont finalement découvert que le firmware du modèle était directement accessible sur un serveur FTP mis à disposition par HP.

La seconde étape concernait l’analyse du firmware récupéré. Après un travail de compréhension sur les méthodes de compression maison utilisées, le système d’exploitation a été identifié (ThreadX) et une liste de bibliothèques intégrées à celui-ci a pu être référencée. La plus grosse difficulté pour les chercheurs a ensuite été de trouver une méthode pour débugger logiciellement l’imprimante, afin d’analyser dynamiquement le fonctionnement des tâches associées au Fax. En effet les chercheurs n’avaient initialement aucun contrôle sur le flux d’exécution du firmware.

hacklu-2018-2

source: Chaîne Youtube HackLu 2018

Après avoir tenté de suivre plusieurs fausses pistes, Eyan et Yaniv ont finalement exploité une vulnérabilité de dépassement de tampon au sein de la couche de traitement de fichiers JPEG. La présentation s’est terminée par la démonstration d’une compromission de l’équipement ciblé par l’envoi d’un Fax malveillant, suivi d’une compromission Windows par rebond de l’imprimante vers un poste disposé au sein du réseau interne.
 

#3 Only an Electron Away from Code Execution (Silvia Väli)

Twitter : @SilviaValiSV
Vidéo : https://www.youtube.com/watch?v=kvi6XX71VXM

Silvia Väli a exposé sa chasse aux prises de contrôles à distance (RCE) sur des applications utilisant le framework Electron. La chercheuse estonienne de chez Clarified security a expliqué d’abord pourquoi elle s’est attachée à l’analyse de ce framework. Elle est revenu notamment sur l’adoption à grande échelle de cet outil Open Source qui permet la réalisation d’environnements graphique de manière aisée grâce à des composants Web communs (JavaScript pour les interactions, HTML/CSS pour l’affichage).

Son idée est la suivante : puisque le framework Electron se compose essentiellement de 3 composants (Node.js, chromium (composant d’affichage), et le moteur JavaScript V8), pourquoi ne pas transformer des attaques Web classiques (XSS notamment) en vecteurs d’exécution de code sur le système notamment grâce à la présence de Node.js ?

Silvia Väli a ensuite présenté l’architecture traditionnelle d’une application Electron, et notamment les options passées lors de la création d’un nouveau processus de rendu (webPreference). Ces options constituent l’autorisation ou l’interdiction de fonctionnalités sur le processus de rendu. Parmi celles-ci, certaines sont activées par défaut (nodeIntegration ou JavaScript par exemple). Or, si les développeurs de l’application ne les ont pas spécifiquement autorisées ou interdites en connaissance de cause, cela constitue un risque de sécurité.

En effet, Silvia Väli a détaillé notamment l’option nodeIntegration, et a montré qu’il est possible, avec un simple script, d’exécuter du code arbitraire sur la machine après avoir importé le module node « os ». Par exemple, une simple commande « os.homedir() » retourne un chemin local de l’hôte. Cela montre que l’exploitation de vulnérabilités de type XSS sur des applications de bureau portées par Electron est susceptible de conduire à des vulnérabilités de type RCE.

hacklu-2018-3

source: Chaîne Youtube HackLu 2018

Parfois, l’intégration de Node.js dans l’application est nécessaire pour offrir certaines fonctionnalités aux utilisateurs de l’application. Dans ces cas, la chercheuse recommande de s’assurer qu’aucune XSS ne doit être présente sur l’application, car cela mène le cas échéant à une exécution de code arbitraire. Que l’option soit activée par défaut ou volontairement, Silvia est donc partie à la chasse aux options « nodeIntegration » activées parmi un ensemble de projets Github.

Parmi 30 applications analysées, 52 créations de processus de rendu sont réalisées, avec des options webPreferences diverses :

  • dans 41 cas, l’option d’intégration Node.js n’était pas renseignée, mettant l’application à risque
  • dans 5 cas, l’option était explicitement activée
  • dans 6 cas, l’option était explicitement désactivée

Le résultat est remarquable : 10 des 30 applications sont vulnérables à des XSS et parmi elles 9 ont l’option nodeIntegration activée,et sont donc vulnérables à de l’exécution de code. Les vulnérabilités ont été reportées et corrigées sur certains projets (Leanote, Shiba, Moeeditor, Hexoeditor, Joplin et Medis). Plusieurs CVE en résultent : CVE-2017-1000492 (Leanote) et CVE-2017-1000491 (Shiba).

Silvia a conclu la présentation en notant que la version 2.0.0 d’Electron corrige les comportements dangereux par défaut, et notamment désactive l’intégration de Node.js par défaut.
 

#4  Breaking Parser Logic: Take Your Path Normalization off and Pop 0days Out! , Orange Tsai

Twitter : @orange_8361
Vidéo : https://www.youtube.com/watch?v=R_4edL7YDcg

Le chercheur en sécurité de Devcore est revenu sur les méthodes de contournement de filtrage d’accès aux fichiers et autres ressources Web. Cette présentation est dans la continuité de celle qu’il avait proposée à la BlackHat 2018.

Orange Tsai est tout d’abord revenu sur la définition de la normalisation de chemins (Path Normalization), et les différents standards utilisés pour définir l’emplacement d’une ressource Web ou d’un fichier sur les systèmes d’exploitation.

Il a fait le constat qu’une grande majorité des applications Web manipulent des fichiers hébergés sur leurs hôtes, fichiers n’étant pas directement associés à l’applicatif. La méthode d’accès à ces fichiers n’est pas toujours auditée, et présente des défauts de sécurisation.

Orange Tsai a notamment évoqué plusieurs méthodes de contournement.

Il a par exemple évoqué la CVE-2018-1271 exploitable sur le produit Spring. Le contournement pouvait être effectué en ajoutant des caractères ‘/’ en tête de chemin (/foo////../../../ interprété au niveau du système comme /../../)

La CVE-2018-3760 sur le produit Rails a également été abordée. Le contournement consistait à exploiter le traitement des paramètres URL /file://foo par le framework. L’attaquant était en mesure de récupérer des fichiers locaux voire d’écrire sur ces derniers, et d’obtenir de l’exécution de code suivant les applications Web.

Enfin, la seconde partie de la conférence concernait les différences de traitement de chemins entre les reverse-proxy du marché, et le filtrage des chemins mis en oeuvre par les serveurs d’application.

hacklu-2018-4

source: Chaîne Youtube HackLu 2018

Suivant les produits de Reverse Proxy, le chemin /login;/..;/admin est interprété de différentes façons. Nginx l’interprète comme /login, mais le serveur Web Apache Tomcat comme /login/../admin.

hacklu-2018-5

source: Chaîne Youtube HackLu 2018

Par cette différence de traitement, le chercheur a été en mesure de contourner le contrôle d’accès appliqué par des Reverse Proxy, puis a pu obtenir de l’exécution de code à distance sur des produits Bynder et Amazon.

Cette conférence montre l’importance de cloisonner/séparer les ressources sensibles (comme les fonctionnalités d’administration) des ressources standard utilisateur. Idéalement, il convient de limiter drastiquement l’accès aux ressources d’administration depuis Internet.

 


Jean-Christophe Pellat

Cert-XMCO