Visual para tcpdump com dialog
Publicado por Jonatam Ribeiro dos Santos (última atualização em 30/07/2012)
[ Hits: 5.466 ]
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
Limpa comentários e linhas em branco nos arquivos de configuração (.conf)
Remover kernels antigos com zenity
Monitorando espaço em disco com IP dinâmico.
Nenhum comentário foi encontrado.
Cirurgia para acelerar o openSUSE em HD externo via USB
Void Server como Domain Control
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
Opções secretas em tema do Cinnamon
Como mapear unidade de rede no Linux
Como quebrar senha usando john the ripper
Por que passar nas disciplinas da faculdade é ruim e ser reprovado é b... (1)
Alguém pode me indicar um designer freelancer? [RESOLVIDO] (1)









