PowerShell Empire Serisi – IV | Oluşturulan Kodu Hedef Sisteme Ulaştırma Yöntemleri – 2: MS Office Dökümanları ile Makro Kullanımı

Bu yazıda fiziksel olarak erişimimizin bulunmadığı sistemleri ele geçirmek için MS Office’in bize sunmuş olduğu ‘Makro’ özelliğini kullanarak Word ve Excel dökümanlarını nasıl zararlı hale getirebileceğimiz hakkında konuşacağız.

Bir önceki yazıda fiziksel erişimimizin olduğu bir sistemi nasıl ele geçirebileceğimiz hakkında konuşmuştuk. Peki ya hedef sisteme doğrudan bir erişim yolu yoksa ne yapacağız?

Hedef sistemi uzaktan ele geçirmenin çeşitli yolları mevcuttur. Bizim bahsedeceğimiz ilk yöntem, Microsoft Office dökümanlarına(Word, Excel, vs) çalıştırılabilir zararlı yazılım kodu eklemek, sonrasında bu dökümanı oltalama e-postası, web sayfası, vs gibi yollar ile kurbana iletmek ve kurbanın bu dökümanı açmasını sağlamak, yani herkes tarafından yaygın ve sık kullanılan MS Office dökümanları ile silahlanmak olacak.

Oluşturulan dökümanı başarılı bir şekilde(Spam filtrelemesi veya güvenlik duvarlarına takılmadan) iletmek oldukça önemlidir. Bir diğer önemli şey ise oluşturulan dosyanın inandırılıcığıdır. Bir dosya, hedefteki kişi ile ne kadar alakalı ve inandırıcı olursa, kurbanın bu dosyayı açma olasılığı o kadar fazla olacaktır.

Uygulamaya geçmeden önce Makro kavramından kısaca bahsedelim. Makro, MS Office dökümanlarında bulunan, sürekli yapılacak işleri otomatize etme amaçlı çalışan kod parçacıklarıdır. Örneğin, bir şirketteki çalışanların ortalama çalışma saati her ayın son günü hesaplanacak olsun. Bu işlemi her ayın son günü elle yapmak yerine Makro kullanarak otomatikleştirebilir ve hesaplamayı pratik bir şekilde yapabiliriz.

Kod çalıştırılabilir her şey saldırganlar tarafından silah olarak kullanılabilir. İçine kötü amaçlı kod enjekte edilen dökümanlar, kurbanlar tarafından açıldığı takdirde sistemlerin saldırganlar tarafından ele geçirilmesine neden olacaktır.

Şimdi uygulamaya geçelim. Empire’ı çalıştırıp, aktif olarak dinleme yapacak bir dinleyici yapılandıralım.

Makro kodunu oluşturmak için kullanacağımız stager ‘windows/macro’ olacak. usestager windows/macro komutu ile stager’ı seçelim ve info komutu ile stager bilgilerine bakalım.

Açıklama kısmında görmüş olduğumuz gibi, kullanacağımız bu stager MS Office 97,2003 ve 2007 sürümlerince desteklenen zararlı makro üretecektir. Office 2013 ve 2017 sürümleri, yukarıdaki bu eski sürümleri desteklediği ve çalıştırdığı için, oluşturulacak zararlı makro her versiyonda başarılı bir şekilde çalışacaktır.

OutFile seçeneğinden, oluşturulacak kodun /tmp/macro dizinine oluşturulacağını görüyoruz. İstendiği takdire bu dizin değiştirilebilir. Yapacağımız işlem Listener seçeneğine atama yapmak olacak. set Listener http komutu ile, makronun çalıştırılması sonucu açılacak olan bağlantının dinleyicimiz tarafından dinlenebilmesini sağlıyoruz. Ardından generate komutu ile zararlı içeriği oluşturuyoruz.

/tmp dizinine gidelim ve zararlı dosya oluştu mu diye bakalım.

Dosya başarılı bir şekilde oluşturulmuş. Dosyanın içeriğine göz atalım.

Sıradaki adım, hedefteki kişiye ilgi uyandıracak ve alıcıyı açmaya ikna edecek bir döküman oluşturmak. Bu işlem, yapılacak saldırının hedef kitlesi dikkate alınarak yapılmalı. Hedefimizde bir şirket ve onun çalışanları olduğunu varsayalım. Maaş ile alakalı bir dökümanın alıcılar tarafından ilgi çekici bulunacağını ve açılacağını düşündüğüm için, maaş içerikli bir dökümanı silah olarak kullanalım. Dökümanı sıfırdan oluşturmak yerine, daha önceden oluşturulmuş ve profesyonel bir içeriğe sahip bir döküman bulmak için maaş listesi filetype:docx araması ile Google üzerinden arayalım.

Karşımıza maaş ile ilgili birçok döküman çıktı. İlk sırada çıkan dosya ilgi çekici duruyor. Bu dosyayı kullanalım.

Oluşturulan makroyu dökümana eklemek için Görünüm -> Makrolar kısmına gelelim.

Açılan sekmeden ‘Makroları görüntüle’ seçeneğini seçelim.

Karşımıza şu şekilde bir ekran gelecek. Makro adını yazıp ardından Oluştur seçeneğine tıklayalım.

Açılan ekranda makro kodunu yazabileceğimiz bir panel mevcut.

Panelde taslak olarak yazılan yazıları silip, Empire tarafından oluşturulan makro kodunu kopyalayalım.

Araç çubuğunda bulunan yeşil ok vasıtasıyla makro kodunu çalıştırabiliriz. Makroyu çalıştırıp olanları görelim.

Görüldüğü gibi, çalışan makro kodu bir ajan oluşturdu ve sistemi ele geçirmeyi başardık. Bu döküman her açıldığında ve ardından makro çalıştığında, sistemi yukarıda görüldüğü gibi ele geçiriyor olacağız.

Bu aşamada dikkat etmemiz gereken bir kısım mevcut. Oluşturulan bu dosyayı .docx uzantısıyla değil, makronun etkinleştirildiği ve çalıştırılabildiği .docm uzantısıyla kaydetmeliyiz.

Bir diğer sorun ise, hedefe iletilen dosyadaki bu makro kodunun çalışabilmesi için alıcının onay vermesi gereklidir. Daha önce buna benzer bir durumla karşılaşmayan alıcılar için bu durum belki şüpheli olabilir fakat şahsi görüşüm çoğu kişinin yazıyı okumadan onay vereceği ve dökümanı açacağı yönünde. 🙂

Dökümanı da oluşturduğumuza göre artık saldırı senaryomuzu uygulayabiliriz. Dökümanı oltalama saldırısı ile alıcıya ulaştırdığımızı varsayalım. Alıcı bu dökümanı açmak istediğinde neler olacak görelim.

Dosya alıcı tarafından sıradan bir dosyaymış gibi açıldı. Şüphe uyandıracak hiçbir şey yok fakat arka planda biz sistemi gizli bir şekilde ele geçirdik.

Ahmet Selim Kaya

Ofansif Güvenlik Araştırmacısı, TOBB ETU Siber Güvenlik Yüksek Lisans öğrencisi. Bilmediklerinin öğrencisi, bildiklerinin öğretmeni.