Microsoft SQL Server Sızma ve Güvenlik Testi Çalışmaları

Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...

Sanayeryokburada

Uzman üye
10 Tem 2015
1,828
1
1. GİRİŞ
Microsoft SQL Server, 1989 yılında beri Microsoft firması tarafından geliştirilen Windows işletim sistemi üzerinde çalışan İlişkisel Veritabanı Yönetim Sistemi (İng. Relational Database Management System, Kıs. RDMS)’dir. İlişkisel veritabanı yönetim sistemi olma özelliğe sahip veritabanlarında veriler satırlar ve sütunlar içeren tablolar halinde ve birbirleri arasında ilişki olacak şekilde tutulur.
Microsoft SQL Server, DB-Engines (Microsoft SQL Server System Properties, Şubat 2015) verilerine göre Şubat 2015 itibariyle dünya üzerinde en çok kullanılan üçüncü veritabanıdır. Büyük küçük birçok kurum Microsoft SQL Server’ı bilişim sistemlerinde kullanmaktadır ve güvenlik testleri esnasında sızma testi uzmanlarının karşısına oldukça fazla çıkmaktadır.
Yazı kısaca Microsoft SQL Server bulunan bir ağ içerisinde hedef veritabanı üzerinde keşif çalışmaları nasıl yapılır, yetkili hesap bilgisi nasıl ele geçirilir, ele geçirilen hesap ile diğer hesapların parola özetleri nasıl ele geçirilir, yetkisiz hesap ile nasıl hak yükseltilir ve ele geçirilen hesap ile işletim sistemi nasıl ele geçirilir sorularına cevap verecek şekilde ve bu konuda fikir vermesi amacıyla hazırlanmıştır.

2. MICROSOFT SQL SERVER GÜVENLİK TESTİ ÇALIŞMALARI
Güvenlik ve sızma testleri için test ortamında hedef işletim sistemi olarak Microsoft Windows Server 2008 R2 64-Bit ve üzerinde Microsoft SQL Server 2012 Express 64-Bit kullanılmıştır. Hedef işletim sistemine bağlantı kuran kurban için Windows 7 Home Premium 64-Bit işletim sistemi kullanılmıştır.
Testler esnasında kullanılan araçların bulunduğu işletim sistemi olarak Kali Linux 1.1.0 64-Bit kullanılmıştır. Hedef Microsoft SQL Server testler esnasında “Local System” haklarıyla çalıştırılmıştır ve Kali Linux üzerinde Nmap ve ****sploit araçları kullanılmıştır. Aşağıda test ortamının şeması verilmiştir.


VL98VV.png


3. KEŞİF ÇALIŞMALARI
Bilgi toplama güvenlik testleri esnasında ilk ve en önemli bölümü oluşturmaktadır. Yazı içerisinde Microsoft SQL Server ağ içerisinde tespit çalışmaları için Nmap ve scriptleri ayrıca ****sploit modülleri kullanılmıştır. Keşif çalışmalarında hedef Microsoft SQL Server’ın versiyonu, Instance Name değeri vb. bilgiler elde edilmeye çalışılmıştır.


3.1. AĞ İÇERİSİNDE MICROSOFT SQL SERVER TESPİTİ
Microsoft SQL Server varsayılan olarak 1433 numaralı port üzerinde çalışır. Ancak sistem/veritabanı yöneticileri gerek güvenlik gerek başka nedenlerden Microsoft SQL Server’ı başka portlar üzerinde de çalıştırabilir. Bu yüzden sızma testleri esnasında mümkün mertebe tam port taramasının yapılması tavsiye edilir.
Ağ içerisinde bulunan Microsoft SQL Server’ı tespit etmek için Nmap aracı kullanılabilir. Test ortamında Microsoft SQL Server varsayılan portu numarası olan 1443 üzerinde çalışacak şekilde konumlandırılmıştır.
Test ortamında aşağıdaki komut kullanılarak ağ içerisinde Microsoft SQL Server tespit edilmeye çalışılmıştır. $ nmap -n <HEDEF IP> -p 1433
Yukarıdaki komut çalıştırıldığında aşağıdaki çıktı alınmıştır.

Nmap scan report for 192.168.48.130 Host is up (0.00099s latency). PORT STATE SERVICE 1433/tcp open ms-sql-s
Komut çıktısından da anlaşılabileceği üzere hedef port üzerinde “ms-sql-s” isimli bir servis çalışmaktadır. Hedef port üzerinde çalışan servis bilgisini daha kesin hale getirmek için Nmap tarama koduna “-sV” parametresi eklenirse, servise üçlü el sıkışması (three way handshake) adı verilen şekilde bağlantı sağlanır. Böylece hedef port üzerinde çalışan servis hakkında daha detaylı ve kesin bilgi alınabilir. Nmap scan report for 192.168.48.130 Host is up (0.00040s latency). PORT STATE SERVICE VERSION 1433/tcp open ms-sql-s Microsoft SQL Server 2012
Yukarıdaki Nmap tarama çıktısından da anlaşılabileceği üzere hedef sistemde 1433 numaralı port üzerinde “Microsoft SQL Server 2008 R2” çalışmaktadır.

