Visual para tcpdump com dialog
Publicado por Jonatam Ribeiro dos Santos (última atualização em 30/07/2012)
[ Hits: 5.488 ]
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
Script para fazer levantamento de hardware e software no Gentoo
Backup copiando para ftp durante 7 dias
Script contra ataques de Brutal Force por SSH.
Nenhum comentário foi encontrado.
LazyDocker – Interface de Usuário em Tempo Real para o Docker
Instalando COSMIC no Linux Mint
Turbinando o Linux Mint: o poder das Nemo Actions
Inteligência Artificial no desenvolvimento de software: quando começar a usar?
[Resolvido] Algo deu errado ao abrir seu perfil
Usando o VNSTAT para medir o seu consumo de internet
Habilitando clipboard manager no ambiente COSMIC
Quando vocês pararam de testar distros? (12)
Problema com som no laptop (3)
Não estou conseguindo fazer funcionar meu Postfix na versão 2.4 no Deb... (2)









