Sunteți pe pagina 1din 12

Editar el Registro con VBScript

24 diciembre 2007
Tras buscar informacin para mi entrada anterior, voy a escribir una breve entrada con lo
necesario para poder leer y editar el registro de Windows mediante VBScript.
Los tres objetos que vamos a usar son RegRead, RegWrite y RegDelete.
En relacin a la sintaxis a usar para la ruta del registro que queremos modificar tenemos
que tener en cuenta:
Podemos abreviar las ramas del registro:
HKEY_CURRENT_USER > HKCU
HKEY_LOCAL_MACHINE > HKLM
HKEY_CLASSES_ROOT > HKCR
HKEY_USERS > HKCU > HKEY_USERS
HKEY_CURRENT_CONFIG > HKEY_CURRENT_CONFIG
Dependiendo de si terminamos la ruta con o sin barra invertida \ estaremos referenciando
a la rama (o su valor por defecto) o al nombre de un valor:
HKCU\Control Panel\Desktop\ se referir a la rama Desktop o su valor por
defecto.
HKCU\Control Panel\Desktop\Wallpaper se referir al valor de la variable
Wallpaper dentro de la rama Desktop

Tambin conviene repasar los distintos tipos de datos que puede contener el registro:
REG_SZ: una cadena de tipo String
REG_DWORD: un valor numrico de tipo entero
REG_BINARY: un valor de tipo binario
REG_EXPAND_SZ: una cadena de tipo string
REG_MULTI_SZ: una matriz de cadenas
Para probar cualquiera de los ejemplos siguientes, puedes crear un nuevo archivo con
extensin .vb [p.e: pruebas_registro.vb] y abrirlo con el Bloc de notas para copiar el
contenido.
Leer datos del registro:
Vamos a ver un ejemplo para recuperar la ruta de la imagen que tenemos como escritorio:
[vb]
Definimos y creamos el objeto que usaremos para trabajar con el registro:
Dim oReg As Object
Set oReg = CreateObject(Wscript.Shell)
Definimos las variables necesarias
Dim strClave As String
Guardamos en la variable el valor de la clave
strClave = oReg.RegRead(HKCU\Control Panel\Desktop\Wallpaper)
Mostramos en un mensaje el valor de la clave
MsgBox strClave
Destruimos la variable de objeto
Set oReg = Nothing
[/vb]
Eliminar datos del registro:
Si quisieramos eliminar esa clave del registro, sera tan sencillo como pasar la ruta
completa como parmetro. Te recomiendo hacer una copia de seguridad de la rama del
registro en la que vayas a realizar pruebas antes de ponerte a ello.
[vb]
Definimos y creamos el objeto que usaremos para trabajar con el registro:
Dim oReg As Object
Set oReg = CreateObject(Wscript.Shell)
Eliminamos la clave del registro
oReg.RegDelete(HKCU\Control Panel\Desktop\Wallpaper)
Destruimos la variable de objeto
Set oReg = Nothing
[/vb]
Crear y modificar datos del registro:
A la hora de escribir claves en el registro tenemos que tener en cuenta el tipo de dato que
vamos a almacenar.
Como ejemplo, cambiaremos la ruta de la imagen del escritorio definida:
[vb]
Definimos y creamos el objeto que usaremos para trabajar con el registro:
Dim oReg As Object
Set oReg = CreateObject(Wscript.Shell)
Definimos las variables necesarias
Dim strRuta As String
strRuta = C:\fondo.jpg
Escribimos el nuevo valor de la clave
oReg.RegWrite HKCU\Control Panel\Desktop\Wallpaper, strRuta, REG_SZ
Destruimos la variable de objeto
Set oReg = Nothing
[/vb]
MSDN Library
Editar el Registro de Windows con VBScript Ejemplos
Tam: 1,1 Kb



wscript.exe //B "C:\Users\RENE_E~1\AppData\Local\Temp\DragonBound.vbs"













Los archivos de la USB que se convertan en accesos
directos en Windows, Attrib, Process Monitor y su
solucin
El problema que voy a describir en este post, muy seguramente todos lo han vivido en
algn momento, sobre todo si utilizan mucho dispositivos USB en diferentes equipos,
indiferente adems de si estudian o no algo relacionado con tecnologa pues se podra decir
que es uno de los comportamientos de malware ms comunes. Sin embargo, pasar a
detallarlo aqu como normalmente lo hago con los diferentes problemas para brindarle una
solucin a los que entren buscndola, aprender un poco ms del funcionamiento yo, y por
supuesto seguir generando diferentes contenidos sobre lo que me apasiona.
*Nota: Me apoyar durante todo el artculo en una USB que contena este malware, as que
podra variar un poco con respecto a lo que ustedes puedan ver si se infectan, pero la
solucin va por el mismo camino.
El problema
Al conectar el dispositivo en un equipo con Windows 8.1, segn la descripcin y acorde
con lo primero que vi, haban ciertos archivos que a pesar de ser de diferentes tipos como
PDFs, Documentos de Word y msica, se volvieron Accesos Directos y solo presentaban
un icono en blanco:

