SlideShare uma empresa Scribd logo
1 de 48
Baixar para ler offline
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
Agenda


• 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...
O que é um Web Spider ?


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.1nHost: 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
  Oknn<html>codigo em
  html<br><b>BUGSEC</b></htm
  l>n"
O que é um Web Spider ?


• Ex2.c
Casos de uso


• 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...
Minerando dados


• 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”
APIs para ajudar no
                          desenvolvimento


• 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

•
Trabalhando com
                     formulários e cookies



• 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
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");
Spoofing de User Agent


• 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.
Passando certificados
                                  com SSL


• 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
Uso de proxys


• curl_setopt(x,CURLOPT_HTTPPROXYTUNNEL, 1);
• curl_setopt(x, CURLOPT_PROXY,
  “201.66.121.116:666”);
• curl_setopt(x, CURLOPT_FOLLOWLOCATION, 1);
Autenticação,
                             captcha e OAUTH



• 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 é ?

•   Facebook
•   twitter
•   APIs
•   Tokens
• http://oauth.net
Automação no web
                             browser

• PTC ( Paid to Click) ,Pagam por Cliques !
• AdSense como google ,
  buscapé,submarino,zura...
• Neobux , adbux ,landbux...




         irc.makecash.org
Scanners,fuzzers,GPS
                     hacks...

• 0d1n :
 http://code.google.com/p/0d1n/
Scanners,fuzzers, 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...

Mais conteúdo relacionado

Mais procurados

WebSocket com Node.js ( socketstream && coffeescript ) X RoR ( Juggernaut )
WebSocket com Node.js ( socketstream && coffeescript ) X RoR ( Juggernaut )WebSocket com Node.js ( socketstream && coffeescript ) X RoR ( Juggernaut )
WebSocket com Node.js ( socketstream && coffeescript ) X RoR ( Juggernaut )João Moura
 
Presentta: usando Node.js na prática
Presentta: usando Node.js na práticaPresentta: usando Node.js na prática
Presentta: usando Node.js na práticaNando Vieira
 
Ph pn rio 2012 - conheça seu primeiro banco de dados orientado a grafos
Ph pn rio 2012 - conheça seu primeiro banco de dados orientado a grafosPh pn rio 2012 - conheça seu primeiro banco de dados orientado a grafos
Ph pn rio 2012 - conheça seu primeiro banco de dados orientado a grafosSuissa
 
Golang para desenvolvedores pragmáticos parte 2
Golang para desenvolvedores pragmáticos  parte 2Golang para desenvolvedores pragmáticos  parte 2
Golang para desenvolvedores pragmáticos parte 2Wilson Júnior
 
Go Lang para desenvolvedores pragmáticos (parte 1)
Go Lang para desenvolvedores pragmáticos (parte 1)Go Lang para desenvolvedores pragmáticos (parte 1)
Go Lang para desenvolvedores pragmáticos (parte 1)Wilson Júnior
 
Gerando bindings de bibliotecas C++ para Python
Gerando bindings de bibliotecas C++ para PythonGerando bindings de bibliotecas C++ para Python
Gerando bindings de bibliotecas C++ para PythonMarcelo Lira
 
Mobileconf dicas-android
Mobileconf dicas-androidMobileconf dicas-android
Mobileconf dicas-androidAlberto Souza
 
Escreva aplicações web assíncronas com python3 + tornado
Escreva aplicações web assíncronas com python3 + tornadoEscreva aplicações web assíncronas com python3 + tornado
Escreva aplicações web assíncronas com python3 + tornadoWilson Júnior
 
Autenticacao em APIs com SSL
Autenticacao em APIs com SSLAutenticacao em APIs com SSL
Autenticacao em APIs com SSLMarcelo Milhomem
 
De A a Zabbix - I Congresso de Ciências Exatas e Tecnológicas
De A a Zabbix - I Congresso de Ciências Exatas e TecnológicasDe A a Zabbix - I Congresso de Ciências Exatas e Tecnológicas
De A a Zabbix - I Congresso de Ciências Exatas e TecnológicasAndré Déo
 
