• Kategori: Güvenlik
  • Eyüp ÇELİK
  • Gösterim: 1840

MS-SQL Hacking ve Post Exploitation Yöntemleri - Bölüm 2

2. MS-SQL Hacking

Şimdiye kadar MS-SQL hakkında bilgi toplama işlemleri gerçekleştirdik. Ağda bulunan servisler, bu servislerin versiyonlarını ve IP adreslerini bulduk. Artık MS-SQL için hacking konusuna geçebiliriz. MS-SQL hacking konusunu da 2 ana başlık altında inceleyeceğiz.

2.a Brute-Force

Brute force, en çok kullanılan MS-SQL saldırı yöntemlerinin başında gelir. Şimdiye kadar gerek kamu gerekse de özel kuruluşlara yapmış olduğum sızma testlerinde mutlak sonuca götüren yöntemlerden biri diyebilirim. Kurum ve kuruluşlarda özellikle test sunucularında oldukça başarılı bir yöntemdir. Birçok kurum ve kuruluşta bu yöntem ile “Domain Admin” hesabını ele geçirdim. Özellikle yazılım geliştiren kurum ve kuruluşlarda, daha hızlı ve pratik kullanım için MS-SQL sunucuları varsayılan olarak güvenliğe dikkat edilmeden bırakılmaktadır.

MS-SQL veritabanı 2 oturum açma türüne sahiptir. Bu oturum açma türleri, MS-SQL ilk kurulumu sırasında ayarlanarak, veritabanı hizmeti yüklenir. 1- Windows Authentication 2- SQL Server Authentication. Windows Authentication; hem yerel hem de domain kullanıcılarının SQL sunucusuna başka bir şifre girmelerine gerek kalmadan oturum açabilmelerine olanak tanır. SQL Server Authentication ile de varsayılanda “sa” kullanıcısı için bir parola belirlenerek kurulum tamamlanır. Sadece Windows ile oturum ya da Mixed mod ile hem Windows hem de SQL Server kullanıcı hesabı ile oturum açılabilmektedir.

Brute force işte tam bu noktada imdadımıza yetişmektedir. MS-SQL için brute force işlemini iki başlık altında inceleyebiliriz. 1- SQL’de oturum açma hakkına sahip domain kullanıcıları 2- SQL kullanıcıları için şeklinde inceleyebiliriz.

2.a.1 Domain Kullanıcılarına Yönelik Brute Force Saldırısı

 Bu yöntem biraz uğraş isteyen yöntemlerden biridir. Öncelikle yazılım geliştiren ya da veritabanı yöneticisi olan kişilerin sosyal ağlardan bulunması ile işe başlanabilir. Burada yapacağımız ilk işlerden biri, test yaptığımız kurum veya kuruluştaki SQL’de oturum açabilecek kullanıcıların Linkedin, Twitter veya Facebook üzerinden aratmamız gerekecektir. Aradığımız personeli bulduktan sonra bu personel için brute force işlemi başlatabiliriz. Bu işlem için kullanabileceğimiz en sağlıklı araç, Metasploit içerisinde yer alan “auxiliary/scanner/smb/smb_login” modülü olacaktır.

use auxiliary/scanner/smb/smb_login

set RHOSTS <IP Adresi yada IP Aralığı>(Domain kullanıcıları için en sağlıklı host, DC’nin IP’si dir.)

set SMBDOMAIN <Domain Adresi>

set USER_FILE <Kullanıcı Adlarının Olduğu Dosya>

set PASS_FILE <Şifre Dosyası>

run

1 smb login

MSF ile SMB servisi için bir brute force işlemi başlattık. Test sonunda “secuirtylabs.local” domainde “db” kullanıcısının “Password1” parolasına sahip olduğunu tespit ettik. Elde ettiğimiz kullanıcı hesabı ile MS-SQL’e sızma işlemini bir sonraki bölümde detaylıca inceleyeceğiz.

2.a.2 MS-SQL Kullanıcılarına Yönelik Brute Force Saldırısı

