miércoles, 8 de diciembre de 2010

Last write time finder v1.0 beta


Buenas!

Introducción


Last write time finder (beta), es una herramienta de línea de comandos que nos permitirá
saber la fecha y hora de escritura en una determinada key del registro de windows.
Esto nos puede ser de gran utilidad, Por ejemplo en el desarrollo de líneas de tiempo.
Nota: esta versión fue solo probada en windows xp, y está en beta,
por lo que si encuentras cualquier tipo de error puedes contactarme a djga94@gmail.com.

Uso

El uso de la herramienta lwtf es realmente muy simple:
lwtf.exe espera 2 parámetros:
.El árbol del registro:
Este argumento identifica al root del registro.
El argumento árbol puede ser cualquiera de los siguientes valores:
.hkcr / HKCR = HKEY_CLASESS_ROOT
.hkcu / HKCU= HKEY_CURRENT_USER
.hklm / HKLM=HKEY_LOCAL_MACHINE
. hku / HKU=HKEY_USERS
.hkcc / HKCC=HKEY_CURRENT_CONFIG
El otro parámetro que espera lwtf.exe es la subkey dentro del árbol, por ejemplo System\CurrentControlSet\Services.

Ejemplos de uso

Ejemplo 1:
En el siguiente ejemplo se muestra el last write time para la key hkcr\.fla
lwtf hkcr .fla


Ejemplo 2:
Cuando se inició el ordenador? la key hardware abitualmente puede responder esta pregunta
lwtf hklm hardware
Salida:
By winroot http://win-root.blogspot.com

08/12/2010 11:02
11:02 , es la hora en la que prendí la pc.
Ejemplo 3:
En este ejemplo vamos a suponer que llegamos a una pc, y está infectada con malware.
El mismo, se carga desde la key run de hklm.
Como en este caso es lo único que hay en esa key, vamos a obtener el last write time,
y luego compararlo con la fecha de creación del ejecutable del malware.
lwtf hklm software\microsoft\windows\currentversion\run
Salida:
By winroot http://win-root.blogspot.com
20/8/2010 15:09

Descarga

Descarga binarios para windows+src C++ + readme.
Descargar .rar
Para programadores c++
Bien, el programador de c++ que vio el código fuente,
provablemente notó los problemas que tiene el código desde el punto de vista de el diseño.
Para la versión definitiva, pienso implementar la clase lwtf en una librería, usar excepciones y otras clases para parsear resultados.

Licencia

Gpl.
Reporte de problemas

Si encuentras un problema, puedes contactarme a djga94@gmail.com tanto por mail como por msn, Te estaré muy agradecido.

Un abrazo !

martes, 7 de diciembre de 2010

ocultando entradas de inicio usando los permisos del registro de windows


Hola!

En este artículo trataremos de usar los permisos del registro de windows para
ocultar entradas de inicio.

Lo que lograremos es que:
.Ocultar una entrada de inicio al usuario actualmente con sesión iniciada.

.No lograremos que se ejecute, pero en su lugar, lograremos que se ejecute en otras cuentas de usuario.

Escenario:


pc de ogar:

Cuentas de usuario:

.Sys (a el le vamos a ocultar la entrada de inicio)

.Usuario (En esta cuenta se ejecutará el malware)

La idea es ocultarle la entrada al administrador del sistema, por lo que el nunca
sospechará que está infectado es más, nunca se ejecutará nada en su cuenta de usuario, En lugar de esto, El malware se ejecutará en todas las demás cuentas.

Aclaraciones:


.Systema usado: windows xp sp2

.Ejemplo de malware usado: malware.bat


Vamos a utilizar un .bat aquí, por lo simple que es hacerlo.

Malware.bat:

@echo off

echo hola desde el malware xdddd

pause>nul

Aquí se supone que este fichero está en
c:\windows\system32\malware.bat


Empezando:


Lo que haremos será cambiar los permisos de la key run de hklm.

De este modo, haremos que el usuario sys no pueda leer datos de esta key, pero todos los demás si.

Pasemos a la práctica:

1: Abrimos el regedit y nos vamos a
hklm\software\microsoft\windows\currentversion\run



2: Creamos un valor llamado malware de tipo sz, que
Contendrá la ruta del malware, en este caso c:\windows\system32\malware.bat



3: Cambiando los permisos

Esta es la parte más importante.

Nos situamos sobre la key run, y nos vamos a edición>permisos

Seleccionamos tu nombre de usuario( en mi caso sys), y marcamos denegar leer



Click en aceptar y...



Si!, ha desaparecido todo.

Bien, corramos la utilidad msconfig



No está!

Pueden también pasar la tool autoruns de sysinternals, que no va a mostrar la entrada malware
ni ninguna que esté en run.

Esto se debe a que, estas utilidades corren en modo usuario usan los permisos del usuario actual.



Prueva final


Bien, crearemos una cuenta de usuario
net user usuario /add



Bien, ahora toca iniciar sesión con ese usuario que hemos creado y...



Como se puede ver, se ha ejecutado el fichero malware.bat
en la cuenta del usuario usuario



Conclusión

Bien, como pudimos ver en este pequeño artículo,
se pueden ocultar entradas a un usuario,
para que este nunca se entere, pero si los demás.

Claro que, esto se puede automatizar.

Recomiendo a los programadores de c/c++, ver la api RegSetKeySecurity.
Agregar que, en este tutorial se tomó la key run,
pero sería mucho mejor utilizar por ejemplo la key ImageFileExecutionOptionns.

Aclarar también que, esto afecta a los demás usuarios,el usuario que no puede leer la key,
No será infectado.




Un abrazo!