ArtigosbannerOffensive

MultiRelay, Pivot e muito mais – Responder Parte 3

Fala galera, hoje irei falar sobre a funcionalidade de MultiRelay do Responder, esse será o terceiro e último post da série Responder. Esse módulo é simplesmente sensacional e nos permite realizar várias ações como Pivot, dump de hashes, dump de chaves de registro, download e upload de arquivos, carregar o módulo do mimikatz e etc.

Bem, como nos últimos posts eu já falei bastante da ferramenta e seus modos de ataque, hoje eu vou me restringir ao módulo do MultiRelay. Caso você ainda não tenha visto os outros posts, recomendo fortemente a leitura antes de continuar aqui. Para checar acesse:

LLMNR / NBT-NS Poisoning Attack – Responder Parte 1

Brincando com WPAD, LDAP, FTP e SQL – Responder Parte 2

Multirelay – Introdução

O Responder é praticamente obrigatório para a maioria dos pentesters. A gente usa ele frequentemente nos pentests para ganhar acesso ao domínio do cliente mais facilmente. No entanto, quando os clientes aplicam políticas de senha forte e os usuários são bem instruídos para não utilizar senhas facilmente dedutíveis, nós somos forçados a apelar para força bruta para tentar “crackear” esses hashes, a técnica de dicionário acaba se tornando inútil. Devido ao curto tempo da maioria dos pentests, essa opção acaba não sendo muito viável. Mas graças a Deus o Laurent Gaffie desenvolveu o MuntiRelay para nos ajudar 🙂

O MultiRelay é um módulo do Responder que nos permite realizar ataques de relay usando o NTLMv1 e o NTLMv2, em outras palavras ele vai pegar requisição de autenticação do usuário da rede e encaminhar para o nosso alvo. O MultiRelay tira vantagem de ambientes Windows comumente mal configurados que não forçam a assinatura SMB. Quando um ambiente não força a assinatura SMB nem o cliente e nem o servidor realizam validação um do outro ou do payload. Isso permite que ataques SMB MitM sejam possíveis, o que significa shell pra gente 🙂

Caso você não tenha visto o post sobre SMB Relay, eu super recomendo ler ele antes de continuar esse post, lá eu explico detalhes muito importantes desse ataque que vai te ajudar entender o MultiRelay. Acesse:

Entendendo o Ataque SMB Relay – NTLMv2

Laboratório

Nosso ambiente de laboratório é bem simples, mas também bem comum pelas redes a fora. É composto por um firewall, servidores (AD, SQL, HTTP, FTP e etc..) e os clientes da rede. A imagem abaixo ilustra bem:

cenario_responder

Fase de Ataque

Antes de mais nada nos precisamos aprender um pouco mais sobre os hosts da rede e definir um alvo. Para nos ajudar com essa etapa nos iremos utilizar o script RunFinger.py Ele irá nos dizer algumas informações sobre os hosts da rede, tais como versão do SO, nome de domínio e se a assinatura SMB é mandatória ou não naquele host. No nosso laboratório a saída do comando foi:

Perceba que das quatro máquinas existentes apenas uma delas está com a funcionalidade de assinatura SMB habilitada (10.0.0.100). No nosso caso esse host é o PDC, esse cenário vai se repetir muitas vezes na vida real. Agora que já sabemos quais hosts podem ser possíveis alvos vamos para o próximo passo, mudar algumas configurações no arquivo responder.conf, iremos desabilitar as funções SMB e HTTP.

Isso é necessário por que o MultiRelay trabalha em conjunto com o Responder. Nesse cenário todas as pesquisas NBT-NS e LLMNR serão resolvidas pelo Responder para o nosso IP e o MultiRelay irá ficar escutando nas portas TCP 80, 3128 e 445 e esperando novas conexões. Uma vez que essas conexões são recebidas, o MultiRelay irá analisar todas as requisições de autenticação e irá verificar se a autenticação do usuário pode ser encaminhada para o alvo e se o usuário já foi encaminhado antes e recebeu uma falha de logon.

