Ping Scan do Zero
Você sabe o que é um Ping Scan?
Bom, primeiro vamos entender o que é ping.
“O PING (Packet Internet Network Grouper), é um comando que serve para testar a conectividade entre equipamentos de uma rede. Ele basicamente envia dados para esses aparelhos utilizando o protocolo ICMP e fica aguardando as respostas. Se o equipamento responder, significa que está ativo.”
Enviamos 1 pacote (-c 1) para o host 172.30.0.30 e o host nos respondeu, desta forma sabemos que esta ativo

Agora enviamos 1pacote (-c 1) para o host 172.30.0.2 e o host não respondeu, desta forma sabemos que esta inativo

Sabendo disso imagine o seguinte cenário, você esta realizando um pentest e atinge uma rede interna, porem você precisa mapear os hosts desta rede e precisa faze-lo sem criar ruídos.
Hoje temos varias ferramentas que podem lhe auxiliar na realização deste processo (Nmap,Metasploit….), porém podem acabar gerando ruído além do necessário e você pode acabar sendo detectado e até perder o acesso já obtido.
Pensando nisso, podemos criar um script que ira varrer a rede realizando um ping em cada host para identificar se esta ativo ou inativo, com este resultado você pode priorizar os hosts e ataca-los individualmente.
Para criarmos o script iremos utilizar o bash(.sh) no linux, mas você pode aplicar o mesmo conceito para criar a ferramenta em qualquer linguagem que se sentir confortável.
1 – Preparando o comando ping e filtrando a saida
- Vamos enviar somente 1 pacote (-c 1) com o ping
Host Ativo

Host Inativo

- Podemos ver que quando o host esta ativo ele retorna a linha abaixo

- Então podemos filtrar a saída do comando utilizando como critério o “icmp_seq“, para isto vamos utilizar o comando grep (https://www.linuxforce.com.br/comandos-linux/comandos-linux-comando-grep/ – Saber mais sobre o GREP).

- Ótimo, já temos uma saída melhor, porem ainda podemos melhora-la para obtermos somente os hosts ativos, vamos utilizar o comando cut para filtrarmos somente o ip do host.(https://www.linuxforce.com.br/comandos-linux/comandos-linux-comando-cut/ – Saber mais sobre o CUT)

- Perfeito agora temos somente o host ativo e podemos avançar para a próxima etapa.
2 – Automatizando o ping
Vamos criar um for que ira percorrer os 254 hosts disponíveis em uma rede.

Agora vamos adicionar o comando que criamos.
veja que a variável $host representa cada posição percorrida com o for, desta maneira o script ira enviar o ping para todos os host a medida que o for for avançando

Agora precisamos tratar a saída para que seja impresso na tela somente os hosts ativos, para isso precisamos guardar a saída em uma variável.

Agora que temos a saída na variável $resp vamos trata-la para que seja exibido o ip dos hosts ativos.
O nosso if ira validar se tem algo dentro da variável e caso tenha o IP será exibido.

Salve o arquivo e de a permissão de execução (chmod +x ping_scan.sh).
Agora vamos executa-lo.


Perfeito, agora é somente aguardar o termino da execução do script para obtermos os hosts ativos.
Caso queira dar uma olhadinha em uma versão personalizada deste script acesse o link (https://github.com/izaelbm/scripts/blob/main/ping_scan.sh), sinta se a vontade para personaliza-lo de acordo com a sua necessidade.
E ai, Gostou?, deixe seu comentário e me siga nas redes sociais.
Nos vemos em breve, Até Mais……