• STATISTIQUES
  • Il y a eu un total de 0 membres et 41822 visiteurs sur le site dans les dernières 24h pour un total de 41 822 personnes!
    Membres: 2 605
    Discussions: 3 579
    Messages: 32 816
    Tutoriels: 78
    Téléchargements: 38
    Sites dans l'annuaire: 58


  • ANNUAIRE
  • [FR] dcode
    dcode.fr est le site indispensable pour décoder des messages, tricher aux jeux de lettres, résoudre des énigmes...
    Outils / Add-on
    [FR] Infomirmo
    Challenge présenté sous la forme de 6 niveaux de difficultés diverses et variées avec chacun plusieurs chall...
    Challenges
    [FR] InfoMirmo
    Apprentissage de l'informatique par l'intermédiaire de challenges de sécurité. Venez app...
    Hacking
    [EN] hax.tor
    50 level de challenges mélangés
    Challenges
    [EN] This is legal
    Basic: 10, Realistic: 5, Programming: 1, Bonus: 11, SQL: 2, Encryption: 6, Application: 4, User Contributed: 3
    Challenges
    [EN] Exploit-db
    Une base de données d'exploits triés par genre (GHDB, Remote, Local, Web, DOS, ShellCode) à ...
    Vulnérabilités
    [EN] osix
    Site de challenge qui utilise un système de level on chaque épreuve doit être réussie avant d'accédÃ...
    Challenges

  • DONATION
  • Si vous avez trouvé ce site internet utile, nous vous invitons à nous faire un don du montant de votre choix via Paypal. Ce don servira à financer notre hébergement.

    MERCI!

    €



Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
Reverse Jar Malware
25-08-2014, 19h47 (Modification du message : 25-08-2014, 20h24 par supersnail.)
Message : #3
supersnail Hors ligne
Éleveur d'ornithorynques
*******



Messages : 1,609
Sujets : 71
Points: 465
Inscription : Jan 2012
RE: Reverse Jar Malware
Bon, je poste ici le début de l'analyse (j'updaterai le thread au fur et à mesure des mes découvertes)

