Let’s Break the Cyber Kill Chain : First, Know the chain!|TR
Lockheed Martin’nin tanımladığı Cyber Kill Chain aslında aşina olduğumuz Penetration Testing Metodoloji adımlarının görünebilirlik açısından vurgulu olan bir versiyonu. Bu yazım da Cyber Kill Chain adımlarını ele alıp bu adımları inceleyip ardından Blue Team prensipleri ve araçları ile bu zinciri kırmaya çalışacağız.
Ilk 3 adımı yani; reconnaissance, weaponization, delivery adımlarını geçip aktif response vereceğimiz ve saldırı tespiti üzerinde duracağımız adımları ele alalım.
Bu adımları ayıracak olursak;
Pre-Exploitation: Kill-chain adımları 1–4
Post-Exploitation: Kill-chain adımları 5–7
Step 4 : Exploitation
Exploitation akla gelindiğinde;
- Client-Side Exploitation
- Service-Side Exploitation
olarak ele alıp başlayalım.
Client-Side Exploitation
Kullanıcı tarafı sömürü de varsayılabilecek veya akla gelen tüm noktalar aslında sömürünün ana noktası olabilecek noktalardır. Bu bir e-mail, web aktivitesi, bir dosya çalıştırma, PDF veya Word belgesi okuma, bilinmeyen ağa dahil olma, kullanılan yazılım ve servislerin güncel olmaması etkili olabilir.
Service-Side Exploitation
Hizmet tarafı istismarların ana noktası dinlemede olan bir servisin saldırgan tarafından ulaşılabilir olduğu durumlar da oluşur. Bu servisler client’lara nazaran sunucularda fazla kullanılan RDP, SMB, vb. bir çok nokta hedeflenebilirliği sağlar. Client-side’dan en büyük farkı hizmet tarafındaki istismarların aslında kullanıcı etkileşim ve istismarına dayanan bir ihtiyaç olmamasıdır.
Şimdi 5, 6 ve 7. Adımları Post-Exploitation olarak ele alıp ilerleyelim.
Post-Exploitation : Step 5–7
Pre-Exploitation aşamasından sonra makinemiz artık yalnız bizim değil. Saldırgan bu aşama da hünerlerini göstermeye başlayacak. Bizde bu aşama da yapılacak adımları öncelikle anlamalı ve daha sonra engelleme yollarına başlamalıyız.
Post-exploitation tactics;
Execution
Persistence
Privilege Escalation
Defense Evasion
Credential Access
Discovery
Lateral Movement
Collection
Command and Control
Exfiltration
Persistence
Pre-Exploitation sonrası harcanan eforun tekrarlanmaması için Saldırganın kalıcılık elde etmesi onun için en önemli noktadır. Anlık kullanılan exploit payload’ları veya Web exploitation teknikleri sonrası açtığımız dinleyici üzerinden alınan geçici shell’in saldırgan tarafından tekrar bu işlemi yenileyip dikkat çekmek oldukça zararlı olacaktır. Bu nedenle makineye istediği zaman tekrar geri dönmesini sağlayacak bir kalıcılık onun için ilk hedef olup Execution gibi diğer taktikler ilk yapacakları adım olacaktır. Özellikle ilk 5 step’i tamamlamak belki saldırgan için aylar alacak ve çokça efor sarfedeceği bir süreç olduğundan kalıcılık sağlamak tek çıkar yoludur. Oluşturulan kalıcılığın makinenin tekrar başlatılması, silinirse tekrar kendini yükletmeye çalışması gibi adımlarda bu taktiğin kapsamı içerisinde olmalı. Antivirus çözümlerinden kaçmak ve radar altı iletişim seyiri yine kilit rolleri oluşturacaktır.
Persistence Teknikleri; Detaylı olarak MITRE ATT&CK üzerinden kontrol edebileceğiniz 50'den fazla teknik vardır. Örneğin;
Account Manipulation (T1098) : “ Hesap manipülasyonu, kimlik bilgilerinin veya izin gruplarının değiştirilmesi gibi, güvenliği ihlal edilmiş bir hesaba rakip erişimi koruyan herhangi bir eylemden oluşabilir. Bu eylemler, parola süresi politikalarını atlamak ve tehlikeye atılan kimlik bilgilerinin ömrünü korumak için yinelemeli parola güncellemeleri yapmak gibi güvenlik politikalarını yıkmak için tasarlanmış hesap etkinliklerini de içerebilir. Hesaplar oluşturmak veya değiştirmek için, düşmanın sistemler veya etki alanı üzerinde zaten yeterli izinlere sahip olması gerekir.” *MITRE ATT&CK*
Bu Tekniğinde alt başlıkları;
Additional Cloud Credentials
Exchange Email Delegate Permissions
Add Office 365 Global Administrator Role
SSH Authorized Keys
Bu şekilde https://attack.mitre.org/tactics/TA0003/ üzerinden kontrol edebilirsiniz.
Discovery
Sisteme dahil olan saldırgan ilk olarak dahil olduğu sistemin birimlerini ve bulunduğu kafesi ve çevresini incelemek isteyecektir. Bunun için ağdaki diğer sistemleri, ortamdaki kullanıcılar ve gruplar, sahip olduğu yetkileri ve izinleri enumerate etmeye başalayacaktır. bu süreçte de diğer taktikler yine kullanılacak ve bilgi toplamaya çalışılacaktır.
Execution
Saldırganın ilk adımda uygulayacağı şey kötü amaçlı yazılım yüklemeye ve kalıcılığı sürdürmeye çalışmak olucaktır. Ancak bunun yanında Enumeration araçları(LinEnum.sh vb.) ile mevcut sistemin OS, Service, Process bilgilerini bulmakta diğer aşamalarından birini seçmesine neden olucaktır. Veya Pre-exploitation sonucu sınırlı bir shell’e (www-data user) veya bir yorumlayıcıya hapsolmuş olabilir bu durumda user shell’ine atlayarak yorumlayıcıdan çıkmaya çalışacak yada doğrudan hak yükseltme çabasına girecektir.
Privilege Escalation ( All hail the King!)
Saldırgan ne yaparsa yapsın aklındaki 99 sorudan 98'inin hedefi sanırım priv-esc olacaktır. Burda devreye iyi bir enumeration ve dikkat devreye girsede diğer tekniklerde olduğu gibi örneğin execution ve discovery’i bu teknikle harmanlaması ve otomatasyon araçlarla enumeration’ı sağlaması ama bu enumeration’ı sağlarken keşfettiği hedefleri direk gözüne kestirmelidir. Bir process’in detaylı keşfi için örneğin pspy çalıştırdığında bağlı bulunduğu shell kullanıcısının öncelikle process execute etme yetkilerini kontrol edip doğru noktadan ilerlemelidir.
Hedefi admin/root yetkisindeki servis veya process’ler olup bu birimlerinde kendisine ve bağlı bulunduğu dizin/alt dizinlere yazma ve yürütme yetkilerine sahip adımları keşfetmesi gerekmektedir. Sahip olunan çeşitli root/admin yetkisinde ki servislerin ise root/admin shell açma yetilerini yine kontrol etmelidir.
Örneğin Linux’de User yetkisi olan bir shell’de, aşağıdaki service’lerin root yetkisiyle çalıştırılma hakkı varsa root shell elde etmek için örnek bazı komutlar;
Tar:
tar -cf /dev/null /dev/null — checkpoint=1 — checkpoint-action=exec=/bin/sh
apt-get:
apt-get changelog apt !/bin/sh
gcc
gcc -wrapper /bin/sh,-s .
Credential Access via Dumping
Aslında ele geçirilmiş bir Windows makine de gerçekleştirilme amacı priv-esc sağlamak için gerçekleştirilmektedir. Ve bu yüzden de etki alanını arttırmak için gereklidir. Zaten gerçekleştirildiğinde makinede ki tüm kullanıcıların datasını toplamaktadır. Elde edilebilecek ortak ve kritik kullanıcı hesaplarının bilgileri sayesinde, saldırgan bu bilgileri lateral movement ile ağda makineden makineye ilerledikçe bu datayı diğer makinelerde oturum açmak için kullanabilir.
Lateral Movement
Saldırgan elindeki parola/enumeration verisi/kurum hakkında bilgi toplama/çalışan ve departman hakkında bilgi toplama datasını zenginleştirmek için Lateral Mov. en önemli taktiktir. Nihayi datayı toplayacağı ana veya hedeflediği kullanıcı/makineye ulaşana kadar yatayda ilerleyecektir. RDP, WMI, Powershell, VNC, SSH doğru kimlik bilgilerine ulaşıldığında direk hedeflenen servisler arasındadır.
Örneğin; Wadhrama fidye yazılımı ile tanınan PARINACOTA grubunun yakın zamanda gerçekleştirdiği bir saldırı da ; yanal hareket için birden fazla yöntem kullanarak; RDP kaba kuvvet aracılığıyla internete açık bir sunucuya ilk erişim sağladıktan sonra, 3389 (RDP), 445 (SMB) ve 22 (SSH) bağlantı noktalarını tarayarak ağda ek savunmasız makineler arayarak ilerliyor. (Ilgili makale Kaynakça 6)
Collection ve Exfiltration
Ele geçirilen her makine de Saldırgan çantasını doldurmaya başlar. Bu bilgiler; Ekran görüntüleri, müşteri verileri, finansal veriler, mail dump’ları, Database sorgu çıktıları hatta belirli DB kayıtları, kişisel veriler vb. Bu noktada saldırganın hedef ve arzusuna göre aslında hedef veri türü seçilir.
Diğer bi adımda hedeflenen verinin büyüklüğü, yapısı ve kaynağı doğrultusunda veri sızdırma yapısı belirlenir. Saldırgan özellikle veriyi çıkarmak için yüksek boyutta transfer oluşacak ve dikkat çekmeyecek bir port seçecektir. Bu port’tan datayı şüphe vermeyecek zamanlama ile parçalı ve anlaşılmayacak çekilde çıkaracaktır.
Bu yazımda sona geldik. Okuduğunuz için teşekkür ederim, umarım keyif almışsınızdır. Sıradaki yazım da zincirin bu halkaları kırıp tamamlanmasını engellemeye çalışacağız.