hacktricks/forensics/basic-forensic-methodology/windows-forensics/windows-processes.md
2023-06-06 18:56:34 +00:00

5 KiB

smss.exe

Gerenciador de sessão.
A sessão 0 inicia o csrss.exe e o wininit.exe (serviços do SO) enquanto a sessão 1 inicia o csrss.exe e o winlogon.exe (sessão do usuário). No entanto, você deve ver apenas um processo dessa binário sem filhos na árvore de processos.

Além disso, sessões diferentes de 0 e 1 podem significar que as sessões RDP estão ocorrendo.

csrss.exe

Processo do Subsistema de Execução Cliente/Servidor.
Gerencia processos e threads, disponibiliza a API do Windows para outros processos e também mapeia letras de unidade, cria arquivos temporários e manipula o processo de desligamento.

Há um executando na Sessão 0 e outro na Sessão 1 (portanto, 2 processos na árvore de processos). Outro é criado por nova sessão.

winlogon.exe

Processo de Logon do Windows.
É responsável pelos logons/logoffs do usuário. Ele inicia o logonui.exe para solicitar nome de usuário e senha e, em seguida, chama o lsass.exe para verificá-los.

Em seguida, ele inicia o userinit.exe, que é especificado em HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon com a chave Userinit.

Além disso, o registro anterior deve ter o explorer.exe na chave Shell ou pode ser abusado como um método de persistência de malware.

wininit.exe

Processo de Inicialização do Windows.
Inicia services.exe, lsass.exe e lsm.exe na Sessão 0. Deve haver apenas 1 processo.

userinit.exe

Aplicativo de Logon do Userinit.
Carrega o ntduser.dat em HKCU e inicializa o ambiente do usuário e executa scripts de logon e GPO.

Ele inicia o explorer.exe.

lsm.exe

Gerenciador de Sessão Local.
Trabalha com smss.exe para manipular sessões de usuário: logon/logoff, início de shell, bloqueio/desbloqueio de desktop, etc.

Depois do W7, lsm.exe foi transformado em um serviço (lsm.dll).

Deve haver apenas 1 processo no W7 e a partir deles um serviço executando a DLL.

services.exe

Gerenciador de Controle de Serviço.
Carrega serviços configurados como início automático e drivers.

É o processo pai de svchost.exe, dllhost.exe, taskhost.exe, spoolsv.exe e muitos outros.

Os serviços são definidos em HKLM\SYSTEM\CurrentControlSet\Services e este processo mantém um banco de dados em memória das informações do serviço que podem ser consultadas por sc.exe.

Observe como alguns serviços serão executados em um processo próprio e outros serão compartilhados em um processo svchost.exe.

Deve haver apenas 1 processo.

lsass.exe

Subsistema de Autoridade de Segurança Local.
É responsável pela autenticação do usuário e criação dos tokens de segurança. Ele usa pacotes de autenticação localizados em HKLM\System\CurrentControlSet\Control\Lsa.

Ele escreve no log de eventos de segurança e deve haver apenas 1 processo.

Lembre-se de que esse processo é altamente atacado para extrair senhas.

svchost.exe

Processo de Hospedagem de Serviço Genérico.
Hospeda vários serviços DLL em um processo compartilhado.

Normalmente, você encontrará que o svchost.exe é iniciado com a flag -k. Isso iniciará uma consulta ao registro HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Svchost onde haverá uma chave com o argumento mencionado em -k que conterá os serviços a serem iniciados no mesmo processo.

Por exemplo: -k UnistackSvcGroup iniciará: PimIndexMaintenanceSvc MessagingService WpnUserService CDPUserSvc UnistoreSvc UserDataSvc OneSyncSvc

Se a flag -s também for usada com um argumento, o svchost será solicitado a iniciar apenas o serviço especificado neste argumento.

Haverá vários processos de svchost.exe. Se algum deles não estiver usando a flag -k, isso é muito suspeito. Se você descobrir que o services.exe não é o pai, isso também é muito suspeito.

taskhost.exe

Este processo atua como um host para processos em execução a partir de DLLs. Ele também carrega os serviços que estão sendo executados a partir de DLLs.

No W8, isso é chamado de taskhostex.exe e no W10 de taskhostw.exe.

explorer.exe

Este é o processo responsável pela área de trabalho do usuário e pelo lançamento de arquivos via extensões de arquivo.

Deve ser gerado apenas 1 processo por usuário logado.

Isso é executado a partir do userinit.exe, que deve ser encerrado, portanto, nenhum pai deve aparecer para este processo.

Capturando Processos Maliciosos

  • Está sendo executado no caminho esperado? (Nenhum binário do Windows é executado a partir de um local temporário)
  • Está se comunicando com IPs estranhos?
  • Verifique as assinaturas digitais (os artefatos da Microsoft devem estar assinados)
  • Está escrito corretamente?
  • Está sendo executado sob o SID esperado?
  • O processo pai é o esperado (se houver)?
  • Os processos filhos são os esperados? (sem cmd.exe, wscript.exe, powershell.exe..?)