Pentester için MSSQL: NetExec

 

Pentester için MSSQL: NetExec

NetExec (nxc), yaygın olarak penetrasyon test uzmanları ve red team üyeleri tarafından kullanılan CrackMapExec'in (CME) modern bir halefi olarak geliştirilen güçlü bir ağ istismar aracıdır. Daha önce CrackMapExec, mpgn tarafından aktif olarak sürdürülüyordu, ardından NetExec popüler bir tercih olarak ortaya çıktı. Bu makalede, bu aracın parola püskürtme, komut yürütme, dosya yükleme ve daha birçok görevi otomatikleştirmek için kullanışlı olabileceği bölümlerin çoğunu ele alacağız. Burada, nxc aracını kullanarak MSSQL sunucusunda test vakalarını gerçekleştireceğiz.

İçindekiler

  • Laboratuvar Kurulumu
  • Şifre spreyi
  • Hash'leri kullanarak şifre püskürtme
  • Kimlik Doğrulamayı Kontrol Et
  • Komut yürütme
  • Karmalarla komut yürütme
  • Dosya yükleme ve indirme
  • Ayrıcalık yükseltme
  • Farklı bir port numarasında numaralandırma
  • Çözüm

Laboratuvar Kurulumu

Hedef Makine: Windows 10 (192.168.31.126)

Saldırgan Makinesi: Kali Linux (192.168.31.141)

Gösterim amaçlı olarak, burada tüm test durumlarını göstermek için MSSQL hizmetini kullanacağız. MSSQL sunucusunu hedef makineye zaten kurduk ve çalışan örnek için birkaç kullanıcı oluşturduk.

Şifre spreyi

Doğru kimlik bilgilerini kontrol etmek için, users.txt olarak kullanıcı adları ve pass.txt olarak parolalar sözlüğü oluşturacağız . Sözlükler oluşturulduktan sonra, doğru kullanıcı adı ve parolayı kontrol etmek için parola spreyi saldırısını gerçekleştirebiliriz. Bu spreyi MSSQL sunucusunda gerçekleştireceğiz. Bunu yapmak için komut şu şekilde olacaktır:

nxc mssql 192.168 . 31 . 126 -u kullanıcılar. txt -p geçiş. txt --başarılı-olarak-devam-et

Yerel kimlik doğrulamayı kullanarak parola püskürtme işlemini gerçekleştirmek için, kimlik doğrulama girişimlerinin MSSQL sunucusundaki yerel hesaplara karşı yapılması gerektiğini belirten –local-auth bayrağını kullanabiliriz    .

nxc mssql 192.168 . 31 . 126 -u kullanıcılar. txt -p geçiş. txt --başarılı-olarak-devam-et --yerel-kimlik doğrulama

Hash'leri kullanarak şifre püskürtme

Bir karma elde ettiysek ancak karmanın hangi kullanıcıya ait olduğundan emin değilsek de aynısını yapabiliriz. Burada bir kullanıcı listesi geçireceğiz ve elde edilen karma değerini -H bayrağında vereceğiz.

nxc mssql 192.168 . 31 . 126 -u kullanıcılar. txt -H 64FBAE31CC352FC26AF97CBDEF151E03 --başarı durumunda devam et

Şifre püskürtme işlemini her kullanıcı adının yalnızca listedeki karşılık gelen şifresiyle kullanılacağı şekilde gerçekleştirmek istiyorsak, o zaman –no -bruteforce bayrağını kullanabiliriz. Kullanıcı adı-şifre çifti eşleşirse, devam eder, aksi takdirde diğer olası kombinasyonları denemeden bir sonraki çifte atlar.

nxc mssql 192.168 . 31 . 126 -u kullanıcılar. txt -p geçiş. txt --continue-on-success --no-bruteforce

Kimlik Doğrulamayı Kontrol Et

MSSQL'e kimlik doğrulaması yapmak için iki yöntem kullanabiliriz, yani windows veya local , varsayılan kimlik doğrulama windows'tur. Yerel kimlik doğrulamasını kullanmak için komuta şu bayrağı –local-auth ekleyin. Burada yerel kimlik doğrulamasını sa kullanıcısı olarak gerçekleştirmeye çalışıyoruz.

nxc mssql 192.168 . 31 . 126 -u sa -p 'Parola@123' --local-auth

Daha önce de belirtildiği gibi, Windows kimlik doğrulamasını da test edebiliriz. Varsayılan mod Windows kimlik doğrulaması olarak ayarlandığından, Windows kimlik doğrulaması gerçekleştirmek için herhangi bir kimlik doğrulama bayrağı vermemize gerek yoktur.

nxc mssql 192.168 . 31 . 126 -u yönetici -p 'Ignite@987'

nxc kullanılarak DB Komutu yürütme

-q bayrağını verip ardından veritabanı sorgusunu belirterek veritabanını sorgulamak için nxc'yi kullanabiliriz . Bunu yapmak için komut şu olacaktır:

nxc mssql 192.168.31.126 -u sa -p ' Parola@123' --local -auth -q 'master.dbo.sysdatabases'den adı SEÇ;'

nxc kullanarak komut yürütme

Sistem düzeyindeki komutları gerçekleştirmek için, komutları yürütmek için MSSQL xp_cmdshell'i kullanan -x bayrağını kullanabiliriz . İhtiyacımıza bağlı olarak burada hem windows hem de yerel kimlik doğrulamayı kullanabiliriz.

