teste de invasão adisson

9
Aula 5 (mod1) - Teste de invasão (TDI, PenTest, Penetration Test) Conhecer ao inimigo e a si mesmo! Objetivo: OBTER ACESSO (explorar e-mails, sistemas,..., o que for necessário para obter acesso, ou seja, independe do método adotado ou falha encontrada). É diferente de avaliação de segurança ou análise de vulnerabilidade! Tipos de Pentest (existem aí subtipos): 1. BlackBox: É um teste cego. O pentester não possui muitas informações do alvo (no caso de um teste externo, talvez ele saiba apenas o domínio a ser avaliado ou IP do alvo; quando for um teste interno, talvez tenha apenas acesso a um ponto de rede). 2. GrayBox: Verifica a existência de inconsistências nas informações de acesso de usuários (por exemplo, descobrir o que um usuário ou funcionário consegue acessar/fazer dentro de uma empresa com o acesso que tem). Também serve para web (por exemplo se tem como alterar o preço de um produto no momento da compra, etc.). 3. WhiteBox: Teste em que o pentester tem todas as informações sobre o objetivo e portanto é um teste mais abrangente e detalhado. Pode ser usado para code review (revisão de códigos) em códigos web. Fases de um ataque (na ordem): 1. Levantamento de informações: coleta de nome de funcionários, emails, telefones, redes sociais, site, empresa, sites, etc. 2. Varredura: Busca mais detalhes do alvo, como qual o sistema operacional, quais serviços estão sendo executados e quais disponíveis, qual versão de cada serviço, tem DS, OS, honeypot, firewall, existe alguma rede interna/externa, etc. 3. Ganho de acesso: Explorar os vetores encontrados na varredura para ganhar acesso (o objetivo). Pode ser feito através de ataque de força bruta, ataque de força bruta remoto, captura de tráfego, ataque de engenharia social, ataque de exploração web, exploração do sistema operacional, etc. 4. Manter o acesso: Buscar manter o acesso já obtido. Pode ser feito através de uma backdoor. 5. Apagar rastros: auto-explicativo! Categoria de Ataques: 1. Server side attack: Este tipo é uma tentativa de explorar serviços em execução em um determinado dispositivo. Não precisa que um usuário esteja interagindo. 2. Client side attack: Este ataque tenta explorar aplicações que estão sendo executadas. Precisa da interação do usuário, ou seja, que ele excute uma aplicação ou faça um dowload, etc. Aula 6 (mod1) - No tech hacking: invasões sem tecnologia Algumas técnicas: 1. Dumpter Diving: procurar informações no lixo para acesso a informações

Upload: adisson-aires

Post on 10-Jul-2016

216 views

Category:

Documents


1 download

DESCRIPTION

Teste de invasão completo

TRANSCRIPT

Page 1: Teste de Invasão Adisson

Aula 5 (mod1) - Teste de invasão (TDI, PenTest, Penetration

Test) Conhecer ao inimigo e a si mesmo!

Objetivo: OBTER ACESSO (explorar e-mails, sistemas,..., o que for necessário para

obter acesso, ou seja, independe do método adotado ou falha encontrada).

É diferente de avaliação de segurança ou análise de vulnerabilidade!

Tipos de Pentest (existem aí subtipos):

1. BlackBox: É um teste cego. O pentester não possui muitas informações do alvo

(no caso de um teste externo, talvez ele saiba apenas o domínio a ser avaliado ou

IP do alvo; quando for um teste interno, talvez tenha apenas acesso a um ponto

de rede).

2. GrayBox: Verifica a existência de inconsistências nas informações de acesso de

usuários (por exemplo, descobrir o que um usuário ou funcionário consegue

acessar/fazer dentro de uma empresa com o acesso que tem). Também serve

para web (por exemplo se tem como alterar o preço de um produto no momento

da compra, etc.).

3. WhiteBox: Teste em que o pentester tem todas as informações sobre o objetivo

e portanto é um teste mais abrangente e detalhado. Pode ser usado para code

review (revisão de códigos) em códigos web.

Fases de um ataque (na ordem):

1. Levantamento de informações: coleta de nome de funcionários, emails,

telefones, redes sociais, site, empresa, sites, etc.

2. Varredura: Busca mais detalhes do alvo, como qual o sistema operacional, quais

serviços estão sendo executados e quais disponíveis, qual versão de cada

serviço, tem DS, OS, honeypot, firewall, existe alguma rede interna/externa, etc.

3. Ganho de acesso: Explorar os vetores encontrados na varredura para ganhar

acesso (o objetivo). Pode ser feito através de ataque de força bruta, ataque de

