3 Nisan 2014 Perşembe

Pentest Hikayeleri #1

Bu sefer teknik olmayan bir konuyla karşınızdayım. Başlıktan da anlaşıldığı gibi sizlere hikaye anlatacağım :)
Gerçekleştirmiş olduğum(uz) penetrasyon testlerinde karşılaştığımız problemleri, çözümleri, tecrübe edindiğimiz konuları, komik olayları vs.. anlatan ama detaylarında yeni başlayan arkadaşlar için faydalı olabilecek bir yazı dizisi planlamaktayım. Belki ileride bir kitap haline bile getirebilirim: "Bir Siber Güvenlik Polisiyesi" diye.. :)
Bu arada sizin de gerçekleştirdiğiniz ve hikayeye dökerek anlatmak istediğiniz penetrasyon testleriniz varsa bana e-posta gönderirseniz burada yayınlayabilirim.

Klasik olacak ama öncelikle birkaç tanım ile başlamak istiyorum;

Penetrasyon Testi Nedir?

Kısaca Pentest diyebilirsiniz. Penetrasyon testi; firmaların bilişim sistemlerini oluşturan ağ altyapılarını, donanım, yazılım ve uygulamalara kötü niyetli birinin (hacker) saldırmasını öngören yöntemler kullanılarak yapılan saldırı ve müdahaleler ile güvenlik açıklarının tespit edilip bu açıklarla sisteme sızılmaya çalışılmasının simüle edilmesi ve tüm bu işlemlerin raporlanmasıdır.

Test sırasında uzmanlar tıpkı bir saldırgan gibi hareket eder ve sistemin tüm açıklarını, riskleri ve erişilebilirliği ortaya çıkarırlar. Çok farklı yöntemler ve değişkenler söz konusu olduğundan uzmanlar tarafından gerçekleştirilmesi gerekmektedir.

Penetrasyon Testlerinin Çeşitleri

White Box, Black Box ve Gray Box olmak üzere üç çeşittir.

White Box

Güvenlik uzmanı, firma içinde yetkili kişilerce bilgilendirilir ve firma hakkındaki tüm sistemler hakkında bilgi sahibi olur. Bu yöntemde daha önce firmada yer almış, hala çalışmakta olan veya misafir olarak ağa sonradan dahil olan kişilerin sistemlere verebilecekleri zararlar gözetilir ve raporlanır.

Black Box

Bu yöntemde sızma testini gerçekleştiren firmayla herhangi bir bilgi paylaşımında bulunulmaz sadece hedef verilir.. Bilgi sızdırmak yada zarar vermek amacıyla sızmaya çalışan bir hacker gibi davranılarak verilebilecek zararlar gözetilir ve raporlanır.

Gray Box

White Box ile Black Box testlerini kapsayan yani hem içeriden hem dışarıdan olarak yapılan test diye tanımlayabiliriz.. Bu çeşitte ek olarak Sosyal Mühendislik ve Kablosuz Ağ Saldırıları da eklenmektedir.

Genel bilgilerin ardından başlıyoruz...



Sabahın 05:00 sularında uyandırıldım. Uyku sersemiyle telefonda anladığım kadarıyla sektöründe Türkiye'nin önemli firmalarından birinin terminal sunucusu ransomware saldırısına uğramış. Hemen hazırlandım ve patronum beni almaya geldi. Diğer ekip arkadaşlarımda saldırıya maruz kalan firmaya doğru yol aldılar.

Firmaya vardığımızda tahmin ettiğimiz şekilde sunucuya bir text dosyası bırakılmış ve ilgili firmanın verilerini encrypt ettiğini ve encrypt edilen verilerin açılması için fidye istenmekteydi.

Birkaç saat boyunca çeşitli yöntemlerle (windows logları, şüpheli exe dosyaları, sistem başlangıç programları, regedit, çalışan servisler, portların taranması, dinlenen portların tespiti vs..) saldırıya dair izleri araştırdık.
Aslında olay ile sık karşılaştığımız için yukarıdaki işlemleri prosedür gereği yapmıştık belki farklı sonuçlar çıkabilirdi.
Şahsen IT sorumlusuna sunucunun Local Administrator şifresinin ne olduğunu sordum. Ve tahmin ettiğim yanıt hiç gecikmeden geldi: 123456 :)
Bu tip hacking saldırıları genellikle; zayıf şifre kullanımıyla beraber dışarıya açık olan uzak masaüstü servisi (RDP), eski işletim sistemi zafiyeti, mail yoluyla gönderilen fatura gibi görünen zararlı dosyaların kullanıcının sisteme bulaştırılmasıyla böyle sonuçlara zemin oluşturmaktadır.