nxc mssql 192.168.31.126 -u sa -p ' Parola @123' --local -auth -x ipconfig
nxc mssql 192.168 . 31 . 126 -u yönetici -p 'Ignite@987' -x ipconfig

Karmalarla komut yürütme

Bir şekilde yönetici kullanıcısının karmasını aldığımızı ve sistem seviyesi komutlarını MSSQL kullanarak yürütmek istediğimizi varsayalım, bu yüzden bunu gerçekleştirmek için nxc'yi kullanabiliriz . İlk önce Windows kimlik doğrulamasının başarılı olup olmadığını kontrol edeceğiz ve ardından komut yürütmeyi gerçekleştirmek için -x bayrağını verebiliriz.

nxc mssql 192.168.31.126 -u yönetici -H 32196B56FFE6F45E294117B91A83BF38
nxc mssql 192.168.31.126 -u yönetici -H 32196B56FFE6F45E294117B91A83BF38 -x ipconfig

nxc kullanarak dosya yükleme ve indirme

Ayrıca dosyayı hedef sisteme nxc'ye –put-file bayrağını vererek de yükleyebiliriz. Bu bayrak dosya adını alacak ve ayrıca dosyanın yüklenmesi gereken yolu da belirtecektir.

nxc mssql 192.168 . 31 . 126 -u yönetici -p 'Ignite@987' --put-file dosya.txt C:\\Windows\\Temp\\ dosya.txt

Dosyanın istenilen yere başarıyla yüklendiği görülmektedir.

Benzer şekilde, dosyayı –get-file bayrağını kullanarak da indirebiliriz . Burada indirilmesi gereken dosyanın tam yolunu ve ayrıca dosyanın bizim tarafımızda yerleştirilmesi gereken yolu belirtmemiz gerekir.

nxc mssql 192.168 . 31 . 126 -u yönetici -p 'Ignite@987' --get -file C:\\Windows\\Temp\\ dosya.txt /tmp/dosya.txt

nxc kullanarak ayrıcalık yükseltme

Burada , nxc'nin mssql_priv modülünü kullanarak geçerli kullanıcının ayrıcalık yükseltmesi yapmasına izin verilip verilmediğini kontrol edeceğiz . -M bayrağından sonra modül adını açıkça belirtebiliriz. Burada ayrıcalık yükseltmesini kontrol etmek için raj kullanıcısını kullanacağız . Bu, Windows kimlik doğrulamasını gerçekleştirdiğimiz ve ayrıcalık yükseltmeyi denediğimiz durumlarda kullanılabilir . Komutun çıktısı, raj kullanıcısının bir kullanıcıyı taklit edebileceğini gösterir . Bir kullanıcıyı taklit etmek, o kullanıcının kimliğini ve ayrıcalıklarını geçici olarak üstlenmek anlamına gelir.

Aynı işlem, –local-auth bayrağı eklenerek yerel kimlik doğrulama kullanılarak tekrarlanabilir .

nxc mssql 192.168.31.126 -u ignite -p ' Parola@1' -M mssql_priv --local-auth

Ignite kullanıcısının yerel kimlik doğrulaması kullanarak sa kullanıcısını taklit edebildiği görülebilir , bu nedenle bir sonraki adımda ayrıcalık yükseltme işlemini gerçekleştireceğiz. Ignite kullanıcısının özellikleri kurban makinede de görülebilir.

Ayrıcalık yükseltmesi gerçekleştirmek için Metasploit framework'ünü kullanacağız. Ayrıcalık yükseltmesi gerçekleştirmek için kullanılabilen , auxiliary/admin/mssql/mssql_escalate_execute_as adında bir modül var . Modülde kullanılacak komutlar şunlardır:

yardımcı/yönetici/mssql/mssql_escalate_execute_as kullanın
rhosts'u 192.168 olarak ayarla . 31. 126
veritabanı ana bilgisayarını ayarla
kullanıcı adı ignite'ı ayarla
şifre ayarla Şifre@ 1
faydalanmak

Exploit'i çalıştırdıktan sonra, ignite kullanıcısının artık sysadmin olduğunu gösterir. Bunu kontrol etmek için, daha önce kullanılan komutu nxc'de bir kez daha çalıştıracağız . Komutun çıktısı, ignite kullanıcısının zaten bir sysadmin olduğunu gösterir . Bunu kurban makinede de ignite kullanıcısının sysadmin olduğunu doğrulayabiliriz.

 

Farklı bir port numarasında numaralandırma

Eğer MSSQL sunucusu farklı bir port numarasında çalışıyorsa, o zaman da –port bayrağını kullanarak sadece port numarasını açıkça belirterek aynı test durumlarını gerçekleştirebiliriz .

nmap -sV -p 9070 192.168 .31 .126

Görüldüğü gibi MSSQL sunucusu 9070 portunda çalışıyor. Bu yüzden aşağıdaki komutu verebiliriz:

nxc mssql 192.168 . 31 . 126 -u yönetici -p 'Ignite@987' --port 9070

Çözüm

NetExec (nxc), güvenlik uzmanları için son derece etkili ve uyarlanabilir bir araç olarak öne çıkıyor ve ağ istismarı ve istismar sonrası görevler için gelişmiş özellikler sunuyor. Kapsamlı işlevselliği, yalnızca MSSQL sunucusunda değil, diğer hizmetlerde de etkili parola püskürtme ve komut yürütme olanağı sağlıyor ve bu da onu hem penetrasyon testlerinde hem de kırmızı takım operasyonlarında önemli bir varlık haline getiriyor.

Yorum Gönder

Daha yeni Daha eski