Como encontrar a data de criação de uma conta de usuário local?

8

Gostaria de obter a data de criação de uma conta de usuário local (Win 7, se for o caso). Eu olhei para os seguintes objetos WMI (e Google, é claro):

Win32_UserAccount Win32_NetworkLoginProfile

Os objetos retornados NetworkLoginProfiletêm a última hora de login, mas não a data de criação. A verificação da Date Createdpropriedade da pasta de perfil fornece apenas a data em que a pasta foi criada, não necessariamente a própria conta.

MDMoore313
fonte
2
Para adicionar do bate-papo: Eu posso ver a seção do usuário na data de criação do registro, mas isso é baseado apenas no primeiro login, não na data de criação da conta.
TheCleaner

Respostas:

10

Os dados estão no SAM, mas não parecem ser documentados publicamente pela Microsoft e não estou encontrando uma API oficial para recuperá-los. Eu posso ver, olhando para o código-fonte do chntpwutilitário que o valor está armazenado na chave de registro "F" de cada conta. Quoth o código fonte:

#define USER_F_PATH "\\SAM\\Domains\\Account\\Users\\%08X\\F"

struct user_F {
  ...
  char t_creation[8]; /* Time of account creation */
  ...
}

O projeto forrense regripper possui um plug-in, samparse , que informará a data de criação da conta.

Uma ferramenta forense provavelmente não é o que você deseja, mas parece que a Microsoft não está facilitando.


Ao pesquisar isso, achei divertido que um MVP da Microsoft não soubesse que os dados de criação da conta estão armazenados no SAM . Para seu benefício, talvez ele não esteja fora do chntpwutilitário, e foi aí que iniciei minha pesquisa por informações sobre estruturas SAM não documentadas.

Evan Anderson
fonte
suas idéias são intrigantes para mim e eu desejo --- assinar seu boletim --- , quero dizer aprender a usar essa ferramenta para tentar fazer isso sozinho. Você, por acaso, teria algum vínculo do qual me valesse para esse fim? (Damn you markdown!)
HopelessN00b
Apenas o link para o projeto regripper acima. Eu não o usei pessoalmente, mas parece razoavelmente fácil de lidar. Parece que ele já foi incluído no Kali Linux agora ( bugs.kali.org/print_bug_page.php?bug_id=246 ) se você preferir apenas inicializar um CD ao vivo em vez de instalar um ambiente Perl para executar o regripper. Aparentemente, havia um livro escrito em torno dessas ferramentas. Parece caro: amazon.com/Windows-Registry-Forensics-Advanced-Forensic/dp/… Eu provavelmente deveria brincar com essas ferramentas em algum momento - simplesmente não tive a oportunidade de fazê-lo.
Evan Anderson
Eu acho que Evan pode dever Richard Mueller um pedido de desculpas;)
charleswj81
Não tentei as ferramentas. Você está percebendo que a data não está sendo preenchida?
Evan Anderson
Ainda não tenho certeza se você viu minha própria resposta abaixo, mas o campo chamado "data de criação" é realmente "senha alterada pela última vez", que obviamente terá o mesmo valor até a primeira alteração de senha de criação pós-conta.
precisa saber é o seguinte
3

A única maneira de realmente saber seria habilitar a auditoria de gerenciamento de contas no computador quando a conta foi criada. Em seguida, você verá o EventID 4720 no log de eventos na data de criação. (O artigo diz Active Directory, mas o mesmo se aplica a contas locais; verifiquei.)

Sem isso, o mais próximo que você pode chegar é verificando a data de criação na seção de registro do usuário, ntuser.datarquivo, pasta de perfil de usuário etc., mas, como mencionado nos comentários, isso é preciso apenas no primeiro logon do usuário, pois é nessas situações são criados.

Infelizmente para você, este é um caso de "se você não o registrou, essas informações não existem".

HopelessN00b
fonte
1

Eu estava prestes a fornecer um script do POC PowerShell para extrair e analisar o tempo de criação, mas percebi que chntpwa lógica está incorreta. O valor que ele chama de hora da criação é na verdade o último horário definido da senha, embora esses valores sejam os mesmos na criação inicial da conta. Veja aqui uma descrição exaustiva do SAM.

O segundo link de Evan, pois samparse, pode acertar. Olhando para ele realmente funciona. Se você olhar sua fonte aqui , linha 99:

$c_date = $create->get_timestamp();

você verá as chamadas get_timestampdo Perl's Parse::Win32Registry. Tenho certeza de que esse é realmente o último tempo de gravação da chave. Como parece que essa tecla específica ( HKLM\SAM\SAM\Domains\Account\Users\Names\<USERNAME>) mantém apenas um ponteiro para a tecla RID correspondente, ela não deve ser alterada após a criação e o último tempo de gravação será igual ao tempo de criação.

Se você deseja usar mais ferramentas internas, aqui está uma série de artigos do Scripting Guy explicando como via PowerShell:

Use o PowerShell para acessar o registro de data e hora da última modificação do Registro

Reutilizando o Código de Data e Hora do Registro do PowerShell

Criar uma função de proxy para exibir carimbos de data e hora da chave do Registro

Aproveite os carimbos de hora da chave do Registro via PowerShell

charleswj81
fonte
-3

Este comando no PowerShell deve fazer o truque:

systeminfo | findstr /C:"Install Date"
Mike
fonte
1
Como isso está relacionado? Você leu a pergunta?
Sven
-5

Navegue por Meu computador para

C: \ Users e você verá todas as contas de usuário listadas na máquina local. Você pode clicar com o botão direito do mouse na conta de usuário apropriada e ir para Propriedades. Ele mostrará uma data criada. Essa deve ser a mesma que a criação da conta de usuário.

Apenas meus 2 centavos

Kevin
fonte
2
-1 - Mostra quando o diretório do perfil foi criado. Isso não informa quando a conta foi criada, pois o diretório do perfil pode ser excluído e recriado a qualquer momento após a criação da conta.
Evan Anderson
Embora isso seja possível, 99% do tempo que vai ser preciso, e isso é bom o suficiente para a maioria
Kevin
Sempre me disseram para mantê-lo simples ... parece que nós dois temos a mesma resposta, você tinha que escrever um programa e eu apenas peguei os dados já disponíveis à sua frente
Kevin
2
Desculpe Kevin, quase não dá para esta solução em particular. Especificamente, isso tinha que ser feito para computadores em um laboratório, onde as pastas de perfil tinham que ser excluídas regularmente para manter os tempos de login aceitáveis ​​e desperdiçar espaço, portanto, essa solução não é de forma alguma plausível, pois essa data é apenas uma data de criação da pasta, não uma data de criação do perfil do usuário .
precisa saber é o seguinte
1
@Kevin A resposta "mantenha a simplicidade" é minha, que não pode ser feita, a menos que a auditoria tenha sido ativada antes da criação da conta, embora a criação da seção de registro do usuário, do arquivo ntuser.dat ou da pasta de perfil do usuário possa fornecer uma aproximação. A resposta complexa é de EvanAnderson, que realmente funciona, para minha surpresa.
HopelessN00b