View
6.587
Download
3
Category
Preview:
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
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
• 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
Códigos exemplos da apresentação !
code.google.com/p/bugsec/downloads/list
•owasp_cooler.zip
O que é um Web Spider ?
• Geralmente trabalha nos protocolos • HTTP e HTTPs
O que é um Web Spider ?
• E agora como fazer abstração do conteúdo ?
O que é um Web Spider ?
• Exemplo usando sockets simples
• arquivo ex1.c
• Leia
rfc2616
O que é um Web Spider ?
• 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 ?
• ./ex1
O que é um Web Spider ?
• Exemplo • servidor HTTP• Arquivo ex2.c
O que é um Web Spider ?
• 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 ?
• Ex2.c
O que é um Web Spider ?
• Onde podemos encontrar web spiders ?
Casos de uso
• No android e no iOS• Na sua TV moderna
• Gateways de pagamento...
Casos de uso
• GPS
Casos de uso
• Muitos...
Casos de uso
• Em ferramentas...
Casos de uso
• 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
• Spider para pegar temperatura do tempo
Como você faria o Parser ???
Minerando dados
• Temperatura.pl
• PCRE
foreach (@result) { if ($_ =~ m/<b>(.*?).C<\/b>/) { my $graus="$1";…
Minerando dados
• Abstração,normalização e profundidade.
Minerando dados
• Seu spider tem permissões para minar os dados ?
• “robots.txt”
Minerando dados
• 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
•
APIs para ajudar no desenvolvimento
•
APIs para ajudar no desenvolvimento
• 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
Trabalhando com formulários e cookies
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");
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");
• Como mudar o User Agent ?
Spoofing de User Agent
• 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
• 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
• 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
• Brute Force ? Sim, por que não ?
• Wp-brute = brute force para wordpress
• Fairy = brute force para auth http
Autenticação,captcha e OAUTH
•
Autenticação,captcha e OAUTH
• HTTP AUTH , o mais fácil de brutar :-)
Autenticação,captcha e OAUTH
• 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
• Captcha o que é ?
• Como quebrar um captcha ?
Autenticação,captcha e OAUTH
• OAUTH o que é ?
• APIs
• Tokens
• http://oauth.net
Autenticação,captcha e OAUTH
• PTC ( Paid to Click) ,Pagam por Cliques !
• AdSense como google , buscapé,submarino,zura...
• Neobux , adbux ,landbux...
irc.makecash.org
Automação no web browser
• 0d1n :
http://code.google.com/p/0d1n/
Scanners,fuzzers,GPS hacks...
•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...
• Analisamos os dados “hammer.html”
Scanners,fuzzers, hacks...
• Ao clicar em uma linha na tabela
Scanners,fuzzers, hacks...
• Um Bruteforce
• -h Site.com/index.jsp• -P 'login=admin?password=!'
• Depois basta analisar a tabela gerada
Scanners,fuzzers, hacks...
Perguntas ?
Scanners,fuzzers, hacks...
Contato
• c00f3r@gmail.com • acosta@conviso.com.br
Scanners,fuzzers, hacks...
Muito Obrigado !
• BugSec , CONVISO...• muzgo,F117,bsdaemon,eremitah...
Scanners,fuzzers, hacks...
Recommended