Usando o Bash

Um pequeno teste bem conhecido registrado nos cursos do PWK, usando Kali e algumas funções do Bash e outros softwares open source.

Como penetration testers, estamos sempre buscando aprimoramentos para minimizar o tempo que é gasto analizando dados, especialmente o volume obtido por vários tipos de varreduras.

Vamos supor que você foi designado a fazer uma varredura em uma subnet para identificar os servidores web e determinar qual destes apresenta uma interface passível de ataque, interessante ou não. Usaremos a varredura de portas (Port Scanning) para inspecionar as portas TCP ou UDP numa máquina remota com a intenção de detectar quais serviços estão rodando no alvo e potencialmente quais vetores de ataques existem.

No teste colocamos o link deste website, que direciona para o DNS do servidor, não recomendamos que ninguém faça o mesmo, pois é bem provável que os servidores tenham um monitoramento e possa detectar quando e quem direcionou a varredura de portas.

Para começar criamos uma pasta temporária, no caso da minha máquina ela já existe.

Agora que temos uma pasta temporária e entramos na pasta usando o comando cd, vamos para a parte de varredura para o endereço do repositório do Github, vamos focar na porta 80 e usaremos o nmap como ferramenta de varredura de portas.

Esse é um tipo bem direto de scan, com a flag -A para scan agressivo, -p para especificar a porta, --open para retornar apenas portas abertas, -oG para salvar o scan em um resultado capaz de ser filtrado com o comando grep do linux.

Vamos usar o cat para ver o resultado.

O resultado nos mostra o IP duplicado, vamos usar o grep para escolher as linhas que contém apenas a porta 80.

Conseguimos tirar a duplicação, agora essa primeira linha é irrelevante para nós, usaremos o grep novamente com a flag -v que significa "grep-reverso" mostrando apenas as linhas que não contém a string "Nmap".

A saída já está bem melhor, vamos extrair agora somente o IP necessário, usando awk para imprimir somente o segundo campo, usando o espaço como delimitador.

Ótimo, temos o IP, agora usaremos do cutycapt que é um Qt Webkit web page redenrizador de captura de tela. Usaremos -url para especificar o alvo, e -out para especificar o nome do arquivo de saída.

Quando o loop terminar e tivermos os arquivos, poderemos examinar a lista de saída criada pelo Bash, usando -1 com o ls, que lista um arquivo por linha, suprimindo detalhes adicionais.

Show de bola! Estamos finalizando aqui, poderiamos analisar os arquivos individualmente, mas a melhor escolha é novamente colocar o conhecimento em scripting em prática. Utilizando conhecimentos básicos de scripting e HTML podemos fazer algo bem útil.

Esse script constrói um arquivo em HTML (web.html), começando com as tags básicas, e então o ls e awk insere cada imagem no formato .PNG em um HTML IMG tag e acrescenta no nosso arquivo web.html.

Finalmente, acrescentamos as tags finais do arquivo HTML, fazemos o script executável e vemos no nosso browser o resultado, que é simples e bastante efetivo, nos demonstrando a visualização da página principal de cada servidor.