Invoke-SqlServer-Escalate-Dbowner Powershell Betiği ile Güvenilir Olarak Yapılandırılmamış Olan MS SQL Veritabanında TRUSTWORTHY Özelliğini Kötüye Kullanarak Hak Yükseltilmesi

0
300
views
Sızma testleri sırasında, standart uygulama kullanıcısına ait yetkiler ile elde edilen MS SQL veritabanı uygulamasında hak yükseltilerek erişim sağlanamayan kaynaklara erişilmeye çalışılır. Bu yazıda bir Invoke-SqlServer-Escalate-Dbowner Powershell betiği kullanılarak, TRUSTWORTHY özelliği etkinleştirilmiş ve güvenilir olarak yapılandırılmamış olan MS SQL veritabanınında standart kullanıcı hakları, sysadmin rolü haklarına yükseltilecektir.

Pentist: Sızma Testleri ve Bilgi Güvenliği Danışmanlık Hizmetleri

Mevcut ortamda MS SQL veritabanının IP adresi 172.22.71.247; bu sunucudaki MUSTERILER ve HESAPLAR veritabanları için TRUSTWORTHY özelliği etkin; “test” kullanıcısı ise sunucu üzerinde standart bir kullanıcı olsun. MUSTERILER veritabanında “sa” ve “test” hesapları db_owner rolünde olsun.

Mevcut durumda, MSSQL sunucuda bir veritabanı TRUSTWORTHY olarak ayarlanmış iken, bu veritabanının sahibi (“sa”) yüksek yetkili (veritabanı sunucusu üzerinde yetkili) ve MS SQL Server üzerindeki standart yetkilere sahip bir kullanıcı hesabı (web uygulamasına ait bir veritabanı kullanıcısı veya test amaçlı oluşturulmuş olan “test” hesabı gibi) da bu veritabanında tam yetkili (“db_owner” rolüne sahip) olduğundan; standart yetkilere sahip olan hesap (“test”), veritabanının sahibinin yetkisi (“sa”) ile komut çalıştırılabilir. Örneğin, MSSQL sunucuda standart haklara sahip “test” kullanıcı, kendisine MSSQL sunucusu üzerinde “sysadmin” rolü verebilir. Böylece MSSQL sunucusu üzerinde hak yükseltme işlemi gerçekleştirmiş olur.

Hak yükseltme işlemi, bağlantıdaki Invoke-SqlServer-Escalate-Dbowner adlı bir Powershell betiği ile gerçekleştirilebilir. Mevcut ortamda “test” hesabının parola bilgisi “test” olarak elde edilmiş olsun. Bu bigiler ile mevcut ortamda hak yükseltilmesi sırasında modülün eklenmesi ve hak yükseltme işleminin gerçekleştirilmesi aşağıdaki gibidir:

Set-ExecutionPolicy Unrestricted
Import-Module .\Invoke-SqlServer-Elevate-Dbowner.psm1
Invoke-SqlServerDbElevateDbOwner -SqlUser test -SqlPass test -SqlServerInstance test

01

Böylece, “test” hesabı “sysadmin” rolüne sahip olmuştur.

Not:Invoke-SqlServer-Elevate-Dbowner” betiğinin adı “Invoke-SqlServer-Escalate-Dbowner” olarak değiştirilmiştir.

Bunun yanında “sysadmin” rolüne sahip yeni bir kullanıcı hesabı da oluşturulabilir.

Invoke-SqlServer-Escalate-DbOwner -SqlUser test -SqlPass test -newuser SysadminRoluVerilenYeniHesap -newPass Parola123

 

Kaynak:

https://www.siberportal.org/blue-team/securing-ms-sql-database/enabling-and-security-risks-of-trustworthy-option-of-a-database-on-a-misconfigured-ms-sql-server/
https://blog.netspi.com/hacking-sql-server-stored-procedures-part-1-untrustworthy-databases/

 

 

Pentist: Sızma Testleri ve Bilgi Güvenliği Danışmanlık Hizmetleri

CEVAP VER

Yorumunuzu giriniz
İsminizi giriniz

Bu site, istenmeyenleri azaltmak için Akismet kullanıyor. Yorum verilerinizin nasıl işlendiği hakkında daha fazla bilgi edinin.