Firma çok şanslıydı.. Logları incelememiz sonucunda bu olayın başlangıç zamanından tam 1 dakika önce şirketimizin sistem çözümleri departmanında çalışan arkadaşımız tarafından farklı bağımsız bir lokasyona yedek alınmıştı. Bu yüzden verilerin kurtarılmasıyla uğraşmamıştık direkt olarak çözüm odaklı davrandık çünkü business continuity (iş sürekliliği) önemliydi.
Öncelikle güncel sürümde yeni Windows sunucu hazırlandı. Güçlü bir parola belirlendi.. :) Ve arkadaşımızın aldığı yedek geri yüklendi, ayarları vs. yapıldı. Sistem gayet iyi çalışıyordu. Siber Güvenlik departmanı olarak biz de gözden geçirdik hiç bir problem görünmüyordu. Sistem ayağa kalktığında firma yetkililerinin içlerinden "ohh" çektiklerini hissedebiliyordum :) Bu serüvenin ardından şirketimiz tarafından kendi sistemleri için Secure System projesi adı altında çözüm teklifleri talep edildi. İlgili sistem için müşteriye Firewall'lar, NAC cihazı, Endpoint çözümü, Penetrasyon Testi vs.. barındıran tam teşeküllü bir proje teklifi sunulmuştu. Tabi burada artık bizi ilgilendiren ve eğlendirecek kısım Penetrasyon Testi idi :) White Box, Black Box kapsamında bir pentest bizi bekliyordu artık.

Pentest için tarih aldıktan sonra hazırlanıp belirlenen tarihte firmaya gittik. Vakit kaybetmeden testlere başladık. Sırasıyla önce sistemleri keşfetme-bilgi toplama, sonra elde edilenleri tarama son olarak da exploiting işlemlerinin akabinde manuel denetimlerimizi yaptık. Ayrı olarak değerlendirdiğimiz sosyal mühendislik testine geçiş yaptık. Arama motorlarından elde ettiğimiz firma çalışanlarının mail adreslerine belirlediğimiz senaryo kapsamında zararlı yazılım (trojan) bulaştırılmaya çalışıldı. 20 kişiden 13 tanesi zararlı yazılımı açtı ve bilgisayarına bulaştırmıştı. Onlardan elde ettiğimiz bilgiler ve yaptığımız bu iş müşteri için her ne kadar iyi gibi gözükse de bizim iştahımızı daha kabartamamıştı ve moralimiz bozuktu..

Testin son demleriydi, elde ettiğimiz bulguları toparlıyorduk. Ben son kez sunucuların bulunduğu IP bloğunda farklı metotlarla tekrar bir port taraması gerçekleştirdim ve önceden keşfedemediğimiz bir sunucu keşfettim. 8090 portunda Apache Tomcat koşuyordu. Hemen web browserden kontrol ettim. Default Apache Tomcat parolalarını denedim ve bir tanesi tuttu. Yönetim bölümünün Deploy kısmından örnek ekran görüntüsünde görüldüğü gibi içeriye komut çalıştırabileceğim basit bir JSP shell (cmd) import ettim:

Yüklenen "cmd" isimli shell ile Windows üzerinde SYSTEM yetkileriyle komutlar yürütübilecektik. Bu shell ile Windows için Administrator yetkilerine sahip bir kullanıcı hesabı yaratıldı ve bu kullanıcı Remote Desktop User grubuna dahil edilerek işletim sistemine uzaktan bağlantı sağladık. Daha sonra bu işletim sisteminde daha önce oturum açmış olan kullanıcıların şifrelerini mimkatz aracıyla ele geçirdik.
Elde edilen bu şifreler ile networkte bulunan diğer (SQL Server, SharePoint, Exchange vs..) sunuculara erişim sağlandı. Tüm sistem elimizin altındaydı. Son olarak Domain sunucusuna sızdığımızı IT müdürüne bildirdik. Müdür telaşla gelip "testi sonlandırın artık, tüm sistem deşifre oldu" demesiyle işte o zaman yüzümüz gülmüştü.. :)

4 yorum:

  1. Güzel değişik birşey olmuş hocam eline sağlık devamını bekliyoruz

    YanıtlaSil
  2. zevkle okudum gerçekten çok güzel olmuş elinize sağlık

    YanıtlaSil
  3. farkli ne yaptin da onceden goremedigin portu gordun ikinci taramanda?

    YanıtlaSil
    Yanıtlar
    1. Merhaba,
      Nmap tarama parametresini değiştirmiştim (All TCP) :
      nmap -p 1-65535 -T4 -A -v 1.1.1.1/24

      Sil