Privilege Escalation with Autoruns
Dica de recompensa por bugs: inscreva-se no Intigriti, uma plataforma premium de recompensa por bugs criada por hackers, para hackers! Junte-se a nós em https://go.intigriti.com/hacktricks hoje e comece a ganhar recompensas de até $100.000!
WMIC
Wmic pode ser usado para executar programas na inicialização. Veja quais binários estão programados para serem executados na inicialização com:
Tarefas Agendadas
Tarefas podem ser agendadas para serem executadas com certa frequência. Veja quais binários estão agendados para serem executados com:
Pastas
Todos os binários localizados nas pastas de inicialização serão executados na inicialização. As pastas de inicialização comuns são as listadas a seguir, mas a pasta de inicialização é indicada no registro. Leia isso para saber onde.
Registro
Nota daqui: A entrada do registro Wow6432Node indica que você está executando uma versão do Windows de 64 bits. O sistema operacional usa essa chave para exibir uma visualização separada de HKEY_LOCAL_MACHINE\SOFTWARE para aplicativos de 32 bits que são executados em versões do Windows de 64 bits.
Execuções
Registro de AutoRun comumente conhecido:
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
Chaves de registro conhecidas como Run e RunOnce são projetadas para executar automaticamente programas toda vez que um usuário faz login no sistema. A linha de comando atribuída como valor de dados de uma chave é limitada a 260 caracteres ou menos.
Execuções de serviço (podem controlar a inicialização automática de serviços durante a inicialização):
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
No Windows Vista e versões posteriores, as chaves de registro Run e RunOnce não são geradas automaticamente. As entradas nessas chaves podem iniciar programas diretamente ou especificá-los como dependências. Por exemplo, para carregar um arquivo DLL no logon, pode-se usar a chave de registro RunOnceEx juntamente com uma chave "Depend". Isso é demonstrado adicionando uma entrada de registro para executar "C:\temp\evil.dll" durante a inicialização do sistema:
Explorar 1: Se você puder escrever dentro de qualquer um dos registros mencionados dentro de HKLM, você pode elevar privilégios quando um usuário diferente fizer login.
Explorar 2: Se você puder sobrescrever qualquer um dos binários indicados em qualquer um dos registros dentro de HKLM, você pode modificar esse binário com uma porta dos fundos quando um usuário diferente fizer login e elevar privilégios.
Caminho de Inicialização
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
Atalhos colocados na pasta Startup irão automaticamente acionar serviços ou aplicativos para iniciar durante o logon do usuário ou reinicialização do sistema. A localização da pasta Startup é definida no registro para os escopos Local Machine e Current User. Isso significa que qualquer atalho adicionado a essas localizações específicas da Startup garantirá que o serviço ou programa vinculado seja iniciado após o processo de logon ou reinicialização, tornando-se um método direto para agendar programas para serem executados automaticamente.
Se você puder sobrescrever qualquer [User] Shell Folder em HKLM, você poderá apontá-lo para uma pasta controlada por você e colocar uma porta dos fundos que será executada sempre que um usuário fizer login no sistema, escalando privilégios.
Chaves do Winlogon
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon
Normalmente, a chave Userinit é definida como userinit.exe. No entanto, se esta chave for modificada, o executável especificado também será lançado pelo Winlogon após o login do usuário. Da mesma forma, a chave Shell deve apontar para explorer.exe, que é o shell padrão do Windows.
Se conseguir sobrescrever o valor do registro ou o binário, poderá elevar os privilégios.
Configurações de Política
HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer
HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer
Verifique a chave Run.
AlternateShell
Alterando o Prompt de Comando do Modo de Segurança
No Registro do Windows em HKLM\SYSTEM\CurrentControlSet\Control\SafeBoot
, há um valor AlternateShell
definido por padrão como cmd.exe
. Isso significa que quando você escolhe "Modo de Segurança com Prompt de Comando" durante a inicialização (pressionando F8), cmd.exe
é usado. No entanto, é possível configurar o computador para iniciar automaticamente nesse modo sem precisar pressionar F8 e selecioná-lo manualmente.
Passos para criar uma opção de inicialização para iniciar automaticamente no "Modo de Segurança com Prompt de Comando":
Altere os atributos do arquivo
boot.ini
para remover as flags de somente leitura, sistema e oculto:attrib c:\boot.ini -r -s -h
Abra o
boot.ini
para edição.Insira uma linha como:
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /fastdetect /SAFEBOOT:MINIMAL(ALTERNATESHELL)
Salve as alterações no
boot.ini
.Reaplique os atributos originais do arquivo:
attrib c:\boot.ini +r +s +h
Exploração 1: Alterar a chave de registro AlternateShell permite a configuração personalizada do shell de comando, potencialmente para acesso não autorizado.
Exploração 2 (Permissões de Escrita no PATH): Ter permissões de escrita em qualquer parte da variável de sistema PATH, especialmente antes de
C:\Windows\system32
, permite executar umcmd.exe
personalizado, que poderia ser uma porta dos fundos se o sistema for iniciado no Modo de Segurança.Exploração 3 (Permissões de Escrita no PATH e boot.ini): Acesso de escrita ao
boot.ini
permite a inicialização automática no Modo de Segurança, facilitando o acesso não autorizado na próxima reinicialização.
Para verificar a configuração atual do AlternateShell, use estes comandos:
Componente Instalado
O Active Setup é um recurso no Windows que inicia antes do ambiente de desktop ser totalmente carregado. Ele prioriza a execução de certos comandos, que devem ser concluídos antes do logon do usuário prosseguir. Esse processo ocorre mesmo antes de outras entradas de inicialização, como aquelas nas seções de registro Run ou RunOnce, serem acionadas.
O Active Setup é gerenciado através das seguintes chaves de 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 dessas chaves, existem várias subchaves, cada uma correspondendo a um componente específico. Os valores-chave de interesse particular incluem:
IsInstalled:
0
indica que o comando do componente não será executado.1
significa que o comando será executado uma vez para cada usuário, que é o comportamento padrão se o valorIsInstalled
estiver ausente.
StubPath: Define o comando a ser executado pelo Active Setup. Pode ser qualquer linha de comando válida, como iniciar o
notepad
.
Insights de Segurança:
Modificar ou escrever em uma chave onde
IsInstalled
está definido como"1"
com umStubPath
específico pode levar à execução não autorizada de comandos, potencialmente para escalonamento de privilégios.Alterar o arquivo binário referenciado em qualquer valor de
StubPath
também poderia alcançar escalonamento de privilégios, desde que haja permissões suficientes.
Para inspecionar as configurações de StubPath
em componentes do Active Setup, esses comandos podem ser usados:
Objetos Auxiliares do Navegador
Visão geral dos Objetos Auxiliares do Navegador (BHOs)
Objetos Auxiliares do Navegador (BHOs) são módulos DLL que adicionam recursos extras ao Internet Explorer da Microsoft. Eles são carregados no Internet Explorer e no Windows Explorer a cada inicialização. No entanto, sua execução pode ser bloqueada definindo a chave NoExplorer como 1, impedindo que sejam carregados com instâncias do Windows Explorer.
Os BHOs são compatíveis com o Windows 10 por meio do Internet Explorer 11, mas não são suportados no Microsoft Edge, o navegador padrão em versões mais recentes do Windows.
Para explorar os BHOs registrados em um sistema, você pode inspecionar as seguintes chaves do registro:
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Browser Helper Objects
HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Explorer\Browser Helper Objects
Cada BHO é representado por seu CLSID no registro, servindo como um identificador único. Informações detalhadas sobre cada CLSID podem ser encontradas em HKLM\SOFTWARE\Classes\CLSID\{<CLSID>}
.
Para consultar os BHOs no registro, esses comandos podem ser utilizados:
Extensões do Internet Explorer
HKLM\Software\Microsoft\Internet Explorer\Extensions
HKLM\Software\Wow6432Node\Microsoft\Internet Explorer\Extensions
Observe que o registro conterá 1 novo registro para cada dll e será representado pelo CLSID. Você pode encontrar as informações do CLSID em HKLM\SOFTWARE\Classes\CLSID\{<CLSID>}
Drivers de Fonte
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Font Drivers
HKLM\SOFTWARE\WOW6432Node\Microsoft\Windows NT\CurrentVersion\Font Drivers
Comando Aberto
HKLM\SOFTWARE\Classes\htmlfile\shell\open\command
HKLM\SOFTWARE\Wow6432Node\Classes\htmlfile\shell\open\command
Opções de Execução de Arquivo de Imagem
SysInternals
Observe que todos os locais onde você pode encontrar autoruns já foram pesquisados pelo winpeas.exe. No entanto, para uma lista mais abrangente de arquivos autoexecutados, você pode usar o autoruns do SysInternals:
Mais
Encontre mais Autoruns como registros em https://www.microsoftpressstore.com/articles/article.aspx?p=2762082&seqNum=2
Referências
Dica de recompensa por bugs: inscreva-se no Intigriti, uma plataforma premium de recompensas por bugs criada por hackers, para hackers! Junte-se a nós em https://go.intigriti.com/hacktricks hoje e comece a ganhar recompensas de até $100,000!
Last updated