Usando netstat para verificar conexões e portas
Publicado por marcio mendes mendes (última atualização em 01/12/2015)
[ Hits: 8.049 ]
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();
Script p/ instalar modem onboards
Executando comandos remotos via Dropbox
Trocar string A por string B em vários arquivos
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?
[Resolvido] Algo deu errado ao abrir seu perfil
Usando o VNSTAT para medir o seu consumo de internet
Habilitando clipboard manager no ambiente COSMIC
Quando vocês pararam de testar distros? (12)
Problema com som no laptop (3)
Não estou conseguindo fazer funcionar meu Postfix na versão 2.4 no Deb... (2)









