Skip to content

Latest commit

 

History

History
2173 lines (1752 loc) · 71.4 KB

Linux-ve-Pentesting-Baslangic.md

File metadata and controls

2173 lines (1752 loc) · 71.4 KB

Linux Başlangıç Rehberi

Bu dosyada yeni başlayanlar için basit linux komutlarını ve bazı pentesting toollarının kullanımlarını göreceğiz.

Eğer virtualbox kullanıyorsanız tam ekran yapmak için apt install virtualbox-guest-additions-iso komutunu çalıştırın.


Basit Linux Komutları

Dosya/Klasör işlemleri

ls

ls komutu bulunduğunuz dizindeki dosyaları görmenizi sağlar. Örnek Kullanım:

┌──(root💀kali)-[~]
└─# ls
Desktop  Documents  Downloads  Music  Pictures  Public  Templates  Videos
  • Öneri: ls komutunu -lsah argümanı ile kullanırsanız dosyaların yazma-okuma-çalıştırma yetkilerini, dosyaların kime ait olduğunu, diskte kapladıkları alanları ve bulunduğunuz dizindeki gizli dosyaları görebilirsiniz.
┌──(root💀kali)-[~]
└─# ls -lsah
total 128K
4.0K drwx------ 14 root root 4.0K Jul 19 19:53 .
4.0K drwxr-xr-x 19 root root 4.0K Jul 19 19:38 ..
8.0K -rw-r--r--  1 root root 5.3K Jul 19 19:38 .bashrc
4.0K drwx------  7 root root 4.0K Jul 19 19:50 .cache
4.0K drwx------  8 root root 4.0K Jul 19 19:53 .config
4.0K drwxr-xr-x  2 root root 4.0K Jul 19 19:49 Desktop
4.0K -rw-r--r--  1 root root   55 Jul 19 19:49 .dmrc
4.0K drwxr-xr-x  2 root root 4.0K Jul 19 19:49 Documents
4.0K drwxr-xr-x  2 root root 4.0K Jul 19 19:49 Downloads
 12K -rw-r--r--  1 root root  12K Jul 19 19:41 .face
   0 lrwxrwxrwx  1 root root   11 Jul 19 19:41 .face.icon -> /root/.face
4.0K drwx------  3 root root 4.0K Jul 19 19:49 .gnupg
   0 -rw-------  1 root root    0 Jul 19 19:49 .ICEauthority
4.0K drwxr-xr-x  3 root root 4.0K Jul 19 19:49 .local
4.0K drwxr-xr-x  2 root root 4.0K Jul 19 19:49 Music
4.0K drwxr-xr-x  2 root root 4.0K Jul 19 19:49 Pictures
4.0K -rw-r--r--  1 root root  148 May 25 17:54 .profile
4.0K drwxr-xr-x  2 root root 4.0K Jul 19 19:49 Public
4.0K drwxr-xr-x  2 root root 4.0K Jul 19 19:49 Templates
4.0K -rw-r-----  1 root root    4 Jul 19 19:49 .vboxclient-clipboard.pid
4.0K -rw-r-----  1 root root    4 Jul 19 19:49 .vboxclient-display-svga-x11.pid
4.0K -rw-r-----  1 root root    4 Jul 19 19:49 .vboxclient-draganddrop.pid
4.0K -rw-r-----  1 root root    4 Jul 19 19:49 .vboxclient-seamless.pid
4.0K drwxr-xr-x  2 root root 4.0K Jul 19 19:49 Videos
4.0K -rw-------  1 root root   49 Jul 19 19:49 .Xauthority
8.0K -rw-------  1 root root 8.0K Jul 19 19:53 .xsession-errors
4.0K -rw-------  1 root root   24 Jul 19 19:49 .zsh_history
 12K -rw-r--r--  1 root root  11K Jul 19 19:38 .zshrc

ls komutunun sonuna herhangi bir dizin ekleyerek başka bir dizinin içeriğini de görebilirsiniz.

clear

clear komutu ekrandaki yazıları siler. Örnek kullanım:

┌──(root💀kali)-[~]
└─# clear

cd

cd komutu bulunduğunuz dizinden başka bir dizine geçmeye yarar. Örnek kullanım:

┌──(root💀kali)-[~]
└─# cd /home

┌──(root💀kali)-[/home]
└─#
  • Öneri: Eğer olduğunuz dizinin üst dizinine çıkmak istiyorsanız dizinin adını yazmak yerine .. kullanabilirsiniz.
┌──(root💀kali)-[~]
└─# cd ..

┌──(root💀kali)-[~]
└─#
  • Öneri: Eğer home dizininize dönecekseniz cd dizin yapmak yerine direk cd yazabilirsiniz.
┌──(root💀kali)-[/opt]
└─# cd 
┌──(root💀kali)-[~]
└─#

pushd/popd

pushd komutu'da cd gibi bulunduğunuz dizinden başka bir dizine geçmeye yarar. Cd'den farkı yeni dizine geçerken eski dizini unutmamasıdır. Eski dizine popd ile geri dönebilirsiniz. Örnek kullanım:


┌──(root💀kali)-[/home/can/Downloads]
└─# pushd /opt

┌──(root💀kali)-[/opt]
└─# popd

┌──(root💀kali)-[/home/can/Downloads]
└─#

mkdir

mkdir komutu klasör oluşturmaya yarar.

  • -p : iki veya daha fazla alt klasör oluşturmaya zorlar. Örnek kullanım:
┌──(root💀kali)-[~/deneme]
└─# mkdir klasör

┌──(root💀kali)-[~/deneme]
└─# ls
klasör

┌──(root💀kali)-[~/deneme]
└─# mkdir -p klasör2/klasör3

┌──(root💀kali)-[~/deneme]
└─# ls klasör2
klasör3

touch

touch komutu dosya oluşturmaya yarar. Örnek kullanım:

┌──(root💀kali)-[~/deneme]
└─# touch a.txt

┌──(root💀kali)-[~/deneme]
└─# ls
klasör  a.txt

ln

ln komutu bir dosyayı veya bir klasörü başka bir yere linklemeye/kısayol oluşturmaya yarar. Örnek kullanım:

  • -s : Sembolik olarak linkler. Genelde kullanılan parametre budur.
  • -f : Linklemeye zorlar (force).
┌──(root💀kali)-[~]
└─# ls deneme/
a.txt   b.txt

┌──(root💀kali)-[~]
└─# ln -sf deneme yeniklasor

┌──(root💀kali)-[~]
└─# ls yeniklasor
a.txt   b.txt

cat/more/less

cat, more ve less komutları dosyanın içeriğini okumaya yarar. Örnek kullanımlar:

┌──(root💀kali)-[~/deneme]
└─# cat a.txt

┌──(root💀kali)-[~/deneme]
└─# more a.txt

┌──(root💀kali)-[~/deneme]
└─# less a.txt

a.txt (END)

NOT: less komutundan çıkmak için q tuşuna basmanız gerekiyor.

  • Cat ile sıfırdan dosya yapıp içerik eklemek (SEPERATOR yerine istediğinizi yazabilirsiniz.)
┌──(root💀kali)-[~/deneme]
└─# cat <<-'SEPERATOR' > a.txt
birinci satır
ikinci satır
üçüncü satır
SEPERATOR

┌──(root💀kali)-[~/deneme]
└─# cat a.txt
birinci satır
ikinci satır
üçüncü satır
  • Varolan dosyanın altına içerik eklemek:
┌──(root💀kali)-[~/deneme]
└─# echo "123" >> a.txt

┌──(root💀kali)-[~/deneme]
└─# cat <<-'SEPERATOR' >> a.txt
birinci satır
ikinci satır
üçüncü satır
SEPERATOR

┌──(root💀kali)-[~/deneme]
└─# cat a.txt
123
birinci satır
ikinci satır
üçüncü satır

echo

echo komutu yazdığınız şeyin tekrar yazılmasını sağlar. Örnek kullanım:

  • -e : Kaçış dizilerini aktifleştirir.
┌──(root💀kali)-[~/deneme]
└─# echo Merhaba
Merhaba

┌──(root💀kali)-[~/deneme]
└─# echo -e "Merhaba\nDünya\t123"
Merhaba
Dünya   123

Genel kullanım amaçları:

  • Dosya oluşturmak
┌──(root💀kali)-[~/deneme]
└─# echo "" > b.txt

┌──(root💀kali)-[~/deneme]
└─# ls
klasör  a.txt  b.txt

NOT: Burada gördüğünüz > operatörü eğer dosya varsa dosyanın içindeki her şeyi silip echo'ya yazdığınız şeyi dosyaya yazar. Eğer dosya halihazırda yoksa bir dosya oluşturup dosyaya echo'ya koyduğunuz şeyi yazar.

┌──(root💀kali)-[~/deneme]
└─# cat b.txt

┌──(root💀kali)-[~/deneme]
└─#
  • Dosyaya ekleme yapmak
┌──(root💀kali)-[~/deneme]
└─# echo "abc" >> c.txt

┌──(root💀kali)-[~/deneme]
└─# echo "21" >> c.txt

┌──(root💀kali)-[~/deneme]
└─# cat c.txt
abc
21

┌──(root💀kali)-[~/deneme]
└─#

NOT: Burada kullandığımız >> operatörü dosyanın içeriğini silmeden sonraki satırına ekleme yapmak için kullanılır.

cp

cp komutu dosya kopyalamaya yarar. Genelde birlikte kullanılan argümanlar:

  • -r : Klasör kopyalar.
  • -f : Kopyalamaya zorlar.
  • -v : Bir klasör kopyalanırken hangi dosyaların kopyalandığının çıktısını verir.
  • -i : overwrite yapmadan önce sorar. Örnek kullanım:
┌──(root💀kali)-[~/deneme]
└─# cp -r klasör ~/

Önemli bilgiler:

  • ~/ : home klasörünüz yani şu an root olduğumuz için /root dizinini belirtmeye yarar.
  • ./ : şu an içinde olduğumuz dizini belirtmeye yarar.

rm

rm komutu verdiğiniz adresteki dosyayı silmeye yarar. Genelde birlikte kullanılan argümanlar:

  • -r : Klasör siler.
  • -f : Silmeye zorlar.
  • -v : Birden fazla dosya silerken her dosya sildikten sonra şu dosyayı sildim diye bilgi verir.
  • -i : Her silme işleminden önce silmeye emin misiniz diye sorar. Örnek kullanım:
┌──(root💀kali)-[~/deneme]
└─# rm -rf klasör

┌──(root💀kali)-[~/deneme]
└─# ls
a.txt  b.txt  c.txt

