Registro de Windows. Una mirada Forense con tintes de Hacking Ético.

¡Muy buenas a todos amigos! Os pido perdón por la demora en volver a escribir, pero por favor creedme cuando os digo que ha sido un mes de LOCOS y no he tenido apenas tiempo para nada. Aún estoy por averiguar porque todo el mundo se pone a llamar a tu puerta a la vez. En fin, misterios de la vida….

A lo que vamos, enlazando con mi anterior post de Análisis de los registros de eventos en Windows y con los posts del gran @fpalenzuela aquí y aquí, me gustaría, con vuestro permiso of course, el seguir hablando del registro de Windows en general. Amigo InSoMnIA esta ronda, como te prometí, va por ti…

Quede claro que sigue sin gustarme NADA este sistema operativo Windows (esta es una opinión estrictamente personal, no digo que funcione mal, tan solo que a mí, no me gusta), pero es obvio que es el más extendido en Escritorio y es el que te vas en encontrar más pronto que tarde, cuando te toque realizar un análisis forense o un pentest, motivo por el cual es condición sine qua non podéis continuar correctamente o a costa de perder un enorme flujo de información y ¿por qué no decirlo? Posibilidades…

Vale, genial esto está muy bien, pero ¿cuál es su función?

Veamos, es una base de datos jerárquica que juega un papel vital en la configuración del sistema operativo. Dentro lleva todos los parámetros del sistema y las preferencias del usuario (ya sabéis, ese enemigo no declarado…). Es mucho más que un conjunto de datos, es la puerta abierta de par en par a corazón del equipo.

El registro comprende varias secciones lógicas o «subclaves o subárboles»). Las subclaves normalmente se nombran según las definiciones de sus API de Windows, las cuales empiezan siempre por «HKEY». Por ejemplo, con frecuencia se abrevian en un nombre de tres o cuatro letras que empieza con «HK» (por ejemplo  HKCU por HKEY_CURRENT_USER). Técnicamente, se puede decir que se trata de indicadores predefinidos (con valores constantes predefinidos) para claves específicas que se mantienen en la memoria o se almacenan en archivos de la subclave, almacenados en el sistema de archivos local y cargados por el núcleo del sistema en el momento del arranque del sistema, y que, a continuación se comparten (con varios derechos de acceso) entre todos los procesos que se están ejecutando en el sistema.

Estructura

Su estructura se basa en cinco claves raíz:

HKEY_CLASSES_ROOT (HKCR): Almacena todos los elementos relacionado a objetos COM y la información de registro de los objetos

HKEY_CURRENT_USER (HKCU): Almacena todas las configuraciones relacionadas a a la cuenta del usuario que haya iniciado una sesión en el ordenador

HKEY_LOCAL_MACHINE (HKLM): Todos los datos relativos al sistema

HKEY_USERS (HKU): Almacena todas las configuraciones de todos los usuarios del equipo

HKEY_CURRENT_CONFIG (HKCC): Almacena información acerca del perfil actual de hardware del pc

HKEY_PERFORMANCE_DATA: Aquí se guarda información del rendimiento del sistema.

¡Espera! ¿No habías indicado que eran cinco claves raíz? Yo cuento seis…

Cierto, y cuentas muy bien, tan solo las cinco primeras son visibles. Te cuento las seis a modo didáctico, pero en principio, tú solamente verás y podrás manipular las cinco primeras.

La razón de ser de esta sexta clave es que cada componente de software crea claves para sus objetos y contadores cuando se instala, y escribe datos del contador mientras se ejecuta. Estos datos no se almacenan en el Registro, aunque el Registro se utiliza para tener acceso a ellos. En su lugar, la llamada a las funciones de Registro mediante HKEY_PERFORMANCE_DATA hace que el sistema reúna los datos de los administradores de objeto de sistema adecuados.

CUIDADO: Debes tener en cuenta que en esta clave no se puede escribir normalmente; si se intentara editar en ella, se producirá una IOException.

¡Uff! Vaya peñazo eh… No os preocupéis, de momento vamos a dejar por ahora la parte teórica y vamos a embarrarnos un poco en breve, que es lo que nos gusta ¿a qué si? Paciencia, un poco mas de teórica y nos ponemos al lío.

¿Dónde se almacenan?

