“web spiders” – automação para web hacking
DESCRIPTION
Palestra ministrada no OWASP Floripa Day - Florianópolis - SC | Apresentação aborda Automação para Hacking na WEB, bem como entender o funcionamento de crawlers para o hacking, entender o funcionamento de autenticação e como fazer força bruta; burlar captcha; usar OAUTH; construir parsers; passar certificados de SSL; e uso de APIs para desenvolvimento.TRANSCRIPT
![Page 1: “Web Spiders” – Automação para Web Hacking](https://reader033.vdocuments.pub/reader033/viewer/2022052301/55702d2dd8b42aa8558b537a/html5/thumbnails/1.jpg)
Web Spiders Automação
para web Hacking
![Page 2: “Web Spiders” – Automação para Web Hacking](https://reader033.vdocuments.pub/reader033/viewer/2022052301/55702d2dd8b42aa8558b537a/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://www.bugsec.com.br
@Cooler_freenode
![Page 3: “Web Spiders” – Automação para Web Hacking](https://reader033.vdocuments.pub/reader033/viewer/2022052301/55702d2dd8b42aa8558b537a/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: “Web Spiders” – Automação para Web Hacking](https://reader033.vdocuments.pub/reader033/viewer/2022052301/55702d2dd8b42aa8558b537a/html5/thumbnails/4.jpg)
Códigos exemplos da apresentação !
code.google.com/p/bugsec/downloads/list
•owasp_cooler.zip
O que é um Web Spider ?
![Page 5: “Web Spiders” – Automação para Web Hacking](https://reader033.vdocuments.pub/reader033/viewer/2022052301/55702d2dd8b42aa8558b537a/html5/thumbnails/5.jpg)
• Geralmente trabalha nos protocolos • HTTP e HTTPs
O que é um Web Spider ?
![Page 6: “Web Spiders” – Automação para Web Hacking](https://reader033.vdocuments.pub/reader033/viewer/2022052301/55702d2dd8b42aa8558b537a/html5/thumbnails/6.jpg)
• E agora como fazer abstração do conteúdo ?
O que é um Web Spider ?
![Page 7: “Web Spiders” – Automação para Web Hacking](https://reader033.vdocuments.pub/reader033/viewer/2022052301/55702d2dd8b42aa8558b537a/html5/thumbnails/7.jpg)
• Exemplo usando sockets simples
• arquivo ex1.c
• Leia
rfc2616
O que é um Web Spider ?
![Page 8: “Web Spiders” – Automação para Web Hacking](https://reader033.vdocuments.pub/reader033/viewer/2022052301/55702d2dd8b42aa8558b537a/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 :-)
O que é um Web Spider ?
![Page 9: “Web Spiders” – Automação para Web Hacking](https://reader033.vdocuments.pub/reader033/viewer/2022052301/55702d2dd8b42aa8558b537a/html5/thumbnails/9.jpg)
• ./ex1
O que é um Web Spider ?
![Page 10: “Web Spiders” – Automação para Web Hacking](https://reader033.vdocuments.pub/reader033/viewer/2022052301/55702d2dd8b42aa8558b537a/html5/thumbnails/10.jpg)
• Exemplo • servidor HTTP• Arquivo ex2.c
O que é um Web Spider ?
![Page 11: “Web Spiders” – Automação para Web Hacking](https://reader033.vdocuments.pub/reader033/viewer/2022052301/55702d2dd8b42aa8558b537a/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"
O que é um Web Spider ?
![Page 12: “Web Spiders” – Automação para Web Hacking](https://reader033.vdocuments.pub/reader033/viewer/2022052301/55702d2dd8b42aa8558b537a/html5/thumbnails/12.jpg)
• Ex2.c
O que é um Web Spider ?
![Page 13: “Web Spiders” – Automação para Web Hacking](https://reader033.vdocuments.pub/reader033/viewer/2022052301/55702d2dd8b42aa8558b537a/html5/thumbnails/13.jpg)
• Onde podemos encontrar web spiders ?
Casos de uso
![Page 14: “Web Spiders” – Automação para Web Hacking](https://reader033.vdocuments.pub/reader033/viewer/2022052301/55702d2dd8b42aa8558b537a/html5/thumbnails/14.jpg)
• No android e no iOS• Na sua TV moderna
• Gateways de pagamento...
Casos de uso
![Page 15: “Web Spiders” – Automação para Web Hacking](https://reader033.vdocuments.pub/reader033/viewer/2022052301/55702d2dd8b42aa8558b537a/html5/thumbnails/15.jpg)
• GPS
Casos de uso
![Page 16: “Web Spiders” – Automação para Web Hacking](https://reader033.vdocuments.pub/reader033/viewer/2022052301/55702d2dd8b42aa8558b537a/html5/thumbnails/16.jpg)
• Muitos...
Casos de uso
![Page 17: “Web Spiders” – Automação para Web Hacking](https://reader033.vdocuments.pub/reader033/viewer/2022052301/55702d2dd8b42aa8558b537a/html5/thumbnails/17.jpg)
• Em ferramentas...
Casos de uso
![Page 18: “Web Spiders” – Automação para Web Hacking](https://reader033.vdocuments.pub/reader033/viewer/2022052301/55702d2dd8b42aa8558b537a/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...• Assembly !? o.O
Minerando dados
![Page 19: “Web Spiders” – Automação para Web Hacking](https://reader033.vdocuments.pub/reader033/viewer/2022052301/55702d2dd8b42aa8558b537a/html5/thumbnails/19.jpg)
• Spider para pegar temperatura do tempo
Como você faria o Parser ???
Minerando dados
![Page 20: “Web Spiders” – Automação para Web Hacking](https://reader033.vdocuments.pub/reader033/viewer/2022052301/55702d2dd8b42aa8558b537a/html5/thumbnails/20.jpg)
• Temperatura.pl
• PCRE
foreach (@result) { if ($_ =~ m/<b>(.*?).C<\/b>/) { my $graus="$1";…
Minerando dados
![Page 21: “Web Spiders” – Automação para Web Hacking](https://reader033.vdocuments.pub/reader033/viewer/2022052301/55702d2dd8b42aa8558b537a/html5/thumbnails/21.jpg)
• Abstração,normalização e profundidade.
Minerando dados
![Page 22: “Web Spiders” – Automação para Web Hacking](https://reader033.vdocuments.pub/reader033/viewer/2022052301/55702d2dd8b42aa8558b537a/html5/thumbnails/22.jpg)
• Seu spider tem permissões para minar os dados ?
• “robots.txt”
Minerando dados
![Page 23: “Web Spiders” – Automação para Web Hacking](https://reader033.vdocuments.pub/reader033/viewer/2022052301/55702d2dd8b42aa8558b537a/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: “Web Spiders” – Automação para Web Hacking](https://reader033.vdocuments.pub/reader033/viewer/2022052301/55702d2dd8b42aa8558b537a/html5/thumbnails/24.jpg)
•
APIs para ajudar no desenvolvimento
![Page 25: “Web Spiders” – Automação para Web Hacking](https://reader033.vdocuments.pub/reader033/viewer/2022052301/55702d2dd8b42aa8558b537a/html5/thumbnails/25.jpg)
•
APIs para ajudar no desenvolvimento
![Page 26: “Web Spiders” – Automação para Web Hacking](https://reader033.vdocuments.pub/reader033/viewer/2022052301/55702d2dd8b42aa8558b537a/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: “Web Spiders” – Automação para Web Hacking](https://reader033.vdocuments.pub/reader033/viewer/2022052301/55702d2dd8b42aa8558b537a/html5/thumbnails/27.jpg)
Trabalhando com formulários e cookies
![Page 28: “Web Spiders” – Automação para Web Hacking](https://reader033.vdocuments.pub/reader033/viewer/2022052301/55702d2dd8b42aa8558b537a/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: “Web Spiders” – Automação para Web Hacking](https://reader033.vdocuments.pub/reader033/viewer/2022052301/55702d2dd8b42aa8558b537a/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: “Web Spiders” – Automação para Web Hacking](https://reader033.vdocuments.pub/reader033/viewer/2022052301/55702d2dd8b42aa8558b537a/html5/thumbnails/30.jpg)
• Como mudar o User Agent ?
Spoofing de User Agent
![Page 31: “Web Spiders” – Automação para Web Hacking](https://reader033.vdocuments.pub/reader033/viewer/2022052301/55702d2dd8b42aa8558b537a/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: “Web Spiders” – Automação para Web Hacking](https://reader033.vdocuments.pub/reader033/viewer/2022052301/55702d2dd8b42aa8558b537a/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: “Web Spiders” – Automação para Web Hacking](https://reader033.vdocuments.pub/reader033/viewer/2022052301/55702d2dd8b42aa8558b537a/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: “Web Spiders” – Automação para Web Hacking](https://reader033.vdocuments.pub/reader033/viewer/2022052301/55702d2dd8b42aa8558b537a/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: “Web Spiders” – Automação para Web Hacking](https://reader033.vdocuments.pub/reader033/viewer/2022052301/55702d2dd8b42aa8558b537a/html5/thumbnails/35.jpg)
•
Autenticação,captcha e OAUTH
![Page 36: “Web Spiders” – Automação para Web Hacking](https://reader033.vdocuments.pub/reader033/viewer/2022052301/55702d2dd8b42aa8558b537a/html5/thumbnails/36.jpg)
• HTTP AUTH , o mais fácil de brutar :-)
Autenticação,captcha e OAUTH
![Page 37: “Web Spiders” – Automação para Web Hacking](https://reader033.vdocuments.pub/reader033/viewer/2022052301/55702d2dd8b42aa8558b537a/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: “Web Spiders” – Automação para Web Hacking](https://reader033.vdocuments.pub/reader033/viewer/2022052301/55702d2dd8b42aa8558b537a/html5/thumbnails/38.jpg)
• Captcha o que é ?
• Como quebrar um captcha ?
Autenticação,captcha e OAUTH
![Page 39: “Web Spiders” – Automação para Web Hacking](https://reader033.vdocuments.pub/reader033/viewer/2022052301/55702d2dd8b42aa8558b537a/html5/thumbnails/39.jpg)
• OAUTH o que é ?
• APIs
• Tokens
• http://oauth.net
Autenticação,captcha e OAUTH
![Page 40: “Web Spiders” – Automação para Web Hacking](https://reader033.vdocuments.pub/reader033/viewer/2022052301/55702d2dd8b42aa8558b537a/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: “Web Spiders” – Automação para Web Hacking](https://reader033.vdocuments.pub/reader033/viewer/2022052301/55702d2dd8b42aa8558b537a/html5/thumbnails/41.jpg)
• 0d1n :
http://code.google.com/p/0d1n/
Scanners,fuzzers,GPS hacks...
![Page 42: “Web Spiders” – Automação para Web Hacking](https://reader033.vdocuments.pub/reader033/viewer/2022052301/55702d2dd8b42aa8558b537a/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: “Web Spiders” – Automação para Web Hacking](https://reader033.vdocuments.pub/reader033/viewer/2022052301/55702d2dd8b42aa8558b537a/html5/thumbnails/43.jpg)
• Analisamos os dados “hammer.html”
Scanners,fuzzers, hacks...
![Page 44: “Web Spiders” – Automação para Web Hacking](https://reader033.vdocuments.pub/reader033/viewer/2022052301/55702d2dd8b42aa8558b537a/html5/thumbnails/44.jpg)
• Ao clicar em uma linha na tabela
Scanners,fuzzers, hacks...
![Page 45: “Web Spiders” – Automação para Web Hacking](https://reader033.vdocuments.pub/reader033/viewer/2022052301/55702d2dd8b42aa8558b537a/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: “Web Spiders” – Automação para Web Hacking](https://reader033.vdocuments.pub/reader033/viewer/2022052301/55702d2dd8b42aa8558b537a/html5/thumbnails/46.jpg)
Perguntas ?
Scanners,fuzzers, hacks...
![Page 48: “Web Spiders” – Automação para Web Hacking](https://reader033.vdocuments.pub/reader033/viewer/2022052301/55702d2dd8b42aa8558b537a/html5/thumbnails/48.jpg)
Muito Obrigado !
• BugSec , CONVISO...• muzgo,F117,bsdaemon,eremitah...
Scanners,fuzzers, hacks...