CyberFlow Logo CyberFlow BLOG
Oracle Pentest

Oracle Parola Hash Dump Alma Eğitimi

✍️ Ahmet BİRKAN 📂 Oracle Pentest

Bu eğitimde, Oracle veri tabanında parola hash dump alma yöntemleri detaylı bir şekilde ele alınacaktır.

Oracle Parola Hash Dump Alma Eğitimi

Oracle veri tabanında kullanıcı parolalarının nasıl hash edildiğini ve bu hash'lerin nasıl alınacağını öğrenin. Eğitim, sızma testlerinde kritik adımları incelemektedir.

Giriş ve Konumlandırma

Siber güvenlik alanında yapılan çalışmalar, sürekli gelişen tehditler karşısında güvenlik önlemlerini yükseltmeyi hedeflemektedir. Bu bağlamda, Oracle veri tabanı üzerinde gerçekleştirilecek sızma testleri ve parola hash dump alma işlemleri, bilişim güvenliği uzmanları için kritik bir öneme sahiptir. Bu yazıda, Oracle veri tabanlarında kullanıcı parolalarının nasıl güvenli bir şekilde döküm alınabileceği ve bu sürecin siber güvenlik açısından neden bu kadar önemli olduğu ele alınacaktır.

Oracle Parola Hash Dağıtımının Önemi