Una sección del Registro (cualquiera de ellas) en el fondo, es un grupo de claves, subclaves y valores del Registro que cuentan con un conjunto de archivos auxiliares que contienen copias de seguridad de sus datos. Los archivos auxiliares de todas las secciones excepto HKEY_CURRENT_USER están en la carpeta %SystemRoot%\System32\Config. Esta sección se guarda en %SystemRoot%\Profiles\nombreDeUsuarioque corresponda.

A ver… A nivel forense, ¿qué queréis que os diga? Esto debemos analizarlo si o si…

Observad lo que tenemos aquí, esta info para un forense en valiosísima. Podéis probar a parsearla con Regripper (https://github.com/keydet89/RegRipper2.8) y veréis las cositas tan chulas que sacáis. Probad, os va a encantar. Podréis encontrar desde dispositivos usb conectados en la vida del equipo, actualizaciones, software instalado… De verdad, probad y veréis la importancia de la información que se guarda ahí. Los posts del amigo @fpalenzuela antes nombrados os serán de gran ayuda para ello.

Bueno… Hasta aquí más o menos, se ha podido mostrar un poco, realmente muy poco de todo lo que se puede extraer a nivel forense, el problema que se plantea al escribir este tipo de posts es saber cuándo parar a fin de no saturar a quien lo lee y desmotivarlo a no seguir el/ella por su cuenta. Volveré sobre este tema más adelante, os lo prometo, de momento os muestro unas pinceladas para animar a que probéis y aprendáis y en breve volveré por estos temas profundizando aún más.

Pero yo había hablado de forense y de pentest y de momento solo ha salido el tema de forense. He elegido este post para teorizar y compartir una idea con vosotros.

Obviamente analista forense y auditor de seguridad son trabajos muy distintos entre si, pero un buen pentester que conozca bien su trabajo, podría ser ser un gran forense ya que conoce los posibles vectores de entrada en el sistema, del mismo modo que un analista forense que sepa de su trabajo también acertaría en bastantes momentos como pentester. ¿A dónde quiero llegar con esto?

Muy sencillo, yo creo que tenemos que, independientemente de nuestro entorno laboral (sea analista forense o sea pentester) aprender a mirar este fascinante mundo al menos desde esas dos perspectivas. Esto nos hará mucho mas eficaces en cualquiera de ellos. He elegido este post para esta pequeña divagación,  ya que su temática es un buen ejemplo de ello. El conocimiento del registro nos hará unos grandes analistas forenses y unos excelentes auditores de seguridad.

Ahora para relajarnos un poco después de todo esta “charla” vamos a jugar, vamos a ser chicos malos, malotes y vamos a ver qué podemos hacer modificando valores del registro. Quiero dejar claro que lo que vais a ver después de estas líneas son juegos en un entorno controlado, pero son juegos reales que usan los cyberdelincuentes, el malware, incluso (y esto lo he comprobado yo personalmente en mi día a día) lo llegar a usar los insiders. Así pues, no perdamos de vista esto por favor en nuestro trabajo diario.

Modifiquemos valores del registro y veamos sus consecuencias, ¿os parece?

¿Cómo lo hacemos?

Pues muy fácil (como todo lo de Windows, para que nos vamos a engañar), vas a Buscar Aplicaciones y archivos del menú Inicio y escribe: regedit.

¡Listo! Nos pedirá permiso ya que necesita esa autorización y a funcionar…

 

No parece mucha cosa ¿verdad? Veréis que pronto cambiáis de idea…

Pero así sería muy fácil, mejor lo hacemos un poco mas interesante, ¿quién quiere interfaz gráfica? Usemos powershell…

Planteamiento: A través de la técnica que más os guste de todas las que hay, hemos sido capaces de obtener una consola de Powershell dentro de la máquina víctima.

Supongamos que quiero eliminar una entrada del registro en concreto para “limpiar” mis huellas malvadas y malignas:

Tan fácil como:

Remove-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion –Name nombreclaveoregistroaborrar

Pequeños tips:

Creación De Claves:

New-Item -path hkcu:\Console -Name Nombreclave

Creación De Valores:

 New-ItemProperty -path hkcu:/Console/Nombreclave -propertyType DWord -Name Tipo-DWord -value 0

Para que puedas vaciar el contenido de claves y valores:

Clear-ItemProperty -path hkcu:/Console/Nombreclave

Y así podríamos continuar con muchas mas opciones, estas son tan solo una pequeña muestra. Imaginad lo que un pequeño script en powershell podría hacer en una máquina vulnerada o  bien que tuviéramos acceso físico a ella. Da muchas ideas ¿verdad? Os recomiendo buscar información sobre todas las posibilidades que esta herramienta ofrece, os va a asombrar si no las conocéis.

Esto es todo, no tiene más. Si sabes dónde buscar, con el suficiente conocimiento (que tampoco es tanto),  un cyberdelincuente o un malware (de hecho escribir en registro lo usa MUUUUCHO el malware) o un usuario maligno pueden manipular prácticamente TODO sin más complicación y nos pueden dificultar mucho más nuestra labor como sysadmin o forense.

Ejemplos prácticos:

DISCLAIMER:  Ningún PC sufrió daño alguno durante estas pruebas…

Si quieres recuperar una entrada específica de una clave del Registro, puedes usar uno de los diversos métodos posibles existentes.

En este ejemplo, vas a encontrar el valor de DevicePath en HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion.

Con Get-ItemProperty, use el parámetro Path para especificar el nombre de la clave y el parámetro Name para especificar el nombre de la entrada DevicePath.

Puedes listar el contenido de una clave, por ejemplo de HKEY_CURRENT_USER (HKCU):

Puedes usar el parámetro Force para listar elementos ocultos y el parámetro Recurse para poder expandir todo el árbol completo de registro desde ese punto:

Y media hora más tarde…

Con esto, al principio sé que es un poco lioso, pero os quiero mostrar que con una powershell dentro de un equipo Windows se pueden hacer barbaridades con casi total impunidad y de una manera muy limpia para un usuario novel o no suficientemente experto.

Por ejemplo, como ya sabemos dónde se guarda el registro relativo a, por poner una muestra sin importancia, el antivirus nativo de Windows (defender), podríamos crear una clave dentro de su registro del tipo DWORD, ponerle como nombre “DisableAntiSpyware” y como valor : 1.

Una ayudita de Microsoft para que sepáis cuál es el tipo de ProperType a elegir ;-):

