48
Web Spiders Automação para web Hacking

“Web Spiders” – Automação para Web Hacking

Embed Size (px)

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.

Citation preview

Page 1: “Web Spiders” – Automação para Web Hacking

Web Spiders Automação

para web Hacking

Page 2: “Web Spiders” – Automação para Web Hacking

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

• 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

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

• Geralmente trabalha nos protocolos • HTTP e HTTPs

O que é um Web Spider ?

Page 6: “Web Spiders” – Automação para Web Hacking

• E agora como fazer abstração do conteúdo ?

O que é um Web Spider ?

Page 7: “Web Spiders” – Automação para Web Hacking

• Exemplo usando sockets simples

• arquivo ex1.c

• Leia

rfc2616

O que é um Web Spider ?

Page 8: “Web Spiders” – Automação para Web Hacking

• 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

• ./ex1

O que é um Web Spider ?

Page 10: “Web Spiders” – Automação para Web Hacking

• Exemplo • servidor HTTP• Arquivo ex2.c

O que é um Web Spider ?

Page 11: “Web Spiders” – Automação para Web Hacking

• 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

• Ex2.c

O que é um Web Spider ?

Page 13: “Web Spiders” – Automação para Web Hacking

• Onde podemos encontrar web spiders ?

Casos de uso

Page 14: “Web Spiders” – Automação para Web Hacking

• No android e no iOS• Na sua TV moderna

• Gateways de pagamento...

Casos de uso

Page 15: “Web Spiders” – Automação para Web Hacking

• GPS

Casos de uso

Page 16: “Web Spiders” – Automação para Web Hacking

• Muitos...

Casos de uso

Page 17: “Web Spiders” – Automação para Web Hacking

• Em ferramentas...

Casos de uso

Page 18: “Web Spiders” – Automação para Web Hacking

• 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

• Spider para pegar temperatura do tempo

Como você faria o Parser ???

Minerando dados

Page 20: “Web Spiders” – Automação para Web Hacking

• Temperatura.pl

• PCRE

foreach (@result) { if ($_ =~ m/<b>(.*?).C<\/b>/) { my $graus="$1";…

Minerando dados

Page 21: “Web Spiders” – Automação para Web Hacking

• Abstração,normalização e profundidade.

Minerando dados

Page 22: “Web Spiders” – Automação para Web Hacking

• Seu spider tem permissões para minar os dados ?

• “robots.txt”

Minerando dados

Page 23: “Web Spiders” – Automação para Web Hacking

• 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

APIs para ajudar no desenvolvimento

Page 25: “Web Spiders” – Automação para Web Hacking

APIs para ajudar no desenvolvimento

Page 26: “Web Spiders” – Automação para Web Hacking

• 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

Trabalhando com formulários e cookies

Page 28: “Web Spiders” – Automação para Web Hacking

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

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

• Como mudar o User Agent ?

Spoofing de User Agent

Page 31: “Web Spiders” – Automação para Web Hacking

• 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

• 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

• 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

• 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

Autenticação,captcha e OAUTH

Page 36: “Web Spiders” – Automação para Web Hacking

• HTTP AUTH , o mais fácil de brutar :-)

Autenticação,captcha e OAUTH

Page 37: “Web Spiders” – Automação para Web Hacking

• 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

• Captcha o que é ?

• Como quebrar um captcha ?

Autenticação,captcha e OAUTH

Page 39: “Web Spiders” – Automação para Web Hacking

• OAUTH o que é ?

• Facebook

• twitter

• APIs

• Tokens

• http://oauth.net

Autenticação,captcha e OAUTH

Page 40: “Web Spiders” – Automação para Web Hacking

• 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

• 0d1n :

http://code.google.com/p/0d1n/

Scanners,fuzzers,GPS hacks...

Page 42: “Web Spiders” – Automação para Web Hacking

•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

• Analisamos os dados “hammer.html”

Scanners,fuzzers, hacks...

Page 44: “Web Spiders” – Automação para Web Hacking

• Ao clicar em uma linha na tabela

Scanners,fuzzers, hacks...

Page 45: “Web Spiders” – Automação para Web Hacking

• 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

Perguntas ?

Scanners,fuzzers, hacks...

Page 47: “Web Spiders” – Automação para Web Hacking

Contato

[email protected][email protected]

Scanners,fuzzers, hacks...

Page 48: “Web Spiders” – Automação para Web Hacking

Muito Obrigado !

• BugSec , CONVISO...• muzgo,F117,bsdaemon,eremitah...

Scanners,fuzzers, hacks...