SQL Server'a şifresiz saldırmak için çeşitli fikirler

SQL sunucusunu hacklemek çok ilginç bir şey. Bu yıl "mssql sunucusunu şifresiz hacklemek" hakkında bir makale yayınladım. Ettercap'i bir ortadaki adam saldırısı oluşturmak için kullandım ve bunu Microsoft SQL sunucusu ile kullanıcı arasına yerleştirdim. Ettercap filtresini kullanarak, SQL sorgusunu kendi kötü amaçlı sorgunuzla anında nasıl değiştireceğinizi gösterdim. Bu, veri elde etmenize veya işlevleri gerçekleştirmenize yardımcı olması için bir veritabanı yöneticisi kullanıcısı oluşturmak gibi bir dizi saldırı gerçekleştirmenize olanak tanır. Tüm süreci herkesin öğrenmesi ve kullanması için daha otomatik hale getirmek için bir senaryo yazdım.

Komut dosyası çalıştığında bazı sınırlamaları vardır. İlk olarak, veritabanının çalıştırdığı SQL sorgularını bilmeniz gerekir. Genel olarak, bu tür bilgilere sahip olma olasılığınız düşüktür. İkinci olarak, betik, MITM saldırılarını çalıştırmak için Ettercap'e güvenir. Son olarak, yalnızca Microsoft SQL Sunucusunu destekler. Çok popüler bir veritabanı motoru olmasına rağmen, veritabanı türlerinin yalnızca küçük bir bölümünü temsil eder.

Anitian kullanıcıları için yakın zamanda yapılan bir sızma testinde, bazı testleri otomatikleştirmek için tüm aracı yeniden yazmaya karar verdim. Amaç, entegre bir SQL MITM aracı yapmaktır. Orijinal Python programını indirmek için aşağıdaki formu kullanabilirsiniz. (Devam etmek istediğiniz indirme şartları burada verilmiştir)

Form adresi: https://blog.anitian.com/hacking-sql-servers-without-password/

Önceki makale güvenlik açığını ve nasıl giderileceğini ayrıntılı olarak açıkladığından, bu makale temel olarak SQL MITM güvenlik açıklarını bulmak için bu aracın nasıl kullanılacağını açıklamaktadır.

Seçenekler

Bu aracı kullanmak için birkaç gerekli koşul vardır:

Etkileşimli arayüz: izlenecek etkileşimli ağ arayüzü.

SQL türü : İkinci projenin belirli bir SQL sunucu türü sağlaması gerekir. Araç şu anda MSSQL, MySQL, Oracle ve PostgreSQL'i desteklemektedir. Bunlar en popüler dört veritabanı motorudur.

Kullanıcı IP'si : İsteği gönderen SQL kullanıcısının IP adresi.

Sunucu IP'si : SQL sunucusunun IP adresi. Bu iki IP adresi, komut dosyalarının ARP zehirleme saldırıları gerçekleştirmesine izin verir. Bu, bu programın Ettercap gibi harici araçlara ihtiyaç duymadan kendi başına MITM saldırıları gerçekleştirebileceğini göstermektedir.

Yeni istek : Yeni SQL isteği. Bu zararlı bir SQL dizesi, bağlantıya yerleştirilecekler.

Benzer şekilde, iki isteğe bağlı giriş vardır

Anahtar kelimeleri başlat : Komut dosyası aramasındaki ilk anahtar kelime.

Anahtar kelime sonu : Komut dosyası tarafından aranacak son anahtar kelime (veya karakter).

Bu iki öğe, orijinal SQL dizesindeki başlangıç ve bitiş anahtar sözcükleridir. Bu anahtar sözcüklerden, SQL isteği önceden tüm istek bilinmeden tanımlanabilir. Örneğin, start anahtar kelimesinin varsayılan değeri "select" dir ve end anahtar kelimenin varsayılan değeri noktalı virgüldür. Bu, aşağıdaki tüm örnekleri karşılar:

Bu, bu komut dosyasını daha çok yönlü hale getirir. Zararlı istekler eklemek için belirli SQL isteğini bilmenize gerek yoktur.

Scapy

Bu proje için Python kullanıyorum çünkü kullanımı kolay ve sahip olduğu Scapy işletim kütüphanesini kullanabiliyorum. Scapy'nin birçok protokol için yerleşik desteği vardır, bu durumda önemli olan TCP ve ARP protokol desteğidir. Bağımsız bir veri paketi işlem programı veya diğer projeler için bir kitaplık dosyası olarak kullanılabilir.

ARP zehirlenmesi

