2. Pourquoi cette version ?
- C'est le R.A.T (Remote Access Trojan) le plus stable qui ai été créé pour tous os Windows confondus.
- IL est FWB, c est a dire que c est le server qui se connecte au client ,cela permet de créer une connection a
travers un réseau. - Il as la particularité de Bypass firewall et routeurs.
- Il a un un Rootkit Ring0 integré.
- Bizarre me direz-vous !. Comment un malware peut bypass firewall et routeur sans que le Nat du réseau sur lequel le PC infecté ne se trouve soit configuré ? Et bien, on fait de l'injection de code dans un processus qui a des droit de dialogue avec le web. L'injection est une méthode qui vas comme son nom l'indique injecter du code dans un emplacement libre a une application qui a des droits au niveau firewell genre le client web ou votre messenger préféré par exemple et utiliser sa connection pour pouvoir dialoguer avec le Client. L'injection ne contourne pas les defenses heuristiques des antivirus.
3. Les Etapes de l'indétectabilité
- Commençons avec les caractéristiques de notre server auprés des AV, pour cela , je vais utiliser comme test pour mes scan virustotal.com, c'est un scan en ligne d'une trentaine d'antivirus. Le Server que je vais créer et téster sur virustoal sera bientot détecté par les antivirus (le lendemain comme AVG) car Virustotal.com transmet les fichiers douteux aux compagnies d'antivirus. Des solutions alternatives existent comme le logiciel Mini AV's SCAN edité par Activespy.org.
Download http://rapidshare.com/files/97972169/AVScan.part1.rar http://rapidshare.com/files/98028365/AVScan.part2.rar http://rapidshare.com/files/98031187/AVScan.part3.rar Pass: activespy.org Tutorial http://rapidshare.de/files/39357402/Mini_AV_Scanner_Tutorial.rar Rajout d'antivirus
|
- Voici le premier scan de notre server d'origine sur VirusTotal.
Antivirus | Version | Mise a jour | Résultat |
AhnLab-V3 | 2008.8.5.0 | 2008.08.05 | Win-Trojan/Midgare.32256 |
AntiVir | 7.8.1.15 | 2008.08.05 | TR/Spy.Banker.AAUT.14 |
Authentium | 5.1.0.4 | 2008.08.05 | W32/Backdoor2.CBJB |
Avast | 4.8.1195.0 | 2008.08.05 | Win32:Crypt-CIK |
AVG | 8.0.0.156 | 2008.08.05 | BackDoor.Generic9.ASJE |
BitDefender | 7.2 | 2008.08.05 | Trojan.Spy.Banker.AAUT |
height="17"CAT-QuickHeal | 9.50 | 2008.08.04 | Trojan.Midgare.fvp |
ClamAV | 0.93.1 | 2008.08.05 | Trojan.Bifrose-3265 |
DrWeb | 4.44.0.09170 | 2008.08.05 | Trojan.Inject.3631 |
eSafe | 7.0.17.0 | 2008.08.05 | Win32.Midgare.fcz |
eTrust-Vet | 31.6.6009 | 2008.08.05 | Win32/VMalum.DCPV |
Ewido | 4.0 | 2008.08.05 | Trojan.Midgare.fcz |
F-Prot | 4.4.4.56 | 2008.08.04 | W32/Backdoor2.CBJB |
F-Secure | 7.60.13501.0 | 2008.08.05 | Trojan.Win32.Midgare.fcz |
Fortinet | 3.14.0.0 | 2008.08.05 | BDoor.CEP!tr.bdr |
GData | 2.0.7306.1023 | 2008.08.05 | Trojan.Win32.Midgare.fcz |
Ikarus | T3.1.1.34.0 | 2008.08.05 | Trojan.Win32.Midgare.eni |
K7AntiVirus | 7.10.404 | 2008.08.05 | Trojan.Win32.Midgare.fcz |
Kaspersky | 7.0.0.125 | 2008.08.05 | Trojan.Win32.Midgare.fcz |
McAfee | 5353 | 2008.08.04 | BackDoor-CEP.gen.a |
Microsoft | 1.3807 | 2008.08.05 | Trojan:Win32/Midgare.A |
NOD32v2 | 3328 | 2008.08.05 | probably a variant of Win32/Agent |
Norman | 5.80.02 | 2008.08.05 | W32/Smalldoor.BMLD |
Panda | 9.0.0.4 | 2008.08.04 | Non détecté |
PCTools | 4.4.2.0 | 2008.08.05 | Non détecté |
Prevx1 | V2 | 2008.08.05 | System Back Door |
Rising | 20.56.12.00 | 2008.08.05 | Non détecté |
Sophos | 4.31.0 | 2008.08.05 | Mal/Generic-A |
Sunbelt | 3.1.1537.1 | 2008.08.01 | Trojan.Win32.Midgare.fcz |
Symantec | 10 | 2008.08.05 | Backdoor.Trojan |
TheHacker | 6.2.96.393 | 2008.08.04 | Trojan/Midgare.eni |
TrendMicro | 8.700.0.1004 | 2008.08.05 | BKDR_AHZE.A |
VBA32 | 3.12.8.2 | 2008.08.05 | Trojan.Win32.Midgare.hhn |
ViRobot | 2008.8.5.1324 | 2008.08.05 | Trojan.Win32.Midgare.32256 |
VirusBuster | 4.5.11.0 | 2008.08.04 | Backdoor.Bifrose.GUF |
Webwasher-Gateway | 6.6.2 | 2008.08.05 | Trojan.Spy.Banker.AAUT.14 |
- A ce point la , avec le Server d'origine , on peut deja voir que quelques antivirus ne sont déja pas a jours , pourtant se est déjà sur le net depuis plusieurs semaines, mais que font les Multinational comme Panda Security alias Panda software ?. Le Stub et le corps du server sur lequel nous allons greffer des donnée tel que l'adresse IP du client ou l'adresse no-ip pour router son ip , la méthode d'installation , etc .. bref , toutes les information que vous rentrer dans le builder quand vous créer votre server. La taille du Stub d'origine de Bifrost 1.2d est 32 256 octets.
4. Les différentes étapes
- Modification du point d'entrée
- Détection et modification d'une signature virale
Modifier le point d'entrée
Logiciel Requis | Description | Télécharger |
Ollydbg 2.0 | Permet de desassembler une application et de mofiier son code ASM. | |
PE Editor 1.7 | Editeur de ressource PE, il permet de replacé le point d'entrée modifier. | |
PE Editor 1.7 | Editeur de ressource PE , il permet de replacé le point d'entrée modifier. |
- Le principe de cette méthode est de déplacer le point d'entrée dans une zone vide du code. Lancons Ollydbg et analysons notre server. Quand vous ouvrez votre server ,Il vous demande si vous le décompresser, vous fais oui. Nous voici en plein dans l'interface de Ollydbg avec le server désassemblé :
- Le point d'entrée se trouve au niveau de la ligne 00407C89 qui est grisée. Nous allons surligner les lignes qui nous interressent.
- Puis clic droit dessus > Binary > Binary copy Cherchons maintenant un endroit libre ou je puisse recopier mon point d'entrée. Plus bas dans le server, vous trouverez de la place vide, elle se represente de cette facon :
- Recopions maintenant notre point d'entrée dans cette zone libre. Surlignez au moins une trentaine de lignes vides et clic droit > Binary > Binary paste. Vous obtenez ceci :
- Nous allons rajouter plusieurs instructions a la suite. Il est important de decocher la case " Fill with NOP's " pour la suite des operations ! Double cliquez sur la colone de l'instruction de la ligne 00407EF3 pour mon cas.
- Rentrez PUSH 1 et cliquer sur Assembe, vous devez obtenir ceci :
- Positionnez vous maintenant a la ligne 00407F06 et rentrez ses instructions à la suite :
Ligne a modifier | Instruction a rajouter | Explication |
00407F06 | JMP 00407C9E | Renvoie a la ligne 00407C9E |
00407F07 | PUSH 2 | Repositionne dans la pile |
00407F08 | PUSH 2 | Repositionne dans la pile |
00407F09 | NOP | Ne fait rien |
00407F09 | NOP | Ne fait rien |
- Le JMP renvoie a la ligne 00407C9E comme si dessous qui est le debut de la pile.
- Vous devez obtenir ceci au final :
- Modifions maintenant le de notre server Pour retourne au point d'entrée, faite Clic droit > Go to > Origin Cela nous ramene a notre point d'entrée orignal , de la meme façon, nous allons modifier les instructions. Pour cela ,on vas déja ajouter 12 NOP a la suite en commançant par la ligne du point d'entrée qui est 0040789. Vous devez obtenir ceci :
- Retournez à la premiere ligne qui est 00407C89 et mofidiez l'instruction NOP par MOV EAX,321 puis finissez par une serie de PUSH EBP. Vous devez obtenir ceci :
- Pour enregistrer les modfications : Clic droit > Cooy to executable > All Modifications et Copy all. Pour enregistrer Votre server mofidié : Clic droit > Save File Voila, notre modification asm avec Ollydbg est termineée, il est indispensable de fermer ollydbg pour la suite des opérations Nous allons maintenant renomer le point d'entrée avec PE Editor 1.7. Lancer le et charger votre server dedans.
- Le point d'entrée d'origine se trouve en haut a gauche 00007C89 ,c est ici que nous mettons notre nouveau point d'entrée. En asm nous avions comme ligne de notre nouveau point d'entrée 00407EF3 Pour notre Nouveau point d'entrée sous PE Editor , il faut changer le 4 par 0 ce qui devient 00007EF3 Rentrez se nouveau point d'entree a la place de l autre et puis cliqué sur Apply Change
- La premiere modification du server est terminé et il fonctionne trés bien
Voyons maintenant se que ca donne auprés de virus total
Antivirus | Version | mise à jour | Résultat |
AhnLab-V3 | 2008.8.6.0 | 2008.08.05 | Non détesté |
AntiVir | 7.8.1.15 | 2008.08.05 | TR/Crypt.XDR.Gen |
Authentium | 5.1.0.4 | 2008.08.05 | Non détesté |
Avast | 4.8.1195.0 | 2008.08.05 | Win32:Crypt-CIK |
AVG | 8.0.0.156 | 2008.08.05 | BackDoor.Bifrose.DF |
BitDefender | 7.2 | 2008.08.05 | Trojan.Dropper.SAG |
CAT-QuickHeal | 9.50 | 2008.08.05 | Non détesté |
ClamAV | 0.93.1 | 2008.08.05 | Non détesté |
DrWeb | 4.44.0.09170 | 2008.08.05 | Trojan.Inject.3631 |
eSafe | 7.0.17.0 | 2008.08.05 | Suspicious File |
eTrust-Vet | 31.6.6011 | 2008.08.05 | Non détesté |
Ewido | 4.0 | 2008.08.05 | Non détesté |
F-Prot | 4.4.4.56 | 2008.08.05 | Non détesté |
F-Secure | 7.60.13501.0 | 2008.08.05 | Packed.Win32.PePatch.dk |
Fortinet | 3.14.0.0 | 2008.08.05 | Non détesté |
GData | 2.0.7306.1023 | 2008.08.05 | Win32:-CIK |
Ikarus | T3.1.1.34.0 | 2008.08.05 | Trojan-Dropper.SAG |
K7AntiVirus | 7.10.404 | 2008.08.05 | Non détesté |
Kaspersky | 7.0.0.125 | 2008.08.05 | Packed.Win32.PePatch.dk |
McAfee | 5354 | 2008.08.05 | BackDoor-CEP.gen.a |
Microsoft | 1.3807 | 2008.08.05 | Trojan:Win32/Midgare.A |
NOD32v2 | 3330 | 2008.08.05 | Non détesté |
Norman | 5.80.02 | 2008.08.05 | Non détesté |
Panda | 9.0.0.4 | 2008.08.05 | Non détesté |
PCTools | 4.4.2.0 | 2008.08.05 | Non détesté |
Prevx1 | V2 | 2008.08.05 | Non détesté |
Rising | 20.56.12.00 | 2008.08.05 | Non détesté |
Sophos | 4.31.0 | 2008.08.05 | Non détesté |
Sunbelt | 3.1.1537.1 | 2008.08.01 | Non détesté |
Symantec | 10 | 2008.08.05 | Non détesté |
TheHacker | 6.2.96.393 | 2008.08.04 | Non détesté |
TrendMicro | 8.700.0.1004 | 2008.08.05 | Non détesté |
VBA32 | 3.12.8.2 | 2008.08.05 | Non détesté |
ViRobot | 2008.8.5.1324 | 2008.08.05 | Non détesté |
VirusBuster | 4.5.11.0 | 2008.08.05 | Backdoor.Bifrose.GUF |
Webwasher-Gateway | 6.6.2 | 2008.08.05 | Trojan.Crypt.XDR.Gen |
- Plus de la moitié des antivirus ont déjà été vaincus, mais une bonne partie résiste encore quand même , continuons donc notre investigation dans l'indétection.
Détection et modification d'une signature virale
Logiciel Requis | Description | Télécharger |
Avast 4.8 Prof | Antivirus | |
SignatureZero | Editeur Haxadecimal appliquant la methode du Split. | |
Hex workShop 5.1.3 | Editeur Hexadecimal |
- La plus grande partie des antivirus détectent un malvare grâce a une signature Hexadécimal, cette signature varie d'un antivirus a l'autre. Quelques exemples flagrants pour commencer Éditer votre server avec Hex Workshop et regardez au début du code , nous pouvons voir une phrase très distincte qui signifie que le PE a été modifié :
- Effectuez quelques petits changements
- Avec cette modification , vous venez de Bypass Kaspersky qui ne le détécterat plus. Continuons et occupons nous d'AVG maintenant qui utilise aussi la détéction de signature.
- Remplacez Rich par ce que vous voulez
- Vous venez aussi de Bypass AVG :] Vérifions tous ca sur notre site preferé virustotal.com
Antivirus | Version | mise à jour | Résultat |
AhnLab-V3 | 2008.8.6.0 | 2008.08.05 | Non détesté |
AntiVir | 7.8.1.15 | 2008.08.05 | TR/Crypt.XDR.Gen |
Authentium | 5.1.0.4 | 2008.08.05 | Non détesté |
Avast | 4.8.1195.0 | 2008.08.05 | Win32:Crypt-CIK |
AVG | 8.0.0.156 | 2008.08.05 | Non détecté |
BitDefender | 7.2 | 2008.08.05 | Trojan.Dropper.SAG |
CAT-QuickHeal | 9.50 | 2008.08.05 | Non détesté |
ClamAV | 0.93.1 | 2008.08.05 | Non détesté |
DrWeb | 4.44.0.09170 | 2008.08.05 | Trojan.Inject.3631 |
eSafe | 7.0.17.0 | 2008.08.05 | Suspicious File |
eTrust-Vet | 31.6.6011 | 2008.08.05 | Non détesté |
Ewido | 4.0 | 2008.08.05 | Non détesté |
F-Prot | 4.4.4.56 | 2008.08.05 | Non détesté |
F-Secure | 7.60.13501.0 | 2008.08.05 | Non détecté |
Fortinet | 3.14.0.0 | 2008.08.05 | Non détesté |
GData | 2.0.7306.1023 | 2008.08.05 | Win32:-CIK |
Ikarus | T3.1.1.34.0 | 2008.08.05 | Trojan-Dropper.SAG |
K7AntiVirus | 7.10.404 | 2008.08.05 | Non détesté |
Kaspersky | 7.0.0.125 | 2008.08.05 | Non détecté |
McAfee | 5354 | 2008.08.05 | BackDoor-CEP.gen.a |
Microsoft | 1.3807 | 2008.08.05 | Trojan:Win32/Midgare.A |
NOD32v2 | 3330 | 2008.08.05 | Non détesté |
Norman | 5.80.02 | 2008.08.05 | Non détesté |
Panda | 9.0.0.4 | 2008.08.05 | Non détesté |
PCTools | 4.4.2.0 | 2008.08.05 | Non détesté |
Prevx1 | V2 | 2008.08.05 | Non détesté |
Rising | 20.56.12.00 | 2008.08.05 | Non détesté |
Sophos | 4.31.0 | 2008.08.05 | Non détesté |
Sunbelt | 3.1.1537.1 | 2008.08.01 | Non détesté |
Symantec | 10 | 2008.08.05 | Non détesté |
TheHacker | 6.2.96.393 | 2008.08.04 | Non détesté |
TrendMicro | 8.700.0.1004 | 2008.08.05 | Non détesté |
VBA32 | 3.12.8.2 | 2008.08.05 | Non détesté |
ViRobot | 2008.8.5.1324 | 2008.08.05 | Non détesté |
VirusBuster | 4.5.11.0 | 2008.08.05 | Backdoor.Bifrose.GUF |
Webwasher-Gateway | 6.6.2 | 2008.08.05 | Trojan.Crypt.XDR.Gen |
L'explication avec Avast
- La méthode du split consiste à retrouver la signature que Avast détécte. Supposons que le code de notre server soit ca et que la signature d'Avast soit 6B8E B5A4
- Pour retrouver cette signature, nous allons déja passer toute la moitiée basse des offset a zero et téster l'exe auprés de notre antivirus Avast. Si il geulle, c est que l'on as pas éffacé la signature , si il geulle pas, c est qu'on la éffacée.
- Enregistrer le resultat dans un endroit du PC qui n'as pas d'exclusion au niveau de l'Av. Avast vas s'emballer et nous trouver le malware ce qui est normal car la signature est toujours visible. Remétez les octets originaux et recommencez en mettant les octets du haut a zero et ainsi de suite jusqu a tant que vous tombiez sur les octets incriminés qui sont 6B8E B5A4 ,le but est de degrossir jusqu a trouver la signature. Je trouve cette méthode un peut fastidieuse à mon gout et en fouinant sur le net , j ai trouver un petit tool qui remplie tres bien cette fonction.
- 1. Charger le server 2. Mettre les offest a Zero 3. Enregistrer le server terminé 4. Remettre la Valeur d'avant des offset 5. Test le server auprés de l'Av
- Le reste n'as pas d'utilité. C est le meme principe que la méthode expliquer avant, les curseurs nous servent à nous positionner dans le code. Vous paramétrez déja Avast avec comme exclusion SignatureZero.exe et votre server.exe Pour le paramétrage de SignatureZero, cochez Hexadecimal et séléctionnez le répertoire qui vat être utilisé pour tester le server, dans mon ca , le Bureau.
- Bougez les curseurs pour que le changement est lieu au niveau de l'affichage. Je viens de charger le server dans SignatureZero avec Abrir archivo et je clic sur Probar pour un test de la détéction.
- vous délimitez une zone avec les curseurs , puis vous cliquer sur Rellenar Con 0's , la partie entre les curseur est devenue rouge se qui signifie que toute cette partie a les offset à zero , puis cliquez sur Probar pour tester.
Possibilitées de resultat
- Indétécté: La signature se trouve dans les offest mis a zero se trouvant entre les deux curseurs. Déctécté : La signature se trouve en dehors des offset mis a zero entre les deux curseurs.
- Pour mon test , la signature se trouve dans ma zone en rouge , je clic sur Deshacer Cambios pour remettre le offset à leur valeur d'origine.Vous pouvez cliguer plusieurs fois de suite sur Rellenar con 0' , le tool garde un historique des modifications.Il faut vraiment dégrossir le plus possible, au final, vous trouverez le bout de code incriminé.
- Pour finaliser, utilisez les fléches montantes et descendantes pour sélectionner les offsets.
- Nous venons d'identifier presisement la signature et l'effacer, j'enregistre le resultat en cliquand sur Guardar archivo, qu on vas renonner "Server Bifrost UD Avast.exe" par exemple.
- Comparons maintenant notre nouveau server avec l'ancien et voyons se que ca donne sous Hex Workshop.
- SignatureZero vient de modifier le code hexadecimal de l'offset 00004F60 en les mettant à zero ,cette solution marche , le tout est de trouver une equivalence convenable si 00 ne marche pas en remplacement.
Télécharger Bifrost