it-swarm-pt.tech

Posso obter todas as senhas do Active Directory em texto não criptografado usando criptografia reversível?

EDIT: Alguém pode realmente responder à pergunta? Obrigado, não preciso de trilha de auditoria, VOU saber todas as senhas e os usuários não podem alterá-las e continuarei a fazê-lo.

Isso não é para hackear!

Recentemente, migramos de um antigo e enferrujado domínio Linux/Samba para um Active Directory. Tínhamos uma pequena interface personalizada para gerenciar contas lá. Ele sempre armazenou as senhas de todos os usuários e contas de serviço em texto simples em um local seguro (é claro, muitos de vocês certamente não pensarão que isso é seguro, mas sem explorações reais ninguém poderia ler isso) e desabilitou a mudança de senha no controlador de domínio samba. Além disso, nenhum usuário pode selecionar suas próprias senhas, nós as criamos usando o pwgen. Não os trocamos a cada 40 dias ou mais, mas apenas a cada 2 anos para recompensar os funcionários por realmente aprendê-los e NÃO anotá-los.

Precisamos das senhas para, por exemplo, entrar em contas de usuário e modificar configurações que são muito complicadas para políticas de grupo ou para ajudar os usuários.

Essas políticas podem certamente ser controversas, mas quero continuá-las no AD. Agora eu salvo novas contas e suas geradas pelo PWGEN (pwgen cria palavras aleatórias que soam agradáveis ​​com uma boa quantidade de vogais, consoantes e números) manualmente no arquivo de texto antigo que os scripts antigos costumavam manter automaticamente.

Como posso obter essa funcionalidade de volta no AD?

Vejo que há "criptografia reversível" nas contas do AD, provavelmente para sistemas de autenticação de resposta de desafio que precisam da senha em texto não criptografado armazenada no servidor.

Existe um script que exibe todas essas senhas? Isso seria bom. (Novamente: eu confio que meu DC não seja comprometido).

Ou posso ter um plugin para usuários e computadores do AD que recebe uma notificação de cada nova senha e a armazena em um arquivo?

Em clientes que são possíveis com GINA-dlls, eles podem ser notificados sobre as senhas e obter o texto não criptografado.

2
Christian

Para responder à pergunta, leia isto: http://blog.teusink.net/2009/08/passwords-stored-using-reversible.html

No final do artigo é descrito como obter a senha reversível armazenada. Havent tentou, então não sei exatamente como fazer conforme descrito, mas deve funcionar.

Fora isso, concordo com o resto das pessoas que grita com a sugestão de usar criptografia reversível. Simplesmente não é seguro.

4
Lord HellFire

Parece-me que você está oferecendo suporte ao usuário fazendo logon com suas contas - sabendo suas senhas? Como você disse, essa é uma ideia muito ruim por vários motivos.

Eu sei que alguns usuários oldschool tendem a gostar disso, eles apenas dão de ombros e pedem para você consertar remotamente e fornecer a senha. Mas apenas diga não. Ninguém deve saber sua senha, mas eles próprios - princípio básico.

Muitas coisas podem ser corrigidas a partir de outro contexto de usuário, o seu. Aqueles que realmente não podem, e precisam ser feitos com o usuário conectado interativamente, exigem que o usuário faça isso e fique e observe enquanto a equipe conserta as coisas através da conta desse usuário.

Remotamente, há RDP Shadow, Remote Help e soluções interativas semelhantes onde o usuário está no controle e ninguém precisa saber sua senha para ajudar com algum problema relacionado à área de trabalho. Com as Políticas de Grupo, basicamente não há necessidade desse comportamento, já que a maioria das coisas é facilmente configurada por um administrador.

Se você permitir que outras pessoas acessem as contas de usuários de outras pessoas - você também perderá a trilha de auditoria e a responsabilidade pelas ações feitas pelos usuários no sistema - o que poderia facilmente sair do grupo de administradores autorizados.

14
Oskar Duveborn

Eu não teria tanta certeza de que meu DC está seguro. Se eu fosse um invasor ou um pen-tester, não irei atrás de seu DC primeiro , de qualquer maneira. Vou atrás de suas estações de trabalho e servidores. Vetor de ataque básico:

  1. Descubra um nome de usuário/senha fracos no domínio ou em algum serviço (digamos, conta sa no SQL Server) ou vulnerabilidade que posso explorar que me permite obter direitos de administrador (corrigir seus sistemas, pessoal).
  2. Encontre o sistema onde essa conta tem direitos de administrador.
  3. Despeje os segredos LSA para encontrar o nome de usuário/senha de todas as contas de serviço.
  4. Use CacheDump para despejar nome de usuário/senhas em cache.
  5. Veja se algum deles tem direitos de administrador em algum lugar.
  6. Repita 1-5 até obter uma conta de administrador de domínio.
  7. Use a conta de administrador de domínio para acessar o controlador de domínio.
  8. Despeje o SAM do controlador de domínio.
  9. Use as tabelas do arco-íris para quebrar mais senhas ou força bruta, se necessário, off-line.