Saldırının ilk adımı, kullanıcıların ve sunucuların ARP önbelleğini zehirlemektir. Bu adım, sunucunuzu ana bilgisayara bir kullanıcı olarak davranması için kandırır ve bunun tersi de geçerlidir. Tek yapmanız gereken kullanıcı ve sunucu IP adreslerini girmektir. Bu komut dosyası, ilgili MAC adresini tanımlamak için ARP'yi kullanır. Daha sonra komut dosyası arp_spoof () işlevini çağırır. Bu işlev, kullanıcıyı ve sunucu önbelleğini zehirlemek için doğru ARP paketini oluşturabilir. Bir zamanlayıcı kullanılarak arp_spoof () işlevi her 15 saniyede bir çağrılır. Bu, saldırı sırasında tamponun zehirli kalmasını sağlar.

Scap_sniff () işlevi, veri paketlerini koklamak için kullanılır. Bu işlev her zaman giriş veri paketini koklar ve saldırgan program yürütmeden çıkmak için ctrl + c tuşlarına basana kadar döngüye girer. Çevrimiçi olarak bir veri paketi algılandığında, sniff () işlevi veri paketinin SQL sunucusu IP'sine mi yoksa kullanıcı IP'sine mi gönderildiğini ayırt etmek için bir filtre kullanır. Değilse, paket göz ardı edilecektir. Durum böyleyse, paket processPacket () işlevine gönderilecektir.

Paket işleme

Burası tüm büyülü şeylerin gerçekleştiği yerdir. Komut dosyası, verileri saldırgan tarafından seçilen SQL motor türüne göre işler. Tüm pakette başlangıç ve bitiş karakterlerini arar. Bulunamazsa, veri paketi normal olarak gönderilir.

Bulursa, orijinal talebin uzunluğunu yeni talebin uzunluğu ile karşılaştırır. Yeni istek görece uzunsa, komut dosyası bir hata verir ve ardından değişiklik yapmadan orijinal veri paketini gönderir. Bunun nedeni TCP'nin çalışma şeklidir. Değiştirilen veri paketi orijinal veri paketi kadar uzun olmalıdır, aksi takdirde TCP bağlantısını kesecek ve yeniden başlatmaya neden olacaktır. Sonuç, orijinal istek ne kadar uzun olursa, o kadar fazla değiştirme alanına sahip olabileceğinizdir.

Yeni istek orijinal istekten daha küçükse, her şey yolunda demektir. Komut dosyası, veri paketini yeni isteklerle günceller ve veri paketini orijinal uzunluğunda tutmak için veri paketinin sonuna bazı yamalar ekler. Daha sonra değiştirilen veri paketi sunucuya gönderilecektir.

Yeniden ARPing

Saldırının sonunda programı durdurmak için ctrl + c tuşlarına basın. Komut dosyası bu reaksiyonu algılayacak ve sondan önce undo_arp_spoof () işlevini çağıracaktır. Bu, ARP belleğini sıfırlayacak ve böylece kurban mesajı normal şekilde kabul edecektir. Bu adım olmadan, kullanıcılar ve sunucular ağ sorunları yaşayacak ve saldırılar kolayca keşfedilecektir.

misal

MSSQL

Öncelikle bu yazılımı test etmek için Microsoft SQL kullanacağım. Aşağıdaki gibi basit bir test veritabanı oluşturdum:

Ürün tablosunda üç giriş olduğunu görebilirsiniz. Aşağıda tablodan basit bir hedef çıkarmak için temel bir komut çalıştıracağım.

ProductZero adında bir şey aradığımı göreceksiniz. Sunucu az önce eşleşen bir girdi döndürdü. Sonra zararlı komutlar enjekte etmek için sqlmitm.py betiğini çalıştırdım.

Bu ifadeleri kullanarak, komut dosyası SELECT'i seçtiğim komutla değiştirecektir. Bu, SELECT ile veritabanından ne sorguladığım önemli değil, sunucunun dönüş değerinin her zaman ProductOne girdi öğesi olacağı anlamına gelir.

ProductZero verilerini sorgulamak için bir istek çalıştırdığımı görebilirsiniz, ancak sunucu ProductOne'ı döndürdü! Bu dönüş yanlıştır! MITM betiği, iletim sırasında isteğin yerini aldı. Müşteri bu olayın olduğunu bilmiyordu. Bu işlem kötü amaçlı programlara her amaçla izin verir.

MySQL

Şimdi MySQL'i deneyelim. MySQL sunucusunu test etmek için benzer bir veritabanı oluşturdum:

Sonra, sqlmitm.py komut dosyasını çalıştırdım, ancak bu sefer onu MySQL sunucusuna saldıracak şekilde ayarladım.

Çıktıda, komut dosyasının eşleşen bir paketi ayırt ettiğini ve cümlenin yerini aldığını görebilirsiniz.

Peki kullanıcı tarafında neye benziyor?

"Test Ürünü 1" i sorgulamaya çalıştığımı göreceksiniz, ancak sunucu bana "Test Ürün 2" yi verdi. Benzer şekilde, müşteri herhangi bir sorun bulamadı.

Oracle

