Visual para tcpdump com dialog
Publicado por Jonatam Ribeiro dos Santos (última atualização em 30/07/2012)
[ Hits: 5.215 ]
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.
# !/bin/bash # by Jonatan / Baguio Loko # jonatam.ribeiro@hotmail.com # 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
Ajuste Dinâmico do Governador de CPU no Linux
Script para gravar 2 (ou 4) CDs simultaneamente
Tabela de cores em shellscript
Script de Instalação de Layer7 no CentOS 6.0
Nenhum comentário foi encontrado.
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Meu Fork do Plugin de Integração do CVS para o KDevelop
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Compartilhamento de Rede com samba em modo Público/Anônimo de forma simples, rápido e fácil
Cups: Mapear/listar todas as impressoras de outro Servidor CUPS de forma rápida e fácil
Criando uma VPC na AWS via CLI
Plasma 6 com partes em inglês (1)
Erro no upgrade: Sub-process /usr/bin/dpkg returned an error code (1) ... (3)
Falta pacotes de suporte ao sistema de arquivos (Gerenciador de discos... (6)