web-dev-qa-db-fra.com

Comment reconnaître si ce code est dangereux

Je viens de recevoir du code obscurci et j'aimerais le masquer. Quelqu'un pourrait-il expliquer quelle méthode de cryptage est utilisée?
Et comment je pourrais l'inverser.
Le code est:

On error resume next
Data="}èŝŸȠɩʽ̟ͪρФШҘӔղ׏ܦݷބߢࡳ࢏ࣜ"
Container1=""
id="4d9fdb14-d482-4fc5-a910-9af261a17650"
random1=0
random2=0
do until random1=len(Data)
random1=random1+1
random2=random2+1
if random2=len(id) then random2=1
Container1=Container1 & ChrW(AscW(Mid(Data, random1, 1)) - random2 * 86)
loop
if len(Container1) > 282 then
execute Container1
end if

Le code complet dans Pastebin: https://Pastebin.com/WJTgKmP1

7
Sergio Ramos

Imprimer au lieu d'exécuter

Dans ce cas, vous avez le code de désobfuscation devant vous. Bien qu'il puisse être intéressant de comprendre comment cela fonctionne, ce n'est pas nécessaire - il est évident que le flux de processus est qu'il désobfuse la charge utile à la variable Container1 qui est ensuite exécuté.

Ce que vous pouvez faire est de remplacer le execute Container1 avec quelque chose comme (en supposant que ce soit du VBA) MsgBox Container1 et exécutez simplement le code. Bien sûr, il est plus sûr d'exécuter tout code potentiellement malveillant dans une machine virtuelle sandbox et non sur un ordinateur qui vous intéresse, même si vous pensez savoir ce qu'il fait et ne fait pas - car n'importe qui peut faire une erreur dans l'évaluation cette.

Il est tout à fait plausible que cela révèle simplement une `` deuxième étape '' qui nécessitera encore une analyse et une désobfuscation supplémentaires, mais c'est un exercice d'apprentissage différent.

31
Peteris

Une réponse plus générale à votre question (en plus de la réponse pour remplacer l'exec par l'impression de PeteriS qui est très pratique pour une analyse rapide).

Les parties dangereuses du code comprennent des méthodes ou des appels qui ont des effets secondaires sur le système. Cela inclut en particulier les appels système pour exécuter des commandes, IPC, ouvrir des fichiers ou établir une communication réseau. Bien que tous les codes qui le font ne soient pas dangereux, cela devrait au moins être suspect.

Mais gardez à l'esprit, uniquement parce que vous ne pouvez pas voir ce type de code, il pourrait ne pas être absent. Plus généralement, avoir une certaine forme de manipulation de la mémoire, puis sauter ou configurer des gestionnaires à d'autres endroits peut faire la même chose.

Dans votre exemple de code, le execute est cependant la seule partie qui se démarque comme dangereuse (et le fait que le VBA n'est pas utilisé par des personnes sensées).

4
eckes