Analyse de Vulnérabilités

Under Linux, setuid binaries is a well-known security topic since it allows users to run programs using the security context of their owner. Thus, if a program, whose owner is root, is executed by a non-privileged user, the binary will run under a privileged security context and will be able to perform actions that he normally wouldn’t be able to. Therefore, it is important to check that setuid binaries are well secured and that their behaviour can’t be altered.

Les trois chercheurs Bodo Möller, Thai Duong, and Krzysztof Kotowicz viennent le 14 octobre de remettre le monde dans la torpeur des vulnérabilités du protocole SSL. En effet POODLE (pour Padding Oracle On Downgraded Legacy Encryption) est une vulnérabilité touchant le protocole SSLv3 et le moins que l'on puisse dire c'est qu'elle semble avoir enterré cette version du protocole pour de bon. Pourquoi pour de bon ? Eh bien parce que malgré l'effet de surprise généré par l’annonce, il faut rappeler que le protocole TLS qui a fait suite au SSLv3 est disponible depuis 1999 (RFC 2246). Et depuis, plusieurs dates ont marqué l'histoire du SSL. POODLE est donc une vulnérabilité, de plus, dans le protocole et non une erreur d'implémentation comme l'a été HEARTBLEED très récemment. Cette vulnérabilité a été rendu possible par deux choses :
  • Le fait de pouvoir réduire la sécurité d'un échange SSL entre un client et un serveur pour des besoins d’interopérabilité.
  • Une faiblesse cryptographique présente dans SSLv3.

Une nouvelle vulnérabilité critique CVE-2014-6271 a été publiée le 24/09 par Stéphane Chazelas dans le célèbre shell linux Bash. Cette dernière a été surnommée Shellshock et permet d'injecter des commandes systèmes à distance. Cet Interprète de commande est présent sur la grande majorité des distributions Linux et est le composant sous-jacent d'une large majorité de programme, notamment des programmes CGI beaucoup utilisés par les applications WEB. C'est pourquoi, bien souvent, il est possible d'éxécuter des commandes a distance ce qui est sûrement pour beaucoup responsable du score maximum dans la notation de l'impact et exploitabilité de la vulnérabilité.

Identification d'appareils mobiles

En téléphonie mobile, à l'échelle mondiale, plusieurs normes de communication coexistent. La principale différence entre ces dernières réside dans la norme sous-jacente de codage du signal:
  • Les réseaux d'Amérique du Nord et de certaines parties d'Asie sont essentiellement basés sur CDMA.
  • Le reste du monde utilise W-CDMA.
