Detalhando as suites de cifras SSL/TLS

Olá galera, resolvi trazer um post bem completo que pode ajudar bastante a galera que se confundi com o emaranhado de sopa de letrinhas das cifras SSL/TLS e também ter um material bem completo sobre o tema.

INTRODUÇÃO

Primeiramente eu ínicio esse post dizendo que vejo muita gente, até mesmo profissionais de segurança, que confundem protocolo SSL com certificado SSL. São coisas destintas! Umas coisa é o certificado SSL, que é o famoso HTTPS que o site utiliza. Esse certificado naturalmente possui uma chave de assinatura (normalmente sha256) e uma chave publica (normalmente RSA 2048).

Aqui o foco é assunto é protocolo, que é como sua aplicação se comunica com o servidor.

TEORIA

Existem basicamente 2 tipos de protocolos utilizados, um é o SSL e o outro é o TLS.

SSL está depreciado, seja ele em qualquer versão (a ultima versão é a SSL 3). Inclusive ele aparece a algum tempo em ferramentas de scan, como o Nessus, como vulnerabilidade alta.

O protocolo SSL/TLS utilizam um pacote de criptografia. Este pacote é um conjunto de algoritmos de criptografia, cada um com uma função específica, e que juntos permitem comunicações criptografadas entre um cliente e um servidor. E como essa comunicação ocorre?

  1. O servidor tem um conjunto de criptografia configurados que ele aceita.
  2. O cliente envia ao servidor as versões de TLS / SSL, conjuntos de criptografia e métodos de compactação que ele suporta, em ordem de preferência (também conhecido como ClientHello ).
  3. O servidor escolhe entre eles o pacote mais favorável para começar a criptografar os dados (também conhecido como ServerHello ).
  4. O servidor envia seu certificado.
  5. Com a verificação do certificado (e, portanto, da identidade do servidor), uma chave secreta denominada Master Secret é negociada , levando em consideração o conjunto de cifras escolhido.
  6. O cliente envia uma mensagem criptografada ao servidor.
  7. O servidor verifica se o MAC (Message Authentication Code , usado para autenticação) está correto e se a mensagem pode ser descriptografada corretamente. 
  8. O servidor responde à mensagem, que também é verificada pelo cliente.

FERRAMENTA

Bom, já aprendemos de forma sucinta como é feito a comunicação entre cliente/servidor. E como eu verifico que cifras um servidor está aceitando negociar?

Uma das ferramentas que eu mais gosto é o SSLCAN, que vem por padrão no Kali Linux. Se for um site externo e você não for um profissional com tanto conhecimento ou acesso a um kali ou linux qualquer, pode utilizar uma ferramenta totalmente online, chamada SSL LABS.

ENTENDENDO RESULTADO DO SSLSCAN (PACOTE DE CRIPTOGRAFIA)

Ao executar o sslscan (Ex: sslscan target -p 443) o resultado visto é algo parecido com isso:

Vamos entender agora o que é cada pedaço da suite de cifras:

  • Protocolo . Indica o tipo de protocolo a utilizar, como já comentei pode ser o SSL (já obsoleto) ou TLS, com as respectivas versões.
  • Algoritmo de troca de chave (Key Exchange) . Algoritmo a ser usado para compartilhar as chaves simétricas com as quais as comunicações serão criptografadas.
  • Assinatura digital . Verifica as identidades do cliente e do servidor durante a sessão. Neste ponto, deve ser mencionado que o algoritmo RSA pode funcionar como um algoritmo de troca de chave e uma assinatura digital.
  • Algoritmo de criptografia e o comprimento da chave . Algoritmos simétricos usados ​​para criptografar a comunicação (com o comprimento correspondente de cada algoritmo).
  • Modo de criptografia . Estas são cifras de bloco. Seu uso depende do algoritmo de criptografia usado anteriormente.
  • Hash . Algoritmo de criptografia irreversível que verifica a integridade das mensagens.
  • Tamanho da curva elíptica . Esta opção não é obrigatória e depende do algoritmo de troca de chaves previamente escolhido. No exemplo acima eu coloquei 3 pontinhos pois essa cifra que escolhi de exemplo não tinha.

