Shell Script İle Port Scanner Yapımı

Merhabalar, Gelişme ve geliştirme amacıyla Shell Script Üzerinden basit bir port scanner yapacağız.

.SH Dosyamızı Oluşturalım.

$  touch port_scanner.sh
Bash

Oluşturduğumuz .SH dosyasını Düzenleyelim.

$ nano port_scanner.sh
Bash

ShellScript Kodunu Yazalım

read -p "Hedef IP adresini girin: " ip_address
ShellScript

Kullanıcıdan hedef IP adresini girmesini isteyen bir girdi okuma komutudur. Kullanıcının girdisi, ip_address değişkenine atanır.

read -p "Tarama başlangıç portunu girin: " start_port
ShellScript

Kullanıcıdan taramanın başlangıç portunu girmesini isteyen bir girdi okuma komutudur. Kullanıcının girdisi, start_port değişkenine atanır.

read -p "Tarama bitiş portunu girin: " end_port
ShellScript

Kullanıcıdan taramanın bitiş portunu girmesini isteyen bir girdi okuma komutudur. Kullanıcının girdisi, end_port değişkenine atanır.

echo "Port tarama başlatılıyor..."
echo "Hedef IP: $ip_address"
echo "Başlangıç portu: $start_port"
echo "Bitiş portu: $end_port"
echo
ShellScript

Ekrana bilgilendirme mesajları yazdıran komutlardır. Kullanıcının girdiği IP adresi, başlangıç portu ve bitiş portunu görüntüler.

for ((port=start_port; port<=end_port; port++))
do
    timeout 1 bash -c "echo >/dev/tcp/$ip_address/$port" 2>/dev/null &&
    echo "Port $port açık" ||
    echo "Port $port kapalı"
done
ShellScript

Bu döngü, belirtilen başlangıç ve bitiş portları arasında bir dizi port üzerinde iterasyon yapar. Her bir iterasyonda, timeout komutu kullanılarak belirli bir süre içinde /dev/tcp üzerinden hedef IP adresine ve porta bağlantı denemesi yapılır. Bağlantı başarılıysa, yani port açıksa “Port X açık” mesajı yazdırılır. Aksi halde, yani port kapalıysa “Port X kapalı” mesajı yazdırılır.

Kayıt Edelim

CTRL + O
CTRL + X

Çalıştırmadan önce İzni veriyoruz.

$ sudo chmod +x port_scanner.sh
Bash

Çalıştırmak İçin.

$ ./port_scanner.sh
Bash
Not: IP yerine HostName de Kullanılabilir.