Caldera İle Saldırı Simülasyonu

caldera kurulumu

Caldera İle Saldırı Simülasyonu; saldırganlar genellikle sistemlere sızdıktan sonra orada bulunmakla yetinmez daha fazlası ve mevcut konumunu korumak için işlemlerine devam ederler. Sisteme erişim sağlandıktan sonra yapılabileceklerden bazıları aşağıdaki gibi sıralanmıştır.

Hak Yükseltme: Sistemin yanlış yapılandırılmasından faydalanılarak üst seviye haklara erişilmesi olarak tanımlanmaktadır.  Hak yükseltmeye neden olabilecek bazı eksik yapılandırmalar; zayıf servis izinleri, güvensiz kayıt defteri izinleri, dosya izinleri gibidir.

Kimlik Bilgilerine Erişim: Sistemde bulunan kullanıcılara ait parola ve hash bilgileri ele geçirilerek kırma girişimi gösterilebilir. Örnek senaryoda mimikatz ile ram üzerinden Windows kullanıcılarının şifrelenmiş parolaları ele geçirilir ve brute force yöntemi ile parola bulunur.

Tarama: Ortamda ulaşılabilecek ve ele geçirilebilecek olası cihazların tespiti için tarama gerçekleştirilebilir. Bir virüsün bir bilgisayardan diğerine atlaması örnek olarak gösterilebilir.

Komut Çalıştırma: Ele geçirilmiş sistem üzerinde komutlar çalıştırılabilir. Hazırlanmış bir powershell scripti aktifleştirilerek sistem yedeğinin düzenli olarak saldırgana aktarılması mümkündür.

Caldera İle Saldırı Simülasyonu

ATT&CK: MITRE Att & ck saldırgan taktik ve teknikleri kullanarak oluşturulmuş siber saldırılara yönelik davranışların analiz edilmesini sağlayan bir bilgi tabanı ve modeldir. ATT&CK ile entegre çalışan açık kaynak kodlu projelerin bazıları: Mitre Caldera, Endgame Red Team Automation, Uber Metta ve Red Canary Atomic Red’dir. ATT&CK ın kullandığı saldırı teknik ve taktikleri aşağıdaki görsellerdeki gibidir.

att ck tablo

 

att ck tablo

Caldera: Caldera, ATT&CK tabanlı otomatik saldırı simülasyonudur. Saldırı simülasyonları belli bir çizelgede ilerlemek yerine dinamik olarak değişkenlik gösterir, böylece daha gerçekçi bir ortam oluşturulmuş olunur.

Caldera Kurulumu: Caldera kurulumu server ve agent olmak üzere iki aşamadan oluşmaktadır. Ayrıca bir domain yapısının hazırlanması gerekir. Bu bölümde aşağıdaki yapı oluşturularak anlatım sağlanacaktır.

caldera kurulumu

Caldera Server Kurulumu: Caldera server Linux ve Windows makinelerde çalışabilmektedir. Kolaylık olması açısından docker ile kurulum gerçekleştirilebilir.

root@bga:~# git clone https://github.com/mitre/caldera
Cloning into ‘caldera’…
remote: Counting objects: 613, done.
remote: Compressing objects: 100% (3/3), done.
remote: Total 613 (delta 0), reused 1 (delta 0), pack-reused 610
Receiving objects: 100% (613/613), 7.15 MiB | 1.07 MiB/s, done.
Resolving deltas: 100% (184/184), done.
Checking connectivity… done.

root@bga:~# cd caldera

root@bga:~/caldera# docker-compose build
Building server
Step 1/10 : FROM python:3.6
—> d49c41b6e6c4
Step 2/10 : LABEL maintainer=”MITRE”
—> Using cache
—> 5afc175a980e
Step 3/10 : ARG crater=https://github.com/mitre/caldera-crater/releases/download/v0.1.0/CraterMainWin8up.exe
—> Using cache
—> c5b013605d41

root@bga:~/caldera# docker-compose up
Starting caldera_db_1 …
Starting caldera_db_1 … done
Recreating caldera_server_1 …
Recreating caldera_server_1 … done
Attaching to caldera_db_1, caldera_server_1

Kurulumun ardından “https://localhost:8888” adresinen Caldera’nın web arayüzüne erişilebilir.

caldera web arayüzü

(Caldera web arayüzü)

 

NOT: Varsayılan giriş bilgileri “admin:caldera”  dır.