Zabbix e SNMP - Zabbix Conference LatAm - André Déo
Zabbix e SNMP - Zabbix Conference LatAm - André DéoZabbix e SNMP - Zabbix Conference LatAm - André Déo
Zabbix e SNMP - Zabbix Conference LatAm - André DéoAndré Déo
 
Desenvolvimento de jogos com HTML5 e javascript
Desenvolvimento de jogos com HTML5 e javascriptDesenvolvimento de jogos com HTML5 e javascript
Desenvolvimento de jogos com HTML5 e javascriptWillian Molinari
 
Zabbix Conference LatAm 2016 - Andre Deo - SNMP and Zabbix
Zabbix Conference LatAm 2016 - Andre Deo - SNMP and ZabbixZabbix Conference LatAm 2016 - Andre Deo - SNMP and Zabbix
Zabbix Conference LatAm 2016 - Andre Deo - SNMP and ZabbixZabbix
 
Construindo um Google Pyrate
Construindo um Google PyrateConstruindo um Google Pyrate
Construindo um Google PyrateRoselma Mendes
 

Mais procurados (20)

Treinamento Elasticsearch - Parte 1
Treinamento Elasticsearch - Parte 1Treinamento Elasticsearch - Parte 1
Treinamento Elasticsearch - Parte 1
 
Vagrant + Puppet
Vagrant + PuppetVagrant + Puppet
Vagrant + Puppet
 
WebSocket com Node.js ( socketstream && coffeescript ) X RoR ( Juggernaut )
WebSocket com Node.js ( socketstream && coffeescript ) X RoR ( Juggernaut )WebSocket com Node.js ( socketstream && coffeescript ) X RoR ( Juggernaut )
WebSocket com Node.js ( socketstream && coffeescript ) X RoR ( Juggernaut )
 
JavaScript Hacks
JavaScript HacksJavaScript Hacks
JavaScript Hacks
 
Presentta: usando Node.js na prática
Presentta: usando Node.js na práticaPresentta: usando Node.js na prática
Presentta: usando Node.js na prática
 
Ph pn rio 2012 - conheça seu primeiro banco de dados orientado a grafos
Ph pn rio 2012 - conheça seu primeiro banco de dados orientado a grafosPh pn rio 2012 - conheça seu primeiro banco de dados orientado a grafos
Ph pn rio 2012 - conheça seu primeiro banco de dados orientado a grafos
 
MongoDB + PHP
MongoDB + PHPMongoDB + PHP
MongoDB + PHP
 
Golang para desenvolvedores pragmáticos parte 2
Golang para desenvolvedores pragmáticos  parte 2Golang para desenvolvedores pragmáticos  parte 2
Golang para desenvolvedores pragmáticos parte 2
 
Go Lang para desenvolvedores pragmáticos (parte 1)
Go Lang para desenvolvedores pragmáticos (parte 1)Go Lang para desenvolvedores pragmáticos (parte 1)
Go Lang para desenvolvedores pragmáticos (parte 1)
 
Doctrine for Dummies
Doctrine for DummiesDoctrine for Dummies
Doctrine for Dummies
 
Gerando bindings de bibliotecas C++ para Python
Gerando bindings de bibliotecas C++ para PythonGerando bindings de bibliotecas C++ para Python
Gerando bindings de bibliotecas C++ para Python
 
Mobileconf dicas-android
Mobileconf dicas-androidMobileconf dicas-android
Mobileconf dicas-android
 
Escreva aplicações web assíncronas com python3 + tornado
Escreva aplicações web assíncronas com python3 + tornadoEscreva aplicações web assíncronas com python3 + tornado
Escreva aplicações web assíncronas com python3 + tornado
 
Autenticacao em APIs com SSL
Autenticacao em APIs com SSLAutenticacao em APIs com SSL
Autenticacao em APIs com SSL
 
