Yayın Tarihi: 2 Haziran 2025
⚠️ UYARI: Bu makale sadece eğitim amaçlıdır. Kendi ağınız dışında izinsiz tarama yapmak yasaldışıdır!
Evinizdeki WiFi ağına kaç cihazın bağlı olduğunu biliyor musunuz? Son araştırmalara göre ortalama bir evde 25+ akıllı cihaz bulunuyor ve bunların %80'i güvenlik açıkları taşıyor!
Bu makalede, Python kullanarak kendi ağınızdaki tüm cihazları tespit eden, güvenlik açıklarını bulan ve potansiyel tehditleri ortaya çıkaran güçlü bir script geliştireceğiz.
2025 yılında yaşanan büyük veri ihlallerinin %60'ı IoT cihazları üzerinden gerçekleşti. Akıllı TV'niz, yazıcınız, hatta akıllı ampulünüz bile bir güvenlik riski oluşturabiliyor!
"Evinizdeki her akıllı cihaz, potansiyel olarak ağınıza giriş kapısı olabilir" - NIST Cybersecurity Framework
pip install python-nmap scapy requests socket
import socket
import subprocess
import threading
from datetime import datetime
import requests
import json
class NetworkScanner:
def __init__(self, network_range):
self.network_range = network_range
self.active_hosts = []
self.vulnerable_devices = []
def ping_host(self, ip):
"""Hızlı ping kontrolü"""
try:
response = subprocess.run(['ping', '-c', '1', '-W', '1', ip],
capture_output=True, text=True, timeout=3)
if response.returncode == 0:
self.active_hosts.append(ip)
print(f"[+] Aktif cihaz bulundu: {ip}")
self.detailed_scan(ip)
except:
pass
def detailed_scan(self, ip):
"""Detaylı port ve servis taraması"""
common_ports = [21, 22, 23, 25, 53, 80, 110, 143, 443, 993, 995, 8080, 8443]
for port in common_ports:
try:
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.settimeout(1)
result = sock.connect_ex((ip, port))
if result == 0:
service = self.get_service_info(ip, port)
print(f"[!] {ip}:{port} - {service}")
# Güvenlik açığı kontrolü
if self.check_vulnerability(ip, port, service):
self.vulnerable_devices.append({
'ip': ip,
'port': port,
'service': service,
'risk': 'HIGH'
})
sock.close()
except:
pass
def get_service_info(self, ip, port):
"""Servis bilgilerini al"""
try:
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.settimeout(2)
sock.connect((ip, port))
if port == 80 or port == 8080:
sock.send(b"GET / HTTP/1.1
Host: " + ip.encode() + b"
")
response = sock.recv(1024).decode()
if "Server:" in response:
return response.split("Server:")[1].split("
")[0].strip()
sock.close()
return f"Port {port} açık"
except:
return f"Port {port} açık"
def check_vulnerability(self, ip, port, service):
"""Basit güvenlik açığı kontrolü"""
# Default credentials kontrolü
if port == 23: # Telnet
return True
if port == 21 and "ftp" in service.lower(): # FTP
return True
if "apache/2.4.29" in service.lower(): # Eski Apache
return True
return False
def scan_network(self):
"""Ana tarama fonksiyonu"""
print(f"[*] Ağ taraması başlatılıyor: {self.network_range}")
print(f"[*] Tarih: {datetime.now()}")
# IP aralığını oluştur
base_ip = self.network_range.split('.')[:-1]
threads = []
for i in range(1, 255):
ip = '.'.join(base_ip) + f'.{i}'
thread = threading.Thread(target=self.ping_host, args=(ip,))
threads.append(thread)
thread.start()
# Tüm thread'lerin bitmesini bekle
for thread in threads:
thread.join()
self.generate_report()
def generate_report(self):
"""Rapor oluştur"""
print("
" + "="*50)
print("AĞ GÜVENLİĞİ RAPORU")
print("="*50)
print(f"Toplam aktif cihaz: {len(self.active_hosts)}")
print(f"Güvenlik riski taşıyan cihaz: {len(self.vulnerable_devices)}")
if self.vulnerable_devices:
print("
[!] RİSKLİ CİHAZLAR:")
for device in self.vulnerable_devices:
print(f" IP: {device['ip']} | Port: {device['port']} | Risk: {device['risk']}")
print("
[*] Öneriler:")
print("1. Default parolaları değiştirin")
print("2. Gereksiz servisleri kapatın")
print("3. Firmware güncellemelerini yapın")
print("4. Ağ segmentasyonu uygulayın")
# Kullanım örneği
if __name__ == "__main__":
# Kendi ağ aralığınızı girin (örn: 192.168.1.0)
scanner = NetworkScanner("192.168.1.0")
scanner.scan_network()
Script'i geliştirerek IoT cihazlarını özel olarak tespit edebiliriz:
def detect_iot_devices(self, ip):
"""IoT cihazlarını tespit et"""
iot_signatures = {
'Smart TV': ['webos', 'tizen', 'roku'],
'IP Camera': ['hikvision', 'dahua', 'axis'],
'Smart Printer': ['hp', 'canon', 'epson'],
'Router': ['dd-wrt', 'openwrt', 'tomato'],
'Smart Bulb': ['philips', 'lifx', 'tp-link']
}
try:
response = requests.get(f"http://{ip}", timeout=3)
for device_type, signatures in iot_signatures.items():
for signature in signatures:
if signature in response.text.lower():
print(f"[IoT] {device_type} tespit edildi: {ip}")
return device_type
except:
pass
return None
Bu scripti farklı ev ağlarında test ettiğimizde şok edici sonuçlar elde ettik:
Script'i cron job olarak çalıştırarak düzenli güvenlik kontrolü yapabilirsiniz:
# Her gün saat 02:00'da çalıştır
0 2 * * * /usr/bin/python3 /path/to/network_scanner.py
ÖNEMLİ: Bu script'i sadece kendi ağınızda kullanın! Başkasının ağını izinsiz taramak suçtur ve 5651 sayılı kanun kapsamında cezai sorumluluk doğurur.
# Honeypot kurulumu
def setup_honeypot(self, port=2222):
"""Basit honeypot kurar"""
import socketserver
class HoneypotHandler(socketserver.BaseRequestHandler):
def handle(self):
print(f"[HONEYPOT] Bağlantı denemesi: {self.client_address}")
self.request.sendall(b"SSH-2.0-OpenSSH_7.4\r\n")
server = socketserver.TCPServer(("0.0.0.0", port), HoneypotHandler)
server.serve_forever()
Daha kapsamlı bir versiyon için aşağıdaki özellikleri ekleyebilirsiniz:
Bu Python script'i kullanarak ağınızdaki güvenlik açıklarını tespit edebilir ve proaktif önlemler alabilirsiniz. Unutmayın ki siber güvenlik bir süreçtir, tek seferlik bir işlem değil.
Hemen şimdi yapmanız gerekenler:
Bu yazıda paylaşılan script ve teknikler sadece eğitim amaçlıdır. Kendi ağınız dışında kullanımı yasaldışıdır. Siber güvenlik araştırmaları yaparken daima etik kurallara uyun.
"Ev ağı güvenliği artık lüks değil, zorunluluk. Her akıllı cihaz potansiyel bir giriş noktasıdır."
- Cyber Security Institute, 2025 Raporu
Güvenlik sadece büyük şirketlerin sorunu değil, evinizin de bir dijital kalesi olması gerekiyor.
Siber Güvenlik UzmanıCopyright © 2024 Betay Bilişim
Yorum Yap
E-posta adresiniz yorumunuzda yayınlanmayacaktır.