Usando netstat para verificar conexões e portas
Publicado por marcio mendes mendes (última atualização em 01/12/2015)
[ Hits: 8.050 ]
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();
POSTFIX AUTOMÁTICO COM MYSQL E IPTABLES - DESBLOQUEAR IP
Ver último twitter pelo terminal ou na barra de notificação
Claro 3g Sony Ericsson md300 script conexao - Revisado
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?
O widget do Plasma 6 Área de Notificação
[Resolvido] Algo deu errado ao abrir seu perfil
Quando vocês pararam de testar distros? (14)
Problema com som no laptop (3)
Não estou conseguindo fazer funcionar meu Postfix na versão 2.4 no Deb... (2)









