Usando netstat para verificar conexões e portas
Publicado por marcio mendes mendes (última atualização em 01/12/2015)
[ Hits: 8.105 ]
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 - CRIANDO USUÁRIOS A PARTIR DE ARQUIVO
Backup do banco de dados Postgresql
instalando o unbound dns no debian via script
Converter Imagens e Documentos para PDF
Porque Gentoo semi-binário atualmente (desabafo)
A combinação de WMs com compositores feitos por fora
Audacious, VLC e QMMP - que saudades do XMMS
SUNO OpenSource: Crie um servidor de gerador de música com IA
Instalando SVP4 e MPV (VapourSynth) no Gentoo
Migração do KDE Plasma para Cinnamon no Gentoo (com systemd) + Tema Colloid
Como desativar a economia de energia no Gentoo (Systemd, Wi-Fi, USB e SSH)
Linux mint cinnamon travando. (2)
Vulkan Gaming no Slackware [RESOLVIDO] (14)









