O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.
1/ 41
®
Burlando um WAF
22 de junho de 2015
®
2/ 41
®
Quem sou ?
● Antonio Costa “Cooler_”
● Desenvolvedor em ASM, C, C++, Lisp, Perl, PHP
etc...
● Pentest, codereview,...
3/ 41
®
Agenda
● Entendendo o problema
● Burlando um WAF
● Automatizando o ataque
● Sugestões para mitigação
4/ 41
®
Entendendo o Problema
● WAF (web application firewall)
● Filtro com conjunto de regras
● Protege de ataques comuns...
5/ 41
®
Entendendo o Problema
● Filtra tanto Request como Response
6/ 41
®
Entendendo o Problema
● Request exemplo:
GET /sell/cars.php?search=<script>alert(document.cookie)</script >
7/ 41
®
Entendendo o Problema
● Match exato
● BlackList...
● “alert(”,
● ”union”
● “select”
● “script”
● “eval”...
8/ 41
®
Entendendo o Problema
● Block por IP
● DoS
● E se spoofar ?
Spoofing ?
9/ 41
®
Entendendo o Problema
● Regras não são suficientes...
● Expressão regular “regex” não faz matching
10/ 41
®
Entendendo o Problema
● ReDOS (Regular expression denial of service)
● Agrupamento
● Repetição e Alternância com ...
11/ 41
®
Burlando um WAF
12/ 41
®
Burlando um WAF
● Como Detectar o WAF ?
● Descobrimento de um WAF pode se dar por alguns fatores são eles
“header...
13/ 41
®
Burlando um WAF
Mixed Case
● Em alguns casos o “patern matching” para um elemento de uma
blacklist seria “case se...
14/ 41
®
Burlando um WAF
Replace Keywords
● Alguns casos que não ocorre um block, fazem troca de uma string por outra,
exe...
15/ 41
®
Burlando um WAF
Spaces to comment
● Trocar espaços em branco por comentários “/**/”, ou mesmo
adicionar comentári...
16/ 41
®
Burlando um WAF
Buffer Overflow
● Crashar aplicação forçando buffer overflow deixa o caminho livre para
nossos pa...
17/ 41
®
Burlando um WAF
● Outras formas...
● Objetivo é o mesmo burlar
18/ 41
®
Burlando um WAF
Encodes
● Codificando os payloads podemos enganar o “match”, os mais
usados são encode64, url enc...
19/ 41
®
Burlando um WAF
● HPP(HTTP Parameter Pollution)
● Uma técnica que visa enviar muitos parâmetros para assim
burlar...
20/ 41
®
Burlando um WAF
● Mude o IP use Proxy
● Mude o User Agent
21/ 41
®
Burlando um WAF
● Ataques ao mesmo tempo? BLOCK !
● Delay de tempo em cada Request
● Periodicidade no tempo
● Div...
22/ 41
®
Burlando um WAF
● Outras formas...
● obfuscar
● encodar apenas um
caracter etc...
23/ 41
®
Automatizando o ataque
● Por que automatizar ?
24/ 41
®
Automatizando o ataque
● Payloadmask
https://github.com/CoolerVoid/payloadmask
25/ 41
®
26/ 41
®
● Futuro da ferramenta
github.com/CoolerVoid/payloadmask/issues
27/ 41
®
Automatizando o ataque
● 0d1n
https://github.com/CoolerVoid/0d1n
28/ 41
®
Automatizando o ataque
● 0d1n
https://github.com/CoolerVoid/0d1n
29/ 41
®
Automatizando o ataque
30/ 41
®
Automatizando o ataque
31/ 41
®
Automatizando o ataque
32/ 41
®
Automatizando o ataque
● Exemplo:
./0d1n –host http://localhost/test.php –post
”car_name=ˆ ” –payloads payloads/x...
33/ 41
®
Automatizando o ataque
34/ 41
®
Automatizando o ataque
35/ 41
®
Automatizando o ataque
● Exemplo:
./0d1n –host http://localhost/test.php –post
”car_name=ˆ ” –payloads payloads/x...
36/ 41
®
Automatizando o ataque
● Futuro da ferramenta...
github.com/CoolerVoid/0d1n/issues
37/ 41
®
Automatizando o ataque
●
38/ 41
®
Sugestões para mitigação
● Não usar Regex que tenha redundância
● Usar Whitelist e não Blacklist.
● Prevenção sem...
39/ 41
®
Agradecimentos !
● IAK, Sigsegv, M0nad, Slyfunky, Clandestine,
Robertux, F117, Loganbr, MMxM, eremita, Mente
Bina...
40/ 41
®
Perguntas ???
41/ 41
®
Próximos SlideShares
Carregando em…5
×

Burlando Waf 2.0

904 visualizações

Publicada em

como b

Publicada em: Tecnologia
  • (Unlimited)....ACCESS WEBSITE Over for All Ebooks ................ accessibility Books Library allowing access to top content, including thousands of title from favorite author, plus the ability to read or download a huge selection of books for your pc or smartphone within minutes ......................................................................................................................... DOWNLOAD FULL PDF EBOOK here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download Full EPUB Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download Full PDF EBOOK here { http://bit.ly/2m6jJ5M }
       Responder 
    Tem certeza que deseja  Sim  Não
    Insira sua mensagem aqui
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download Full EPUB Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download EPUB Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download doc Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Responder 
    Tem certeza que deseja  Sim  Não
    Insira sua mensagem aqui

Burlando Waf 2.0

  1. 1. 1/ 41 ® Burlando um WAF 22 de junho de 2015 ®
  2. 2. 2/ 41 ® Quem sou ? ● Antonio Costa “Cooler_” ● Desenvolvedor em ASM, C, C++, Lisp, Perl, PHP etc... ● Pentest, codereview, engenharia reversa e pesquisas para problemas diversos etc... ● @Cooler_freenode ● https://github.com/CoolerVoid ● acosta@conviso.com.br ● coolerlair@gmail.com
  3. 3. 3/ 41 ® Agenda ● Entendendo o problema ● Burlando um WAF ● Automatizando o ataque ● Sugestões para mitigação
  4. 4. 4/ 41 ® Entendendo o Problema ● WAF (web application firewall) ● Filtro com conjunto de regras ● Protege de ataques comuns ● Registra informações de ataques ● Bloqueia ataques
  5. 5. 5/ 41 ® Entendendo o Problema ● Filtra tanto Request como Response
  6. 6. 6/ 41 ® Entendendo o Problema ● Request exemplo: GET /sell/cars.php?search=<script>alert(document.cookie)</script >
  7. 7. 7/ 41 ® Entendendo o Problema ● Match exato ● BlackList... ● “alert(”, ● ”union” ● “select” ● “script” ● “eval”...
  8. 8. 8/ 41 ® Entendendo o Problema ● Block por IP ● DoS ● E se spoofar ? Spoofing ?
  9. 9. 9/ 41 ® Entendendo o Problema ● Regras não são suficientes... ● Expressão regular “regex” não faz matching
  10. 10. 10/ 41 ® Entendendo o Problema ● ReDOS (Regular expression denial of service) ● Agrupamento ● Repetição e Alternância com sobreposição ● ([A-Za-z]+)*([0-9]+)* ● ([0-9a-z]|d+)*
  11. 11. 11/ 41 ® Burlando um WAF
  12. 12. 12/ 41 ® Burlando um WAF ● Como Detectar o WAF ? ● Descobrimento de um WAF pode se dar por alguns fatores são eles “header” da Response, por cookies e outros meios. ● Pode-se fazer manualmente, entretanto é interessante automatizar com ferramentas: ● https://svn.nmap.org/nmap/scripts/http-waf-detect.nse ● https://github.com/sandrogauci/wafw00f ● http://code.google.com/p/imperva-detect/ ● …
  13. 13. 13/ 41 ® Burlando um WAF Mixed Case ● Em alguns casos o “patern matching” para um elemento de uma blacklist seria “case sentive”, ou seja qualquer caractere que esteja fora do padrão não irá passar por “matching”. ● “select” é diferente de “SeLecT”,”sEleCt”,”seLecT”... ● “script” é diferente de “sCriPT”,”ScRipT”... ● Entretanto o paylaod pode ser interpretado seja ataque de XSS ou SQL injection, isso pois o ambiente que interpreta não é “case sentive”. ● Exemplo: ● /sell/cars.php?search=<script>alert(document.cookie)</script ● /sell/cars.php?search=<SCripT>AlErt(DoCuMenT.cOoKie)</scrIpt>
  14. 14. 14/ 41 ® Burlando um WAF Replace Keywords ● Alguns casos que não ocorre um block, fazem troca de uma string por outra, exemplo se encontra palavra “union select” substitui por “” ou seja acaba trocando por nada( apaga a ocorrência de uma palavra), logo á Request continua não é bloqueada. ● Como atacante pode se aproveitar disso ? ● Exemplos: ● /cars_show.php?car_id=-30 UNIunionON SELselectECT 6,7,8,9 ● Assim que o WAF fazer replace(troca) então temos: ● /cars_show.php?car_id=-30 UNION SELECT 6,7,8,9
  15. 15. 15/ 41 ® Burlando um WAF Spaces to comment ● Trocar espaços em branco por comentários “/**/”, ou mesmo adicionar comentários em pontos aleatórios, ajuda a fugir do “match”. ● Exemplos: ● /sell/cars.php? search=id=1+UnIoN/*&a=*/SeLeCT/*&a=*/1,2,3,database()– - ● /sell/cars.php?search=id=1/*!UnIoN*/+SeLeCT+1,2,concat(/*! table_name*/)+FrOM /*information_schema*/.tables /*!WHERE */+/*! TaBlE_ScHeMa*/+like+database()– -
  16. 16. 16/ 41 ® Burlando um WAF Buffer Overflow ● Crashar aplicação forçando buffer overflow deixa o caminho livre para nossos payloads. ● Exemplos: ● /cars/id/page/=-25+and+(select 2)=(Select 0xAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA...])+/*! UnIOn*/+/*!selECt*/+4,5,6,7… ● id=2 and (select 2)=(Select 0xAAAAAAAAAAAAAAAAAAAAA...) +uNIoN+seLecT+2,3,version()... ● Por que isso ocorre ? ● Nem todo WAF segue uma prática correta para limitar o buffer de entrada, logo um payload com tamanho extremo pode causar buffer overflow. funções como strcpy(),strcat() sem devido buffer limitado e definido podem causar estes problemas, por isso o recomendado é usar funções como strncat() ou mesmo strncpy().
  17. 17. 17/ 41 ® Burlando um WAF ● Outras formas... ● Objetivo é o mesmo burlar
  18. 18. 18/ 41 ® Burlando um WAF Encodes ● Codificando os payloads podemos enganar o “match”, os mais usados são encode64, url encode, double url encode... ● Exemplo: <script>alert(document.cookie)</script ● Url encode: %3Cscript%3Ealert%28document.cookie%29%3C%2Fscript ● 64 encode PHNjcmlwdD5hbGVydChkb2N1bWVudC5jb29raWUpPC9zY3Jpc HQ=
  19. 19. 19/ 41 ® Burlando um WAF ● HPP(HTTP Parameter Pollution) ● Uma técnica que visa enviar muitos parâmetros para assim burlar filtros de ambientes.
  20. 20. 20/ 41 ® Burlando um WAF ● Mude o IP use Proxy ● Mude o User Agent
  21. 21. 21/ 41 ® Burlando um WAF ● Ataques ao mesmo tempo? BLOCK ! ● Delay de tempo em cada Request ● Periodicidade no tempo ● Diversidade -Mudar IP -Mudar Payload -Mudar UserAgent
  22. 22. 22/ 41 ® Burlando um WAF ● Outras formas... ● obfuscar ● encodar apenas um caracter etc...
  23. 23. 23/ 41 ® Automatizando o ataque ● Por que automatizar ?
  24. 24. 24/ 41 ® Automatizando o ataque ● Payloadmask https://github.com/CoolerVoid/payloadmask
  25. 25. 25/ 41 ®
  26. 26. 26/ 41 ® ● Futuro da ferramenta github.com/CoolerVoid/payloadmask/issues
  27. 27. 27/ 41 ® Automatizando o ataque ● 0d1n https://github.com/CoolerVoid/0d1n
  28. 28. 28/ 41 ® Automatizando o ataque ● 0d1n https://github.com/CoolerVoid/0d1n
  29. 29. 29/ 41 ® Automatizando o ataque
  30. 30. 30/ 41 ® Automatizando o ataque
  31. 31. 31/ 41 ® Automatizando o ataque
  32. 32. 32/ 41 ® Automatizando o ataque ● Exemplo: ./0d1n –host http://localhost/test.php –post ”car_name=ˆ ” –payloads payloads/xss.txt –find_regex_list payloads/guess.txt –log name_log –save_response –tamper urlencode -proxy-rand paylaods/proxy.txt
  33. 33. 33/ 41 ® Automatizando o ataque
  34. 34. 34/ 41 ® Automatizando o ataque
  35. 35. 35/ 41 ® Automatizando o ataque ● Exemplo: ./0d1n –host http://localhost/test.php –post ”car_name=ˆ ” –payloads payloads/xss.txt –find_regex_list payloads/guess.txt –log name_log –save_response
  36. 36. 36/ 41 ® Automatizando o ataque ● Futuro da ferramenta... github.com/CoolerVoid/0d1n/issues
  37. 37. 37/ 41 ® Automatizando o ataque ●
  38. 38. 38/ 41 ® Sugestões para mitigação ● Não usar Regex que tenha redundância ● Usar Whitelist e não Blacklist. ● Prevenção sempre, contratar serviços para auditoria na aplicação ● Não esperar que o WAF faça tudo... ● Sanitizar informações e validar ● Mantenha o ambiente Hardenizado.
  39. 39. 39/ 41 ® Agradecimentos ! ● IAK, Sigsegv, M0nad, Slyfunky, Clandestine, Robertux, F117, Loganbr, MMxM, eremita, Mente Binaria, Otacon, Ephexis, pl4nkt0n, necrist, dr_gordon, sheilong etc... galera do IRC etc.. ● Aos Mestres da CONVISO ● Ulisses Castro por ter dado sugestão do “Tamper”
  40. 40. 40/ 41 ® Perguntas ???
  41. 41. 41/ 41 ®

×