mssqlquery – Microsoft SQL sorgu yazılımı

Platform bağımsız MSSQL sorguları yapabileceğiniz ufak bir script hazırlamıştım. Temel amacım güvenlik denetimlerinde zayıf şifreye sahip Microsoft SQL veritabanlarında, Linux üzerinden belirli sorgular çalıştırabilmekti.
SQL Query Analyzer vb yazılımların bulunmadığı durumlarda basit bir osql, isql alternatifi olarak da kullanılabilir.

Microsoft SQL query yazılımına buradan ulaşabilirsiniz. Python ile yazılmıştır. pymssql kütüphanesine ihtiyaç duymaktadır.

Örnek kullanım:

$ ./mssqlquery.py -s 192.168.0.14 -u sa
Enter password for sa:
Connected to 192.168.0.14!
mssqlquery> select name from sysdatabases
master
tempdb
model
msdb
HR
CRM
mssqlquery> select @@version
Microsoft SQL Server 2008 (SP2) – 10.0.4000.0 (Intel X86)
Sep 16 2010 20:09:22
Copyright (c) 1988-2008 Microsoft Corporation
Enterprise Evaluation Edition on Windows NT 6.0 (Build 6002: Service Pack 2)
mssqlquery>

Bahaneyle mssqlcmd yazılımını da güncelledim. Microsoft SQL brute-force yazılımı yeni pymssql kütüphanesiyle çalışmıyor. Zaten bu işi gayet iyi yapan birden fazla yazılım olduğu için pek ihtiyaç duyulmayacağını tahmin ediyorum.

mssqlcmd – Yeni sürüm duyurusu ve xp_cmdshell’i aktif hale getirme

Daha önceden yayınladığım Microsoft SQL kullanarak komut çalıştırma script’inde bazı ufak düzenlemeler yaptım.
İşlevini yerine getirmek için xp_cmdshell stored procedure’ını kullandığını iletmiştim. Peki ya xp_cmdshell devre dışı bırakıldıysa veya hedef sunucu Microsoft SQL Server 2005 sürümüyse?

Bu durumda xp_cmdshell’i yeniden devreye alabilmek için aşağıdaki yöntemleri izleyebiliriz:

  1. Microsoft SQL Server 2005 sürümünde, güvenlik nedeniyle xp_cmdshell devre dışı olarak gelmektedir. Aktif hale getirebilmek için aşağıdaki sorgunun çalıştırılması yeterlidir:

    USE master
    GO
    EXEC sp_configure ‘show advanced options’, 1
    GO
    RECONFIGURE WITH OVERRIDE
    GO
    EXEC sp_configure ‘xp_cmdshell’, 1
    GO
    RECONFIGURE WITH OVERRIDE
    GO
    EXEC sp_configure ‘show advanced options’, 0
    GO

  2. Bir güvenlik önlemi olarak, xp_cmdshell stored procedure’ı veritabanı yöneticisi tarafından kaldırıldıysa (ki Microsoft’un bunu pek de önerdiği söylenemez), tanımlamak için xpsql70.dll dosyasının sistemde bulunması yeterli. Bunun için aşağıdaki SQL sorgusunun çalıştırılması gerekir:

    EXEC sp_addextendedproc ‘xp_cmdshell’, ‘xpsql70.dll’

mssqlcmd‘nin yeni sürümünü yine aynı yerden indirebilirsiniz.

Not: mssqlcmd.py dosyasında bu komutlar comment olarak gerekli yerlere eklenmiştir. Gerektiğinde satır başlarındaki # karakteri silinerek çalışmaları sağlanabilir.
Uyarı: Yukarıda yazan SQL sorgularının çalıştırılması ile ilgili sorumluluk kabul edilmemektedir. Gerçek sistemler üzerinde çalışmadan önce, test sistemlerinde denemeler yapın.

mssqlbf – Microsoft SQL brute force yazılımı

Hazır konu Microsoft SQL’den açılmışken, yine güvenlik denetimlerinde zayıf veritabanı şifrelerini tespit etmede kullanılabilecek bir script hazırladım.

Basit bir şekilde, username ve password wordlist kullanarak, şifre deneme-yanılma (brute force) saldırısı yapabiliyor.
Daha sonradan kullanabilmek için, bulduğu kullanıcı adı ve şifreleri bir metin dosyasında arşivliyor.
Threading desteği sayesinde aynı anda birden fazla kullanıcı adı/şifre kombinasyonu deneyerek işlemi büyük oranda hızlandırabilir. Varsayılan maksimum thread sayısını 5 olarak ayarladım. Script içerisinden kolayca değiştirilebilir.

Microsoft SQL Brute Force yazılımına buradan ulaşabilirsiniz.
Python ile yazılmıştır. pymssql kütüphanesine ihtiyaç duymaktadır.

mssqlcmd – Microsoft SQL kullanarak karşı sunucuda komut çalıştırın

Güvenlik denetimlerinde kullanmak üzere hazırladığım bu basit script, Microsoft SQL sunucusu çalışan bir sunucu üzerinde komut çalıştırmaya yarıyor.
Bu işlevi yerine getirmek için xp_cmdshell stored procedure’ını kullanıyor. Zayıf veritabanı yöneticisi şifresi tespit edildiğinde kullanılabilir. (Örneğin ‘sa’ hesabı ve boş şifre)

mssqlcmd.py dosyasına buradan ulaşabilirsiniz.
Python ile yazılmıştır. pymssql kütüphanesine ihtiyaç duymaktadır.

Microsoft SQL Version Bilgisi

Google olsa da, sikca sorulan sorulardan bir tanesi. Elinizde bir Microsoft SQL veritabani sunucusu var ve SQL surum numarasindan patch seviyesini ogrenmek istiyorsunuz. SQL Query Analyzer’i kullanarak “SELECT @@version” ciktisini aliyorsunuz ve Google imdadiniza yetisiyor.

Bir cok sitede surum numarasina gore service pack seviyesini hizlica belirleyebileceginiz tablolar yeraliyor. Ancak burada bulunan SQL Server 2000 Build Chart oldukca detayli.

SQL Server 2000
Version Service Pack
8.00.2039 SQL Server 2000 Service Pack 4 (SP4)
8.00.760 SQL Server 2000 Service Pack 3 (SP3)
8.00.534 SQL Server 2000 Service Pack 2 (SP2)
8.00.384 SQL Server 2000 Service Pack 1 (SP1)
8.00.194 SQL Server 2000 RTM (Release To Manufacturing)
SQL Server 7.0
Version Service Pack
7.00.1063 SQL Server 7.0 Service Pack 4 (SP4)
7.00.961 SQL Server 7.0 Service Pack 3 (SP3)
7.00.842 SQL Server 7.0 Service Pack 2 (SP2)
7.00.699 SQL Server 7.0 Service Pack 1 (SP1)
7.00.623 SQL Server 7.0 RTM (Release To Manufacturing)
SQL Server 6.5
Version Service Pack
6.50.479 SQL Server 6.5 Service Pack 5a (SP5a) Update
6.50.416 SQL Server 6.5 Service Pack 5a (SP5a)
6.50.415 SQL Server 6.5 Service Pack 5 (SP5)
6.50.281 SQL Server 6.5 Service Pack 4 (SP4)
6.50.258 SQL Server 6.5 Service Pack 3 (SP3)
6.50.240 SQL Server 6.5 Service Pack 2 (SP2)
6.50.213 SQL Server 6.5 Service Pack 1 (SP1)
6.50.201 SQL Server 6.5 RTM (Release To Manufacturing)

SQL 2000’de “SELECT SERVERPROPERTY(‘productversion’), SERVERPROPERTY (‘productlevel’), SERVERPROPERTY (‘edition’)” sorgusu kullanilarak da ozet bilgi alinabilir.

Kaynaklar
How to identify your SQL Server version and edition
SQL Server 2000 Build Chart