Caso ele já tenha sido encaminhado antes e teve falha na autenticação esse usuário será posto na blacklist para não ser encaminhado novamente, isso evita que o usuário seja bloqueado no PDC e gere alertas para o administrador da rede. Caso a autenticação do usuário não possa ser encaminhada, o hash NTLMv1/v2 dele será armazenado no arquivo “SMB-Relay-CLIENTIP.txt”, dessa forma você não irá perder nenhum hash que seja transmitido na rede enquanto esteja usando o MultiRelay. Para iniciar o nosso ataque primeiro iremos rodar o Responder em um terminal com o seguinte parâmetro:

Em outro terminal iremos executar o MultiRelay definindo como alvo o ip 10.0.0.99 que foi um dos hosts da rede que identificamos com o RunFinger que não exige assinatura do SMB. Agora é só esperar que a requisição de autenticação de algum usuário privilegiado seja capturada pelo Responder para o MultiRelay poder fazer seu trabalho.

Perceba que caso a requisição de autenticação de algum usuário sem privilégio seja capturada irá dar erro e esse usuário será posto na blacklist para evitar um possível bloqueio. No exemplo abaixo o usuário “user1” não tem privilégios:

Entretanto, quando a requisição de autenticação de algum usuário privilegiado é encaminhada nos conseguimos ter sucesso no nosso ataque. No exemplo abaixo com o usuário “ricardo” foi possível ter acesso a shell do nosso alvo:

Post-Exploitation

Uma vez com acesso ao alvo podemos fazer mais algumas atividades bem interessantes como dump de hashes e registro, scan da rede, lateralização de ataque, download e upload de arquivos e etc. Vamos começar fazendo o dump dos hashes NTLM da tabela SAM:

O próximo passo é fazer o dump dos hashes NTLM que estão carregados na memória, para isso iremos utilizar o bom e velho mimikatz, com o comando “mimi sekurlsa::logonpasswords” nós conseguimos visualizar todas as credencias carregadas:

Rodar comandos com o usuário SYSTEM é bem legal, porém não se pode fazer muita coisa com ele na rede, o que significa que você não pode acessar outros hosts da rede com essa conta. Isso limita o comprometimento para apenas um host na rede e você provavelmente irá ter que esperar bastante tempo até outro hash admin dar sopa.

Pensando nisso foi desenvolvido a capacidade de rodar comandos como o usuário local logado na máquina e ter a capacidade de fazer pivot pela rede. Em outras palavras, nós somos capazes de personificar qualquer usuário logado na máquina e reutilizar a sua credencial em outros hosts na rede. Isso abre um novo vetor de ataque NTLM Relay que consiste em propagação e comprometimento em massa como resultado de apenas uma autenticação comprometida.

Para fazer o pivot precisamos analisar a rede em busca de hosts que não forçam a assinatura SMB, nos podemos fazer isso usando o utilitário RunFinger ou o comando scan do MultiRelay:

Como exemplo iremos lateralizar o ataque para o host 10.0.0.202, o outro host da lista exige a assinatura SMB, portanto não é possível fazer o pivot nele, mas temos outras opções como fazer o ataque Pass the Hash por exemplo.

Bem pessoal é isso ai, espero que tenham curtido. Não preciso dizer que esse post tem fins educacionais apenas, não utilize esse conhecimento para fins maliciosos. Não esqueçam de curtir nossas páginas nas redes sociais, FacebookG+ e seguir o Guia do Ti no Twitter. Compartilhem e comentem esse artigo, isso é muito importante para divulgação do nosso trabalho.

Referências

https://g-laurent.blogspot.com.br/2016/10/introducing-responder-multirelay-10.html
https://g-laurent.blogspot.com.br/2017/03/multirelay-20-runas-pivot-svc-and.html
https://www.youtube.com/channel/UCVm-Epk7nIOtk4xMct0J3eQ
http://threat.tevora.com/quick-tip-skip-cracking-responder-hashes-and-replay-them/

 

Ricardo Galossi
Siga me
Últimos posts por Ricardo Galossi (exibir todos)

Ricardo Galossi

É um apaixonado por segurança da informação, atua profissionalmente há mais de 7 anos na área de tecnologia da informação, onde é focado em análise de vulnerabilidades e testes de invasão. Criou o blog Guia do TI para compartilhar conhecimento, ajudar os mais novos, incentivar debates e manter a comunidade atualizada com as principais notícias da área de TI.

Deixe seu comentário