Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Pentes Web in a Nutshell

Sponsored · SiteGround - Reliable hosting with speed, security, and support you can count on. →

Pentes Web in a Nutshell

Avatar for GDG Londrina

GDG Londrina

May 19, 2024

Other Decks in Programming

Transcript

  1. #PENTEST WEB IN A NUTSHELL WHOAMI ▸ Security Consultant, SpiderLabs

    at Trustwave ▸ Co-founder Londrina Hacker Club ▸ +14 anos em T.I (Segurança, Servidores Linux/Windows etc..) ▸ +6 Segurança da informação (OffSec, AppSec, Arquitetura)
  2. #PENTEST WEB IN A NUTSHELL AGENDA ▸ O que é

    Pentest? ▸ O processo de Pentest Web ▸ OWASP TOP 10 ▸ Alguns exemplos de falhas ▸ Material de ajuda (ferramentas e manuais) ▸ Perguntas?
  3. #PENTEST WEB IN A NUTSHELL O QUE É PENTEST? ▸

    O Pentest é um serviço com uma abordagem estratégica que utiliza simulações de ataques reais para identi fi car e corrigir fragilidades na infraestrutura de TI das empresas, antes que pessoas mal-intencionados possam explorá-las. https://www.siteblindado.com/blog/single-post/tipos-de-pentest
  4. #PENTEST WEB IN A NUTSHELL BLACK BOX ▸ O Pentest

    do tipo Black Box se assemelha a uma invasão realista. Nele, a equipe tem pouca ou nenhuma informação sobre o ambiente a ser testado. Nessa modalidade, os pro fi ssionais de segurança enfrentam um cenário similar ao experimentado por um invasor externo, isto é, sem conhecimento prévio da infraestrutura, do sistema, da arquitetura, suas redes ou aplicações. ▸ Em grande parte dos casos, as equipes de desenvolvimento não tem conhecimento que existe um teste de invasão em curso. ▸ Apenas a URL alvo é compartilhada com o consultor e mais nenhum dado da aplicação. https://www.siteblindado.com/blog/single-post/tipos-de-pentest
  5. #PENTEST WEB IN A NUTSHELL GREY BOX ▸ Essa abordagem

    simula uma situação em que um invasor com algum conhecimento interno, como um funcionário ou cliente da empresa, pode tentar explorar vulnerabilidades do ambiente. ▸ Muitas vezes, no grey box, o testador tem somente uma credencial e senha, como o login de qualquer pessoa. Por isso, é um tipo de pentest que oferece uma perspectiva mais fl exível, considerando não só as ameaças internas, mas também as externas. ▸ Também é usado para medir o nível de estrago que um usuário ou cliente da aplicação poderia causar, em casos de má fé ou leak de credenciais. https://www.siteblindado.com/blog/single-post/tipos-de-pentest
  6. #PENTEST WEB IN A NUTSHELL WHITE BOX ▸ O Pentest

    White Box é caracterizado pela total transparência e compartilhamento de informações entre a equipe de segurança e os pro fi ssionais encarregados dos sistemas e infraestrutura. ▸ Nessa modalidade, o time responsável pelos testes tem amplo conhecimento sobre a arquitetura do ambiente a ser testado, incluindo acesso ao código-fonte dos aplicativos, detalhes da rede e informações privilegiadas sobre os ativos. ▸ Cliente compartilha documentação completa da aplicação (guides, API etc), deve também ser criado 2 usuários para cada tipo de per fi l que a aplicação possuir, por exemplo: supervisor1, supervisor2, vendas1, vendas2, gestor1, gestor2... ▸ Não é comum, mas o consultor também pode pedir o código fonte da aplicação. https://www.siteblindado.com/blog/single-post/tipos-de-pentest
  7. #PENTEST WEB IN A NUTSHELL ETAPAS DE UM PROCESSO DE

    PENTEST ▸ Contrato NDA (Non Disclosure Agreement “acordo de não divulgação”) ▸ kick-off meeting (alinhamento de prazos, comunicação, contato técnico, janela de execução dos testes. Também pode ser feito uma demo da aplicação) ▸ Requisitos para o teste (infra alvo (test, prod), credenciais, roles) ▸ Execução do teste (status semanal ou quando uma falha alta é encontrada) ▸ Conclusão e apresentação de resultados (relatório apresentado pros times)
  8. #PENTEST WEB IN A NUTSHELL ETAPAS DE PENTEST ▸ Planejamento

    e De fi nição do Escopo ▸ Reconhecimento ▸ Coleta de Informações / Mapeamento de Superfície de Ataque ▸ Varredura e Enumeração ▸ Varredura de Portas e Serviços ▸ Identi fi cação de Vulnerabilidades ▸ Enumeração ▸ Ganho de Acesso ▸ Exploração de Vulnerabilidades ▸ Escalação de Privilégios ▸ Análise e Relatório ▸ Documentação das Descobertas ▸ Relatório de Segurança
  9. #PENTEST WEB IN A NUTSHELL ALGUMAS FALHAS COMUNS ▸ Vertical

    Privilege Escalation (acessa partes da aplicação que não deveria) ▸ Horizontal Privilege Escalation (acessa dados de outros usuários) ▸ Business Logic Flaw (erros de lógica e manipulação no geral, carrinho, produtos, preços) ▸ Email Spamming (aplicação permite o abuso no envio de emails, como reset de senha, pode causar indisponibilidade do recurso) ▸ No Multi-Factor Authentication (MFA) Con fi gured ▸ Passwords Sent Unprotected Via Email (senha enviada em texto plano no email)
  10. #PENTEST WEB IN A NUTSHELL ALGUMAS FALHAS COMUNS ▸ Insecure

    Password Policy (aplicação aceita senhas inseguras para os usuários) ▸ No Account Lockout (servidor/aplicação não bloqueia o usuário depois de X tentativas incorretas) ▸ Username Enumeration (aplicação exibe mensagem de erro de login de forma não genérica) ▸ Publicly Exposed Administrative Interface (pode também ser considerado FTP, SSH, RDP) ▸ Weak TLS/SSL Ciphers (cifras velhas e inseguras em uso, CBC por exemplo) ▸ Secure Connection Not Enforced (aplicação aceita como todo ou em parte da comunicação via HTTP) ▸ Source Code Disclosure (arquivos sensíveis esquecidos e disponíveis na aplicação, ou código sensível no front)
  11. #PENTEST WEB IN A NUTSHELL JUICE SHOP ▸ https://owasp.org/www-project-juice-shop/ ▸

    https://github.com/juice-shop/juice-shop ▸ https://juice-shop.herokuapp.com/#/
  12. #PENTEST WEB IN A NUTSHELL AJUSTES NA ABORDAGEM ▸ Fuzzing

    procura por arquivos e diretórios -> salva a saída em formato csv. ▸ Script em Python vai olhar os caminhos encontrados pelo ffuf, usando selenium vai abrir o navegador, vai acessar o diretório e procurar pela palavra de erro gerada dinamicamente: ▸ You are not allowed to access this page!
  13. #PENTEST WEB IN A NUTSHELL VAMOS OLHAR A APLICAÇÃO ▸

    Sempre olhe o front: ▸ Senhas, Tokens, URL Internas, diretórios ▸ lógica de senhas / negócios ▸ http://localhost:3000/main.js
  14. #PENTEST WEB IN A NUTSHELL EU JÁ FALEI PRA OLHAR

    O FRONT? ▸ http://localhost:3000/main.js
  15. #PENTEST WEB IN A NUTSHELL ▸ Captcha? ▸ Rate-limit? ▸

    Password must be 5-40 characters long.
  16. #PENTEST WEB IN A NUTSHELL RESQUEST & RESPONSE - CRIANDO

    UM NOVO USUÁRIO ▸ Perguntas? ID do usuário
  17. #PENTEST WEB IN A NUTSHELL RESQUEST & RESPONSE - LOGON

    GDG@LONDRINA ▸ Perguntas? ID do carrinho
  18. #PENTEST WEB IN A NUTSHELL ▸ hacker@golpista ▸ hacker ▸

    {"status":"success","data":{"UserId":26,"id":9,"fullName":"VISA HACKER","cardNum":"************2222","expMonth":5,"expYear":2090}} ▸ gdg@londrina ▸ londrina ▸ {"status":"success","data":{"id":8,"fullName":"VISA TEST","cardNum":1111111111111111,"expMonth":1,"expYear":2083,"UserId":25," updatedAt":"2024-04-25T15:14:41.994Z","creat
  19. #PENTEST WEB IN A NUTSHELL RECOMENDAÇÕES ▸ Usar identi fi

    cadores únicos e de alta entropia. ▸ Sempre tratar os inputs dos usuários. ▸ Apenas checar se o usuário tem uma sessão válida não é o su fi ciente. ▸ Falhas de segurança LOW e INFO se combinadas podem gerar um grande risco. Exemplo do primeiro ataque: ▸ Sem captcha (low) ▸ Sem rate-limite (low) ▸ Senha insegura (low)
  20. #PENTEST WEB IN A NUTSHELL TOOLS & GUIDES ▸ https://portswigger.net/burp/communitydownload

    ▸ https://portswigger.net/web-security ▸ https://github.com/ffuf/ffuf ▸ OWASP Web Security Testing Guide ▸ https://owasp.org/www-project-web-security-testing-guide/