Visual para tcpdump com dialog
Publicado por Jonatam Ribeiro dos Santos (última atualização em 30/07/2012)
[ Hits: 5.285 ]
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
Geração de gráfico em shell script
Fluxbox - Slideshow de wallpapers aleatórios
Instalando Nagios 4.0.8 - Debian 7
Nenhum comentário foi encontrado.
Pra quem contribui com artigos e dicas (2)
Arch Linux - Guia para Iniciantes (5)
tux-gpt - Assistente de IA para o Terminal
Instalação e configuração do Chrony
Programa IRPF - Guia de Instalação e Resolução de alguns Problemas
O Que Fazer Após Instalar Ubuntu 25.04
O Que Fazer Após Instalar Fedora 42
Debian 12 -- Errata - Correções de segurança
Instalando o Pi-Hole versão v5.18.4 depois do lançamento da versão v6.0
Alguém poderia me ajudar a escolher peças pra montar um desktop? (20)
Pra quem contribui com artigos e dicas (2)
Copiar Layout do Teclado para aplicar em outra Distribuição (2)