4 Ocak 2021 Pazartesi

TryHackMe - Linux Fundamentals Part 3 Yanıtlar

Task 3 Section 5:

Soru 1:

Using relative paths, how would you cd to your home directory?

Home dizinine dönmek için uzun uzun yolu belirtmeden (path) komut yazmayı sormuş:

Yanıt: cd /

Soru 2:

Using absolute paths how would you make a directory called test in /tmp?

Bu defa uzun uzun yolu belirterek /tmp altına test adında bir directory (dizin) yaratmamız isteniyor:

Yanıt: mkdir/tmp/test


Task 4 Section 5:

"ln" komutu şu şekilde açıklanmış: iki ana kullanım şekli var. Bunlardan bir tanesine "hard linking" deniyor ve dosyayı kopyalıyor, kopyalanmış olan dosyayı da asıl dosyaya bağlıyor (linking). Yani, oluşturulmuş olan bağlantıda ne yapılırsa aynısı orijinal olan dosyada da gerçekleşiyor.

Komutu yazmak için :

ln source destination.

Diğer linking kullanımı ise symbolic linking(symlink). Bu versiyonunda sembolik olarak oluşturulmuş bağlantı herhangi bir veri barındırmıyor, sadece diğer dosyaya bir referans oluşturuyor.

symlink komutu da aynı şekilde yazılıyor ancak bir -s ekleniyor:

ln -s <file> <destination>
 

ls komutu ile dosyaları kontrol ettiğimizde eğer symbolic link varsa bunu işaret eden bir ok ile görebiliyoruz:



** Önemli: symlink gördüğümüz yerdeki yetkileri incelemek önemli. Tam yetki (777 - rwx) teoride symlink'i okur,yazar ve çalıştırır durumda olduğumuzu gösteriyor ancak bu dosya yalnız bir referans olduğundan gerçekte orijinal dosyanın yetkileri ile çalışacaktır.

Soru 1:

How would I link /home/test/testfile to /tmp/test?

Yanıt:

ln /home/test/testfile /tmp/test


Task 5 Section 5:

** find komutu ile ilgili birkaç önemli not:

- Mevcut dizindeki tüm dosyaları listeler

- find / komutu ile işletim sisteminde yer alan tüm dosyalar listelenir.

- Sadece erişim izniniz olan dizinlerdeki dosyaları göstereceğinden her kullanıcı yetkisi ile her dizin / dosya listelenmez.

- find dir -user (örn: find /home -user sinem) şeklinde kullanarak sinem kullanıcısına ait tüm dosyaları listeleyebilirim. Aynı şekilde spesifik bir gruba ait dosyaları görmek için de find dir -group kullanabilirim.

Soru 2:

How do you find files that have specific permissions?

Yanıt: 

Bu soruyu yanıtlamak için ilk olarak man find komutunu kullandım ama okunacak gibi değildi :)

Bu nedenle yeni edindiğim bilgiler ışığında küçük çakallıklar denemeye karar verdim :)

İlk olarak man find > find.txt diyerek find komutunun yardım içeriğini find.txt oluşturup bunun içine bir kaydettim.

Sonra grep permission find.txt komutu ile "permission" geçen kısımları ayıklattım ve okudum, sonuç:

-perm