¿Qué crees que pasaría?

¿Quieres hacer la prueba?

Al lío…

¿Qué ha pasado? Amigo mío, el antivirus se ha desactivado…

No puede ser… ¿O si?

Veamos, vamos al editor del registro desde ahí buscamos donde está el registro de defender:

Ha aparecido una clave nueva, al mirar su contenido se aprecia que es 1:

Intentamos abrir el antivirus y…

No está funcionando. Así de simple.

Imaginar del mismo modo que este, todas las posibilidades que tenéis, por poner unas pocas:

En el firewall:

  1. Autorizar todo tipo de compartición de archivos.
  2. Autorizar trazas.
  3. Autorizar o bloquear puertos.
  4. Definir excepciones de puertos entrantes.
  5. Definir excepciones de puertos entrantes
  6. Impedir notificaciones

En directivas de red:

  1. Deshabilitar compartir en red
  2. Administrar TODA LA COMUNICACIÓN DE INTERNET
  3. Deshabilitar informe de errores

En periféricos:

  1. Habilitar o no Autorun
  2. Instalar controladores sin control del administrador
  3. Saltarse la firma del código de los controladores de periféricos.

En Seguridad:

  1. Restringir o no descarga de archivos
  2. Bloqueo de protocolos de red
  3. Seguridad del bloqueo de la zona del Equipo Local
  4. Crear usuarios
  5. Dar permisos a usuarios sin control
  6. Borrar trazas de cualquier registro.

En fin, para que seguir, tendría control total sobre todo el equipo ya que aquí se guardan TODAS las configuraciones, no creo que haga falta decir mucho mas acerca de las posibilidades, ¿verdad?

Recordad esto cuando habilitéis edición de macros, ejecutéis cosas bajadas de internet o enchuféis usb encontrados cerca de vuestro puesto de trabajo. Usad en sentido común y disfrutad de la tecnología.

Y con esto ya basta por hoy, para ser una introducción creo que ya vale. Un saludo y hasta la próxima.

Una respuesta a “Registro de Windows. Una mirada Forense con tintes de Hacking Ético.”

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *