TryHackMe Linux Challenges Writeup

PwnLab.Me

Admin
Katılım
21 Ocak 2024
Mesajlar
202
Tepkime puanı
9
Puanları
18
Yusuf Can Çakır tarafından yazılmıştır.

[TR] TryHackMe Linux Challenges Writeup​


Merhabalar herkese, bugün sizlere TryHackMe’de bulunan Linux Challenges adlı odanın çözümünü anlatacağım. Bu oda VIP’ler için olduğundan dolayı soruları paylaşmayacağım sadece cevaplar olacaktır. Şimdiden keyifli okumalar.



Task 1 Linux Challenges Introduction​


Burada, oda da anlatılacaklar gösterilmektedir. Alt tarafta makineyi kaldırmamızı istemektedir. Makineyi kaldırdıktan sonra SSH ile bağlanıyoruz ve bizlere kaç tane dosya olduğunu soruyor, 3 tane dosya bulunmaktadır.

Task1
Task1

Task 2 The Basics​

Flag – 1​


Flag1‘e flag1.txt dosyasını cat ile yazdırdığımızda ulaşabiliriz. Ek olarak bir kullanıcı adı ve şifre elde ettik.

Task2-1
Task2-1

Flag – 2​


Ufak bir tarama sonrasında Flag2.txt’nin bob isimli klasörün içinde olduğunu öğrendim. Klasörün içerisine girerek, cat komutu yardımıyla flag’i aldım.

Task2-2
Task2-2

Flag – 3​


Bu flag’i alabilmem için bob kullanıcısına geçiş yapmam gerekti. Bob kullanıcısının bilgilerini flag1.txt dosyasında zaten almıştık. Geçiş yapmak için su bob yazıyorum, ardından da şifreyi giriyorum.

Task2-3
Task2-3

Bob kullanıcısına geçtikten sonra ana dizininde ls -al yazdığımda bütün dosyalar listelendi. Listelendikten sonra sorudan da yola çıkarak .bash_history dosyasını cat yardımıyla ekrana bastırdım ve flag3‘ü de almış oldum.

Task2-3.2
Task2-3.2

Flag – 4​


Bu bayrağı alabilmek için crontab isimli komuttan yardım aldım. Soruda bunu kullanmam gerektiğini açıkça belirtiyordu zaten. (Crontab’ın nasıl kullanılacağını merak ederseniz buraya bakabilirsiniz.)

Task2-4.1
Task2-4.1

Nano ekranı çıkıyor ve içerisinde bizim flag4‘ümüz.

task2-4.2
task2-4.2

Flag – 5​


Burada tek tek aramak yerine grep komutunu kullandım.

grep -rnw "flag5"

Gördüğünüz gibi lib/terminfo/E/flag5.txt dosyası bizi bekliyor.

task2-5
task2-5

Flag – 6​


5. flag’de de yaptığım gibi grep komutundan yardım aldım. Flag6’nın olduğu dosyayı bulup cat ile yazdırdım ancak | grep c9 yaptım gördüğünüz gibi. Bunun sebebi soruda ilk iki karakterin c9 ile başladığını söylüyor olmasıdır.

task2-6
task2-6

Flag – 7​


Sistemde çalışan process’lere bakmamız gerektiğini söylüyordu soruda. Bu şekilde bütün process’leri listeleyebilirsiniz benim gibi veya ps -aef | grep “flag” şeklinde de yapabilirsiniz.

task2-7.1
task2-7.1
task2-7.2
task2-7.2

Flag – 8​


Flag8 bir tar.gz halinde karşımıza çıkıyor. tar.gz’yi çıkarmak için:

tar -xvf flag8.tar.gz

yazıyoruz ve cat komutu yardımıyla flag8’i de alıyoruz.

task2-8
task2-8

Flag – 9​


Soruda host dosyalarına bir bak diyordu, host dosyasına bakmak için:

cat /etc/hosts

komutunu kullandım ve flag9’u aldım.

task2-9
task2-9

Flag – 10​


Soruda sistemdeki diğer kullanıcıların içerisinide bir yerde flag var demektedir. Diğer kullanıcıların bilgilerine ve flag’e ulaşmak için cat /etc/passwd yazdım ve flag10’u aldım.

task2-10
task2-10

Task 3 Linux Functionality​

Flag – 11​


Flag11’in .bashrc dosyasında olduğunu bizlere soruda veriyor, tek yapmam gereken cat .bashrc yazmaktı.

task3-1.1
task3-1.1
task3-1.2
task3-1.2

Flag – 12​


Soruda bizlere flag12’nin MOTD dosyasında olduğunu söylüyor. Açıkçası tam olarak bilmiyordum ve biraz araştırdım. Bu sitede MOTD dosyasının /etc/update-motd.d de olduğunu söylüyor. Klasör içerisinde biraz gezindikten sonra 00-header isimli dosyası buldum ve cat ile içindekileri yazdırdım.

task3-12
task3-12

Flag – 13​


Soruda iki adet script dosyası bulunmakta fakat farklılıkları var diyordu. İki farklı dosyanın içerik farkını bulmak için:

grep -v -F -x -f script1 script2

komutunu yazdım ve flag’i aldım.

task3-13
task3-13

Flag – 14​


Linux sistemlerde log dosyaların nerede tutulduğunu soruyor. Cevap /var/log. İçerisine girip baktığımda flagtourteen.txt isimi bir .txt dosyası buldum.

task3-14.1
task3-14.1
task3-14.2
task3-14.2

Flag – 15​


