Web Spiders
Automação
para web
Hacking
Coolers-lab $ whoami
• Quem sou ?
• 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
• Automação no web browser (imacros,selenium...)
• Scanners,fuzzers e GPS Hacks...
Agenda
• Trabalha nos protocolos HTTP e HTTPs
• Bots, web spiders, Web robot,crawler...
O que é um Web Spider ?
• E agora como fazer abstração do conteúdo ?
O que é um Web Spider ?
• Exemplo em
linguagem C
usando sockets
simples
• arquivo ex1.c
• Leia
rfc2616
O que é um Web Spider ?
• ./ex1
O que é um Web Spider ?
• E o Servidor HTTP ?
• O que ele recebe ?
• Como é o seu funcionamento ?
O que é um Web Spider ?
• Exemplo foi feito
em linguagem C
• Arquivo ex2.c
O que é um Web Spider ?
• 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
• Automação no web browser (imacros,selenium...)
• Scanners,fuzzers e GPS Hacks...
Agenda
• Casos de uso
• Onde podemos ver web spiders,crawlers ?
Casos de uso
• Plugins para uso do twitter e facebook
• Sistemas de controle de RSS
• Sistemas de geo localização
• Na sua TV moderna
• No android e no iOS
• Contabilidade
• Sistemas de pagamento digital em gateways de
pagamento...
• Spiders,crawlers são usados no mundo todo
Casos de uso
• Muitos...
Casos de uso
• Em ferramentas...
Casos de uso
• 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
• Automação no web browser (imacros,selenium...)
• Scanners,fuzzers e GPS Hacks...
Agenda
• Parsers !!!
• <p>rand(x)</p>
• /<p>(.*?)</p>/
• split(),strtok(),strcmp...
• Comparar letra por letra, ou em cadeias...
• re2c,flex+bison,pcre,posix regex,sed...
• Assembly !? o.O
Minerando dados
Minerando dados
• Exemplo:
Minando dados
• Seu spider tem permissões para minar os dados ?
• Restringir o “robots.txt” pode ser bom e ruim !
Minerando dados
• 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
• Automação no web browser (imacros,selenium...)
• Scanners,fuzzers e GPS Hacks...
Agenda
•
APIs para ajudar no
desenvolvimento
•
APIs para ajudar no
desenvolvimento
• Tem muitas APIs para ajudar no trabalho pesado
• Perl por exemplo podemos usar
LWP,WWW::Mechanize...
• Python,Java,PHP,Chicken Scheme Lisp,C++...
todas tem alguma API para fazer seus web spiders
• Não precisa criar a roda com sockets!
• Ajudam a manipular COOKIES,POST,GET...
APIs para ajudar no
desenvolvimento
• 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
• Automação no web browser (imacros,selenium...)
• Scanners,fuzzers e GPS Hacks...
Agenda
• Sempre que temos input no protocolo HTTP temos
como os mais populares métodos
POST,GET,COOKIE.
• Em RestFul temos outros como Delete,Put...
• Outras entradas também “User Agent”
• Outras informações bem como IP...
Trabalhando com
formulários e cookies
• Achando um formulário e analisando o código fonte
Trabalhando com
formulários e cookies
• Usando plugin do Firefox “Web Developer”
Trabalhando com
formulários e cookies
Trabalhando com
formulários e cookies
• 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
• Automação no web browser (imacros,selenium...)
• Scanners,fuzzers e GPS Hacks...
Agenda
• Como usar um User Agent ?
• curl_setopt (curl, CURLOPT_USERAGENT,
"Mozilla/5.0 NetBSD 4.1");
• Evitar que seu Spider fique na black list
• Talvez deixando aleatório a partir de um array de
User Agent, diminuindo ainda mais o risco.
• Ver outras formas do alvo, como por exemplo
analisar a source para versão android ou iOS
Spoofing de User Agent
• 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
• Automação no web browser (imacros,selenium...)
• Scanners,fuzzers e GPS Hacks...
Agenda
• Autenticação POST ou GET, malabarismos com
COOKIE bem como armazenar em um arquivo e
recuperar na hora pedida...
• Brute Force ? Sim, por que não ?
• Uma lista de senha , um cookie jar e tempo para deixar
rolar... exemplo duas ferramentas...
• Wp-brute = brute force para wordpress
• Fairy = brute force para auth http
Autenticação,
captcha e OAUTH
•
Autenticação,
captcha e OAUTH
•
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 HTTP
• https://github.com/CoolerVoid/Fairy
• Fácil para entender
• Código simples
• Usa libCurl
Autenticação,
captcha e OAUTH
•
Autenticação,
captcha e OAUTH
• Captcha o que é ?
• Como quebrar um captcha ?
Autenticação,
captcha e OAUTH
• OAUTH o que é ?
• Facebook
• twitter
• APIs
• Tokens
• libCurl
Autenticação,
captcha e OAUTH
• 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
• Automação no web browser (imacros,selenium...)
• Scanners,fuzzers e GPS Hacks...
Agenda

