Une backdoor chinoise en.net. Nicolas RUFF nicolas.ruff(à)eads.net



Documents pareils
SSTIC Désobfuscation automatique de binaires. Alexandre Gazet. Yoann Guillot. Et autres idyles bucoliques...

FORMATION Offre de Formation - Packaging. Les bonnes pratiques du packaging avec Installshield et AdminStudio. Contact et inscriptions

Module.NET 3 Les Assemblys.NET

Authentifications à W4 Engine en.net (SSO)

McAfee Data Loss Prevention Endpoint 9.4.0

EA D S INNOVA TION W ORKS. Pass The Hash. Nicolas RUFF EADS-IW SE/CS nicolas.ruff (à) eads.net

Déploiement et monitoring

Pré-requis installation

GESTION DE L'ORDINATEUR

2 disques en Raid 0,5 ou 10 SAS

Installation de Premium-RH

Procédure d'installation de SQL Server Express 2008

Stellar Phoenix Outlook PST Repair - Technical 5.0 Guide d'installation

GenDbg : un débogueur générique. Didier Eymery Jean-Marie Borello Jean-Marie Fraygefond Odile Eymery Philippe Bion

Evaluation et mise en place d un serveur de messages pour Chamilo 2.0

Fiche Technique Windows Azure

Windows Azure Platform Développez, déployez et administrez pour le Cloud Microsoft

NatStar V8.00. Ce document présente la liste des nouvelles fonctionnalités de la 8.00, disponible à partir de septembre 2013.

Guide d'installation et. de configuration. BlackBerry Enterprise Server pour IBM Lotus Domino. Version: 5.0 Service Pack: 4

OSSIR Groupe SécuritS. curité Windows. Réunion du du février 2006 EADS. Réunion OSSIR du 13/02/2006. page 1

Utiliser Glary Utilities

DA MOTA Anthony - Comparaison de technologies : PhoneGap VS Cordova

ERESI : une plate-forme d'analyse binaire au niveau noyau. The ERESI team

Guide de démarrage rapide Centre de copies et d'impression Bureau en Gros en ligne

Tune Sweeper Manuel de l'utilisateur

Environnements de développement (intégrés)

TD Objets distribués n 3 : Windows XP et Visual Studio.NET. Introduction à.net Remoting

Pré-requis installation

DEVELOPPEMENT MOBILE - ETAT DE L ART DES SOLUTIONS

Point sur les solutions de développement d apps pour les périphériques mobiles

Plan de cette matinée

Alexandre Buge Epitech 5 Promo Soutenance de stage du 01/03/2004 au 31/08/2004

MySQL. (Administrateur) (Dernière édition) Programme de formation. France, Belgique, Suisse, Roumanie - Canada

Guide de mise à. niveau. BlackBerry Enterprise Server pour IBM Lotus Domino. Version: 5.0 Service Pack: 4

Introduction aux outils BI de SQL Server Tutoriel sur SQL Server Integration Services (SSIS)

INF2015 Développement de logiciels dans un environnement Agile. Examen intra 20 février :30 à 20:30

Can we trust smartphones?

Procédure d Installation et de Migration. Version du document V1.00

Guide de l Utilisateur

PPE BTS SIO Jourson - Attard Ascenzi Mancini GEP Marseille - 06/11/2014

INTRODUCTION AUX TESTS DE PERFORMANCE ET DE CHARGE

WebParts. Version 1.0

Blueprint OneWorld v8.2a Configuration Recommandée

Mysql. Les requêtes préparées Prepared statements

Stellar Phoenix Outlook PST Repair - Technical 5.0 Guide de l'utilisateur

Comment générer un fichier PDF de qualité et certifié imprimable?

Acrobat XI pour PC/Mac (version Pro) Pour qui, pourquoi et comment fabriquer un PDF?

SRS Day. Vue d ensemble. Avérous Julien-Pierre

Siemens Grâce aux documents intelligents, un leader mondial de la haute technologie augmente l efficacité et la précision de ses employés.

Tous les autres noms de produits ou appellations sont des marques déposées ou des noms commerciaux appartenant à leurs propriétaires respectifs.

Automatiser la création de comptes utilisateurs Active Directory

Armand PY-PATINEC 2010

Nmap (Network Mapper) Outil d exploration réseau et scanneur de ports/sécurité

LA SAUVEGARDE DES DONNEES SUR LES ORDINATEURS PERSONNELS

SRAL Saint Raphaël. Maison des associations 213, rue de la Soleillette Saint Raphaël. : : dromain.jean-pierre@neuf.