força bruta remoto, captura de tráfego, ataque de engenharia social, ataque de

exploração web, exploração do sistema operacional, etc.

4. Manter o acesso: Buscar manter o acesso já obtido. Pode ser feito através de

uma backdoor.

5. Apagar rastros: auto-explicativo!

Categoria de Ataques:

1. Server side attack: Este tipo é uma tentativa de explorar serviços em execução

em um determinado dispositivo. Não precisa que um usuário esteja interagindo.

2. Client side attack: Este ataque tenta explorar aplicações que estão sendo

executadas. Precisa da interação do usuário, ou seja, que ele excute uma

aplicação ou faça um dowload, etc.

Aula 6 (mod1) - No tech hacking: invasões sem tecnologia

Algumas técnicas:

1. Dumpter Diving: procurar informações no lixo para acesso a informações

Page 2: Teste de Invasão Adisson

2. Acesso indevido: conversas; senhas de wifi livres; documentos privados

expostos. Podem levar a informações.

3. Shoulder surfing: espiar por trás do ombro

4. Lock picking: abertura de cadeados para acesso a informações

5. Engenharia social: pode ser não tecnológica (baseada em pessoas) e

tecnológicas (baseada em computadores).

Dicas de segurança:

1. Não falar coisas privadas em local público;

2. Descartar apropriadamente o lixo (queimar, picotar...); usar fechaduras decentes;

manter bolsas, coisas pessoais por perto sempre; perceber se alguém está

espionando atrás; bloquear acesso indevido a pessoas indevidas em locais onde

se trocam informações sigilosas.

Atividade: tirar fotos e comentar possíveis fontes de tech hacking que eu encontre por

aí.

Aula 7 (mod1) - War Games (jogos de gerra)

Nesta categoria temos 2 opções: war games online e war games de desktop.

1 - War games online: Nestes jogamos online. Para vencer um desafio (quebrar

uma senha):

procuro no código fonte informações explícitas sobre usuário e senha ou

coisas suspeitas no código (um desvio para uma outra página, um script, algo

com uma extensão diferente, tipo .psd, etc. – isso caso não esteja explícito no

código a autenticação quando entrar com usuário e senha definidos).

Quando nada no código fonte indique pistas, posso logar com qualquer coisa e

ver se acabo em uma outra página indicando erro. Nesta outra página, tento de

novo ver o código fonte. As extensões suspeitas podem ser de softwares que

não possuo instalados. Neste caso posso usar um leitor online. Várias opções

em: http://www.clicandofacil.com.br/ . Para ler de uma url, coloco o endereço

todo dela, com o nome do arquivo com a extensão no final.

Quando aparecer um código criptografado, existem vários sites para

decriptogravar:

Page 3: Teste de Invasão Adisson

Além disso, pode aparecer um pedido de autenticação em flash/java. Neste

caso existem alguns sites aos quais podemos recorrer: www.showmycode.com

e...

Outra possibilidade é explorar a imagem mostrada no site (esteganografia).

Para isso abro a url da imagem (ou salvo a imagem) e jogo em um site

específico para isto para ver o código da imagem em texto: futureboy.us/stegano

e...

Page 4: Teste de Invasão Adisson

Outra possibilidade é aparecer um conjunto de números (código em ASCII), em

que cada número corresponde a uma letra. Daí tenho que decifrar isso. Às vezes

no próprio fonte da página tem alguma dica para isso, um dicionário para se

entender o código. Alguns programadores a colocam no final da página do

código fonte. Um exemplo de site para ver o que é cada # é:

http://www.cambiaresearch.com/articles/15/javascript-char-codes-key-codes .

Mas para não ficar traduzindo número por número, existem conversores de ascii

na internet. Com a busca “ascii conversion applet” é possível achar algumas

opções como: http://www.asciitohex.com/ ou www.base64decode.org ou

http://www.cs.carleton.edu/faculty/adalal/teaching/f05/107/applets/ascii.html

Às vezes o site pode pedir para você verificar um arquivo, daí você faz isso

num terminal Linux. Às vezes precisamos instalar algum comando que não é

natural do Linux, como o sl: apt-get install sl

Outra possibilidade é haver um QR-Code para decifrar. Neste caso não se trata

de estenografia. O código está na imagem, então eu salvo a imagem e uso um

site para decodificar a mesma: www.onlinebarcodereader.com

Também podemos recorrer ao SQL Inject, utilizando os códigos em usuário e

senha. Alguns exemplos:

Page 5: Teste de Invasão Adisson

Exemplos de jogos online:

100security.com.br/wargame (o exemplo do nosso curso usa este)

www.hackertest.net

www.mod-x.co.uk