3.2. MICROSOFT SQL SERVER HAKKINDA BİLGİ TOPLAMA
Ağ içerisinde Microsoft SQL Server tespit edildikten sonra servis hakkında daha detaylı bilgi elde etmek için Nmap yazılımı içerisinde konu ile ilgili script bulunmaktadır. Nmap içerisinde bulunan “ms-sql-info” isimli script, hedef Microsoft SQL Server hakkında detaylı bilgi toplamaktadır. Scripti kullanarak hedef hakkında bilgi almak için aşağıdaki komut kullanılabilir. $ nmap -p 1433 --script ms-sql-info <HEDEF IP>
Yukarıdaki komut çalıştırıldığında aşağıdaki ekran görüntüsündeki gibi bir çıktı alınır.


kg97km.png



Şekil 2 - Nmap İle Bilgi Toplama
Çıktıdan da anlaşılabileceği üzere söz konusu script kullanılarak hedef Microsoft SQL Server hakkında bir çok bilgi (Instance Name değeri ve versiyon bilgisi) elde edilebilir. Örneğin, versiyon bilgisinin tam olarak alınabilmesi çıkmış olan zafiyetlerden hangileri tarafından sistemin etkilendiği konusunda yardımcı olacaktır.
Aynı şekilde ****sploit içerisinde bulunan “mssql_ping” isimli modül de Microsoft SQL Server hakkında bilgi toplamak için kullanılabilir. Modül ayarları içerisine kullanıcı adı ve şifre bilgisi değerleri de girilebilir ancak zorunlu değerler değillerdir. Sadece hedef IP adresi ve port numarası verilerek modül çalıştırılabilir. Hedef Microsoft SQL Server hakkında bilgi toplamak için test ortamında ilgili modül çalıştırılmış ve Nmap scriptinin sonuçlarına benzer sonuçlar alınmıştır. Aşağıda modül çıktısının ekran görüntüsü verilmiştir


j2gr2J.png




4. SIZMA GİRİŞİMLERİ
Ağ içerisinde Microsoft SQL Server tespit edilip hakkında bilgi toplandıktan sonra test ortamında sızma girişimlerinin ilk adımı olan hesap ele geçirme anlatılmıştır. Hesap ele geçirme konusunda kaba kuvvet saldırısı ve Man In The Middle saldırısı gerçekleştirilmiş ve hedef üzerinde yetkili hesap ele geçirilmiştir. Kaba kuvvet saldırısı esnasında Nmap scripti ve ****sploit modülü kullanılmıştır.
Hesap bilgisi ele geçirildikten sonra hedefteki diğer hesapların parola özetleri ele geçirilmiştir. Ele geçirilen hesap bilgisi ile hedef hakkında daha detaylı bilgi toplanmıştır.

4.1. KABA KUVVET SALDIRILARI İLE HESAP ELE GEÇİRME
Microsoft SQL Server’a kaba kuvvet saldırıları çeşitli araçlar ile yapılabilir test ortamı içerisinde konu ile ilgili olan Nmap yazılımının scripti ve ****sploit modülü kullanılmıştır. Hedef hesap bilgisi olarak varsayılan olarak kurulumda gelen ve yetkili kullanıcı olan “sa” kullanıcısına yönelik kaba kuvvet saldırıları gerçekleştirilmiştir.
4.1.1. NMAP SCRIPTI İLE KABA KUVVET SALDIRILARI
Microsoft SQL Server’a Nmap aracı içerisinde bulunan “ms-sql-brute” scripti ile kaba kuvvet saldırıları yapılabilir. Bunun için hedef üzerindeki muhtemel kullanıcı adlarını ve şifreleri içeren kelime listesine sahip olmanız gerekmektedir. Hedef üzerinde denenecek hesap bilgilerini içeren kelime listeleri hazırlandıktan sonra aşağıdaki komut kullanılarak Nmap içerisinde bulunan söz konusu script çalıştırılabilir. $ nmap -p <PORT> --script ms-sql-brute --script-args mssql.instance-all,userdb=wordlist.txt,passdb=wordlist.txt <HEDEF IP>

Yukarıdaki komut çalıştırıldığında Nmap yazılımında bulunan script hedef sisteme bağlanıp verilen hesap bilgilerini deneyecektir. Başarılı bir şekilde sonuçlanan saldırı sonrasında aşağıdaki ekran görüntüsü olduğu gibi bir çıktı alınır.


Po12oQ.png



