Força Bruta nos hashes do AD

Olá! Pessoal, uma dica bacana que eu trago, apesar de utilizar uma técnica antiga mas que vejo poucas pessoas fazendo proativamente, que é a de força bruta em hashes do AD.

Você sabe se os funcionários estão realmente criando senhas boas? Como você mede isso? Não custa dizer, senha por si só já era a muito tempo, você sempre precisa combinar isso com um segundo fator. Mas sabemos que nas empresas não é 100% das coisas que costumam terem a possibilidade de exigir esse segundo fator e é ai que mora o perigo! Basta descobrir 1 senha e uma porta onde dê pra entrar somente com ela e pronto!

A sugestão que eu dou é que seja feito ao menos 1 vez no ano testes de força bruta nos hashes do AD para que você veja o quanto de conscientização você precisa trabalhar na empresa ou até mudar politicas. Eu desconheço um benchmarking de porcentagem de quebra de senha, mas pela minha experiência de anos fazendo isso eu diria para trabalhar com os seguinte valores:

  • Entre 0 e 8% – Está num nível de maturidade otimo
  • Entre 8 e 20% – Está bom, mas precisa trablhar um pouco ainda na conscientização
  • Entre 20% e 40% – Precisa trabalhar forte na conscientização, com campanhas mais pesadas. É hora de começar a ligar o radar!
  • Acima de 40% – Significa que alguma coisa bem errada está acontecendo, hora de ligar o alerto vermelho. Eu diaria que você precisa rever primeiro toda a sua politica de senha. Aumentar a quantidade de caracteres minimos exigidos, aumentar a complexidade de senha como um todo, e além disso fazer campanhas pesadas de conscietização.

Pegando os hashes

Para pegar os hashes no AD, existem diversas formas e ferramentas. Porém aqui estou no olhar de que é um teste acordado, onde alguem que tenha acesso ao AD irá extrair esses hashes. Para isso a forma mais simples na minha opnião é usando ntdsutil. Caso queira saber mais sobre outras ferramentas segue aqui um otimo material de referência:

Para executar o ntdsutil, basta alguem com privilégio de admin no AD rodar no CMD com privilegio elevado os seguintes comandos:

ntdsutil
activate instance ntds
ifm
create full C:\ntdsutil
quit
quit

Após executar o comando, serão geradas 2 pastas:

Active Directory e registry

Após feito o dump deverá transformar os arquivos no formato para a força bruta.

Para isso usaremos uma outra ferramenta, o secretsdump. O mesmo pode ser baixado clicando aqui:

https://github.com/SecureAuthCorp/impacket

Após instalado, segue a linha de comando:

secretsdump.py -system ARQUIVO_SYSTEM -ntds ARQUIVO_ntds.dit LOCAL -outputfile credentials.txt

O arquivo que for gerado já está no formato correto para a tentativa de quebra.

Força Bruta

Para o ataque de força bruta efetivamente falando, a primeira coisa é decidir que tipo de ataque você quer fazer, se um ataque de dicionário ou de rainbow table.

Não vou me aprofundar aqui na explicação, mas basicamente o Rainbow Tables é uma tabela de hashes, ou seja, será feito um teste só de “cara crachá”, um teste de comparação. Já no ataque de dicionário você vai fazer processar o calculo de trasnformar cada palavra/senha que está no seu dicionário no formato de hash que está tentando quebrar e comparar.

A vantagem do rainbow table é a velocidade, que é infinitamente mais rápido. Em contrapartida você vai precisar de muito mais espaço em disco pois você já vai ter que gerar sua rainbow table com as regras aplicadas. Iremos falar logo a frente sobre regras.

O dicionário é mais lento mas tem a vantagem de ocupar menos espaço e de ser maliavél, você aplica as regras que quiser no tempo que desejar com mais facilidade. Para os meus testes eu costumo usar mais ataque de dicionario e é baseado nele que vou continuar minha explicação.

Após escolhido a técnica, você deve escolher a ferramenta. Existem algumas, hashcat, john, hydra. Eu considero o hashcat como a melhor ferramenta disparado. Não vou me alongar aqui nos motivos, apenas acreditem em mim 🙂 rsrsrs !

