TEKNOLOJİ : Oracle Veritabanlarına Yönelik Temel Saldırılar ve Korunma Yöntemleri


Abdulkerim Demir, Nevzat Pınar, TÜBİTAK BİLGEM
Oracle veritabanı kurumsal bilgi işlem altyapılarında performans ve güvenilirliği nedeniyle sıklıkla tercih edilmektedir. Dolayısıyla üzerinde bulunan olası zafiyetler saldırganlar tarafından kolayca exploit edilip veritabanına sızılabilmektedir. Bu yüzden olası zafiyetlere karşı korunma için güvenlik testlerine tabi tutulması önerilmektedir. Bu yazı da bir Oracle veritabanı üzerinde Metasploit Framework kullanılarak adım adım temel bir saldırının nasıl gerçekleştirilebileceğini ve buna karşı alınabilecek önelmler anlatılacaktır.

IP/Port ve Versiyon Keşfi

Veritabanlarının IP/Port ve uygulama sürümleri Nmap aracı ile kolayca belirlenebilir. Veritabanı listenerı default olan 1521 numaralı portu kullandığında, bu bilgi daha da kolay elde edilebilir. Veritabanının bu şekilde kolayca keşfedilmemesi için, listenerın default olarak kullandığı 1521 numaralı portu başka bir port numarası ile değiştirilmelidir. Bu işlem veritabanının keşfini biraz olsun zorlaştırmaktadır. Oracle 11g sürümü ile, bu şekildeki bir taramayla versiyon bilgisinin elde edilmesinin önüne geçmiştir.

Nmap aşağıdaki opsiyonları ile kullanıldığında hedef sunucu üzerindeki aktif portları ve bu portları dinleyen servislerin sürümlerini belirleyebilmektedir.

#nmap –sT –sV –n –Pn –top-ports 2000 hedef IP

SID Değerinin Belirlenmesi

Veritabanına bağlantı kurabilmek için SID değeri bilinmelidir. Bu değeri öğrenebilmek için keşfedilmiş bir veritabanına sözlük (dictionary attack) atağı yapılır. Özellikle, kurulum sırasında SID değeri güçlü bir şekilde atanmalıdır. Kurulum dökümanlarında bulunan veya “test, orcl” gibi çok kullanılan değerler verilmemelidir. Çünkü SID tespiti için bilindik değerlerden oluşan bir sözlük kullanılmaktadır. Ayrıca SID değerleri genelde 3-4 haneli olduğu ve sadece sayı ile harf içerdiği için sözlüğün bütün olası SID değerlerini içerecek şekilde oluşturulması mümkündür. Bu sözlük içeriği ne kadar kuvvetli ise başarı oranı o derece yüksek olmaktadır. Dolayısıyla güvenlik açısından önerilen, SID değerlerinin kurulum aşamasında tahmini zor olacak şekilde atanması, şayet kurulum yapılmış ise değiştirilmesidir. Değiştirmeyle ilgili detaylı bilgi [1] nolu referanstan alınabilir.

Şayet önlem alınmazsa saldırgan şu şekilde saldırıyı gercekleştirebilir.

Bağlantı kurabilmek için gerekli olan SID parametresi sözlük (dictionary attack) atağı ile elde edilebilmektedir. Bunun için Metasploit içerisindeki sid_brute modülü kullanılabilir. Öncelikle Metasploit konsolu aşağıdaki komutla açılır.

#msfconsole

Bahsedilen modülün kullanımı için aşağıdaki komut girilir.

msf>use auxiliary/scanner/oracle/sid_brute

Modülün kullanım seçeneklerini görmek ve hakkında detaylı bilgi edinmek için info komutu kullanılabilir.

Özelliklerden de görüldüğü üzere ayarlanması gereken bazı parametreler bulunmaktadır. Bunların başında hedef IP ve port bilgilerinin sırasıyla RHOSTS ve RPORT değişkenlerine atanması gerekmektedir. Varsayılan olarak görüldüğü üzere /opt/metasploit/msf3/data/wordlists/sid.txt sözlüğü kullanılmaktadır. Bunun içeriği değiştirilebileceği gibi varsa başka bir sözlük dosyası da kullanılabilir. Örnekte yapılan ayarlar şu şekildedir:

Uygun ayarlar gerçekleştirildikten sonra run komutu ile modül çalıştırılabilir. Modül çıktısı aşağıdaki gibi olmaktadır.

Burada belirlenen SID değerlerinden TSH1 sonraki adımda kullanılacaktır.

Varsayılan Hesapların Belirlenmesi