On a affaire ici à un .jar (donc on peut suspecter une appli codée en java). Le premier réflexe ici est de sortir jd-gui qui... ne fonctionne pas (c'est ballot). On va donc extraire l'archive (étant donné qu'un .jar n'est en pratique qu'un vulgaire fichier zip), ce qui nous donne une arborescence ressemblant à ceci:

Code :
.
|- META-INF
|    |- MANIFEST.MF
|- plugins
|    |- Server.class
|- stub
|    |- EcryptedWrapper.class
|    |- EncryptedLoader.class  
|    |- EncryptedLoaderOld.class
|    |- stub.dll

On peut apercevoir un "stub.dll", qui ressemble à un module qui va être chargé, sauf que un "file" dessus montre qu'il est visiblement chiffré (aucun header exploitable dedans). On va donc devoir se farcir de l'IL java, et pour cela on va utiliser notre ami Radare2 (je vous sens enthousisastes d'un seul coup :þ).
Plûtot que de prendre un fichier au hasard, on va plûtot repérer la classe principale (il suffit pour cela de lire le MANIFEST.MF) et la désassembler avec radare2.

On se retrouve donc ce code qui ressemble à ceci:
Code :
/ (fcn) sym.stub_EcryptedWrapper.main 35
|          0x0000080e    b20004       getstatic java/lang/System/out Ljava/io/PrintStream;
|          0x00000811    1261         ldc "gekvxgigir|ekztvx~pywdjcmblu{97R\tzekn`gicmr|s}@NLku{djdjq\x7ffhywu{}sztgi`naovx:4Q_wyfhmcdj`nq\x7fp~CMeBv{djdjq\x7ffkzwv{}sytgi`mbou{94R\tyekmcgicnq\x7fp~CMfk_xdjdjq\x7ffkytux}szwgi`malvx94Q\wzfkm`djcnq\x7fp~CMfhvQgjdjq\x7ffhztv{~sztdi`nblux:7Q_tyehn`dj`mq\x7fp~CMfhuxNidjq\x7ffhytux}pywgjcmalv{:4R_wzekm`di`mr|p~CMfhu{g@gjq\x7ffhywu{}sztgi`naovx:4Q_wyfhmcdj`nq\x7fp~CMfhu{diNiq\x10$.,$6:):5:g+9n��#:9n{\x03\x16w\x16$.80'+4!#\x7f&kM]f\x0c\x10\x16\x0bjg@r\x7ffhywu{}sztgi`naovx:4Q_wyfhmcdj`nq\x7fp~CMfhu{dj
|          0x00000813    b80058       invokestatic stub/EncryptedLoader/ALLATORIxDEMOxasdqwbymmgfghfghgrertwer23rfe(Ljava/lang/String;)Ljava/lang/String;
|             0x00000000(0x0, 0x0)
|          0x00000816    b60005       invokevirtual java/io/PrintStream/println(Ljava/lang/String;)V
|             0x00000000()
|          0x00000819    bb0014       new stub/EcryptedWrapper
|          0x0000081c    59           dup
|          0x0000081d    b70015       invokespecial stub/EcryptedWrapper/<init>()V
|             0x00000000()
|          0x00000820    59           dup
|          0x00000821    4c           astore_1
|          0x00000822    b60016       invokevirtual stub/EcryptedWrapper/load()V
|             0x00000000(0x0)
|          0x00000825    bb0017       new java/lang/Thread
|          0x00000828    59           dup
|          0x00000829    2b           aload_1
|          0x0000082a    b70018       invokespecial java/lang/Thread/<init>(Ljava/lang/Runnable;)V
|             0x00000000(0x0)
|          0x0000082d    b60019       invokevirtual java/lang/Thread/start()V
|             0x00000000()
\          0x00000830    b1           return
On peut donc voir ici ce qui ressemble vraisemblablement au chargement de ce qui va être la clé pour déchiffrer le stub.dll, qui va être passé en argument à la fonction stub/EncryptedLoader/ALLATORIxDEMOxasdqwbymmgfghfghgrertwer23rfe(Ljava/lang/StringWinkLjava/lang/String (comprenez String stub.EncryptedLoader.ALLATORIxDEMOxasdqwbymmgfghfghgrertwer23rfe (String whatever)).
On va donc fermer notre classe actuelle pour aller inspecter cette mystérieuse méthode ALLATORIxDEMOxasdqwbymmgfghfghgrertwer23rfe.
On lance donc une analyse de notre classe via "af" puis on se positionne sur notre fonction avec "s sym.stub_EncryptedLoaderOld.ALLATORIxDEMOxasdqwbymmgfghfghgrertwer23rfe" puis on passe en "visual mode" avec "V" parce que ce sera beaucoup plus pratique pour nous pour debugguer (à noter que radare2 affiche des warnings, ce qui laisse supposer des tricks anti-désassembleurs qui font échouer jd-gui Wink).

Je reposterai donc quand j'aurai (ou si quelqu'un d'autre de plus familier avec l'"assembleur" Jasmin qui traduit le bytecode java) reversé la routine de déchiffrement du bouzin Wink

Edit: cette portion de code ne semble pas décoder la DLL, mais visiblement ça a l'air essentiel pour pouvoir drop la DLL
Mon blog

Code :
push esp ; dec eax ; inc ebp ; and [edi+0x41],al ; dec ebp ; inc ebp

"VIM est merveilleux" © supersnail
+1 (4) -1 (0) Répondre


Messages dans ce sujet
Reverse Jar Malware - par Yttrium - 25-08-2014, 18h27
RE: Reverse Jar Malware - par supersnail - 25-08-2014, 18h53
RE: Reverse Jar Malware - par supersnail - 25-08-2014, 19h47
RE: Reverse Jar Malware - par Yttrium - 25-08-2014, 20h20
RE: Reverse Jar Malware - par supersnail - 27-08-2014, 16h57
RE: Reverse Jar Malware - par supersnail - 07-09-2014, 17h07
RE: Reverse Jar Malware - par ZeR0-@bSoLu - 24-02-2016, 10h20

Sujets apparemment similaires…
Sujet Auteur Réponses Affichages Dernier message
  Infection, Fonctionnement, Contrôle et Détection de Malware InstinctHack 13 805 08-05-2019, 22h07
Dernier message: Di0Sasm
  [Malz] - Malware dans .doc notfound 0 133 24-03-2015, 11h38
Dernier message: notfound
  Mes Analyses de Malware Yttrium 6 348 05-02-2015, 16h15
Dernier message: sakiir
  [.NET] Wobot Reverse Yttrium 0 118 28-08-2014, 04h59
Dernier message: Yttrium
  Malware uKash Swissky 21 1,314 19-11-2012, 12h05
Dernier message: InstinctHack

Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)
N-PN
Accueil | Challenges | Tutoriels | Téléchargements | Forum | Retourner en haut