MS-SQL’e gelen saldırıların büyük çoğunluğu SQL kullanıcı hesaplarına yönelik yapılmaktadır. Özellikle MS-SQL varsayılan yönetici hesabı olan “sa” hesabına yönelik saldırılar ile SQL veritabanı ele geçirilmeye çalışılır. Bu bölümde MS-SQL’e brute force işlemi yapabilen 2 araçla birlikte, .NET (C#) ortamında brute force işlemini kendi programımız ile nasıl gerçekleştirebileceğimize de değineceğim.

2.a.2.a Metasploit ile MS-SQL’e Brute Force Saldırısı

MS-SQL kullanıcı hesaplarına yönelik Metasploit’de bulunan “auxiliary/scanner/mssql/mssql_login” modülünü kullanabiliriz. Bu Auxiliary modülü ile MS-SQL kullanıcılara brute force yapabiliriz.

use auxiliary/scanner/mssql/mssql_login

set RHOSTS <IP Adresi yada IP Aralığı>(Domain kullanıcıları için en sağlıklı host, DC’nin IP’si dir.)

set USER_FILE <Kullanıcı Adlarının Olduğu Dosya>

set PASS_FILE <Şifre Dosyası>

set THREADS 10 (Şifre dosyasının büyüklüğüne göre thread ayarlayarak testi hızlandırabiliriz)

run

2 mssql login

MS-SQL için Metasploit üzerinden başlattığımız brute force işlemi başarı ile tamamlandı. “sa” kullanıcısının “Password1” parolasını sahip olduğu tespit edildi. Bundan sonra yapacağımız işlem, parolası tespit edilen kullanıcı hesabı ile MS-SQL sunucusuna erişerek, komut çalıştırmak olacaktır.

2.a.2.b Nmap ile MS-SQL’e Brute Force Saldırısı

MS-SQL brute force işlemi için kullanabileceğimiz bir diğer araç da “Nmap”te bulunan “ms-sql-brute” scriptidir.

nmap --script ms-sql-brute --script-args userdb=<kullanıcı dosyası>,passdb=<şifre dosyası> IP yada IP Aralığı

3 nmap mssql login

192.168.139.102 IP adresi için başlattığımız test tamamlandı. “sa” kullanıcısı için “Password1” parolasını tespit etmiş. Nmap scripti en gelişmiş tekniklere sahip brute force aracıdır. Üstteki resimde görüleceği üzere bir kullanıcı dosyası ve bir şifre dosyası ile MS-SQL brute force işlemini başlatmıştım. Bunun dışında “2.a.1 Domain Kullanıcılarına Yönelik Brute Force Saldırısı” başlığı altında “smb” şifresini bulduğumuz kullanıcı hesabı gibi “domain” kullanıcılarına da yönelik şifre denemesi gerçekleştirebilir.

nmap -p 1433 --script ms-sql-brute --script-args "ms-sql-brute.brute-windows-accounts=true,userdb=/root/Desktop/userfile.txt,smbdomain=securitylabs.local,smbport=445,passdb=/root/Desktop/passfile.txt,mssql.domain=securitylabs.local" 192.168.139.102

ms-sql-brute scripti içerisinde yer alan SMB seçenekleri ile MS-SQL’de oturum açabilen domain kullanıcılarına yönelik brute force testi başlattık.

4 nmap mssql smb

Script, MS-SQL için yapılan brute force işleminde domainde bulunan “db” kullanıcısının şifresini tespit etmiştir.


2.a.2.c C# ile MS-SQL’e Brute Force Saldırısı

Bu bölümde de MS-SQL için C# ile basit bir brute force aracını nasıl yazabileceğimize değineceğim. Visual studio’dan yeni bir proje oluşturalım. Form ekranına aşağıdaki gibi controlleri ekleyelim.

5 bruteforce code 1

Forma 3 adet buton, 2 adet textbox ekledim. Kullanıcı dosyası için btnKullanici, şifre dosyası için btnSifre ve başlat butonu için btnBaslat isimlerini verdim. IP adresi için txtIP ve loğları yazdırmak için de txtStatus adında controllerimi isimlendirdim. Ayrıca globalde de iki adet “Generic List” oluşturdum.

6 bruteforce code 2

Globalde oluşturduğumuz generic list’ler yukarıdaki resimde görüldüğü gibi olacak. btnKullanici’dan ve btnSifre’den seçtiğimiz dosyalar bu generic listler içerisine doldurulacak.

7 bruteforce code 3

Kullanıcı dosyası seçildikten sonra aynı işlemi şifre dosyası için de uyguluyoruz.

8 bruteforce code 4

Tüm bu işlemlerin ardından artık brute force işlemi için metodumuzu yazmaya koyulabiliriz. Bunun için “BruteForce” adında bir metod tanımladım. Metodumuz da aşağıdaki gibi olacaktır.

9 bruteforce code 5

Oluşturduğumuz metod yukarıdaki gibi olacak. Geriye bir tek işlem kaldı, bu brute force metodunu çalıştırmak.

10 bruteforce code 6

btnStart için bir Task oluşturup, bu taska da BruteForce isimli oluşturduğumuz metodu tanımlıyoruz. Artık her şeyimiz hazır. Unutmadan! Form’un load event’ına da “CheckForIllegalCrossThreadCalls = false;” u ekliyoruz. Çünkü metodumuzu bir task içerisine doldurduk ve metod içerisinde txtStatus’e yazı yazdırıyoruz, dolayısı ile bunu vermez isek “InvalidOperationException” alacağız.

11 bruteforce code 7

Kodları derleyip programı başlatıyoruz. Ve testimizin sonucu yukarıdaki gibi olacaktır. Program başarılı bir şekilde brute force için kullanılabilir. Yazının en sonunda programın kaynak kodlarını da paylaşacağım. Kopyala yapıştır yerine biraz yazmaya teşvik etmek için kodları bilerek resim olarak veriyorum.

2.a.3 MS-SQL Kullanıcılarına Yönelik MITM Saldırısı

Bu saldırı türünde ise MS-SQL kullanıcı hesaplarını ele geçirmek için MITM saldırısı yapacağız. MITM saldırısı ile ağda MS-SQL oturumu açan kullanıcının erişim bilgilerini ele geçireceğiz. Bunun için birkaç işlemi / aracı bir arada kullanmamız gerekiyor.

  1. IP Forwarding
  2. NAT
  3. Metasploit
  4. Arp Spoof

1. IP Forwarding

Öncelikle 192.168.139.164 IP adresine sahip saldırgan makinamızda (Kali Linux) ip_forwarding’i aktif etmemiz gerekiyor. Bunun için; “echo 1 > /proc/sys/net/ipv4/ip_forward” komutu ile ip_forward özelliğini aktif ediyoruz.

12 ip forwarding

Bir sonraki adımda NAT kuralı oluşturmamız gerekiyor. MITM saldırısına maruz kalacak kullanıcı MS-SQL’e erişim sağlamaya çalıştığında, erişim sağlamaya çalıştığı trafiği bize yönlendirecek. Yani; kurbanımız MS-SQL veritabanına erişim sağlamak için 1433 portuna bağlandığında, oluşan trafiği bizim Kali Linux’umuzdaki sahte 1433 portuna yönlendirecek. Böylece trafiği yakalayarak içeriğini okuyabileceğiz.

2. NAT

“iptables -t nat -A PREROUTING -p tcp -d 192.168.139.102 --dport 1433 -j REDIRECT --to-ports 1433” komutu ile kurbanımız 1433 portuna yönlendirilmiş olacak ve 192.168.139.102 (MS-SQL DB) IP adresinin 1433 portuna giden trafiğin arasına girmemizi sağlayacak.

3. Metasploit

Gerekli ayarları yaptıktan sonraki adımımız, MS-SQL’e giden trafiği sniff etmemiz olacaktır. Bunun için de Metasploit Framework içerisinde bulunan “auxiliary/server/capture/mssql” auxiliary modülünü kullanacağız. Yeni bir konsol ekranı açarak aşağıdaki konfigürasyonu gerçekleştirelim.

use auxiliary/server/capture/mssql

run

13 msf mssql sniff

Varsayılan ayarlar bizim için yeterli olacaktır. Bu hali ile komutumuzu girip, sniff işlemini çalışır duruma getiriyoruz. Artık geriye bir tek işlemimiz kaldı, ARP Spoof yaparak trafiği Kali Linux makinamıza yönlendirmek.

4. ARP Spoof

Bu işlem ile MS-SQL’e giden trafiği Kali Linux makinamıza yönlendireceğiz. Böylece kurban MS-SQL’de oturum açmaya çalışırken şifresini Metasploit ile yakalayacağız.

Dip Not: Kurban olarak seçeceğimiz makine çok önemli! Yani öyle bir makine seçmeliyiz ki MS-SQL’e bağlansın. Ben MITM için Web Sunucularına arp spoof yapılmasını tavsiye ediyorum. Çünkü .net ile geliştirilmiş uygulamalar genel itibari ile MS-SQL’e bağlanırlar. Web uygulamasının bulunduğu sunucuyu spoof ettiğimizde başarıya ulaşma şansımız oldukça yüksektir. Tabi birkaç dakikalık kesinti problem değilse…

En başta network topolojimizi paylaşmıştım. Ağda yayın yapan Web Server (IIS) 192.168.139.163 IP adresinde yayın yapıyor.

14 arp spoof

“arpspoof -i <interface> -t <kurban> <MS-SQL server>“ komutu ile ARP Spoof işlemini başlatıyoruz. Hemen ardından Web sunucusuna bir browser aracılığı ile erişip, MS-SQL’e bağlanmasını sağlıyoruz. MS-SQL’e bağlantı isteği gittiğinde ise şifreyi dump edeceğiz.

15 web error

Web uygulamasına eriştiğimizde, yukardaki resimde görüleceği üzerine hata alacağız. Uygulama MS-SQL’e bağlanamadığı için hataya düşecektir. Şimdi Metasploit framework e geri dönüp, dump edilen şifreye bakalım.

16 msf mssql dump password

Görüleceği üzere MS-SQL bağlantısı gerçekleştirilmiş ve erişim bilgileri elde edilmiştir.

Yorum ekle


Güvenlik kodu Yenile

Bookmaker betfair Bonus review by ArtBetting.co.uk

Bookmaker bet365 review by ArtBetting.co.uk

Germany bookmaker b.artbetting.de review by ArtBetting.de

Bookmaker Greece BET365 review by ArtBetting.gr

Back to top