Visual para tcpdump com dialog

Publicado por Jonatam Ribeiro dos Santos (última atualização em 30/07/2012)

[ Hits: 4.789 ]

Download scaner.sh




Salve salve galera, bom vou estar postando o script ae para vocês que fiz para quem esta começando com GNU/Linux e mexendo com shell script, fiz um visualzinho para usar o tcpdump para captura e analise de dados, o script esta em dialog para poder ser executado também em servidores com conexão ssh que não possuem o X em breve posto ele na versão kdialog, bom abaixo segue o script.

  



Esconder código-fonte

# !/bin/bash
# by Jonatan / Baguio Loko
# [email protected]
# http://www.homedesenvolvimento.com
# visual para tcpdump
# V 1.0


# função ver as interfaces
ver()
{
hosts=$(tcpdump -D)

# JOGA AS INTERFACES UMA ABAIXO DA OUTRA E EXIBE NA TELA
echo $hosts | while read LINHA; do
set - $LINHA

dialog --title 'INTERFACES' --msgbox "INTERFACES ENCONTRADOS\n\n${1}\n${2}\n${3}${4} ${5} ${6} ${7}\n${8}${9}${10}${11}${12}\n${13}${14} ${15} ${16} ${17} ${18} ${19}\n${20}" 0 0
done
   
   }
   
   
## função de snifar a rede   
snifar()
{
   #FUNCÃO SNIFAR REDE ETH0
   snifar_eth0()
   {      
      
         pact=$( dialog --stdout --inputbox 'Digite a quantidade de pacotes a ser filtrada:' 0 0 "50000")
         string="tcpdump -i eth0"
         t1=-n
         t2=-nn
         t3=host
         t4=src
         t5=dst
         t6="and port"
         t7=not
         t8=-p
         pacotes="-c$pact"



      while : ; do

      respostaeth0=$(
      dialog --stdout               \
             --title 'Menu'  \
             --menu 'Escolha:' \
            0 0 0                   \
            1 'filtrar apenas por determinado host' \
            2 'Mais Opções' )

      [ $? -ne 0 ] && break 
      break


      #Inicia a estrutura de condição case
      case "$respostaeth0" in
 
 
      #FUNÇÕES
      1)   host=$( dialog --stdout --inputbox 'Digite o HOST:' 0 0 )   
         nome1=$( dialog --stdout --inputbox 'Digite o nome do arquivo a ser salvo:' 0 0 "nome.pcap")
         string="$string $pacotes $t3 $host -w $nome1"
         dialog --title 'INTERFACES' --msgbox "$string" 0 0
   
      $string
      ;;
      2) string="$string $pacotes"
      dialog --yesno 'Não exibir o nome da porta mas sim o numero' 0 0
      if [ $? = 0 ]; then
         string="$string $t2"
         dialog --title 'INTERFACES' --msgbox "$string" 0 0
      else
         echo 'ok'
      fi
      
      dialog --yesno 'Não colocar a placa em promiscue mode' 0 0
      if [ $? = 0 ]; then
         string="$string $t8"
         dialog --title 'INTERFACES' --msgbox "$string" 0 0
      else
         echo 'ok'
      fi
      
      dialog --yesno 'Não resolver nome DNS e mostrar apenas o IP' 0 0
      if [ $? = 0 ]; then
         string="$string $t1"
         dialog --title 'INTERFACES' --msgbox "$string" 0 0
      else
         echo 'ok'
      fi

      dialog --yesno 'Deseja filtra por pacotes recebidos pelo host' 0 0
      if [ $? = 0 ]; then
         hostr=$( dialog --stdout --inputbox 'Digite o HOST:' 0 0 )
         string="$string $t5 $t3 $hostr"
         dialog --title 'INTERFACES' --msgbox "$string" 0 0
      else
         echo 'ok'
      fi

      dialog --yesno 'Deseja filtra por pacotes enviados pelo host' 0 0
      if [ $? = 0 ]; then
         hoste=$( dialog --stdout --inputbox 'Digite o HOST:' 0 0 )
         string="$string and $t4 $t3 $hoste"
         dialog --title 'INTERFACES' --msgbox "$string" 0 0
      else
         echo 'ok'
      fi
   


      dialog --yesno 'não filtra nada relacionado ao host' 0 0
      if [ $? = 0 ]; then
         hostn=$( dialog --stdout --inputbox 'Digite o HOST:' 0 0 )
         string="$string and $t7 $t3 $hostn"
         dialog --title 'INTERFACES' --msgbox "$string" 0 0
      else
         echo 'ok'
      fi

      dialog --yesno 'Deseja filtra por determinada porta' 0 0
      if [ $? = 0 ]; then
         porta1=$( dialog --stdout --inputbox 'Digite a Porta:' 0 0 )
         string="$string $t6 $porta1"
         dialog --title 'INTERFACES' --msgbox "$string" 0 0
      else
         echo 'ok'
      fi
         nome1=$( dialog --stdout --inputbox 'Digite o nome do arquivo a ser salvo:' 0 0 "nome.pcap")
         string="$string -w $nome1"
      $string
      ;;
      esac
      done
      }
   
   
   
   
   
