Ser curioso NO es una opción (#USBOblivion ¿Una herramienta #Antiforense?) Parte III

Hola secuaces:

Vamos con la tercera parte de esta serie de entradas dedicada a mi primera vez, a la charla de este Rookie, (Espero que no sea la última), en #CONPilar17  y en #EastMadH4ck.

En la entrada anterior, ya pudimos ver qué pasó en el Sistema donde se prudujo el Incidente de Seguridad.

Y dijimos, dije, que debemos ser curiosos para saber cómo funcionan las cosas, para saber qué hacen de verdad. Que tenemos que responder a tres sencillas preguntas: ¿Qué dice que hace?¿Qué vemos que hace?¿Qué hace realmente?

Comenzamos visitando su sitio web. ¿Nos fiamos y nos lo creemos? Yo no.

Así pues, comenzamos a responder a la primera pregunta: ¿Qué dice que hace?

¿Por dónde empezamos? Por su código fuente. Venga. Vale. Sabéis de sobra que no soy programador. Pero, de verdad ¿Y? No saber picar código no es excusa para no leerlo, porque de él se pueden sacar muchas cosas interesantes. Podemos comenzar por leer los comentarios, podemos entender alguna línea o incluso a comprender alguna función.

Empezamos por algunos comentarios

// Files to delete (Ficheros a eliminar)
// Event logs to clear (Registros de eventos a limpiar)
// Запустить себя как админа (Comenzar como administrador)
// Запуск #1: с привелегиями (Operación nº 1: con privilegios)
// Запуск #2: без привелегий (Operación nº 2: sin privilegios)
// Для перечисления всех процессов (Para obtener una lista de todos los procesos)
// Для отключения дисков (Para desactivar el disco)
// Нужен токен с имперсонацией (¿Necesita un token de suplantación?)
// Вход под системным аккаунтом (Inicie sesión con la cuenta del sistema)
// Перечисление всех подключей (Enumerar todas las subclaves)
// Удаление всех подключей (Eliminar todas las subclaves)
// Удаление самого ключа (Eliminación de la clave)
// Симуляция (Simulación)
// Creation of System Restore Point (Creación de un punto de restauración)

De las cientos y cientos de líneas de código que tiene disponible esta herramienta, sólo con leer los comentarios ya podemos deducir qué dice que hace. Y estos son sólo algunos de ellos.

Veo también un «RunAsSystem». No sé programar, pero esto ¿Qué puede significar? Que se le da a esta herramienta el permiso para que se ejecute con la cuenta local System.

 

Tened en cuenta que la cuenta de Sistema y la cuenta de Administrador, tienen los mismos privilegios. ¿Realmente es necesario conceder ese permiso?

Seguimos con más comentarios: «Ficheros a eliminar». Podemos ver qué ficheros dice que va a eliminar.

Y ¿Por qué no? Como somos así de curiosos, nos montamos en una Máquina Virtual un Sistema idéntico al del objeto del análisis y los buscamos.

Lo primero que vemos que dice que elimina, son los ficheros «setup*.log». Usamos en el Símbolo del Sistema la línea

dir /s setup*.log

Y de esta búsqueda, obtenemos que dice que va a eliminar los ficheros, setupact.log, setuperr.log, setupapi.app.log, setupapi.dev.log, setupapi.offline.log, que se encuentran en varias ubicaciones, C:\Windows, C:\Windows\inf, C:\Windows\Panther, C:\Windows\Panther\UnattendGC, C:\Windows\System32\sysprep\Panther\IE. En verdad os digo, que hay ficheros de las que no conocía ni su existencia 😉

Seguimos buscando los siguientes ficheros que va a eliminar, «\inf\setupapi*.log»

dir /s setupapi*.log

Y, tras esta búsqueda, vemos que pretende eliminar los ficheros, setupapi.app.log, setupapi.dev.log y setupapi.offline.log… otra vez. Guau!! Va a eliminar los mismos ficheros dos veces. Cómo mola.

Seguimos buscando el siguiente fichero que dice que va a eliminar, «\inf\INFCACHE.1»

dir /s INFCACHE.1

Pues sí que vemos un fichero InfCache.1, pero no dentro del directorio «\Windows\inf», como dice que quiere hacer, si no dentro del directorio «\Windows\System32\DriverStore»

Para terminar de buscar estos ficheros que dice que pretende eliminar, vamos a por el último, «\System32\wbem\Logs\wmiprov.log».

dir /s wmiprov.log

Pues en este caso, no he encontrado ninguna coincidencia con ese fichero en concreto.

Pero ¿Qué son estos ficheros que dice que va a eliminar? Ni más, ni menos, que descripción de errores y archivos de registro, de los diferentes ‘escenarios’ de Windows. Archivos de Registros.

Pero veamos uno a uno estos ficheros:

«setupact.log». Archivo de registro principal para la mayoría de los errores producidos durante el proceso de instalación de Windows. Contiene información acerca de las acciones de instalación durante la instalación.

«setuperr.log». Lista de errores de nivel alto que se producen durante la fase de la instalación. Contiene información sobre los errores de instalación durante la instalación.

«setupapi.app.log» y «setupapi.dev.log». Logs de dispositivos Plug and Play conectados e instalados.

Contienen información acerca de los dispositivos Plug and Play, la instalación del controlador y la instalación de la aplicación.

«Setupapi.offline.log». Contiene errores de controladores durante la fase de la instalación.

Siguiendo con la interpretación de los comentarios, podemos ver que pretende ‘limpiar’ los eventos que vemos en la siguiente imagen.

Igual que antes, los buscamos, uno por uno.

dir /s «Microsoft-Windows-DeviceSetupManager/Operational.evtx»

No existe.

dir /s «Microsoft-Windows-DeviceSetupManager/Admin.evtx»

No existe.

dir /s «Microsoft-Windows-Kernel-PnP/Configuration.evtx»

No existe.

dir /s «Microsoft-Windows-Kernel-ShimEngine/Operational.evtx»

No existe.

dir /s «Microsoft-Windows-DriverFramworks-UserMode/Operational.evtx»

No existe.

Todos estos eventos que dice que limpia, no existen en este Sistema, en este momento. No quiere decir que no existan en otro momento o en otra versión del Sistema Operativo.

Buscamos los restantes.

dir /s «HardwareEvents.evtx»

dir /s «Application.evtx»

dir /s «Security.evtx»

dir /s «System.evtx»

Vemos que sí encuentra estos otros cuatro ficheros de eventos: «HardwareEvents», «Application», «Security» y «System».

Pero ¿Qué son estos eventos? Registros de Windows y registros de aplicaciones y servicios. Registros.

Pero ¿Qué información contienen estos eventos? El proceso que generó el evento, el identificador del evento, el usuario, la fecha y la hora, la relación entre eventos…

Seguimos viendo qué dice que hace, com más comentarios, con las claves del registro de Windows. Concretamente de los árboles System y Software.

Podemos apreciar la cantidad ingente de información que dice que va a eliminar del Registro de Windows.

 

¿Qué son estos ficheros? Una base de datos definida por el Sistema. Registros.

¡¡Y mucho ojo con su modificación!!

Para terminar de ver qué hace, (que ya va siendo hora), nos vamos a algo que llama mi atención. Los procesos. hemos visto que pretende ejecutarse con la cuenta local System. ¿Por qué? Veamos qué procesos va a llamar.

Pues, según su código, va a llamar a «lsass.exe», a «smss.exe», a «csrss.exe», a «services.exe» y a «winlogon.exe»

Veamos qué son estos procesos, uno a uno. Para ello, vamos a usar una muy buena referencia: poster_2014_find_evil.pdf

Responsable de autenticar usuarios, Con «wininit» como proceso padre.

Responsable de crear nuevas sesiones, Con «System» como proceso padre.

Gestiona los procesos, Con «smss» como proceso padre.

Responsable de los servicios y tareas programas, Con «wininit» como proceso padre.

Gestiona los inicios de sesión, Con «smss» como proceso padre.

Bufff!! Casi nada!! ¿No creéis? ¿Veis la relación que hay entre ellos? ¿Y su nivel de ejecución?

Pues con esto… damos por respondida la primera pregunta de todas: ¿Qué dice que hace? Y, sinceramente, se me han quitado las ganas de usarla.

 

Os pongo por aquí, como el que no quiere la cosa, el vídeo a mi exposición 😉

Esto es todo, por ahora. Nos leemos en la siguiente entrada. Se despide este minion, entregado y leal, de vosotros… por ahora.

Marcos @_N4rr34n6_