• Kategori: Güvenlik
  • Eyüp ÇELİK
  • Gösterim: 1761

MS-SQL Hacking ve Post Exploitation Yöntemleri - Bölüm 1

MSSQL; Microsoft tarafından yaklaşık 15+ yıldır geliştirilen bir veritabanı yönetim sistemidir. Başlıca MS-SQL 2000, MS-SQL 2005, MS-SQL 2008, MS-SQL 2012, MS-SQL 2014 ve MS-SQL 2016 olmak üzere 5 ayrı dağıtım ile tanıştık. MS-SQL’i diğer veritabanlarından ayıran en önemli özelliklerinin başında, diğer Microsoft ürünleri ile entegrasyon gelmektedir. Bu entegrasyonun özellikle. NET çatısı ile birleştirilmesi sonucu ürün, birçok kuruma girmeyi başardı. MS-SQL; Oracle ve MySQL gibi ciddi rakiplerinin arasında sağlam bir yer edinmeyi başardı. (Ürünü övüp reklam yapmıyorum)

Hal böyle olunca da MS-SQL sızma testlerinde ciddi bir hedef haline geldi diyebiliriz. Bu yazımda MS-SQL bilgi toplama, Brute Force, Sızma, Erişim Elde Etme, Malware (Backconnect) ve diğer Post-Exploitation işlemlerine güncel yöntemler ile değinmeye çalışacağım. Tüm bunların yanında, kendi deneyimlerim, güncel sorun ve çözümleri de ayrıca paylaşacağım. Şimdi adım adım MS-SQL sızma konusuna değinelim.

Not: Bu içerik, Kali Linux dağıtımının kurulu olduğu ve MS-SQL sunucusu ile aynı ağda olduğu varsayılarak yazılmıştır. Kali Linux işletim sistemi NAT ile bağlanmış ve IP’si aşağıdaki gibidir.

kali nat ip

Network Topolojimiz de aşağıdaki gibidir.

Network

Saldırganın network’e dahil olduğu ve sunucu ağına erişebildiği varsayılmıştır. Buna göre ağımızda 2 adet MS-SQL, MS-SQL’lerin bağlı olduğu bir Domain Controller ve DMZ alanında koşan, SQL’e bağlanabilen dinamik bir web sunucusu mevcuttur. Tüm doküman bu test ortamı üzerinden anlatılacaktır.

  1. MS-SQL Servis Tespiti ve Bilgi Toplama

Her şeyden önce dâhil olduğumuz ağdaki MS-SQL servislerini ve sürümlerini bulmakla işe başlayabiliriz. Servis tespiti için; Nmap, MetaSploit, Microsoft SQL Server Management Studio, paping ve amap’ten faydalanabiliriz. 5 Aracı da ayrı ayrı inceleyeceğiz.

1.a Nmap ile Servis Tespiti

Kali işletim sistemini açarak bir terminale erişelim. “nmap -A -v -p 1433 192.168.139.0/24” komutu ile 192.168.139.1-192.168.139.254 IP adresi aralığında, 1433 portu açık olan sunucuları tarayabiliriz.

nmap -A -v -p 1433 192.168.139.0/24

nmap tarama

Tarama çıktısı yukarıdaki gibi olacaktır. Bu çıktıya göre 192.168.139.0/24 ağında, 192.168.139.102 IP adresinin MS-SQL yayını yaptığını ve MS-SQL Server 2012 sürümünü kullandığını görebiliriz.

Nmap içerisinde yer alan ve MS-SQL servis bilgelerini almak için kullanabileceğimiz bir diğer araç da Nmap “ms-sql-info” scriptidir. Scripti kullanabilmek için;

nmap --script ms-sql-info 192.168.139.167

Diğer taramamızın da çıktısı aşağıdaki gibi olacaktır.

nmap tarama 2

Üstteki Nmap çıktısına göre 192.168.139.167 IP adresi Microsoft SQL Server 2014 SP1 versiyonuna sahip, diyebiliriz.

Önemli Not: Bu bilgileri alabilmemizin sebebi MS-SQL’in TCP/IP bağlantılarına izin verilmesinden kaynaklıdır. “SQL Server Configuration Manager”da “SQL Server Network Configuration\Protocols for $MSSQLInstanceName” tabı altında yer alan TCP/IP seçeneğinin “Enabled” olmasından kaynaklanmaktadır. Bu seçeneğin aktif olması, ağdaki diğer cihazların MS-SQL portuna erişebilmesini sağlamaktadır. Normal şartlar altında MS-SQL servisine bağlanacak IP adreslerinin kısıtlanmasını tavsiye edebilirim. Eğer MS-SQL servisine sadece 192.168.139.1 IP adresi bağlanacaksa, Windows Güvenlik Duvarı’nda erişim tanımlaması yapmamız gerekir. Bunun için komut satırına ya da çalıştır’a “wf.msc” yazarak, “Windows Firewall with Advanced Security”e erişelim. Ardından sol tarafta yer alan “Inbound Rules” menüsüne erişerek, sağ tarafta yer alan “New Rule”a tıklayalım.

windows firewall new rule