Şimdi Oracle'ı test edelim. İşte test etmek için veritabanı:

Ardından bu komut dosyasını çalıştırmaya devam edin.

Kurulup çalışırken, benzer bir komut daha çalıştırdım.

Sunucu yanlış bir dönüş verdi

PostgreSQL

Süreç hala benzer. İşte test etmek için veritabanı:

Komut dosyasını çalıştırın.

Bir emir vermek.

Komut dosyası verileri tekrar değiştirdi ve kullanıcı aracısı ne olduğunu bilemeyecekti.

MySQL kullanıcısı oluşturun

Önceki örnekler zararsızdır. Daha zararlı bir şey deneyeyim: MySQL'de bir kullanıcı oluşturmak için? Bu, üç adım gerektirir.

İlk adım, bir veritabanı kullanıcısı oluşturmaktır.

Bu istek "anitian" adında bir kullanıcı yaratır ve bu kullanıcının herhangi bir yerden oturum açmasına izin verir. Kullanıcının şifresi "ele geçirildi". Mitm komut dosyasını çalıştırdıktan sonra, MySQL kullanıcısına geri döndüm ve zararsız bir SELECT isteği gerçekleştirdim.

Hiçbir satırın gerçekten döndürülmediğine dikkat edin. Dönüş değerimiz istekle eşleşmiyor. Ancak bu talep bir uygulamadan gelirse kimsenin bulamayacağı tahmin edilmektedir.

Ardından, kullanıcının izinlerini artıralım. Bu bize, hedef bu izinlere sahip olduğu sürece oluşturduğumuz kullanıcının tüm izinlerini verecektir.

Başka bir SELECT isteğini yerine getirdim

Hiçbir hata döndürülmedi. Komutun başarıyla yürütüldüğü anlaşılıyor. Son olarak bu izinleri kaldırmamız gerekiyor

Son SELECT isteği yürütülür

Artık kullanıcı oluşturulduğuna göre, aşağıdakileri görmek için oturum açmayı deneyebilirsiniz:

Giriş başarılı, çalışmaya başlıyor! Artık oluşturduğumuz kullanıcı veritabanının kontrol yetkisine sahiptir. Elbette bu, bazı korunan verileri veya başka bir şeyi çalmak gibi her şeyi yapabileceğiniz anlamına gelir. Bu, bu komut dosyasının yapabileceği şeylerden sadece biri.

Nasıl önlenir

  • SQL MITMM saldırılarını önlemenin en kolay yolu, tüm SQL iletişimlerinin şifrelenmesini ve kimliğinin doğrulanmasını gerektirmektir;
  • Her zaman en az ayrıcalık ilkesine uyun. Uzak hesaplar yalnızca en temel işlevlere sahip olabilir. Yönetici haklarının kesinlikle kısıtlanması gerekir;
  • Lütfen sisteminizin ve aygıt yazılımınızın güvenlik açığı için yamalandığından emin olun.
  • * Orijinal: Anitian Mottoin tarafından çevrildi

    Orijinal makale, yazar: Moto, http: //www.mottoin.com/article/web/89825.html adresinden yeniden üretilmiştir.

    Guandao çok sıcak satıyor, Tomoto UR-V'nin nasıl olduğunu bilmiyor musunuz?
    önceki
    OPPO R15 ağ erişim lisansı alır veya iki farklı işlemciyle donatılmıştır
    Sonraki
    Zafer Kralı, bir dizi saniye, Daji korkusundan gelir
    Sokak tetikçisinin Supreme olduğunu kim söyledi? ! Danimarkalılar hala onsuz çiçek giyebilir!
    Sıfır örnek öğrenmede projeksiyon alanı kayması sorunu
    Sert kızlar erken geçiyor, "Baharda" 3.8 ülke çapında yarım günlük kızların gösterimini başlatıyor
    Mercedes-AMG GLC 63 piyasaya çıktı, New York Otomobil Fuarı'nda görücüye çıktı
    Zafer Kralı, savunma kuşağıyla Zhuang Zhou'ya saldırdı ve saf savunma teçhizatı hala patladı.
    Teknoloji Sırrı: Makro Virüs Kodunun Üç Gizli Tekniği
    Lookbook böyle çekilmeli! Hawkers refahtan çok memnun!
    Çin Renmin Üniversitesi'ne bağımsız kayıt: 9.506 kişi 130 yer için yarışıyor
    Akıllı telefonların donanımı altında, Google Pixel 3'ün özü AI'dır
    "Kaptan Marvel" küresel ağızdan ağza yaymanın sırrını vurgular ve ortaya çıkarır, en güçlü Marvel kahramanı canlılığı aydınlatır ve yeniden bir araya gelmede en güçlü olanı oynar
    Yapay zeka yeşil ekranı ortadan kaldırabilir, YouTube yeşil ekran özel efektlerinin yerine yapay zeka araçlarını kullanır
    To Top