Script Powershell pour lister les ports TCP ouverts vers l’extérieur

Ayant un firewall assez restrictif sur mon lieu de travail je cherchais à savoir quels ports sont ouverts vers l’extérieur depuis mon poste.
Pour cela j’ai utilisé le script suivant qui va tester une connexion vers le domaine portquiz.net sur chaque port et me faire un fichier CSV avec la liste des ports ouverts.

De base il va scanner tous les ports de 1 à 65536 mais vous pouvez modifier la plage en modifiant le port de départ en ligne 19 et le port de fin en ligne 24

L’analyse prend un certain temps mais une fois faite la config du firewall de votre entreprise ne devrait pas changer souvent.


$fichierCsv = "c:\data\liste_ports.csv"

function testport{
Param (
[Parameter(Mandatory=$true)] $port,
[Parameter(Mandatory=$false)] $timeOut
)
$hostname='portquiz.net'
$requestCallback = $state = $null
$client = New-Object System.Net.Sockets.TcpClient
$beginConnect = $client.BeginConnect($hostname,$port,$requestCallback,$state)
Start-Sleep -milli $timeOut
if ($client.Connected) { $open = "Ouvert" } else { $open = "Ferme" }
$ligneaajouter = "$port;$open"
ADD-content -path $fichierCsv -value $ligneaajouter -Encoding UTF8
$client.Close()
[pscustomobject]@{hostname=$hostname;port=$port;open=$open}
}

$port=1

do{
testport -timeOut 50 -port $port
$port++
}Until($port -eq 65536)

write-host "analyse terminée"

Merci à Marc Maurice pour son service portquiz.net utilisé dans ce script.

A propos de Christophe 38 Articles
Passionné d'informatique et de nouvelles technologies depuis mon plus jeune âge je souhaite partager ici quelques recherches que j'ai effectués.

1 Comment

Poster un Commentaire