Yeni kural tanımlama ekranından “Port”u seçerek, Next’i tıklayalım. “TCP”yi seçip, “Spesific local ports”a “1433” yazarak Next’i tıklayalım. Action kısmına “Allow Connection”ı seçerek Next’i tıklayalım. Yeni oluşturduğumuz Rule’un etkili olacağı Profilleri işaretleyip, Next’i tıklayalım. Oluşturduğumuz Rule’a bir isim (MS-SQL) vererek, Finish diyelim. Oluşturduğumuz Rule, Inbound Rules kısmına düşecek. Şimdi oluşturduğumuz Rule’u çift tıklayıp, üstte bulunan “Scope” menüsüne tıklayalım. Aşağıda bulunan “Remote IP Address” kısmının sağ tarafındaki “Add”e tıklayalım. İzin vermek istediğimiz IP adresini veya aralığı yazalım. Biz 192.168.139.1 IP adresine izin vereceğimiz için bu IP adresini yazıp, “Apply” diyelim. Artık, MS-SQL sunucumuza sadece izin verdiğimiz IP adresi bağlanabilecek. Eğer dilersek bir IP aralığı da Wildcard Mask kullanarak verebiliriz. Örneğin; sadece 192.168.139.0-192.168.139.255 IP aralığındaki bir herhangi bir IP’nin bağlanmasını istiyorsak; 192.168.139.0/24 şeklinde bir girdi ile bu aralıktaki tüm IP adreslerine izin vermiş oluruz.

windows firewall mssql rule

Normal şartlar altında, MS-SQL gibi kritik verilerin olabileceği sunucuların bir aralığa değil de her IP adresi için özel olarak kısıtlanması gerekir.

1.b Metasploit ile Servis Tespiti

Metasploit Framework’ü de MS-SQL servis bilgilerini toplamak konusunda bize yardımcı olabilecek bir diğer araç olarak kullanabiliriz. Bilgi toplama işlemi için, MSF (Metasploit Framework) içerisinde yer alan “auxiliary/scanner/mssql/mssql_ping” Auxiliary modülünü kullanabiliriz. 192.168.139.167 IP adresi için bir tarama başlatacağız.

Kali işletim sistemimizde bir konsol açalım. Ardından “msfconsole” komutunu kullanarak MSF konsolunu başlatalım. Sırası ile aşağıdaki komutları çalıştıralım.

use auxiliary/scanner/mssql/mssql_ping

set RHOSTS <IP Adresi yada IP Aralığı>

run

msf msqql ping

1.c Microsoft SQL Server Management Studio ile Servis Tespiti

Ağdaki MS-SQL servislerinin tespiti için “Microsoft SQL Server Studio Manager”dan da yararlanabiliriz. Bunun için Microsoft SQL Server Management Studio’yu açalım. File menüsünden “Connect Object Explorer”a tıklayalım. Karşımıza gelen oturum açma alanından “Server Name”e erişelim. Buradan aşağı doğru bakan ok işaretini tıklayarak, <Browse for more…> seçeneğini seçelim. Bu seçeneği tıklamamızın ardından yeni bir menü karşımıza gelecek. Üst kısımda yer alan “Network Servers” menüsüne tıklayalım. Bulunduğumuz ağdaki yayın yapan MS-SQL sunucularının listesi ve versiyonları burada gözükecektir.

mssql management stuido

Dip Not: MS-SQL servislerinin “Network Servers” menüsünde görünebilmesi için, yayın yapan MS-SQL sunucusunda “SQL Server Browser” servisinin çalışıyor olması gerekmektedir. Bu servis çalışmıyorsa, “Network Servers” menüsünden SQL sunucusunu göremiyoruz.

1.d paping ile Servis Tespiti

MS-SQL servis tespiti için kullanabileceğimiz bir diğer araç da “paping” uygulamasıdır. Bu uygulama daha çok bir IP adresindeki portları pinglemek için yazılmış olsa da servis tespiti için kullanılabilecek uygulamalardan biridir. Açık kaynak kodlu bu uygulamayı https://code.google.com/archive/p/paping/ adresinden indirebiliriz.

paping

paping uygulaması -p parametresi ile port bilgisini alarak, belirtmiş olduğumuz IP adresindeki servisi pingleyerek, servisin açık olup olmadığını kontrol etmek için kullanabiliriz. Yukardaki ekran görüntüsünde “paping -p 1433 192.168.139.102” komutu ile 192.168.139.102 IP adresinin 1433 portunu pingleyerek, MS-SQL servisinin çalışıp çalışmadığını anlayabiliriz.

1.e amap ile Servis Tespiti

Servis tespiti için kullanabileceğimiz bir diğer araç ise “amap”. amap Kali Linux ile birlikte gelen ve “Banner Grabbing” yapabilen bir araçtır. Bu araç ile belirttiğimiz portta yayın yapan uygulamanın servis bilgilerini alabiliriz.

amap -A 192.168.139.167 1433

amap

amap ile MS-SQL servisi hakkında, yukarıdaki gibi bilgi alabiliriz.

Yorum ekle


Güvenlik kodu Yenile

Bookmaker betfair Bonus review by ArtBetting.co.uk

Bookmaker bet365 review by ArtBetting.co.uk

Germany bookmaker b.artbetting.de review by ArtBetting.de

Bookmaker Greece BET365 review by ArtBetting.gr

Back to top