Meterpreter Nedir? Screenshot, Keylogger ve Post-Exploitation Yetenekleri
Meterpreter'in yeteneklerini savunma, olay müdahalesi (DFIR), SOC ve sızma testi farkındalığı perspektifinden ele alır. Kötüye kullanılabilecek adım adım saldırı talimatları, komutlar veya operasyonel kullanım örnekleri içermez.
Meterpreter, siber güvenlik dünyasında en çok bilinen post-exploitation (sızma sonrası faaliyetler) araçlarından biridir. Genellikle güvenlik uzmanları tarafından yetkili sızma testlerinde hedef sistemlerdeki riskleri değerlendirmek amacıyla kullanılır.
Meterpreter'in en dikkat çekici özelliği, hedef sistem üzerinde çalışırken birçok işlemi bellekte gerçekleştirebilmesi ve modüler yapısı sayesinde farklı yetenekler kazanabilmesidir.
Ancak aynı özellikler kötü niyetli saldırganlar tarafından da kullanılabildiğinden, savunma ekiplerinin Meterpreter'in çalışma mantığını ve oluşturduğu izleri iyi anlaması gerekir.
Post-Exploitation Nedir?
Bir saldırının temel aşamaları genellikle şu şekildedir:
Keşif (Reconnaissance)
Tarama (Scanning)
İlk Erişim (Initial Access)
Yetki Yükseltme (Privilege Escalation)
Post-Exploitation
Kalıcılık (Persistence)
Veri Sızdırma (Exfiltration)
Meterpreter çoğunlukla beşinci aşamada yani Post-Exploitation aşamasında kullanılır.
Bu aşamada saldırgan veya güvenlik uzmanı:
Sistemi analiz eder
Kullanıcı bilgilerini inceler
Yetkileri değerlendirir
Ağ içerisindeki diğer sistemleri araştırır
Güvenlik açıklarının etkisini ölçer
Meterpreter'in Temel Özellikleri
Meterpreter'in sunduğu yetenekler şunlardır:
Dosya Sistemi Erişimi
Dosya listeleme
Dosya okuma
Dosya yazma
Dosya silme
Süreç Yönetimi
Çalışan işlemleri görüntüleme
Süreç analizi
Süreç geçişleri
Ağ Bilgileri
IP adresleri
Ağ adaptörleri
Bağlantılar
Rotalar
Yetki Analizi
Kullanıcı hakları
Yönetici yetkileri
Token bilgileri
Sistem Bilgileri
İşletim sistemi
Mimari
Güvenlik yazılımları
Etki alanı bilgileri
Screenshot (Ekran Görüntüsü Alma)
Nedir?
Screenshot özelliği hedef sistemdeki aktif ekranın görüntüsünü elde etmeye yönelik bir yetenektir.
Bu özellik sayesinde:
Kullanıcı etkinlikleri gözlemlenebilir
Açık uygulamalar görülebilir
Kurumsal veri sızıntıları tespit edilebilir
Güvenlik testlerinde riskler gösterilebilir
Güvenlik Açısından Önemi
Bir ekran görüntüsünde aşağıdaki bilgiler bulunabilir:
Kurumsal belgeler
E-posta içerikleri
Finansal veriler
Müşteri kayıtları
İç ağ bilgileri
VPN bağlantıları
Bu nedenle ekran görüntüsü alma yeteneği veri gizliliği açısından kritik risklerden biri olarak değerlendirilir.
Savunma Ekipleri Ne Yapmalıdır?
EDR Kullanımı
EDR çözümleri:
Şüpheli ekran erişimlerini
Bellek enjeksiyonlarını
Süreç davranışlarını
izleyebilir.
Uygulama Beyaz Listeleme
Yetkisiz yazılımların çalıştırılması engellenmelidir.
Kullanıcı Farkındalığı
Kritik veriler ekran üzerinde gereksiz süre açık bırakılmamalıdır.
Keylogger Nedir?
Temel Tanım
Keylogger, kullanıcının klavyede bastığı tuşları kaydedebilen yazılım veya donanım mekanizmalarının genel adıdır.
Siber saldırılarda amaç genellikle:
Parolaları ele geçirmek
Kullanıcı davranışlarını izlemek
Kimlik bilgilerini toplamak
olmaktadır.
Keylogger Tehdidi Neden Ciddidir?
Bir kullanıcının yazdığı:
Parolalar
Banka bilgileri
E-postalar
Kurumsal yazışmalar
kaydedilebilir.
Bu nedenle modern güvenlik mimarileri yalnızca parola güvenliğine değil, davranışsal tehdit analizine de odaklanmaktadır.
Keylogger Tespiti
Davranış Analizi
EDR çözümleri:
Klavye olaylarına erişen süreçleri
API çağrılarını
Bellek faaliyetlerini
inceleyebilir.
Sysmon ve SIEM Kullanımı
SOC ekipleri:
Şüpheli süreç oluşturma olaylarını
DLL yüklemelerini
Kod enjeksiyonlarını
izleyerek anormal faaliyetleri belirleyebilir.
Tehdit Avcılığı (Threat Hunting)
Avcı ekipler:
Olağan dışı kullanıcı davranışları
Beklenmeyen ağ trafiği
Şüpheli kalıcılık mekanizmaları
üzerinde çalışırlar.
Meterpreter ve MITRE ATT&CK
Meterpreter tarafından gerçekleştirilebilen birçok faaliyet MITRE ATT&CK çerçevesinde sınıflandırılmıştır.
Örnek kategoriler:
Discovery
Sistem keşfi
Ağ keşfi
Kullanıcı keşfi
Credential Access
Kimlik bilgilerine erişim girişimleri
Collection
Veri toplama
Ekran görüntüsü toplama
Lateral Movement
Ağ içerisinde hareket
Persistence
Kalıcılık mekanizmaları
SOC Perspektifinden Meterpreter
Bir SOC analisti aşağıdaki göstergeleri araştırmalıdır:
Süreç Anormallikleri
Olağandışı süreç zincirleri
Beklenmeyen alt süreçler
Ağ Trafiği
Şüpheli dış bağlantılar
Anormal DNS sorguları
Bellek Davranışları
Kod enjeksiyonu belirtileri
Şüpheli DLL faaliyetleri
Kimlik Doğrulama Olayları
Beklenmeyen oturumlar
Yönetici hesabı kullanımları
Olay Müdahalesi (Incident Response)
Bir sistemde Meterpreter benzeri faaliyetlerden şüphelenildiğinde:
1. İzolasyon
Etkilenen sistem ağdan ayrılır.
2. Bellek Analizi
RAM dökümleri alınır.
3. Log Toplama
Windows Event Logs
Sysmon
EDR kayıtları
Güvenlik duvarı logları
incelenir.
4. IOC Analizi
Olay göstergeleri belirlenir.
5. Kapsam Belirleme
Saldırının başka sistemlere yayılıp yayılmadığı araştırılır.
Korunma Yöntemleri
Çok Faktörlü Kimlik Doğrulama (MFA)
Parola ele geçirilse bile hesabın korunmasına yardımcı olur.
EDR/XDR Çözümleri
Davranışsal tehditleri tespit eder.
En Az Yetki İlkesi
Kullanıcılar yalnızca gerekli haklara sahip olmalıdır.
Ağ Segmentasyonu
Bir sistem ele geçirilse bile tüm ağın etkilenmesi önlenir.
Güvenlik Farkındalık Eğitimleri
İlk erişim vektörlerini azaltır.
Sonuç
Meterpreter, güvenlik uzmanları için güçlü bir test ve değerlendirme aracıdır. Bununla birlikte ekran görüntüsü alma, tuş kaydı toplama ve sistem keşfi gibi yetenekleri nedeniyle saldırganlar tarafından da tercih edilmektedir.
Bu nedenle günümüz güvenlik ekipleri yalnızca güvenlik açıklarını kapatmakla kalmamalı, aynı zamanda post-exploitation faaliyetlerini tespit edebilecek görünürlüğe de sahip olmalıdır. EDR, SIEM, Threat Hunting ve Incident Response süreçleri birlikte çalıştığında Meterpreter benzeri tehditlerin etkisi önemli ölçüde azaltılabilir.
hashdump Komutu: Sistemin Parola Kasasını Kırmak
Meterpreter shell elde ettikten ve getuid ile NT AUTHORITY\SYSTEM (en yüksek yetki) seviyesinde olduğunuzu doğruladıktan sonra çalıştırılacak en kritik ve ikonik post-exploitation (sömürü sonrası) komutlarından biri hashdump'tır.
Öğrencilerinizin laboratuvar simülasyonlarında bu komutu çalıştırmaları, artık sadece bir makineyi ele geçirdiklerini değil, ağ içindeki diğer makinelere de sıçramaya (Lateral Movement - Yanal Hareket) hazırlandıklarını gösterir.
hashdump Ne Yapar?
Windows işletim sistemleri, kullanıcı parolalarını açık metin (clear-text) olarak saklamaz. Bunun yerine, parolaları geri döndürülemez bir şifreleme algoritmasından geçirerek bir "özet" (hash) oluşturur ve bunları SAM (Security Account Manager) veritabanında saklar.
Siz hashdump komutunu çalıştırdığınızda, Meterpreter arka planda Windows'un çekirdeğine (veya LSASS sürecine) müdahale eder, SAM veritabanının kilidini açar ve sistemdeki tüm yerel kullanıcıların (Administrator, Guest, Jon vb.) parola özetlerini ekranınıza döker.
Çıktı Nasıl Okunur?
Komutu çalıştırdığınızda şöyle bir formatla karşılaşırsınız:
Plaintext
meterpreter > hashdump
Administrator:500:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
Jon:1000:aad3b435b51404eeaad3b435b51404ee:8846f7eaee8fb117ad06bdd830b7586c:::
Bu karmaşık görünen satırlar aslında çok standart bir yapıya sahiptir:
Kullanıcı_Adı : UID (Kullanıcı Kimliği) : LM_Hash : NTLM_Hash :::
LM_Hash: Eski ve zayıf bir şifreleme yöntemidir. Yukarıdaki örnekte görülen aad3b435b51404eeaad3b435b51404ee değeri, aslında "Burada LM parolası yok" (boş) anlamına gelir. Güncel Windows sistemleri artık bunu kullanmaz.
NTLM_Hash: Asıl hedeflenen kısımdır. Örneğin Jon kullanıcısının NTLM parolası 8846f7eaee8fb117ad06bdd830b7586c şeklindedir.
Kırmızı Takım (Saldırgan) Bu Hashes ile Ne Yapar?
Öğrenciler bu özetleri ele geçirdikten sonra iki temel strateji izleyebilirler:
Çevrimdışı Kırma (Offline Cracking): Elde edilen bu NTLM özetlerini Pardus sistemlerine kopyalarlar. Ardından John the Ripper veya Hashcat gibi araçlara bir kelime listesi (wordlist - örneğin meşhur rockyou.txt) vererek, parolayı açık metin haline getirmeye (kırmaya) çalışırlar.
Pass-the-Hash (Parolayı Kırmadan Geçiş): Siber güvenlikteki en tehlikeli tekniklerden biridir. Parolanın açık halini bulmaya hiç gerek yoktur. Eğer Jon kullanıcısı laboratuvar ağındaki başka bir makinede veya sunucuda da aynı parolayı kullanıyorsa, öğrenciler doğrudan bu NTLM özetini kullanarak diğer sistemlere kimlik doğrulaması yapabilirler. Metasploit'teki psexec modülü tam olarak bu işi yapar.
Mavi Takım (Savunma) Perspektifi
Öğrencilere bu hücum tekniğini öğrettikten sonra işin savunma kısmını da kurgulamak, eğitimin en değerli parçasıdır. Kurumsal ağlarda ve modern sistemlerde SAM veritabanını korumak için sistem yöneticilerinin aldığı başlıca önlemler şunlardır:
LSASS Bellek Koruması (LSA Protection): SAM veritabanını okuyan işlemlerin dışarıdan müdahaleye kapatılmasıdır. Modern EDR çözümleri, Meterpreter'in LSASS sürecine dokunmaya çalıştığını anında tespit edip bağlantıyı keser.
Ayrıcalıklı Erişim Yönetimi: hashdump sadece "SYSTEM" haklarıyla çalışır. Makinelerde gereksiz yere yerel yönetici (Local Admin) haklarına sahip kullanıcılar bırakılmamalıdır.
Yerel Yönetici Parolalarının Eşsizleştirilmesi (LAPS): Pass-the-Hash saldırılarını engellemek için, ağdaki her makinenin yerel "Administrator" parolasının birbirinden farklı olması (örneğin Microsoft LAPS kullanımı) sağlanmalıdır.
Öğrencilerin bu adımda Pardus terminallerine geri dönüp, elde ettikleri bu NTLM özetlerini John the Ripper aracıyla nasıl açık metne dönüştüreceklerini anlatan uygulamalı bir senaryoya geçiş yapmak ister misiniz?
getsystem Komutu: Sistemde "Tanrı" Moduna Geçiş (Hak Yükseltme)
Hedef sisteme bir exploit fırlatıp Meterpreter oturumu elde ettiğinizde, her zaman en yüksek yetkilere sahip olarak doğmazsınız. Sızdığınız zafiyetin türüne veya hedeflenen servise bağlı olarak erişim seviyeniz kısıtlı olabilir.
Örneğin, 11. sınıf öğrencilerinizden Mehmet Emin Doğan laboratuvar simülasyonunda bir makineye başarıyla sızdığında getuid komutunu çalıştırır ve karşısında NT AUTHORITY\SYSTEM yerine Jon-PC\Jon gibi standart bir kullanıcı veya yerel yönetici (Local Admin) görebilir.
İşte getsystem komutu, sızılan bu hesabın yetkilerini kullanarak Windows sisteminin en üst düzeydeki ve her şeye gücü yeten "SYSTEM" (veya Root) kullanıcısına sıçramak (Privilege Escalation) için kullanılan otomatikleştirilmiş bir Meterpreter aracıdır. Önceki adımda gördüğümüz hashdump gibi kritik komutları çalıştırabilmek için bu SYSTEM yetkisine sahip olmak şarttır.
getsystem Nasıl Çalışır? (Teknik Arka Plan)
Öğrencilerin en çok düştüğü yanılgı, getsystem komutunun "sihirli bir değnek" olduğunu düşünmeleridir. Bu komut hiçbir yetkisi olmayan standart bir Guest (Misafir) kullanıcısını bir anda SYSTEM yapamaz. Çalışabilmesi için halihazırda sistemde bir miktar ağırlığı olan (örneğin Local Admin grubunda bulunan) bir kullanıcının omuzlarına basması gerekir.
Meterpreter bu komutu çalıştırdığınızda arka planda şu üç temel tekniği (teknik numaralarıyla birlikte) dener:
Named Pipe Impersonation (Bellek İçi - Teknik 1): Meterpreter arka planda sahte bir ağ yolu (Named Pipe) oluşturur ve Windows'u kandırarak meşru bir sistem servisinin bu yola bağlanmasını sağlar. Sistem servisi bu yola bağlandığı anda, Meterpreter onun "SYSTEM" kimlik kartını (Token) kopyalar ve kendi üzerine geçirir. Tüm işlem RAM üzerinde biter, diske hiçbir şey yazılmaz.
Named Pipe Impersonation (Dropper - Teknik 2): İlk tekniğin bir benzeridir, ancak RAM yerine hedefin diskine küçük ve rastgele isimli zararlı bir çalıştırılabilir dosya (.exe veya .dll) yazar ve işlemi onun üzerinden yürütür. Antivirüslere yakalanma riski en yüksek olan yöntemdir.
Token Duplication (Kimlik Kopyalama - Teknik 3): Sistemde halihazırda SYSTEM yetkisiyle çalışan başka meşru süreçler (örneğin lsass.exe veya winlogon.exe) bulunur. Meterpreter bu süreçlerin içine sızarak onların yetki biletlerini (Token) çalar ve kendi oturumuna kopyalar.
Komutun Kullanımı ve Çıktısı
Meterpreter satırında komutu doğrudan yazmanız yeterlidir:
Plaintext
meterpreter > getsystem
...got system via technique 1 (Named Pipe Impersonation (In Memory/Admin)).
meterpreter > getuid
Server username: NT AUTHORITY\SYSTEM
Eğer yukarıdaki gibi ...got system via technique 1 mesajını alırsanız, hak yükseltme başarılı olmuş demektir.
Mavi Takım Perspektifi: Neden Genellikle Başarısız Olur?
Modern siber güvenlik simülasyonlarında ve güncel Windows işletim sistemlerinde (Windows 10/11) getsystem komutu genellikle ilk denemede çalışmaz. Bunun iki ana sebebi vardır ve savunma mimarisinin temelini oluştururlar:
UAC (Kullanıcı Hesabı Denetimi): Sızdığınız kullanıcı Local Admin grubunda olsa bile, Windows zararlı bir işlem yapılmadan önce ekrana o meşhur "Bu uygulamanın değişiklik yapmasına izin veriyor musunuz?" (Evet/Hayır) penceresini çıkarır. Arka planda çalışan Meterpreter bu butona tıklayamayacağı için işlem bloke olur.
EDR ve Davranış Analizi: getsystem komutunun arka planda sahte servisler oluşturması veya meşru süreçlerin yetki biletlerini kopyalamaya çalışması son derece "gürültülü" ve bilindik bir saldırı paternidir. Modern antivirüsler ve EDR sistemleri bu davranışı anında yakalar ve Meterpreter oturumunu acımasızca sonlandırır.
Eğer laboratuvar ortamında öğrencileriniz getsystem yazdıklarında "Access Denied" (Erişim Engellendi) hatası alıyorlarsa, bu büyük ihtimalle UAC korumasına takıldıkları içindir.
Bu senaryoda, SYSTEM yetkisine ulaşmadan hemen önce UAC korumasını atlatmak (Bypass UAC) için kullanılabilecek gelişmiş Metasploit modüllerini inceleyerek devam edelim mi?
Mimikatz'ın Metasploit Entegrasyonu: load kiwi Komutu
NT AUTHORITY\SYSTEM yetkilerine sahip olduktan sonra siber güvenlik dünyasındaki belki de en korkutucu ve güçlü aracı sahaya sürmenin zamanı gelmiştir: Mimikatz.
Siber güvenlik araştırmacısı Benjamin Delpy tarafından geliştirilen Mimikatz, Windows sistemlerindeki kimlik doğrulama mekanizmalarını (LSA) sömürerek düz metin (clear-text) parolaları, hash'leri, PIN kodlarını ve Kerberos biletlerini doğrudan sistemin belleğinden (RAM) kazıyıp çıkartan olağanüstü bir araçtır.
Metasploit Framework içerisinde Mimikatz'ın işlevleri, Meterpreter'e özel olarak derlenmiş Kiwi (Mimikatz'ın diğer adı) eklentisi ile kullanılır.
Nasıl Kullanılır?
Önceki adımlardaki hashdump komutu Meterpreter'in kendi içinde var olan yerleşik bir özelliktir. Ancak Kiwi, harici bir eklenti (extension) olduğu için önce aktif olan Meterpreter oturumunun belleğine yüklenmesi gerekir.
Plaintext
meterpreter > load kiwi
Loading extension kiwi...
.#####. mimikatz 2.2.0 20191125 (x64/windows)
.## ^ ##. "A La Vie, A L'Amour" - (oe.eo)
## / \ ## /*** Benjamin DELPY `gentilkiwi` ( benjamin@gentilkiwi.com )
## \ / ## > http://blog.gentilkiwi.com/mimikatz
'## v ##' Vincent LE TOUX ( vincent.letoux@gmail.com )
'#####' > http://pingcastle.com / http://mysmartlogon.com ***/
Success.
Bu ikonik kivi şeklindeki ASCII sanatını gördüğünüzde, Mimikatz komutlarının Meterpreter içerisinde kullanıma hazır olduğu anlamına gelir.
(Not: help veya ? yazarak Kiwi eklentisiyle birlikte gelen yeni komutların listesini görebilirsiniz.)
Kiwi ile Yapılabilecek Gelişmiş Saldırılar
Kiwi yüklendikten sonra, özellikle laboratuvar ortamlarındaki Active Directory (Etki Alanı) simülasyonlarında uygulanabilecek en yaygın ve yıkıcı komutlar şunlardır:
1. Düz Metin (Clear-Text) Parolaları Çalmak: creds_all
Siber dünyada hedeflenen bir numaralı komuttur. Sistemdeki kullanıcıların sadece parola özetlerini (hash) değil, eğer mümkünse gerçek, düz metin parolalarını ekrana döker.
Plaintext
meterpreter > creds_all
Bu komut, Windows'un farklı kimlik doğrulama alt sistemlerindeki (WDigest, TSPKG, Kerberos vb.) RAM dökümlerini tarar. Özellikle eski Windows sürümlerinde (Windows 7/8) veya WDigest koruması açık unutulmuş sistemlerde kullanıcıların gerçek parolaları anında karşınızda belirir.
2. Golden Ticket (Altın Bilet) Üretmek: golden_ticket_create
CTF'lerdeki son seviye "Boss" saldırılarından biridir. Eğer hedef bir Active Directory (AD) ortamıysa ve ağdaki KRBTGT (Kerberos Ticket Granting Ticket) kullanıcısının hash'i ele geçirilmişse; Kiwi kullanılarak sahte bir "Altın Bilet" üretilebilir. Bu bilet sayesinde ağdaki herhangi bir makineye (Domain Controller dahil) şifre sormaksızın sonsuz ve kalıcı yetkiyle erişim sağlanır.
3. Parola Değişikliklerini Dinlemek: kiwi_cmd
Kiwi eklentisi, orijinal Mimikatz'ın komut satırını doğrudan çalıştırmanıza olanak tanır.
Plaintext
meterpreter > kiwi_cmd sekurlsa::logonpasswords
Bu sayede, yukarıda listelenmeyen ancak orijinal Mimikatz'da bulunan çok daha gelişmiş bellek analizi komutları (örneğin DPAPI anahtarlarını çıkartmak veya LSA sırlarını okumak) çalıştırılabilir.
Mavi Takım Perspektifi (Savunma Stratejileri)
Mimikatz, gücünden dolayı tüm güvenlik sistemlerinin "bir numaralı halk düşmanı"dır. Öğrencileriniz laboratuvarda load kiwi yazdıklarında bağlantılarının koptuğunu veya uyarılar aldıklarını görürlerse, bu sistemin aşağıdaki temel savunmalardan biriyle korunduğu anlamına gelir:
Kimlik Bilgisi Koruması (Credential Guard): Windows 10 ve 11 ile gelen bu donanım tabanlı sanallaştırma özelliği, LSASS sürecini işletim sisteminden tamamen izole bir sanal alana (Virtual Secure Mode) taşır. Mimikatz, "SYSTEM" yetkisinde olsa bile bu korumalı alana erişemez ve düz metin parolaları çalamaz.
WDigest Koruması Kapatmak: Modern sistemlerde WDigest protokolü düz metin parolaları hafızada tutmamak üzere yapılandırılmıştır. Ancak geriye dönük uyumluluk nedeniyle yöneticiler bazen bunu kayıt defterinden (UseLogonCredential=1) yanlışlıkla açabilirler.
Katı Antivirüs ve EDR İmzaları: Mimikatz'ın bellek içindeki davranışları (LSASS'ye enjekte olma, bellekte belirli paternler arama) güvenlik endüstrisi tarafından çok iyi bilinmektedir. İyi yapılandırılmış bir sistem, Kiwi'nin daha yüklenme aşamasında (Load extension) bu işlemi tespit eder ve Meterpreter oturumunu sonlandırır.
shell Komutu: Sistemin Köklerine İnmek (Native Command Line)
Meterpreter, bellekte çalışan, gizliliği yüksek ve kendine has komut seti olan (örneğin hashdump, sysinfo, load kiwi) özel bir araçtır. Ancak bazen, hedef makinenin (örneğin laboratuvardaki Windows 7 makinesinin) doğrudan kendi yerel komut satırına (cmd.exe veya Linux ise bash) erişmeniz gerekir.
İşte shell komutu, Meterpreter'in o gelişmiş kabuğundan çıkıp, hedefin işletim sistemindeki standart komut satırı arayüzüne (CLI) doğrudan bir köprü (kanal) açmanızı sağlar.
Nasıl Kullanılır ve Ekranda Ne Görülür?
Meterpreter satırında komutu girdiğinizde, sistem sizin için arka planda yeni bir süreç (Process) başlatır:
Plaintext
meterpreter > shell
Process 3124 created.
Channel 1 created.
Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation. All rights reserved.
C:\Windows\system32>
Bu noktadan sonra artık Meterpreter komutları çalışmaz. Doğrudan hedef makinenin klavyesinin başına geçmiş gibi olursunuz. Windows'un kendi komutlarını (dir, ipconfig, net user, tasklist) veya hedefin içinde bulunduğu ağa yönelik yerel betikleri (batch/powershell script) çalıştırabilirsiniz.
Öğrencilerin En Sık Düştüğü "Panik" Tuzağı
Eğitim laboratuvarlarında öğrencilerin bu komutu keşfettiklerinde en çok yaşadıkları sorun oturumdan çıkış yapmaktır.
Öğrenci sistemin kendi komut satırına (C:\Windows\system32>) düştükten sonra işini bitirip geri dönmek için exit yazar. Birçok öğrenci bunu yazdığında tüm Metasploit oturumunun (Session) kapanacağını ve hedefe en baştan exploit atmak zorunda kalacağını sanıp panikler.
Oysa shell içindeyken exit yazmak sadece o an açılan cmd.exe kanalını kapatır ve sizi güvenli bir şekilde tekrar meterpreter > komut satırına geri bırakır.
Plaintext
C:\Windows\system32> exit
meterpreter >
(Tüm oturumu kapatmak için Meterpreter satırındayken tekrar exit yazılması gerekir).
Mavi Takım Perspektifi: Neden shell Tehlikeli Ama Gürültülüdür?
Siber güvenlik savunma mantığında, Meterpreter ile standart shell arasında devasa bir fark vardır:
Meterpreter Sessizdir: İşlemlerin çoğunu RAM (bellek) üzerinde kendi başına halleder. Windows olay günlüklerine (Event Logs) çok fazla iz bırakmaz.
Shell Gürültülüdür: shell komutunu çalıştırdığınız an, hedef makinede fiziksel olarak bir cmd.exe (veya powershell.exe) süreci başlar. Eğer bu komut satırından sisteme yeni bir kullanıcı eklerseniz (net user hacker 1234 /add), bu işlem Windows'un Güvenlik Günlüklerine (Event ID 4720 vb.) anında açık metin olarak düşer.
İyi yapılandırılmış bir ağda (veya SIEM kullanan bir sistem yöneticisinin ekranında), cmd.exe üzerinden çalıştırılan şüpheli komutlar kırmızı alarm verir. Bu yüzden profesyonel sızma testlerinde shell komutu sadece gerçekten ihtiyaç duyulduğunda ve kısa süreliğine kullanılır.
Öğrencileriniz laboratuvarda bu şekilde en yüksek yetkilere (SYSTEM) ve komut satırına ulaştıktan sonra, makineler yeniden başlatıldığında (örneğin ertesi günkü derste) erişimlerini kaybetmemek için hedef sistemde Kalıcılık (Persistence) sağlama yöntemlerini de kurguluyor musunuz?
Sanırım ufak bir harf hatasıyla enumdesktops komutunu yazmak istediniz.
Meterpreter içerisindeki bu komut, hedef Windows sisteminde o an aktif olan tüm "Window Station" (Pencere İstasyonları) ve Masaüstü (Desktop) oturumlarını listelemek için kullanılan, gelişmiş bir post-exploitation (sömürü sonrası) keşif komutudur.
sınıf öğrencilerinizin siber güvenlik laboratuvarında en çok kafalarının karıştığı anlardan birini çözmek için anahtar niteliğindedir.
"Siyah Ekran" Problemi Neden Yaşanır?
Öğrenciler bir hedef makineye (örneğin EternalBlue zafiyeti ile) NT AUTHORITY\SYSTEM yetkisiyle sızdıklarında, genellikle büyük bir hevesle hedef bilgisayarın ekranını görmek için screenshot komutunu çalıştırırlar. Ancak çoğu zaman karşılarına hedefin ekranı yerine kapkaranlık, simsiyah bir resim çıkar. Öğrenci komutun bozuk olduğunu veya hedefin ekranının kapalı olduğunu düşünür.
Oysa sorun mimaride yatmaktadır. Windows işletim sisteminde her şey kullanıcının gördüğü tek bir ekrandan ibaret değildir. Arka planda çalışan servislerin (sizin exploit'inizin içine yerleştiği yer), giriş (logon) ekranının veya uzak masaüstü bağlantılarının ayrı, birbirlerinden yalıtılmış "görünmez" masaüstleri vardır. (Buna Session 0 Isolation denir).
enumdesktops Nasıl Kullanılır ve Çıktısı Ne Anlatır?
Meterpreter satırında komutu girdiğinizde hedef sistemdeki tüm masaüstü alanları taranır ve şöyle bir tablo ortaya çıkar:
Plaintext
meterpreter > enumdesktops
Enumerating window stations and desktops...
Session Station Desktop
------- ------- -------
0 WinSta0 Default
0 WinSta0 Disconnect
0 WinSta0 Winlogon
1 WinSta0 Default
Bu tablodaki terimlerin pratik karşılıkları şöyledir:
WinSta0\Default: Hedefteki kurbanın o an aktif olarak faresini oynattığı, internette gezindiği, kısacası monitöründe gördüğü gerçek masaüstüdür.
WinSta0\Winlogon: Bilgisayar kilitlendiğinde veya ilk açılışta karşımıza çıkan, kullanıcının parola girdiği kilit ekranıdır.
Session 0: Genellikle arka plan servislerinin yalıtılmış olarak çalıştığı, görsel bir arayüzü olmayan (siyah ekran veren) oturumdur.
Kurbanın Ekranına Nasıl Geçilir?
Bu listeyi çektikten sonra, başarılı bir şekilde ekran görüntüsü (screenshot) alabilmek veya hedefin klavye tuşlarını yakalamaya başlamak (keyscan_start) için aktif olan masaüstüne geçiş yapmak gerekir.
Bunun için şu adımlar izlenir:
getdesktop: O an hangi görünmez masaüstünde olduğunuzu gösterir (Genelde siyah ekran veren Session 0 çıkar).
setdesktop 1\WinSta0\Default (veya tablodan okunan kurbanın aktif oturumu): Sizin Meterpreter oturumunuzun "gözlerini", kurbanın baktığı ekrana bağlar.
Bu geçiş yapıldıktan sonra çalıştırılan bir screenshot komutu, kurbanın masaüstünün anlık fotoğrafını başarıyla alarak sizin makinenize indirecektir.
migrate Komutu: Oturumun "Hayat Sigortası" ve Gizlilik
Siber güvenlik eğitimlerinde ve gerçek saha operasyonlarında, hedef sisteme ilk sızdığınızda (örneğin EternalBlue veya zararlı bir PDF dosyası ile) Meterpreter oturumunuz, sömürdüğünüz o zayıf veya geçici uygulamanın (process) belleğine yerleşir.
Eğer kurban o uygulamayı kapatırsa veya zafiyetli servis aniden çökerse, o çok uğraştığınız Meterpreter oturumunuz (bağlantınız) anında kopar. İşte migrate (göç etme) komutu, bağlantınızı kaybetmemek için zararlı kodunuzu (payload) o an çalışan geçici bir süreçten alıp, sistemin çok daha kararlı ve meşru bir sürecinin (örneğin explorer.exe veya svchost.exe) belleğine gizlice aktarmanızı sağlar.
Nasıl Kullanılır?
Göç işlemine başlamadan önce hedef sistemde hangi uygulamaların çalıştığını ve bu uygulamaların PID (Process ID - Süreç Kimliği) numaralarını bilmeniz gerekir.
1. Süreçleri Listeleme:
Meterpreter satırında komutu vererek aktif süreçleri listelersiniz:
Plaintext
meterpreter > ps
Process List
============
PID PPID Name Arch Session User Path
--- ---- ---- ---- ------- ---- ----
0 0 [System Process]
...
1824 824 spoolsv.exe x64 0 NT AUTHORITY\SYSTEM C:\Windows\System32\spoolsv.exe
2156 2120 explorer.exe x64 1 Jon-PC\Jon C:\Windows\explorer.exe
3124 2156 notepad.exe x64 1 Jon-PC\Jon C:\Windows\System32\notepad.exe
2. Göç (Migration) İşlemini Başlatma:
Listeden kararlı ve şüphe çekmeyen bir süreç seçersiniz. Kurbanın masaüstü arayüzünü yöneten explorer.exe genellikle en popüler hedeftir. PID numarasını (örneğimizde 2156) kullanarak komutu çalıştırırsınız:
Plaintext
meterpreter > migrate 2156
[*] Migrating from 3124 to 2156...
[*] Migration completed successfully.
Bu mesajı aldığınızda, eski süreç (örneğin notepad.exe) kapatılsa bile bağlantınız explorer.exe üzerinden sorunsuz yaşamaya devam eder.
migrate Neden Kritik Bir Taktiktir? (Kırmızı Takım)
Kalıcılık ve Kararlılık: Sömürülen zafiyetli servisler genellikle dengesizdir. Kararlı bir Windows servisine geçmek bağlantıyı güvenceye alır.
Gizlilik (Stealth): Görev Yöneticisi'ne bakan bir sistem yöneticisi, ağ üzerinden 4444 portuyla dışarıya veri gönderen bir notepad.exe veya hesap_makinesi.exe gördüğünde anında alarm durumuna geçer. Ancak svchost.exe veya explorer.exe gibi sürekli ağ ile konuşan meşru sistem süreçlerinin arasına karışmak çok daha iyi bir kamuflajdır.
Kullanıcı Bağlamına Geçiş: Önceki konumuzdaki "siyah ekran" veya klavye dinleme (keyscan_start) sorunlarını çözmek için, NT AUTHORITY\SYSTEM yetkilerinden feragat edip, doğrudan kurbanın (örneğin Jon kullanıcısının) sahip olduğu explorer.exe sürecine göç etmek en kesin çözümdür. Hedefin gözleriyle görmeye başlarsınız.
Mavi Takım Perspektifi: "Process Injection" Nasıl Yakalanır?
migrate komutu arka planda Process Injection (Sürece Kod Enjeksiyonu) adı verilen son derece agresif bir teknik kullanır. Meterpreter, hedef sürecin belleğinde yeni bir alan açar (VirtualAllocEx), kendi kodlarını oraya yazar (WriteProcessMemory) ve o sürecin içinde yeni bir iş parçacığı başlatır (CreateRemoteThread).
Laboratuvar ağınızdaki sistemleri savunan taraftayken bu eylemi şu şekilde tespit edebilirsiniz:
EDR ve Davranışsal Analiz: Modern Uç Nokta Tehdit Algılama (EDR) çözümleri, bir sürecin diğer bir sürecin bellek alanına müdahale ettiğini gördüğü an işlemi engeller.
Anormal Ağ Trafiği İzleme: Ağ Güvenlik Duvarınızda (Firewall) veya SIEM (Güvenlik Bilgi ve Olay Yönetimi) sisteminizde, sistemin çekirdek dosyalarının (örneğin lsass.exe veya winlogon.exe) dış ağdaki (WAN) bilinmeyen bir IP adresine şifreli bağlantı kurmaya çalıştığını görürseniz, o sürecin içine başarılı bir migrate işlemi yapılmış olma ihtimali çok yüksektir. Meşru çekirdek süreçleri durduk yere internetteki rastgele portlara bağlanmazlar.
Yorumlar