A Varredura

Nessa fase é realizada uma varredura do que está presente na rede. Por exemplo, o range de IPs que é utilizado, quais os servidores existentes, os sitemas operacionais utilizados, as portas abertas, entre outras especificações.

Existem diversas ferramentas para realizar esse processo de varredura, boa parte delas automatizadas. A mais conhecida se chama Nmap, que faz a varredura completa.

O NMAP - NETWORK MAPPER

Nmap é um software livre que realiza port scan desenvolvido pelo Gordon Lyon, autoproclamado hacker "Fyodor". É muito utilizado para avaliar a segurança dos computadores, e para descobrir serviços ou servidores em uma rede de computadores.

O comando mais básico lista todas as informações disponíveis:

$ nmap -F site.com.br -v

Exemplo de saída:

$ nmap -Pn -sV -A 207.180.233.189 -vv

As EXPLORAÇÕES E EXPLOITS

Após a etapa da varredura, encontraremos possíveis vulnerabilidades na aplicação, com isso podemos usar diversos ataques, como SQL Injection, que pode capturar informações do banco de dados; Wfuzz, que identifica as rotas presente no site, entre outros ataques.

É exatamente na fase de exploração em que executamos os exploits. Um exploit geralmente é uma sequência de comandos, dados ou uma parte de um software elaborados por hackers que conseguem tirar proveito de um defeito ou vulnerabilidade. No caso, as ferramentas citadas acima utilizam desses exploits de acordo com o versionamento do sistema.

O SQL INJECTION

Injeção de SQL (do inglês SQL Injection) é um tipo de ameaça de segurança que se aproveita de falhas em sistemas que interagem com bases de dados através de comandos SQL, onde o atacante consegue inserir uma instrução SQL personalizada e indevida dentro de uma consulta (SQL query) através da entradas de dados de uma aplicação, como formulários ou URL de uma aplicação.

Site para testes de SQL Injection vulnweb

Os testes de SQL Injection são realizados nas endpoints do site ou sistema, basicamente, endpoint é a URL do serviço. Dessa forma, iremos testar comandos no final da URL a fim de conseguir algumas informação vinda do banco de dados.

1 - Categorias

Ao acessar qualquer categoria, veremos uma lista de itens que podem ser manipulados via URL, assim, iremos tentar encontrar um erro utilizando o comando 1 order by 12. O testes são feitos da seguinte forma: 1 order by 2, 1 order by 3, assim em diante, até encontrar o erro, nesse caso encontramos no 12, logo a tabela tem 12 colunas.

2 - Buscando informações da tabela

Após encontrar o erro, podemos verificar quantas colunas tem na tabela presente no banco de dados, dessa forma, conseguimos identificar onde fica cada informação digitando o comando -1 union select 1,2,3,4,5,6,7,8,9,10,11 . Essa sequência de numeros é o número de tabelas - 1, como temos 12 tabelas, basta colocar de 1 até 11.

3 - Acessando informações

Com as informações da localização de cada coluna da tabela, podemos ver informações sigilosas da aplicação com o comando -1 union select 1, @@version, 3, 4, 5, 6, database(), 8, 9, 10, user() . Utiliza-se a mesma sequência de números, mas a informação desejada deve ser trocada por outro comando, como no caso do número 2, 7 e 11, os quais foram substituídos a fim de descobrir a versão do sistema, o nome do banco de dados e o nome do usuário.

O Wfuzz

O Wfuzz é uma ferramenta projetada para bruteforcing Web Applications, pode ser usada para encontrar recursos não vinculados (diretórios, servlets, scripts etc.), parâmetros bruteforce GET e POST para verificar diferentes tipos de injeções (SQL, XSS, LDAP, etc.), Parâmetros dos formulários (Usuário / Senha), Fuzzing, etc.

Em sua máquina kali existe um diretório onde fica um arquivo com as endpoints mais comuns a serem testadas. O diretório é usuario@usuario:~/SecLists/Discovery/Web-Content. Nessa seção iremos usar a máquina virtual DVWA

Digite no terminal o seguinte comando:

$ wfuzz -c -z file,common.txt --hc 404 http://127.0.0.1/DVWA-master/FUZZ