(Eğer bir çıt daha iyi biliyor olsaydım man find | grep permission komutu ile hiç dosya oluşturmaya uğraşmadan da bu işi yapabilirdim. Ayrıca büyük / küçük harf engeline takılmamak için -i kullanmak da akıllıca olabilirdi. Bir başka çok akıllıca yöntem de Google'a sormak ama kolaya kaçmıyoruz.)


Soru 3:

How would you find all the files in /home?

Yanıt:

find /home


Soru 4:

How would you find all the files owned by paradox on the whole system?

Yanıt:

find -user paradox /

Task 5 Section 5:

Bir önceki soruda kullanmak zorunda kaldığım grep komutu anlatılmış. Oldukça basit grep komutu ardından ne arıyorsan o ve sonuna da nerede arıyorsan o yazılıyor:

grep <string> <file>


Birden fazla dosya içerisinde aratmak istiyorsan:

grep <string> <file> <file2>

Güzel de bir örnek verilmiş:

test1234 diye bir dosyan var ama nerede olduğunu bilmiyorsun, tüm işletim sisteminde bunu aratman gerekiyor. Bu durumda find ile işletim sistemindeki tüm dosyaların bir listesini isteyip yanına da grep test1234 koyarsan dosyanı bulabilirsin. Komutu şöyle:

find /* | grep test1234

(ikinci komutu çalıştırmak için o araya giren pipe'ı unutmamak lazım tabii..)

* grep'in dünya güzeli özelliklerinden bir taneside 8576869 satır bir yazı içerisinde spesifik bir kelimenin nerede olduğunu arıyorsanız -n komutu ile hangi satırda olduğunu da size gösterebilmesidir:

grep hello test1234 -n

Soru 1:

What flag lists line numbers for every string found?

Yanıt:

-n

Soru 2:

How would I search for the string boop in the file aaaa in the directory /tmp?

Önce dizin ardından dosyayı belirterek boop'u aşağıdaki şekilde arayabilirim:

Yanıt:

grep boop tmp/aaaa

Task 7:

Soru:

What is shiba4's password?

Belki de çok kolaydı bilmiyorum ama ben biraz canımdan bezdim bu sorunun cevabını bulana kadar.

Açıklamada diyor ki: it will be checking that there's a directory called test in your home directory, how you create that is up to you. It will also be checking that inside the directory there's a file called test1234.

İlk bakılması gereken home dizini altında bir test dizini onun da altında test1234 diye bir dosya olmalı.

Bende olaylar şu şekilde gelişti:

1. shiba3@nootnoot:/home$ ls -la
total 32
drwxr-xr-x  8 root     root     4096 Feb 22  2020 .
drwxr-xr-x 24 root     root     4096 Feb 22  2020 ..
drwxr-xr-x  2 noot     noot     4096 Feb 22  2020 noot
drwxr-xr-x  5 nootnoot nootnoot 4096 Feb 22  2020 nootnoot
drwxr-xr-x  5 shiba1   shiba1   4096 Feb 18  2020 shiba1
drwxr-xr-x  3 shiba2   shiba2   4096 Feb 22  2020 shiba2
drwxr-xr-x  6 shiba3   shiba3   4096 Jan  4 17:12 shiba3
drwxr-xr-x  5 shiba4   shiba4   4096 Jan  4 18:04 shiba4

2. shiba3@nootnoot:/home$ cd shiba3

3. shiba3@nootnoot:~$ pwd
/home/shiba3

4. shiba3@nootnoot:~$ ls -la
total 40
drwxr-xr-x 6 shiba3 shiba3 4096 Jan  4 17:12 .
drwxr-xr-x 8 root   root   4096 Feb 22  2020 ..
-rw------- 1 shiba3 shiba3  726 Feb 22  2020 .bash_history
-rw-r--r-- 1 shiba3 shiba3  220 Feb 20  2020 .bash_logout
-rw-r--r-- 1 shiba3 shiba3 3771 Feb 20  2020 .bashrc
drwx------ 2 shiba3 shiba3 4096 Jan  4 16:03 .cache
drwx------ 3 shiba3 shiba3 4096 Jan  4 16:03 .gnupg
-r-xr--r-- 1 shiba3 shiba3  810 Feb 20  2020 .profile
drwx------ 2 shiba3 shiba3 4096 Jan  4 17:12 .ssh
drwxrwxr-x 2 shiba3 shiba3 4096 Feb 22  2020 test

5. shiba3@nootnoot:~$ cd test

6. shiba3@nootnoot:~/test$ ls -la
total 8
drwxrwxr-x 2 shiba3 shiba3 4096 Feb 22  2020 .
drwxr-xr-x 6 shiba3 shiba3 4096 Jan  4 17:12 ..
-rw-rw-r-- 1 shiba3 shiba3    0 Feb 22  2020 1234
-rw-rw-r-- 1 shiba3 shiba3    0 Feb 22  2020 test1234 

Sırada, yine sorunun açıklama kısmında belirtmiş olduğu shiba4 binary'i bulmak vardı:

7. find */ | grep shiba4  

shiba4 binary'i nerelerde arayacağımızı bulduktan sonra;

8. shiba3@nootnoot:/$ cd opt/secret/ 

9. shiba3@nootnoot:/opt/secret$ ls -la
total 20
drwxr-xr-x 2 root root 4096 Feb 22  2020 .
drwxr-xr-x 3 root root 4096 Feb 22  2020 ..
-rwsrwxrwx 1 root root 8456 Feb 22  2020 shiba4 

10. shiba3@nootnoot:/opt/secret$ ./shiba4
test****

Task 9 Section 6

(man sudo | grep nearıyorsan ile bu sorulara cevap bulmak mümkün)

Soru 1:  

How do you specify which user you want to run a command as?

Kim olarak komut vereceğimi aşağıdaki şekilde seçiyorum:

Yanıt:

-u : Run the command as a user other than the default target user (usually root).

Soru 2: 

Bu defa whoami komutunu jen kullanıcısı olarak çalıştırmak istiyorum:

How would I run whoami as user jen?

Yanıt:

sudo -u jen whoami 

Soru 3:  

How do you list your current sudo privileges(what commands you can run, who you can run them as etc.)    

Yanıt:

-l

Task 10 Section 6

Bir kullanıcı eklemek istiyorsam: adduser kullanıcıadı

Bir kullanıcıyı bir gruba eklemek istiyorsam:
usermod -a -G <groups seperated by commas> <user>

Soru:

How would I add the user test to the group test?

Yanıt:

sudo usermod -a -G test test

(Root yetkileri ile yapılabilen bir işlem olduğundan başına sudo eklemek gerekiyor.)

 

 

Hiç yorum yok:

Yorum Gönder

John the Ripper ile Şifre Kırmak

  JOHN THE RIPPER ARACIYLA ŞİFRE KIRMAK  John The Ripper, açık kaynak ve ücretsiz bir şifre kırma aracı. Her ne kadar Unix için çıkmış ols...