OWASP Floripa - Web Spiders: Automação para Web Hacking by Antonio Costa aka Cooler_

  • 1.
  • 2.
    Coolers-lab $ whoami •Quem sou ? • 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
  • 3.
    • 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 • Automação no web browser (imacros,selenium...) • Scanners,fuzzers e GPS Hacks... Agenda
  • 4.
    • Trabalha nosprotocolos HTTP e HTTPs • Bots, web spiders, Web robot,crawler... O que é um Web Spider ?
  • 5.
    • E agoracomo fazer abstração do conteúdo ? O que é um Web Spider ?
  • 6.
    • Exemplo em linguagemC usando sockets simples • arquivo ex1.c • Leia rfc2616 O que é um Web Spider ?
  • 7.
    • ./ex1 O queé um Web Spider ?
  • 8.
    • E oServidor HTTP ? • O que ele recebe ? • Como é o seu funcionamento ? O que é um Web Spider ?
  • 9.
    • Exemplo foifeito em linguagem C • Arquivo ex2.c O que é um Web Spider ?
  • 10.
    • 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 • Automação no web browser (imacros,selenium...) • Scanners,fuzzers e GPS Hacks... Agenda
  • 11.
    • Casos deuso • Onde podemos ver web spiders,crawlers ? Casos de uso
  • 12.
    • Plugins parauso do twitter e facebook • Sistemas de controle de RSS • Sistemas de geo localização • Na sua TV moderna • No android e no iOS • Contabilidade • Sistemas de pagamento digital em gateways de pagamento... • Spiders,crawlers são usados no mundo todo Casos de uso
  • 13.
  • 14.
  • 15.
    • 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 • Automação no web browser (imacros,selenium...) • Scanners,fuzzers e GPS Hacks... Agenda
  • 16.
    • Parsers !!! •<p>rand(x)</p> • /<p>(.*?)</p>/ • split(),strtok(),strcmp... • Comparar letra por letra, ou em cadeias... • re2c,flex+bison,pcre,posix regex,sed... • Assembly !? o.O Minerando dados
  • 17.
  • 18.
  • 19.
    • Seu spidertem permissões para minar os dados ? • Restringir o “robots.txt” pode ser bom e ruim ! Minerando dados
  • 20.
    • 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 • Automação no web browser (imacros,selenium...) • Scanners,fuzzers e GPS Hacks... Agenda
  • 21.
    • APIs para ajudarno desenvolvimento
  • 22.
    • APIs para ajudarno desenvolvimento
  • 23.
    • Tem muitasAPIs para ajudar no trabalho pesado • Perl por exemplo podemos usar LWP,WWW::Mechanize... • Python,Java,PHP,Chicken Scheme Lisp,C++... todas tem alguma API para fazer seus web spiders • Não precisa criar a roda com sockets! • Ajudam a manipular COOKIES,POST,GET... APIs para ajudar no desenvolvimento
  • 24.
    • 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 • Automação no web browser (imacros,selenium...) • Scanners,fuzzers e GPS Hacks... Agenda
  • 25.
    • Sempre quetemos input no protocolo HTTP temos como os mais populares métodos POST,GET,COOKIE. • Em RestFul temos outros como Delete,Put... • Outras entradas também “User Agent” • Outras informações bem como IP... Trabalhando com formulários e cookies
  • 26.
    • Achando umformulário e analisando o código fonte Trabalhando com formulários e cookies
  • 27.
    • Usando plugindo Firefox “Web Developer” Trabalhando com formulários e cookies
  • 28.
  • 30.
    • 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 • Automação no web browser (imacros,selenium...) • Scanners,fuzzers e GPS Hacks... Agenda
  • 31.
    • Como usarum User Agent ? • curl_setopt (curl, CURLOPT_USERAGENT, "Mozilla/5.0 NetBSD 4.1"); • Evitar que seu Spider fique na black list • Talvez deixando aleatório a partir de um array de User Agent, diminuindo ainda mais o risco. • Ver outras formas do alvo, como por exemplo analisar a source para versão android ou iOS Spoofing de User Agent
  • 32.
    • 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 • Automação no web browser (imacros,selenium...) • Scanners,fuzzers e GPS Hacks... Agenda
  • 33.
    • Autenticação POSTou GET, malabarismos com COOKIE bem como armazenar em um arquivo e recuperar na hora pedida... • Brute Force ? Sim, por que não ? • Uma lista de senha , um cookie jar e tempo para deixar rolar... exemplo duas ferramentas... • Wp-brute = brute force para wordpress • Fairy = brute force para auth http Autenticação, captcha e OAUTH
  • 34.
  • 35.
  • 36.
  • 37.
    • HTTP AUTH, o mais fácil de brutar :-) Autenticação, captcha e OAUTH
  • 38.
    • Green Fairy– Programa para brute force de HTTP • https://github.com/CoolerVoid/Fairy • Fácil para entender • Código simples • Usa libCurl Autenticação, captcha e OAUTH
  • 39.
  • 40.
    • Captcha oque é ? • Como quebrar um captcha ? Autenticação, captcha e OAUTH
  • 41.
    • OAUTH oque é ? • Facebook • twitter • APIs • Tokens • libCurl Autenticação, captcha e OAUTH
  • 42.
    • 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 • Automação no web browser (imacros,selenium...) • Scanners,fuzzers e GPS Hacks... Agenda