Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Empire Kurulumu ve Kullanımı

620 views

Published on

Empire Kurulumu ve Kullanımı @BGASecurity | Samet Sazak

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Empire Kurulumu ve Kullanımı

  1. 1. [EMPİRE 2.0 KURULUMU ve KULLLANIMI] BGA Bilgi Güvenliği A.Ş. | www.bgasecurity.com | @BGASecurity EMPİRE 2.0 KURULUMU ve KULLANIMI Yazar:SametSazak Baskı:2019
  2. 2. [EMPİRE 2.0 KURULUMU ve KULLLANIMI] BGA Bilgi Güvenliği A.Ş. | www.bgasecurity.com | @BGASecurity GİRİŞ ................................................................................................................................ 3 EMPİRE 2.0 KURULUMU VE KULLANIMI............................................................................. 3 EMPİRE KURULUMU.....................................................................................................................3 Empire Ana Menüsü ..........................................................................................................4 EMPİRE ÇALIŞMA YAPISI................................................................................................................5 Empire Listeners.................................................................................................................5 Empire Stagers..................................................................................................................11 Windows Stager’ları .....................................................................................................11 OSX Stager’ları..............................................................................................................24 Multi Stager’ları............................................................................................................31 Empire Agent’ları..............................................................................................................35 Interact Komutu Kullanımı: ..........................................................................................36 Agent Komutları ...........................................................................................................37 Empire Modülleri..............................................................................................................38 Custom Script Modül Kullanımı....................................................................................39 EMPİRE TRAFİĞİ.............................................................................................................. 40 EMPİRE HTTP REQUEST DAVRANIŞI..............................................................................................41 EMPİRE’IN SİSTEMDE BIRAKTIĞI WİNDOWS EVENT LOGLARI İNCELEMEK......................... 42 EMPİRE TESPİT YÖNTEMLERİ SYSMON İLE POWERSHELL EMPİRE KULLANIMI TESPİT ETMEK ....................................................................................................................................... 43 IDS(SNORT/SURİCATA) İLE POWERSHELL EMPİRE TESPİT ETMEK ........................................................45 CARBON BLACK İLE POWERSHELL EMPİRE TESPİT ETMEK...................................................................47 SPLUNK İLE POWERSHELL EMPİRE TESPİT ETMEK..............................................................................49 WİNDOWS ÜZERİNDE POWERSHELL EMPİRE TEMİZLEME ................................................ 51
  3. 3. [EMPİRE 2.0 KURULUMU ve KULLLANIMI] BGA Bilgi Güvenliği A.Ş. | www.bgasecurity.com | @BGASecurity GİRİŞ Empire, kriptolojik olarak güvenli iletişim sağlayan ve esnek bir mimariye dayanan bir PowerShell post-exploitation ajandır. Empire, Powershell.exe’ye gerek kalmadan PowerShell çalıştırmayı sağlayabilen, Keyloggerlardan Mimikatz’a kadar post-exploitation modülleri hızlıca yerleştirilebilin ve ağ tespit sistemlerinden kaçınmak için farklı teknikler barındıran bir uygulamadır. Empire 2015 yılında BSidesLV’de yayınlanmıştır. Bugüne kadar da yenilenmeye devam etmiştir. Güncel kullanımda Empire 2.0 sürümü kullanılmaktadır. Empire hakkında tüm dokümantasyonu ve proje açıklamalarını powershellempire.com adresini inceleyebilirsiniz. Empire 2.0 Kurulumu ve Kullanımı Empire, kriptolojik olarak güvenli bir iletişim sunan, çoğu mimari üzerine rahatça çalışabilen bir PowerShell Exploitation aracıdır. Empire Kurulumu Empire kurulumu için öncelikle Github reposundan Empire son sürümü klonlanır. git clone https://github.com/EmpireProject/Empire Debian sistemlerde “./setup/install.sh” dizininde bulunan bash script çalıştırılarak gerekli işlemler tamamlanarak kurulacaktır. Fakat script’in RHEL tabanlı bir sistemde çalışması mümkün olmadığından yine setup dizininde bulunan req.txt dosyası içerisindeki Python modülleri PIP aracılığıyla kurulabilmektedir. Daha sonra ./empire komutu ile Empire başlatılır.
  4. 4. [EMPİRE 2.0 KURULUMU ve KULLLANIMI] BGA Bilgi Güvenliği A.Ş. | www.bgasecurity.com | @BGASecurity Empire Ana Menüsü Empire başlatıldığında yukarıdaki resimdeki gibi bir ana menüden oluşmaktadır. “Help” yani yardım komutu Empire üzerinde kullanabileceğiniz diğer komutları görmenizi sağlar.
  5. 5. [EMPİRE 2.0 KURULUMU ve KULLLANIMI] BGA Bilgi Güvenliği A.Ş. | www.bgasecurity.com | @BGASecurity Empire Çalışma Yapısı PowerShell Empire, üç ana bileşenden oluşmaktadır. • Listeners, • Stagers ve • Agents Listener, saldırdığımız makineden yani C&C üzerinde bağlantı dinleyen bir process’tir. Empire Listeners DBX; Empire Dropbox Listener’ıdır. Agent’lar ile iletişim için Dropbox kullanır.
  6. 6. [EMPİRE 2.0 KURULUMU ve KULLLANIMI] BGA Bilgi Güvenliği A.Ş. | www.bgasecurity.com | @BGASecurity http; Standart HTTP listener’ıdır. Back-end’te Flask kullanır. Default profile olarak /admin/get.php, news.php /login/process.php gibi GET ve POST istekleri atarak konuşur. Python ya da Powershell olarak dil seçimi yapılabilmektedir. HTTPS için SSL sertifikası kullanılabilmektedir. HTTP_COM; HTTP/HTTPS listener oluşturur fakat http listener’dan farklı olarak yine GET/POST request’leri atarak iletişim kurmuş olsa da bu modül, Net.WebClient yerine iletişim kurmak için gizli Internet Explorer COM nesnelerini kullanır. Eğer https kullanılmak isteniyorsa valid bir sertifika kullanılmalıdır.
  7. 7. [EMPİRE 2.0 KURULUMU ve KULLLANIMI] BGA Bilgi Güvenliği A.Ş. | www.bgasecurity.com | @BGASecurity HTTP_FOREIGN; http foreign, birden fazla C&C server kullanılıyorsa foreign bir http listener oluşturulmasını sağlar. HTTP_HOP; http_hop, Metasploit’teki reverse hop HTTP payload'ı gibi çalışır ve gelen bağlantılar başka bir dinleyiciye gönderilir.
  8. 8. [EMPİRE 2.0 KURULUMU ve KULLLANIMI] BGA Bilgi Güvenliği A.Ş. | www.bgasecurity.com | @BGASecurity HTTP_MAPI; Liniaal, bir Exchange sunucusu aracılığıyla Empire agent’ları için bir C2 kanalı oluşturulmasını sağlar. Tüm iletişim MAPI/HTTP veya RPC/HTTP üzerinden ve doğrudan Liniaal agent'ı ile Exchange sunucusu arasında yapılır. Hiçbir trafik HTTP olarak gerçekleşmez ve çoğu network-based Detection'ları atlatır.
  9. 9. [EMPİRE 2.0 KURULUMU ve KULLLANIMI] BGA Bilgi Güvenliği A.Ş. | www.bgasecurity.com | @BGASecurity METERPRETER; Klasik Meterpreter listener’i oluşturur. ONEDRIVE; Listener olarak Onedrive kullanır.
  10. 10. [EMPİRE 2.0 KURULUMU ve KULLLANIMI] BGA Bilgi Güvenliği A.Ş. | www.bgasecurity.com | @BGASecurity REDIRECTOR; Internal redirector listener ayarlar. Listener’dan farklı bir internal listener’a peer to peer bağlantı sağlar.
  11. 11. [EMPİRE 2.0 KURULUMU ve KULLLANIMI] BGA Bilgi Güvenliği A.Ş. | www.bgasecurity.com | @BGASecurity Empire Stagers Empire 1.0'dan farklı olarak Empire2.0 da daha fazla stager bulunmaktadır. Yeni eklenen stagerlar: (OSX/Python) - Jar files - ELF Pyinstaller source generation - Empire AppBundles - Empire .pkg installers Empire stagerları işletim sistemi ortamlarına göre ayırılmıştır. Windows/Osx/Multi olarak kategorilendirilmiştir. Windows Stager’ları Windows/BackdoorLnkMacro: .lnk dosyalarını kullanarak Backdoor oluşturur. Kullanıcı tıkladığında bir empire launcher'ı indirir ve başlatır. Örneğin Internet Explorer.lnk dosyası oluşturulup kullanıcının tıklamasıyla etkinleştirilir. Windows/BunnyLauncher: Tek satırdan oluşan bir bunny script oluşturur.
  12. 12. [EMPİRE 2.0 KURULUMU ve KULLLANIMI] BGA Bilgi Güvenliği A.Ş. | www.bgasecurity.com | @BGASecurity Windows/C# Powershell Launcher: Powershell'in de içinde gömülü olduğu bir c# exe dosyası oluşturur.
  13. 13. [EMPİRE 2.0 KURULUMU ve KULLLANIMI] BGA Bilgi Güvenliği A.Ş. | www.bgasecurity.com | @BGASecurity Windows/DLL Loader: Stager koduyla birlikte enjekte etmek için bir PowerPick Reflective DLL'i oluşturur.
  14. 14. [EMPİRE 2.0 KURULUMU ve KULLLANIMI] BGA Bilgi Güvenliği A.Ş. | www.bgasecurity.com | @BGASecurity Windows/Ducky Script: Rubber Ducky için bir satırlık stager kodu içeren ducky script oluşturur. Not: Ducky kodu aynı şekilde Digispark’a dönüştürülebilir.
  15. 15. [EMPİRE 2.0 KURULUMU ve KULLLANIMI] BGA Bilgi Güvenliği A.Ş. | www.bgasecurity.com | @BGASecurity Windows/HTA Launcher: İçerisinde stager kodu bulunduran .HTA dosyası oluşturur.
  16. 16. [EMPİRE 2.0 KURULUMU ve KULLLANIMI] BGA Bilgi Güvenliği A.Ş. | www.bgasecurity.com | @BGASecurity Windows/BAT Launcher: İçerisinde stager kodu bulunan bir BAT launcher oluşturur. Ayrıca bu bat dosyası daha sonra kendini silmektedir.
  17. 17. [EMPİRE 2.0 KURULUMU ve KULLLANIMI] BGA Bilgi Güvenliği A.Ş. | www.bgasecurity.com | @BGASecurity Windows/LNK Launcher: Stager kodu bulunduran bir LNK dosyası oluşturur.
  18. 18. [EMPİRE 2.0 KURULUMU ve KULLLANIMI] BGA Bilgi Güvenliği A.Ş. | www.bgasecurity.com | @BGASecurity Windows/Regsrv Launcher: İçerisinde stager kodu bulunduran SCT (COM Scriptlet) dosyası oluşturur.
  19. 19. [EMPİRE 2.0 KURULUMU ve KULLLANIMI] BGA Bilgi Güvenliği A.Ş. | www.bgasecurity.com | @BGASecurity Windows/VBS Launcher: İçerisinde stager kodu bulunan .VBS dosyası oluşturur.
  20. 20. [EMPİRE 2.0 KURULUMU ve KULLLANIMI] BGA Bilgi Güvenliği A.Ş. | www.bgasecurity.com | @BGASecurity Windows/MSBUILD XML: Msbuild.exe ile birlikte çalıştırılması için içerisinde stager kodu bulunduran xml dosyası oluşturur.
  21. 21. [EMPİRE 2.0 KURULUMU ve KULLLANIMI] BGA Bilgi Güvenliği A.Ş. | www.bgasecurity.com | @BGASecurity Windows/Office Macro: Office 97-2003 ve 2007 dosya türevlerinde çalışmak üzere MACRO oluşturur. Windows/Macroless Word: Kod yürütme için bir formül alanı kullanarak bir makro olmayan belge oluşturur.
  22. 22. [EMPİRE 2.0 KURULUMU ve KULLLANIMI] BGA Bilgi Güvenliği A.Ş. | www.bgasecurity.com | @BGASecurity Windows/ShellCode Launcher: Windows shellcode stager’ı oluşturur.
  23. 23. [EMPİRE 2.0 KURULUMU ve KULLLANIMI] BGA Bilgi Güvenliği A.Ş. | www.bgasecurity.com | @BGASecurity Windows/TeensyLauncher: Teensy için stager kodu içeren script oluştur.
  24. 24. [EMPİRE 2.0 KURULUMU ve KULLLANIMI] BGA Bilgi Güvenliği A.Ş. | www.bgasecurity.com | @BGASecurity OSX Stager’ları OSX/Apple Script Launcher: Empire stager’ı çalıştıran bir applescript oluşturur.
  25. 25. [EMPİRE 2.0 KURULUMU ve KULLLANIMI] BGA Bilgi Güvenliği A.Ş. | www.bgasecurity.com | @BGASecurity OSX/Application: OSX için Empire Application’ı oluşturur. OSX/DuckyLauncher: OSX için stager kodu içeren ducky script oluşturur. (Digispark’a dönüştürülebilir.)
  26. 26. [EMPİRE 2.0 KURULUMU ve KULLLANIMI] BGA Bilgi Güvenliği A.Ş. | www.bgasecurity.com | @BGASecurity OSX/Dynamic Library Extension: OSX için stager kodu içeren .dylib oluşturur. OSX/Jar File: Stager kodu içeren .jar dosyası oluşturur.
  27. 27. [EMPİRE 2.0 KURULUMU ve KULLLANIMI] BGA Bilgi Güvenliği A.Ş. | www.bgasecurity.com | @BGASecurity OSX/Launcher: Bir satırlık stager kodu oluşturur. OSX/Macho: OSX için stager kodu içeren bir macho dosyası oluşturur.
  28. 28. [EMPİRE 2.0 KURULUMU ve KULLLANIMI] BGA Bilgi Güvenliği A.Ş. | www.bgasecurity.com | @BGASecurity OSX/Macro: Ofisin yeni versiyonlarını da destekleyen OSX Office macro’su oluşturur.
  29. 29. [EMPİRE 2.0 KURULUMU ve KULLLANIMI] BGA Bilgi Güvenliği A.Ş. | www.bgasecurity.com | @BGASecurity OSX/ .PKG STAGER: OSX için PKG installer oluşturur. Kurulum tamamlandığında empire launcher başlatır. OSX/HTML Launcher (Safari): HTML payload launcher oluşturur.
  30. 30. [EMPİRE 2.0 KURULUMU ve KULLLANIMI] BGA Bilgi Güvenliği A.Ş. | www.bgasecurity.com | @BGASecurity OSX/Teensy Launcher: OSX için Teensy script oluşturur.
  31. 31. [EMPİRE 2.0 KURULUMU ve KULLLANIMI] BGA Bilgi Güvenliği A.Ş. | www.bgasecurity.com | @BGASecurity Multi Stager’ları Multi/ Bash: Kendi kendisini silen launcher başlatan bir bash script oluşturur.
  32. 32. [EMPİRE 2.0 KURULUMU ve KULLLANIMI] BGA Bilgi Güvenliği A.Ş. | www.bgasecurity.com | @BGASecurity Multi/ Launcher: Tek satırdan oluşan launcher kodu oluşturur.
  33. 33. [EMPİRE 2.0 KURULUMU ve KULLLANIMI] BGA Bilgi Güvenliği A.Ş. | www.bgasecurity.com | @BGASecurity Multi/Macro: Hem Windows için hem OSX için 97-2016 ofis versiyonları için macro oluşturur. Multi/PyInstaller/ELF File: Pyinstaller kullanarak oluşturulmuş empire çalıştıran bir elf dosyası oluşturur.
  34. 34. [EMPİRE 2.0 KURULUMU ve KULLLANIMI] BGA Bilgi Güvenliği A.Ş. | www.bgasecurity.com | @BGASecurity Multi/War: Deploy edilebilir WAR dosyası oluşturur.
  35. 35. [EMPİRE 2.0 KURULUMU ve KULLLANIMI] BGA Bilgi Güvenliği A.Ş. | www.bgasecurity.com | @BGASecurity Empire Agent’ları Bir agent bağlandığında aşağıdaki gibi bir mesaj gelir: Örneğin, [+] Initial agent CGUBKC1R3YLHZM4V from 192.168.52.168 now active. Agents yazarak agents menüsüne ulaşılabilir. Aktif agent’lar ile ilgili temel bilgiler bulunmaktadır. Belirli agentlar üzerinde üzerinde veya agent menüsünden çeşitli komutlar uygulanabilir, Örneğin “Kill All” diyerek tüm agent’lar kapatılabilir. Agent ile ilgili işlem yapmak için "interact AGENT_ISMI" komutunu kullanılır. Agent ismi tüm komutlar için aynı olmalıdır.
  36. 36. [EMPİRE 2.0 KURULUMU ve KULLLANIMI] BGA Bilgi Güvenliği A.Ş. | www.bgasecurity.com | @BGASecurity Interact Komutu Kullanımı:
  37. 37. [EMPİRE 2.0 KURULUMU ve KULLLANIMI] BGA Bilgi Güvenliği A.Ş. | www.bgasecurity.com | @BGASecurity Agent Komutları Agentları kontrol etmek için aşağıdaki komutlar kullanılır.
  38. 38. [EMPİRE 2.0 KURULUMU ve KULLLANIMI] BGA Bilgi Güvenliği A.Ş. | www.bgasecurity.com | @BGASecurity Empire Modülleri Kullanılabilir modülleri görmek için, usemodule <tab> yazılması yeterlidir.
  39. 39. [EMPİRE 2.0 KURULUMU ve KULLLANIMI] BGA Bilgi Güvenliği A.Ş. | www.bgasecurity.com | @BGASecurity Modül adlarını/açıklamalarını aramak için, örneğin "searchmodule privesc" kullanılabilmektedir. Bir modülü kullanmak için örneğin PowerView'dan netview kullanmak için usemodule situational_awareness/network/sharefinder yazılması yeterlidir. Custom Script Modül Kullanımı Default tanımlı gelen modüllere ek olarak, Empire .ps1 scriptlerini kolayca içe aktarabilmektedir. Scripti import etmek için scriptimport ./path/ komutunu kullanılır. Daha sonra script içerisindeki tüm fonksiyonlar "scriptcmd" komutu kullanılarak aktif shell ile uyumlu hale gelecektir. Bir modüle ek olarak fonksiyon eklenebilimesi gibi faydalı bir durum oluşturmaktadır.
  40. 40. [EMPİRE 2.0 KURULUMU ve KULLLANIMI] BGA Bilgi Güvenliği A.Ş. | www.bgasecurity.com | @BGASecurity Empire Trafiği Varsayılan olarak, Empire HTTP listener'ları, üç özel URL ile sürekli olarak konuşacak şekilde ayarlanmıştır. Aşağıda resimde gösterilmiştir.
  41. 41. [EMPİRE 2.0 KURULUMU ve KULLLANIMI] BGA Bilgi Güvenliği A.Ş. | www.bgasecurity.com | @BGASecurity Empire HTTP Request Davranışı Empire URL’leri kolayca değiştirilebilmektedir. Empire C2 farklı HTTP GET ve POST talepleri üretebilmektedir. Örneğin, Empire agent’ları komut çalıştırmak veya dosya yüklemek gibi görevlerde HTTP GET isteklerini kullanır. Empire C2 agent’ları Empire kontrol sunucusuna cevap verilerini göndermek için HTTP POST isteklerini kullanmaktadır. Bu özellikler normal ağ aktivitesi taban hatlarına göre incelenebilir. Örneğin, zaman içinde, Empire kurbanları muhtemelen aşırı sayıda HTTP bağlantısı sergileyecek ve tek bir IP adresine veya domain'e değiştirilen anormal bir veri hacmi gösterecektir. Blue team'ler ayrıca HTTP POST taleplerinde potansiyel olarak anormal davranışlar gözlemleyebilir. Genellikle, HTTP / TCP port 80 üzerinden gönderilen veriler şifrelenmez. Saldırgan, Empire’ın giden iletişiminde 80 numaralı TCP bağlantı noktasını kullanıyorsa, blue- team şifreli verilerin şifrelenmemiş olmamasını beklemeledir. Bu durum fark edilebilir. Fakat bu durum saldırgan normal HTTPS kullanıldığında geçersiz olacaktır.
  42. 42. [EMPİRE 2.0 KURULUMU ve KULLLANIMI] BGA Bilgi Güvenliği A.Ş. | www.bgasecurity.com | @BGASecurity Empire’ın Sistemde Bıraktığı Windows Event Logları İncelemek Windows Event Logları; Yapılandırmaya bağlı olarak, saldırganın faaliyetlerini bütünüyle ayrıntılandıran PowerShell kullanımının bütün log’larını yakalamaktadır. Windows 8, 10 ve Server 2012 R2 gibi işletim sistemleri, varsayılan olarak ayrıntılı PowerShell logları toplamaktadır. Bu loglar, hangi PowerShell komutlarının belirli bir sistemde ne zaman ve nereden (uzaktan veya yerel olarak) yürütüldüğünü gösterecektir. Aşağıdaki ekran görüntüsü, saldırganın Empire C2 kullanmasından sonra oluşturulan log’ları gösterir. Dolayısıyla burada analizcilerden Powershell log’larını bir şekilde Windows üzerinde açmaları (Sysmon ile Powershell log’lanabilir) ve event’ler takip edilmesi gerekmektedir.
  43. 43. [EMPİRE 2.0 KURULUMU ve KULLLANIMI] BGA Bilgi Güvenliği A.Ş. | www.bgasecurity.com | @BGASecurity Empire Tespit Yöntemleri Sysmon ile Powershell Empire Kullanımı Tespit Etmek Bir blue team üyesi için log’ları okumak ve kontrol etmek oldukça zor olabilmektedir. Powershell Empire'ın agent’ları memory üzerinde çalışmaktadır ve minimum düzeyde log üretmektedir. Ayrıca, yeni bir agent dağıtıldığında başlangıç komut dosyasını gizlemektedir. Bu nedenle Powershell ScriptBlock log’larından bir şey elde etmek neredeyse imkansızdır. Temelde aktivitesini gizleme yeteneği ve çeşitli exploitation modüllerini çalıştırabilme yeteneği ile Powershell Empire'ı analistlerin tespit etmesi resmen bir kâbus olmaktadır. Fakat sysmon Powershell Empire'ın kullanımını etkili bir şekilde tanımlamanın bir yöntemi olabilir. Powershell Empire'ı Sysmon ile ve Event Log 1 ve 3 ile etkili bir şekilde tespit etmenin iki yolu vardır. 1) Yeni bir agent yüklemesi üzerine, bu olayların her ikisi de tetiklenir. Event Log 1, aşağıdakine benzer:
  44. 44. [EMPİRE 2.0 KURULUMU ve KULLLANIMI] BGA Bilgi Güvenliği A.Ş. | www.bgasecurity.com | @BGASecurity Sysmon Event Log 1 "CommandLine" parametresinde, "-NoP -sta -w 1 -enc" anahtarlarıyla Powershell'i çalıştıran ve ardından uzun bir base64 kodu ile başlar. Kontrol etmek istediğiniz ilk şey, şu anda Sysmon ile Powershell kullanımını takip ettiğinizden emin olmaktır. Sysmon'u powershell.exe kullanımını içerecek şekilde yapılandırdığınızdan emin olmak için, Sysmon.xml konfigürasyon dosyanızdaki hem Event Log 1 ve 3'ün yapılandırmasına, hem de powershell.exe için ayrı bir konfigurasyon eklemeniz gerekmektedir. Sysmon konfigurasyon dosyasını şuradan bulabilirsiniz: https://github.com/ion-storm/sysmon-config/blob/master/sysmonconfig-export.xml https://github.com/sametsazak/sysmon Powershell kullanımını loglara kaydedecek şekilde yapılandırılmış bir Sysmon'a sahip olduğunuzda ve powershell'in tam yolundan başlayarak "CommandLine" alanına dayalı uyarıları tetiklemek için bazı koşulları yapılandırmanız gerekmektedir. Yukarıdaki konfigürasyonları kullanıyorsanız, yapılandırmışsınız demektir. Powershell agent’larından birisi çalıştığında bu parametrelerle bir Powershell başlatıldığının log’larını üretecektir. 2) Powershell Empire agentlarını tanımlamak için kullanılabilecek ikinci yol ise Sysmon Event Log 3'ü izlemektir. Event Log 3 şuna benzer: Powershell'i kullanarak external (dışarı doğru) bir ağ bağlantısı başlatılması çok nadiren olur ve kullanıcının genellikle bundan haberi olur yani kullanıcı tarafından yapılmış bir işlem sayılabilir. Bu tür bir olayı izleyerek, yalnızca birinin Powershell Empire agent'ını kullanabileceğini değil, aynı zamanda powershell ile dosya indirilmesi, yüklenmesi gibi Powershell'i bu amaçla kullanıldığında da logları üretilmiş olur ve bu logları SIEM'inize yönlendirebilirsiniz ve farklı korelasyonlar oluşturabilirsiniz.
  45. 45. [EMPİRE 2.0 KURULUMU ve KULLLANIMI] BGA Bilgi Güvenliği A.Ş. | www.bgasecurity.com | @BGASecurity IDS (Snort/Suricata) ile Powershell Empire Tespit Etmek Daha önce yazımızda Powershell Empire agentlarının HTTP Request trafiğinden bahsetmiştik, test ortamı olarak bir Windows7 kurup üzerinde powershell empire çalıştırıp bir süre packet capture yaptık. Daha sonra bu pcap kaydını Snort/Suricata ile çalıştırdığımızda güncel kural seti ile aldığımız sonuç… (networktotal.com) ETPRO TROJAN PowerShell Empire Request HTTP Pattern alarmının oluştuğunu görmekteyiz, fakat bu kural ETPRO seti içerisinde mevcut. EmergingThreats’in paralı olan kural seti. Emerging Threats Open Suricata kuralları içerisinde aşağıdaki gibi bir kural var: alert http $HOME_NET any -> $EXTERNAL_NET any (msg:"ET TROJAN PSEmpire Checkin via POST"; flow:to_server,established; content:"POST"; http_method; urilen:14; content:"/admin/get.php"; fast_pattern:only; http_uri; content:"User-Agent|3a 20|Mozilla/5.0 (Windows NT 6.1|3b| WOW64|3b| Trident/7.0|3b| rv|3a|11.0) like Gecko|0d 0a|"; http_header; content:!"Referer|3a 20|"; http_header; content:!"|0d 0a|Accept"; http_header; pcre:"/Cookiex3ax20SESSIONID=[A-Z0-9]{16}rn/"; reference:url,www.powershellempire.com; classtype:trojan-activity; sid:2021616; rev:2; metadata:created_at 2015_08_12, updated_at 2015_08_12;) Şimdi bu kural bize ne söylemektedir? Adım adım inceleyeceğiz: 1. Bu kuralın tetiklenmesi için trafiğin $HOME_NET : any port olarak tanımlanmış olan yerden örneğin(192.168.0.0/16) $EXTERNAL_NET : any port olarak tanımlanmış yere gitmesi gerekiyor: 2. HTTP content içerisinde POST methodu olmaası gerekiyor. 3. HTTP content içerisinde “/admin/get.php” olması gerekiyor. 4. HTTP content içerisinde User Agent pattern’i aşağıdaki gibi olması gerekiyor. 5. ”User-Agent|3a 20|Mozilla/5.0 (Windows NT 6.1|3b| WOW64|3b| Trident/7.0|3b| rv|3a|11.0) like Gecko|0d 0a|" 6. HTTP Header content’i şu pattern/patternleri içermemesi gerekiyor. "Referer|3a 20|";"|0d 0a|Accept";"|0d 0a|Accept" 7. "/Cookiex3ax20SESSIONID=[A-Z0-9]{16}rn/" regex pattern’i ile bir http header beklenmektedir.
  46. 46. [EMPİRE 2.0 KURULUMU ve KULLLANIMI] BGA Bilgi Güvenliği A.Ş. | www.bgasecurity.com | @BGASecurity Powershell Empire bu kurala her ne kadar şuanki trafiği ile yakalanıyor olsa da trafiğin bu kurala ya da benzer kurallara yakalanmaması için düzenlenmesi zor bir işlem değil. Örneğin burada admin/get.php yerine farklı bir dosya/dizin kullanılsaydı ve diğer content içerikleri değiştirilmiş olsaydı kural bypass edilmiş olurdu. Bu kuralların dışında PTResearch tarafından 2 adet kural daha yazılmış Powershell Empire’ı tespit etmek için: https://github.com/ptresearch/AttackDetection/blob/master/PowerShell%20Empire/power _shell_empire.rules alert http $HOME_NET any -> $EXTERNAL_NET any (msg: "MALWARE [PTsecurity] PowerShell Empire Request HTTP Pattern";flow: established, to_server; content: "POST"; http_method; content: "HTTP/1.1|0d0a|Cookie: session="; depth:1000; fast_pattern; content: "=|0d0a|User- Agent: "; distance:27; within:400; content: "Host: "; within:400; content: "Content-Length: 462|0d0a|"; within: 400; content:!"Referer|3a|"; http_header; content: !"Content-Type: "; http_header; classtype: trojan-activity; metadata: id_399044,created_at 2017_11_21; reference: url, github.com/ptresearch/AttackDetection; metadata: Open Ptsecurity.com ruleset; sid: 10002268; rev: 2;) alert http $EXTERNAL_NET any -> $HOME_NET any (msg: "MALWARE [PTsecurity] PowerShell Empire stager receive over HTTP";flow: established, to_client; content:"200"; http_stat_code; content: "If($PSVersionTable.PSVersion.Major -ge 3){"; http_server_body; nocase; depth: 1000; content: "$GPS=[ref].Assembly.GetType(";http_server_body; nocase; within: 100; content: "System.Management.Automation.Utils";http_server_body; within: 100; threshold: type limit, track by_src, count 1, seconds 30; classtype: trojan-activity; metadata: id_377596,created_at 2017_11_22; reference: url, github.com/ptresearch/AttackDetection; metadata: Open Ptsecurity.com ruleset; sid: 10002269; rev: 1;)
  47. 47. [EMPİRE 2.0 KURULUMU ve KULLLANIMI] BGA Bilgi Güvenliği A.Ş. | www.bgasecurity.com | @BGASecurity Carbon Black İle Powershell Empire Tespit Etmek Carbon Black, Üst düzey güvenlik operasyon merkezleri ve blue team ekipleri için filtrelenmemiş görünürlük sağlayan ölçeklenebilir, gerçek zamanlı tehdit avcılığı ve olay müdahale (IR) çözümüdür. Hali hazırda Carbon Black kullanıyorsanız birazdan aşağıda örneğini vereceğim kurallar muhtemelen zaten deploy edilmiş ve aktifleştirilmiştir. Powershell Empire’ı tespit etmek için oluşturulan kurallara yakından bakalım: Kural 1: ● process_name:powershell.exe AND netconn_count:[1 TO *] AND (cmdline:”-Enc” OR cmdline:”-Exec” OR cmdline:”bypass” OR cmdline:”hidden”) Şimdi bu kuralı adım adım inleyelim. 1- İlk olarak process_name = powershell.exe olmalı, 2- En az 1 network bağlantısı yapmış olmalı, 3- Commandline parametresi olarak en az yukardaki -ENC, -EXEC şeklinde bir parametre kullanmalı. Bu kural deploy edildiğinde sadece Empire değil bu şekilde çalışan bütün Powershell kullanımlarını yakalayacaktır.
  48. 48. [EMPİRE 2.0 KURULUMU ve KULLLANIMI] BGA Bilgi Güvenliği A.Ş. | www.bgasecurity.com | @BGASecurity (https://www.carbonblack.com/2015/08/14/how-to-detect-powershell-empire-with-carbon-black/)
  49. 49. [EMPİRE 2.0 KURULUMU ve KULLLANIMI] BGA Bilgi Güvenliği A.Ş. | www.bgasecurity.com | @BGASecurity Splunk ile Powershell Empire Tespit Etmek Splunk, Enterprise bir SIEM ürünüdür. Daha önce yazımızda anlattığımız Sysmon ve Windows event log’ları takip ederek Powershell Empire tespit yöntemi gibi Splunk’ta Powershell Empire agent’larını tespit etmek için aynı yöntemi uygulamaktadır. Yani kısaca Powershell log’ları üzerinden gidilerek tespit edilecektir.
  50. 50. [EMPİRE 2.0 KURULUMU ve KULLLANIMI] BGA Bilgi Güvenliği A.Ş. | www.bgasecurity.com | @BGASecurity
  51. 51. [EMPİRE 2.0 KURULUMU ve KULLLANIMI] BGA Bilgi Güvenliği A.Ş. | www.bgasecurity.com | @BGASecurity Windows Üzerinde Powershell Empire Temizleme Bu kısımda aslında Powershell Empire'ın "Persistence" yani sistem üzerinde kalıcı olmayı sağlayan modülleri üzerine ve bu modüllerin nasıl kaldırılacağına değineceğiz. Kalıcılık modüllerinin amacı, sunuculara sürekli olarak erişebilmenizi sağlamaktır. Powershell Empire agent’ları memory üzerinde çalışır ve herhangi bir dosya oluşturmaz. Ancak saldırganlar için olumsuz olan şey, yeniden başlatma veya herhangi bir işlerin ters gitme olasılığına karşı kalıcılık sağlamak için diske dokunmaktadır. Bu, savunucuların bulabileceği veya güvenlik araçlarının algılayabileceği eserler bırakır. Powershell Empire persistence modüllerini tespit etmek ve temizlemek için NorkNork adında bir araçtan faydalanacağız: Github: https://github.com/n00py/NorkNork Bu araç kısaca aşağıdaki Empire'ın "kalıcılık" için uyguladığı yöntemleri Windows üzerinde bulur ve düzeltir: ● Scheduled Tasks (Zamanlanmış Görevler) ● Auto-run (Başlangıçta otomatik çalıştırılanlar) ● WMI subscriptions (WMI eventleri) ● Security Support provider ● Ease of Access Center backdoors ● Machine account password disable Nasıl Kullanılır? İndirdikten sonra aşağıdaki komutlar kullanılarak çalıştırılabilir: PS C:Users>python norknork.py PS C:Users> .norknork.exe
  52. 52. [EMPİRE 2.0 KURULUMU ve KULLLANIMI] BGA Bilgi Güvenliği A.Ş. | www.bgasecurity.com | @BGASecurity Kaynaklar: - https://www.sans.org/reading-room/whitepapers/incident/disrupting-empire- identifying-powershell-empire-command-control-activity-38315 - https://www.n00py.io/2017/01/removing-backdoors-powershell-empire-edition/ - https://twitter.com/x0rz/status/933349566543523840?lang=en - https://blog.rapid7.com/2018/09/27/the-powershell-boogeyman-how-to-defend- against-malicious-powershell-attacks/ - https://www.splunk.com/blog/2017/07/06/hellsbells-lets-hunt-powershells.html# - https://www.sans.org/cyber-security-summit/archives/file/summit-archive- 1511980157.pdf - https://www.trendmicro.com/vinfo/us/security/news/security-technology/security- 101-the-rise-of-fileless-threats-that-abuse-powershell - https://www.carbonblack.com/2015/08/14/how-to-detect-powershell-empire-with- carbon-black/
  53. 53. [EMPİRE 2.0 KURULUMU ve KULLLANIMI] BGA Bilgi Güvenliği A.Ş. | www.bgasecurity.com | @BGASecurity BGA Bilgi Güvenliği A.Ş. Hakkında BGA Bilgi Güvenliği A.Ş. 2008 yılından bu yana siber güvenlik alanında faaliyet göstermektedir. Ülkemizdeki bilgi güvenliği sektörüne profesyonel anlamda destek olmak amacı ile kurulan BGA Bilgi Güvenliği, stratejik siber güvenlik danışmanlığı ve güvenlik eğitimleri konularında kurumlara hizmet vermektedir. Uluslararası geçerliliğe sahip sertifikalı 50 kişilik teknik ekibi ile, faaliyetlerini Ankara ve İstanbul ve USA’da sürdüren BGA Bilgi Güvenliği’nin ilgi alanlarını “Sızma Testleri, Güvenlik Denetimi, SOME, SOC Danışmanlığı, Açık Kaynak Siber Güvenlik Çözümleri, Büyük Veri Güvenlik Analizi ve Yeni Nesil Güvenlik Çözümleri” oluşturmaktadır. Gerçekleştirdiği başarılı danışmanlık projeleri ve eğitimlerle sektörde saygın bir yer edinen BGA Bilgi Güvenliği, kurulduğu günden bugüne alanında lider finans, enerji, telekom ve kamu kuruluşlarına 1.000'den fazla eğitim ve danışmanlık projeleri gerçekleştirmiştir. BGA Bilgi Güvenliği, kurulduğu 2008 yılından beri ülkemizde bilgi güvenliği konusundaki bilgi ve paylaşımların artması amacı ile güvenlik e-posta listeleri oluşturulması, seminerler, güvenlik etkinlikleri düzenlenmesi, üniversite öğrencilerine kariyer ve bilgi sağlamak için siber güvenlik kampları düzenlenmesi ve sosyal sorumluluk projeleri gibi birçok konuda gönüllü faaliyetlerde bulunmuştur. BGA Bilgi Güvenliği AKADEMİSİ Hakkında BGA Bilgi Güvenliği A.Ş.’nin eğitim ve sosyal sorumluluk markası olarak çalışan Bilgi Güvenliği AKADEMİSİ, siber güvenlik konusunda ticari, gönüllü eğitimlerin düzenlenmesi ve siber güvenlik farkındalığını arttırıcı gönüllü faaliyetleri yürütülmesinden sorumludur. Bilgi Güvenliği AKADEMİSİ markasıyla bugüne kadar “Siber Güvenlik Kampları”, “Siber Güvenlik Staj Okulu”, “Siber Güvenlik Ar- Ge Destek Bursu”, ”Ethical Hacking yarışmaları” ve “Siber Güvenlik Kütüphanesi” gibi birçok gönüllü faaliyetin destekleyici olmuştur.

×