Como buscar metadados do objeto KRBTGT em perda constante de Secure Channel

Olá pessoal!

Hoje trataremos de um problema enfrentado constantemente por administradores: perda aleatória de secure channel.

Neste post trarei uma forma de solucionar este problema. Agora, se mesmo seguindo estes passos o secure channel continuar a quebrar, falarei do primeiro passo para uma análise mais profunda. Em outro post continuarei esta segunda alternativa.

Como identificar se a máquina está com o secure channel quebrado?

Ao tentar logar na máquina, a mensagem de erro “The system cannot log you on to this domain because the system’s computer account in its primary domain is missing or the password on that account is incorrect.” será mostrada.

 

Vamos à como resolver.

1. Remova o cabo de rede da máquina que apresenta o problema.

2. Faça o login com o cabo removido para forçar o logon em cache.

3. Uma vez logado, conecte novamente o cabo de rede à máquina.

4. Execute o comando “nltest /sc_query:<domínio>” para verificar o status do secure channel.

 

A resposta ao comando deverá ser algo como:

nltest /sc_query:naruto.local

Flags: 0

Trusted DC Name \2K12NARUTO2.naruto.local

Trusted DC Connection Status Status = 1787 0x6fb ERROR_NO_TRUST_SAM_ACCOUNT

The command completed successfully

 

O erro 1787 0x6fb significa canal de segurança quebrado entre a máquina e o domínio. Para reiciniar este canal devemos executar o comando “nltest /sc_reset:<domínio>” do prompt como administrador.

 

Continuando:

5. Abrir o prompt como administador. Botão direito sobre o CMD –> Run as Administrator.

6. Executar o comando “nltest /sc_reset:<domínio>”.

 

A resposta deverá ser:

nltest /sc_reset:naruto.local

Flags: 30 HAS_IP  HAS_TIMESERV

Trusted DC Name \2K12NARUTO1.naruto.local

Trusted DC Connection Status Status = 0 0x0 NERR_Success

The command completed successfully

 

Assim reiniciamos o canal de segurança (secure channel) entre a máqui e o domínio sem remover e reinseri-la no domínio.

 

Se com os passos acima, a máquina continuar a perder o secure channel aleatóriamente, será necessário coletar o metadados do objeto KRBTGT e verificar se há diferença entre os controladores (domain controllers) do domínio.

 

Por padrão, a conta KRBTGT fica no container User dentro de Active Directory Users and Computers:

KRBTGT01

Para visualizar esta conta, o ADUC deve estar marcado com “Advanced Features”.

Clicamos em View –> Advanced Features. KRBTGT02

Para coletarmos o log com os metadados do objeto, devemos executar o comando “repadmin /showobjmeta * “<Distinguished name do objeto KRBTGT>” > File.txt”.

Por padrão, o DN do objeto KRBTGT é CN=krbtgt,CN=Users,DC=domain,DC=domain. No meu caso é CN=krbtgt,CN=Users,DC=naruto,DC=local.

 

Para que não haja erro, podemos pesquisar pelo objeto no AD para verificar em que OU ele se encontra e então abrir o ADSIEdit e pegar o DN do objeto de lá.

Para pesquisar, façamos o seguinte:

1. Com o ADUC mostrando Advanced Features, clicar com o botão direito sobre o domínio –> Find.KRBTGT03

2. Buscar pelo objeto KRBTGT. Uma vez encontrado, clicar duas vezes sobre ele, ou clicar com o botão direito –> Propriedades, selecionar a aba Object e ver o caminho.

Por padrão, como disse anteriormente, o objeto estará em Users. No entanto ele pode ser movido para outras OUs. Por isso os passos acima.

Na aba Object, veremos o caminho até o objeto.

Como podem ver na imagem, o caminho no meu domínio é naruto.local/Users/krbtgt. Significa que o objeto está na OU Users.KRBTGT04

Com o caminho do objeto, abrimos o ADSIEdit.

3. Buscar em Ferramentas Administrativas –> ADSIEdit ou executar do Run ou do Prompt o comando “adsiedit.msc”.

4. No ADSIEdit, clicar em Actions –> Connect to… e selecionar a partição de domínio.KRBTGT05

A partição de domínio é a Default naming context.KRBTGT06

 

5. Expandimos até chegar mostrar o container Users, clicamos com o botão direito sobre o objeto KRBTGT –> Propriedades, encontramos o atributo distinguishedName e clicamos em View. Com a janela do View aberta, copiamos o DN do objeto para usar no comando.KRBTGT07

 

Agora que temos o DN do objeto KRBTGT correto, voltamos para o comando que coletará o log com o metadados.

Recapitulando o comando: repadmin /showobjmeta * “<Distinguished name do objeto KRBTGT>” > File.txt.KRBTGT08

No meu caso: repadmin /showobjmeta * “CN=krbtgt,CN=Users,DC=naruto,DC=local” > File1.txt.

 

Por enquanto é isso.

Em um post futuro, tratarei sobre como analisar este log.

 

Até a próxima!

 

Artigo escrito por: Thiago Polatti

Advertisements

One thought on “Como buscar metadados do objeto KRBTGT em perda constante de Secure Channel

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s