Pequeno gerador de relatório da rede (CSV)
Publicado por Dix (última atualização em 28/11/2016)
[ Hits: 9.232 ]
Download 1477147864.Relatorio_Rede.sh (versão 2)
Estava precisando de um script para gerar uma tabela de IPs e MAC de todos os dispositivos da minha rede para aplicar no DHCP e na tabela ARP estática do firewall, mas não tive a paciência (saco) de verificar um a um, então, criei esse script, liguei tudo na rede e executei ele... PRONTO!
Aí, acrescentei o scan de portas (SYN) do Nmap também, apenas para verificar quais portas estavam abertas...
Tabela criada!!! (IP;MAC;FABRICANTE;HOSTNAME;PORTAS)
Dá para adaptar de acordo com o scan que deseja fazer. Ou retirar o scan e deixar apenas a descoberta de hosts ativos.
Montei muito rápido e ficou meio bagunçado, mas funciona...
Depois vou organizar melhor!
Versão 2 - Enviado por Dix em 22/10/2016
Changelog: Funções atualizadas e organizadas.
Linhas desnecessárias eliminadas.
Função para encontrar uma saída para a rede mundial com arping inserida.
Download 1477147864.Relatorio_Rede.sh
#!/bin/bash # # Pequeno Gerador de Relatório da Rede (CSV) # # by huddioli # 2014-08-03 # # testado com nmap 6.46 (Linux Debian 7) # # Estava precisando de um script para gerar uma tabela de IPs e MAC de todos os dispositivos da minha rede para aplicar no DHCP e na tabela ARP estática do Firewall # Não tive a paciencia(saco) de verificar um a um, entao, criei esse Script, liguei tudo na rede e executei o script... PRONTO! # Aí, acrescentei o Scan de portas(SYN) do Nmap também apenas para verificar quais portas estavam abertas... # # Tabela Criada!!! (IP;MAC;FABRICANTE;HOSTNAME;PORTAS) # # Da para adaptar de acordo com o Scan que deseja fazer # Ou retirar o scan e deixar apenas a descoberta de Hosts ativos # # Montei muito rápido e ficou meio baguncado, mas funciona... # Depois vou organizar melhor! # # REDE="11.0.0.0/21" NOME_BASE="rede_AP" IFACES="$NOME_BASE""_Interfaces_ativas.txt" MEUS_IPS="$NOME_BASE""_Meus_IPs.txt" function EncontrarPlacas(){ ifconfig | grep eth | cut -d" " -f1 > $IFACES ifconfig | grep wlan | cut -d" " -f1 >> $IFACES } function EncontrarIPs(){ if [ -e $MEUS_IPS ]; then rm $MEUS_IPS fi cat $IFACES | while read PLACA; do ifconfig $PLACA | grep "inet addr" | cut -c 21- | cut -d" " -f1 >> $MEUS_IPS done } function ScanearRede(){ echo "Scaneando os Hosts ativos da rede "$REDE echo "Identificando Hosts ativos na Rede..." nmap -sP "$REDE" > "$NOME_BASE"_PING.txt } function FiltrarDados(){ #Monta o cabeçalho do Relatorio CSV echo "IP;MAC;FABRICANTE;HOSTNAME;PORTAS" > "$NOME_BASE"_COMPILADO.csv echo "Coletando e filtrando informações dos Hosts..." #Elimina os IP das placas de rede do Computador do Scan para economizar tempo devido às regras do firewall cat $MEUS_IPS | while read linha do cat "$NOME_BASE"_PING.txt | grep report | cut -d" " -f5 | grep -v $linha >> "$NOME_BASE"_IP2.txt done #Ordena em ordem numérica crescente e elimina as entradas duplicadas sort -n "$NOME_BASE"_IP2.txt | uniq > "$NOME_BASE"_IP.txt #Cria a base de MACs e de FABRICANTES cat "$NOME_BASE"_PING.txt | grep MAC | cut -d" " -f3 > "$NOME_BASE"_MAC.txt cat "$NOME_BASE"_PING.txt | grep MAC | tr ")" "(" | cut -d"(" -f2 > "$NOME_BASE"_FABRICANTE.txt #Gera o contador para servir de referencia para juntar as informações que estão divididas nos arquivos NUM=`wc -l "$NOME_BASE"_IP.txt | cut -d" " -f1` #Inicia o Loop para Realizar os Scans e montar o Relatorio for (( x=1; x<=$NUM; x++ )) do if [ -e "$NOME_BASE"_PORT.txt ]; then rm "$NOME_BASE"_PORT.txt fi if [ -e "$NOME_BASE"_PORTS.txt ]; then rm "$NOME_BASE"_PORTS.txt fi #Montando as Variaveis do Relatorio CSV IP=`cat "$NOME_BASE"_IP.txt | sed -n "$x p"` MAC=`cat "$NOME_BASE"_MAC.txt | sed -n "$x p"` FABRICANTE=`cat "$NOME_BASE"_FABRICANTE.txt | sed -n "$x p"` NOMEDOHOST=`nmblookup -A $IP | grep 00 | sed -n "1p" | sed "{ s/\t//g; s/\ //g }" | cut -d"<" -f1` > "$NOME_BASE"_HOSTNAME.txt #Scan de portas de cada IP echo "Scan de portas no IP: "$IP nmap -sS $IP | grep open | cut -d" " -f1 > "$NOME_BASE"_PORTS.txt #Separa as portas do resultado do Scan e os coloca na mesma linha separadas por vírgula cat "$NOME_BASE"_PORTS.txt | while read LINHA; do PORTA=`echo $LINHA | grep tcp | cut -d"/" -f1` echo -n "$PORTA""," >> "$NOME_BASE"_PORT.txt done #O Sed elimina a última vírgula da string de portas gerada e o restante da string tratada é redirecionada para a variável PORTAS PORTAS=`cat "$NOME_BASE"_PORT.txt 2> /dev/null | sed "{ s/,*$// }"` echo "$IP"";""$MAC"";""$FABRICANTE"";""$NOMEDOHOST"";""$PORTAS" >> "$NOME_BASE"_COMPILADO.csv echo "Relatorio sobre Host "$IP" adicionado a base de dados!" done mv "$NOME_BASE"_COMPILADO.csv Relatorio_"$NOME_BASE".csv } function LimparCache(){ # Essa linha evita que a funcao de erro sem comando nenhum echo "" /dev/null # Caso queira apagar os arquivos temporario descomente a proxima linha e a linha "#LimparCache" da function Main() #rm "$NOME_BASE"* } function Main(){ echo "String base:" $NOME_BASE EncontrarPlacas EncontrarIPs ScanearRede FiltrarDados #LimparCache } Main
Papel de parede - Mudança automática no Ubuntu/Debian
Passkeys: A Evolução da Autenticação Digital
Instalação de distro Linux em computadores, netbooks, etc, em rede com o Clonezilla
Título: Descobrindo o IP externo da VPN no Linux
Armazenando a senha de sua carteira Bitcoin de forma segura no Linux
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Instalando Brave Browser no Linux Mint 22
vídeo pra quem quer saber como funciona Proteção de Memória:
Encontre seus arquivos facilmente com o Drill
Mouse Logitech MX Ergo Advanced Wireless Trackball no Linux
Compartilhamento de Rede com samba em modo Público/Anônimo de forma simples, rápido e fácil
Impedir outros proxy da mesma rede (2)
Erro de permissão no samba (0)
O que esta havendo com o mercado de ti? (4)
Não consigo cadastrar nenhuma conta online (2)
Ubuntu 22.04 / Bluethooth - Falha na conexão BlueZ | Não conecta caixa... (8)