Forensic - HEAP

Write Up May 17, 2023

📜Scenario

🔎Solve

Voici un chall de forensic pour le moins inhabituelle !
C'est pas tout les jours qu'on analyse une heap JAVA (je savais même pas que c'était possible...)

Enfin bon, quand faut y aller, faut y aller !  
C'est l'heure de détérrer Eclipse histoire de voir ce qu'on trouve...

Finalement on en tire pas grand chose à première vue, prennons le temps de faire quelques recherche supplémentaire !
On tombe rapidement sur cette doc qui nous apprend l'existence de MAT un plugin Eclipse porter en application, qui pemets d'analyser les heap JAVA.

On ouvre notre jolie dump dans MAT eeett on obtient une erreur... 😭

Et pourquoi d'abord ? Il est pas beau mon tas ?!

Après un certain temps et pas mal de recherche x)
On découvre que les heap dumps de JAVA Android, fait avec Android studio par exemple, ne dispose pas d'un format normé.
Heureusement un tool fera notre bonheurs : hprof-conv

On suis le petit tuto et on convertie nous aussi notre dump

$ hprof-conv heap.hprof mat.hprof

Ah bah voila ! Ca marche mieux d'un coup !

En regardant l'onglet Histogram qui liste les objets JAVA présent dans le dump regrouper par class. Notre objectif est de trouver ce que le hacker a utiliser pour chiffrée les données.

La première recherche sur RSA ne semble rien retourner d'interessant, RAS malheureusement :/

Voyons voir AES...

Curieux ça, hero n'est pas un objet natif que je sache...
Pour voir le contenu de l'objet :
Clic Droit -> Java Basics -> Open in Dominator Tree

On recupere les values des attributs message et K_E_Y présent dans la class com.hero.cryptedsecret.AESEncrypt :
message : kSDIsBFTYa3+aLqEpVLXtspdLse8WclEhbqGLiqvM6k=
K_E_Y : c45c60232c9847e2

On déchiffre tout ça :

Et on récupère le flag !!

Write-up par Shaym

Tags