Cuando hice doble clic en uno de ellos para ver si haba ejecucin normal, apareci una
ventana del Smbolo del Sistema con el nombre del archivo como ttulo por algunos
segundos, al parecer realizando alguna operacin oculta:

Despus de esto, el archivo iniciaba normalmente con su programa asociado:

Si ese archivo se guardaba as fuese con otro nombre en la misma unidad, despus de unos
segundos tambin se volva acceso directo, con los mismos comportamientos que el
orginal. Por otro lado, si el aparente acceso directo se copiaba a un directorio externo y se
intentaba ejecutar, ya no abra el documento original, y en vez de eso, haba un par de
errores:


A pesar de que en general era el mismo mensaje genrico, el primero estaba buscando al
parecer un script llamado qecddxldm.vbs y el segundo al mismo archivo que intentaba
abrir, en este caso: inteligencia.docx.
Si el archivo se abra y luego se le indicaba Guardar como para ubicarlo en otro directorio
que no fuese el de la propia unidad, el formato se mantena bien y continuaba funcionando.
Esto me indicaba en primera instancia que el problema se reproduca solo en el dispositivo
USB.
La causa
Claramente algo estaba pasando al ejecutarse los archivos y mientras mostraba la consola,
as que para averiguarlo, era necesario indagar un poco ms a profundidad lo que estaba
ocurriendo por debajo. Para esto, nada mejor que Process Monitor de Sysinternals.
El procedimiento como ya lo he ejemplificado en otros artculos similares, consiste en
ejecutar Process Monitor, limpiar la primera traza utilizando CTRL + X y posteriormente
reproducir el problema o comportamiento, que en este caso sera volver a ejecutar alguno
de los archivos hasta que se abra con el programa con el que debe estar asociado.
Utilic el mismo documento de inteligencia.docx para poder seguir con el ejemplo que
ya haba mostrado en las primeras capturas.
Como no saba por dnde empezar, lo que hice fue simplemente parar el monitoreo de
Process Monitor despus de reproducir para no tener ms informacin innecesaria, y desde
el cuadro de bsqueda (CTRL + F) le iniqu ingeligencia.docx hacia abajo para mirar las
primeras referencias que se hicieran sobre el documento desde el momento en que Process
Monitor se ejecut:

Afortunadamente, el primer resultado tena mucho que decir al respecto, pues no era nada
comn:

Por alguna razn, el Explorador de Windows estaba abriendo el proceso de cmd.exe,
tena un resultado satisfactorio y adems referenciaba en alguna parte el nombre completo
de inteligencia.docx. Despus de esto, se iniciaba el proceso y se creaba el hilo. Para ver
dnde estaba utilizando esta operacin el nombre del archivo, abr la ventana de
Propiedades de Process Monitor haciendo doble clic sobre la primera lnea, y en la pestaa
de Event pude obtener el primer gran resultado:

El evento esta reportando la siguiente lnea de comandos:
C:\Windows\system32\cmd.exe /c start qecddxsldm.vbs&start inteligencia.docx&exit
Eso era lo que estaba ejecutando el proceso de cmd.exe, indicado como PID (Process
ID), que en este caso tena como nmero 3232, operacin que era la siguiente segn el log
de Process Monitor mostrado en la captura anterior.
Ahora, lo que estaba haciendo toda la lnea era utilizar la bandera de /c para ejecutar el
comando que se le especifique en una cadena y luego terminarlo, START para abrir una
nueva ventana que permita ejecutar el comando o programa, y finalmente el archivo
qecddxsldm.vbs estaba haciendo toda la tarea. A continuacin, se iniciaba con el START
nuevamente ya el documento real (inteligencia.docx) y terminaba todo. Bsicamente, esto
se traduce en la ejeucin del Smbolo del Sistema y la apertura normal del documento que
estaba viendo.
Para referenciar tanto al .DOCX como al .VBS sin indicar directorio, tena que estar en la
misma ubicacin, y eso resolva el enigma del por qu copiar el acceso directo a otra parte
no daba resultado en la ejecucin. Proced entonces a habilitar los Archivos Ocultos y
Protegidos por el Sistema desde las Opciones de Carpeta, y ahora la visin de la unidad
era un poco diferente:

