Usando netstat para verificar conexões e portas
Publicado por marcio mendes mendes (última atualização em 01/12/2015)
[ Hits: 8.061 ]
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 - FILTRO PARA CMAMAR O CLAMAV DIRETAMENTE DO POSTFIX
Backup com TAR em LOG usando FITA LTO/DLT com filtro de arquivos
KDE Plasma - porque pode ser a melhor opção de interface gráfica
Gentoo: detectando impressoras de rede e como fixar uma impressora por IP
Como o GNOME conseguiu o feito de ser preterido por outras interfaces gráficas
Por que sua empresa precisa de uma PKI (e como automatizar EMISSÕES de certificados via Web API)
Instalando NoMachine no Gentoo com Systemd (acesso Remoto em LAN)
Instalar Linux em notebook Sony Vaio VPCEG13EB (13)
Vou destruir sua infância:) (7)
Interface gráfica com problema (0)









