# Descrições conhecidas das portas TCP $tcpDescricao = @{ 53 = "DNS" 88 = "Kerberos" 135 = "RPC" 139 = "NetBIOS" 389 = "LDAP" 445 = "SMB" 464 = "Kerberos" 593 = "RPC-HTTP" 636 = "LDAPS" 3268 = "LDAP-GC" 3269 = "LDAPS-GC" 5985 = "WinRM" 5986 = "WinRM-HTTPS" 9389 = "ADWS" 10050 = "Zabbix" 13500 = "Personalizado" 47001 = "WinRM" 50051 = "Personalizado" } # Descrições conhecidas das portas UDP $udpDescricao = @{ 53 = "DNS" 67 = "DHCP-Servidor" 68 = "DHCP-Cliente" 88 = "Kerberos" 123 = "NTP" 137 = "NetBIOS-NS" 138 = "NetBIOS-Datagram" 389 = "LDAP" 464 = "Kerberos" 500 = "IPsec-IKE" 4500 = "IPsec-NAT-T" 5050 = "Personalizado" 5353 = "mDNS" 5355 = "LLMNR" 13500 = "Personalizado" } # Coleta as portas abertas sem duplicidade $tcp = Get-NetTCPConnection -State Listen | Select-Object -ExpandProperty LocalPort | Sort-Object -Unique $udp = Get-NetUDPEndpoint | Select-Object -ExpandProperty LocalPort | Sort-Object -Unique # Monta a relação TCP com descrição $tcpComDescricao = foreach ($porta in $tcp) { if ($tcpDescricao.ContainsKey([int]$porta)) { $descricao = $tcpDescricao[[int]$porta] } elseif ($porta -ge 49152 -and $porta -le 65535) { $descricao = "RPC-Dinâmico" } else { $descricao = "Personalizado" } "TCP $porta $descricao" } # Monta a relação UDP com descrição $udpComDescricao = foreach ($porta in $udp) { if ($udpDescricao.ContainsKey([int]$porta)) { $descricao = $udpDescricao[[int]$porta] } elseif ($porta -ge 49152 -and $porta -le 65535) { $descricao = "Dinâmica-RPC" } else { $descricao = "Personalizado" } "UDP $porta $descricao" } # Exibe os resultados Write-Host "`nRelação Portas:" -ForegroundColor Cyan Write-Output "TCP: $($tcp -join ',')" Write-Output "UDP: $($udp -join ',')" Write-Host "`nRelação com Descrição:" -ForegroundColor Cyan Write-Output ($tcpComDescricao -join ', ') Write-Output ($udpComDescricao -join ', ')