Proximo passo é o hardware! Sim caro leitor, tentar rodar um teste de força bruta num processador Celeron da vida você vai sofrer!

O ideal é que você tenha um equipamento com uma placa gráfica, assim você pode inclusive somente usar o poder de processamento da sua placa de vídeo e seu computador fica com o processador intacto. Você também pode optar por pegar uma super máquina em cloud, numa AWS da vida e afins, usar só por tempo determinado dessa atividade, as vezes o custo compensa.

Eu no caso costumo fazer os testes em um computador da minha atual empresa que possuia seguinte configuração:

NVIDIA Quadro M2200 – 4GB GDDR5

Windows  10

Desempenho: 8256.5 Milhões de Hashes por segundo

Uma dica, o hashcat é todo por interface de linha de comando. Mas você pode baixar o hashkiller, uma ferramenta que vai te prover uma interface gráfica para o seu hashcat e facilitar muito a sua vida.

https://hashkiller.io/download

Você já tem quase tudo que precisa. Agora falta o mais importante: O Dicionário!. O seu sucesso vai depender praticamente disso, de ter um bom dicionário!

Aonde eu consigo bons dicionarios? Eu prefiro dizer que o melhor dicionário é aquele que você mesmo cria! Precisa dedicar tempo, paciência e criativade. Em linhas gerias dicas que eu dou: busque por dicinário aurelio, nomes de time de futebol, girias, palavrões, nomes, sobrenomes, usar os proprios logins e nomes dos proprios funcionários que constarem no proprio dump do AD, nome de filme, nome de personagem, desenho, frases de religião, nome de deuses, nomes de anjos, cidades, paises, comidas,marcas, cor, animais, nome de sistemas da sa empresa, palavras usuais da empresa, nome da empresa e de suas filiais/join ventures e por ai vai. Coloque tudo em um TXT, tudo em caixa baixa de preferência. Sanitize caracteres como Ç ou assentuações. Sanitize também as linhas duplicadas. Complemente seu dicionário com dicionários de internet. Um bem famoso é o rockyou, que já vem no Kali.

DICA: busque por wordlist no github, e você vai achar várias! Pode buscar por wordlist PT-BR que vai achar bastante em português também.

Depois de montado o seu dicionário basta fazer os testes combinando o seu dicionário com as rules do hashcat, além disso utilizar a técnica de apendar arquivos na frente e atrás funcionam muito bem, por exemplo, você pode criar um segundo arquivo TXT com as palavras: 123, 321, @123, @321 .. Aqui sua imaginação é quem manda. E mandar combinar o dicionario que você montou com esse segundo TXT.

Você pode encontrar boas rules no github também. Eu já acho as que vem no hashcat muito boas.

Eu considero pela minha experiência que um bom dicionário é aquele que é rico de palavras da cultura do pais do usuário que você está quebrando a senha + a maior quantidade de palavras possíveis que possam ser usuais + boas regras e boas combinações + um certo entedimento de como as pessoas pensam, como geralmente as pessoas criaram as suas senhas e isso só a experiência ao longo do tempo irá lhe responder, a combinação de todos esses fatores lhe trará sucesso na sua quebra de senhas.

Analisando os resultados

Sugiro que na etapa anterior você anote o tempo de execução de cada tipo de teste que você fizer para que você gere uma métrica do tipo: Em X horas foi possivel quebrar Y senhas.

Com as senhas quebradas, o proximo ponto é sanitizar a sua base. Verificar dos hashes quebrados, quais usuarios são contas habilitadas e quais estão desabilitadas. Quebrar senha de usuario desabilitado não é muito útil, e portanto deveria ser expurgado da sua contabilização. Após sanitizar sua lista, ai sim você poderá dar inicio a sua analise estatistica.

Com as senhas quebradas em mãos, coloque todas as senhas em um arquivo txt. Uma ferramenta excelente para fazer analise estatistica das senhas é o PIPAL:

https://github.com/digininja/pipal

Se algum leitor conhecer alguma parecida, por favor inclusive peço me indicar, mas essa é a melhor que conheço. Ela vai gerar dados bem riscos, como top 10 senhas entre outros.

