Você está na página 1de 6

MATERIAL PARA PENTEST

Conceitos básicos

Pentest: O teste de intrusão (do inglês "Penetration Test" ou pentest"), também


traduzido como "teste de penetração", é um método que avalia a segurança de um
sistema de computador ou de uma rede, simulando um ataque de uma fonte maliciosa. O
processo envolve uma análise nas atividades do sistema, que envolvem a busca de
alguma vulnerabilidade em potencial que possa ser resultado de uma má configuração do
sistema, falhas em hardwares/softwares desconhecidas, deficiência no sistema
operacional ou técnicas contramedidas. Todas as análises submetidas pelos testes
escolhidos são apresentadas no sistema, junto com uma avaliação do seu impacto e
muitas vezes com uma proposta de resolução ou de uma solução técnica.

Objetivo: Pode ser classificado como método de auditoria de segurança que o


administrador de redes, analista de teste/tester ou até mesmo os pentester, que são
profissionais especializados em realizar teste de intrusão, simulam ataques com o intuito
de mensurar o impacto da varredura caso seja bem sucedido e seja descoberto falhas ou
bug. Desta forma é possível descobrir o conjunto de vetores de ataques, vulnerabilidade
de alto e baixo risco, identificar os que podem ser difíceis ou impossíveis de detectar, os
impactos operacionais, testar a capacidade defensiva da rede e identificar a reação do
sistema aos ataques.
Dentre vários motivos pra realizar um ataque a um software, se destaca as invasões por
questões financeiras, pessoais, cometer fraudes, sabotagem ou espionagem.O invasor é
uma pessoa com alto nível de conhecimento técnico, seus ataques são minuciosamente
planejados, é importante que haja o estudo do comportamento do alvo, assim ira descobri
uma brecha na segurança dando início ao seu objetivo depois de passar por várias etapas
ou fases.
As etapas de estudo se dividem em:
1. Coletar informações: toda e qualquer informação sobre a empresa a ser atacada é
indispensável, como o ramo de atuação, se existem filiais ou empresas coligadas,
endereços de e-mails, nomes dos principais cargos. Com esses dados é possível
descobrir se a empresa utiliza VPN (Virtual Private Network) e coletar endereços
dos servidores DNS (Domain Name Service).
2. Mapeamento de rede: através do DNS é possível descobrir a topologia da rede, IP
e a quantidade de computadores na rede interna.
3. Enumeração de serviços: depois de conhecer as maquinas da rede, essa etapa
consiste em descobrir os serviços que estão sendo executados em uma
determinada porta utilizando um programa que monitora atrás das conexões. Na
porta 80 por exemplo, a conexão é com o servidor web.
4. Busca de vulnerabilidades: fase em que o software é examinado com intuito de
encontrar alguma vulnerabilidade e se é explorável.
5. Exploração das vulnerabilidades: após a busca das vulnerabilidades, é realizado a
invasão ao software, podendo interromper o serviço, atacar o SQL ou dar início à
execução de um outro programa que recebe comandos remotamente.
6. Implantação de backdoors e rootkits: o invasor deixa instalado um programa que
facilita o seu retorno ao software. Esses tipos de programas são chamados de
backdoors (“portas dos fundos”) e rootkits (programas que se mantêm do núcleo do
sistema operacional, difíceis de serem localizados).
7. Eliminação de vestígios: as invasões são registradas através do histórico (logs) ou
de arquivos temporários. Para apagar os rastros o invasor terá que apagar esses
registros, podendo tornar impossível ser identificado.

Aplicação: Os serviços oferecidos por empresas contratadas para usar o teste de


intrusão, podem ser uma simples varredura na organização dos endereços IP, abrir/fechar
portas ou fazer uma auditoria completa no escopo da rede em busca de vulnerabilidade.
Segundo a página “Software Livre Brasil”, há vinte e um passos para se realizar teste de
segurança:

1. Análise da rede;
2. Análise de portas;
3. Identificação de sistemas;
4. Provas de debilidades em sistemas sem fios (dependendo segundo o caso);
5. Verificação de serviços (site, correio, servidor de nomes, documentos visíveis, vírus
e trojans);
6. Determinação de vulnerabilidades;
7. Identificação de exploits;
8. Verificação manual de vulnerabilidades;
9. Verificação de aplicações;
10.Verificação de firewall e ACLs;
11.Revisão das políticas de segurança;
12.Revisão de sistemas de detecção de intrusos;
13.Revisão de sistemas de telefonia (dependendo segundo o caso)
14.Obtenção de informação (serviços de notícias, notas de imprensa, informações
facilitadas pela própria empresa).
15.Engenharia social;
16.Verificação de sistemas “confiáveis”;
17.Análise de robustez de senhas;
18.Negação de serviço;
19.Revisão da política de privacidade;
20.Análise de cookies e bugs no site;
21.Revisão de arquivos de anotações cronológicas (logs).
Exploit: Um exploit geralmente é uma sequência de comandos, dados ou uma parte de
um software elaborados por hackers que conseguem tirar proveito de um defeito ou
vulnerabilidade. O objetivo, neste caso, é causar um comportamento acidental ou
imprevisto na execução de um software ou hardware, tanto em computadores quanto em
outros aparelhos eletrônicos.
Para fins maléficos, um exploit pode dar a um cracker o controle de um sistema de
computador, permitindo a execução de determinados processos por meio de acesso não
autorizado a sistemas, ou ainda realizar um ataque de negação de serviço.
Diferente de outros meios de disseminação de vírus e ataques cibernéticos, um exploit
não precisa que o usuário clique em um determinado link ou faça o download para a
execução de algum arquivo. Por isso, os exploits são armas perigosas nas mãos de
hackers mal intencionados.

Payload: Em segurança da informação o termo Payload refere-se a um código malicioso


que executa uma ação destrutiva no sistema alvo, fornecendo acesso privilegiado e
permissões, por exemplo: criar um usuário, iniciar ou migrar um processo e até mesmo
apagar arquivos em uma fase de pós-exploração.
Isso acontece quando a exploração da vulnerabilidade foi feita anteriormente por um
exploit, veja o que é exploit aqui.
Alguns Payloads fornecem recursos avançados como Meterpreter, VNC Injection e entre
outros.
Como fazer um simples Payload com backdoor no Kali Linux usando o msfvenom +
metasploit
O exemplo a seguir trata-se da criação de um Payload para Windows de arquitetura
32 bits.
O “x86/shikata_ga_nai” é um encode que serve justamente para mascarar o Payload do
antivírus. O servidor que irá escutar as conexões com o alvo tem IP igual a
192.168.48.129 (LHOST=192.168.48.129) e estas mesmas conexões passarão pela porta
4444 (LPORT=4444).
É importante dizer que o nosso Payload é um arquivo executável cujo nome é
helloWorld.exe, o termo “\x00” serve para remover os bytes nulos e
“windows/shell/reverse_tcp” este o qual criará uma shell interativa da máquina atacante
com o alvo.
Shell Reverso: Um dos ataques mais perigosos é quando uma vulnerabilidade permite o
atacante abrir um shell-reverso. Com isso o atacante ganha acesso à máquina invadida e
consegue executar comandos no shell (terminal, prompt). A técnica é chamada de shell-
reverso pois o atacante faz com que a máquina-alvo abra uma conexão para sua
máquina. Logo, o firewall (que normalmente é configurado para barrar conexões de
entrada em portas "desconhecidas") não consegue impedir a conexão.

Primeiramente vamos entender o conceito de firewall de host. O objetivo dele é aplicar


regras para impedir ou bloquear conexões de serem estabelecidas com a máquina em
que ele está instalado. Por padrão, o firewall do WINDOWS bloqueia as conexões de
entrada que não estiverem liberadas por nenhuma regra e libera as conexões de saída
que não casarem com nenhuma regra. Ou seja, conexões de entrada são bloqueadas e
de saída (onde se encaixa o shell-reverso) são liberadas.

Porque utilizar o NMAP?


Como ele é um scanner, ele vai te mostrar vulnerabilidades de determinada máquina ou
site, assim cabendo a você buscar a ferre amenta ideal para fazer o teste de intrusão
naquela brecha, caso não seja suscetível, testa-se na próxima brecha e assim por diante
é feito o pentest.

Links de sites próprios para invasão e estudo com suas devidas vulnerabilidades
especificadas para utilização de determinada ferramenta:
http://www.vulnweb.com/

Software/Distro Pentest - Download

Pentest Box
https://pentestbox.org/pt/
Ferramentas com descrição:
https://tools.pentestbox.org/

Kali Linux
https://www.kali.org/downloads/
Ferramentas com descrição:
https://tools.kali.org/tools-listing

Ferramentas famosas:
Meterpreter
SqlMap
Hydra
Netapi
Aircrack-ng
Nikita
Havij
Material de Apoio:
Metasploit de cabo a rabo – Entendendo o framework:
https://www.guiadoti.com/2018/05/metasploit-framework-de-cabo-a-rabo-parte-5/
Armitage - Opção para quem não gosta do console do Metasploit:
https://www.vivaolinux.com.br/artigo/Armitage-a-nova-interface-grafica-do-Metasploit

Ataques:
Shell Reverso:
https://wiki.hackstore.com.br/Shell_reversa_utilizando_Netcat
Invasão simples com Meterpreter:
https://www.vivaolinux.com.br/artigo/Intrusao-simples-com-Metasploit
Invasão com MSRPC:
https://www.vivaolinux.com.br/artigo/Teste-de-Intrusao-com-Metasploit
Explorando falhas de SQL Injection via POST com SQLmap:
https://www.nanoshots.com.br/2015/10/explorando-falhas-de-sql-injection-via.html (Opção:
OWASP ZAP 2.7.0)
Explorando falhas de SQL Injection via GET com SQLmap:
https://www.nanoshots.com.br/2015/07/explorando-falhas-de-sql-injection-com.html
Ataque Simples com SQLInjection:
https://blog.tecnologiaesi.com.br/ataque-de-sql-injection/

Vídeos de Apoio:
Pentest Box:
https://www.youtube.com/watch?v=cOV7FtbfBRw&feature=youtu.be
https://www.youtube.com/watch?v=ArCet6YflhE&feature=youtu.be (Ferramentas)

SQL Injection com SQLMAP - Vulnerabilidades Web (KALI LINUX):


https://www.youtube.com/watch?v=oKaU0lowofo&feature=youtu.be

SQL injection com a ferramenta SQLMAP (Pentest Box):


https://www.youtube.com/watch?v=qo24M2BEumY&feature=youtu.be
Shell Reverso com Netcat (Kali Linux):
https://www.youtube.com/watch?v=I6Fue158s-c&feature=youtu.be