Çıktıdan da görülebileceği üzere hedef sistem üzerindeki Microsoft SQL Serverda bulunan “sa” kullanıcı adının şifresi “BGA-123” olarak tespit edilmiştir.

4.1.2. ****SPLOIT MODÜLÜ İLE KABA KUVVET SALDIRILARI
****sploit içerisinde konu ile ilgili kullanılacak olan modül “mssql_login”’dir. Bu modül Nmap aracında bulunan scriptten daha fazla ayar yapılmasına olanak sağlar böylece daha etkin saldırılar yapılabilir.
****sploit üzerinde modül aktif edilip “show options” komutu çalıştırıldığında, modül tarafından istenen ayarlar listelenir. Test ortamı içerisinde ayar değerlerinden olan RHOSTS, RPORT, USERNAME, PASS_FILE değerleri üzerinde değişiklikler yapılarak modül kullanılmıştır. Bu ayarlara sırasıyla hedef IP adresi, Microsoft SQL Server’ın çalıştığı port numarası, “sa” kullanıcı adı ve olası şifreleri içeren kelime listesi değerleri girilmiştir.
Modüle istenirse sadece bir kullanıcı adı veya şifre denemesi için tanımlanabileceği gibi hem kullanıcı adı için hem de şifre için kelime listeleri tanımlanabilir. Tek bir kullanıcı adı için USERNAME değeri, tek bir parola değeri için PASSWORD değeri kullanılır. Kullanıcı adları için kelime listesi tanımlanacak ise USER_FILE değeri, parolaları içeren kelime listesi tanımlanacak ise PASS_FILE değeri kullanılır.
Modülün ayarlarından olan BLANK_PASSWORDS değerinin “false” olmasına dikkat edilmelidir. Zaten bu değer varsayılan olarak gelmektedir. Değerin “false” olarak kalması, modülün deneyeceği kullanıcı adları için boş parola denemesi yapmayacağı anlamına gelmektedir.
BRUTEFORCE_SPEED ayarı ise 0 ile 5 arasında değerler almaktadır ve denemelerin hızını belirtir. Düşük hızda yapılacak denemeler genellikle daha iyi sonuçlanmaktadır. Hızlı yapılacak olan denemeler hesap kilitleme politikasına takılma ihtimalini de hızlandırır.
STOP_ON_SUCCESS ayarı, denemelerden birisi başarılı olduğu zaman sıradaki denemelerin yapılıp yapılmaması ile ilgili olan ayardır. Bu ayarın “true” olarak değiştirilmesi sızma testleri esnasında yarar sağlayacaktır. Böylelikle ilk başarılı denemede modül duracak ve kalan denemeleri gerçekleştirmeyecektir.

Gerekli ayarlar yapıldıktan sonra modül çalıştırılır. Başarılı bir şekilde sonuçlanan saldırıya ait çıktılar aşağıda verilen ekran görüntüsündeki gibi olacaktır.


MyV8yQ.png



Şekil 5 - Başarılı Kaba Kuvvet Saldırısı
Modül çıktısından da görülebileceği üzere hedef sistem üzerindeki Microsoft SQL Serverda bulunan “sa” kullanıcı adının şifresi “BGA-123” olarak tespit edilmiştir.

4.2. MAN IN THE MIDDLE SALDIRISI İLE HESAP ELE GEÇİRME
Ortadaki adam saldırısı ile ağ içerisinde bulunan Microsoft SQL Server’a ait giriş bilgileri elde edilebilir. ****sploit modülü kullanılarak gerçekleştirilen bu saldırı türünde hedefe sahte bir Microsoft SQL Server hizmeti verilir ve bu şekilde hedefin hesap bilgi elde edilmeye çalışılır.
Saldırıya başlamadan önce işletim sistemi üzerinde IP Forwarding (IP Yönlendirme) aktif hale getirilmesi gerekmektedir. Aşağıdaki komut ile bu işlem kolayca yapılabilir. $ echo 1 > /proc/sys/net/ipv4/ip_forward
IP Forwarding aktif hale getirildikten sonra Kali Linux üzerinde kurulum ile beraber gelen “arpspoof” aracı kullanılarak hedef ile sunucu arasına girilmiştir. Bunun için aşağıdaki komutlar kullanılabilir. $ arpspoof -i eth0 -t <SQL SERVER IP> <KURBAN IP>
$ arpspoof -i eth0 -t <KURBAN IP> <SQL SERVER IP>

Yukarıdaki komutları çalıştırdıktan sonra ****sploit üzerinde ilgili modülün ayarlarının yapılıp çalıştırılması gerekir. Bunun için aşağıda verilen komut kullanılarak ilgili modül aktif hale getirilir ve devamında “SRVPORT” değerine port numarası girilir. Son olarak modül aktif hale getirilir.

b2VZ2d.png
 
Son düzenleme:
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Ü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.