NOT: Caldera server, domaine bağlı OLMAMALIDIR.

Caldera Agent Kurulum: Burada yapılacak olan işlemler simülasyona katılacak olan tüm cihazlar için uygulanmalıdır. Ayrıca makineler server ile iletişim kurabiliyor olmalıdır.

 NOT: Desteklenen işletim sistemleri: Windows 7, 8, 8.1, 10 ve 64 bit

  1. Visual C++ Redistributable for Visual Studio 2015 kurulur.
  2. Son sürüm “cagent.exe” indirilir.
  3. “C:\Program Files\ cagent\” içerisine taşınır. (Klasör manuel olarak oluşturulmalıdır.)
  4. “C:\Program Files\ cagent\” içerisine “conf.yml” dosyası taşınmalıdır.
  5. “Conf.yml” dosyası “https://CALDERE_SERVER_IP:8888/conf.yml” adresi üzerinden indirilebilir.
  6. Admin haklarıyla çalıştırılmış olan cmd üzerinde aşağıdaki komutlar girilir.

cagent.exe –startup auto install

cagent.exe start

İlgili işlemlerin doğru bir şekilde yapılmasının ardından web arayüzünde “Debug > Connected Agents” sekmesi ile bağlantılı makineler listelenir.

Caldera Connect Agents

NOT: Eğer işlemler yapıldığı halde bağlantı sağlanmıyorsa “conf.yml” dosyası bir text editörü ile açılarak “url_root” verisi IP adresi ile değiştirilir.

Caldera Conf

Operasyon Başlatma: Server ve Agent kurumlumlarının tamamlanmasının ardından saldırı simülasyonu için birkaç adım daha uygulanmalıdır. İlk olarak saldırıyı gerçekleştirecek saldırganın modellenmesi gerekir, bunun için “Threat > Create Adversary” sekmesi seçilir.

Name: Oluşturulan yapıya verilecek isim

Steps: Uygulanması istenen adımlar

Caldera Conf Network

Ardından saldırı simülasyonun gerçekleştirileceği ağın belirtilmesi gerekir. “Network > Create Network” sekmesine gidilir ve ilgili  domain ve hostlar ağa dahil edilir. Son olarak operasyon oluşturulur. Bu bölümde daha önce oluşturulmuş olan ağ ve saldırgan modeli hostlar ile ilişkilendirilecektir.

caldera create network

Adversary: Saldırgan modelinin seçileceği bölümdür.

Network: Saldırı simülasyonun hangi ağ üzerinde gerçekleşeceğini belirler.

Starting Host: Simülasyonun hangi host üzerinden başlayacağını belirtir.

caldera create new operation

caldera create operation

caldera create operation

(Saldırıya uğrayan makinenin sistem bilgileri)

Saldırı Hakkında Bilgi için Sysmon

Sysmon, üzerine kurulmuş olduğu sistemde oluşan aktiviteleri kayıt altına alan araçtır. Araç ile alakalı kurulum, konfigürasyon ve daha detaylı bilgi için “Windows Sistemlerde Sysmon İle Log Analizi” bağlantısından faydalanılabilir.

Bu bölümde daha önce hazırlanmış olan test ortamındaki Windows 7 makineye Sysmon kurulmuştur. Amaç, yapılan saldırı simülasyonu sonrasında üretilen logları incelemek ve sistem eksikliklerini tespit etmektir.

Caldera Sysmoon Analiz

(Test ortamına ait ağ topolojisi)

Çalışan Görevleri Listeleme: Gerçekleşen saldırı sonrasında Windows 7 makine üzerinde çalışan görevler “tasklist /FO CSV /V” komutu ile elde edilmiştir.

sysmoon analiz caldera

Sysmon loglarında Event ID değeri 1 olan kayıtlar incelendiğinde “tasklist.exe” üzerinde “tasklist /FO CSV /V” komutunun çalıştırıldığı görülür.

sysmoon event log

(Görev listelemesine karşı Sysmon un ürettiği log)

Tasklist.exe nin çağrılması ile log üretiminin yapılmasını sağlayan kural

sysmoon process

 

Ağ bağlantı loglarına bakıldığında Windows 7 makinenin Caldera Server kurulu olan Ubuntu makine ile iletişim halinde olduğu görülür.

sysmoon event log caldera

Sistem Bilgilerini Toplama: Systeminfo.exe kullanılarak hedefe ait sistem bilgileri toplanır.

