Visual para tcpdump com dialog
Publicado por Jonatam Ribeiro dos Santos (última atualização em 30/07/2012)
[ Hits: 5.413 ]
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
Instalador .tar.bz2 com menu gráfico Zenity
Manutenção básica em partições Linux
FindBackdoor - Detectar possíveis backdoors em arquivos PHP (WordPress)
Nenhum comentário foi encontrado.
IA Turbina o Desktop Linux enquanto distros renovam forças
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Linux em 2025: Segurança prática para o usuário
Desktop Linux em alta: novos apps, distros e privacidade marcam o sábado
IA chega ao desktop e impulsiona produtividade no mundo Linux
Atualizando o Fedora 42 para 43
Como saber se o seu e-mail já teve a senha vazada?
Como descobrir se a sua senha já foi vazada na internet?
Preciso recuperar videos *.mp4 corrompidos (6)
É normal não gostar de KDE? (11)
Secure boot, artigo interessante, nada técnico. (2)