De A a Zabbix - I Congresso de Ciências Exatas e Tecnológicas
De A a Zabbix - I Congresso de Ciências Exatas e TecnológicasDe A a Zabbix - I Congresso de Ciências Exatas e Tecnológicas
De A a Zabbix - I Congresso de Ciências Exatas e Tecnológicas
 
Zabbix e SNMP - Zabbix Conference LatAm - André Déo
Zabbix e SNMP - Zabbix Conference LatAm - André DéoZabbix e SNMP - Zabbix Conference LatAm - André Déo
Zabbix e SNMP - Zabbix Conference LatAm - André Déo
 
Desenvolvimento de jogos com HTML5 e javascript
Desenvolvimento de jogos com HTML5 e javascriptDesenvolvimento de jogos com HTML5 e javascript
Desenvolvimento de jogos com HTML5 e javascript
 
O Elefante Poliglota
O Elefante PoliglotaO Elefante Poliglota
O Elefante Poliglota
 
Zabbix Conference LatAm 2016 - Andre Deo - SNMP and Zabbix
Zabbix Conference LatAm 2016 - Andre Deo - SNMP and ZabbixZabbix Conference LatAm 2016 - Andre Deo - SNMP and Zabbix
Zabbix Conference LatAm 2016 - Andre Deo - SNMP and Zabbix
 
Construindo um Google Pyrate
Construindo um Google PyrateConstruindo um Google Pyrate
Construindo um Google Pyrate
 

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

OWASP Floripa - Web Spiders: Automação para Web Hacking by Antonio Costa aka ...
OWASP Floripa - Web Spiders: Automação para Web Hacking by Antonio Costa aka ...OWASP Floripa - Web Spiders: Automação para Web Hacking by Antonio Costa aka ...
OWASP Floripa - Web Spiders: Automação para Web Hacking by Antonio Costa aka ...Magno Logan
 
Tony\'s Top 10 Computer Forensics Artifacts
Tony\'s Top 10 Computer Forensics ArtifactsTony\'s Top 10 Computer Forensics Artifacts
Tony\'s Top 10 Computer Forensics Artifactstonyrodrigues
 
Pentest Invasão e Defesa - AnonFeh
Pentest   Invasão e Defesa - AnonFehPentest   Invasão e Defesa - AnonFeh
Pentest Invasão e Defesa - AnonFehPhillipe Martins
 
PHP RESTful Web Services - PHPConf'09
PHP RESTful Web Services - PHPConf'09PHP RESTful Web Services - PHPConf'09
PHP RESTful Web Services - PHPConf'09Felipe Ribeiro
 
Python - Programando em alto nível
Python - Programando em alto nívelPython - Programando em alto nível
Python - Programando em alto nívelIgor Sobreira
 
O bom, o mau, o vilão... e o node.js
O bom, o mau, o vilão... e o node.jsO bom, o mau, o vilão... e o node.js
O bom, o mau, o vilão... e o node.jsNuno Paz
 
Talk no Meetup LaravelSP #3
Talk no Meetup LaravelSP #3Talk no Meetup LaravelSP #3
Talk no Meetup LaravelSP #3Wellington Silva
 
O que podemos fazer com Python?
O que podemos fazer com Python?O que podemos fazer com Python?
O que podemos fazer com Python?Izabela Guerreiro
 
Scrum Gathering Rio 2016 - Conteinerizando Testes com Docker Compose
Scrum Gathering Rio 2016 - Conteinerizando Testes com Docker ComposeScrum Gathering Rio 2016 - Conteinerizando Testes com Docker Compose
Scrum Gathering Rio 2016 - Conteinerizando Testes com Docker ComposeStefan Teixeira
 
Ecossistema Ruby e Rails (Serpro BH)
Ecossistema Ruby e Rails (Serpro BH)Ecossistema Ruby e Rails (Serpro BH)
Ecossistema Ruby e Rails (Serpro BH)Daniel Lopes
 
Redis um banco chave valor
Redis um banco chave valorRedis um banco chave valor
Redis um banco chave valorKinn Julião
 
