Bsides4cooler
-
Upload
cooler-freenode -
Category
Technology
-
view
447 -
download
0
Transcript of Bsides4cooler
![Page 1: Bsides4cooler](https://reader033.fdocumentos.tips/reader033/viewer/2022052523/5560bff4d8b42a033c8b54dd/html5/thumbnails/1.jpg)
Web Spiders Automação para web Hacking
![Page 2: Bsides4cooler](https://reader033.fdocumentos.tips/reader033/viewer/2022052523/5560bff4d8b42a033c8b54dd/html5/thumbnails/2.jpg)
Coolers-lab $ whoami
Antonio Costa “Cooler_”
• Experiência de 4 anos com desenvolvimento de sistemas web e web spiders em geral,soluções para problemas em unix...
• Desenvolvedor e pesquisador .
• Faço parte do grupo de pesquisa BugSec.
• Fundador da E-zine Cogumelo Binario.
• Programador em ASM,C,C++,Common Lisp,Perl,PHP...
• Trabalho atualmente na CONVISO.
https://github.com/CoolerVoid/
http://code.google.com/p/bugsec/
@Cooler_freenode
![Page 3: Bsides4cooler](https://reader033.fdocumentos.tips/reader033/viewer/2022052523/5560bff4d8b42a033c8b54dd/html5/thumbnails/3.jpg)
• O que é um Web Spider ?• Casos de uso
• Minerando dados
• APIs para ajudar no desenvolvimento
• Trabalhando com formulários e cookies
• Spoofing de user agent
• Autenticação,captcha e OAUTH
• Passando certificados com SSL
• Uso de proxys
• Scanners,fuzzers, Hacks...
Agenda
![Page 4: Bsides4cooler](https://reader033.fdocumentos.tips/reader033/viewer/2022052523/5560bff4d8b42a033c8b54dd/html5/thumbnails/4.jpg)
Códigos exemplos da apresentação !
code.google.com/p/bugsec/downloads/list•owasp_cooler.zip
![Page 5: Bsides4cooler](https://reader033.fdocumentos.tips/reader033/viewer/2022052523/5560bff4d8b42a033c8b54dd/html5/thumbnails/5.jpg)
• Geralmente trabalha nos protocolos
• HTTP e HTTPs
O que é um Web Spider ?
![Page 6: Bsides4cooler](https://reader033.fdocumentos.tips/reader033/viewer/2022052523/5560bff4d8b42a033c8b54dd/html5/thumbnails/6.jpg)
• E agora como fazer abstração do conteúdo ?
![Page 7: Bsides4cooler](https://reader033.fdocumentos.tips/reader033/viewer/2022052523/5560bff4d8b42a033c8b54dd/html5/thumbnails/7.jpg)
• Exemplo usando sockets simples
• arquivo ex1.c
• Leia rfc2616
![Page 8: Bsides4cooler](https://reader033.fdocumentos.tips/reader033/viewer/2022052523/5560bff4d8b42a033c8b54dd/html5/thumbnails/8.jpg)
• send() “GET /index.php HTTP/1.1\nHost: localhost \t \n “• Então para pegar a resposta
um read()
• Como resultado temos o source da página :-)
![Page 9: Bsides4cooler](https://reader033.fdocumentos.tips/reader033/viewer/2022052523/5560bff4d8b42a033c8b54dd/html5/thumbnails/9.jpg)
• ./ex1
![Page 10: Bsides4cooler](https://reader033.fdocumentos.tips/reader033/viewer/2022052523/5560bff4d8b42a033c8b54dd/html5/thumbnails/10.jpg)
•Exemplo •servidor HTTP•Arquivo ex2.c
![Page 11: Bsides4cooler](https://reader033.fdocumentos.tips/reader033/viewer/2022052523/5560bff4d8b42a033c8b54dd/html5/thumbnails/11.jpg)
• Exemplo • servidor HTTP programa ex2.c• Se receber qualquer dado
então • String para write() vai ser • "HTTP/1.1 200
Ok\n\n<html>codigo em html<br><b>BUGSEC</b></html>\n"
![Page 12: Bsides4cooler](https://reader033.fdocumentos.tips/reader033/viewer/2022052523/5560bff4d8b42a033c8b54dd/html5/thumbnails/12.jpg)
• Ex2.c
![Page 13: Bsides4cooler](https://reader033.fdocumentos.tips/reader033/viewer/2022052523/5560bff4d8b42a033c8b54dd/html5/thumbnails/13.jpg)
• Onde podemos encontrar web spiders ?
![Page 14: Bsides4cooler](https://reader033.fdocumentos.tips/reader033/viewer/2022052523/5560bff4d8b42a033c8b54dd/html5/thumbnails/14.jpg)
• No android e no iOS• Na sua TV moderna
• Gateways de pagamento...
Casos de uso
![Page 15: Bsides4cooler](https://reader033.fdocumentos.tips/reader033/viewer/2022052523/5560bff4d8b42a033c8b54dd/html5/thumbnails/15.jpg)
• GPSCasos de uso
![Page 16: Bsides4cooler](https://reader033.fdocumentos.tips/reader033/viewer/2022052523/5560bff4d8b42a033c8b54dd/html5/thumbnails/16.jpg)
• Muitos...
Casos de uso
![Page 17: Bsides4cooler](https://reader033.fdocumentos.tips/reader033/viewer/2022052523/5560bff4d8b42a033c8b54dd/html5/thumbnails/17.jpg)
• Em ferramentas...
Casos de uso
![Page 18: Bsides4cooler](https://reader033.fdocumentos.tips/reader033/viewer/2022052523/5560bff4d8b42a033c8b54dd/html5/thumbnails/18.jpg)
• Parsers !!!• <p>rand(x)</p>• /<p>(.*?)<\/p>/• split(),strtok(),strcmp...• Comparar letra por letra, ou cadeias...• re2c,flex+bison,pcre,posix
regex,sed...• Bitwise “bitap”• Assembly !? o.O
Minerando dados
![Page 19: Bsides4cooler](https://reader033.fdocumentos.tips/reader033/viewer/2022052523/5560bff4d8b42a033c8b54dd/html5/thumbnails/19.jpg)
• Spider para pegar temperatura do tempo
Como você faria o Parser ???
Minerando dados
![Page 20: Bsides4cooler](https://reader033.fdocumentos.tips/reader033/viewer/2022052523/5560bff4d8b42a033c8b54dd/html5/thumbnails/20.jpg)
• Temperatura.pl
• PCRE
foreach (@result) { if ($_ =~ m/<b>(.*?).C<\/b>/) { my $graus="$1";…
Minerando dados
![Page 21: Bsides4cooler](https://reader033.fdocumentos.tips/reader033/viewer/2022052523/5560bff4d8b42a033c8b54dd/html5/thumbnails/21.jpg)
• Abstração,normalização e profundidade.
Minerando dados
![Page 22: Bsides4cooler](https://reader033.fdocumentos.tips/reader033/viewer/2022052523/5560bff4d8b42a033c8b54dd/html5/thumbnails/22.jpg)
• Seu spider tem permissões para minar os dados ?
• “robots.txt”
Minerando dados
![Page 23: Bsides4cooler](https://reader033.fdocumentos.tips/reader033/viewer/2022052523/5560bff4d8b42a033c8b54dd/html5/thumbnails/23.jpg)
• Ruby a gem Mechanize,curl...
• Perl no CPAN temos LWP,WWW::Mechanize,curl...
• Python requests...
• Java,PHP,Common Lisp,C++...
• Não precisa recriar a roda com sockets!
APIs para ajudar no desenvolvimento
![Page 24: Bsides4cooler](https://reader033.fdocumentos.tips/reader033/viewer/2022052523/5560bff4d8b42a033c8b54dd/html5/thumbnails/24.jpg)
•
APIs para ajudar no desenvolvimento
![Page 25: Bsides4cooler](https://reader033.fdocumentos.tips/reader033/viewer/2022052523/5560bff4d8b42a033c8b54dd/html5/thumbnails/25.jpg)
•
APIs para ajudar no desenvolvimento
![Page 26: Bsides4cooler](https://reader033.fdocumentos.tips/reader033/viewer/2022052523/5560bff4d8b42a033c8b54dd/html5/thumbnails/26.jpg)
• Sempre que temos input no protocolo HTTP temos como os mais populares métodos POST e GET.
• Em RestFul temos outros como Delete,Put...
• Outras entradas também “User Agent”
Trabalhando com formulários e cookies
![Page 27: Bsides4cooler](https://reader033.fdocumentos.tips/reader033/viewer/2022052523/5560bff4d8b42a033c8b54dd/html5/thumbnails/27.jpg)
Trabalhando com formulários e cookies
![Page 28: Bsides4cooler](https://reader033.fdocumentos.tips/reader033/viewer/2022052523/5560bff4d8b42a033c8b54dd/html5/thumbnails/28.jpg)
POST e GET com libcurl
POST:
curl_easy_setopt(curl,
CURLOPT_POSTFIELDS, "bugsec=1&floripa=praia");
GET:
curl_easy_setopt(curl, CURLOPT_URL, "http://www.bugsec.com.br/site.jsp?var=1");
![Page 29: Bsides4cooler](https://reader033.fdocumentos.tips/reader033/viewer/2022052523/5560bff4d8b42a033c8b54dd/html5/thumbnails/29.jpg)
POST e GET com libcurl
Vide ex3.c
COOKIE:
res = curl_easy_setopt(curl, CURLOPT_COOKIELIST,
"Set-Cookie: quem=nozes");
curl_easy_setopt(curl,
CURLOPT_COOKIEJAR,
"cookie.txt");
![Page 30: Bsides4cooler](https://reader033.fdocumentos.tips/reader033/viewer/2022052523/5560bff4d8b42a033c8b54dd/html5/thumbnails/30.jpg)
• Como mudar o User Agent ?
Spoofing de User Agent
![Page 31: Bsides4cooler](https://reader033.fdocumentos.tips/reader033/viewer/2022052523/5560bff4d8b42a033c8b54dd/html5/thumbnails/31.jpg)
• Como mudar o User Agent ?
• curl_setopt (curl, CURLOPT_USERAGENT, "Mozilla/5.0 NetBSD 4.1");
• Analisar como a aplicação se comporta com diferentes User Agent.
• Enganar sistemas anti-bots que usam blacklists.
Spoofing de User Agent
![Page 32: Bsides4cooler](https://reader033.fdocumentos.tips/reader033/viewer/2022052523/5560bff4d8b42a033c8b54dd/html5/thumbnails/32.jpg)
• curl_setopt(x, CURLOPT_SSL_VERIFYPEER, false);
OU
• curl_setopt(x, CURLOPT_SSL_VERIFYPEER, true);
• curl_setopt(x, CURLOPT_SSL_VERIFYHOST, 2);
• curl_setopt (x, CURLOPT_CAINFO,”/local/CA/cert.crt”);
• CURLOPT_CAPATH
Passando certificados com SSL
![Page 33: Bsides4cooler](https://reader033.fdocumentos.tips/reader033/viewer/2022052523/5560bff4d8b42a033c8b54dd/html5/thumbnails/33.jpg)
• curl_setopt(x,CURLOPT_HTTPPROXYTUNNEL, 1);
• curl_setopt(x, CURLOPT_PROXY, “201.66.121.116:666”);
• curl_setopt(x, CURLOPT_FOLLOWLOCATION, 1);
Uso de proxys
![Page 34: Bsides4cooler](https://reader033.fdocumentos.tips/reader033/viewer/2022052523/5560bff4d8b42a033c8b54dd/html5/thumbnails/34.jpg)
• Brute Force ? • Sim, por que não ?
• Wp-brute = brute force para wordpress
• Fairy = brute force para auth http
Autenticação,captcha e OAUTH
![Page 35: Bsides4cooler](https://reader033.fdocumentos.tips/reader033/viewer/2022052523/5560bff4d8b42a033c8b54dd/html5/thumbnails/35.jpg)
•
Autenticação,captcha e OAUTH
![Page 36: Bsides4cooler](https://reader033.fdocumentos.tips/reader033/viewer/2022052523/5560bff4d8b42a033c8b54dd/html5/thumbnails/36.jpg)
• HTTP AUTH , o mais fácil de brutar :-)
Autenticação,captcha e OAUTH
![Page 37: Bsides4cooler](https://reader033.fdocumentos.tips/reader033/viewer/2022052523/5560bff4d8b42a033c8b54dd/html5/thumbnails/37.jpg)
• Green Fairy – Programa para brute force de auth HTTP
• https://github.com/CoolerVoid/Fairy
• Fácil para entender
• curl_easy_setopt(curl_handle, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
• curl_easy_setopt(curl_handle, CURLOPT_USERPWD, auth);
• auth==”admin:password”
Autenticação,captcha e OAUTH
![Page 38: Bsides4cooler](https://reader033.fdocumentos.tips/reader033/viewer/2022052523/5560bff4d8b42a033c8b54dd/html5/thumbnails/38.jpg)
• Captcha o que é ?
• Como quebrar um captcha ?
Autenticação,captcha e OAUTH
![Page 39: Bsides4cooler](https://reader033.fdocumentos.tips/reader033/viewer/2022052523/5560bff4d8b42a033c8b54dd/html5/thumbnails/39.jpg)
• OAUTH o que é ?
• Facebook• twitter• APIs• Tokens
• http://oauth.net
Autenticação,captcha e OAUTH
![Page 40: Bsides4cooler](https://reader033.fdocumentos.tips/reader033/viewer/2022052523/5560bff4d8b42a033c8b54dd/html5/thumbnails/40.jpg)
• PTC ( Paid to Click) ,Pagam por Cliques !
• AdSense como google , buscapé,submarino,zura...
• Neobux , adbux ,landbux...
irc.makecash.org
Automação no web browser
![Page 41: Bsides4cooler](https://reader033.fdocumentos.tips/reader033/viewer/2022052523/5560bff4d8b42a033c8b54dd/html5/thumbnails/41.jpg)
• 0d1n :
http://code.google.com/p/0d1n/
Scanners,fuzzers,GPS hacks...
![Page 42: Bsides4cooler](https://reader033.fdocumentos.tips/reader033/viewer/2022052523/5560bff4d8b42a033c8b54dd/html5/thumbnails/42.jpg)
•Um Scanner
• Site.com/index.jsp?var=!&x=0!• Onde temos “!” será trocado
por um PAYLOAD, então enviamos “Request”.
• Logo depois será feito uma busca por
strings suspeitas na “Response”.
Scanners,fuzzers, hacks...
![Page 43: Bsides4cooler](https://reader033.fdocumentos.tips/reader033/viewer/2022052523/5560bff4d8b42a033c8b54dd/html5/thumbnails/43.jpg)
• Analisamos os dados “hammer.html”
Scanners,fuzzers, hacks...
![Page 44: Bsides4cooler](https://reader033.fdocumentos.tips/reader033/viewer/2022052523/5560bff4d8b42a033c8b54dd/html5/thumbnails/44.jpg)
• Ao clicar em uma linha na tabela
Scanners,fuzzers, hacks...
![Page 45: Bsides4cooler](https://reader033.fdocumentos.tips/reader033/viewer/2022052523/5560bff4d8b42a033c8b54dd/html5/thumbnails/45.jpg)
• Um Bruteforce
• -h Site.com/index.jsp• -P 'login=admin?password=!'
• Depois basta analisar a tabela gerada
Scanners,fuzzers, hacks...
![Page 46: Bsides4cooler](https://reader033.fdocumentos.tips/reader033/viewer/2022052523/5560bff4d8b42a033c8b54dd/html5/thumbnails/46.jpg)
•
• github.com/CoolerVoid/beer
![Page 47: Bsides4cooler](https://reader033.fdocumentos.tips/reader033/viewer/2022052523/5560bff4d8b42a033c8b54dd/html5/thumbnails/47.jpg)
Perguntas ?
![Page 49: Bsides4cooler](https://reader033.fdocumentos.tips/reader033/viewer/2022052523/5560bff4d8b42a033c8b54dd/html5/thumbnails/49.jpg)
Muito Obrigado !
• BugSec (m0nad,iak,sigsegv,bman,slyfunky), CONVISO.
• Clandestine,muzgo,F117,bsdaemon,
eremitah,crash,kov...