Análise de conexões ativas
Publicado por Djair Dutra C. Jr. 13/12/2006
[ Hits: 9.138 ]
Este script traz as conexões abertas por um IP e informa as portas e IPs usados ao longo das conexões.
Ao criar não achei utilidade, mas depois vi que pode ajudar em certas tarefas. Usei uma vez para detectar um vírus no PC de um cliente que estava abrindo silenciosamente 128 conexões e fazendo uploads de arquivos, deixando a internet lenta.
Espero que possa ajudar a mais alguém também.
#!/bin/sh ###################################################### ##### Script para verificação de tráfego na rede ##### ##### Desenvolvido por: Djair Dutra C. Jr. ##### ##### djairdutra@hotmail.com ##### ##### 27/11/2006 ##### ###################################################### rm -rf destinos ajuda(){ clear echo -e '{FONTE}33[40;33;7;1m'"========================== A J U D A =========================="`echo -e '{FONTE}33[40;33;0;1m'` echo "Após a execução do script informe o ip e os parâmetros desejados:" echo "Exemplo:" echo "./analisador ip [ -ips | -portas ]" echo echo "Parâmetros:" echo echo "-ips Mostra todos os ips de destino usados nas conexões." echo "-portas Mostra todas as portas de destino usadas nas conexões." echo "-todos Mostra todos os ips e portas usados nas conexões." echo } start(){ # total_bytes_upload tbu=0 # total_pacotes_upload tpu=0 # total_bytes_down tbd=0 # total_pacotes_download tpd=0 qtd=`cat /proc/net/ip_conntrack | grep -w $ip | grep ESTABLISHED | grep -c -v ^#` ativas=`cat /proc/net/ip_conntrack | grep -w $ip | grep -v ^# | grep tcp | grep ESTABLISHED | tr -s ' ' ',' | cut -d , -f 5,6,7,8,9,10,11,12,13,14,15,16` # Limpando a variável ativas=`echo $ativas | sed "s/src=//g" | sed "s/dst=//g" | sed "s/dport=//g" | sed "s/sport=//g"| sed "s/packets=//g" | sed "s/bytes=//g"` clear for i in `echo $ativas`;do # Definindo os valores atuais (UPLOAD) u_ip_origem=`echo $i | cut -d , -f 1` u_ip_destino=`echo $i | cut -d , -f 2` u_porta_origem=`echo $i | cut -d , -f 3` u_porta_destino=`echo $i | cut -d , -f 4` u_pacotes=`echo $i | cut -d , -f 5` u_bytes=`echo $i | cut -d , -f 6` tpu=`expr $tpu + $u_pacotes` tbu=`expr $tbu + $u_bytes` # Definindo os valores atuais (DOWNLOAD) d_ip_origem=`echo $i | cut -d , -f 7` d_ip_destino=`echo $i | cut -d , -f 8` d_porta_origem=`echo $i | cut -d , -f 9` d_porta_destino=`echo $i | cut -d , -f 10` d_pacotes=`echo $i | cut -d , -f 11` d_bytes=`echo $i | cut -d , -f 12` tpd=`expr $tpd + $d_pacotes` tbd=`expr $tbd + $d_bytes` echo "$u_ip_destino,$u_porta_destino,$u_bytes,$d_bytes" >> destinos # Cálculos para KB KB_d_bytes=`expr $d_bytes "/" 1024` KB_u_bytes=`expr $u_bytes "/" 1024` # Cálculos para MB MB_d_bytes=`expr $d_bytes "/" 1048576` MB_u_bytes=`expr $u_bytes "/" 1048576` echo "_________________________________________________________________" echo "ORIGEM: $u_ip_origem:$u_porta_origem ==> DESTINO $u_ip_destino:$u_porta_destino" echo "Upload : `echo -e '{FONTE}33[40;33;1;1m'` ($u_bytes Bytes) ($KB_u_bytes Kbytes) ($MB_u_bytes Mbytes) `echo -e '{FONTE}33[40;33;0;1m'`" echo "Download: `echo -e '{FONTE}33[40;33;1;1m'` ($d_bytes Bytes) ($KB_d_bytes Kbytes) ($MB_d_bytes Mbytes)`echo -e '{FONTE}33[40;33;0;1m'`" done resumo } resumo(){ echo -e '{FONTE}33[40;33;7;1m'"========================== R E S U M O =========================="`echo -e '{FONTE}33[40;33;0;1m'` # Cálculos para KB KB_tbu=`expr $tbu "/" 1024` KB_tbd=`expr $tbd "/" 1024` # Cálculos para MB MB_tbu=`expr $tbu "/" 1048576` MB_tbd=`expr $tbd "/" 1048576` qtdportas=`cat destinos | cut -d , -f 2 | sort | uniq | grep -c -v ^' '` qtddestinos=`cat destinos | cut -d , -f 1 | sort | uniq | grep -c -v ^' '` portas=`cat destinos | cut -d , -f 2 | sort | uniq | tr "\n" ' '` destinos=`cat destinos | cut -d , -f 1 | sort | uniq | tr "\n" ' '` if [ "$qtd" -gt "1" ]; then echo "Existem $qtd conexões ativas do ip $ip." echo "Upload Acumulado : ($tbu Bytes) ($KB_tbu Kbytes) ($MB_tbu Mbytes) - $tpu pacotes" echo "Download Acumulado: ($tbd Bytes) ($KB_tbd Kbytes) ($MB_tbd Mbytes) - $tpd pacotes" elif [ "$qtd" == "1" ]; then echo "Existe $qtd conexão ativa do ip $ip." echo "Upload Acumulado : ($tbu Bytes) ($KB_tpu Kbytes) ($MB_tpu Mbytes) - $tpu pacotes" echo "Download Acumulado: ($tbd Bytes) ($KB_tbd Kbytes) ($MB_tpd Mbytes) - $tpd pacotes" elif [ "$qtd" == "0" ]; then echo "Não há nenhuma conexão ativa para o ip $ip." fi } ips(){ echo echo "$qtddestinos IPs de destino usados: $destinos" } portas(){ echo echo "$qtdportas portas de destino usadas: $portas" } ############################################################################### # Quantidade de parâmetros passados parametros="$#" # Recebendo o ip a ser verificvado ip="$1" if [ "$1" == "" ]; then ajuda else if [ "$2" == "" ]; then start elif [ "$2" == "-ips" ]; then start ips rm -rf destinos elif [ "$2" == "-portas" ]; then start portas rm -rf destinos elif [ "$2" == "-todos" ]; then start portas ips rm -rf destinos fi fi
Fazendo backup de vários arquivos no LINUX
Criando contas de usuario em varios servidores ao mesmo tempo
Localizador não interativo do Mozilla Thunderbird para Slackware
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Como renomear arquivos de letras maiúsculas para minúsculas
Imprimindo no formato livreto no Linux
Vim - incrementando números em substituição
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
Não to conseguindo resolver este problemas ao instalar o playonelinux (1)
Excluir banco de dados no xampp (1)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta