Análise de conexões ativas
Publicado por Djair Dutra C. Jr. 13/12/2006
[ Hits: 9.265 ]
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
Script de cópia (destino - origem) otimizado
PC Report - Coleta lista de dispositivos instalados e logs
Dump de várias tabelas do MYSQL em vários arquivos
Script para enviar put para uma API usando curl e dados no formato json
Como gerar um podcast a partir de um livro em PDF
Automatizando digitação de códigos 2FA no browser
Resolver problemas de Internet
Como compartilhar a tela do Ubuntu com uma Smart TV (LG, Samsung, etc.)
Conheça a 4Devs, caixa de ferramentas online para desenvolvedores
Como converter um vídeo MP4 para um GIF para publicar no README.md do seu repositório Github
Como Instalar o Microsoft Teams no Linux Ubuntu