• 28 Mart 2024 20:14

Sait ORHAN

Öğretmek için Öğrenin- Öğrenmek için Öğretin

Sql Server dersini alırken sadece kullandığımız belli başlı 3 – 4 komut vardı, SELECT, UPDATE, DELETE… Ama hep dediğimiz bir şey daha vardı “Adamlar bu kadar büyük bir programı sırf SELECT için yazmış olamaz”, öyle ya bir yüklüyoruz bilgisayarda neredeyse 10GB yer kaplıyor.

Şimdi Sql Server’ın SELECT dışında yapabildiği binlerce işlemden birini beraber görelim.

xp_cmdshell, SQL Server üzerinden cmd komut satırına komut göndermeyi ve çalıştırmaya imkan sağlayan stored prosedür. Bu özelliği sayesinde cmd ekranında yapabildiğimiz herşeyi:

  • Windows Server üzerinde yeni kullanıcı açıpi buna full yetki verilip kuruluşumuzun her türlü gizli verisi ve işlemlerine ulaşılabilir
  • “format X” komutunu göndererek Sql Server üzerinden X diskini formatlanabilir
  • Windows Server içerisine her hangi bir .exe dosyası atılarak çalıştırılabilir, bu bir keyloger da olabilir

ve daha fazlası kısaca herşeyi.

xp_cmdshell stored prosedürü varsayılan olarak güvenlik politikası olarak devre dışıdır. Prosedürü devreye almak için aşağıdaki kod çalıştırabilir veya arayüz üzerinde de işlem yapılabilir. Sql koduna ve hemen ardından arayüz adımlarına geçelim.

[sql]</p> <p>– show advanced options<br> EXEC sp_configure ‘show advanced options’, 1<br> GO<br> RECONFIGURE<br> GO<br> — enable xp_cmdshell<br> EXEC sp_configure ‘xp_cmdshell’, 1<br> GO<br> RECONFIGURE<br> GO<br> — hide advanced options<br> EXEC sp_configure ‘show advanced options’, 0<br> GO<br> RECONFIGURE<br> GO</p> <p>[/sql]

Alternatif olarak arayüz adımları:

xp_cmdshell aktifleştirme

Bu işlemler sonucunda aktifleştirme gerçekleştirilir.

xp_cmdshell komutu çalıştırıldığında dönen sonuş tek kolon ve text şeklinde olur. Çıktı vermeyen komutlar için başarılı olması durumunda 1, başarızı olması durumunda 0  sonucu döner.

Şimdi de bazı örnekler yaparak çalışma şeklini görelim.

  • Çıktı Veren Örnek
    Komut satırına ‘DIR C:\’ komutunu göndererek C:\ diski altında yer alan dosyaları gösterelim.

    xp_cmdshell ile C:\ diski altında yer alan dosyaların gösterilmesi

     

  • Çıktı Vermeyen Örnek
    Komut satırın copy komutu göndererek C:\XP\Deneme.txt dosyasını aynı klasör altına Deneme2.txt adıyla kopyalayalım.

    [sql]<br> EXECUTE sys.xp_cmdshell ‘COPY C:\XP\Deneme.txt C:\XP\Deneme2.txt'<br> [/sql]

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

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