Privilege Escalation with Autoruns
Last updated
Last updated
Aprende y practica Hacking en AWS:HackTricks Training AWS Red Team Expert (ARTE) Aprende y practica Hacking en GCP: HackTricks Training GCP Red Team Expert (GRTE)
Consejo de bug bounty: regístrate en Intigriti, una plataforma de bug bounty premium creada por hackers, para hackers! Únete a nosotros en https://go.intigriti.com/hacktricks hoy, y comienza a ganar recompensas de hasta $100,000!
Wmic se puede usar para ejecutar programas al iniciar. Ve qué binarios están programados para ejecutarse al inicio con:
Las tareas se pueden programar para ejecutarse con cierta frecuencia. Vea qué binarios están programados para ejecutarse con:
Todos los binarios ubicados en las carpetas de inicio se ejecutarán al iniciar. Las carpetas de inicio comunes son las que se enumeran a continuación, pero la carpeta de inicio se indica en el registro. Lee esto para aprender dónde.
Nota de aquí: La entrada de registro Wow6432Node indica que estás ejecutando una versión de Windows de 64 bits. El sistema operativo utiliza esta clave para mostrar una vista separada de HKEY_LOCAL_MACHINE\SOFTWARE para aplicaciones de 32 bits que se ejecutan en versiones de Windows de 64 bits.
Conocido comúnmente registro de AutoRun:
HKLM\Software\Microsoft\Windows\CurrentVersion\Run
HKLM\Software\Microsoft\Windows\CurrentVersion\RunOnce
HKLM\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Run
HKLM\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\RunOnce
HKCU\Software\Microsoft\Windows\CurrentVersion\Run
HKCU\Software\Microsoft\Windows\CurrentVersion\RunOnce
HKCU\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Run
HKCU\Software\Wow6432Npde\Microsoft\Windows\CurrentVersion\RunOnce
HKLM\Software\Microsoft\Windows NT\CurrentVersion\Terminal Server\Install\Software\Microsoft\Windows\CurrentVersion\Run
HKLM\Software\Microsoft\Windows NT\CurrentVersion\Terminal Server\Install\Software\Microsoft\Windows\CurrentVersion\Runonce
HKLM\Software\Microsoft\Windows NT\CurrentVersion\Terminal Server\Install\Software\Microsoft\Windows\CurrentVersion\RunonceEx
Las claves de registro conocidas como Run y RunOnce están diseñadas para ejecutar automáticamente programas cada vez que un usuario inicia sesión en el sistema. La línea de comando asignada como valor de datos de una clave está limitada a 260 caracteres o menos.
Ejecuciones de servicio (pueden controlar el inicio automático de servicios durante el arranque):
HKLM\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce
HKCU\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce
HKLM\Software\Microsoft\Windows\CurrentVersion\RunServices
HKCU\Software\Microsoft\Windows\CurrentVersion\RunServices
HKLM\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\RunServicesOnce
HKCU\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\RunServicesOnce
HKLM\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\RunServices
HKCU\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\RunServices
RunOnceEx:
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnceEx
HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\RunOnceEx
En Windows Vista y versiones posteriores, las claves de registro Run y RunOnce no se generan automáticamente. Las entradas en estas claves pueden iniciar programas directamente o especificarlos como dependencias. Por ejemplo, para cargar un archivo DLL al iniciar sesión, se podría usar la clave de registro RunOnceEx junto con una clave "Depend". Esto se demuestra añadiendo una entrada de registro para ejecutar "C:\temp\evil.dll" durante el arranque del sistema:
Explotación 1: Si puedes escribir dentro de cualquiera de los registros mencionados en HKLM, puedes escalar privilegios cuando un usuario diferente inicia sesión.
Explotación 2: Si puedes sobrescribir cualquiera de los binarios indicados en cualquiera de los registros dentro de HKLM, puedes modificar ese binario con una puerta trasera cuando un usuario diferente inicia sesión y escalar privilegios.
HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders
HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders
Los accesos directos colocados en la carpeta Inicio activarán automáticamente servicios o aplicaciones para que se inicien durante el inicio de sesión del usuario o el reinicio del sistema. La ubicación de la carpeta Inicio está definida en el registro tanto para el ámbito de Máquina Local como para el de Usuario Actual. Esto significa que cualquier acceso directo agregado a estas ubicaciones de Inicio asegurará que el servicio o programa vinculado se inicie después del proceso de inicio de sesión o reinicio, lo que lo convierte en un método sencillo para programar la ejecución automática de programas.
Si puedes sobrescribir cualquier carpeta de Shell [Usuario] bajo HKLM, podrás apuntarla a una carpeta controlada por ti y colocar una puerta trasera que se ejecutará cada vez que un usuario inicie sesión en el sistema, escalando privilegios.
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon
Típicamente, la clave Userinit está configurada en userinit.exe. Sin embargo, si esta clave se modifica, el ejecutable especificado también será lanzado por Winlogon al iniciar sesión el usuario. De manera similar, la clave Shell está destinada a apuntar a explorer.exe, que es el shell predeterminado para Windows.
Si puedes sobrescribir el valor del registro o el binario, podrás escalar privilegios.
HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer
HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer
Verifica la clave Run.
En el Registro de Windows bajo HKLM\SYSTEM\CurrentControlSet\Control\SafeBoot
, hay un valor AlternateShell
que está configurado por defecto a cmd.exe
. Esto significa que cuando eliges "Modo Seguro con Símbolo del Sistema" durante el inicio (presionando F8), se utiliza cmd.exe
. Pero, es posible configurar tu computadora para que inicie automáticamente en este modo sin necesidad de presionar F8 y seleccionarlo manualmente.
Pasos para crear una opción de arranque para iniciar automáticamente en "Modo Seguro con Símbolo del Sistema":
Cambia los atributos del archivo boot.ini
para eliminar las marcas de solo lectura, sistema y oculto: attrib c:\boot.ini -r -s -h
Abre boot.ini
para editar.
Inserta una línea como: multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /fastdetect /SAFEBOOT:MINIMAL(ALTERNATESHELL)
Guarda los cambios en boot.ini
.
Vuelve a aplicar los atributos originales del archivo: attrib c:\boot.ini +r +s +h
Explotación 1: Cambiar la clave del registro AlternateShell permite la configuración de un shell de comandos personalizado, potencialmente para acceso no autorizado.
Explotación 2 (Permisos de Escritura en PATH): Tener permisos de escritura en cualquier parte de la variable PATH del sistema, especialmente antes de C:\Windows\system32
, te permite ejecutar un cmd.exe
personalizado, que podría ser una puerta trasera si el sistema se inicia en Modo Seguro.
Explotación 3 (Permisos de Escritura en PATH y boot.ini): El acceso de escritura a boot.ini
permite el inicio automático en Modo Seguro, facilitando el acceso no autorizado en el próximo reinicio.
Para verificar la configuración actual de AlternateShell, utiliza estos comandos:
Active Setup es una característica en Windows que se inicia antes de que el entorno de escritorio esté completamente cargado. Prioriza la ejecución de ciertos comandos, que deben completarse antes de que el inicio de sesión del usuario continúe. Este proceso ocurre incluso antes de que se activen otras entradas de inicio, como las que se encuentran en las secciones del registro Run o RunOnce.
Active Setup se gestiona a través de las siguientes claves del registro:
HKLM\SOFTWARE\Microsoft\Active Setup\Installed Components
HKLM\SOFTWARE\Wow6432Node\Microsoft\Active Setup\Installed Components
HKCU\SOFTWARE\Microsoft\Active Setup\Installed Components
HKCU\SOFTWARE\Wow6432Node\Microsoft\Active Setup\Installed Components
Dentro de estas claves, existen varias subclaves, cada una correspondiente a un componente específico. Los valores clave de particular interés incluyen:
IsInstalled:
0
indica que el comando del componente no se ejecutará.
1
significa que el comando se ejecutará una vez por cada usuario, que es el comportamiento predeterminado si falta el valor IsInstalled
.
StubPath: Define el comando que será ejecutado por Active Setup. Puede ser cualquier línea de comando válida, como lanzar notepad
.
Perspectivas de Seguridad:
Modificar o escribir en una clave donde IsInstalled
está configurado como "1"
con un StubPath
específico puede llevar a la ejecución no autorizada de comandos, potencialmente para la escalada de privilegios.
Alterar el archivo binario referenciado en cualquier valor de StubPath
también podría lograr la escalada de privilegios, dado que se tengan permisos suficientes.
Para inspeccionar las configuraciones de StubPath
a través de los componentes de Active Setup, se pueden usar estos comandos:
Los Objetos Ayudantes del Navegador (BHO) son módulos DLL que añaden características adicionales a Internet Explorer de Microsoft. Se cargan en Internet Explorer y Windows Explorer en cada inicio. Sin embargo, su ejecución puede ser bloqueada configurando la clave NoExplorer a 1, impidiendo que se carguen con las instancias de Windows Explorer.
Los BHO son compatibles con Windows 10 a través de Internet Explorer 11, pero no son compatibles con Microsoft Edge, el navegador predeterminado en versiones más recientes de Windows.
Para explorar los BHO registrados en un sistema, puedes inspeccionar las siguientes claves del registro:
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Browser Helper Objects
HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Explorer\Browser Helper Objects
Cada BHO está representado por su CLSID en el registro, que sirve como un identificador único. La información detallada sobre cada CLSID se puede encontrar en HKLM\SOFTWARE\Classes\CLSID\{<CLSID>}
.
Para consultar los BHO en el registro, se pueden utilizar estos comandos:
HKLM\Software\Microsoft\Internet Explorer\Extensions
HKLM\Software\Wow6432Node\Microsoft\Internet Explorer\Extensions
Tenga en cuenta que el registro contendrá 1 nuevo registro por cada dll y estará representado por el CLSID. Puede encontrar la información del CLSID en HKLM\SOFTWARE\Classes\CLSID\{<CLSID>}
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Font Drivers
HKLM\SOFTWARE\WOW6432Node\Microsoft\Windows NT\CurrentVersion\Font Drivers
HKLM\SOFTWARE\Classes\htmlfile\shell\open\command
HKLM\SOFTWARE\Wow6432Node\Classes\htmlfile\shell\open\command
Ten en cuenta que todos los sitios donde puedes encontrar autoruns ya han sido buscados por winpeas.exe. Sin embargo, para una lista más completa de archivos auto-ejecutados podrías usar autoruns de sysinternals:
Encuentra más Autoruns como registros en https://www.microsoftpressstore.com/articles/article.aspx?p=2762082&seqNum=2
Consejo de recompensas por errores: regístrate en Intigriti, una plataforma de recompensas por errores premium creada por hackers, para hackers! Únete a nosotros en https://go.intigriti.com/hacktricks hoy, y comienza a ganar recompensas de hasta $100,000!
Aprende y practica Hacking en AWS:HackTricks Training AWS Red Team Expert (ARTE) Aprende y practica Hacking en GCP: HackTricks Training GCP Red Team Expert (GRTE)