Java et les bases de données: JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java. Michel Bonjour

SQL Server Installation Center et SQL Server Management Studio

Procédure d'installation de SQL Server Express 2005

Faille dans Internet Explorer 7

Le stockage local de données en HTML5

Ce document décrit une solution de single sign-on (SSO) sécurisée permettant d accéder à Microsoft Exchange avec des tablettes ou smartphones.

NETTOYER ET SECURISER SON PC

avast! EP: Installer avast! Small Office Administration

Le langage C++ est un langage de programmation puissant, polyvalent, on serait presque tenté de dire universel, massivement utilisé dans l'industrie

Logiciel Enterprise Guide Version 1.3 Windows

Manuel d'utilisation Logiciel (Network TWAIN Driver)

SYNC FRAMEWORK AVEC SQLITE POUR APPLICATIONS WINDOWS STORE (WINRT) ET WINDOWS PHONE 8

Manuel du logiciel PrestaTest.

OSSIR Groupe SécuritS. curité Windows. Réunion du du 9 octobre 2006 EADS. Réunion OSSIR du 09/10/2006. page 1

Mise en route et support Envision 10 SQL server (Avril 2015) A l'intention de l'administrateur SQL Server et de l administrateur Envision

Conception d'une plate-forme collaborative Microsoft SharePoint 2003

SQL Data Export for PS/PSS

1. Étape: Activer le contrôle du compte utilisateur

CAHIER DES CHARGES D IMPLANTATION

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme

Créer votre propre modèle

Guide d'installation et. de configuration. BlackBerry Enterprise Server pour Novell GroupWise. Version: 5.0 Service Pack: 4

Le partenaire tic de référence. Gestion des ressources humaines INOVA RH

Acquisition des données

Services Windows et Domaines d application

Rôles serveur Notion de Groupe de Travail Active Directory Utilisation des outils d administration Microsoft Windows Server 2008

OWASP Open Web Application Security Project. Jean-Marc Robert Génie logiciel et des TI

Organiser vos documents Windows XP

Développement d'applications Web HTML5 L'art et la manière avec Visual Studio 2015 et TFS

Table des matières. 1 À propos de ce manuel Icônes utilisées dans ce manuel Public visé Commentaires...

1. Introduction Création d'une macro autonome Exécuter la macro pas à pas Modifier une macro... 5

Projet de développement

1. Installation standard sur un serveur dédié

.NET remoting. Plan. Principes de.net Remoting

Introduction aux antivirus et présentation de ClamAV

PROGRAMMATION EVENEMENTIELLE sur EXCEL

Microsoft Application Center Test

EXTENSION de Microsoft Dynamics CRM Réf FR 80452

Qlik Sense Desktop. Qlik Sense Copyright QlikTech International AB. Tous droits réservés.

Code Produit Nom Produit Dernière mise à jour. AM003 Alias Mobile On Demand Licence 1 mois 27/04/2015

Transcription:

Une backdoor chinoise en.net Nicolas RUFF nicolas.ruff(à)eads.net

Historique??? Attaques ciblées dans la nature 6 décembre 2011 Publication de l'avis de sécurité APSA11-04 http://www.adobe.com/support/security/advisories/apsa11-04.html 16 décembre 2011 Publication du correctif Adobe Reader 9.4.7 10 janvier 2012 Publication du correctif Adobe Reader 10.1.2

Historique

Principe général de l'attaque 2 Le shellcode extrait un fichier exécutable embarqué (en général chiffré par un XOR) 1 Un PDF malveillant est transmis par email 4 Le shellcode "nettoie" le PDF et l'ouvre à nouveau 3 Le fichier exécutable s'installe en tant que résident (backdoor)

Backdoor(s) Poison Ivy: la plus courante http://www.poisonivy-rat.com/ Mais chaque "équipe" a ses techniques/outils C:\> file scvhost.exe scvhost.exe: PE32 executable (GUI) Intel 80386 Mono/.Net assembly, for MS Windows

Backdoor(s) Ca s'annonce long et pénible

Format.NET Format PE + métadonnées.net Logées dans l'ancienne "COM Directory" Très peu documentées pendant fort longtemps http://www.ntcore.com/files/dotnetformat.htm Encore très peu d'outils capables de les manipuler pefile, metasm, miasm CFF Explorer, Phoenix Framework?,

Format.NET

Format.NET

Format.NET

Format.NET

Protections en.net Techniques anti-analyse "statique" Renommage des méthodes / classes / variables de classe / Obfscuation des constantes / chaines de caractères / Obfuscation du flot de contrôle Code / objets sérialisés Techniques anti-analyse "dynamique" Vérification du contexte d'exécution Vérification de type Réflexion Signature

