Gerçek bir Sızma Testi Örneği

Müşteri bilgisi gizli tutularak yapmış olduğumuz bir sızma testi’ni bu yazıda sizlerle paylaşacağım.

X sağlayıcısının güvenliğini test etmek üzere bir görev aldık. Sızma testi ‘nin amacı, harici ağdan şirketin yerel ağına ulaşmak ve ardından en azından bir miktar ticari değer sağlayan herhangi bir bilgiye erişim sağlamaktı. İlk veriler kuruluşun web sitesidir (bundan böyle site.com olarak temsil edilecektir).

Öncelikle, verilen siteyle aynı alt ağda bulunan sunucuları bulmayla başladık. Bu türde 10 ana bilgisayar bulundu. Başlarda araştıracak hiçbir şey yok gibiydi. Dışa bakan tüm hizmetler en son sürümlerdi, popüler oturum açma / şifre sözlüklerine göre kaba kuvvete boyun eğmediler veya buna karşı koymadılar (IP yasaklama, oturum açma girişimleri arasında büyük gecikme), erişim sırasında web sunucularında IP tarafından, brute-force herhangi bir şüpheli dizin veya dosya bulmadı.

Ardından, Google, Bing ve birkaç arama motoru kullanılarak site.com alt alan adlarının bir listesi derlendi. Farklı bir sunucuda, bir sağlayıcının web barındırma hizmetleri sağladığı ortaya çıktı. Ucuz maliyetli belki de hediye olarak verilen üçüncü düzey bir alan adı. Bu alan adlarının çoğu bugün hala işlev görmektedir.

Bu sitelerden birisi iyice incelendiğinde, bir RCE (Uzaktan Kod Yürütme) güvenlik açığı içeren çok eski bir phpBB forumunun 2.0.15 sürümünün olduğunu bulduk. Güvenlik açığından hemen yararlanıldı ve forum dizinlerinden birine bir kabuk (shell) yerleştirildi. Bununla birlikte, open_basedir seçeneği, yorumlayıcının eylemlerini sınırlayan çalışma dizininin bir göstergesiyle her istemci için PHP ayarlarında etkinleştirildi. Safe_mode da buna dahil edildi.

Ancak bu durumda bir çıkış yolu bulunabilirdi. Ağda araştırma yaptıktan sonra, safe_mode_exec_dir seçeneğini “/ usr/bin /” yolu ile bulduk. Görünüşe göre yönetici bu izni, imagemagick ikili dosyalarına erişmesi gereken istemcilerden birinin isteği üzerine vermişti. Elbette “/usr/bin” dizini içinde perl içeriyordu. Bu nedenle, system() fonksiyonu aracılığıyla ana bilgisayarda anında pearl barley backdoor (arka kapı) başlatıldı ve kabukla aynı dizine döküldü.

İçeride bizi biraz hayal kırıklığı bekliyordu. Bu sunucu şirketin yerel ağına bağlı değildi. Dahası, haklar konusunda özel bir ayrım yoktu ve dağıtılan tüm ana bilgisayarların web dizinlerinde kolayca dolaştım. Bu sunucudaki bilgileri işlemek yaklaşık 2 gün sürdü. Veri tabanından, barındırılan sitelerin yönetici panellerinden, kullanıcılarından ve diğer şeylerden tüm şifreleri, aralarında bir yöneticinin olabileceği, ayrıcalıklı bir kullanıcı adı ve şifre içeren bir test projesi olması umuduyla topladık.

Beklentiler gerçekleşti ve sonunda yöneticilerin bıraktığı 2 proje buldum. İlki, şirketin ana sitesinin eski sürümünün bir kopyasıydı ve ikincisi, tam lansmandan önce aynı sitenin yeni sürümünü barındıran bir beta sunucuydu. Hem orada hem de şirket çalışanlarının kullanıcılarla iletişim kurduğu, tavsiyelerde bulunduğu ve haber yayınladığı bir forum vardı. Tüm hash’ler hemen birleştirildi ve kaba kuvvet saldırısı uygulandı.

Kullanıcıların hesap istatistiklerini görüntüleyebilecekleri ve tarife planlarını değiştirebilecekleri kişisel hesaplarının eski sürümünün komut dosyaları da burada bulundu. Yeni sürüm beta sunucusunda gözlemlenmedi, ancak eski sürüm, dışarıdan erişilemeyen PostgreSQL’e erişim için gerçek kimlik bilgilerini içeriyordu. Pgsql istemcisi bulunduğum ana bilgisayara yüklenmedi. Perl’de yalnızca karşılık gelen bir modül vardı (eski LC’nin komut dosyaları içine yazılmıştı). Kullanıcıdan gelen bir sql sorgusunu kabul eden ve sonucunu okunabilir bir biçimde gösteren küçük bir konsol programı yazmak zorunda kaldık.