Escalando API's com NodeJS, Docker e RabbitMQ
Escalando API's com NodeJS, Docker e RabbitMQEscalando API's com NodeJS, Docker e RabbitMQ
Escalando API's com NodeJS, Docker e RabbitMQMatheus Fidelis
 
Segurança & Ruby on Rails
Segurança & Ruby on RailsSegurança & Ruby on Rails
Segurança & Ruby on RailsJulio Monteiro
 
Planejamento de Capacidade Técnicas e Ferramentas
Planejamento de Capacidade Técnicas e FerramentasPlanejamento de Capacidade Técnicas e Ferramentas
Planejamento de Capacidade Técnicas e Ferramentasluanrjesus
 
Workshop Performance Rails
Workshop Performance RailsWorkshop Performance Rails
Workshop Performance RailsVitor Pellegrino
 
Zabbix e KACE, uma boa ideia, e porque não!
Zabbix e KACE, uma boa ideia, e porque não!Zabbix e KACE, uma boa ideia, e porque não!
Zabbix e KACE, uma boa ideia, e porque não!Fabio Vieira Mello
 

Semelhante a “Web Spiders” – Automação para Web Hacking (20)

OWASP Floripa - Web Spiders: Automação para Web Hacking by Antonio Costa aka ...
OWASP Floripa - Web Spiders: Automação para Web Hacking by Antonio Costa aka ...OWASP Floripa - Web Spiders: Automação para Web Hacking by Antonio Costa aka ...
OWASP Floripa - Web Spiders: Automação para Web Hacking by Antonio Costa aka ...
 
Tony\'s Top 10 Computer Forensics Artifacts
Tony\'s Top 10 Computer Forensics ArtifactsTony\'s Top 10 Computer Forensics Artifacts
Tony\'s Top 10 Computer Forensics Artifacts
 
Pentest Invasão e Defesa - AnonFeh
Pentest   Invasão e Defesa - AnonFehPentest   Invasão e Defesa - AnonFeh
Pentest Invasão e Defesa - AnonFeh
 
PHP RESTful Web Services - PHPConf'09
PHP RESTful Web Services - PHPConf'09PHP RESTful Web Services - PHPConf'09
PHP RESTful Web Services - PHPConf'09
 
Python - Programando em alto nível
Python - Programando em alto nívelPython - Programando em alto nível
Python - Programando em alto nível
 
Automatizando Nmap com NSE
Automatizando Nmap com NSEAutomatizando Nmap com NSE
Automatizando Nmap com NSE
 
O bom, o mau, o vilão... e o node.js
O bom, o mau, o vilão... e o node.jsO bom, o mau, o vilão... e o node.js
O bom, o mau, o vilão... e o node.js
 
Pentest conisli07
Pentest conisli07Pentest conisli07
Pentest conisli07
 
Talk no Meetup LaravelSP #3
Talk no Meetup LaravelSP #3Talk no Meetup LaravelSP #3
Talk no Meetup LaravelSP #3
 
Html5
Html5Html5
Html5
 
O que podemos fazer com Python?
O que podemos fazer com Python?O que podemos fazer com Python?
O que podemos fazer com Python?
 
Vivendo de hacking
Vivendo de hackingVivendo de hacking
Vivendo de hacking
 
Scrum Gathering Rio 2016 - Conteinerizando Testes com Docker Compose
Scrum Gathering Rio 2016 - Conteinerizando Testes com Docker ComposeScrum Gathering Rio 2016 - Conteinerizando Testes com Docker Compose
Scrum Gathering Rio 2016 - Conteinerizando Testes com Docker Compose
 
Ecossistema Ruby e Rails (Serpro BH)
Ecossistema Ruby e Rails (Serpro BH)Ecossistema Ruby e Rails (Serpro BH)
Ecossistema Ruby e Rails (Serpro BH)
 
Redis um banco chave valor
Redis um banco chave valorRedis um banco chave valor
Redis um banco chave valor
 
