Merhaba arkadaşlar. Port scanner için Pyhton diliyle script yazmıştım. Sizinle paylaşmak istedim. (KALİ LİNUX)
Görsel kullanmadım. Zaten yaparsınız basit bir işlem. Destekleriniz icin simdiden teşekkürler.
Görsel kullanmadım. Zaten yaparsınız basit bir işlem. Destekleriniz icin simdiden teşekkürler.
1. ADIM
Arkadaşlar öncelikle Kali Linuxta boş bir text editör açıyoruz.
Python:
import socket
import threading
from queue import Queue
target = input("Hedef IP adresini girin: ")
open_ports = []
filtered_ports = []
closed_port_count = 0
# Port-Servis eşleştirmeleri
port_services = {
7: "Echo",
20: "FTP - Veri",
21: "FTP - Kontrol",
22: "SSH",
23: "Telnet",
25: "SMTP",
42: "WINS Replication",
43: "WHOIS",
49: "TACACS",
53: "DNS",
67: "DHCP - Sunucu",
68: "DHCP - İstemci",
69: "TFTP",
80: "HTTP",
88: "Kerberos",
110: "POP3",
119: "NNTP",
123: "NTP",
137: "NetBIOS-NS",
138: "NetBIOS-DGM",
139: "NetBIOS-SSN",
143: "IMAP",
161: "SNMP",
162: "SNMP Trap",
179: "BGP",
194: "IRC",
389: "LDAP",
443: "HTTPS",
445: "SMB",
465: "SMTP - SSL",
514: "Syslog",
520: "RIP",
546: "DHCPv6 - Sunucu",
547: "DHCPv6 - İstemci",
563: "NNTP - SSL",
631: "IPP",
636: "LDAP - SSL",
873: "RSYNC",
989: "FTP - SSL (Kontrol)",
990: "FTP - SSL (Veri)",
993: "IMAP - SSL",
995: "POP3 - SSL",
1433: "MS SQL",
1434: "MS SQL - Monitörleme",
1521: "Oracle SQL",
1701: "L2TP",
1723: "PPTP",
2082: "cPanel",
2083: "cPanel - SSL",
3306: "MySQL",
3389: "RDP",
5432: "PostgreSQL",
5900: "VNC",
5901: "VNC - Ekran 1",
5902: "VNC - Ekran 2",
6379: "Redis",
8080: "HTTP Proxy",
8443: "HTTPS Proxy"
# Diğer port-servis eşleştirmelerini buraya ekleyebilirsiniz
}
def get_service(port):
if port in port_services:
return port_services[port]
else:
return "Bilinmeyen Servis"
def port_scan(port):
try:
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.settimeout(1)
result = sock.connect_ex((target, port))
if result == 0:
open_ports.append(port)
service = get_service(port)
print(f"Port {port} açık - Protokol: {socket.getservbyport(port)} - Servis: {service}")
elif result == 113:
filtered_ports.append(port)
print(f"Port {port} filtrelendi")
else:
global closed_port_count
closed_port_count += 1
sock.close()
except KeyboardInterrupt:
print("\nTarama kullanıcı tarafından iptal edildi.")
exit()
except socket.gaierror:
print("Geçersiz hedef adresi. Lütfen doğru bir IP adresi girin.")
exit()
except socket.error:
print("Bağlantı hatası.")
exit()
def worker():
while not q.empty():
port = q.get()
port_scan(port)
q.task_done()
q = Queue()
for x in range(1000):
q.put(x)
for _ in range(30): # İstediğiniz sayıda thread kullanabilirsiniz
t = threading.Thread(target=worker)
t.start()
q.join()
print("\nTarama tamamlandı.")
print(f"\nAçık portlar: {open_ports}")
print(f"Filtrelenmiş portlar: {filtered_ports}")
print(f"Kapalı port sayısı: {closed_port_count}")
Yukarı da verdiğim kodları kopyalayıp yapıştırdıktan sonra text editörüne bir isim veriyoruz ben portscanner.py yaptım. İsmi önemli değil ancak uzantısını kesinlikle .py olarak kaydediyoruz.
ARKADAŞLAR BURDA BİR HATIRLATMA YAPMAK İSTEDİM. YUKARI VERDİĞİM KOD SADECE İLK "1000" PORTU TARIYOR. ONU YUKARIDAKİ RANGE ALANINDAKİ 1000 SAYISINI KAÇ TANE PORTU TARAYACAKSANIZ O ŞEKİLDE DEĞİŞTİREBİLİRSİNİZ. AYNI ŞEKİLDE THREADS KISMINI DA DEĞİŞTİREBİLİRSİNİZ. İLERİDE GELİŞTİRECEĞİM SCRİPTİ. ŞİMDİLİK BÖYLE İDARE EDİN.
2. ADIM
Terminalimizi açıyoruz ve dosya neredeyse oraya gidip aşağıdaki kodu çalıştırıyoruz.
Kod:
pyhton3 portscanner.py
Bende ismi portscanner olarak kayıtlı olduğu için portscanner.py olarak çalıştırdım. Siz nasıl kaydettiyseniz pyhton3 "dosyaadı" komutuyla scripti çalıştırabilirsiniz.
3. ADIM
Bizden bir IP adresi isteyecek. Tarama yapacağımız IP adresini girdikten sonra enterlıyoruz ve sonucları bizlere gösteriyor.
İyi forumlar.