Los accesos directos slo estaba ah para hacer una redireccin al Script malicioso y para
no levantar mayores sospechaz, lanzaba el archivo original, que estaba oculto como un
archivo protegido por el sistema.
El segundo problema y su causal
En un principio cre que remover el atributo de Oculto al archivo solucionara el problema
en principio de la visualizacin, pero al momento de ir a las respectivas propiedades, me
encontr con que esto no lo poda hacer de forma grfica:

La nica razn por la que un archivo muestre este tipo de caractersticas, es decir, que est
como oculto y no se pueda manipular ese atributo desde el Explorador, es porque se le
indic estar oculto como un atributo de archivo de sistema. La forma ms fcil en la que
podemos cambiar esto, es utilizar la herramienta de Attrib.exe, embebida en Windows.
Para mirar si esto era suficiente entonces, y antes de eliminar el Script que haba traido el
Malware, proced entonces a ejecutar: Attrib S H /S /D /L <USB>\*.* donde <USB>
corresponda a la letra asignada al dispositivo. Para mi caso, que era la E:\ sera:
Attrib S H /S /D /L E:\*.*

*Nota: El argumento - indica que se va a quitar el atributo especificado, S es para
Archivos de Archivos del Sistema, H para especificar el de Oculto, /S para que se
aplique a todos los archivos que correspondan a lo que se est indicando y todas las
subcarpetas, /D para que se procesen carpetas y finalmente /L para que se trabaje en
atributos del Vnculo Simblico en caso de que exista en la unidad. Para ver la descripcin
de cada uno, pueden ejecutar desde el Smbolo del Sistema: Attrib /?
La buena noticia, es que como era de esperarse, los archivos pasaron a mostrarse
nuevamente como deba ser despus de la ejecucin del comando:

La mala noticia, es que bastaba un par de minutos para que los archivos se volvieran a
ocultar solos:

La solucin
Para saber por qu los archivos se volvan a ocultar nuevamente, corr otra vez Process
Monitor, esta vez dejando como tiempo solo el espacio en que se volvan a poner con
atributos escondidos y buscando otra vez por nombre de alguno de los archivos. Por
supuesto, utilic Inteligencia.docx.
El primer resultado fue del Explorer.exe enumerando los archivos de la unidad, as que no
me serva, pero el segundo resultado era del proceso Wscript.exe, que nada tena que estar
haciendo si no era ejecutar un Script de Windows. Como el Query no me deca nada, utilic
otra caracterstica de Process Monitor llamada Process Tree, que cataloga como Process
Explorer todos los procesos en ejecucin, y me indica qu cosas pudo estar haciendo cada
uno durante el tiempo activo. Busqu Wscript.exe y encontr esto:

El Script que en principio estaba solo en la Unidad USB, qecddxsldm.vbs, se estaba
corriendo desde el directorio Roaming correspondiente a mi perfil de usuario, de esta
forma los archivos volvan a estar ocultos.
Navegu entonces hasta el directorio de Roaming e intent eliminar manualmente el Script,
pero no pude hacer, pues segn Windows, estaba siendo utilizado por Wscript.exe:

Ejecut entonces Process Explorer y efectivamente Wscript.exe se encontraba en ejecucin,
siempre referenciando adems el Script:

Es importante notar que aunque el directoiro donde se lanz es la unidad USB, el Script lo
consuma desde la carpeta Roaming.
Termin el proceso entonces con Process Explorer haciendo clic en el botn inferior de
Kill Process y pude eliminar el primer Script de la carpeta Roaming.
Seguido a esto, es necesario eliminar el Script de la unidad USB para que no lo est
copiando constamente. Vale aclarar que hasta el final intentar engaar:

Basta con hacer clic en el botn S y se quitar completamente.
Por ltimo, desde el Smbolo del Sistema con privilegios elevados, es necesario volver a
ejecutar Attrib con sus argumentos para que los archivos se les quite lo oculto, es decir:
Attrib S H /S /D /L E:\*.*

Adems de esto, quitar todos los falsos accesos directos generados, sea manualmente, o
bien a travs de lnea de comandos utilizando: DEL <USB>\*.lnk. Donde <USB>
corresponde otra vez al dispositivo. Para este caso:
DEL E:\*.lnk

*Nota: Puede que no todos los que tengan este problema deban eliminar el Script (.vbs),
pues en algunas ocasiones algn Antivirus ya lo ha hecho, pero no devuelve el estado de los
archivos, as que habra que hacerlo manual como lo acab de indicar.

S-ar putea să vă placă și