Escalando API's com NodeJS, Docker e RabbitMQ
Escalando API's com NodeJS, Docker e RabbitMQEscalando API's com NodeJS, Docker e RabbitMQ
Escalando API's com NodeJS, Docker e RabbitMQ
 
Segurança & Ruby on Rails
Segurança & Ruby on RailsSegurança & Ruby on Rails
Segurança & Ruby on Rails
 
Planejamento de Capacidade Técnicas e Ferramentas
Planejamento de Capacidade Técnicas e FerramentasPlanejamento de Capacidade Técnicas e Ferramentas
Planejamento de Capacidade Técnicas e Ferramentas
 
Workshop Performance Rails
Workshop Performance RailsWorkshop Performance Rails
Workshop Performance Rails
 
Zabbix e KACE, uma boa ideia, e porque não!
Zabbix e KACE, uma boa ideia, e porque não!Zabbix e KACE, uma boa ideia, e porque não!
Zabbix e KACE, uma boa ideia, e porque não!
 

Mais de Conviso Application Security

Integrando testes de segurança ao processo de desenvolvimento de software
Integrando testes de segurança ao processo de desenvolvimento de softwareIntegrando testes de segurança ao processo de desenvolvimento de software
Integrando testes de segurança ao processo de desenvolvimento de softwareConviso Application Security
 
Uma verdade inconveniente - Quem é responsável pela INsegurança das aplicações?
Uma verdade inconveniente - Quem é responsável pela INsegurança das aplicações? Uma verdade inconveniente - Quem é responsável pela INsegurança das aplicações?
Uma verdade inconveniente - Quem é responsável pela INsegurança das aplicações? Conviso Application Security
 
Implementando Segurança em desenvolvimento com a verdadeira ISO
Implementando Segurança em desenvolvimento com a verdadeira ISOImplementando Segurança em desenvolvimento com a verdadeira ISO
Implementando Segurança em desenvolvimento com a verdadeira ISOConviso Application Security
 
Automatizando a análise passiva de aplicações Web
Automatizando a análise passiva de aplicações WebAutomatizando a análise passiva de aplicações Web
Automatizando a análise passiva de aplicações WebConviso Application Security
 
MASP: Um processo racional para garantir o nível de proteção das aplicações w...
MASP: Um processo racional para garantir o nível de proteção das aplicações w...MASP: Um processo racional para garantir o nível de proteção das aplicações w...
MASP: Um processo racional para garantir o nível de proteção das aplicações w...Conviso Application Security
 
O processo de segurança em desenvolvimento, que não é ISO 15.408
O processo de segurança em desenvolvimento, que não é ISO 15.408O processo de segurança em desenvolvimento, que não é ISO 15.408
O processo de segurança em desenvolvimento, que não é ISO 15.408Conviso Application Security
 
Encontrando falhas em aplicações web baseadas em flash
Encontrando falhas em aplicações web baseadas em flashEncontrando falhas em aplicações web baseadas em flash
Encontrando falhas em aplicações web baseadas em flashConviso Application Security
 
Protegendo Aplicações Php com PHPIDS - Php Conference 2009
Protegendo Aplicações Php com PHPIDS - Php Conference 2009Protegendo Aplicações Php com PHPIDS - Php Conference 2009
Protegendo Aplicações Php com PHPIDS - Php Conference 2009Conviso Application Security
 

Mais de Conviso Application Security (20)

Entendendo o PCI-DSS
Entendendo o PCI-DSSEntendendo o PCI-DSS
Entendendo o PCI-DSS
 
Integrando testes de segurança ao processo de desenvolvimento de software
Integrando testes de segurança ao processo de desenvolvimento de softwareIntegrando testes de segurança ao processo de desenvolvimento de software
Integrando testes de segurança ao processo de desenvolvimento de software
 
Uma verdade inconveniente - Quem é responsável pela INsegurança das aplicações?
Uma verdade inconveniente - Quem é responsável pela INsegurança das aplicações? Uma verdade inconveniente - Quem é responsável pela INsegurança das aplicações?
Uma verdade inconveniente - Quem é responsável pela INsegurança das aplicações?
 
