Test-Port komutu ile, Test-NetConnection komutunu kullanarak birden fazla port numarası belirterek ilgili portun açık/kapalı olduğunu kontrol etmemize yarayacaktır. Bu işlem için bir çok uygulama vardır. En çok kullanılan “nmap” uygulamasının yerine geçmez ancak pratik olarak hızlı yanıt vermesi sonucu bir çok alanda kullanılabilir.
TCP-Handshake’e hızlı bakış
Bir bilgisayar SYN’i başka bir bilgisayara gönderdiğinde, uzaktaki bilgisayar genellikle SYN + ACK veya RST ile cevap verecektir. Bu gerçekle, bir portun açık olup olmadığını test edebiliriz.
Test-NetConnection
Bir bağlantı noktasının açık olup olmadığını test etmek için farklı bağlantı noktası tarayıcıları kullanılabilir.
Görüldüğü üzere onurbabur.com’un 443 numaralı portu açık olarak gözükmektedir (SYN + ACK)
Test-Port
Açıklandığı gibi, birden fazla bağlantı noktasını test edebilmenizi sağlayan mütevazı küçük komut dosyası. Bu yalnızca PowerShell 4.0 ve üstü ile çalışır.
Aşağıdaki kodu PowerShell veya PowerShell ISE’ye kopyalayın. Çalıştır onu. Test-Port komutu kullanılabilir hale gelir.
function
Test-Port
{
$computer
=
Read-Host
"Computername | IP Address?"
$port
=
Read-Host
"Port Numbers? Separate them by comma"
$port
.split(
','
) |
Foreach-Object
-Process
{
If
((
$a
=
Test-NetConnection
$computer
-Port
$_
-WarningAction
SilentlyContinue).tcpTestSucceeded
-eq
$true
) {
Write-Host
$a
.Computername
$a
.RemotePort
-ForegroundColor
Green
-Separator
" ==> "
}
else
{
Write-Host
$a
.Computername
$a
.RemotePort
-Separator
" ==> "
-ForegroundColor
Red}}
}
Size bir hedef ve bir liman vermeniz istenecektir. Aşağıdaki ekran görüntüsüne benzeyecektir. Açık Bağlantı Noktaları yeşil, kapalı Bağlantı Noktaları kırmızı olarak işaretlenmiştir.
Bu modülü tüm kullanıcılar için kullanabilmek için bir önceki makalemizi okuyabilirsiniz.
PowerShell Modül komutu oluşturma
Başka bir makalemizde görüşmek üzere,