MÉTODO 2FA BYPASS:
Ignorando 2FA com Modlishka.
Primeiro vá para https://github.com/drk1wi/Modlishka e leia atentamente as instruções.
introdução à ferramenta Modlishka de proxy reverso, que acabei de lançar. Espero que este software reforce o fato de que a engenharia social é uma ameaça séria e não pode ser tratada levianamente.
Na página abaixo, descreverei brevemente como é possível contornar a maioria dos esquemas de autenticação 2FA usados atualmente, incluindo interceptação de token OTP e sequestro de sessão de usuário pós-autenticação.
Introdução Modlishka
Ao longo de muitos anos de experiência em testes de penetração, descobri que a 'engenharia social' é a maneira mais fácil e eficaz de obter uma posição adequada na rede interna de meus clientes. Eu sei que muitos grupos APT pensam o mesmo Isso é tudo porque definitivamente não é necessário queimar um exploit/s de 0 dia para todas aquelas defesas de segurança sofisticadas de alto nível que estão protegendo o perímetro, quando muitas vezes apenas alguns e-mails ou chamadas telefônicas servirão perfeitamente para comprometer a infraestrutura interna e os dados confidenciais das empresas.
Modlishka foi escrito com o objetivo de tornar essa segunda abordagem (campanhas de phishing éticas) o mais eficaz possível e mostrar que o 2FA atual não protege bem contra essa forma de ataque.
Esta ferramenta deve ser muito útil para todos os testadores de penetração, que desejam realizar uma campanha de phishing eficaz (também como parte de seus compromissos de red team).
Bypassing 2FA
Chega de apresentações e vamos ao 'mérito'.
Observação: este será um exemplo de configuração que será executado localmente em seu computador.
1. Busque a ferramenta
$ go get -u github.com/drk1wi/Modlishka
$ cd $GOPATH/src/github.com/drk1wi/Modlishka/
2. Configure o plug-in 'autocert'
Esta etapa é necessária se você deseja servir o página em um canal TLS confiável do navegador:
$ openssl genrsa -out MyRootCA.key 2048`
$ openssl req -x509 -new -nodes -key MyRootCA.key -sha256 -days 1024 -out MyRootCA.pem
Substitua a variável const CA_CERT pelo conteúdo do arquivo MyRootCA.pem e const CA_CERT_KEY pelo conteúdo de MyRootCA.key no arquivo 'plugin/autocert.go'.
Instale e defina o nível de confiança correto para a CA 'MyRootCA' no armazenamento de certificados do seu navegador e pronto.
3. Compile e execute Modlishka
$ make
$ sudo ./dist/proxy -config templates/google.com_gsuite.json
Um pequeno aviso aqui: não estou incentivando a realização de campanhas contra nenhuma empresa em particular. A escolha de um serviço de exemplo é puramente baseada em sua popularidade e acredito que está muito bem protegido. Como tal, não estou tentando provar que não é o caso (especialmente porque a maioria dos serviços pode ser segmentada de maneira semelhante), mas para aumentar a conscientização sobre o risco usando um dos serviços mais populares como prova de conceito .
4. Veja a página da web em seu navegador
Modlishka em ação contra um exemplo de esquema de autenticação habilitado para 2FA (SMS):
Assista ao vídeo
O link a seguir pode ser usado para visualizar sua página de teste lançada. Você pode observar como o parâmetro 'ident' está oculto do usuário em uma primeira solicitação: https://loopback.modlishka.io?ident=user_tracking_param .
Credenciais coletadas, tokens 2FA e todas as outras solicitações (para todos os domínios relacionados) podem ser encontradas no arquivo 'log' ou em um dos plug-ins incluídos (isso inclui prova de conceito de representação de sessão - ainda em versão beta): texto
alternativo
texto alternativo
5. Personalize suas configurações
Se você gosta da ferramenta. Você pode começar a ajustar a configuração para o domínio escolhido. O Modlishka pode ser facilmente personalizado por meio de um conjunto de opções de linha de comando disponíveis ou arquivos de configuração JSON.
Consulte as páginas wiki para obter mais descrições de funcionalidade.
Conclusão
Então surge a pergunta o 2FA está quebrado?
De forma alguma, mas com um proxy reverso correto direcionado ao seu domínio por meio de um canal de comunicação criptografado e confiável do navegador, pode-se realmente ter sérias dificuldades em perceber que algo está seriamente errado.
Adicione à equação diferentes bugs do navegador, que permitem a falsificação da barra de URL, e o problema pode ser ainda maior
Incluir a falta de conscientização do usuário e significa literalmente dar seus ativos mais valiosos para seus adversários em uma bandeja de prata.
No final, mesmo os sistemas de defesa de segurança mais sofisticados podem falhar se não houver conscientização suficiente do usuário e vice-versa.
Atualmente, a única maneira de resolver esse problema, do ponto de vista técnico, é confiar inteiramente nos tokens de hardware 2FA, baseados no protocolo U2F. Você pode facilmente comprá-los online. No entanto, lembre-se de que a conscientização correta do usuário é igualmente importante.
Resumindo, você deve:
usar tokens de hardware U2F como seu segundo fator de autenticação.
use gerenciadores de senhas, que garantirão que o nome de domínio em seu navegador esteja correto antes de colar a senha.
aumentar constantemente a conscientização do usuário sobre as técnicas atuais de engenharia social.
Por que estou lançando esta ferramenta? Acredito que sem uma prova de conceito funcional, que realmente comprove o ponto, o risco é tratado como teórico e nenhuma medida real é tomada para tratá-lo adequadamente. Esse status quo e a falta de consciência correta sobre o risco é uma situação perfeita para agentes mal-intencionados que o explorarão com prazer*. Isso diz respeito aos esquemas 2FA usados atualmente, bem como à conscientização do usuário.
*Este foi o caso no ano passado, uma vez que o conceito de usar um proxy reverso básico para fins de phishing já foi ativamente explorado (relatório da Anistia Internacional).