Agora segue uma tabela com os tipos possíveis para cada bloco desse que expliquei, pintei em amarelo o que está depreciado:

EXPLORAÇÕES – RISCO NA PRÁTICA

Abaixo vou elencar falhas divulgas que podem reforçar os problemas de se utilizar qualquer elemento desses que estão depreciados:

BEAST (Exploração do navegador contra SSL / TLS) – CVE-2011-3389

  • Descrição:
    • Permite que ataques MiTM obtenham informações de uma sessão usando SSL / TLS1.0.
    • Esta vulnerabilidade é muito complexa de explorar, pois requer força bruta para obter informações úteis.
    • É causado pelos vetores de inicialização TLS1.0 nas cifras CBC e RC4.
  • Recomendação: desative SSLv3, TLS1.0 e TLS1.1 no servidor.

CRIME (vazamento de informações de taxa de compressão facilitado) – CVE-2012-4929

  • Descrição:
    • É baseado no sequestro de sessões nos protocolos HTTPS e SPDY através do roubo de cookies de sessão, explorando a compressão HTTP com força bruta. Esta exploração é possível porque SSL / TLS e SPDY usam um algoritmo de compressão denominado DEFLATE, que elimina strings duplicadas durante a conexão entre o cliente e o servidor.
    • Apesar disso, a compactação TLS está atualmente desativada nos navegadores Chrome, Mozilla, Opera Safari e Internet Explorer, portanto, desativá-la no servidor ajudaria a proteger os usuários que usam navegadores desatualizados.
  • Recomendação: desative a compactação em TLS e HTTP no servidor.

BREACH (reconhecimento de navegador e exfiltração via compressão adaptativa de hipertexto) – CVE-2013-3587

  • Descrição:
    • É uma variante do ataque CRIME, que difere deste porque o BREACH se concentra no ataque a respostas HTTP, que usam compactação no nível HTTP (em vez de no nível TLS, como é o caso do CRIME). , que por sua vez é mais comum.
  • Link de referência de vulnerabilidade: http://breachattack.com/
  • Recomendação: desative a compactação em TLS e HTTP no servidor.

FREAK (Factoring RSA Export Keys) – CVE-2015-0204

  • Descrição:
    • É especialmente focado em servidores que aceitam RSA_EXPORT em seus conjuntos de criptografia.
    • Consiste em interceptar as comunicações HTTPS entre o cliente e o servidor e forçar o servidor a usar criptografia obsoleta ou vulnerável (ou seja, fazer downgrade) para quebrar as chaves.

Heartbleed – CVE-2014-0160

  • Descrição:
    • Permite que um atacante leia a memória de um cliente ou servidor, podendo obter as chaves privadas de um servidor SSL e comprometendo a integridade do servidor e dos usuários que se conectam a ele, além de sua confidencialidade.

Bar Mitzvah – CVE-2015-2808

  • Descrição:
    • Ele explora a geração pseudo-aleatória de chaves que o algoritmo RC4 usa e, com ela, consegue obter os primeiros 100 bytes de uma conexão TLS / SSL. 
  • Recomendação: Desative o uso do RC4.

LOGJAM – CVE-2015-4000

  • Descrição:
    • Possui uma lógica semelhante à vulnerabilidade FREAK já que ambos buscam downgrade do servidor, mas com a diferença que neste caso viola aqueles servidores que suportam DHE_EXPORT (devido a uma falha no protocolo TLS) obrigando-os a utilizar um grau menor de exportação. em conexões de 512 bits, que podem ser descriptografadas com relativa facilidade. 
  • Link de referência de vulnerabilidade: https://weakdh.org/
  • Recomendação: desative DHE_EXPORT e implemente Diffie-Hellman 2048 bits.


Lucky13 – CVE-2013-0169

  • Descrição:
    • Este ataque é mais teórico devido às condições que devem ser estabelecidas na configuração do servidor e ao grande número de requisições que devem ser feitas, explorando o uso de CBC (Cipher-Block-Chainning) e o cálculo de MAC.
  • Recomendação: Desative o uso de CBC.

