Mail sniper Microsoft Exchange kullanılan bir Active Directory yapısı içerisindeki tüm kullanıcıların mail kutularında çeşitli keyword’ ler kullanılarak mail içerisinden hassas bilgilerin elde edilmesi amacıyla Powershell ile geliştirilen bir araçtır. AD yapısı içerisinde bu şekilde bir bilgi toplama yöntemi ile sızma testlerinde kullanılabilecek farklı bir atak vektörü de oluşturulabilir. Mail Sniper, Beau Bullock (dafthack) tarafından geliştirilmiştir. Aşağıda belirtilen GitHub adresi üzeriden ilgili uygulamaya ulaşılabilir.
MailSniper: https://github.com /dafthack/ MailSniper
Sızma testlerinde testin gerçekleştirildiği Kurum’ un faaliyette bulunduğu sektöre göre kullandığı farklı uygulamalar, sistemler ve ihtiyaca göre yapılandırılmış farklı sunucular bulunmaktadır. Testerlar bu değişkenleri göz önünde bulundurarak Kurum’ da bulunan zafiyetleri ortaya çıkarmak için otomatize veya manuel birçok yöntem denemektedirler. Tüm yöntemler denendikten sonra AD içerisinde en yetkili kullanıcı olan “Domain Admin” olunduktan sonra ise sızma testi için tüm adımların gerçekleştirilmiş olduğu düşünülür. Halbuki asıl test bu aşamadan sonra başlamaktadır.
Sızma testlerinde tespit edilen zafiyetler ve bulgular çoğu zaman IT ekibinin problemleri olmakta ve C seviye yöneticilerin konuya ilgisini çekememekte ve bu seviyedeki yöneticilerin bilgi güvenliği konusunda yeteri kadar dikkatlerinin çekilmemesine sebep olmaktadır. Bu noktada gerçekleştirmiş olduğunuz sızma testinde “Domain Admin” olmanızla birlikte Kurum’ daki zafiyetler bahsi geçen yöneticileri ilgilendirmemekte ve içinde bulunmuş oldukları tehlikelerin farkına varamamalarına sebep olmaktadır. Sızma testlerinde danışmanlık firmaları olarak hedefimiz birçoğu yapılandırma eksikliklerinden kaynaklı sistemsel zafiyetler değil asıl hedefimiz olan bilgi güvenliği farkındalığı yaratmak olduğundan gerçekleştireceğimiz test adımlarında işin ciddiyetini anlatabilmemiz açısından “Mail Sniper” aracını test adımlarımıza katmak oldukça faydalı olacaktır.
Günümüzde gerçekleştirilen saldırılarda artık Kurum’ lara ait sistemlere sızılmasından sonra sistemlere bir anda zarar vermek yerine saldırganlar network içerisinde haftalarca hatta aylarca Kurum’ a ait hassas bilgileri elde etmeye yönelik nitelikli saldırılar gerçekleştirilebilmektedirler. Bu nedenle Kurum’ un kendi içerisinde karşılaşabileceği riskleri azaltmak adına gerçekleştirilmesi gereken sıkılaştırma çalışmalarında mail kutularından elde edilebilecek hassas bilgilere dikkat çekmek önem arzetmektedir.
Microsoft, Exchange Server 2007 versiyonudan itibaren geliştirdiği “Exchange Web Services” (EWS) adını verdiği web API’ si ile birlikte sunucu üzerinde tanımlı olan kullanıcıların mail sunucularında web arayüzü ile erişerek takvim, kişi ve e-posta bilgilerine erişebilicekleri bir uygulamayı hizmete sunmuştur.
Mail Sniper’ da 2 temel fonksiyon bulunmaktadır;
- Invoke-GlobalMailSearch
- Invoke-SelfSearch
“Invoke-GlobalMailSearch”Fonksiyonu
“Invoke-GlobalMailSearch” fonksiyonu Exchange Server’ a bağlanarak “impersonation” tekniği ile etki alanı ve root domain alanı içerisindeki diğer etki alanlarındaki kullanıcılara ait e-postaları görüntüleyebilmek amacıyla kullanılmaktadır.
İlgili fonksiyonun kullanımına ait örnek aşağıda verilmiştir.
Invoke-GlobalMailSearch -ImpersonationAccount current-username -ExchHostname Exch01 -OutputCsv global-email-search.csv
“ImpersonationAccount” parametresi ile kullanıcı adı ve parola bilgisi elde edilen kullanıcıya ait mail kutu içerisinde “-Terms *” parametresi kullanılarak kullanıcıya ait tüm mail bilgileri açık bir şekilde okunabilir.
Örnek olarak “empire\erhan.yildirim” kullanıcısı ile oturum açılmış bir sistem üzerinden parola bilgisi elde edilen “empire\orhan.yildirim” kullanıcısına ait mail kutusunun görüntülenmesi aşağıdaki ekran görüntüsünde verilmiştir.
Gerçekleştirilen sorgulamalar “-OutputCsv” parametresi kullanılarak “orhan.txt” dosyasına yazılmıştır.
İlgili dosyanın görüntülenmesi aşağıdaki ekran görüntüsünde verilmiştir.
“Invoke-SelfSearch” Fonksiyonu
Bu parametre ile sistem üzerinde oturum elde edilen kullanıcıya ait mailler sorgulanabilmektedir.
İlgili fonksiyonun kullanımına ait örnek aşağıda verilmiştir.
Invoke-SelfSearch -MailBox erhan.yildirim@ empire.local -Terms *
Bilgisi verilen komut ile sistem üzerinde oturum açan “empire \ erhan.yildirim” kullanıcına ait mail kutusu aşağıdaki ekran görüntüsünde verilmiştir.
İlgili aracı kullanmak için öncelikle aşağıdaki komutla birlikte Powershell terminali üzerinde komut çalıştırmayı engelleyebilecek kuralların bypass edilmesi gerekmektedir.
powershell.exe -nop -ep bypass
Ağ Üzerinde Mail Sunucunun Tespit Edilmesi
İlgili komutun çalıştırılması sonrasında sistem üzerinde mail sunucunun bulunmasına yönelik gerçekleştirilen Powershell sorgusu aşağıda verilmiştir.
Ekran görüntüsünde verildiği üzere “empire.local” alan adı üzerinde tanımlanmış mail sunucusu “mail.empire.local” olarak tespit edilmiştir.
Mail sunucunun belirlenmesi ekran görüntüsünde verilen komut ile gerçekleştirilebileceği gibi oluşturulan wordlist ile yapılacak sorgulamalarla da gerçekleştirilebilmektedir.
Exchange Server Üzerinde Kullanıcıların Tespit Edilmesi
Kullanıcı adı ve parola bilgisine sahip olduğmuz Exchange Server üzerinde tanımlı herhangi bir kullanıcı ile mail sunucu üzerinde kullanıcıların tamamını listeleyebiliriz.
İlgili işlemi gerçekleştirebilmek için aşağıdaki komut kullanılmalıdır.
Get-GlobalAddressList -ExchHostname mail.empire.local -UserName empire\orhan.yildirim -Password Password321 -OutFile global-address-list.txt
İlgili komut kullanılarak gerçekleştirilen sorguya ait ekran görüntüsü aşağıda verilmiştir.
Kullanıcılara Ait Maillerin Terminal Üzerinden Okunması
Aşağıda verilen komut kullanılarak oturum elde edilen kullanıcıya ait mailler Powershell terminali üzerinden Mail Sniper aracı ile okunabilmektedir.
Invoke-Selfsearch -Mailbox administrator@empire.local
İlgili komut kullanılarak gerçekleştirilen sorguya ait ekran görüntüsü aşağıda verilmiştir.
Ekran görüntüsünde görüleceği üzere “Administrator” kullanıcısına ait “administrator@empire.local” mail adresi içerisinde gerçekleştirilen sorguda Mail Sniper aracı ön tanımlı olarak “passoword”,”creds” ve “credentials” kelimelerinin geçtiği metinleri içeren mailleri filtrelemektedir.
AD yapısı üzerinde sıradan bir kullanıcının kendi mail kutusunu terminal arayüzünden Mail Sniper aracını kullanarak sorgulama gerçekleştirmesine ait ekran görüntüsü aşağıda verilmiştir.
Mail Sniper aracı kullanılarak gerçekleştirilen sorgulamalarda istenilen kelimelerin aranması için “Terms” parametresi kullanılmaktadır.
İlgili ekran görüntüsü aşağıda verilmiştir.
Penetrasyon testi sırasında parola bilgileri elde edilen kullanıcılara ait mailler içerisinde “impersonate” (bürünme) tekniği ile terminal üzerinden gerçekleştirilecek sorgulamalarla kişilere ait mailler içerisinden belirli keyword’ ler ile farklı kullanıcılara ait parola bilgileri elde edilebilir. İlgili sorguyu gerçekleştirebilmek için sorgulama gerçekleştirilecek kullanıcıya ait kullanıcı adı ve parola bilgisine sahip olmak gerekmektedir.
İlgili sorgulamayı gerçekleştirmek için aşağıda bilgisi verilen komut kullanılmalıdır.
Invoke-GlobalMailSearch -ImpersonationAccount erhan.yildirim -ExchHostname mail
Aşağıdaki ekran görüntüsünde “empire\erhan.yildirim” kullanıcısı ile oturum elde edilen sistem üzerinde kullanıcı adı ve parola bilgisi elde edilen “empire\orhan.yildirim” kullanıcısına ait mailler “impersonate” rolü ile “empire\orhan.yildirim” kullanıcısı haklarıyla görüntülenmiştir.
İlgili sorgu sonucu “burhan.txt” dosyasına yazdırılmış olup ekran görüntüsü aşağıda verilmiştir.
İlgili araç ile sorgu gerçekleştirebilmek için kullanıcı adı ve parola bilgisi gerekmektedir. Kullanıcı adı ve parola bilgisi girilerek gerçekleştirilen sorgulamalar yalnızca kendi mail kutusu üzerinde sorgulama gerçekleştirebiliyorken, Exchange Server sunucusunda “Administrator” haklarına sahip bir kullanıcı ile mail sunusunda tanımlı mail alanına sahip olan tüm kullanıcıları görüntüleyebilme ve mail alanı bulunan sunucu üzerindeki kullanıcılara ait mail trafiği içerisinde sorgulama gerçekleştirilebilmektedir.
“EMPIRE” etki alanında “Domain Admins” grubuna dahil olan “Administrator” kullanıcısı yetkileri ile Exchange Server üzerinde tanımlı olan tüm kullanıcıların mail kutularında “Parola” kelimesinin aranması için aşağıdaki komut kullanılacaktır.
Invoke-GLobalMailSearch -ImpersonationAccount administrator -Terms “Parola” -ExchHostname mail -OutputCsv global-email-search.csv
İlgili komut kullanılarak “mail” hostname bilgisine sahip Exchange Server üzerinde gerçekleştirilen sorgu aşağıdaki ekran görüntüsünde verilmiştir.
İlgili komut ile sunucu üzerindeki tüm mail kutularında gerçekleştirilen “Parola” kelimesinin geçtiği yerler “global-email-search.csv” adı ile kaydedilmiştir.
İlgili “csv” uzantılı dosyanın görüntülenmesi aşağıdaki ekran görüntüsünde verilmiştir.
Yazar: Orhan Yıldırım