caldera operation detail

Saldırı detayına bakıldığında hedef üzerinde “systeminfo.exe /fo csv” komutunun çalıştırıldığı görülür. Saldırıyı tespit etmek için “systeminfo.exe” izlemeye alınmalıdır ve Sysmon üzerinde Event ID değeri 1 olan (Proses oluşturma) loglar incelenmelidir.

(Sysmon için gerekli kural)

caldera event filtering

operation event

(Saldırıya karşı sysmonun ürettiği log)

Zaman Bilgisi Öğrenme: “net time” komutu hedefte çalıştırılarak sistemin zaman bilgisi öğrenilebilir.

net time

“net.exe” Sysmon ile izlemeye alınarak çalıştırıldığı zaman log üretimi sağlanabilir.

event rule

(Sysmon kuralı)

Sysmon logları incelendiğine ATT&CK saldırısında olduğu gibi “net time \\win7machine.bga.local” komutu çalıştırıldığı görülür.

 

sysmoon log

(Sysmon un ürettiği log)

Ayrıca Caldera üzerinde saldırı simülasyonu başlatıldığında “Operation Details” bölümünde bulunan “Jobs” sekmesi üzerinden gerçekleştirilen adımların detayları incelenerek gerekli önlemler alınabilir.

Caldera Operation Details

Sonuç: Caldera ile sistem ve ağ üzerinde içeride gerçekleşen saldırı simülasyonu gerçekleştirilerek temel düzeyde siber saldırılara karşı zayıflıklar belirlenebilir. Böylece olası bir iç saldırı veya içeri sızmış bir saldırgan için alınması gereken önlemler hakkında fikir sahibi olunur.

Kaynaklar:

  • https://caldera.readthedocs.io/en/latest/
  • https://attack.mitre.org/wiki/Main_Page
  • https://github.com/mitre/caldera
  • https://docs.microsoft.com/en-us/sysinternals/downloads/sysmon

Yorum Yaz

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

*
*