# INICIO DO MENU DE REDES  
while : ; do
 
    # Mostra o menu na tela, com as ações disponíveis
    resposta2=$(
      dialog --stdout               \
             --title 'Menu'  \
             --menu 'Escolha:' \
            0 0 0                   \
            1 'eth0' \
            0 'Voltar')
           
# Ela apertou CANCELAR ou ESC, então vamos sair e limpar a Tela
[ $? -ne 0 ] && break


#Inicia a estrutura de condição case
case "$resposta2" in
 
 
#FUNÇÕES DE REDES
 1)snifar_eth0
 ;;
 0)break
 clear
 ;;
esac
done


}

ajuda()
{
   dialog --title "================================= Desenvovlvedor =================================" \
        --msgbox "\n http://www.homedesenvolvimento.com\n jonatam[dot]ribeiro[at]hotmail[dot]com\n 2012" 0 0
   }
   
   
analize()
{
   #pega o nome do arquivo a ser analizado
   nome1=$( dialog --stdout --inputbox 'Digite o nome do arquivo a ser analizado:' 0 0 "nome.pcap")
   #verifica se o usuario deseja ver o cabeçalho e conteudo do pacote
   dialog --yesno 'deseja ver o cabeçalho e conteudo do pacote' 0 0
      if [ $? = 0 ]; then
         tcpdump -r $nome1 -xx >>log.txt
      else
         tcpdump -r $nome1 >>log.txt
      fi
# mostra o conteudo do arquivo log.txt
dialog                                         \
   --title 'Monitorando Mensagens do Sistema'  \
   --textbox log.txt                               \
   0 0
   rm log.txt # remove o arquivo log.txt
}
   
   
################################################################################################ 
# INICIO DO MENU PRINCIPAL 
while : ; do
 
    # Mostra o menu na tela, com as ações disponíveis
    resposta=$(
      dialog --stdout               \
             --title 'Menu'  \
             --menu 'Escolha:' \
            0 0 0                   \
            1 'Ver Interfaces' \
            2 'Snifar'  \
            3 'Ajuda'   \
            4 'Analizar dados'   \
            0 'sair')
           
# Ela apertou CANCELAR ou ESC, então vamos sair e limpar a Tela
[ $? -ne 0 ] && break
clear
 
#Inicia a estrutura de condição case
case "$resposta" in
 
 
#FUNÇÕES DO MENU PRINCIPAL
 1)ver
 
 ;;
 2) snifar
 ;;
 
 3) ajuda
 ;;
 
 4) analize
 ;;
 
 0)break
 clear
 ;;
esac
done

Scripts recomendados

Rotação de Arquivos de Log

Configurando IPTABLES de forma simples

Script para encontrar arquivos .wam, .mpeg

Script para criar emails

Script p/ instalar modem onboards


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts