Usando netstat para verificar conexões e portas
Publicado por marcio mendes mendes (última atualização em 01/12/2015)
[ Hits: 7.734 ]
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();
Instalação da Multilib no Slackware
Altera /etc/fstab colocando o parâmetro acl nas partições ext3.
Raízes da equação de segundo grau (Bhaskara) através do prompt em shell
Passkeys: A Evolução da Autenticação Digital
Instalação de distro Linux em computadores, netbooks, etc, em rede com o Clonezilla
Título: Descobrindo o IP externo da VPN no Linux
Armazenando a senha de sua carteira Bitcoin de forma segura no Linux
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Como configurar posicionamento e movimento de janelas no Lubuntu (Openbox) com atalhos de teclado
Máquinas Virtuais com IP estático acessando Internet no Virtualbox
Instalar o Microsoft Edge no Slackware 15
Instalando Brave Browser no Linux Mint 22
vídeo pra quem quer saber como funciona Proteção de Memória:
Separar trafego da VPN da VPS (0)
Formatando cartão de memoria que nao formata[AJUDA] (17)
warsaw parou de funcionar após atualização do sistema (solução) (0)
Desde que seja DDR3, posso colocar qualquer memória? [RESOLVIDO] (6)