Protections en.net Techniques plus avancées Code natif Cryptographie Activation en ligne Cf. protecteurs commerciaux Xenocode, 9Rays, Un binaire.net reste plus difficile à protéger qu'un binaire natif Note: la compilation native est possible avec NGEN.EXE

Protection statique en.net Renommage Une table contient tous les noms en instance unique Cf. format DEX utilisé par Android Il serait possible de renommer "à la main" mais il est ardu de renommer si la taille des chaines change Rebel.NET est un "PoC" Il faut créer un ".H" qui contient tous les renommages http://www.ntcore.com/rebelnet.php Note: une fois le code importé dans Visual Studio, il est très simple de le "refactoriser" même s'il ne compile pas

Protection statique en.net Manipulation d'une assembly "System.Reflection" ne semble pas fait pour ça Difficulté à modifier du code existant Difficulté à sauvegarder le code modifié "Mono.Cecil" est beaucoup plus puissant pour cette tâche http://www.mono-project.com/cecil surtout lorsqu'il est combiné avec Reflexil http://reflexil.net/

Protection statique en.net Cheat sheet pour Mono.Cecil + Reflexil ad = Mono.Cecil.AssemblyDefinition.ReadAssembly(...) md = Mono.Cecil.ModuleDefinition.ReadModule(...) foreach td in md.types foreach fd in td.fields foreach md in td.methods foreach pd in md.parameters mb = md.body foreach vd in mb.variables Note: Mono.Cecil n'a aucune documentation officielle Fonctionne bien avec: Classe, méthodes, variables de classe Mais beaucoup plus de plomberie pour: Manipuler les variables locales

Protection statique en.net La preuve qu'on peut faire partie du problème et de la solution

Protection statique en.net Obfuscation des constantes

Protection statique en.net Code masqué Se trouve dans une ressource "chiffrée" La clé est fournie par un "générateur de constantes" fortement obfusqué Dans ce cas, l'analyse dynamique est plus simple Stream manifestresourcestream = executingassembly.getmanifestresourcestream("resources.binary.resources");

Protection dynamique en.net Vérification de type dynamique if (Assembly.GetCallingAssembly() == typeof(protectedclass.c000016).assembly))...

Protection dynamique en.net Vérification que l'assembly n'est pas utilisée comme référence depuis un projet tiers Assembly executingassembly = Assembly.GetExecutingAssembly(); Assembly callingassembly = Assembly.GetCallingAssembly();...

Protection dynamique en.net Vérification de la hauteur de pile d'appel StackTrace trace = new StackTrace(skipFrames, false);... StackFrame frame = trace.getframe(skipframes); MethodBase base2 = (frame == null)? null : frame.getmethod(); Type type = (base2 == null)? null : base2.declaringtype;...

Protection dynamique en.net Utilisation de la clé de signature publickeytoken = assemblyname.getpublickeytoken();...

Protection dynamique en.net Aucun test booléen Trop facile à "patcher" Au contraire, les résultats sont intégrés dans le calcul d'une constante "magique"

Revue des outils Il existe 3 possibilités: System.Reflection Mono.Cecil Capable d'ouvrir une assembly sans l'exécuter http://www.monoproject.com/cecil#differences_with_other_alternatives Librairie "maison" En général non maintenu / non publique

Revue des outils Outil Analyse statique ILDASM / ILASM Spices.NET Reflector dotpeek JustDecompile ILSpy Avis Fourni avec Visual Studio - ultrabasique Commercial - peu adapté aux codes obfusqués Commercial - basé sur System.Reflection - peu adapté aux codes obfusqués Successeur de Reflector - à suivre Successeur de Reflector - à suivre Bien mais la 2.0 est encore mieux Phoenix Framework Statut du projet chez Microsoft? SAE de4dot Parfait pour les codes obfusqués Orienté "protections commerciales"

Revue des outils Analyse dynamique Outil mdbg Avis Basé sur ICorDbg* - PoC non maintenu Outils Foundstone & al. WinDbg + SOS.DLL ILSpy 2.0 Basé sur les API de performance - peut être intéressant dans certains cas - SAE offre globalement la même fonctionnalité Puissant mais inutilisable avec du code obfusqué Très prometteur PE Browse Dbg Logique de la GUI...? DILE.. Non maintenu

Conclusion Faire une backdoor en.net n'était pas une mauvaise idée Les compétences et les outils sont plus rares que dans le monde natif