Building Client-Side Attacks with HTML5 Features
Building Client-Side Attacks with HTML5 FeaturesBuilding Client-Side Attacks with HTML5 Features
Building Client-Side Attacks with HTML5 Features
 
Você Escreve Código e Quem Valida?
Você Escreve Código e Quem Valida?Você Escreve Código e Quem Valida?
Você Escreve Código e Quem Valida?
 
Testar não é suficiente. Tem que fazer direito!
Testar não é suficiente. Tem que fazer direito!Testar não é suficiente. Tem que fazer direito!
Testar não é suficiente. Tem que fazer direito!
 
Implementando Segurança em desenvolvimento com a verdadeira ISO
Implementando Segurança em desenvolvimento com a verdadeira ISOImplementando Segurança em desenvolvimento com a verdadeira ISO
Implementando Segurança em desenvolvimento com a verdadeira ISO
 
Automatizando a análise passiva de aplicações Web
Automatizando a análise passiva de aplicações WebAutomatizando a análise passiva de aplicações Web
Automatizando a análise passiva de aplicações Web
 
Você confia nas suas aplicações mobile?
Você confia nas suas aplicações mobile?Você confia nas suas aplicações mobile?
Você confia nas suas aplicações mobile?
 
Pentest em Aplicações Móveis
Pentest em Aplicações MóveisPentest em Aplicações Móveis
Pentest em Aplicações Móveis
 
MASP: Um processo racional para garantir o nível de proteção das aplicações w...
MASP: Um processo racional para garantir o nível de proteção das aplicações w...MASP: Um processo racional para garantir o nível de proteção das aplicações w...
MASP: Um processo racional para garantir o nível de proteção das aplicações w...
 
HTML5 Seguro ou Inseguro?
HTML5 Seguro ou Inseguro?HTML5 Seguro ou Inseguro?
HTML5 Seguro ou Inseguro?
 
Threats from economical improvement rss 2010
Threats from economical improvement rss 2010Threats from economical improvement rss 2010
Threats from economical improvement rss 2010
 
O processo de segurança em desenvolvimento, que não é ISO 15.408
O processo de segurança em desenvolvimento, que não é ISO 15.408O processo de segurança em desenvolvimento, que não é ISO 15.408
O processo de segurança em desenvolvimento, que não é ISO 15.408
 
Encontrando falhas em aplicações web baseadas em flash
Encontrando falhas em aplicações web baseadas em flashEncontrando falhas em aplicações web baseadas em flash
Encontrando falhas em aplicações web baseadas em flash
 
Protegendo Aplicações Php com PHPIDS - Php Conference 2009
Protegendo Aplicações Php com PHPIDS - Php Conference 2009Protegendo Aplicações Php com PHPIDS - Php Conference 2009
Protegendo Aplicações Php com PHPIDS - Php Conference 2009
 
Playing Web Fuzzing - H2HC 2009
Playing Web Fuzzing - H2HC 2009Playing Web Fuzzing - H2HC 2009
Playing Web Fuzzing - H2HC 2009
 
OWASP Top 10 e aplicações .Net - Tech-Ed 2007
OWASP Top 10 e aplicações .Net - Tech-Ed 2007OWASP Top 10 e aplicações .Net - Tech-Ed 2007
OWASP Top 10 e aplicações .Net - Tech-Ed 2007
 
Abotoaduras & Bonés
Abotoaduras & BonésAbotoaduras & Bonés
Abotoaduras & Bonés
 
Tratando as vulnerabilidades do Top 10 com php
Tratando as vulnerabilidades do Top 10 com phpTratando as vulnerabilidades do Top 10 com php
Tratando as vulnerabilidades do Top 10 com php
 

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

  • 2. 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
  • 3. Agenda • 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...
  • 4. O que é um Web Spider ? Códigos exemplos da apresentação ! code.google.com/p/bugsec/ downloads/list • owasp_cooler.zip
  • 5. O que é um Web Spider ? • Geralmente trabalha nos protocolos • HTTP e HTTPs
  • 6. O que é um Web Spider ? • E agora como fazer abstração do conteúdo ?
  • 7. O que é um Web Spider ? • Exemplo usando sockets simples • arquivo ex1.c • Leia rfc2616
  • 8. O que é um Web Spider ? • send() “GET /index.php HTTP/1.1nHost: localhost t n “ • Então para pegar a resposta um read() • Como resultado temos o source da página :-)
  • 9. O que é um Web Spider ? • ./ex1
  • 10. O que é um Web Spider ? • Exemplo • servidor HTTP • Arquivo ex2.c
  • 11. 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 Oknn<html>codigo em html<br><b>BUGSEC</b></htm l>n"
  • 12. O que é um Web Spider ? • Ex2.c
  • 13. Casos de uso • Onde podemos encontrar web spiders ?
  • 14. Casos de uso • No android e no iOS • Na sua TV moderna • Gateways de pagamento...
  • 16. Casos de uso • Muitos...
  • 17. Casos de uso • Em ferramentas...
  • 18. Minerando dados • 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
  • 19. Minerando dados • Spider para pegar temperatura do tempo Como você faria o Parser ???
  • 20. Minerando dados • Temperatura.pl • PCRE foreach (@result) { if ($_ =~ m/<b>(.*?).C</b>/) { my $graus="$1"; …
  • 22. Minerando dados • Seu spider tem permissões para minar os dados ? • “robots.txt”
  • 23. APIs para ajudar no desenvolvimento • 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!
  • 24. APIs para ajudar no desenvolvimento •
  • 25. APIs para ajudar no desenvolvimento •
  • 26. Trabalhando com formulários e cookies • 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”
  • 28. 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");
  • 29. 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");
  • 30. Spoofing de User Agent • Como mudar o User Agent ?
  • 31. 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.
  • 32. Passando certificados com SSL • 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
  • 33. Uso de proxys • curl_setopt(x,CURLOPT_HTTPPROXYTUNNEL, 1); • curl_setopt(x, CURLOPT_PROXY, “201.66.121.116:666”); • curl_setopt(x, CURLOPT_FOLLOWLOCATION, 1);
  • 34. Autenticação, captcha e OAUTH • Brute Force ? Sim, por que não ? • Wp-brute = brute force para wordpress • Fairy = brute force para auth http
  • 35. Autenticação, captcha e OAUTH •
  • 36. Autenticação, captcha e OAUTH • HTTP AUTH , o mais fácil de brutar :-)
  • 37. 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”
  • 38. Autenticação, captcha e OAUTH • Captcha o que é ? • Como quebrar um captcha ?
  • 39. Autenticação, captcha e OAUTH • OAUTH o que é ? • Facebook • twitter • APIs • Tokens • http://oauth.net
  • 40. Automação no web browser • PTC ( Paid to Click) ,Pagam por Cliques ! • AdSense como google , buscapé,submarino,zura... • Neobux , adbux ,landbux... irc.makecash.org
  • 41. Scanners,fuzzers,GPS hacks... • 0d1n : http://code.google.com/p/0d1n/
  • 42. Scanners,fuzzers, 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”.
  • 43. Scanners,fuzzers, hacks... • Analisamos os dados “hammer.html”
  • 44. Scanners,fuzzers, hacks... • Ao clicar em uma linha na tabela
  • 45. Scanners,fuzzers, hacks... • Um Bruteforce • -h Site.com/index.jsp • -P 'login=admin?password=!' • Depois basta analisar a tabela gerada
  • 47. Scanners,fuzzers, hacks... Contato • c00f3r@gmail.com • acosta@conviso.com.br
  • 48. Scanners,fuzzers, hacks... Muito Obrigado ! • BugSec , CONVISO... • muzgo,F117,bsdaemon,eremitah...