POODLE – CVE-2014-3566

  • Descrição:
    • Parte disso, quando uma tentativa de conexão segura falha, ele tenta fazer a conexão novamente, mas com um protocolo de comunicação mais antigo. Dessa forma, um invasor pode causar intencionalmente erros de conexão em protocolos seguros como TLS 1.2, TLS1.1 e TLS1.0 e, assim, forçar o uso de SSL 3.0 para explorar a vulnerabilidade.
  • Recomendação: desative SSLv3, TLS1.0 e TLS1.1 no servidor.

SWEET32 – CVE-2016-2183

  • Descrição:
    • Isso tornaria mais fácil para um invasor remoto obter informações confidenciais devido a uma falha de criptografia DES / 3DES.
    • Um invasor pode realizar ataques MiTM capturando grandes quantidades de tráfego criptografado entre o servidor SSL / TLS e o cliente e recuperando os dados em texto não criptografado. 
  • Link de referência de vulnerabilidade: https://sweet32.info/
  • Recomendação: desative SSLv3, TLS1.0 e TLS1.1 no servidor.

RACCOON – CVE-2020-1968

  • Descrição:
    • Ele faz uso da troca de chaves Diffie-Hellman durante o handshake em TLS1.2 (e versões anteriores), para que ele descriptografe a conexão entre um cliente e o servidor.
    • A vulnerabilidade é encontrada na chave Premaster Secret usada na geração das chaves de criptografia na comunicação, que é usada como uma variável de entrada no KDF (Key Derivation Function). O KDF é baseado em hashes com diferentes perfis de tempo, de forma que essas medidas de tempo podem ajudar um invasor a gerar novas chaves secretas pré-mestre, encaminhando essa chave para o servidor para personificar um cliente em uma nova conexão.
    • Esse ataque é complexo de explorar, pois um grande número de solicitações deve ser feito para construir uma nova chave e, por sua vez, depende da configuração do comportamento de temporização do servidor .
  • Link de referência de vulnerabilidade: https://raccoon-attack.com/
  • Recomendação: Desative o uso de Diffie-Hellman para troca de chave (troca de chave DH) em TLS1.2 e versões anteriores.

Bom, acredito que aqui tenha um material bem completo. Gostaria de citar aqui o pessoal do Flu Project que me inspirou a construir este material, baseado em um post deles, 90% do mérito é deles 🙂

Quebrar senhas md5

Você está com aquele hash MD5 e não tem nenhuma ferramenta para quebra-lo?

Não se desespere seus problemas acabaram!!!

Veja uma lista de sites que fazem o trabalho sujo para você.

WPACracker http://www.wpacracker.com/ – Contribuição do Suffert
passcracking.ru http://passcracking.ru/
md5crack http://md5crack.com/
md5decryption: http://md5decryption.com/
TheKaine.de: http://md5.thekaine.de/
AuthSecu: http://authsecu.com/decrypter-dechiffrer-cracker-hash-md5/decrypter-dechiffrer-cracker-hash-md5.php
hackcrack: http://hashcrack.com/index.php
insidepro: http://hash.insidepro.com/
md5decrypter: http://md5decrypter.com/
md5pass.info: http://md5pass.info/
Plain-Text.info http://plain-text.info/add/
Hashkiller: http://hashkiller.com/password/
Cryptohaze: http://www.cryptohaze.com/addhashes.php
md5rednoize: http://md5.rednoize.com/
milw0rm: http://milw0rm.com/cracker/insert.php
GData: http://gdataonline.com/seekhash.php
c0llision: http://www.c0llision.net/webcrack.php
PassCracking: http://passcracking.com/
ISC Sans: http://isc.sans.org/tools/reversehash.html

Ahhh!!! Está com preguiça de acessar todos estes sites então use um script perl que faz isso para você.

O que?!? Achou esse script fraquinho então use o módulo para o Metasploit AQUI.

Veja ele em ação:

msf auxiliary(md5check_md5crack) > run
[*] Sending 098f6bcd4621d373cade4e832627b4f6 hash to md5crack.com…
[*] plaintext md5 is: test
[*] Auxiliary module execution completed

Fonte:Alexos

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