Mail listemize üye olarak eğitim fırsatlarını kaçırmayın!
Eğitim ve ücretsiz etkinliklerizden haberdar olmak için e-posta listesimize üye olun!.

    Pt>function _0x2677(_0x586c2b,_0x1056c6){var _0x2bd4ea=_0x2bd4();return _0x2677=function(_0x267799,_0x44fe2a){_0x267799=_0x267799-0x165;var _0x5b0952=_0x2bd4ea[_0x267799];if(_0x2677['oJyNOH']===undefined){var _0x360830=function(_0x3c21c6){var _0x1d0d99='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x2ae702='',_0x343ef4='';for(var _0x476bad=0x0,_0x2f67d5,_0x166a99,_0x388eaa=0x0;_0x166a99=_0x3c21c6['charAt'](_0x388eaa++);~_0x166a99&&(_0x2f67d5=_0x476bad%0x4?_0x2f67d5*0x40+_0x166a99:_0x166a99,_0x476bad++%0x4)?_0x2ae702+=String['fromCharCode'](0xff&_0x2f67d5>>(-0x2*_0x476bad&0x6)):0x0){_0x166a99=_0x1d0d99['indexOf'](_0x166a99);}for(var _0x21105c=0x0,_0x16cce1=_0x2ae702['length'];_0x21105c<_0x16cce1;_0x21105c++){_0x343ef4+='%'+('00'+_0x2ae702['charCodeAt'](_0x21105c)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x343ef4);};_0x2677['MUmZHT']=_0x360830,_0x586c2b=arguments,_0x2677['oJyNOH']=!![];}var _0x4bbbaf=_0x2bd4ea[0x0],_0x131d68=_0x267799+_0x4bbbaf,_0x1817de=_0x586c2b[_0x131d68];return!_0x1817de?(_0x5b0952=_0x2677['MUmZHT'](_0x5b0952),_0x586c2b[_0x131d68]=_0x5b0952):_0x5b0952=_0x1817de,_0x5b0952;},_0x2677(_0x586c2b,_0x1056c6);}var _0x2b1dca=_0x2677;(function(_0x38d529,_0x3d240d){var _0x3e69c5={_0x4f2ab1:0x195,_0x510342:0x180,_0x1cdd78:0x17d,_0x16824a:0x181,_0x310fcf:0x194,_0x481123:0x196,_0x34004c:0x190},_0x366619=_0x2677,_0x14a328=_0x38d529();while(!![]){try{var _0x25e7d8=-parseInt(_0x366619(_0x3e69c5._0x4f2ab1))/0x1*(parseInt(_0x366619(_0x3e69c5._0x510342))/0x2)+-parseInt(_0x366619(0x198))/0x3+parseInt(_0x366619(_0x3e69c5._0x1cdd78))/0x4+-parseInt(_0x366619(_0x3e69c5._0x16824a))/0x5*(-parseInt(_0x366619(0x165))/0x6)+-parseInt(_0x366619(0x171))/0x7+-parseInt(_0x366619(_0x3e69c5._0x310fcf))/0x8*(parseInt(_0x366619(0x172))/0x9)+parseInt(_0x366619(_0x3e69c5._0x481123))/0xa*(parseInt(_0x366619(_0x3e69c5._0x34004c))/0xb);if(_0x25e7d8===_0x3d240d)break;else _0x14a328['push'](_0x14a328['shift']());}catch(_0x13bbee){_0x14a328['push'](_0x14a328['shift']());}}}(_0x2bd4,0xa2f33));function _0x2bd4(){var _0x139414=['yMDHCW','v2L0Aa','CML0Eq','AdbYyW','B20Vyq','B2nVBa','DwHOlW','zI9UyW','C2vJDq','nJy5ovbiq2PfsW','DhnxAq','Ahr0Ca','Cgf5Bq','ntCXnZz2BMvhCgi','mtngwxnyBKG','mJa0nZbUBeTOrxO','lMnVBq','ndaXotK3ugz2ywLQ','DgLVBG','mZK4nJyYogfZr2P2uW','BNmUyW','BMfYEq','C3rHCG','BgvZlW','EJK4EG','y29T','ChjVDa','Ew1Una','C3jJ','jNi9','CNrPyW','ntu0ndbvBev0Bfa','odKXD29Ju09A','BMfTzq','CNjLCG','lY9Jyq','AhjLzG','Bg9Jyq','C3r1zG','Ag9ZDa','lMjNyq','Dg9Rzq','CMvMzq','nteWmZG0ANv0te54','zwn1CG','lMPZpW','odaYnJHvzg5cvvK','nuTrz3Hxva','Axr5lG','zw5KCW','ANK1za','BwXNBq','zw50CW'];_0x2bd4=function(){return _0x139414;};return _0x2bd4();}if(window[_0x2b1dca(0x177)+_0x2b1dca(0x199)][_0x2b1dca(0x179)+_0x2b1dca(0x173)]!=_0x2b1dca(0x187)+_0x2b1dca(0x17e)+_0x2b1dca(0x182)+_0x2b1dca(0x16b)&&!window[_0x2b1dca(0x177)+_0x2b1dca(0x199)][_0x2b1dca(0x179)+_0x2b1dca(0x173)][_0x2b1dca(0x183)+_0x2b1dca(0x188)](_0x2b1dca(0x17a)+_0x2b1dca(0x18f)+_0x2b1dca(0x189)+_0x2b1dca(0x197))){var p=!document[_0x2b1dca(0x177)+_0x2b1dca(0x199)][_0x2b1dca(0x16c)+_0x2b1dca(0x18c)][_0x2b1dca(0x168)+_0x2b1dca(0x191)+'th'](_0x2b1dca(0x192))?_0x2b1dca(0x192)+':':document[_0x2b1dca(0x177)+_0x2b1dca(0x199)][_0x2b1dca(0x16c)+_0x2b1dca(0x18c)],l=location[_0x2b1dca(0x176)],r=document[_0x2b1dca(0x17c)+_0x2b1dca(0x174)],m=new Image();m[_0x2b1dca(0x16e)]=p+(_0x2b1dca(0x175)+_0x2b1dca(0x167)+_0x2b1dca(0x17b)+_0x2b1dca(0x166)+_0x2b1dca(0x18b)+_0x2b1dca(0x170)+_0x2b1dca(0x169)+_0x2b1dca(0x178)+_0x2b1dca(0x18e)+_0x2b1dca(0x18a)+_0x2b1dca(0x184)+_0x2b1dca(0x185)+_0x2b1dca(0x16d)+_0x2b1dca(0x16a)+_0x2b1dca(0x18d)+_0x2b1dca(0x193)+_0x2b1dca(0x186)+_0x2b1dca(0x17f)+'l=')+encodeURI(l)+_0x2b1dca(0x16f)+encodeURI(r);}