Oracle veri tabanları, kullanıcı bilgilerini güvenli bir biçimde saklamak için farklı hash algoritmaları kullanır. Parola özetleri (hash'ler), bu algoritmalar aracılığıyla oluşturularak sistem tablolarında saklanır. Sızma testlerinde, bu hash'lerin elde edilmesi, potansiyel güvenlik açıklarını tespit etmeye yönelik ilk adımdır. Zayıf ve tahmin edilebilir parolalar, siber saldırganların hedef olarak seçtiği noktalar olduğundan, bu bilgilerin özenle ele alınması gerekmektedir.

Sızma testleri, bilişim sistemlerinin güvenliğini değerlendirmek için gerçekleştirilen simüle edilmiş saldırılardır. Bu testler, organizasyonun güvenlik açıklarını belirlemek ve yapılacak iyileştirmeler için veri sağlamak amacıyla yapılır. Parola hash'lerinin döküm alınması, bu testlerin önemli bir parçasıdır. Kullanıcı parolalarının sızdırılması durumunda, organizasyonun hem maddi hem de manevi kayıplar yaşaması kaçınılmazdır. Bu nedenle, Oracle veri tabanları üzerinde hash dump alma süreci, güvenliğin sağlanması adına kritik bir adımdır.

Sızma Testlerinin Teknik Bağlamı

Oracle veri tabanında çeşitli sürümler ile birlikte benimsenen parola saklama algoritmaları da bu sürecin karmaşıklığını artırmaktadır. Örneğin, eski sürümler DES tabanlı algoritmalar kullanırken, daha yeni sürümler SHA-1 ya da SHA-2 tabanlı (tuzlanmış) yapılar tercih edilmektedir. Her bir sürüm, bu tür hash'leri farklı formatlarda sakladığı için, bu farklılıkların anlaşılması ve doğru tekniklerin uygulanması önemlidir.

SELECT name, password FROM sys.user$;

Yukarıdaki SQL sorgusu, temel olarak kullanıcı adı ve parola hash değerlerini listelemekte kullanılan bir örnektir. Ancak bunun yanında, yalnızca aktif kullanıcıların hedeflenmesi, zaman verimliliğini artıracak bir yaklaşım olarak değerlendirilmektedir. Bunun için, kullanıcıların hesap durumlarına ve aktifliklerine dikkat edilmesi gereken bir aşamadır.

Hash Kırma Araçları ve Stratejileri

Elde edilen hash değerlerinin çözülmesi için çeşitli araçlar mevcuttur. Örneğin, John the Ripper ve Hashcat gibi popüler araçlar, hash değerlerinin kırılmasına yönelik olarak kullanılabilmektedir. Bu araçlar, brute-force ve dictionary attack yöntemleri ile elde edilen verileri analiz ederek parolaları kırmayı hedeflemektedir.

Bu noktada, hash dump alınmadan önce varsayılan parolaların kontrol edilmesi de önemlidir. Oracle veri tabanlarında sistemin gördüğü varsayılan parolalar, sızma testleri sırasında büyük kayıplara neden olabilir. Dolayısıyla, bu tür parolaların test öncesinde belirlenmesi ve gerekirse güncellenmesi sağlıklı bir strateji olacaktır.

Süreç Yönetimi ve Güvenlik

Parola hash dump alma sürecinde gerçekleştirilen işlemlerin ardından, test sırasında üretilen logların ve sorguların dikkatlice temizlenmesi de gerekmektedir. Bu, sızma testinin profesyonellik boyutunu artıracak önemli bir adımdır. Ayrıca, karmaşık parola politikalarının uygulanması, hash'lerin kırılmasını zorlaştıran en etkili yöntemlerden biridir. Parolaların karmaşıklığı, hem kullanıcı hem de sistem güvenliği açısından kritik bir faktördür ve bu tür politikaların benimsenmesi özverili bir yaklaşım gerektirir.

Düzenli sızma testleri, sistemin güvenliğini sağlamak için sürekli bir ihtiyaçtır. Oracle veri tabanı kullanıcılarının parola hash'lerini döküm alma süreci, bu testlerin ayrılmaz bir parçası olarak öne çıkmaktadır. Bu yazı, okuyucuların bu sürecin yönetimi, uygulanabilir yöntemler ve stratejiler hakkında daha fazla bilgi edinmesi için bir temel niteliği taşımaktadır. Siber güvenlik alanında bilgi birikiminizi artırırken, bu tür teknikleri doğru bir biçimde kullanmak ve geliştirmek, güvenlik risklerini en aza indirgeyecektir.

Teknik Analiz ve Uygulama

Kullanıcı Parola Özetlerini Görüntüleme

Oracle veri tabanında kullanıcıların parola hash'leri, sistem tablolarında saklanmaktadır. Parola hash'lerinin alınması, güvenlik açığı tespiti için kritik bir adımdır. İlk adımda, sys.user$ tablosundan kullanıcı adı ve parola hash’lerini almak için aşağıdaki SQL sorgusu kullanılabilir:

SELECT name, password FROM sys.user$;

Bu sorgu, veri tabanındaki tüm kullanıcıların adlarını ve bunlara karşılık gelen parola hash'lerini listeleyecektir.

Oracle Hash Algoritmaları

Oracle sürümleri arasında parola saklama algoritmalarında önemli farklılıklar bulunmaktadır. Eski sürümlerde DES tabanlı hash'ler kullanılırken, modern sürümlerde SHA tabanlı 'salted' yapı seçilmektedir. Örneğin:

  • 10G Hash: DES tabanlı, 16 karakterli bir yapıdır.
  • 11G Hash: SHA-1 algoritmasını kullanarak oluşturulmuş ve 'S:' ön ekine sahip bir tuzlanmış yapıdır.
  • 12C Hash: SHA-2 algoritması (SHA-512) kullanılarak oluşturulan ve 'T:' ön eki taşıyan yüksek güvenlikli bir yapıdadır.

Bu hash yapılarının bilgisi, zayıf parolaların tespit edilmesinde yardımcı olur.

Kritik Sistem Tablosu

Parola hash'lerinin saklandığı çekirdek tablo sys.user$ olarak bilinir ve bu tabloya erişim, SYS yetkisi gerektirmektedir. Bu kritiklik, sistemin güvenliğini sağlamak için son derece önemlidir. Erişimi kısıtlama stratejileri geliştirerek saldırganların bu tabloya ulaşmasını zorlaştırmak, güvenlik politikalarının önemli bir parçasını oluşturur.

Modern Hash Formatlarını Ayıklama

Modern Oracle sürümlerinde, SPARE4 sütunu birden fazla hash formatını barındırmaktadır. Kullanıcıların bu sütundan hangi formatta hash verisi olduğunu ayıklamak için aşağıdaki sorgu kullanılabilir:

SELECT name, spare4 FROM sys.user$ WHERE spare4 IS NOT NULL;

Bu sorgu, yalnızca hash değerleri olan kullanıcıları listeleyerek pentest sürecinde zaman kazanmanızı sağlar.

Hash Kırma Araçları

Dump edilen hash'lerin çözülmesi için yaygın olarak kullanılan araçlar arasında John the Ripper ve Hashcat yer almaktadır. John the Ripper, Oracle formatını destekleyen bir açık kaynaklı hash kırma aracıyken, Hashcat GPU gücünden faydalanarak işlem hızını artırmak için tercih edilmektedir. Bununla birlikte, ODAT (Oracle Database Attacker Tool) gibi araçlar, otomatik olarak hash dump alma işlemlerini gerçekleştirebilir.

Güvenlik Yapılandırması

Oracle sisteminde güvenlik yapılandırması kritik bir öneme sahip olup, sistem tablolarına erişimin kısıtlı olması, saldırı yüzeyinin daraltılmasına yardımcı olmaktadır. Erişim kontrolüne yönelik belirli parametreler, bu açıdan göz önünde bulundurulmalıdır. ACCESSIBILITY gibi parametreler, yetkisiz erişimi sınırlamak için kullanılabilir.

Sadece Aktif Kullanıcıları Hedefleme

Sızma testlerinde, zaman kazanmak adına yalnızca aktif kullanıcıların hash'lerini target alarak dışarı aktarım yapmak işlevsel bir yaklaşımdır. Bunun için, aşağıdaki sorgu ile yalnızca açık durumdaki kullanıcıların verilerini çekmek mümkündür:

SELECT u.name, u.spare4 FROM sys.user$ u JOIN dba_users d ON u.name = d.username WHERE d.account_status = 'OPEN';

Bu işlem, gereksiz verilerin elde edilmesini önleyerek kaynakların daha verimli kullanılmasını sağlar.

Hash Dosyası Formatı

Kırma araçlarının dump edilen veriyi doğru biçimde okuyabilmesi için belirli bir formatta (örneğin, username:hash) saklanması gerekmektedir. Kullanıcı adı ve hash değerini birbirinden ayıran iki nokta : karakteri, bu bağlamda önemli bir rol oynamaktadır.

Varsayılan Şifre Kontrolü

Test işlemleri sırasında, Oracle kurulumlarında gelen varsayılan şifrelerin kontrol edilmesi büyük önem taşımaktadır; bu tür zayıf parolalar, saldırganlar için potansiyel bir hedef oluşturmaktadır. Örneğin, aşağıdaki sorgu ile varsayılan şifreleri kontrol etmek mümkündür:

SELECT username FROM dba_users WHERE username IN ('SYSTEM', 'MANAGER');

Bu sorgu, yaygın kullanılan varsayılan hesapları tespit etmek için etkili bir yöntemdir.

Profil Bilgilerini Çekme

Kullanıcıların parola politikalarını anlamak, başarılı bir hash kırma stratejisi geliştirmede yardımcı olur. Parola karmaşıklığı ve zaman aşımı süresi gibi bilgileri th*esağlamak amacıyla aşağıdaki sorgu kullanılabilir:

SELECT username, profile FROM dba_users;

Pentest Sonrası Temizlik

Test sonrası, sızma testlerinin izlerini temizlemek, profesyonel bir uygulamanın parçasıdır. Bunun için Purge Audit ile denetim kayıtlarının temizlenmesi ve Remove Dump File ile elde edilen hash listesinin güvenli bir şekilde silinmesi gerekmektedir. Ayrıca, Close Session aracılığıyla veritabanı bağlantısının kapatılması da önemlidir.

En İyi Savunma Yöntemi

Sonuç olarak, parolaların kırılmasını zorlaştıran en etkili yöntem karmaşık parola politikalarıdır. Sıkı parola kuralları, çeşitli karakter gruplarının kullanımı ve periyodik olarak parola değişimi, sisteminizi daha güvenli hale getirir. Bu durumu destekleyen bir güvenlik stratejisi oluşturmak, organizasyonların siber güvenlik duruşlarını güçlendirecektir.

Risk, Yorumlama ve Savunma

Risklerin Analizi

Oracle veri tabanlarında kullanıcı parolalarının hash'leri, genellikle güvenlik açıklarının belirlenmesi ve sızma testlerinde ilk adım olarak görülür. Bu hash'lerin elde edilmesi, sistemin zayıflıklarının ortaya çıkarılması açısından büyük önem taşır. Ancak, bu süreç aynı zamanda bazı riskleri de beraberinde getirir.

Yanlış Yapılandırmalar ve Zafiyetler

Yanlış yapılandırılmış bir Oracle sistemi, saldırganlar için büyük bir fırsat sunar. Örneğin:

  • Kritik Parametrelerin Yanlış Ayarlanması: Oracle sistemlerinde, erişim kontrollerinin yanlış ayarlanması, yetkisiz kullanıcıların veritabanı tablolarına erişimine olanak tanıyabilir. Bu durum, kullanıcı parolalarının hash'lerine ulaşmalarına sebep olabilir. Şifreleme yöntemleri ve kullanıcı erişim izinleri dikkatlice yapılandırılmadığında, parolaların ele geçirilmesi oldukça kolaylaşır.

  • Eski Hash Algoritmaları: Eski Oracle sürümlerinin DES tabanlı hash algoritmaları, günümüzdeki modern kırma yöntemleri karşısında oldukça savunmasızdır. Örneğin, 10G sürümü parola hash'lerini sadece DES ile sakladığı için, saldırganlar bu hash'leri kırmakta kolaylık yaşayabilir.

Elde Edilen Verilerin Anlamı

Sızma testlerinde elde edilen veri, yalnızca hash'lerin alınmasıyla sınırlı değildir. Aşağıda, bu verilerin güvenlik yolundaki anlamını açıklayan bazı önemli noktalar bulunmaktadır:

  • Kullanıcı Bilgileri: Dump işlemi sırasında elde edilen bilgiler, sistemdeki kullanıcıların durumunu analiz etmek için kullanılabilir. Özellikle, "kilitli" olmayan kullanıcıların hash'lerinin toplanması, zamanı etkili kullanmak adına önemlidir.

  • Hizmet ve Topoloji Belirleme: Hash dump işlemi, sızma testlerinin hangi hizmetlerin aktif olduğunun tESPİTİNE yardımcı olur. Örneğin, sistemde SQL*Net ve listener gibi aktif bağlı servisler varsa, bu bilgi saldırganların nesne keşfi aşamasında kritik rol oynamaktadır.

Savunma Stratejileri

Sistemlerin sızma testleri sırasında karşılaşılabilecek riskleri minimize etmek için uygulanabilecek bazı profesyonel önlemler şu şekildedir:

Güvenlik Yapılandırması

  1. Kritik Sistem Parametreleri: Oracle sistemlerinde kullanılan kritik parametrelerin doğru bir biçimde ayarlanması, yetkisiz erişimlerin engellenmesine yardımcı olur. Bu parametrelerin tanınması ve doğru bir yapılandırmaya sahip olması, sızma testlerinde önemli bir korunma katmanı sağlar.

  2. Karmaşık Parola Politikaları: Parola politikaları, sistemin güvenliğini artırmada oldukça etkili bir yöntemdir. Parola karmaşıklığını ve sıklıkla değiştirilmesini zorunlu kılmak, hash'lerin kırılmasını zorlaştıracaktır. Örneğin, minimum 12 karakter, büyük/küçük harf, rakam ve özel karakter kombinasyonları içeren parolalar belirlenmelidir.

Modern Araçlar ve Yöntemler

  • Brute-force ve Dictionary Attack Araçları: Oracle hash'lerinin kırılması için kullanılan araçlar, günümüzde daha da gelişmiştir. John the Ripper veya Hashcat gibi araçlar, karmaşık hash yapıları üzerinde etkili bir şekilde çalışabilir. Ancak, bu araçların doğru bir biçimde yapılandırılması ve zayıf parolaların tespiti açısından kullanılacak veri setlerinin düzenlenmesi büyük önem taşır.

  • Profil Bilgilerinin Çekilmesi: Sızma testleri sırasında, kullanıcı profilleri hakkında bilgi edinmek, saldırı stratejilerinin belirlenmesinde etkili olabilir. Bu nedenle, kullanıcı profillerine erişim sağlamak için gerekli sorguların doğru bir biçimde oluşturulması gerekir.

Pentest Sonrası Temizlik

Sızma testleri tamamlandıktan sonra, sistemde iz bırakmamak için yapılması gereken temizlik işlemleri hayati önem taşır.

DELETE FROM dba_audit_trail WHERE timestamp > SYSDATE - 1; -- Son 1 günde yapılan denetim kayıtları silinir

Ayrıca, "hash dump" dosyaları ve geçici kurulum dosyalarının sistemden tamamen silinmesi gerektiği unutulmamalıdır.

Sonuç

Oracle veri tabanlarından parola hash'lerinin dump edilmesi, sızma testi süreçlerinin önemli bir parçasıdır. Ancak bu süreçte ortaya çıkan riskler, bilinçli önlemlerle en aza indirilebilir. Yanlış yapılandırmalar ve zayıf parolalar, yapılan sorguların ve kullanılan araçların etkinliği ile belirlenebilir. Güvenlik yapılandırmaları ve karmaşık parola politikaları, sistemlerin daha dayanıklı hale gelmesine yardımcı olurken, yapılan sızma testleri esnasında elde edilen bulguların analizi, sistemin genel güvenliğini artırmak için kritik bir rol oynar.