Visual para tcpdump com dialog
Publicado por Jonatam Ribeiro dos Santos (última atualização em 30/07/2012)
[ Hits: 5.445 ]
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
PDC Samba + LDAP no Debian Lenny
Migração de Aplicações para Ambiente Web - Uma Abordagem Prática
Nenhum comentário foi encontrado.
Modo Simples de Baixar e Usar o bash-completion
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
Instalando partes faltantes do Plasma 6
Adicionar botão "mostrar área de trabalho" no Zorin OS
Como montar um servidor de backup no linux
Estou tentando ser legalista, mas tá complicado! (9)
espelhar monitores nao funciona (2)
SQLITE não quer funcionar no LINUX LMDE6 64 com Lazaruz 4.2 64bit (n... (1)