mv

mv komutu dosyaları ve klasörleri taşımaya yarar. Genelde birlikte kullanılan argümanlar:

  • -v : Birden fazla dosya tasırken her dosyayı taşıdıktan sonra şu dosyayı taşıdım diye bilgi verir.
  • -f : Taşımaya zorlar.
  • -i : overwrite yapmadan önce sorar. Örnek kullanım:
┌──(root💀kali)-[~/deneme]
└─# mv a.txt ..

┌──(root💀kali)-[~/deneme]
└─# ls
b.txt  c.txt

NOT : Eğer mv'nin içine -- koyarsanız dosyanın adını değiştirmeye yarar.

┌──(root💀kali)-[~/deneme]
└─# mv c.txt -- d.txt

┌──(root💀kali)-[~/deneme]
└─# ls
b.txt  d.txt

nano

nano terminal bazlı bir yazı editörüdür.

  • nano'da belli bir dosyayı açmak için veya dosya oluşturmak için nano dosya_adı yapın.
┌──(root💀kali)-[~]
└─# nano x.txt
  • nano'dan çıkmak için ctrl+x yapın, kaydetmek için y'ye basıp istediğniiz dosya adını yazıp enter'a basın, iptal etmek için ctrl+c yapın, kaydetmeden kapatmak için n'ye basın.

vi/vim

vi, nano'nun biraz daha kompleks halidir.

  • kaydetmek ve çıkmak için tuş kombinasyonları vardır. (:q = Çıkış | :wq = Kaydederek çıkış | :q! = Kaydetmeden çıkış )

nvim

vim'in şekilli şukullusu diyebiliriz. Varsayılan olarak gelmiyor.

find

find komutu dosya aramak için kullanılır. Genelde birlikte kullanılan argümanlar:

  • / : Bütün bilgisayarı aramaya yarar.
  • -name "dosya ismi": Dosyayı ismiyle aramak. Eğer dosya isminin sadece bir kısmını biliyorsanız, örneğin dosyanın adı flag-1-of-3.txt olsun, siz sadece flag kısmını biliyorsanız -name kısmı: -name "flag" olması gerekir. Dosyaları uzantısı ile aramak istiyorsanız, örneğin mp3 dosyaları için -name kısmı: -name "*.mp3"
  • -type tip: tipe ya f, l ya da d yazacaksınız. Eğer aratacağınız şey bir dosyaysa f, symlink ise l, klasörse d yazın.
  • 2>/dev/null: Erişim iznimiz olmayan yerleri (olumsuz çıktıları) göstermemeye yarar.
  • -perm: dosya izinlerini armaya yarar. Örnek kullanım:
┌──(root💀kali)-[~]
└─# find / -type f -perm /u=s 2>/dev/null

Yukarıdaki komut genel olarak privilege escalation yani yetki yükseltmesi yapmak için kullanılır. Sayfanın sonundaki CTF writeupundan nasıl olduğuna bakabilirsiniz.

chmod

chmod komutu dosyaların yetkilerini ayarlamaya yarar.

  • +x : Dosyayı çalıştırılabilme iznini verir.
  • -x : Dosyadan çalıştırılabilme iznini kaldırır. chmod'un nasıl kullanıldığı ile ilgili daha fazla bilgiye googleye chmod cheat sheet yazarak ulaşabilirsiniz. Veya chmod'da sayıların tam olarak ne işe yaradığını incelemek için şu fotoğrafı inceleyebilirsiniz: https://miro.medium.com/max/800/1*McJxuQAO-fLpz-7S4Cr4pA.gif Örnek kullanım:
┌──(root💀kali)-[~]
└─# chmod 777 a.sh

┌──(root💀kali)-[~]
└─# chmod -x a.sh

./

./ ile bulunduğunuz dizindeki çalıştırma yetkisi olan bir dosyayı çalıştırabilirsiniz. Çalıştırma yekisi ls -lsah meünüsünde x olarak gözükür. Örnek kullanım:

┌──(root💀kali)-[~]
└─# ./a.sh
##########################
# Abone olun olum        #
# youtube.com/c/CanDeger #
##########################

┌──(root💀kali)-[~]
└─# 

chown

chown komutu dosyaların sahipliğini değiştirmeye yarar. Örnek kullanım:

┌──(root💀kali)-[~]
└─# chown kali b.txt

NOT: Buradaki kali username

&&

&& operatörü eğer ilk komut başarıyla çalışırsa ikinci komutu da çalıştırmaya yarar. Örnek kullanım:

┌──(root💀kali)-[~]
└─# echo Merhaba && echo Dünya
Merhaba
Dünya

||

|| operatörü ilk komut çalışmazsa ikinci komutun çalışmasına olanak sağlar. Eğer ilk komut çalışırsa sonraki komut çalışmaz (if-else mantığı). Örnek kullanım:

┌──(root💀kali)-[~]
└─# echo Merhaba || echo Dünya
Merhaba

┌──(root💀kali)-[~]
└─# cat ./d.txt || echo "Sorun var"
cat: d.txt: No such file or directory
Sorun var

Olumlu çıktıların ekranda gözükmesini engellemek

