War of SQL Impact (WarSQLi-v1.0) – SQL Audit Tool
Merhaba arkadaşlar. Birkaç zamandır bazı güvenlik araçları için geliştirmeler yapmaktayım. Çeşitli kurum ve kuruluşlara “Penetrasyon Testi” hizmetleri veren “Siber Güvenlik” uzmanı ve “Bilgi Güvenliği” uzmanı arkadaşlarımın işlerini kolaylaştırmak için otomatize araçların eksikliği fark ettim. Bu eksikliğin giderilmesi için ihtiyaç duyulan işlevsel ve hataların giderildiği bu araçlar ile hem zaman tasarrufu hem de işlerin kolaylaştırılmasını amaçlamaktayım.
Penetrasyon testlerinde en çok ihtiyaç duyulan stabil araçlardan biri de şüphesiz “SQL Audit” araçlarıdır. Bu noktada ihtiyaçların giderilmesi için WarSQLi programını yazmaya karar verdim.
WarSQLi; “SQL” sunucularında (MS-SQL, MySQL, PostgreSQL) bulunan zayıf şifre denemelerini gerçekleştirmek üzere geliştirilmiştir.
Download: http://www.eyupcelik.com.tr/CehLabs/WarSQLi/WarSQLiCurrent.rar (Programı indirmek için Sağ Click’leyip Farklı Kaydet’i seçin)
Programı indirdikten sonra gerekli kurulumları tamamlayın.
Program ilk açıldığında Resim-01’deki gibi görünecektir. Program ilk çalıştırıldığında versiyon kontrolü yapacaktır. Yeni versiyonunun yayınlanması halinde sizi ilgili indirme adresine yönlendirecektir.
IP Aralığı: Bu kısımda tarama yapmak istediğiniz IP adreslerinin aralığını belirtiniz. IP adresi: 192.168.1.1, Aralık: 255 olarak belirttiğinizde 192.168.1.1 ip adresinden 192.168.1.255 ip adresine kadar tarama gerçekleştirecektir. Eğer sadece bir IP adresi belirtmek isterseniz, Aralık kısmına taramak istediğiniz ip adresinin son oktetini yazınız. Örneğin, sadece 192.168.1.1 ip adresini tarayacaksanız IP Adresi kısmına 192.168.1.1, Aralık kısmına 1 yazmanız yeterli olacaktır. Aralık belirtmeden tarama gerçekleştiremezsiniz.
SQL Server Türü: Bu kısımda taramak istediğiniz SQL Server tipini belirtiniz. Varsayılanda “Otomatik Bul” seçeneği aktiftir. Fakat büyük aralıklarda taramalar gerçekleştirecekseniz eğer, taramak istediğiniz SQL Server tipini kendiniz belirleyiniz.
Tarama Türü: Bu kısım varsayılan değerlerle SQL sunucuları taramak için geliştirilmiştir.
Tarama Seçenekleri: Bu kısım SQL bağlantılarını gerçekleştirmek için kullanılacak milisaniye cinsinden değerlerdir. Bu değerleri network yoğunluğuna göre düzenleyebilirsiniz.
Tespit Edilen IP Adresleri: Bu kısım, SQL sunucusu tespiti gerçekleştirildikten sonra bulunan SQL sunucularının depolandığı ve zayıf şifre testlerinin gerçekleştirileceği IP adreslerini barındırmaktadır.
Tek IP: Bu seçenek SQL sunucularının IP adresinin bilinmesi halinde işlemleri hızlandırmak için geliştirilmiştir. Eğer bildiğiniz bir adreste SQL sunucusu yayın yapıyorsa IP adresini ve Portunu belirttikten sonra Ekle diyerek IP’yi ekleyebilirsiniz.
192.168.1.8 IP adresi için yaptığımız taramada 2 Adet SQL sunucusu tespit edildi. Tespit edilen sunucular sağ tarafta listelendikten sonra “Devam” butonu aktif olacaktır. Devam butonunu tıklayıp Audit kısmına geçebiliriz.
Devam’ı tıkladıktan sonra Resim-03’teki gibi bir ekran ile karşılaşacağız. Audit testleri gerçekleştirilecek olan SQL sunucuları sol tarafta bulunan “Tespit Edilen IP Adresleri” kısmında yer almaktadır.
Audit Metodu
- Zayıf Şifre Testi – Hızlı: Bu seçenek tespit edilen SQL sunucuları için 72 adet en çok kullanılan şifreyi test edecektir.
- Zayıf Şifre Testi – Genişletilmiş: Bu seçenek tespit edilen SQL sunucuları için 1056 adet en çok kullanılan şifreyi test edecektir.
- Sabit Kullanıcı / Şifre Listesi: Bu seçenek belirleyeceğiniz sabit bir kullanıcı için (“sa”, “root”, “postgres” vb.), belirteceğiniz şifre dosyasındaki şifreleri test edecektir.
- Sabit Şifre / Kullanıcı Listesi: Bu seçenek belirleyeceğiniz bir şifreyi (123456, 1234 vb), yükleyeceğiniz kullanıcı listesi için test edecektir.
- Kullanıcı Listesi / Şifre Listesi: Bu seçenek belirteceğiniz kullanıcı ve şifre dosyalarını SQL sunucularında test edecektir.
Test etmek istediğimiz metodu seçtikten sonra “Başlat”ı tıklayarak Audit testini başlatabilirsiniz.
Not: Exploit menüsünde bulunan “Veritabanlarını İncele” ve “SQL Kullanıcısı Ekle” seçenekleri şifreler bulunduktan sonra aktif olacaktır.
Not2: Taramayı başlattığınızda eğer MS-SQL sunucusu tespit etmişseniz, MS-SQL için Instance adlarını bulunup sonra test başlatılacaktır. Bu işlem network yoğunluğuna bağlı olarak yaklaşık 30-45 saniye sürebilir.
Tarama gerçekleştirildikten sonra bulunan şifreler sağ taraftaki Sonuçlar kısmında görünecektir. Veri tabanının içeriğini görmek için Exploit menüsünden uygun SQL sunucu tipini (MS-SQL, MySQL) seçerek “Veri Tabanlarını İncele” yi seçerek, SQL sunucusunda bulunan veri tabanlarına, tablolara ve datalara erişebilirsiniz.
Veri tabanları, tablolar ve datalar Resim-05’teki gibi görünecektir.
Şifresi bulunan SQL sunucularına kullanıcı eklemek için Exploit menüsünde bulunan “SQL Kullanıcısı Ekle” menüsünü kullanabilirsiniz.
SQL kullanıcısı Resim-06’daki gibi eklenebilir.
Programda tespit ettiğiniz hataları lütfen info[at]eyupcelik.com.tr adresine göndererek bir sonraki versiyonda düzeltilmesine yardımcı olunuz.
Güvenli günler.