MSSQL Brute Force Saldırısı, Analizi ve Korunma Yolları

layef

Üye
28 Mar 2020
135
46
nowhere

Bu yazımızda MSSQL servisine Brute Force attack gerçekleştirip, analizini ve korunma yollarını anlatıyor olacağız..

İçerik;
  • MSSQL Nedir?
  • MSSQL'e Brute Force Saldırısı
  • Saldırının Analizi
  • Korunma Yolları



MSSQL Nedir?

MSSQL (Microsoft — Structured Query Language) açılımdan da anlaşılacağı üzerine Microsoft tarafından geliştirilen ücretli bir veri tabanı platformudur. Diğer veri tabanı platformlarında olduğu gibi MSSQL'de de veri tabanı oluşturma, geliştirme ve yönetme vb. gibi çoğu işlevi gerçekleştirebiliyoruz. MSSQL editör olarak SQL Server Management Studio kullanmaktadır. Bu editör yardımı ile datalarımızı düzenleyebilir, raporlamalar yapabilir ve çeşitli analizler yapılabilir.

Windows platformlarda ve .NET ve ASP programlama dili aracılığı ile oluşturulan yazılımlarda, veri tabanı olarak tercih edilmekle beraber çok geniş yelpazelere ulaşmış bir veri tabanı platformudur.

MSSQL varsayılan olarak TCP 1433 numaralı portu kullanmaktadır. Aynı zamanda 1433 numaralı port IANA tarafından bu servis için resmi olarak atanmıştır.

Ayrıca MSSQL SQL bağlantısı yapabilmek için iki farklı kimlik doğrulama yöntemi kullanmaktadır. Bunlar;

Windows Authentication: Bir Windows kullanıcı hesabı ile bağlandığında, SQL server Windows principial token kullanarak doğrular. Yani kullanıcı hesabı Windows tarafından teyit edilir.

SQL Server Authentication: Windows hesap doğrulamaya dayanmayan kimlik doğrulama yöntemidir. Kullanıcı adı ve şifre ile kimlik doğrulamaya dayanır.



MSSQL'e Brute Force Saldırısı

Öncelikle MSSQL veri tabanımıza bir Brute Force attack gerçekleşmesi için;
  • SQL sunucumuza uzaktan bağlantı etkinleştirilmiş olması gerekmekte yani internete açık olması gerekiyor. Bir diğer deyiş ile Fiziksel bağlantımız olmak zorunda.
  • 1433 numaralı portumuzun open(açık) durumda olması gerekmektedir. Close veya filtered durumda, saldırımızı gerçekleştiremeyiz.
  • ve tabi son olarak kullanıcı adı ve şifreyi bilmemiz gerekmektedir. Çoğu kullanıcının kullanıcı adını varsayılan olarak bırakması bu saldırılarda işi daha çok kolaylaştırıyor.

1. aşama tespit;

Nmap ile bir port taraması yapılabilir. Tabi biz zaten hedef makinemizde sadece 1433 numaralı portla ilgilendiğimiz için, direkt bu port odaklı bir tarama gerçekleştirebiliriz.

Kod:
nmap -p 1433 -sV 192.168.1.36



-p parametresi ile portumuzu -sV parametresi ile de hedef sistemde bulunan yazılım servis ve sürümlerini tespit işlemini gerçekleştirdik. Görüldüğü üzere TCP 1433 numaralı portta ms-sql-s servisi çalışmakta ve versiyon bilgisini vermektedir.

Not: -sV parametresi ile alınan versiyon bilgisi kesinlikle doğru kabul edemeyiz. Nmap tarama yaptığı porttaki kullanılabilecek servisleri tahmin eder ve yazılım versiyonunu belirlemeye çalışır.

2. aşama saldırı;

Tespit aşamasından sonra sıra geldi saldırıyı yapmaya, saldırı için Kali Linux'da default olarak bulunan xhydra aracını kullanabiliriz.



Target kısmında 1. Bölüme tekli hedef olarak kurbanımızın ip adresini yazdık. İstersek "Target List" ile bir ip listesi verebiliriz. 2. bölümde ise port ve protokolü belirttik. 3. de ise düzenli bir çıktı almak için "Be Verbose" kutucuğunu işaretledik.