Por fim, gere uma apresentação com os gráficos e apresente a quem seja de interesse, dependendo da % de senhas quebradas, tome as medidas de proteção que melhores sem encaixarem na sua estratégia. Ao se adotar isso como um processo continuo, você poderá também gerar estatisticas de reincidências, que é o usuário que teve a senha quebrada por 2 anos consecutivos, e esse funcionário você pode trabalhar com uma conscientização mais especifica.

Espero que tenham gostado das dicas, sei que não é nada muito novo, mas apesar disso eu realmente não vejo as empresas praticando esse tipo de teste com uma frequência estabelecida e gerando insumos que gerem um valor para o aumento da sua maturidade de segurança. Fica a dica!

Cain & Abel – Guia completo

DOWNLOAD DA FERRAMENTA

1. inicio

O pacote virá com 3 programas: O Cain(O programa em si!), Abel, um “backdoor” para administração remota do Cain e a lib WinPcap, que permite a análise se redes. Se você não instalá-lo opções como sniffing não irão funcionar e o wintrgen, que é o gerador de rainbow table que esplicarei depois.

2. Start/Stop Sniffer e Start/Stop APR

Com este botão você poderá iniciar ou parar o sniffer. Para quem não sabe o sniffer deixa o seu adaptador de rede em modo promíscuo, ou seja, escutando todos os dados que trafegam pela rede mesmo não sendo direcionada para aquela máquina. Quando você clicar pela primeira vez aparecerá uma caixa de diálogo chamada Configurantion Dialog onde você deverá selecionar o adaptador a ser usado(caso sua máquina tenha mais que um) mas o programa configura automáticamente.

3. Guia Sniffer

Depois de iniciado o sniffer você poderá ver seus resultados na guia sniffer. Na parte inferior será subdividida em mais guias: Host, APR, Routing, Password, Voip

3.1 Host

Computadores que estão em sua subnet. Para ver os pc’s basta apenas clicar no botão + (Add to list). Ao clicar mostrará uma guia de scaneamento de mac address, você pode pôr uma faixa ou colocar para mostrar todos. Irão mostrar o endereço de ip, endereço MAC e fingerprint do pc.

3.2 APR

Muitas vezes sua rede é segmentada por switchs, fazendo assim você não poder sniffar outros segmentos. Para isso existe o que chamamos de ARP poisoning. o ARP poisoning consite em você envenenar a tabela ARP do seu switch fazendo ele receber os pacotes do pc que você deseja. Não entrarei em detalhes porque este não é meu objetivo. No guia APR você terá que escolher o tipo de APR: DNS, SSH-1, HTTPS ou RDP. Selecionado você terá que adicionar o host clicando no botão +. Lembre-se que o botão Start/Stop APR deve estar selecionado. Ao clicar no botão + aparecerá uma caixa com os hosts da sua subnet que obtivemos no guia host(Lembra?). Agora é preciso apenas adicionar os host para o APR. Depois de fazer isso você verá o ícone e do lado escrito poisoning.
O APR do Cain Também realiza o Homem no meio(man in the middle) em redes locais seguindo os mesmos procedimentos.

3.3 Routing

Esta seção pediria um explicação extensa, e como este é um manual básico, irei pular aqui. Desculpem-me!

3.4 Password

Esta seção, com o sniffer ligado, mostrará todas senhas que passam por você. Não precisa de nenhuma configuração, eles apareceram ali. Ele pega senhas de vários, você já deve ter visto a listinha dele. Mas as vezes as senhas podem vir criptografadas, explicarei isso mais abaixo.

3.5 Voip

Igual ao Password. Todas conexões de voip que aparecerem o cain gravará para você. Semelhante ao grampo de telefone, mas grampeia conversas no Voip.

4. Botões Add to list(+) e Remove from list(lixeira)

Servem para adiconar ou remover alguns itens que são usados em alguns guias.

5. Botão configure

É o mesmo que você selecionar o menu configure. Mostrará um guia para configuração. Não irei explicar aqui, mas só de você olhar você entenderá. Não precisará mexer, Pois o cain já configura tudo altomatimente.

