Usando netstat para verificar conexões e portas
Publicado por marcio mendes mendes (última atualização em 01/12/2015)
[ Hits: 7.891 ]
Homepage: https://www.conectadohost.com
Olá, esse script foi desenvolvido para verificar quantas conexões há em seu servidor, mostrando o ip, total de conexões, porta e total de conexões por portas.
O saída do script é similar a:
[+] Número de Conexões por IP:
21 127.0.0.1
12 192.168.1.1
6 192.168.1.2
2 192.168.1.3
1 192.168.1.4
1 192.168.1.5
1 192.168.1.6
1 192.168.1.7
1 192.168.1.8
[+] Número de Conexões por porta:
22 80
15 110
4 3306
1 39806
1 39809
1 39813
1 39815
1 39828
1 39799
1 39803
1 59635
[+] TOTAL: 63
Para executar digite:
$ conexao.sh
Obs.: os IPs 192.168.1.1, 192.168.1.2 etc são apenas um exemplo. Quando executar o script ele vai mostra os IPs reais que estão conectados ao seu servidor.
#!/usr/bin/perl # attackers 2, with ipv6 support. # output connection information from netstat # use strict; sub run { my @netstat = `netstat -pant`; my $portcheck = $ARGV[0]; if ( $portcheck =~ /^[0-9]+$/ ) { my %ports; my %ips; foreach (@netstat) { my ($port, $ip); if ( /^tcp\s+\d\s+\d\s+[0-9\.|0-9A-Za-z\.:]+:${portcheck}\s+([0-9\.|0-9A-Za-z\.:]+):/ ) { chomp; $ip = $1; if ( $ip !~ /^::$/ ) { $ips{$ip}++; } } } my $count; print "[+] Highest connections on port $portcheck\n"; foreach my $number ( sort {$ips{$b} <=> $ips{$a}} keys %ips ) { if ( $count <= 10 ) { if ($number) { print "\t$ips{$number} $number\n"; $count++; } } } my $total; foreach my $key ( keys %ips ) { if ($key) { $total += $ips{$key}; } } print "\n[+] TOTAL: $total\n"; } else { my %ports; my %ips; foreach (@netstat) { my ($port, $ip); if ( /^tcp\s+\d\s+\d\s+[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}:([0-9]+)\s+([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}):[0-9]+\s+/ ) { chomp; $port = $1; $ip = $2; } elsif ( /^tcp\s+\d\s+\d\s+[0-9\.|0-9A-Za-z\.:]+:([0-9]+)\s+([0-9\.|0-9A-Za-z\.:]+):[0-9]+\s+/ ) { chomp; $port = $1; $ip = $2; } $ports{$port}++; $ips{$ip}++; } my $count; print "[+] Número de Conexões por IP:\n"; foreach my $number ( sort {$ips{$b} <=> $ips{$a}} keys %ips ) { if ( $count <= 10 ) { if ($number) { print "\t$ips{$number} $number\n"; $count++; } } } $count = 0; print "\n[+] Número de Conexões por porta:\n"; foreach my $number ( sort {$ports{$b} <=> $ports{$a}} keys %ports ) { if ( $count <= 10 ) { if ($number) { print "\t$ports{$number} $number\n"; $count++; } } } my $total; foreach my $key ( keys %ports ) { if ($key) { $total += $ports{$key}; } } print "\n[+] TOTAL: $total\n"; } } run();
Gravar DVDs no Linux pelo Cron
Monitoramento Serviços por IP e PORTA !
Script para Criar/Modificar Usuarios No Ldap + Samba
Barra de progresso em shell script com cores roxa e verde
Script em shell do artigo: Implementando a segurança em servicos de acesso remoto
Servidor de Backup com Ubuntu Server 24.04 LTS, RAID e Duplicati (Dell PowerEdge T420)
Visualizar câmeras IP ONVIF no Linux sem necessidade de instalar aplicativos
Atualizar Debian Online de uma Versão para outra
Instalar driver Nvidia no Debian 13
Redimensionando, espelhando, convertendo e rotacionando imagens com script
Debian 13 Trixie para Iniciantes
Convertendo pacotes DEB que usam ZSTD (Padrão Novo) para XZ (Padrão Antigo)
Problema com impressoras de rede (0)
Ajuda com o Debian 13 - Video hibrido geforce 940 mx Wayland OFF (1)