Onun yardımıyla veri tabanına bağlanıp müşteri tabanına ulaşabildkm. Özellikle, İnternete bağlanmak için kullanıcı adlarını ve şifreleri içeren bir tabloya kadar. İçinde yönetici hesapları bulmayı umuyorduk. Teorik olarak, tabloda ilk sırada yer almaları gerekirdi. Ancak, her şeyin çok daha basit olduğu ortaya çıktı. Müşteri girişleri bir dizi sayıdan oluşurken, özel hesaplarda alfabetik olanlar vardı. Sadece 10 tane vardı. Neyse ki şifreler açık metin olarak saklanıyordu ve herhangi bir kaba kuvvet yapmaya gerek yoktu. Toplanan veriler zaten kırılmış parolalara eklendi ve diğer sunuculara ulaşmama yardımcı olabilecek ayrıcalıklı kullanıcıların oturum açma / parolalarının bir listesini aldım.

Daha önce bulunan forumlardan birkaç yönetici hesabı, mevcut sitenin forumunun yönetici paneline geldi. Modüler  IPB3 forum sistemiydi ve kabuğu yönetici panelinden yüklemek zor olmadı. Personel hesaplarının mevcut listesi hemen sahip olduğumla karşılaştırıldı. 2 yeni giriş ortaya çıktı ve hashleri ​​hemen aramaya gönderildi. Bu süre zarfında bir araya gelemeyen hash’ler ile daha kolay yaptım. Forum koduna, ilgilendiğim girişlerin girilen şifrelerini kaydeden bir arka kapı oluşturuldu ve bu kullanıcıların oturumları, her birinin yeniden yetkilendirmesi gerektiği için veri tabanından silindi. Ertesi günün sonunda, geçerli yönetici girişleri ve parolaları listem birkaç giriş daha arttı. Artık bunları kullanmanın zamanı gelmişti.

Kabuğu almayı başardığım ilk ana bilgisayardaki hedefleri seçmek için nmap oluşturuldu ve dışarıdan erişilebilen aynı 10 ana bilgisayarı onlarla aynı ağda bulunan sunucu adına taradılar. Bu “ İnternetten erişilemeyen yeni hizmetler” varlığının sonuçlarını verdi.

Sonra saldırı için çok sayıda protokolü destekleyen paralelleştirilmiş bir giriş kırıcı olan Hydra inşa edildi ve 10 sunucunun hepsinden SSH brute başladı (onunla başlamaya karar verdik). Bu 3 ek sunucuya erişim sağlama imkanı sağladı. Şimdi 10 üzerinden 5’inde bir yer edinebilmiştik. Ancak bunlardan biri şirketin yerel ağına bağlı olduğu için bunu yapmak zorunda değildim.

Üzerine aynı Nmap ve Hydra’yı yerleştirdikten sonra LAN’ı araştırmaya başladık. Pek çok ilginç şey bulundu, ancak ilk dikkati çeken dahili FTP sunucusu ve idari web paneli Open-E NAS-XSR (dosya depolama) sistemi oldu. FTP hemen kaba oldu, ancak Open-E NAS-XSR’de Google’a girdik çünkü bu ürünle daha önce hiç tanışmamıştık.

Orada, genel bilgilere ek olarak, muhtemelen tahmin ettiğiniz gibi keşfedilen kontrol paneline gelen varsayılan yönetici şifreleri bulundu. Bilgisayar ağlarında, bir sürümü Ortak İnternet Dosya Sistemi olarak da bilinen Sunucu İleti Bloğu olan Smb deposu için dizinlerin bir listesini ve ona erişimi olan kullanıcıların adlarını içeriyordu. Hydra, smb’ye şifresiz bu girişlerle erişilebileceğini bildirerek beni bir kez daha şaşırttı. Harici ağdan erişilebilen bir sunucuda linux servera kurulabilen socks5 serveri olan 3proxy kullanarak, topa yönlendiren bir bağlantı noktası yaptık ve makinemden ona bağlanarak, istenen kanıt olarak müşteriye aktarılan rastgele seçilmiş birkaç .doc dosyası indirdik.

Görev böylece tamamlanmıştı. Kaynaklarınızı yönetirken dikkatli olun mutlaka açıkları sistematik olarak taratın. Sızma testi hizmetinin faydalarını göz ardı etmeyin.

SecroMix