www.try2hack.nl

www.hackthissite.org

bigchalenge.free.fr

Page 6: Teste de Invasão Adisson

Desafios de empresas também aparecem:

Todas as informações desta aula estão disponíveis no Google:

filetype:php site: www.100security.com.br/wargame (esse commando também pode ser

usado no google para achar informação sobre algum site).

2 - War games de desktop: São softwares que instalados no computador que nos

permitem ultrapassar desafios dentro de um contexto proposto (que contém um alvo,

talvez acesso a um arquivo, etc.). São bons para treinamento.

Exemplos de jogos de desktop:

www.uplink.co.uk

www.exosyphen.com

www.streethackercom

www.owasp.org

www.dvwa.co.uk

hackingdojo.com/dojo-media

Aula 1 (mod2) - Entender e Escolher uma Distribuição Linux

Será usado o kali-linux (sub-ramo do Debian) por ter ferramentas de invasão já

prontas. Usamos o VirtualBox (download da versão VirtualBox 5.0 for Windows hosts

x86/amd64 em: https://www.virtualbox.org/wiki/Downloads). Instalamos o VB. Depois

virtualizamos um OS kali-linux no virtualbox, dentro do Windows (no meu caso).

Baixamos o kali 32 bits em https://www.kali.org/downloads/ e para instalar o ISSO,

usamos o VB:

1. New. Enter.

2. Name: Kali Linux; Type: Linux; Version: Debian (32 bit). Enter.

3. Memory Size: 512Mb no mínimo. Enter.

Page 7: Teste de Invasão Adisson

4. Hard Drive: já vai estar a opção “Create a virtual hard drive now”. Enter.

5. Hard drive file type: já vai estar a opção “VDI (VirtualBox Disk Image). Enter.

6. Storage on physical hard drive: já estárá “Dynamically allocated”. Enter.

7. File location and size: 8 Gb no mínimo. Enter. (tá criada a máquina virtual-mv)

Com a vm selecionada, vou no menu do VB:

1. Settings (configurações): System – Prossessor - Extended Features: Enable

PAE/NX.

2. Network: Attached to: Bridged Adapter. Name: en0: (vai aparecer sua opção

de Wifi, algo como Wi-Fi (airport)). Adapter Type: (vai aparecer algo do

tipo Intel PRO/1000 MT Desktop (82540EM)). Advanced: Allow All. Ok.

3. Start (pra instalar a vm). Selecionar o ISO do kali que foi baixado. Start.

4. Escolher Graphical Install. Enter.

5. Escolher idioma, enter; local, enter; e tipo de teclado, enter. (ele vai

configurar coisas e retorna para novas opções:

6. Configure the network: “Please enter the hostname for this system”: kali.

Continue. Domain name: (não põe nada ou cria um nome). Continue.

7. Set up users and passwords: Root Password: (criar uma senha e confirmar).

Continue.

8. Configure the clock: seleciona a timezone. Continue.

9. Partition disks: Guided – use entire disk. Continue. Select disk partition

(deixa o que está). Continue. Selected for partitioning: All files in one

partition (recommended for new users). Continue. Já vai estar selecionado

“Finish partitioning and write changes to disk”. Continue. Write the changes

to disk?: Yes. Continue. (agora ele começa a instalar).

10. Configure the package manager: Yes (se eu quero dar um update nos

pacotes). Continue. HTTP proxy information (blank for none): (não põe

nada aqui). Continue.

11. Install the GRUB boot loader on a hard disk: Yes. Continue.

12. Finish the installation: Continue.

13. Vai dar reboot na vm; aguarda um pouco.

14. Ele inicia com uma janela com o nome da máquina. Kali: Other... Enter.

15. Username: root. Log In.

16. Password: (põe a senha). Log In. Pronto!

OBS. Um possível problema neste ponto é você não conseguir acessar a internet quando

inicia o VB, e neste caso você não consegue prosseguir com a instalação do kali. Não

sei como resolver isso ainda. Outro problema é que você não consiga acessar a internet

a partir do seu Kali (após a instalação). Neste caso feche o linux (sua vm) e vá para o

passo 2 (acima). Tente mudar em “Network:” (ou Rede, se estiver em Português) do

modo brigde para o modo NAT. Daí é só iniciar sua vm (no caso o kali Linux) de novo

e é para funcionar.

Links indicados:

GNU/Linux A Origem: https://youtu.be/o0dJwmiwS4g

Offensive Security: https://www.offensive-security.com/ (tem certificações

interessantes)

VirtualBox: https://www.virtualbox.org/wiki/Downloads

Kali Linux: https://www.kali.org/downloads/

Page 8: Teste de Invasão Adisson

Comandos Linux: Comando Função

<comando> --help ajuda rápida sore o comando

adduser adiciona usuário

apropos <palavra chave que procuro> mostra tudo que tem sobre a palavra chave

cat - t <arquivo> mostra onde aparece tab no arquivo

cat <1o arq> <2o arq.> > <nome final arq. que quero> concatena nome dos 2 arquivos em 1

cat <arquivo ou diretório existente> mostra o que tem dentro

cat > <nome arq. quero criar>escreve tudo escrito na sequencia no arq. criado

(p/ sair, ctrl+d)

cat -e <arquivo> mostra onde termina uma linha no arquivo

cat -n <aquivo> numera as linhas do conteúdo do arq.

cd vai para a home (pasta de usuário)

cd .. vai para o diretorio logo abaixo

cd <diretório> muda de diretório

cd/ vai para o diretório raiz

clear (ctrl+l) limpa tela

cores: azul=diret; verm=arq compact; cor standard=texto, arq. desconhecido

cp <arquivo> /<diretório> copia o arquivo p/ o dir indicado

echo <o que quero escrever> escreve na tela o indicado

echo <o que quero escrever> > <arquivo>escreve no arq indicado que quero

(usando 2x seguidas no mesmo arquivo, sobrescreve)

echo <o que quero escrever> >> <mesmo arquivo> escreve dentro do mesmo arq, mas na linha de baixo

file <arquivo> mostra o tipo de arquivo

head <arquivo existente> mostra as 1as 10 linhas do arq.

head -n5 <arquivo existente> mostra as 1as 5 linhas do arq.

history dá o histórico

history -c limpa o histórico

ls lista o que tem no diretório

ls -l idem ls mas c/ informações

ls -lh idem ls com tamanho em bytes

ls -R lista o diretório com seus subdiretórios

man <comando> mostra tudo sobre o comando (p/ fechar, tecla q)

man 7 undocumented mostra como ajudar na tradução

man -l pt_BR ls puxa o pacote em Português?

mkdir <diretório> cria diretório (e pasta na parte gráfica)

mkdir -p <diretorio>/<subdiret>/<sub-subdiretório> cria diretório com subdiretórios

mv <arquivo> /<diretório>/ move o arq de onde está p/ o dir indicado

mv <arquivo> <novo nome do arquivo> renomeia o arquivo

ping <executável/url> para ver se está executando/funcionando

reboot reinicia o linux

rm -rf <diretório ou arquivo> deleta diretório não vazio e arquivos

rmdir <diretório vazio> deleta diretório vazio

su pra trocar de usuário

tail <arquivo existente> mostra as últimas 10 linhas do arq.

tail -f <arquivo quero monitorar em tempo real> monitora em tempo real as últimas 10 linhas

tail -n3 <arquivo existente> mostra as últimas 3 linhas do arq.

touch <arquivo> cria arquivo

whereis <comando>mostra onde está o executável/manual/arq.

configuração do comando

which <comando> mostra onde está o executável do comando

whoami diz quem é o usuário

Alguns editores de texto do Linux:

VI

Para abrir o vi:

vi <nome do arquivo que quero criar>

Para inserir coisas no arquivo criado:

aperto a tecla I (modo insert), e escrevo o que quero.

Para salvar, aperto esc (para retornar ao modo visual), e escrevo :w

Page 9: Teste de Invasão Adisson

Para salvar e sair do vi, escrevo :q

Para sair sem salvar, escrevo :q!

Atalhos usando o modo visual:

Para inserir 1 linha abaixo de outra, vou em cima da linha abaixo da qual

quero inserir e aperto a letra O. Dou esc e volto para o visual.

Para ir para o final de uma linha, aperto A, depois dou esc se quiser voltar

para o modo visual.

Para deletar um caractere, vou com o cursor em cima dele e aperto a letra x.

Para deletar a linha em que o cursor estiver, escrevo dd.

Para copiar uma linha inteira, uso nela yy.

Para colar em outro lugar a linha copiada, escrevo p.

Para procurar uma palavra, escrevo /<palavra que procuro>.

NANO

Para criar e abrir um arquivo no nano:

nano <nome arquivo quero criar> (já abre o arquivo no editor)

Daí é só escrever normal no editor.

Para procurar uma palavra: crtl+o

Para salvar: crtl+w

Para sair: ctrl+x (se eu sair sem salvar, ele pergunta o nome do arquivo e salva antes de

sair).

OUTROS EDITORES: leafpad, lyx (amo!!!), etc.

Aula1 (mod3) –

Aula2 (mod3) – Google Hacking

Aula4 (mod3) –