A menos que você seja o Vista/Windows Server 2008/Windows 7, este é o padrão de ataque básico usado pela maioria dos pentesters. A razão pela qual esses 3 sistemas operacionais quebram o padrão é porque o DLL ataque de injeção contra LSA Secrets não foi feito para funcionar contra esses sistemas operacionais).

Com tudo isso dito, você não deve usar criptografia reversível e deve desativar os hashes LM. Você quer hashes NTLM. E você não quer armazenar essas senhas em texto simples.

10
K. Brian Kelley

O que você está fazendo é uma ideia muito, muito ruim. Se você não quer que os usuários gerenciem senhas, você pode investir em um sistema de token de desafio/resposta para AD que vai custar o mínimo.

10
duffbeer703

Para ser honesto, não acho que seu raciocínio para querer fazer isso seja válido. Como administrador, recebo uma grande dose de heebeejeebees só de pensar em saber a senha de um usuário. É o território pessoal deles, e você está pedindo que eles coloquem um nível ENORME de confiança em você. Mesmo além disso, se houver um vazamento de dados confidenciais, você ficará instantaneamente sob suspeita, pois você saberia as senhas do usuário. A falta de uma trilha de auditoria verificável é uma bandeira vermelha colossal da segurança. A regra 1 é "proteja-se", e se isso significa ter que aceitar algum inconveniente, então que seja.

Acho que existem soluções alternativas que irão realizar o que você deseja, sem ter que ir ao extremo como saber senhas. Você já olhou as preferências de política de grupo? Quais são suas habilidades de script? O uso de métodos de força bruta é normalmente uma indicação clara de que a abordagem padrão não está sendo usada de maneira otimizada, então acho que seria muito melhor voltar atrás e repensar o que está fazendo.

6
Maximus Minimus

Responsabilidade, registro e rastreamento.

Temos lutado com a administração por causa disso há alguns anos. O CEO e o presidente se recusaram a mudar suas senhas por anos, e todo cara de TI que entrou e saiu em 7 anos ou mais sabia suas senhas. Mesmo que você "confie" em todos, é muito perigoso que várias pessoas que não são mais funcionários tenham acesso a contas poderosas. Sem falar que todos eles sabem que outras pessoas sabem as senhas e que seria seguro usá-las.

Pregamos aos usuários continuamente para nunca compartilhar suas senhas, mesmo conosco, nunca. Este é o começo para evitar "hackeamento social". Quantos de seus usuários dariam suas senhas para alguém ligando e dizendo que eles são um dos novos caras de TI?

Se for absolutamente necessário estar em uma conta de usuário para fazer algo, podemos fazer o login e usar o shotgun, ou alterar sua senha. Assim que alterarmos sua senha, seremos responsáveis ​​por sua conta e eles deixarão de ser responsáveis, até que lhes forneçamos uma nova senha, com a conta marcada que o usuário deve alterar a senha no próximo login. Isso preserva o registro e o rastreamento. Com tudo de ruim, ilegal e antiético que os usuários podem fazer na internet. Se eles puderem culpar muitos outros que sabem suas senhas, isso poderá gerar muitos problemas.

Agora estamos trabalhando para eliminar todos os logins de contas compartilhadas, como para computadores compartilhados. Se precisarmos ter uma, essa conta terá direitos muito limitados e não terá acesso à Internet.

Há uma razão pela qual as senhas são tão importantes. Eles não servem apenas para proteger seus dados, eles existem para proteger você e seus usuários, etc. Não é difícil encontrar ou pensar em exemplos. Jogue as conversas em sua cabeça. “Todos sabiam minha senha e um deles entrou no meu computador e leu o e-mail da minha amante e disse à minha esposa:“ Existem muitas, muitas considerações de privacidade possíveis além da segurança.

Brian

p.s. tentando muito não ser argumentativo. Embora eu não tenha respondido à pergunta, fiz um editorial contra fazer o que é sugerido. Também recomendo não dizer coisas como esta, citar a pergunta - "EDITAR: Alguém pode realmente responder à pergunta? Obrigado, não preciso de nenhuma trilha de auditoria, VOU saber todas as senhas e os usuários não podem alterá-las e eu continuará a fazê-lo. Isso não é para hackear! "

  1. Isso faria com que você fosse removido de seu trabalho como administrador de sistemas em muitas empresas.
  2. Uma atitude como essa também pode impactar quaisquer oportunidades de emprego futuras para você. Eu eliminaria imediatamente qualquer pessoa que se candidatasse a um cargo de Administrador de Sistemas em nossa empresa se eu os pesquisasse no Google e descobrisse que eles fizeram essa pergunta.
  3. Estou tentando muito imaginar que tipo de cenário seria necessário e apoiar isso. Um escritório familiar de 3-4 pessoas, talvez. Eu podia ver essa atitude prevalecendo em um cenário religioso, mas mesmo assim ninguém é perfeito e pode cometer erros.
  4. Se for excessivamente argumentativo ou pejorativo, sinta-se à vontade para editar ou remover o p.s.