Bu aşamada veritabanı üzerindeki kullanıcılara yönelik sözlük atağı gerçekleştirilir. Oracle veritabanı ile birçok varsayılan kullanıcı hesabı gelmektedir. Özellikle kurulum esnasında varsayılan olarak gelen hesapların açık bırakıldığı veritabanlarında, ciddi oranda başarılı olabilmektedir. Kullanılan sözlük ne kadar kuvvetliyse başarı oranı o derece yüksek olmaktadır. Önlem olarak bu hesaplardan kullanılanların şifreleri değiştirilmeli kullanılmayanlar ise kilitlenmeli ya da kaldırılmalıdır.

Şayet yukarıda bahsedilen önlemler alınmazsa saldırgan şu şekilde saldırıyı gerçekleyebilir;

Metasploit içerisinde mevcut olan modüllerden auxiliary/admin/oracle/oracle_login modülü kullanılabilir.Örnekte kullandığımız hedef sistemin IP adresi ve belirlenen SID değeri aşağıdaki şekilde girilebilir.

msf>use auxiliary/admin/oracle/oracle_login

msf auxiliary(oracle_login)>set RHOST 192.168.1.90

msf auxiliary(oracle_login)>set SID TSH1

Parametreler belirlendikten sonra info komutu ile modülün son durumu aşağıdaki gibi olmaktadır.

run komutu ile modül çalıştırıldığında çıktı aşağıdaki gibi olmaktadır.

Çıktıdan da görülebileceği üzere dbsnmp/dbsnmp ve scott/tiger kullanıcı adı&parola bilgileri ile erişim sağlanabileceği görülmektedir.

Açıklıktan Faydalanılarak Hak Yükseltme

Erişim sağlayabilecek bir kullanıcı adı&parola bilgisine sahip olunduktan sonra, Oracle veritabanındaki açıklıklardan yararlanılarak yetkisiz hak yükseltilip DBA olunabilmektedir. Bu yüzden, Mümkün olduğu kadar varsayılan olarak gelen kullanıcılar silinmeli ya da kilitlenmelidir. Kullanılanlar var ise mutlaka parolaları tahmin edilemeyecek zorlukta olacak şekilde değiştirilmelidir. Önlem olarak veritabanları için yayınlanan yamalar zamanında geçilmeli ve en güncel versiyonlar üzerinde çalışmaya önem verilmelidir.

Şayet yukarıda bahsedilen önlemler alınmazsa saldırgan şu şekilde saldırıyı gerçekleyebilir;

Bunun için Metasploit içerisindeki auxiliary/sqli/oracle/ altındaki modüller açıklık ve versiyon bilgisine göre kullanılabilir. Örnekte kullandığımız hedef sistem için auxiliary/sqli/oracle/dbms_export_extension modülü kullanılabilir. Modül ve hakkındaki bilgiler aşağıdaki gibidir.

İlgili parametrelere uygun değerler girilir.

>set RHOST 192.168.1.90

>set SID TSH1

>set DBUSER SCOTT

>set DBPASS TIGER

Parametrelere girilen değerler küçük/büyük harf duyarlı olduğu için dikkat edilmesi gerekmektedir.

run komutu ile birlikte modül çalıştırılır. Çıktı aşağıdaki gibi olmaktadır.

Bu adım sonucunda ele geçirilmiş bir kullanıcı adı&parola bilgisi ile yüksek haklara sahip bir kullanıcı oluşturulabildiği görülmüştür.

Doğrulama

Son olarak aşağıdaki komutlar ile hakkı yükseltilen kullanıcının veritabanına bağlanması ve yetki seviyesinin gösterimi yapılabilir.

Sqlplus scott/ tiger@192.168.1.90/TSH1

SQL> select * from user_role_privs;

Sonuç olarak, örnekten de görülebildiği gibi temel bazı yöntemler ile kritik veriler kolay bir şekilde saldırganların eline geçebilir. Aynı şekilde alınabilecek bazı temel önlemler ile bu saldırıların önüne geçmek mümkündür.

Etiketlendi:, , , ,

Bir Cevap Yazın

Please log in using one of these methods to post your comment:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Connecting to %s

İSTİHBARAT ALANI

Sınırsız, Seçkin, Sansürsüz, Kemalist Haber Blogu

Derin İstihbarat

strateji, güvenlik, araştırma, istihbarat, komplo teorileri, mizah, teknoloji, mk ultra, nwo

İran Analiz

İran-Şii Jeostratejisi ve Dünya Genelinde İran Destekli Şii Örgütler, İran-Şii Lobisine Dair Bilgiler

İç Savaş

Strateji - Taktik - Savunma

İSTİHBARAT

Şifresiz Yayın!

%d blogcu bunu beğendi: