Baixe o app para aproveitar ainda mais
Prévia do material em texto
DEFESA CIBERNÉTICA • Professor: Jairo Disciplina: Técnicas de Ataques Cibernético Data: Alunos: Relatório – Ataque sqlmap OBJETIVO: Realizar um ataque de sqlmap no site: http://testphp.vulnweb.com/listproducts.php? cat=1 FERRAMENTA: Linux Kali 5.2.0-kali2-amd64 #1 SMP Debian 5,2,9-2kalil x86_64 GNU/Linux: É uma distribuição GNU/Linux baseada no Debian, considerado o sucessor do Back Track. O Kali Linux dispõe de numerosos softwares pré-instalados. Software splmap 1.3.8#stable: é uma ferramenta open source para teste de penetração que automatiza o processo de detecção e exploração de vulnerabilidades a Injeção de SQL, este software bastante conhecido é utilizado geralmente por Crackers para invadir bancos de dados SQL. PROCEDIMENTOS E RESULTADOS: Todos os testes foram realizados no site de teste e demonstração do Acunetix Web Vulnerability Scanner : http://testphp.vulnweb.com/listproducts.php?cat=1. Utilizar a ferramenta SQLMAP, foi possível explorar vulnerabilidades de SQL Injection em aplicações web (ou websites). O SQL Injection é uma classe de vulnerabilidade que através de requisições get ou post acrescidos de parâmetros e possível obter informações do banco de dados da aplicação que está sendo invadida. Segue a apresentação dos parâmetros básicos: sqlmap -u "endereço_do_site" --threads=10 -o --batch --level=5 -- risk=3 --threads=10: é um parâmetro que utilizar 10 processos do sqlmap simultaneamente para aumentar a performance do teste. Em casos onde o ataque deve ser silencioso ou o alvo seja sensível e possa ser impactado, pode ser que este parâmetro não deva ser utilizado. Mas de uma forma geral recomendo a sua utilização para ganho de tempo. -o: é outro parâmetro do sqlmap que visa otimizar a conexão com o alvo. --batch: é um parâmetro que automatiza um "Sim" para as perguntas básicas do wizard de teste do sqlmap. --level=5: é um parâmetro que amplia os pontos de injeção que o sqlmap irá testar o ataque, ou seja, irá testar em parâmetros de cookies, headers, entre outros. FACULDADE DE TECNOLOGIA SENAC-DF http://testphp.vulnweb.com/listproducts.php?cat=1 https://pt.wikipedia.org/wiki/BackTrack https://pt.wikipedia.org/wiki/Debian --risk=3: é um parâmetro que utiliza queries mais extensas e complexas. A) Ataque no Banco de Dados --dbs : Através do parâmetro --dbs é possível obter quais os bancos de dados disponíveis neste alvo. No prompt do Kali foi executado o comando: sqlmap -u “http://testphp.vulnweb.com/listproducts.php?cat=1” --dbs Parâmetros: -u → Alvo URL --dbs →Enumerar Base de DadosDBMS Observando o output do teste 1 é possível observar: - O parâmetro cat é vulnerável a 4 tipos de técnicas: boolean-based blind, error-based, time-base blind e UNION query. - O banco de dados identificado é o MySQL >= 5.0. - O webserver é um Nginx 1.4.1 e utiliza PHP 5.3.10 - Não tinha um WAF protegendo o alvo. O WAF, ou Web Application Firewall, é um sistema que fica entre o seu site ou aplicativo e o restante da internet, funcionando como uma barreira que bloqueia e protege seu servidor contra ataques de Hackers, Spammers, DDoS, Injeções SQL e muito outros tipos de Cyber Ataques. - Encontramos dois bancos de dados: acuart e information_schema. B) Ataque direcionado: Com as informações do item “a”, realizamos um teste utilizando um tipo de ataque, o error- based, mais trivial e rápido. Com isso, foi possível usar ataques de injection para MySQL, focando apenas no parâmentro cat. FACULDADE DE TECNOLOGIA SENAC-DF http://testphp.vulnweb.com/listproducts.php?cat=1 1. Limpe o SQLMAP com o comando, para que seja retestado o alvo sem que o sqlmap leve em consideração testes anteriores. # sqlmap --purge 2. Veja o comando: sqlmap -u "http://testphp.vulnweb.com/listproducts.php?cat=1" -- threads=10 -o --batch -p cat --technique=e --dbms=MySQL --skip-waf -p cat → testa somente o parâmetro cat --technique=e → testa somente injections para a técnica error-based --dbms=MySQL → testa somente injections para MySQL --skip-waf → ignora o teste de WAF Observando o output do teste 2 é possível observar: - O sqlmap identificou o seguinte ponto de injeção (error-based), através de 318 solicitações HTTP. C) Obter as tabelas do Banco : O banco alvo é o acuart. Então usamos o parâmetro -D acuart para obter os dados deste banco específico e então, utilizamos o parâmetro --tables para obter as tabelas deste banco. Segue o comando utilizado: # sqlmap --purge FACULDADE DE TECNOLOGIA SENAC-DF # sqlmap -u "http://testphp.vulnweb.com/listproducts.php?cat=1" -- threads=10 -o --batch -p cat --technique=e --dbms=MySQL --skip-waf -D acuart --tables -D acuart → obter os dados do banco acuart --tables → obter as tabelas do banco Obtendo os dados do banco, foi possível obter ("roubando") todo o banco de dados, usando o comando abaixo: # sqlmap -u "http://testphp.vulnweb.com/listproducts.php?cat=1" -- threads=10 -o --batch -p cat --technique=e --dbms=MySQL --skip-waf -D acuart --tables --dump-all dump -all → obtemos todo o banco de dados que foi salvo no diretório: /root/.sqlmap/output/testphp.vulnweb.com/dump/acuart/ FACULDADE DE TECNOLOGIA SENAC-DF CONCLUSÕES : Em suma, esta atividade apresentou alguns comandos do sqlmap, possibilitando assim explorar vulnerabilidades de SQL Injection no alvo. Foi possível obter informações do banco de dados, realizar um ataque direcional e coletar informações da tabela do banco. FACULDADE DE TECNOLOGIA SENAC-DF
Compartilhar