Passwords kısmında 4. bölüme username biliyorsak direkt belirtebiliriz eğer usurname bilinmiyorsa username için de bir wordlist "Username List" bölümüne belirtilebilir. Biz örnek yaptığımız için username direkt olarak belirttim.

5. bölümde ise içinde şifremizin olduğu bir wordlist'in yolunu gösterdim. Bu işlemleri tamamladıktan sonra Start sekmesine gidip işlemi başlatabiliriz.



Görüldüğü üzere Brute Force attack gerçekleştirdik ve parolayı elde ettik. Özetle bir Brute Force attack bu şekilde. Şimdi de bu saldırının analizini yapalım...



Saldırının Analizi

Saldırının analizine ilk olarak SQL Server Loglarından başlayalım.

Microsoft SQL Server Management Studio'yu açıp Management > SQL Server Logs > Current'e çift tıklayalım. Buradaki log kayıtlarını inceleyecek olursak..



Görüldüğü üzere mavi bölümde yani loglarda çok sayıda “Login failed for user ‘jerusalem’ Reason: Password did not match that fort he login provided." (‘jerusalem’ kullanıcısı için Oturum Açma Başarısız Oldu Nedeni: Şifre, oturum ile eşleşmiyor) kayıtlarını göremekteyiz. Kırmızı bölge de ise bu logların zamanlamaları mevcut, farkedeceksiniz ki zaman aralığı çok minimal seviyede yani burada Brute Force attack olduğu açıkça anlaşılmaktadır. Ayrıca Yeşil bölgede saldırganın ip adresi de gözükmektedir.

2. olarak NetworkMiner aracı ile incelemelerde bulunalım..



Burada 1433 numaralı porta yani ms-sql servisimize gönderilen paketler gözükmektedir. Burada da aynı şekilde paketlerin gönderilme sıklığı bir Brute Force attack olduğunun göstergesi, burada farklı olarak saldırgan makinenin işletim sistemini de görebilmekteyiz.

NetworkMiner'da Sessions bölümündeki Filter Keyword kısmına saldırının gerçekleştiği 1433 numaralı portu yazıp daha fazla detay görebiliriz.



Başka bir MSSQL Brute Force attack örneğini de Wireshark üzerinden inceleyelim.

Öncelikle saldırı portunu filtreleyelim.

Kod:
tcp.port == 1433



Response paket içeriğinden Tabular data stream(TDS) başlığına ait paketleri görüntüleyelim..

TDS Nedir? Veri Tabanı sunucusu ile istemci arasında veri aktarımını sağlayan, uygulama katman protokolüdür.



Paketi inceleyecek olursak tds7 login paketinin TCP Stream içeriğine baktığımız zaman Nmap NSE scripti kullanılarak deneme yapıldığını görebilmekteyiz. Hatalı giriş mesajı "Login failed" döndürmüş. Aynı zamanda veri tabanı isminin "sa" olduğu da gözükmekte.

MSSQL Brute Force attack gerçekleştirildiği sonucuna varabiliriz.



Veri tabanının isminin "sa" olduğunu gördükten sonra bu isme yönelik spesifik bir filtreleme yapılabilir.



Tüm login işlemlerini görmek için şu parametreyi kullanabiliriz.

Kod:
tds.type == 16





Korunma Yolları

  • İlk olarak (yapılan en büyük hatalardan biri) MSSQL'de default olarak gelen "sa" kullanıcı isminin değiştirilmesi gerekmektedir,
  • Şifreler ne kadar karmaşık olursa Brute Force işleminin süresi o kadar uzar bu durum da local'deki bir saldırganın yakalanma olasılığını büyük ölçüde arttırır,
  • Gerekmedikçe uzaktan erişim için veri tabanı portumuzu(MSSQL için 1433) dış dünyaya açmamak,
  • Aynı IP adresinden belirli bir sayıda hatalı giriş yapıldığı taktirde ilgili adresi kara listeye alan ve SQL Server Mail hizmetiyle admini eposta ile bilgilendiren bir altyordam(procedure) yazılabilir,
  • Olası bir saldırı sonucunda hasarı en aza indirmek için verilerin yedeği mutlaka farklı bir platformda tutulmalıdır
  • ve tabi ki sosyal mühendislik saldırılarına karşı her zaman uyanık olmamız gerekmektedir..

Ayrıca yardımlarından dolayı Pentester hocama teşekkür ederim.

Selam ve Sevgilerle..





 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.