Soruda sistemle ilgili (çekirdek vb.) bilgilerin tutulduğu yerde flag’in olduğunu söylüyor. Bende /var/log’un içindeki /etc/*release e bakıyorum ve flag15’i alıyorum.

task3-15
task3-15

Flag – 16​


Soruda mount bilgisin verdiği için /media ya girdim ve böyle bir manzara ile karşılaştım. Tek tek aşağıya inip flag’i aldım.

task3-16
task3-16

Flag – 17​


Bu flag baya kolaydı fakat alice kullanıcısına geçmeyi unutursanız işler karışır ve flag’i bulamazsınız.

task3-17
task3-17

Flag – 18​


Bu soru için alice kullanıcısındaki gizli dosyalara baktım ve flag18’e ulaştım.



task3-18
task3-18

Flag – 19​


Bizlere flag19 dosyasının 2345. satırına bakmamızı söylüyor ve bunu yapabilmek için head -n 2345 flag19 yazıyorum.

task3-19.1
task3-19.1

Ve flag karşımızda.

task3-19.2
task3-19.2

Task 4 Data Representation, Strings and Permissions​

Flag – 20​


Flag20.txt dosyasına baktığımda base64 ile şifrelenmiş bir veri buldum. Bunu da decode etmek için:

echo encode_edilmiş_veri | base64 --decode

yazıyorum ve flag20’yi alıyorum.

task4-20
task4-20

Flag – 21​


flag21.php isimli bir flag’in olduğunu ve bizim bulmamızı istiyor. Bunun içinde:

find /* -name flag21.php

yazıyorum ve /home/bob/flag21.php de bulunduğunu öğreniyorum.

task4-21.1
task4-21.1

less komutu ile flag21.php içerisindeki yazıları okutuyorum ve flag’i alıyorum.

task4-21.2
task4-21.2
task4-21.3
task4-21.3

Flag – 22​


Yeniden alice kullanıcısına geçiyorum ve flag22 dosyasının hex verilerini öğrenmek için xxd komutunu kullanıyorum Flag22 karşımızda.

task4-22
task4-22

Flag – 23​


Flag23 dosyasına reverse yapmamı istemektedir. Bunun için ise rev komutunu kullanıyorum ve flag23’ü alıyorum.

task4-23
task4-23

Flag – 24​


Flag24’ün nerede olduğunu tam olarak bilmediğim için find komutu yardımıyla bir arama yapıyorum ve flag24 /home/garry’nin içerisinde olduğunu görüyorum.

task4-24.1
task4-24.1

Garry klasörüne girip flag24 dosyasının, dosya türüne bakıyorum ve bir UNİX dosyası olduğunu görüyorum. Ardından dosyaya işlem yapabilmek için garry kullanıcısına geçiyorum ve strings komutu ile okunabilir değerlere bakıyorum.

task4-24.2
task4-24.2
task4-24.3
task4-24.3

Flag – 25​


Soru sormamış direk butona tıklayarak geçiyoruz.

Flag – 26​


Aşağıdaki komut ile flag26’yı buldum.

find / -xdev -type f -print0 2>/dev/null | xargs -0 grep -E '^[a-z0-9]{32}$' 2>/dev/null
task4-26
task4-26

Flag – 27​


Alica kullanıcısna geri geçip /home dizinindeki flag27’yi cat komutu ile ekrana bastırıyoruz.

task4-27
task4-27

Flag – 28​


Soruda hangi kernel versiyonunu kullandığımızı soruyor. Bunu öğrenmek için uname -srm komutunu kullanıyorum ve flag28’i alıyorum.

task4-28
task4-28

Flag – 29​


Flag29 dosyasını bulmak için yeniden find komutunu kullanıyorum ve garry isimli kullanıcının içerisinde olduğunu görüyorum.

task4-29
task4-29

Garry kullanıcısına tekrardan geçiyorum ve bütün boşlukları, satırları temizliyorum. En altta flag’imiz çıkıyor.

task4-29.1
task4-29.1

Task 5 SQL, FTP, Groups and RDP​

Flag – 30​


curl komutunu kullanmamı söylüyor ve bende kullanıp flag30’u alıyorum.

task5-30
task5-30

Flag – 31​


Mysql’e girip database bilgilerini çekmemi istiyor bu yüzden aşağıdaki komutları girip flag’i alıyorum.

mysql -u root -p
show databases;



task5-31
task5-31

Flag – 32​


Flag31’deki database’e girip table’ları listeletiyoruz ve içerisindeki flag isimli veriyi yazdırıyoruz

show databases;
use database_ismi;
show tables;
select * from flags;
task5-32
task5-32

Flag – 33​


Bu soruda kişisel $PATH’i yazdırmamızı istiyor bu yüzden bob kullanıcısın içine girip (soruda bob’u istiyor.) cat .profile yazıyorum ve flag’i alıyorum.

task5-33
task5-33

Flag – 34​


Bob kullanıcısna geri dönmemi ve sistemin hangi değerleri kullandığını öğrenmemizi istiyor. Bunun için ise printevn komutunu kullanıyorum.

task5-34
task5-34

Flag – 35​


Sistemdeki bütün gruplara bakmamı istiyor soruda. Bunun için less /etc/group komutunu kullanıp bütün grupları listeliyorum.

task5-35.1
task5-35.1

Flag35 bizi aşağıda bekliyor.

task5-35.2
task5-35.2

Flag – 36​


hacker kullanıcısının okuma izni olan dosyayı buluyoruz ve cat komutu ile bunu okutuyoruz.

task5-36
task5-36

Son flag’i de aldık gördüğünüz gibi. Uzun bir makine olduğu için biraz yorucuydu benim için. Farklı bir writeup konusunda görüşmek dileğimle, hoşçakalın…
 
Moderatör tarafında düzenlendi:
Geri
Üst