6. Botão Base 64 password decoder

Serve para quebrar senhas criptografadas em Base 64. Basta colocar a senha.

7. Botão Access database password decoder

Quebra senhas de banco de dados Access. Basta selecionar o arquivo e o tipo.

8. Botões da CISCO

O primeiro serve para quebrar senhas do type-7 colocando a senha e outro do VPN Cient, colocando o arquivo. Esses botões não tem muito o que comentar…

9. Outros Botões de Password Decoder

Basta apenas colocar o password ou o arquivo e pronto. COmo disse não tem muito o que comentar. A partir daqui irei comentar somente o necessário, ok?

10. Box Revelator

Revelar senhas entre ******* das caixas de senhas?

11. Hash Calculator

Você digita o que quer e ele mostrará ele em hash. È necessario quando você precisa saber um hash específico ou fazer um teste.

12. RSA
Também não explicarei este. meu tempo muito curto!.

13. Guias
Já expliquei os principais botões. Agora os guias, que é o que falta.

13.1 Protected Storeg

Ele pega no registro senhas dos seguintes programas(se estiverem armazenadas no registro):
– MS Outlook 2002′s passwords(POP3, SMTP, IMAP, HTTP)
– Outlook Express’s passwords(POP3, NNTP, SMTP, IMAP, HTTP, LDAP, HTTP-Mail)
– Outlook Express Identities
– MS Outlook’s passwords (POP3, NNTP, SMTP, IMAP, LDAP, HTTP-Mail)
– MSN Explorer’s Sign In passwords
– MSN Explorer’s Auto Complete passwords
– Internet Explorer’s protected sites passwords
– Internet Explorer’s Auto complete passwords

Basta clicar no botão +.

13.2 Network
Mostra detalhes da rede.

13.3 LSA Secrets
também pega do registro senhas usadas para iniciar serciços como senhas do arquivo SAM. Clique no Botão +.

13.4 Cracker

Quando você obtem senhas criptografadas você pode clicar com o botão direito e colocar “send to crack”. Lá ele divide os passwords e faz a quebra através de alguns tipo de força bruta, ataque de dicionário, criptoanálise(Você verificar em uma rainbow table feita no wintrgen) ou rainbowcrack-online.

13.5 Traceroute
É o tracert do windows ou traceroute do linux com mais opções.

13.6 CCDU (Cisco COnfig Downloader)
Configurações CISCO. Para usuários mais avaçados.

13.7 Wireless
Através de um dispositivo wireless varre por redes sem fio.

 

Se quiser ver uma super materia sobre a ferramenta com tutorial e explicando bem mais detalhadamente a ferramenta, clique em LEIA MAIS

Continuar lendo

Descubra quanto tempo leva para sua senha ser hackeada

A segurança é solenemente ignorada por usuários, pois todos acham que nunca serão vítimas de roubo de senhas de banco, cartões, etc.

Ledo engano. Se você existe, respira e de alguma forma tem dados seus on-line, você é uma vítima em potencial. O gráfico abaixo mostra um comparativo de em quanto tempo uma senha pode ser quebrada por um computador comum, utilizando programas e técnicas conhecidos e que estão disponíveis na Internet, em duas situações: utilizando caracteres especiais, uppercase (maiúsculas), etc. ou senhas apenas em lowercase. Vejam a diferença absurda:

Pode-se notar que como a maioria dos usuários utiliza senhas pequenas, como nomes de filhos ou data de nascimento, essas senhas podem ser facilmente quebradas por um PC comum. Utilizando técnicas melhores e um PC mais robusto, a senha é quebrada ainda mais rapidamente. Utilizando uma senha de 8 caracteres como padrão, se ela for forte o tempo para quebrá-la é de mais de 200 anos, já com uma senha fraca o tempo é de 2 dias.

Portanto, façam um favor a si mesmos: usem senhas mais difíceis e lembrem-se dela usando sua memória, jamais anotem suas senhas em post-its que ficam colados no monitor. Repassem esse artigo para amigos, parentes, etc. para que eles também possam se proteger melhor.

Fonte: Byte que eu gosto!