Reverse Engineering

Les attaques par phishing ont connu une croissance considérable ces dernières années, et l’actualité récente ne fait que le confirmer. Souvenez-vous en novembre 2014, plus de 235 Go de données ont été dérobées à Sony Entertainment : parmi elles, des plans stratégiques de l’entreprise ainsi que...

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]

Les travaux présentés ici décrivent l'analyse d'une application .NET éditeur rencontrée dans le cadre de nos tests d'intrusion. Toutes les informations permettant d'identifier ce dernier ont été supprimées.

Sommaire

  1. Analyse en boîte noire
  2. Rappel sur l'environnement d'exécution .NET
  3. Analyse en boîte blanche
  4. Extraction des clés
  5. Conclusion

Bonjour à tous,

Cela fait pas mal de temps que nous n'avons pas mis à jour notre blog sécurité R&D par manque de temps et sur le fait que de nombreux travaux réalisés ne peuvent être publiés .....

Nous revenons aujourd'hui sur un sujet assez spécifique concernant le reverse et la création d'un module John The Ripper sur un algorithme de hashage assez peu connu utilisé sur des bases de données SYBASE. Nous savons qu'à partir de la version 15.0.1 les hash sont générés via SHA-256 mais pour les versions antérieures (<= 12.5), encore très utilisées en entreprise, l'algo utilisé n'a jamais été reversé jusqu'au bout (FEAL-8).

C'est donc le sujet de ce papier qui va permettre via un cas client de développer un module John The Ripper pour les hash de type SYB-PROP

Après une longue période de vacances, voici un nouvel article sur notre blog.

Cela fait un moment que l’on n’a pas parlé de Reverse Engineering sur le blog, il est temps d’y remédier.

Aujourd’hui nous allons nous intéresser aux applications Windev que nous avons découvertes lors d’un audit. WinDev est un langage de développement développé par PcSoft, société Française.

L'objet de cet article concerne plus précisément l’outil WDModfic.exe qui a pour objectif de modifier les fichiers d'analyse d'une application WinDev et qui est embarqué avec toute application WinDev.

Il est important de savoir que WinDev utilise 2 grands types de fichiers :

  • Un fichier d'analyse permettant de décrire la structure des fichiers de données
  • Les fichiers de données eux-mêmes

Le but de ce Reverse est d’arriver à prendre la main sur les fichiers de données de l'application protégés par une couche de chiffrement supplémentaire basée sur un mot de passe paramétré directement dans WinDev. Ce mot de passe est souvent identique à celui configuré sur le fichier d'analyse de l'application WinDev (en tout cas dans les applications WinDev que l'on a audité)

Le processus d'attaque est le suivant :

  1. Téléchargement de l'outil wdmodfic.exe
  2. Reverse Engineering de ce dernier
  3. Découverte de la vulnérabilité
  4. Extraction du mot de passe embarqué dans l'outil wdmodfic.exe
  5. Récupération des données contenues dans les fichiers de données dans le cas ou le mot de passe du fichier d'analyse est le même que celui du fichier de données

Ceci permet donc via un utilitaire WinDev disponible librement de prendre le contrôle de n'importe quelle application développée sous WinDev.

Attention ceci n'est valable que pour la version 16 de WinDev (qui est plutôt récente et datant de Juin 2011). Nous n'avons pas réalisé le test sur WinDev 17

On change un peu, just for fun !

Cela fait plusieurs articles que nous jouons avec le noyau Windows, c’est sympa mais parfois il faut savoir changer, sans quoi la routine s’installe. Donc cette fois on va faire une petite introduction au reversing sur ARM au lieu d’Intel. Et pour se faire quoi de mieux que de reverser un malware ou tout du moins ses protections d’anti-reversing ? C’est donc ce que l’on va faire, just for fun ;-)

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.