Komut sonuna 1>/dev/null eklerseniz olumlu çıktılar ekranda görünmeyecektir. Eğer 1 yerine 2 yazarsanız olumsuz çıktılar ekranda görünmeyecektir. Örnek kullanım: (a.txt içerisinde mt190502 yazdığını, b.txt'in olmadığını varsayalım.)

┌──(root💀kali)-[~]
└─# cat a.txt
mt190502

┌──(root💀kali)-[~]
└─# cat a.txt 1>/dev/null

┌──(root💀kali)-[~]
└─# cat b.txt
cat: b.txt: No such file or directory

┌──(root💀kali)-[~]
└─# cat b.txt 2>/dev/null

|

| operatörü ilk komutun çıktısını kullanarak komut çalıştırmaya yarar. Örnek kullanım:

┌──(root💀kali)-[~]
└─# echo "Merhaba Dünya" | tee a.txt 1>/dev/null 

┌──(root💀kali)-[~]
└─# cat a.txt
Merhaba Dünya

tee

tee komutu, belirli bir çıktıyı dosyaya yazmaya yarayan komuttur. Örnek kullanım:

┌──(root💀kali)-[~]
└─# echo "Merhaba" | tee a.txt

┌──(root💀kali)-[~]
└─# cat a.txt
Merhaba
  • Birden fazla satırlı içerik eklemek
┌──(root💀kali)-[~]
└─# tee <<-'SEPERATOR' a.txt 1>/dev/null
birinci satır
ikinci satır
üçüncü satır
SEPERATOR

┌──(root💀kali)-[~]
└─# cat a.txt
birinci satır
ikinci satır
üçüncü satır

grep

grep komutu çıktısını alabildiğin bir komutun içinden belli bir kelime veya cümlenin olduğu satırları almaya/işlemeye yarar.

  • -v : Belirlenen kelimeyi içeren satırları almamaya yarar
  • -E : Birden çok kelime kullanmaya yarar
  • -i : Büyük küçük harf kuralını es geçer
  • -ne : Satır numaralarını gösterir
  • -A(SAYI) : Belirlenen kelimenin altından SAYI kadar satır alır (After)
  • -B(SAYI) : Belirlenen kelimenin üstünden SAYI kadar satır alır (Before) Örnek kullanım:
┌──(root💀kali)-[~]
└─# cat r.txt
Merhaba
ben
n30nx.

┌──(root💀kali)-[~]
└─# cat r.txt | grep n30nx
n30nx.

┌──(root💀kali)-[~]
└─# cat r.txt | grep -v ben
Merhaba
n30nx.

┌──(root💀kali)-[~]
└─# cat r.txt | grep -Ei "ben|n30nx"
ben
n30nx.

┌──(root💀kali)-[~]
└─# cat r.txt | grep -ne ben
2:ben

┌──(root💀kali)-[~]
└─# cat r.txt | grep -A1 ben
Merhaba

┌──(root💀kali)-[~]
└─# cat r.txt | grep -B1 ben
n30nx.

cut

cut komutu, herhangi bir komutun çıktısındaki değeri kırpmaya yarar. "|" ile birlikte kullanılabilir.

  • -d : Ayraç olarak hangi karakterin kullanacağını belirler.
  • -f : Ayracın başından başlayarak seçim yapmaya yarar. En sona "-" eklerseniz satırın sonuna kadar alır. Örnek kullanım:
┌──(root💀kali)-[~]
└─# cat g.txt
Merhaba dünya. Selam 123 deneme

┌──(root💀kali)-[~]
└─# cat g.txt | cut -d ' ' -f1-2
Merhaba dünya.

┌──(root💀kali)-[~]
└─# cat g.txt | cut -d '.' -f2-
Selam 123 deneme

awk

awk komutu, bir nevi grep gibi kelime işleme aracıdır. Grep ve cut'tan daha gelişmiş bir yapısı vardır.

  • -F : Ayraç olarak hangi karakterin kullanılacağını belirler. Varsayılan olarak boşluk karakteridir. Daha fazla bilgi için google'a awk cheatsheet yazabilirsiniz. Örnek kullanım:
┌──(root💀kali)-[~]
└─# cat g.txt
Merhaba dünya. Selam 123 deneme

┌──(root💀kali)-[~]
└─# cat g.txt | awk '{print $1}'
Merhaba

┌──(root💀kali)-[~]
└─# cat g.txt | awk '{print $1,$3}'
Merhaba Selam

┌──(root💀kali)-[~]
└─# cat g.txt | awk -F '.' '{print $1}'
Merhaba dünya

xargs

xargs komutu, | ile kullanıldığında önceki komutun çıktısını kullanarak sonraki komuta o çıktıyı aktarmaya yarar. Örnek kullanım:

┌──(root💀kali)-[~]
└─# cat d.txt
"##########################\n# Abone olun olum        #\n# youtube.com/c/CanDeger #\n##########################"

┌──(root💀kali)-[~]
└─# cat d.txt | xargs echo -e
##########################
# Abone olun olum        #
# youtube.com/c/CanDeger #
##########################

uniq

uniq komutu verilen yazıların içinden farklı satırda ve aynı olanları eleyerek bir çıktı döndürür.

  • -c : Aynı olanların kaç kez tekrar ettiğini gösterir. Örnek kullanım:
┌──(root💀kali)-[~]
└─# cat a.txt
a
a
a
b
b
b
c
c
c

┌──(root💀kali)-[~]
└─# cat a.txt | uniq # veya uniq a.txt
a
b
c

┌──(root💀kali)-[~]
└─# cat a.txt | uniq -c
      3 a
      3 b
      3 c

sort

sort komutu verilen yazıları sözlük sırasına göre sıralar.

  • -V : Versiyon sıralaması yapar.
  • -r : Sıralamayı tersine çevirir. Örnek kullanım:
┌──(root💀kali)-[~]
└─# cat k.txt
b
c
a

┌──(root💀kali)-[~]
└─# cat k.txt | sort # veya sort k.txt
a
b
c

┌──(root💀kali)-[~]
└─# cat versions.txt
python3.8
python3.6
python3.9
python3.7

┌──(root💀kali)-[~]
└─# cat versions.txt | sort -V
python3.6
python3.7
python3.8
python3.9

┌──(root💀kali)-[~]
└─# cat versions.txt | sort -Vr
python3.9
python3.8
python3.7
python3.6

base64

base64, bir encoding sistemidir burada base64 linux sistemlere indirilebilen base64 decode ve encode'ye yarayan bir araçtır. Genelde birlikte kullanılan argümanlar:

  • -d : decode
  • -i : decodelerken alfabetik olmayan karakterleri yoksay. Örnek kullanım:
┌──(root💀kali)-[~]
└─# echo Can Değer | base64
Q2FuIERlxJ9lcgo=

┌──(root💀kali)-[~]
└─# echo Q2FuIERlxJ9lcgo= | base64 -d
Can Değer

md5sum

md5sum komutu bir dosyanın md5 hashini alır.

  • -c dosya : MD5SUM taraması için bir dosya kullanır. Örnek kullanım:
┌──(root💀kali)-[~]
└─# md5sum a.txt
a651a365a7f35ec86e4b3430bcb6e735  a.txt

┌──(root💀kali)-[~]
└─# md5sum -c md5sums.txt
archlinux-2021.09.01-x86_64.iso: OK
archlinux-bootstrap-2021.09.01-x86_64.tar.gz: OK

sha256sum

sha256sum komutu bir dosyanın sha256 hashini alır.

  • -c dosya : SHA256SUM taraması için bir dosya kullanır. Örnek kullanım:
┌──(root💀kali)-[~]
└─# sha256sum a.txt
32c2643e0dc65524c9f1f6f9f00937322fd68d59986bc381d9ff2285d23e353d  a.txt

head

head komutu bir dosyanın içinden en üstten başlayarak belirttiğiniz sayı kadar satırı çıktı olarak verir. Sayı vermezseniz default olarak 10 sayısını kullanır. Sayı vereceğiniz argüman -n'dir. Örnek kullanım:

┌──(root💀kali)-[~]
└─# cat a.txt
1
2
3
4
5
6
7
8
9

┌──(root💀kali)-[~]
└─# head -n 2 a.txt
1
2

tail

tail komutu bir dosyanın içinden en alttan başlayarak belirttiğiniz sayı kadar satırı çıktı olarak verir. Sayı vermezseniz default olarak 10 sayısını kullanır. Sayı vereceğiniz argüman -n'dir. Örnek kullanım:

┌──(root💀kali)-[~]
└─# cat a.txt
1
2
3
4
5
6
7
8
9

┌──(root💀kali)-[~]
└─# tail -n 2 a.txt
8
9

curl

cURL data transferi için kullanılan bir tooldur. Genelde birlikte kullanılan argümanlar:

  • -d : HTTP POST için kullanılacak data.
  • -o dosya : çıktıyı yazacağı dosya.
  • -s : Sessiz mod, çıktı göstermez.
  • -f : HTTP hatalarını görmezden gelir.
  • -A user-agent : User-Agent header'i belirlemeye yarar. HTTP headerları hakkında daha fazla bilgi için buraya tıklayın.

wget

curl'e benzer bir tooldur.

zip/unzip

zip komutu verilen dosyaları bir .zip arşivi oluşturup klasörü sıkıştırıp arşive ekler. unzip ise .zip arşivinden çıkarır. Şifre koymak için -e seçeneği kullanılır. Örnek kullanım:

┌──(root💀kali)-[~]
└─# zip a.zip a.txt deneme
  adding: a.txt (stored 0%)
  adding: deneme/ (stored 0%)

┌──(root💀kali)-[~]
└─# unzip a.zip

tar

tar komutu ile .tar arşivi oluşturabilirsiniz veya .tar arşivlerinin içinden dosyaları çıkarabilirsiniz. Örnek kullanım:

┌──(root💀kali)-[~]
└─# tar -cf r.tar a.txt deneme

┌──(root💀kali)-[~]
└─# tar -xvf r.tar
a.txt
deneme/
deneme/a.txt
deneme/x.txt

Sistem yönetimi ve araçları

history

history komutu daha önce kullandığınız komutları gösterir. Örnek kullanım:

┌──(root💀kali)-[~/deneme]
└─# history
    1  clear
    2  ls -lsah
    3  clear
    4  mkdir a
    5  rm -rf a
    6  clear
    7  ls
    8  clear
    9  exit
   10  clear

history komutunun bilgilerini tuttuğu yer home dizininizdeki .bash_history, .zsh_history veya ~/.local/share/fish/fish_history dosyasıdır. NOT: Eğer bash kullanıyorsanız history -c komutu ile geçmişi temizleyebilirsiniz

alias

alias komutu belli komutları beraber çalıştırmak için veya normalde uzun olan bi komutu kısa bir şekilde çalıştırmak için kullanılır. Örnek kullanım:

┌──(root💀kali)-[~/deneme]
└─# alias sil="rm -rf"

┌──(root💀kali)-[~/deneme]
└─# sil b.txt

┌──(root💀kali)-[~/deneme]
└─# ls
d.txt

Öneri: alias'ları kalıcı hale getirmek isterseniz kullandığınız shell'e göre alias ekleyin. (Bash için: .bashrc dosyasının sonuna, Zsh için: .zshrc, Fish için: ~/.config/fish/config.fish)

┌──(root💀kali)-[~]
└─# echo 'alias sil="rm -rf"' >> .bashrc # zsh kullanıyorsanız .zshrc, fish kullanıyorsanız ~/.config/fish/config.fish

NOT: Bunu yaptıktan sonra terminali kapatıp tekrar açın değişiklikler uygulanmış olacaktır.

export

export komutu o an ki oturumda belli bir isme bir değer atamaya yarar. Örnek kullanım:

┌──(root💀kali)-[~]
└─# export isim="echo Can Değer"

┌──(root💀kali)-[~]
└─# $isim
Can Değer

Öneri: export'ları kalıcı hale getirmek isterseniz kullandığınız shell'e göre export'ları ekleyin. (Bash için: .bashrc dosyasının sonuna, Zsh için: .zshrc, Fish için: ~/.config/fish/config.fish)

┌──(root💀kali)-[~]
└─# echo 'export isim="echo Can Değer"' >> .bashrc # zsh kullanıyorsanız .zshrc, fish kullanıyorsanız ~/.config/fish/config.fish

NOT: Bunu yaptıktan sonra terminali kapatıp tekrar açın değişiklikler uygulanmış olacaktır.

alias'tan tek farkı export'a tanımladığınız ismi çağırırken başına dolar simgesi ($) koymanız gerekir.

man

man komutu bilgisayarınızdaki herhangi bir programın manual'ini yani klavuzunu açar.

  • man SAYI kılavuz : Belirttiğiniz sayıda bulunan kılavuzu açar. Örnek kullanım:
┌──(root💀kali)-[~]
└─# man systemctl

┌──(root💀kali)-[~]
└─# man 5 fstab

NOT: man ekranından çıkmak için q'ya basmanız gerekiyor.

ssh

ssh başka bir bilgisayara bağlanamya yarar.

  • -i: ssh private key kullanarak giriş yapmayı sağlar. Örnek kullanım:
┌──(root💀kali)-[~]
└─# ssh kali@10.10.10.10

Gelen ekranda evet yazacaksınız ve daha sonra da şifreyi gireceksiniz. Yukarıdaki kullanım ssh portunun default olduğunu varsayar. Örnek çıktı:

┌──(root💀kali)-[~]
└─# ssh kali@localhost
The authenticity of host 'localhost (::1)' can't be established.
(KEY) key fingerprint is SHA256:(SHA256).
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added 'localhost' (KEY) to the list of known hosts.
kali@localhost's password: 
Last login: Sun Sep 19 22:49:38 2021

ftp

ftp başka bir bilgisayara dosya ekleme, silme veya o bilgisayardaki dosyayı değiştirme veya dosyayı almaya yarar. Örnek kullanım:

┌──(root💀kali)-[~]
└─# ftp 10.10.10.10

Gelen ekranda ilk önce kullanıcı adını daha sonra ise şifreyi gireceksiniz. Ve içeride yetkileriniz dahilinde dğeişiklik yapabilir veya dosya indirebilirsiniz.

hostname

hostname komutu bilgisayarın adını değiştirmeye yarar. Örnek kullanım:

┌──(root💀kali)-[~]
└─# hostname deneme

Sağ üstteki kapatma tuşuna basıp çıkış yap'a tıklayıp tekrar giriş yapın ve terminali açın

┌──(root💀deneme)-[~]
└─#

sudo

sudo komutu eğer sudo yetkiniz var ise kendinden sonra yazılan komutu yönetici olarak çalıştırmaya yarar. Genelde birlikte kullanılan argümanlar:

  • -l : bu komutu çalıştırdığınız kullanıcının yetkilerini gösterir.
  • -u kullanici komut : başka bir kullanıcı olarak sudo çalıştırmanıza yarar. Örnek kullanım:
┌──(kali㉿kali)-[~]
└─$ sudo -l
[sudo] password for kali: 
Matching Defaults entries for kali on kali:
    env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin

User kali may run the following commands on kali:
    (ALL : ALL) ALL

┌──(kali㉿kali)-[~]
└─$ sudo -u root id
uid=0(root) gid=0(root) groups=0(root),20(dialout),121(wireshark),146(kaboxer)

ping

ping komutu karşı makinaya paket göndererek yanıt alır ve aldığı yanıtın gönderdiği kaçıncı paket olduğunu(icmp_seq), yaşama zamanını(ttl) gecikmesini(time) ekrana yansıtır.

  • -c : Kaç kez ping atılması isteniyorsa o kadar ping atar. Örnek kullanım:
┌──(root💀kali)-[~]
└─# ping archlinux.org
PING archlinux.org (95.217.163.246) 56(84) bytes of data.
64 bytes from archlinux.org (95.217.163.246): icmp_seq=1 ttl=49 time=76.7 ms
64 bytes from archlinux.org (95.217.163.246): icmp_seq=2 ttl=49 time=73.0 ms
64 bytes from archlinux.org (95.217.163.246): icmp_seq=3 ttl=49 time=76.7 ms
64 bytes from archlinux.org (95.217.163.246): icmp_seq=4 ttl=49 time=73.1 ms
64 bytes from archlinux.org (95.217.163.246): icmp_seq=5 ttl=49 time=72.9 ms
64 bytes from archlinux.org (95.217.163.246): icmp_seq=6 ttl=49 time=73.3 ms
^C
--- archlinux.org ping statistics ---
6 packets transmitted, 6 received, 0% packet loss, time 5009ms
rtt min/avg/max/mdev = 72.853/74.265/76.713/1.731 ms


┌──(root💀kali)-[~]
└─# ping -c 2 archlinux.org
PING archlinux.org (95.217.163.246) 56(84) bytes of data.
64 bytes from archlinux.org (95.217.163.246): icmp_seq=1 ttl=45 time=164 ms
64 bytes from archlinux.org (95.217.163.246): icmp_seq=2 ttl=45 time=162 ms

--- archlinux.org ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1037ms
rtt min/avg/max/mdev = 161.987/163.030/164.073/1.043 ms

r

r komutu son çalıştırılan komutu tekrar çalıştırır. Örnek kullanım:

┌──(root💀kali)-[~]
└─# cat r.txt
Merhaba
ben
n30nx.

┌──(root💀kali)-[~]
└─# r
cat r.txt
Merhaba
ben
n30nx.

locate

locate komutu içinde verilen keyword olan bütün klasör ve dosyaları döndürür. Örnek kullanım:

┌──(root💀kali)-[~]
└─# locate bash
/etc/bash.bashrc
/etc/bash_completion
/etc/bash_completion.d
/etc/apparmor.d/abstractions/bash
/etc/bash_completion.d/git-prompt
/etc/profile.d/bash_completion.sh
/etc/skel/.bash_logout
/etc/skel/.bashrc
/etc/skel/.bashrc.original
/home/kali/.bash_logout
/home/kali/.bashrc
/home/kali/.bashrc.original
/root/.bash_history
/root/.bashrc
/usr/bin/bash
/usr/bin/bashbug
/usr/bin/dh_bash-completion
/usr/bin/rbash
/usr/lib/llvm-11/share/clang/bash-autocomplete.sh
/usr/lib/llvm-9/share/clang/bash-autocomplete.sh
/usr/lib/python3/dist-packages/click/_bashcomplete.py
/usr/lib/python3/dist-packages/click/__pycache__/_bashcomplete.cpython-39.pyc
/usr/lib/python3/dist-packages/cme/helpers/bash.py
/usr/lib/python3/dist-packages/cme/helpers/__pycache__/bash.cpython-39.pyc
...

which

which komutu belli bir programın yerini belirlemeye yarar. Örnek kullanım:

┌──(root💀kali)-[~]
└─# which bash
/usr/bin/bash

xrandr

xrandr komutu X.org görüntü sunucusuna bağlı olarak bilgisayara bağlı montiörleri göstermeye yarar. Örnek kullanım:

┌──(root💀kali)-[~]
└─# xrandr
Screen 0: minimum 1 x 1, current 1360 x 703, maximum 8192 x 8192
Virtual1 connected primary 1360x703+0+0 (normal left inverted right x axis y axis) 0mm x 0mm
   1360x703      60.00*+
   2560x1600     59.99  
   1920x1440     60.00  
   1856x1392     60.00  
   1792x1344     60.00  
   1920x1200     59.88  
   1600x1200     60.00  
   1680x1050     59.95  
   1400x1050     59.98  
   1280x1024     60.02  
   1440x900      59.89  
   1280x960      60.00  
   1360x768      60.02  
   1280x800      59.81  
   1152x864      75.00  
   1280x768      59.87  
   1024x768      60.00  
   800x600       60.32  
   640x480       59.94  
Virtual2 disconnected (normal left inverted right x axis y axis)
Virtual3 disconnected (normal left inverted right x axis y axis)
Virtual4 disconnected (normal left inverted right x axis y axis)
Virtual5 disconnected (normal left inverted right x axis y axis)
Virtual6 disconnected (normal left inverted right x axis y axis)
Virtual7 disconnected (normal left inverted right x axis y axis)
Virtual8 disconnected (normal left inverted right x axis y axis)

journalctl

jorunalctl bilgisayarın açılmasından o ana kadar ki logları gösterir. Genelde -xb komutuyla kullanılır.

  • --no-hostname : Çıktıdan hostname'i gizler.
  • -D dosya : Belirttiğiniz journal dosyasını okur. Journal dosyaları /var/log/journal içinde biriktirilir. Örnek kullanım:
┌──(root💀kali)-[~]
└─# journalctl -xb

systemctl

systemctl systemd'nin kontrolcüsü, sistem ve service manageri olarak kullanılır. Genel birlikte kullanılan argümanlar:

  • --user : Root hesabında çalışmayan kullanıcılar altındaki işlemler için kullanılır
  • start servis : servisi başlatır
  • stop servis : servisi durdurur
  • reload servis : servisi yeniler
  • restart servis : servisi yeniden başlatır
  • show servis : servisin detaylarını gösterir
  • status servis : servisin durmunu gösterir
  • clean servis : runtime, önbellek, stage ve logları veya konfigürasyon temizler
  • status : bütün servislerin durumunu gösterir
  • enable servis : servisin bilgisayarın başlangıcında açılmasını sağlar
  • is-enabled servis : servisin bilgisayar başlandıcında açılmaya ayarlı olup olmadığını kontrol eder
  • disable servis : servisin bilgisayarın başlangıcında açılmasını kapatır
  • mask servis : servisi gizler
  • unmask servis : servisin gizliliğini kapatır
  • reboot : bilgisayarı yeniden başlatır
  • poweroff : bilgisayarı kapatır.
  • suspend : bilgisayarı askıya alır.
  • rescue: : kurtarma modu
  • -i : errorları yoksayar
  • -f : işlemi yapmaya zorlar Örnek kullanımlar:
┌──(root💀kali)-[~]
└─# systemctl start tor # tor kali'de default olarak gelmiyor, indirmek için apt install kali

┌──(root💀kali)-[~]
└─# systemctl --user status pipewire-pulse.service # Ses sunucusu yardımcı servisi normal kullanıcı altında çalışır. Kontrol etmek için (--user)
● pipewire-pulse.service - PipeWire PulseAudio
     Loaded: loaded (/usr/lib/systemd/user/pipewire-pulse.service; enabled; vendor preset: disabled)
     ...

┌──(root💀kali)-[~]
└─# systemctl status tor
● tor.service - Anonymizing overlay network for TCP (multi-instance-master)
     Loaded: loaded (/lib/systemd/system/tor.service; disabled; vendor preset: disabled)
     Active: active (exited) since Tue 2021-07-20 12:14:25 +03; 8s ago
    Process: 2396 ExecStart=/bin/true (code=exited, status=0/SUCCESS)
   Main PID: 2396 (code=exited, status=0/SUCCESS)
        CPU: 1ms

Jul 20 12:14:25 kali systemd[1]: Starting Anonymizing overlay network for TCP (multi-instance-master)...
Jul 20 12:14:25 kali systemd[1]: Finished Anonymizing overlay network for TCP (multi-instance-master).

┌──(root💀kali)-[~]
└─# systemctl stop tor

┌──(root💀kali)-[~]
└─# systemctl status tor
● tor.service - Anonymizing overlay network for TCP (multi-instance-master)
     Loaded: loaded (/lib/systemd/system/tor.service; disabled; vendor preset: disabled)
     Active: inactive (dead)

Jul 20 12:14:25 kali systemd[1]: Starting Anonymizing overlay network for TCP (multi-instance-master)...
Jul 20 12:14:25 kali systemd[1]: Finished Anonymizing overlay network for TCP (multi-instance-master).
Jul 20 12:15:35 kali systemd[1]: tor.service: Succeeded.
Jul 20 12:15:35 kali systemd[1]: Stopped Anonymizing overlay network for TCP (multi-instance-master).

┌──(root💀kali)-[~]
└─# systemctl enable tor
Synchronizing state of tor.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable tor
Created symlink /etc/systemd/system/multi-user.target.wants/tor.service → /lib/systemd/system/tor.service.

┌──(root💀kali)-[~]
└─# systemctl is-enabled tor
enabled

┌──(root💀kali)-[~]
└─# systemctl disable tor
Synchronizing state of tor.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install disable tor
Removed /etc/systemd/system/multi-user.target.wants/tor.service.

service

service komutu servisleri başlatmaya durdurmaya vesaire yarar. systemctl'nin servisleri çalıştıran yansıması gibidir. Genel birlikte kullanılan argümanlar:

  • servis start
  • servis stop
  • servis reload
  • servis status
  • servis show
  • servis enable
  • servis disable Örnek kullanımlar:
┌──(root💀kali)-[~]
└─# service tor start

┌──(root💀kali)-[~]
└─# service tor status
● tor.service - Anonymizing overlay network for TCP (multi-instance-master)
     Loaded: loaded (/lib/systemd/system/tor.service; disabled; vendor preset: disabled)
     Active: active (exited) since Tue 2021-07-20 13:13:14 +03; 21s ago
    Process: 3477 ExecStart=/bin/true (code=exited, status=0/SUCCESS)
   Main PID: 3477 (code=exited, status=0/SUCCESS)
        CPU: 1ms

Jul 20 13:13:14 kali systemd[1]: Starting Anonymizing overlay network for TCP (multi-instance-master)...
Jul 20 13:13:14 kali systemd[1]: Finished Anonymizing overlay network for TCP (multi-instance-master).

┌──(root💀kali)-[~]
└─# service tor stop

shutdown

shutdown komutu bilgisayarı kapatmak veya yeniden başlatmak için kullanılır. Genelde birlikte kullanılan argümanlar:

  • -P zaman : bilgisayarı kapatmaya yarar ve buradaki zaman dakikadır. zaman kısmına now yazarsanız bilgisayar o anda kapanır.
  • -r zaman : bilgisayarı yeniden başlatmaya yarar ve buradaki zaman dakikadır. zaman kısmına now yazarsanız bilgisayar o anda yeniden başlar. Örnek Kullanım:
┌──(root💀kali)-[~]
└─# shutdown -P now

init

init, bir systemd servisidir ve genelde bilgisayarı kapatmak, yeniden başlatmak ve resuce moduna almak için kullanılır. Genelde birlikte kullanılan argümanlar:

  • 0 : bilgisayarı kapatır.
  • 1 : bilgisayarı kurtarma moduna alır.
  • 6 : bilgisayarı yeniden başlatır. Örnek kullanım:
┌──(root💀kali)-[~]
└─# init 0

setxkbmap

setxkbmap kullandığınız terminal oturumunda klavye dilini değiştirmeye yarar. Örnek kullanım:

┌──(root💀kali)-[~]
└─# setxkbmap tr

su

su komutu kullanıcı değiştirmek için kullanılır. sudo ile kullanılması durumunda eğer yetkiniz varsa root hesabına geçersiniz. Örnek kullanım:

┌──(root💀kali)-[~]
└─# su kali
┌──(kali㉿kali)-[/root]
└─$

NOT: Root hesabında iseniz hesap değiştireceğiniz zaman şifre sorulmaz. su komutu ile geçtiğiniz kullanıcıdan çıkmak için exit yazmanız yeterlidir.

id

id komutu kullandığımız userin gruplarını, uidisini ve gidsini verir.

  • -u : uid
  • -g : gid Örnek kullanım:
┌──(root💀kali)-[~/deneme]
└─# id       
uid=0(root) gid=0(root) groups=0(root),20(dialout),121(wireshark),146(kaboxer)

┌──(root💀kali)-[~/deneme]
└─# id -u
0

mount

mount komutu harici sürücüleri veya bölümleri bağlamaya yarar.

  • -o : Bağlama ayarlarını seçmeye yarar. (bind: Klasör-Klasör bağlaması)
  • -t : Bölüm tipini seçmeye yarar. Örnek kullanım:
┌──(root💀kali)-[~]
└─# mount /dev/sdb1 /mnt

┌──(root💀kali)-[~]
└─# mount -o bind /dev /mnt/dev

┌──(root💀kali)-[~]
└─# mount -t proc /proc /mnt/proc

umount

umount komutu bağlanmış bölümleri çıkarmaya yarar. Örnek kullanım:

┌──(root💀kali)-[~]
└─# umount /mnt

┌──(root💀kali)-[~]
└─# umount /dev/sda9

pwd

pwd komutu çalıştırdığınız yerdeki dizini görmenize yarar. Örnek kullanım:

┌──(root💀kali)-[~]
└─# pwd
/root

ps

ps komutu genel olarak ps aux şeklinde kullanılır ve o anda çalışan işlemleri gösterir. Örnek kullanım:

┌──(root💀kali)-[~]
└─# ps aux
USER         PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root           1  0.0  0.1 165080 10688 ?        Ss   10:57   0:07 /sbin/init splash
root           2  0.0  0.0      0     0 ?        S    10:57   0:00 [kthreadd]
root           3  0.0  0.0      0     0 ?        I<   10:57   0:00 [rcu_gp]
root           4  0.0  0.0      0     0 ?        I<   10:57   0:00 [rcu_par_gp]
root           6  0.0  0.0      0     0 ?        I<   10:57   0:00 [kworker/0:0H-events_highpri]
root           9  0.0  0.0      0     0 ?        I<   10:57   0:00 [mm_percpu_wq]
root          10  0.0  0.0      0     0 ?        S    10:57   0:00 [rcu_tasks_rude_]
root          11  0.0  0.0      0     0 ?        S    10:57   0:00 [rcu_tasks_trace]
root          12  0.0  0.0      0     0 ?        S    10:57   0:00 [ksoftirqd/0]
root          13  0.0  0.0      0     0 ?        I    10:57   0:00 [rcu_sched]
root          14  0.0  0.0      0     0 ?        S    10:57   0:00 [migration/0]
root          15  0.0  0.0      0     0 ?        S    10:57   0:00 [cpuhp/0]
root          16  0.0  0.0      0     0 ?        S    10:57   0:00 [cpuhp/1]
root          17  0.0  0.0      0     0 ?        S    10:57   0:00 [migration/1]
root          18  0.0  0.0      0     0 ?        S    10:57   0:00 [ksoftirqd/1]
root          20  0.0  0.0      0     0 ?        I<   10:57   0:00 [kworker/1:0H-events_highpri]
root          21  0.0  0.0      0     0 ?        S    10:57   0:00 [cpuhp/2]
root          22  0.0  0.0      0     0 ?        S    10:57   0:00 [migration/2]
root          23  0.0  0.0      0     0 ?        S    10:57   0:00 [ksoftirqd/2]
root          25  0.0  0.0      0     0 ?        I<   10:57   0:00 [kworker/2:0H-events_highpri]
root          26  0.0  0.0      0     0 ?        S    10:57   0:00 [cpuhp/3]
root          27  0.0  0.0      0     0 ?        S    10:57   0:00 [migration/3]
root          28  0.0  0.0      0     0 ?        S    10:57   0:00 [ksoftirqd/3]
root          30  0.0  0.0      0     0 ?        I<   10:57   0:00 [kworker/3:0H-events_highpri]
root          35  0.0  0.0      0     0 ?        S    10:57   0:00 [kdevtmpfs]
root          36  0.0  0.0      0     0 ?        I<   10:57   0:00 [netns]
root          37  0.0  0.0      0     0 ?        S    10:57   0:00 [kauditd]
root          38  0.0  0.0      0     0 ?        S    10:57   0:00 [khungtaskd]
root          39  0.0  0.0      0     0 ?        S    10:57   0:00 [oom_reaper]
root          40  0.0  0.0      0     0 ?        I<   10:57   0:00 [writeback]
root          41  0.0  0.0      0     0 ?        S    10:57   0:00 [kcompactd0]
root          42  0.0  0.0      0     0 ?        SN   10:57   0:00 [ksmd]
root          43  0.0  0.0      0     0 ?        SN   10:57   0:00 [khugepaged]
root          61  0.0  0.0      0     0 ?        I<   10:57   0:00 [kintegrityd]
root          62  0.0  0.0      0     0 ?        I<   10:57   0:00 [kblockd]
root          63  0.0  0.0      0     0 ?        I<   10:57   0:00 [blkcg_punt_bio]
root          64  0.0  0.0      0     0 ?        I<   10:57   0:00 [edac-poller]
root          65  0.0  0.0      0     0 ?        I<   10:57   0:00 [devfreq_wq]
root          66  0.0  0.0      0     0 ?        I    10:57   0:00 [kworker/2:1-events]
root          67  0.0  0.0      0     0 ?        I<   10:57   0:00 [kworker/0:1H-kblockd]
root          70  0.0  0.0      0     0 ?        S    10:58   0:00 [kswapd0]
root          71  0.0  0.0      0     0 ?        I<   10:58   0:00 [kthrotld]
root          72  0.0  0.0      0     0 ?        I<   10:58   0:00 [acpi_thermal_pm]
root          73  0.0  0.0      0     0 ?        I<   10:58   0:00 [ipv6_addrconf]
root          74  0.0  0.0      0     0 ?        I<   10:58   0:00 [kworker/1:1H-kblockd]
root          83  0.0  0.0      0     0 ?        I<   10:58   0:00 [kstrp]
root          86  0.0  0.0      0     0 ?        I<   10:58   0:00 [zswap-shrink]
root          87  0.0  0.0      0     0 ?        I<   10:58   0:00 [kworker/u9:0]
root          88  0.0  0.0      0     0 ?        I    10:58   0:00 [kworker/3:1-events]
root         140  0.0  0.0      0     0 ?        I<   10:58   0:00 [kworker/2:1H-kblockd]
root         142  0.0  0.0      0     0 ?        I<   10:58   0:00 [cryptd]
root         143  0.0  0.0      0     0 ?        I<   10:58   0:00 [kworker/3:1H-kblockd]
root         144  0.0  0.0      0     0 ?        I<   10:58   0:00 [ata_sff]
root         145  0.0  0.0      0     0 ?        S    10:58   0:00 [scsi_eh_0]
root         147  0.0  0.0      0     0 ?        I<   10:58   0:00 [scsi_tmf_0]
root         149  0.0  0.0      0     0 ?        S    10:58   0:00 [scsi_eh_1]
root         151  0.0  0.0      0     0 ?        I<   10:58   0:00 [scsi_tmf_1]
root         152  0.0  0.0      0     0 ?        S    10:58   0:00 [scsi_eh_2]
root         153  0.0  0.0      0     0 ?        I<   10:58   0:00 [scsi_tmf_2]
root         185  0.0  0.0      0     0 ?        S    10:58   0:00 [irq/18-vmwgfx]
root         186  0.0  0.0      0     0 ?        I<   10:58   0:00 [ttm_swap]
root         188  0.0  0.0      0     0 ?        S    10:58   0:00 [card0-crtc0]
root         190  0.0  0.0      0     0 ?        S    10:58   0:00 [card0-crtc1]
root         191  0.0  0.0      0     0 ?        S    10:58   0:00 [card0-crtc2]
root         192  0.0  0.0      0     0 ?        S    10:58   0:00 [card0-crtc3]
...

kill

kill komutu o anda çalışan bir uygulamayı process id'si ile kapatmaya yarar. Örnek kullanım:

[1. terminal]
┌──(root💀kali)-[~]
└─# python3
Python 3.9.2 (default, Feb 28 2021, 17:03:44) 
[GCC 10.2.1 20210110] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>

[2. terminal]
┌──(root💀kali)-[~]
└─# ps aux | grep -v grep | grep python3
root        1047  0.0  0.6 439444 46736 ?        Sl   11:03   0:00 /usr/bin/python3 /usr/bin/blueman-applet
root        1162  0.0  0.5 360444 40408 ?        Sl   11:03   0:00 /usr/bin/python3 /usr/bin/blueman-tray
root        3821  0.6  0.1  16848  9756 pts/3    S+   13:30   0:00 python3

┌──(root💀kali)-[~]
└─# kill 3821

[2.terminaldeki komuttan sonra 1.terminal]
Python 3.9.2 (default, Feb 28 2021, 17:03:44) 
[GCC 10.2.1 20210110] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> zsh: terminated  python3

killall

killall komutu o anda çalışan bir uygulamayı ismiyle kapatmaya yarar. Örnek kullanım:

[1. terminal]
┌──(root💀kali)-[~]
└─# python3
Python 3.9.2 (default, Feb 28 2021, 17:03:44) 
[GCC 10.2.1 20210110] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>

[2. terminal.]
┌──(root💀kali)-[~]
└─# killall python3

[2.terminaldeki komuttan sonra 1.terminal]    
Python 3.9.2 (default, Feb 28 2021, 17:03:44) 
[GCC 10.2.1 20210110] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> zsh: terminated  python3

whoami

whoami komutu kullandığınız kullanıcının adını gösterir. Örnek kullanım:

┌──(root💀kali)-[~]
└─# whoami
root

uname

uname komutu bilgisayar hakkında bazı bilgileri verir. Örnek kullanım:

  • -a : Tüm bilgileri çıktı olarak yansıtır.
  • -s : Kernel ismini gösterir.
  • -r : Kernel sürümünü gösterir
  • -m : Mimari'yi gösterir.
  • -p : İşlemci mimarisini gösterir.
┌──(root💀kali)-[~]
└─# uname -a
Linux kali 5.10.0-kali7-amd64 #1 SMP Debian 5.10.28-1kali1 (2021-04-12) x86_64 GNU/Linux

inxi

inxi programı üçüncü parti bir uygulamadır. Varsayılan olarak sistemlerde bulunmayabilir. Bu program sisteminiz hakkında detaylı bilgiler verir. Sistem hakkında detaylı bilgi almak için "inxi -Fa" komutunu kullanabilirsiniz.

┌──(root💀kali)-[~]
└─# inxi 
CPU: Quad Core Intel Core i5-1035G1 (-MT MCP-) speed/min/max: 1058/400/3600 MHz 
Kernel: 5.10.0-kali7-amd64 Up: 3d 14h 27m Mem: 5903.1/7708.2 MiB (76.6%) 
Storage: 238.47 GiB (31.6% used) Procs: 327 Shell: zsh inxi: 3.3.06

useradd

useradd komutu kullanıcı eklemeye yarar. Genelde birlikte kullanılan argümanlar:

  • -m : /home/kullanici_adi klasörünü yani home dizinini oluşturmaya yarar.
  • -G : Grup seçimini yapmaya yarar
  • -M : home dizini oluşturma
  • -r : sistem hesabı oluşturur
  • -s : shell'i seçmek için kullanılır eğer bu seçenek kullanılmazs ayeni kullanıcının default shell'i sh olacaktır Örnek kullanım:
┌──(root💀kali)-[~]
└─# useradd -mG wheel -s /usr/bin/zsh deneme

usermod

usermod komutu kullanıcıları gruplara eklemeye yarar. Örnek kullanım:

┌──(root💀kali)-[~]
└─# usermod -aG sudo deneme

Deneme kullanıcısını sudo grubuna ekledik.

gpasswd

gpasswd komutu'da grup yönetimi için bulunan bir komuttur. usermod komutundan farkı kullanıcıları gruptan çıkarma yetkisine sahiptir.

  • -a : Kullanıcıyı gruba ekler.
  • -d : Kullanıcıyı gruptan çıkartır.
┌──(root💀kali)-[~]
└─# gpasswd -a sudo kali # Kali kullanıcısı sudo grubuna eklendi.

┌──(root💀kali)-[~]
└─# gpasswd -d sudo kali # Kali kullanıcısı sudo grubundan çıkartıldı.

userdel

userdel komutu kullanıcı silmek için kullanılır. Genelde birlikte kullanılan argümanlar:

  • -r : home dizinini ve mail spoolunu siler
  • -f : silmeye zorlar
┌──(root💀kali)-[~]
└─# userdel -r deneme

groupadd

groupadd komutu grup oluşturmak için kullanılır.

┌──(root💀kali)-[~/deneme]
└─# groupadd mygroup

visudo

visudo komutu ile bir grup veya kullanıcıya yetki verebilirsiniz. Örnek kullanım:

┌──(kali💀kali)-[~]
└─# visudo
#
# This file MUST be edited with the 'visudo' command as root.
#
# Please consider adding local content in /etc/sudoers.d/ instead of
# directly modifying this file.
#
# See the man page for details on how to write a sudoers file.
#
Defaults	env_reset
Defaults	mail_badpass
Defaults	secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

# Host alias specification

# User alias specification

# Cmnd alias specification

# User privilege specification
root	ALL=(ALL:ALL) ALL
#### YALNIZCA KULLANICI EKLEMEK İÇİN

# Allow members of group sudo to execute any command
%sudo	ALL=(ALL:ALL) ALL
### BİR GRUBU EKLEMEK İÇİN

# See sudoers(5) for more information on "@include" directives:

@includedir /etc/sudoers.d

NOT: visudo'da yazı yazmak için :w yazıp enter'a basın sonra i tuşuna basıp yazmak istediğiniz yere yazınızı yazın. Kaydedip çıkmak için CTRL+C yapıp :wq yazıp enter'a basın. Kaydetmeden çıkmak için CTRL+C yapıp :q! yazıp enter'a basın.

NOT: /etc/sudoers.d/10-kullanıcıadı içine "kullanıcıadı ALL=(ALL) ALL" yazıp kaydederseniz sudoers dosyasına kaza ile hasar verme olasılığınız epey azalır

passwd

passwd komutu kullandığınız hesabın şifresini değiştirmeye yarar Örnek kullanım:

┌──(kali💀kali)-[~]
└─# passwd kali
Changing password for kali.
Current password:
New password:
Retype new password:
passwd: password updated successfully

chsh

chsh komutu kullandığınız kullanıcının shell'ini değiştirmek için kullanılır. Seçebileceğiniz shell'lerin listesini almak için "cat /etc/shells" komutunu çalıştırabilirsiniz.

┌──(root💀kali)-[~]
└─# chsh -s /bin/bash

chsh komutunu kullandıktan sonra terminali kapatıp tekrar açın

İşinize yarayabilecek aliaslar

Kolay update: (dpkg -l | awk '/^rc/ {print $2}' komutu ile silinen paketlerin gereksiz artıklarını yakalayıp xargs dpkg --purge ile temizliğini yapıyoruz)

┌──(root💀kali)-[~]
└─# echo alias kali-update="apt update && apt upgrade && apt full-upgrade && apt dist-upgrade && apt autoremove && dpkg -l | awk '/^rc/ {print $2}' | xargs dpkg --purge" >> .bashrc # veya zsh kullanıyorsanız .zshrc, fish kullanıyorsanız ~/.config/fish/config.fish

Depodaki tüm programların listesi:

┌──(root💀kali)-[~]
└─# echo alias apps="apt list" >> .bashrc # veya zsh kullanıyorsanız .zshrc, fish kullanıyorsanız ~/.config/fish/config.fish

Kurulmuş programların listesi:

┌──(root💀kali)-[~]
└─# echo alias installed-apps="apt list --installed" >> .bashrc # veya zsh kullanıyorsanız .zshrc, fish kullanıyorsanız ~/.config/fish/config.fish

Silme komutu:

┌──(root💀kali)-[~]
└─# echo alias rm="rm -rvif" >> .bashrc # veya zsh kullanıyorsanız .zshrc, fish kullanıyorsanız ~/.config/fish/config.fish

Kopyalama komutu:

┌──(root💀kali)-[~]
└─# echo alias cp="cp -rvif" >> .bashrc # veya zsh kullanıyorsanız .zshrc, fish kullanıyorsanız ~/.config/fish/config.fish

Taşıma komutu:

┌──(root💀kali)-[~]
└─# echo alias mv="mv -vif" >> .bashrc # veya zsh kullanıyorsanız .zshrc, fish kullanıyorsanız ~/.config/fish/config.fish

ls komutu:

┌──(root💀kali)-[~]
└─# echo alias ls="ls -lsah" >> .bashrc # veya zsh kullanıyorsanız .zshrc, fish kullanıyorsanız ~/.config/fish/config.fish

Kullandığınız shell'i özelleştirmek

bash kullanıyorsanız .bashrc, zsh kullanıyorsanız .zshrc, fish kullanıyorsanız ~/.config/fish/config.fish dosyasını değiştirmeniz gerekiyor. ZSH'a özelleştirme için oh-my-zsh veya powerlevel10k'yı öneririm, githubtan repolarına ulaşabilirsiniz. Fish'i özelleştirmek için oh-my-fish kurup terminal'e fish_config yazabilirsiniz. Açılan web arayüzünden prompt sekmesine girip istediğiniz temayı seçebilirsiniz. Benim önerim sadeliğinden dolayı "Informative Vcs" yönünde.

apt

apt paket yöneticisi debian ve debian tabanlı işletim sistemleri ile gelir. Diğer paket yöneticilerine göre yavaştır. Komutları: (-y parametresi yes anlamına gelmekle birlikte direkt olarak işleme geçer.)

  • apt update : Paketlerde güncelleme olup olmadığını kontrol eder.
  • apt upgrade : Paketleri günceller.
  • apt full-upgrade -y : Tüm paketleri günceller.
  • apt install uygulama_adi : Uygulama kurmaya yarar.
  • apt search uygulama_adi : Uygulama arar.
  • apt list : Kullandığınız distronun repolarındaki bütün paketleri gösterir.
  • apt list --installed : Bilgisayarınızdaki kurulu uygulamaların listesini gösterir.
  • apt purge --autoremove uygulama_adi : verilen uygulamayı ve bağımlılıklarını siler.

pacman

pacman paket yöneticisi arch ve arch tabanlı işletim sistemleri ile gelir. Komutları:

  • pacman -Syyu : Paketlerde güncelleme olup olamdığını kontrol eder ve varsa güncelleme yapar.
  • pacman -S paket_adı : Paket kurar.
  • pacman -Ss paket_adı : Paket arar.
  • pacman -R paket_adı : Paket siler.
  • pacman -Rs paket_adı : Paketi ve bağımlılıklarını siler.
  • pacman -Qe : bilgisayardaki bütün paketleri gösterir.

dnf

dnf paket yöneticisi fedora ve fedora tabanlı işletim sistemleri ile gelir. Komutları genel itibariyle apt ile aynıdır. Kendi içinde alias sistemi mevcuttur.


Ağ işlemleri

ifconfig

ifconfig komutu bilgisayarınıza bağlı olan internet adaptörlerini görmek, onları açıp kapatmak ve private ip'nizi görmeye yarar. Genel birlikte kullanılan argümanlar:

  • device up : device olarak verilen internet adaptörünü açar
  • device down : device olarak verilen internet adaptörünü kapatır
  • -a : bilgisayarınıza takılı olan bütün internet adaptörlerini görmeyi sağlar
  • device : sadece device olarak verilen apatorün bilgilerini gösterir.
  • eğer tun0 tun1 gibi birşey görürseniz o vpn'dir, tryhackme odalarında php reverse shell vesiare kullanacağınız zaman ip yerine tun0'daki private ip'yi yazacaksınız. Örnek kullanım:
┌──(root💀kali)-[~]
└─# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.0.2.15  netmask 255.255.255.0  broadcast 10.0.2.255
        inet6 fe80::a00:27ff:fee2:8088  prefixlen 64  scopeid 0x20<link>
        ether 08:00:27:e2:80:88  txqueuelen 1000  (Ethernet)
        RX packets 5333  bytes 7327788 (6.9 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 3078  bytes 596839 (582.8 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        device interrupt 19  base 0xd020  

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 16  bytes 800 (800.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 16  bytes 800 (800.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

┌──(root💀kali)-[~]
└─# ifconfig eth0 down
lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 16  bytes 800 (800.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 16  bytes 800 (800.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

┌──(root💀kali)-[~]
└─# ifconfig -a
eth0: flags=4098<BROADCAST,MULTICAST>  mtu 1500
        ether 08:00:27:e2:80:88  txqueuelen 1000  (Ethernet)
        RX packets 5333  bytes 7327788 (6.9 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 3086  bytes 597447 (583.4 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        device interrupt 19  base 0xd020  

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 16  bytes 800 (800.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 16  bytes 800 (800.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

┌──(root💀kali)-[~]
└─# ifconfig eth0
eth0: flags=4098<BROADCAST,MULTICAST>  mtu 1500
        ether 08:00:27:e2:80:88  txqueuelen 1000  (Ethernet)
        RX packets 5333  bytes 7327788 (6.9 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 3086  bytes 597447 (583.4 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        device interrupt 19  base 0xd020

┌──(root💀kali)-[~]
└─# ifconfig eth0 up
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.0.2.15  netmask 255.255.255.0  broadcast 10.0.2.255
        inet6 fe80::a00:27ff:fee2:8088  prefixlen 64  scopeid 0x20<link>
        ether 08:00:27:e2:80:88  txqueuelen 1000  (Ethernet)
        RX packets 5334  bytes 7328378 (6.9 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 3095  bytes 598465 (584.4 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        device interrupt 19  base 0xd020

dhcpcd

dhcpcd network manager aktif değilse internete bağlanmak için kullanılır. Bilgisayara defaulttan gelmiyor ve genel olarak archlinux yüklemelerinde kullanılıyor. Örnek kullanım:

┌──(root💀kali)-[~]
└─# dhcpcd
DUID 00:04:c0:df:f9:a1:15:f8:77:46:9a:4c:59:47:cf:50:f3:f3
eth0: IAID 27:e2:80:88
eth0: rebinding lease of 10.0.2.15
eth0: leased 10.0.2.15 for 86400 seconds
eth0: adding route to 10.0.2.0/24
eth0: adding default route via 10.0.2.2
Failed to try-restart systemd-timesyncd.service: Unit systemd-timesyncd.service is masked.
forked to background, child pid 4929

netstat

netstat komutu bilgisayara bağlı olan inernet bağlantılarını ve bağlı UNIX domain socketlerini gösterir. Genel birlikte kullanılan argümanlar:

  • -a : bağlı olan bütün socketleri gösterir
  • -n : numerik olarak göster (hostname'leri gösterme)
  • -o : zamanlayıcıları göster
┌──(root💀kali)-[~]
└─# netstat -ano
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       Timer
tcp        0      0 10.0.2.15:57452         54.192.233.89:443       ESTABLISHED keepalive (2.96/0/0)
tcp        0      0 10.0.2.15:50514         195.175.114.154:80      ESTABLISHED keepalive (0.11/0/0)
tcp        0      0 10.0.2.15:36204         216.58.212.42:443       ESTABLISHED off (0.00/0/0)
tcp        0      0 10.0.2.15:36310         172.217.169.131:80      ESTABLISHED keepalive (1.43/0/0)
tcp        0      0 10.0.2.15:44172         93.184.220.29:80        ESTABLISHED keepalive (4.50/0/0)
tcp        0      0 10.0.2.15:35020         216.58.214.131:80       ESTABLISHED keepalive (0.92/0/0)
tcp        0      0 10.0.2.15:60422         172.217.169.131:443     ESTABLISHED off (0.00/0/0)
tcp        0      0 10.0.2.15:37252         35.185.44.232:443       ESTABLISHED off (0.00/0/0)
tcp        0      0 10.0.2.15:58850         54.186.138.163:443      TIME_WAIT   timewait (40.04/0/0)
tcp        0      0 10.0.2.15:45556         44.230.27.49:443        TIME_WAIT   timewait (41.67/0/0)
tcp        0      0 10.0.2.15:39514         44.239.56.69:443        TIME_WAIT   timewait (43.83/0/0)
tcp        0      0 10.0.2.15:36316         172.217.169.131:80      ESTABLISHED keepalive (1.43/0/0)
tcp        0      0 10.0.2.15:44180         93.184.220.29:80        ESTABLISHED keepalive (1.68/0/0)
tcp        0      0 10.0.2.15:48634         34.216.3.76:443         ESTABLISHED keepalive (520.50/0/0)
tcp        0      0 10.0.2.15:34812         54.192.233.80:443       ESTABLISHED keepalive (1.43/0/0)
tcp        0      0 10.0.2.15:45164         54.192.233.83:443       ESTABLISHED off (0.00/0/0)
tcp        0      0 10.0.2.15:59456         216.58.206.202:443      ESTABLISHED off (0.00/0/0)
udp        0      0 10.0.2.15:68            10.0.2.2:67             ESTABLISHED off (0.00/0/0)
raw6       0      0 :::58                   :::*                    7           off (0.00/0/0)
Active UNIX domain sockets (servers and established)
Proto RefCnt Flags       Type       State         I-Node   Path
unix  3      [ ]         DGRAM                    10794    /run/systemd/notify
unix  2      [ ACC ]     STREAM     LISTENING     10797    /run/systemd/private
unix  2      [ ACC ]     STREAM     LISTENING     10799    /run/systemd/userdb/io.systemd.DynamicUser
unix  2      [ ACC ]     STREAM     LISTENING     10800    /run/systemd/io.system.ManagedOOM
unix  2      [ ACC ]     STREAM     LISTENING     14714    @/tmp/.X11-unix/X0
unix  2      [ ]         DGRAM                    12204    /run/systemd/journal/syslog
unix  2      [ ACC ]     STREAM     LISTENING     12206    /run/systemd/fsck.progress
unix  2      [ ACC ]     STREAM     LISTENING     15931    @/tmp/dbus-MQmmwJ21UX
unix  12     [ ]         DGRAM                    12210    /run/systemd/journal/dev-log
unix  2      [ ]         DGRAM                    14885    /run/user/0/systemd/notify
unix  7      [ ]         DGRAM                    12212    /run/systemd/journal/socket
unix  2      [ ACC ]     STREAM     LISTENING     14888    /run/user/0/systemd/private
unix  2      [ ACC ]     STREAM     LISTENING     12214    /run/systemd/journal/stdout
unix  2      [ ACC ]     STREAM     LISTENING     14894    /run/user/0/bus
unix  2      [ ACC ]     SEQPACKET  LISTENING     12216    /run/udev/control
unix  2      [ ACC ]     STREAM     LISTENING     14896    /run/user/0/gnupg/S.dirmngr
unix  2      [ ACC ]     STREAM     LISTENING     14898    /run/user/0/gnupg/S.gpg-agent.browser
unix  2      [ ACC ]     STREAM     LISTENING     14900    /run/user/0/gnupg/S.gpg-agent.extra
unix  2      [ ACC ]     STREAM     LISTENING     14902    /run/user/0/gnupg/S.gpg-agent.ssh
unix  2      [ ACC ]     STREAM     LISTENING     14904    /run/user/0/gnupg/S.gpg-agent
unix  2      [ ACC ]     STREAM     LISTENING     14906    /run/user/0/pulse/native
unix  2      [ ACC ]     STREAM     LISTENING     14715    /tmp/.X11-unix/X0
unix  2      [ ACC ]     STREAM     LISTENING     13414    /run/systemd/journal/io.systemd.journal
unix  2      [ ACC ]     STREAM     LISTENING     14955    /tmp/ssh-NXQ1T1Ov9B5C/agent.798
unix  2      [ ACC ]     STREAM     LISTENING     14975    /tmp/.ICE-unix/798
unix  2      [ ACC ]     STREAM     LISTENING     14974    @/tmp/.ICE-unix/798
unix  2      [ ACC ]     STREAM     LISTENING     12976    /run/dbus/system_bus_socket
unix  3      [ ]         STREAM     CONNECTED     17908    @/tmp/dbus-MQmmwJ21UX
unix  3      [ ]         STREAM     CONNECTED     15908    /run/user/0/bus
unix  3      [ ]         STREAM     CONNECTED     17971    /run/user/0/bus
unix  3      [ ]         STREAM     CONNECTED     16079    @/tmp/dbus-MQmmwJ21UX
unix  3      [ ]         STREAM     CONNECTED     16843    
unix  3      [ ]         STREAM     CONNECTED     33815    
unix  3      [ ]         STREAM     CONNECTED     36099    
unix  3      [ ]         STREAM     CONNECTED     15260    
unix  3      [ ]         STREAM     CONNECTED     17222    
unix  3      [ ]         STREAM     CONNECTED     16069    @/tmp/dbus-MQmmwJ21UX
unix  3      [ ]         STREAM     CONNECTED     16006    /run/user/0/bus
unix  3      [ ]         STREAM     CONNECTED     33846    
unix  3      [ ]         STREAM     CONNECTED     18459    
unix  3      [ ]         SEQPACKET  CONNECTED     36098    
unix  3      [ ]         STREAM     CONNECTED     36079    
unix  3      [ ]         STREAM     CONNECTED     36090    
unix  3      [ ]         STREAM     CONNECTED     16177    /run/dbus/system_bus_socket
unix  3      [ ]         STREAM     CONNECTED     17699    
unix  3      [ ]         STREAM     CONNECTED     15935    
unix  3      [ ]         STREAM     CONNECTED     18460    /run/systemd/journal/stdout
unix  3      [ ]         SEQPACKET  CONNECTED     36097    
unix  3      [ ]         STREAM     CONNECTED     16961    /run/dbus/system_bus_socket
unix  3      [ ]         STREAM     CONNECTED     36088    
unix  3      [ ]         STREAM     CONNECTED     17930    /run/user/0/bus
unix  3      [ ]         STREAM     CONNECTED     17668    /run/user/0/bus
unix  3      [ ]         STREAM     CONNECTED     16699    @/tmp/.X11-unix/X0
unix  3      [ ]         STREAM     CONNECTED     13225    /run/dbus/system_bus_socket
unix  3      [ ]         STREAM     CONNECTED     17909    /run/user/0/bus
unix  3      [ ]         STREAM     CONNECTED     15816    /run/systemd/journal/stdout
unix  3      [ ]         STREAM     CONNECTED     17962    /run/user/0/bus
unix  3      [ ]         STREAM     CONNECTED     16013    @/tmp/dbus-MQmmwJ21UX
unix  3      [ ]         STREAM     CONNECTED     33847    
unix  3      [ ]         STREAM     CONNECTED     13184    /run/systemd/journal/stdout
unix  3      [ ]         STREAM     CONNECTED     36102    
unix  3      [ ]         STREAM     CONNECTED     15311    
unix  3      [ ]         STREAM     CONNECTED     15265    /run/dbus/system_bus_socket
...

iwctl

iwctl internete bağlanmaya yarayan bir araçtır ve bilgisayrda defaulttan bulunmaz. Genellikle archlinux installationlarında kullanılır. Bu komutun hem interactive hem de terminal üzerinden tek komutla çalışan hali vardır. Ben burada tek komutla çalışan halini göstereceğim. Bu komutu kullanmaya başlamadan önce systemctl start iwd yapın Örnek kullanım:

┌──(root💀kali)-[~]
└─# iwctl station (ifconfigte çıkan wlan adaptörü) connect (network ismi)

Eğer network isminiziz bilmiyorsanız,

┌──(root💀kali)-[~]
└─# iwctl station (ifconfigte çıkan wlan adaptörü) scan

komutunu kullanırsanız aygıtınızın gördüğü tüm networkleri pritntletebilirsiniz.

/etc/hosts dosyası

Bazen ctf'lerde subdomain enumaration gibi görevler olduğundan dolayı /etc/hosts dosyasına bir domain eklemeniz gerekebilir. Örnek kullanım:

┌──(root💀kali)-[~]
└─# echo "127.0.0.1	localhost.localdomain	localhost" >> /etc/hosts

DNS değiştirme

DNS'inizi değiştirmek için /etc/resolv.conf'u sileceksiniz ve tekrar oluşturup içine istediğiniz DNS adresini yazacaksınız. NOT: /etc/resolv.conf'un yedeğini almayı unutmayın

┌──(root💀kali)-[~]
└─# rm -rf /etc/resolv.conf

┌──(root💀kali)-[~]
└─# echo nameserver DNS ADRESI > /etc/resolv.conf
  • SystemD kontrolü altında DNS değiştirmek
┌──(root💀kali)-[~]
└─# rm -rf /etc/resolv.conf

┌──(root💀kali)-[~]
└─# nano /etc/systemd/resolved.conf # DNS satırı başındaki '#' işaretini kaldırıp aynı satırın sonuna eklemek istediğiniz DNS'leri yazın. (Örnek: DNS=8.8.8.8 8.8.4.4 1.1.1.1)

┌──(root💀kali)-[~]
└─# systemctl enable --now systemd-resolved

┌──(root💀kali)-[~]
└─# systemctl restart systemd-resolved

┌──(root💀kali)-[~]
└─# ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf

VPN bağlantısı kurma

VPN bağlantısı basit olarak openvpn komutuyla kullanılır. TryHackme gibi platformlarda CTF çözüleceği zaman openvpn ile CTF'i çözeceğimiz sitenin networküne bağlanmamız gerekiyor.

┌──(root💀kali)-[~/Downloads]
└─# openvpn thm.ovpn       
UZUN UZUN YAZILAR...
2021-07-20 14:21:18 Initialization Sequence Completed

BAŞKA BİR TERMİNAL
┌──(root💀kali)-[~]
└─# ifconfig     
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.0.2.15  netmask 255.255.255.0  broadcast 10.0.2.255
        inet6 fe80::a00:27ff:fee2:8088  prefixlen 64  scopeid 0x20<link>
        ether 08:00:27:e2:80:88  txqueuelen 1000  (Ethernet)
        RX packets 15554  bytes 20477402 (19.5 MiB)
        RX errors 29  dropped 0  overruns 0  frame 0
        TX packets 9270  bytes 1090881 (1.0 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        device interrupt 19  base 0xd020  

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 16  bytes 800 (800.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 16  bytes 800 (800.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

tun0: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST>  mtu 1500
        inet 10.8.111.157  netmask 255.255.0.0  destination 10.8.111.157
        inet6 fe80::d0b7:7f2a:379:c4a9  prefixlen 64  scopeid 0x20<link>
        unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  txqueuelen 500  (UNSPEC)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1  bytes 48 (48.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

Bazı pentesting toolları ve kullanımlar

nmap

nmap aracı verilen ip'de verilen parametrelere göre tarama yapmayı sağlar. Genelde birlikte kullanılan argümanlar:

  • -A: -sS -sC -sV
  • -sF: FIN scani yapar
  • -sX: XMAS scani yapar
  • -sS: Syn/Ack scani yapar
  • -sU: UDP scani yapar
  • -sC: --script=default scani yapar
  • -sV: Portlardaki servislerin taramasını yapar ve çıktısını verir
  • -p-: Bütün portları tarar
  • -O: İşletim sistemi taraması yapar
  • --script: nmap scriptlerini çalıştırmaya yarar
  • --script=vuln: Zaafiyet taraması yapar
  • -Pn: host discovery'i atlar. Genelde CTF'lerde kullanılmaz
  • -oA/-oN/-oX/-oS/-oG bunlardan biri sonra dosya adı örnek -oA dosya.txt
  • -v: verbose
  • -d: debug
  • -T5: Taramayı hızlandırır Örnek Kullanım:
┌──(root💀kali)-[~]
└─# nmap -A 10.10.10.10

hashcat

hashcat hash kırmak için kullanılır. Örnek kullanım:

┌──(root💀kali)-[~]
└─# echo 900150983cd24fb0d6963f7d28e17f72 > hash.txt
┌──(root💀kali)-[~]
└─# hashcat -m 0 hash.txt /usr/share/wordlists/rockyou.txt
uzun uzun outputlar
kırılmış hash: abc

NOT: -m hash'in formatını seçer

netcat

netcat komutu reverse shellere bağlanmak için kullanılır. Genelde birlikte kullanılan argümanlar:

  • -l : dinleme modu
  • -v : verbose
  • -n : yalnızca numerik ipleri kabul et
  • -p : port numarasını belirt Örnek kullanım:
┌──(root💀kali)-[~]
└─# nc -lvnp 53
listening on [any] 53 ...

53 portuna gelen bağlantıları dinle anlamına geliyor bu komut. ÖNERİ: netcat reverse shellini aldıktan sonra shelli biraz daha interaktif yapmanız için komutlar.

  • export TERM=xterm
  • python3 -c 'import pty; pty.spawn("/bin/bash")
  • CTRL + Z
  • stty raw -echo
  • fg

gobuster

gobuster bir internet sitesinin klasör ve dosyalarını görmek için kullanılır. Genelde birlikte kullanılan argümanlar:

  • dir : brute force modu
  • -u IP : ip
  • -w wordlist : sözlük dosyası
  • -x extensions : aranılan dosya uzantıları verilir. Örnek -x txt,js,html Örnek kullanım:
┌──(root💀kali)-[~]
└─# gobuster dir -u ip -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x php,html,txt

hydra

hydra bir brute force tooludur. Genelde birlikte kullanılan argümanlar:

  • -L dosya : kullanıcı adı brute forceu için dosya vermek için kullanılan komut
  • -l kullanici_adi : kullanıcı adı'nı belirlemek için kullanılır
  • -P dosya : şifre brute force için dosya vermek için kullanılan komut
  • -p şifre : şifre'yi belirlemek için kullanılır
  • format : Örnek= http-post-form Örnek kullanım:
┌──(root💀kali)-[~]
└─# hydra -L fsocity.dic -p asd MACHINE_IP http-post-form "/wp-login/:log=^USER^&pwd=^PASS^&wp-submit=Log+In&redirect_to=http%3A%2F%2F10.10.246.198%2Fwp-admin%2F&testcookie=1:F=Invalid username"

enum4linux

enum4linux kullanıcı listesini, makina listesini, paylaşım listesini, şifre politikası bilgisini, grup ve üye listesini verir Örnek kullanım:

┌──(root💀kali)-[~]
└─# enum4linux -a

nikto

nikto internet sitesi açık arama tooludur. Örnek kullanım:

┌──(root💀kali)-[~]
└─# nikto -h 10.10.10.10

Sublist3r

Sublist3r bir subdomain enumration tooludur. Genelde birlikte kullanılan argümanlar:

  • -d domain : domaini veriyoruz
  • -b : bruteforce modunu açar
  • -p ports : portları aralarında , olacak şekilde veriyoruz örnek = -p 80,443
  • -v : verbose
  • -t thread sayısı Örnek kullanım:
┌──(root💀kali)-[~]
└─# sublist3r -b -d example.com

exiftool

exiftool dosyaların metadatasını çıkarmak için kullanılır. Örnek kullanımı:

┌──(root💀kali)-[~]
└─# exiftool b.txt
ExifTool Version Number         : 12.16
File Name                       : b.txt
Directory                       : .
File Size                       : 8 bytes
File Modification Date/Time     : 2021:07:19 22:03:18+03:00
File Access Date/Time           : 2021:07:19 23:47:53+03:00
File Inode Change Date/Time     : 2021:07:19 22:53:27+03:00
File Permissions                : rw-r--r--
File Type                       : TXT
File Type Extension             : txt
MIME Type                       : text/plain
MIME Encoding                   : us-ascii
Newlines                        : Unix LF
Line Count                      : 2
Word Count                      : 2

stegseek

Stegseek kali repolarında default olarak yok ve 32 bit sistemlere kurulamıyor. https://github.com/RickdeJager/stegseek Buradan nasıl kurulacağına ve komutlarına ulaşabilirsiniz, kullanımı gayet basit.

metasploit

metasploit hakkında detaylı bilgiyi offensive-security'nin sitesinden öğrenmeniz daha iyi olur. https://www.offensive-security.com/metasploit-unleashed/

burpsuite

burpsuite hakkında detaylı bilgiyi portswigger'ın sitesinden öğrenmeniz daha iyi olur. https://portswigger.net/burp/documentation/desktop/penetration-testing

Bunlar dışında öğrenmeniz gereken bir ton komut ve tool var ancak giriş için yukarıdakiler üç aşağı beş yukarı yeterli.

Örnek CTF writeupu: https://medium.com/@n30nx/mr-robot-ctf-writeup-29780c2ea2c5