A ma connaissance, il n'existe pas de puce unique, capable de gérer l'ensemble des différentes techniques sur l'ensemble des bandes de fréquence en exploitation dans le monde. C'est la raison pour laquelle aucun constructeur ne se targue d'avoir conçu un téléphone "Worldwide". Avec l'émergeance de la 4G/LTE, les deux principales techniques de codage basculent progressivement vers l'OFDMA. Dans le futur, on espère donc voir apparaître des téléphones "world-compatible" en espérant qu'un compromis pourra être trouvé pour que les bandes de fréquences soient les mêmes... Du point de vue de l'identification, les appareils mobiles WCDMA utilisent l'IMEI, tandis que ceux des zones CDMA utilisent le MEID (remplaçant de l'ESN).

Présentation

Les BOOTLOADER des téléphones estampillés Android est le premier programme à être éxécuté au démarrage. Ce dernier va permettre d'initialiser les différents composants du téléphone puis de démarrer en mode:

  • BOOTLOADER-MODE: écran de sélection ci-dessous, permettant de choisir le mode à démarrer.
  • SYSTEM-MODE: mode normal.
  • RECOVERY-MODE: mode de maintenance/restauration.
  • DOWNLOAD-MODE: flash externe via PC, généralement avec un outil propriétaire spécifique au constructeur: ODIN pour Samsung, LGNPST pour les LG. (A noter que ce mode n'est pas accessible depuis l'écran ci-dessous mais nécessite de démarrer le téléphone connecté au PC en appuyant sur une ou plusieurs touches VOL_UP, VOL_DOWN et POWER. Pour LG: c'est VOL_UP)
  • FASTBOOT-MODE: en parallèle,  le protocole FASTBOOT d'Android, permettant notamment de flasher le téléphone via l'outil du même nom disponible dans le SDK (/sdk/platform-tools), est utilisable seulement à l'écran de sélection ci-dessous. Une fois que le Primary BootLoader(PBL) aura rendu la main au Secondary BootLoader(SBL) aussi appelé Operating System BootLoader(OSBL).
[caption id="attachment_1480" align="aligncenter" width="284"]start Ecran de sélection du BOOTLOADER primaire[/caption]

Attardons nous quelques instants sur la vulnérabilité majeure découverte dans OpenSSL et qui occupe massivement le devant de la scène de la sécurité informatique depuis le début de la semaine. OpenSSL est une bibliothèque logicielle sur laquelle sont basés nombre de composants serveurs utilisant des communications sécurisées, c'est pourquoi toute faiblesse ou vulnérabilité trouvée sur celle-ci est lourd de conséquences... Découverte par Neel Mehta de Google Security et datée du 07 Apr 2014, cette vulnérabilité est estampillée CVE-2014-0160 et porte le nom de Heartbleed bug vulnerability.

heartbleed

Voilà pas mal de temps déjà (2008-2009) que l'on est au courant du faible niveau de sécurité de la téléphonie DECT, principale norme utilisée dans la téléphonie fixe. Où en est la sécurité 5 ans après ...? Pour rappel, DECT (Digital Enhanced Cordless Telephone: Téléphone sans-fil numérique amélioré) est une norme de téléphonie sans-fil numérique destinée aux particuliers comme aux entreprises. Opérant sur la gamme de fréquence 1 880 à 1 900 MHz (micro-ondes) sp_dect

(english version available OSPF_disguised_lsa )

Aujourd’hui nous allons nous intéresser à la sécurité des réseaux et notamment aux protocoles de routage dont OSPF.

Récemment une attaque a été publiée à la conf BlackHat par Alex Kirshon, Dima Gonikman et Gabi Nakibly, nous allons la décortiquer, l'automatiser, mais également ajouter la couche d'authentification OSPF par message digest au célèbre outil Scapy.

Tout d’abord l’intérêt de cette vulnérabilité réside dans le fait de pouvoir contrôler la table de routage de routeurs voisins (Il est à noter que l'adjacence entre les routeurs doit déjà être effectuée.)

On imagine dès lors le potentiel à notre portée :

  • DoS
  • Interception de trafic
  • Détournement
  • Etc, etc…

De plus l’attaque s’effectuant  au niveau du protocole de routage (OSPFv2 - RFC 2328), elle est normalement multiplateforme. (CISCO, JUNIPER …)

Le but de cet article est d’apporter un complément de compréhension à cette attaque (en expliquant les différentes étapes), ainsi que d’enrichir celle-ci en l’automatisant.

Contenu :

 
  • Explication détaillé de l’attaque
  • Script d’automatisation
 

En bonus :

 
  • Prise en charge de l’authentification OSPF par message digest au sein du module Scapy associé. (modification du module OSPF.py)
 

Le shellcoding est un domaine déjà largement débattu depuis de nombreuses années (depuis le début des buffer overflows en fait), nous n’allons donc pas reprendre des choses dites et redites mais plutôt présenter un type de shellcode assez méconnu. Nous parlerons ici des shellcodes kernel sous Windows. Nous reprendrons dans un premier temps (très brièvement) les élévations classiques de droits sur cet OS, puis nous ferons une exploitation un peu plus sexy qui pourra être utilisée dans des cas plus complexes.