Baixe em PDF
Baixe em PDF
O melhor jeito de se proteger contra um invasor de banco de dados é pensando como ele. Qual seria o interesse de um hacker pelo seu banco de dados? Como ele tentaria conseguir o que quer? Existem inúmeros tipos de bancos de dados e infinitas maneiras de atacá-los, entretanto, saiba que a maioria dos cibercriminosos geralmente o fazem descobrindo a senha de root ou rodando um exploit. Para invadir um banco de dados é necessário ter conhecimento em SQL e entender a mecânica de um banco de dados.
Passos
-
Descubra se o banco de dados está vulnerável. [1] X Fonte de pesquisa Para isso, será necessário conhecer um pouco de SQL. Abra a tela de login do banco de dados em qualquer navegador web e digite ’ (aspas simples) no campo de nome do usuário. Clique no botão para entrar e veja se surge um erro parecido com “SQL Exception: quoted string not properly terminated” ou “invalid character”. Se a resposta for afirmativa para qualquer um dos erros, o banco está suscetível à injeção de código.
-
Descubra o número de colunas do banco. [2] X Fonte de pesquisa Volte para a tela de login ou vá para qualquer página que termine com “id=” ou “catid=”. Clique na barra de endereço do navegador. Ao final do endereço, dê um espaço e adicione o seguinte código:
order by 1
e aperte ↵ Enter . Substitua o 1 por 2 e pressione ↵ Enter novamente. Continue aumentando o número até obter um erro. O número total de colunas será igual ao número inserido antes do erro. -
Descubra quais colunas aceitam consultas. Na barra de endereço, mude o código
catid=1
ouid=1
paracatid=-1
ouid=-1
. Dê um espaço e digite:union select 1,2,3,4,5,6
. É importante que os números contem até o número máximo de colunas e sejam separados por vírgulas. No exemplo anterior, o número total de colunas do banco de dados foi 6. Pressione ↵ Enter , o resultado corresponderá aos números das colunas que aceitam consultas. -
Injete o SQL nas colunas vulneráveis. Por exemplo, para saber o nome do atual usuário logado no banco de dados, faça um teste na coluna 2: apague tudo que estiver escrito depois de id=1 na barra de endereço do navegador e dê um espaço. Em seguida, digite:
union select 1,concat(user()),3,4,5,6--
. Aperte o ↵ Enter e, então, o nome do usuário aparecerá. Digite qualquer código SQL que desejar na barra de endereço e obtenha os resultados procurados, como uma lista de todos os usuários e senhas cadastrados no banco, por exemplo (lembre-se de que as senhas deverão estar criptografadas, portanto, não terão utilidade).Publicidade
-
Tente logar com a senha padrão. Alguns bancos de dados não possuem uma senha de root (ou admin) padronizada, o que torna possível logar no sistema deixando o campo de senha em branco. Outros possuem senhas padronizadas que podem ser descobertas lendo manuais ou posts em sites e fóruns.
-
Experimente algumas senhas comuns. É bem provável que o administrador do banco de dados tenha o protegido com uma senha. No entanto, existem muitas listas de senhas disponíveis na internet, nas quais é possível encontrar milhões de senhas reais que foram conseguidas por meio de testes de segurança em sites reais.
- Uma boa fonte de listas de senhas é o site: https://github.com/danielmiessler/SecLists/tree/master/Passwords.
- Embora seja contraproducente testar senhas manualmente, você pode dar sorte. Deixe a força bruta para mais tarde.
-
Use uma ferramenta de força bruta. Ferramentas desse tipo testam milhões de combinações de palavras, símbolos e números para tentar descobrir a senha correta para logar no banco.
- Algumas das ferramentas mais conhecidas podem rodar em quase todos os sistemas, veja: DBPwAudit (para Oracle, MySQL, MS-SQL e DB2) e Access Passview (para o Microsoft Access). [3]
X
Fonte de pesquisa
Se preferir, faça uma pesquisa na internet para encontrar outras ferramentas específicas para o seu banco. Por exemplo, para encontrar uma ferramenta para um banco MySQL, digite no Google:
força bruta mysql
. - Caso possua acesso ao servidor que hospeda o banco de dados, rode um script direto no arquivo de senhas — o John the Ripper, por exemplo. O arquivo fica armazenado em locais diferentes, de acordo com o banco de dados. [4] X Fonte de pesquisa
- Só baixe esse tipo de ferramenta de sites confiáveis.
Publicidade - Algumas das ferramentas mais conhecidas podem rodar em quase todos os sistemas, veja: DBPwAudit (para Oracle, MySQL, MS-SQL e DB2) e Access Passview (para o Microsoft Access). [3]
X
Fonte de pesquisa
Se preferir, faça uma pesquisa na internet para encontrar outras ferramentas específicas para o seu banco. Por exemplo, para encontrar uma ferramenta para um banco MySQL, digite no Google:
-
Encontre a ferramenta certa. [5] X Fonte de pesquisa O site Sectools.org tem disponibilizado e atualizado uma lista de ferramentas de segurança por mais de dez anos. Lá é possível encontrar ferramentas de exploração de vulnerabilidades em bancos de dados, conhecidas como exploit. As ferramentas lá disponíveis são usadas por especialistas em segurança do mundo inteiro, portanto, são confiáveis. Procure a seção de exploits ou faça uma busca própria na internet por outras ferramentas semelhantes.
- Outra sugestão para baixar exploits é: www.exploit-db.com. Entre no site e digite no campo de busca o nome do banco de dados que pretende testar (por exemplo: “mysql”). Resolva o captcha e aperte o botão para procurar.
- Pesquise tudo a respeito da ferramenta que pretende usar, para saber o que fazer no caso de aparecer qualquer problema.
-
Encontre uma rede sem senha através de wardriving. [6] X Fonte de pesquisa Este Passo só é necessário para quem não tem acesso à internet em casa. Wardriving consiste em andar (de carro, bicicleta ou a pé) por uma região em busca de redes sem fio que não possuam senha. Para isso, é necessário possuir um computador ou smartphone equipados com um software de escaneamento de rede (NetStumbler e Kismet, por exemplo). Utilizar-se de uma rede alheia para cometer crimes não deixa de ser crime – é muito inocente pensar que o criminoso precisa estar em casa para ser descoberto por um crime na internet.
-
Rode o exploit escolhido.Publicidade
Dicas
- Sempre mantenha os dados do seu servidor protegidos por um firewall.
- Coloque senha no seu roteador.
- A maioria dos conhecimentos em segurança da internet não está disponível na internet, por isso é importante estudá-los em livros. Converse com um especialista em segurança da internet, faça cursos e faculdade de engenharia ou ciências da computação para aprender mais.
Publicidade
Avisos
- Conheça a lei nº. 12.737, de crimes cibernéticos.
- Não tente invadir um computador, uma rede ou um sistema por outra razão que não seja a de testar a segurança.
- Obter (ver), adulterar ou apagar informações alheias armazenadas em dispositivos (computadores, celulares, servidores, etc.) locais ou remotos (na internet) é crime passível de prisão por até dois anos e multa.
Publicidade
Referências
- ↑ http://blog.red-database-security.com/2009/01/17/tutorial-oracle-sql-injection-in-webapps-part-i/
- ↑ https://blog.udemy.com/sql-injection-tutorial/
- ↑ http://opensourceeducation.net/database-auditing-with-open-source-tool/
- ↑ http://www.openwall.com/john/doc
- ↑ http://sectools.org
- ↑ http://www.seattletimes.com/business/seattles-packed-with-wi-fi-spots/
Publicidade