5
Brian

Acho que as questões gerais de auditoria, responsabilidade e segurança foram tratadas de maneira adequada, então tentarei uma resposta diferente :)

Existe um Serviço de Notificação de Alteração de Senha que pode ser instalado em todos os controladores de domínio que encaminhará todas as alterações de senha com segurança para um serviço receptor.

Ele foi projetado para o Identity Integration Server (agora Identity Lifecycle Manager) como um destino, mas deve ser possível escrever seu próprio destino, ou até mesmo usar MIIS/MILM para receber a senha e encaminhá-la por meio de outro conector para seu próprio sistema.

4
Froosh

Como outros já cobriram, sua política e práticas são, na melhor das hipóteses, pouco ortodoxas. O administrador de desbloqueio mencionado anteriormente parece um meio-termo decente (sem trocadilhos). O propósito declarado de saber suas senhas de usuário é fornecer suporte no perfil de usuário do Windows. Bem. Quando seus usuários precisarem de suporte e precisarem estar em outro lugar, faça com que travem suas estações de trabalho. Então, com o Unlock Administrator, você pode desbloquear a estação e permanecer em seu perfil de usuário.

Você perde a capacidade de chegar a qualquer estação de trabalho, mas não precisa mais saber a senha. Isso parece um meio-termo decente entre segurança e facilidade de suporte.

2
iPaulo

Você teria que obter os hashes (LM ou NTLM) e fazer um ataque de dicionário sobre eles. Qualquer pessoa com uma senha moderadamente complexa seria quase impossível de descobrir. Não habilite a "criptografia reversível" - você precisa alterar a maneira como gerencia as senhas.

2
PowerApp101

Desbloquear administrador pode resolver parte do seu problema sem exigir o conhecimento da senha.

2
Joseph

Há uma variedade de maneiras de fazer isso que já vi sendo usadas por pessoas que invadiram nossos servidores. O método mais popular é despejar os hashes de senha em um arquivo usando algo como pwdump4 e, em seguida, executar os hashes resultantes por meio de uma Rainbow Table. Existem alguns limites de comprimento de senha que tornam essa abordagem muito mais difícil, e é por isso que nossas senhas administrativas têm 16 caracteres ou mais.

Depois de ter investido em um bom conjunto de mesas Rainbow (pode ser obtido por um bom dinheiro em muitos lugares na internet, e se isso for realmente uma linha de negócios para você, o custo não deve ser um problema) o dump-e O processo de decodificação pode ser feito em menos de 30 minutos para a maioria dos usuários.

Fizemos isso uma vez para ter uma ideia da facilidade de adivinhar as senhas de nossos usuários. Cerca de 30% das senhas foram quebradas em 5 minutos após o início de um ataque de dicionário simples, e cerca de 80% foram quebradas por meio do Rainbow Table autogerado em menos de um dia. Isso foi .... 3 anos atrás, então as coisas ficaram mais rápidas. Os resultados foram apresentados à alta administração, que rapidamente concordou em reforçar (ok, realmente criar) as políticas de senha.

2
sysadmin1138

Obtenha L0phtcrack e execute-o contra o DC. Pode levar HORAS, mas deve conseguir a maioria das senhas.

Na verdade, tropecei nisso porque estava procurando a mesma coisa, mas meus motivos para saber as senhas dos usuários são bem diferentes.

Estou migrando uma solução anterior de administradores de rede usando IIS para hospedagem de FTP do cliente; recentemente descobrimos que nosso ftp IIS ftp tinha sido submetido a força bruta e estava hospedando spyware. As senhas de usuário não foram documentadas, apenas redefinir se alguém esquecer, então estou mudando para outra solução (FileZilla) que não usa AD. Preciso recriar todas essas contas AD com as mesmas senhas (contas comprometidas excluídas) para tornar a migração transparente para o final Como não existe um IIS utilitário de migração para o FileZilla, minha única esperança é quebrar as senhas dos usuários.

Estou aberto a quaisquer sugestões sobre como fazer isso sem quebrar as senhas dos usuários.

1
ITGuy

A Microsoft tem seu produto ILM que pode replicar senhas, talvez para um armazenamento LDAP estrangeiro.

1
James Risto