Seviye : Orta
Ctf Link : TryHackMe | Mnemonic
Herkese merhaba bugün birlikte TryHackMe' de bulunan Mnemonic isimli makineyi çözeceğiz.
İlk önce bilgi toplamak için nmap aracımızı kullanalım.
1.How many open ports? (Kaç port açık? )
Cevap: 3
(21,80,1337)
2.What is the ssh port number? (ssh port numarası nedir? )
Cevap: 1337
Ftp üzerinden anonim kullanıcı ile giriş yapmayı denedim ama devre dışı olduğundan bir işe yaramadı. Bu yüzden 80 portuna göz atalım.
Nmap aracımıza bakarsak robots.txt şekkinde bir dizin olduğunu görüyoruz. Oraya bakalım
Biraz araştırdım ama başka bir şey çıkmadı bu yüzden dirb kullanarak gizli dosya/dizin var mı ona bakalım.
Tarayıcıda bir şey göremiyoruz bu yüzden backups dizini içinde php, png ve zip dosyalarını arayalım.
backups.zip dosyasını bulduk.
3.What is the name of the secret file? ( Gizli dosyanın adı ne? )
Cevap: backups.zip
wget komutunu kullanarak indirelim. Zip dosyası şifreli olduğundan John the Ripper, rockyou'yu kelime listesini kullanarak şifreyi kırmayı deneyelim
Dosyanın şifreyi bulduk şimdi içinde ne yazdığına bakalım.
1. ftp user name? (ftp kullanıcı adı? )
Cevap: ftpuser
FTP için kullanıcı adını bulduğumuza göre bir de şifresini bulalım. Bunun için hydra aracını kullanalım.
Kod:
hydra -l [kullanıcı adı] -P [wordlist] ftp//[adres]
2. ftp password? (ftp şifresi? )
Cevap: lover4ever
Şifreyi lover4ever olarak bulduk şimdi ftp girişi yapalım.
ls ile dosyaları listeleyelim.
Listeledikten sonra data4 dizininin farklı izinlere sahip olduğunu görüyoruz.
data-4 dizinine gidip listeleyelim.
id_rsa isimli bir anahtar ve not.txt şeklinde bir metin bulduk.
Simdi bunların içeriğine bakalım.
3. What is the ssh username? ( ssh kullanıcı adı nedir? )
Cevap : james
james kullanıcı adı ile ssh girişi yapmayı denedim. Ama id_rsa anahtarının şifresi gerekti. Bu yüzden ilk önce şifreyi bulalım.
Şifreyi bulmak için id_rsa anahtarını çözmemiz gerek.
Bunun için ssh2john python betiğini kullanmamız gerekiyor. Bu betik /usr/share/john/ dizini içinde bulunuyor.
Ardından bu hash'i kırmak için John the Ripper'ı kullanalım.
4. What is the ssh password? ( ssh şifresi nedir? )
Cevap : bluelove
Kullanıcı adı ve şifreyi bulduk artık ssh girişi yapabiliriz.
Giriş yaparken Restricted Shell yani Kısıtlı Kabuk sorunu ile karşılaştım. ,
IPS/IDS Sistemi yetkisiz olduğumuzu iddia ederek bağlantıyı kesiyor.
Bu yüzden hızlı olmamız gerekiyor.
Giriş yaptıktan sonra ls yazarak dosyaları listeleyelim. İki adet txt dosyası bulduk. cat komutu ile okuyalım.
condor kullanıcısından ve resimdeki gizli şifreyi çözen Mnemonic proramından bahsediyor. İlk olarak condor kullanıcısına bir bakalım.
Bu arada 6450.txt içeriğini nano ile kaydedelim.
base64 ile kodlanmış iki dosya görüyoruz. İstersek tarayıcıda ki sitelerden ya da aşağıda ki gibi kodu çözebiliriz.
1. user.txt
Cevap : THM{a5f82a00e2feee3465249b855be71c01}
İlk kodun çözümü bir url veriyor oraya bakalım.
İçerisinde şifre gizlenmiş resmi bulduk bu resmi indirelim.
Mnemonic programından bahsetmişti bir arama yapalım.
İlk gelene tıklayalım ve depoyu makinemize klonlayalım.
Gelen kısma daha önceden indirmiş olduğumuz resmin yolunu yazıp enter a basalım
Gelen kısımdan şifresini çözmek için 2 yi seçip bu seferde indirmiş olduğumuz 6450.txt nin yolunu yazalım.
Codor'un şifresini bulduk.
5. What is the condor password? ( Condor şifresi nedir? )
Cevap : pasificbell1981
Artık condor kullanıcı adını ve şifresini kullanarak ssh bağlantısı kurabiliriz.
Giriş yaptıktıktan sonra sudo -l yazarak sudo yetkisi ile neleri çalıştırabileceğine bakıyoruz.
Ardından içeriği okuyoruz.
İçerik şu şekilde :
Kod:
print("""
------------information systems script beta--------
---------------------------------------------------
---------------------------------------------------
---------------------------------------------------
---------------------------------------------------
---------------------------------------------------
---------------------------------------------------
----------------@author villwocki------------------""")
time.sleep(2)
print("\nRunning...")
time.sleep(2)
os.system(command="clear")
main()
def main():
info()
while True:
select = int(input("\nSelect:"))
if select == 1:
time.sleep(1)
print("\nRunning")
time.sleep(1)
x = os.system(command="ip a")
print("Main Menü press '0' ")
print(x)
if select == 2:
time.sleep(1)
print("\nRunning")
time.sleep(1)
x = os.system(command="ifconfig")
print(x)
if select == 3:
time.sleep(1)
print("\nRunning")
time.sleep(1)
x = os.system(command="ip route show")
print(x)
if select == 4:
time.sleep(1)
print("\nRunning")
time.sleep(1)
x = os.system(command="cat /etc/os-release")
print(x)
if select == 0:
time.sleep(1)
ex = str(input("are you sure you want to quit ? yes : "))
if ex == ".":
print(os.system(input("\nRunning....")))
if ex == "yes " or "y":
sys.exit()
if select == 5: #root
time.sleep(1)
print("\nRunning")
time.sleep(2)
print(".......")
time.sleep(2)
print("System rebooting....")
time.sleep(2)
x = os.system(command="shutdown now")
print(x)
if select == 6:
time.sleep(1)
print("\nRunning")
time.sleep(1)
x = os.system(command="date")
print(x)
if select == 7:
time.sleep(1)
print("\nRunning")
time.sleep(1)
x = os.system(command="rm -r /tmp/*")
print(x)
def info(): #info print function
print("""
#Network Connections [1]
#Show İfconfig [2]
#Show ip route [3]
#Show Os-release [4]
#Root Shell Spawn [5]
#Print date [6]
#Exit [0]
""")
def run(): # run function
text()
run()
Kodu analiz ettiğimizde, 0 (çıkış) seçeneğinin bir onay isteyeceğini görebiliriz.
if select == 0:
time.sleep(1)
ex = str(input("are you sure you want to quit ? yes : "))
if ex == ".":
print(os.system(input("\nRunning....")))
if ex == "yes " or "y":
sys.exit()
Yanıt bir nokta ise program, aslında bir komutun yürütülmesini bekleyen sahte bir Running... dizinini gösterecek.
Bunun nedeni de bekleyen bir girdi olması.
Programı root ile çalıştıralım ve yürüterek bir kök kabuğu elde edelim
Artık kök kabuğumuz olduğuna göre kök bayrağını kolayca okuyabiliriz.
Cevap kabul edilmiyor. İp ucu kısmına bakalım.
THM{MD5}
O zaman herhangi bir siteden {congratulationsyoumadeithashme} ' yi MD5 ' e dönüştürelim.
2. root.txt
Cevap : THM{2a4825f50b0c16636984b448669b0586}
Buraya kadardı bir sonraki ctf 'de görüşmek üzere



