Salut à tous !
Après des mois d’absences me revoilà et pas les mains vides !
Bon commençons ...
Le but de ce tutoriel est de comprendre une façon de générer un malware, analyser ce malware et voir un peu comment analyser un exécutable .NET.
Tout d'abord qu'est ce que le .NET ?!
Pour faire simple le .NET est un framework "windowsien" qui permet des interactions simplifié avec les API Win32 : par exemple une interaction qui prendrait 100 lignes de code en C par exemple n'en prendrais que 10 en .NET (je simplifie).
Le .NET est principalement utilisé par deux langages : C# et Visual Basic.
Se sont des langages "simples" (pas de pointeurs !) et largement utilisés !
OK je vois ce qu'est le .NET, mais un Builder et un Stub quesaco ?!
Un Stub est un fichier qui "s'auto lis" et qui execute du code en fonction de ce qu'il a lus ... quoi vous n'avez rien compris ?
On va rendre ca plus claire : le Stub est enfaite le malware + des données qui on été écrite à la suite par le Builder.
Schématiquement ca donne ca : [CODE MALVEILLANT]+[DONNEES].
Les données, écrites à la suite du code malveillant par le builder, seront utilisé par ce même code.
Prenons par exemple Emissary Keylogger : un keylogger (merci captain obvious) qui enverra tout les frappes claviers vers une adresse email.
Le Builder c'est ca :
cour1.jpg
Le code hexadecimal du server.exe généré :
cour2.jpg
Bon aller à l'abordage !
Notre scénario est le suivant un fichier suspect : "server.exe" est sur notre machine on veut savoir ce qu'il fait et s'il est dangereux.
Bon pour commencer on va ouvrir notre nouveau meilleur amis : notre éditeur hexadecimal (ici Frhed)
Et analysons les premières lignes :
cour3.PNG
Bon au vue de ces premières lignes je peux vous dire que c'est un fichier utilisant le framework .NET v2.0 (courant chez les malwares : question de compatibilités)
Pour l'instant rien de bien méchant !
On va jeter un coup d’œil du des fonctions etc et la le .NET nous facilite la vie on a juste a faire une recherche : "<Module>" et magie :
cour4.jpg
On a plein d'info séparer par un 0x00 donc avec un petit script de mon cru on va y voir plus claire :
cour5.jpg
Déjà ca commence à ce gâter : KeyboardHook, KBDLLHOOKSTRUCT, KeyboardProcDelegate, KeyDownEventHandler, KeyUpEventHandler ... ces appelles de fonctions ne me dit rien vaille.
(ces fonctions font un HOOK sur le clavier c'est à dire qui sont capable d'afficher les frappes clavier pour faire simple).
Bon voyons voir un peu plus loin : TripleDESCryptoServiceProvider, cTripleDES, Encrypt, Decrypt ... bon des fonctions de cryptographie, pourquoi pas.
Ensuite on a des textbox, des timers etc rien d'alarmant.
A tient une jolie fonction qui porte bien son nom : DownloadUrl ...
Et oh que vois-je : AntiKeyscrambler, AntiWireshark, AntiAnubis, AntiMalwarebytes, AntiKaspersky, AntiOllydbg, AntiOutpost, AntiNorman, AntiBitDefender, AntiNOD32
Et enfin biensure : get_ExecutablePath, FileSystem, OpenMode, OpenAccess, OpenShare, FileOpen, LOF, Space, FileGet, FileClose (Signature potentiel d'un STUB)
Et pour finir : AssemblyTrademarkAttribute, AssemblyCopyrightAttribute, AssemblyProductAttribue, AssemblyCompanyAttribute, AssemblyDescriptionAttribute, AssemblyTitleAttribute
(le fichier change son Assembly ici il prend celui de uTorrent pour tenter de biaiser les antivirus)
Bon avec toutes ces infos je peux dire de manière sure que ce "server.exe" est un Keylogger capable en plus de fonction de keylogger de télécharger des fichiers, de contourner des antivirus, de changer son Assembly et de crypter/decrypter des ... choses ^^ et changer son assembly.
Mais on ne peut toujours pas dire s'il a été généré ou non ... bon sait qu'il peut lire un fichier (dont lui même) mais ca s’arrête la !
Si on jette un coup d’œil à la fin du fichier on observe plein de 0x00 et oh tient des données tel qu'une adresse email, un mot de passe crypté etc
Je peut donc affirmer que ce malware à été généré par un combo Builder/Stub !
Nota Bene : il y a d'autre technique pour savoir si le fichier a été généré comme par exemple regarde le OriginalFileName du fichier si c'est Stub.exe ... je vous laisse deviner
Bon je crois avoir tout dis, du moins l'essentiel
Si vous avez des questions ou si vous voulez des précisions n'hésitez pas !
++
Après des mois d’absences me revoilà et pas les mains vides !
Bon commençons ...
Le but de ce tutoriel est de comprendre une façon de générer un malware, analyser ce malware et voir un peu comment analyser un exécutable .NET.
Tout d'abord qu'est ce que le .NET ?!
Pour faire simple le .NET est un framework "windowsien" qui permet des interactions simplifié avec les API Win32 : par exemple une interaction qui prendrait 100 lignes de code en C par exemple n'en prendrais que 10 en .NET (je simplifie).
Le .NET est principalement utilisé par deux langages : C# et Visual Basic.
Se sont des langages "simples" (pas de pointeurs !) et largement utilisés !
OK je vois ce qu'est le .NET, mais un Builder et un Stub quesaco ?!
Un Stub est un fichier qui "s'auto lis" et qui execute du code en fonction de ce qu'il a lus ... quoi vous n'avez rien compris ?
On va rendre ca plus claire : le Stub est enfaite le malware + des données qui on été écrite à la suite par le Builder.
Schématiquement ca donne ca : [CODE MALVEILLANT]+[DONNEES].
Les données, écrites à la suite du code malveillant par le builder, seront utilisé par ce même code.
Prenons par exemple Emissary Keylogger : un keylogger (merci captain obvious) qui enverra tout les frappes claviers vers une adresse email.
Le Builder c'est ca :
cour1.jpg
Le code hexadecimal du server.exe généré :
cour2.jpg
Bon aller à l'abordage !
Notre scénario est le suivant un fichier suspect : "server.exe" est sur notre machine on veut savoir ce qu'il fait et s'il est dangereux.
Bon pour commencer on va ouvrir notre nouveau meilleur amis : notre éditeur hexadecimal (ici Frhed)
Et analysons les premières lignes :
cour3.PNG
Bon au vue de ces premières lignes je peux vous dire que c'est un fichier utilisant le framework .NET v2.0 (courant chez les malwares : question de compatibilités)
Pour l'instant rien de bien méchant !
On va jeter un coup d’œil du des fonctions etc et la le .NET nous facilite la vie on a juste a faire une recherche : "<Module>" et magie :
cour4.jpg
On a plein d'info séparer par un 0x00 donc avec un petit script de mon cru on va y voir plus claire :
cour5.jpg
Déjà ca commence à ce gâter : KeyboardHook, KBDLLHOOKSTRUCT, KeyboardProcDelegate, KeyDownEventHandler, KeyUpEventHandler ... ces appelles de fonctions ne me dit rien vaille.
(ces fonctions font un HOOK sur le clavier c'est à dire qui sont capable d'afficher les frappes clavier pour faire simple).
Bon voyons voir un peu plus loin : TripleDESCryptoServiceProvider, cTripleDES, Encrypt, Decrypt ... bon des fonctions de cryptographie, pourquoi pas.
Ensuite on a des textbox, des timers etc rien d'alarmant.
A tient une jolie fonction qui porte bien son nom : DownloadUrl ...
Et oh que vois-je : AntiKeyscrambler, AntiWireshark, AntiAnubis, AntiMalwarebytes, AntiKaspersky, AntiOllydbg, AntiOutpost, AntiNorman, AntiBitDefender, AntiNOD32
Et enfin biensure : get_ExecutablePath, FileSystem, OpenMode, OpenAccess, OpenShare, FileOpen, LOF, Space, FileGet, FileClose (Signature potentiel d'un STUB)
Et pour finir : AssemblyTrademarkAttribute, AssemblyCopyrightAttribute, AssemblyProductAttribue, AssemblyCompanyAttribute, AssemblyDescriptionAttribute, AssemblyTitleAttribute
(le fichier change son Assembly ici il prend celui de uTorrent pour tenter de biaiser les antivirus)
Bon avec toutes ces infos je peux dire de manière sure que ce "server.exe" est un Keylogger capable en plus de fonction de keylogger de télécharger des fichiers, de contourner des antivirus, de changer son Assembly et de crypter/decrypter des ... choses ^^ et changer son assembly.
Mais on ne peut toujours pas dire s'il a été généré ou non ... bon sait qu'il peut lire un fichier (dont lui même) mais ca s’arrête la !
Si on jette un coup d’œil à la fin du fichier on observe plein de 0x00 et oh tient des données tel qu'une adresse email, un mot de passe crypté etc
Je peut donc affirmer que ce malware à été généré par un combo Builder/Stub !
Nota Bene : il y a d'autre technique pour savoir si le fichier a été généré comme par exemple regarde le OriginalFileName du fichier si c'est Stub.exe ... je vous laisse deviner
Bon je crois avoir tout dis, du moins l'essentiel
Si vous avez des questions ou si vous voulez des précisions n'hésitez pas !
++
Commentaire