Skip to content

Latest commit

 

History

History
2920 lines (2345 loc) · 91.3 KB

Linux_ve_Pentesting_Baslangic.md

File metadata and controls

2920 lines (2345 loc) · 91.3 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.


İçindekiler (Contents)









Basit Linux Komutları

Dosya/Klasör işlemleri

() ls

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

  • -l : Klasörleri liste biçiminde ayrıntıları ile birlikte gösterir.

  • -s : Dosyaların boyutunu bayt cinsinden gösterir.

  • -a : Gizli olan tüm dosya ve klasörleri gösterir

  • -h : K/M/G/T/P cinsinden yani dosya boyutunu gösterirken bayt ölçü birimlerini kullanır.

  • -A : -a parametresi ile birlikte kullanıldığında . ve .. klasörlerini çıktıdan gizler.

  • Ö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ın hepsini tek seferde görebilirsiniz. Örnek kullanım:

┌──(root💀kali)-[~]
└─# ls
Desktop  Documents  Downloads  Music  Pictures  Public  Templates  Videos

┌──(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, cd komutu 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 komutu 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, dizin belirtmediğiniz sürece bulunduğunuz dizinde dosya oluşturmaya yarar. Örnek kullanım:

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

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

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

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

 

() ln

ln komutu, bir dosyayı veya bir klasörü başka bir yere linklemeye/kısayol oluşturmaya yarar. Parametre verilmediğinde hard-link yapılır (Not: klasörler hard-link yapılamaz)

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

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

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

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

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

┌──(root💀kali)-[~/deneme]
└─# ls -al
total 8
drwxr-xr-x.  2 root root 4096 Jan 19 10:08 .
drwxr-xr-x. 10 root root 4096 Jan 19 10:07 ..
-rw-r--r--.  2 root root    0 Jan 19 10:07 a.txt
-rw-r--r--.  1 root root    0 Jan 19 10:08 b.txt
-rw-r--r--.  2 root root    0 Jan 19 10:07 c.txt                         #hardlink
lrwxrwxrwx.  1 root root    5 Jan 19 10:08 d.txt -> b.txt                #softlink
lrwxrwxrwx.  1 root root   28 Jan 19 10:08 e.txt -> /root/deneme/b.txt   #softlink

 

() readlink

readlink komutu, linklenmiş dosyaların tam konumunu ve nasıl linklendiğini gösterir.

  • Not: hardlink ile linklenmiş dosyaları göstermez.
┌──(root💀kali)-[~/deneme]
└─# ls -al
total 8
drwxr-xr-x.  2 root root 4096 Jan 19 10:08 .
drwxr-xr-x. 10 root root 4096 Jan 19 10:07 ..
-rw-r--r--.  2 root root    0 Jan 19 10:07 a.txt
-rw-r--r--.  1 root root    0 Jan 19 10:08 b.txt
-rw-r--r--.  2 root root    0 Jan 19 10:07 c.txt         
lrwxrwxrwx.  1 root root    5 Jan 19 10:08 d.txt -> b.txt
lrwxrwxrwx.  1 root root   28 Jan 19 10:08 e.txt -> /root/deneme/b.txt

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

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

 

() cat/more/less

cat, more ve less komutları genelde kendisine verilen dosyaları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 ekrana basılmasını
üçüncü satır
SEPERATOR

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

 

() echo

echo komutu, kendisine yazdığınız şeyin ekrana bası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 çıktıdaki yani echo'ya yazdığınız içeriği dosyaya yazar. Eğer dosya halihazırda yoksa bir dosya oluşturup dosyaya echo'ya yazdığınız içeriği 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ü, çıktıyı dosyanın içeriğini silmeden en son satıra 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 : üstüne yazmadan ö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.
  • 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.
┌──(root💀kali)-[~]
└─# nano x.txt

 

() vi/vim

vi, nano'nun biraz daha kompleks halidir.

 

() nvim

vim'in şekilli şukullusu diyebiliriz. Vim'den ayrı bir paket olarak kurabilirsiniz.

 

() du

du komutu, belirli bir klasör içeriğinin veya bir dosyanın boyutunu göstermeye yarayan komuttur.

  • -s : Sadece istediğiniz klasörün boyutunu gösterir. Bu parametreyi kullanmazsanız du komutu alt klasörleri'de tarayacaktır.
  • -h : K/M/G/T/P cinsinden yani dosya boyutunu gösterirken bayt ölçü birimlerini kullanır.
  • -S : Bu parametre ise sadece o klasörün altında bulunan dosyaların birimini toplar.
┌──(root💀kali)-[~]
└─# du -s .
23952124	.

┌──(root💀kali)-[~]
└─# du -sh /var/log
3.0G     /var/log

┌──(root💀kali)-[~]
└─# du -shS /var/log
6.9M     /var/log

() find

find komutu dosya aramak için kullanılır.

  • -type : Aranan içeriğin tipi ( f: File(dosya) | d: directory(klasör) | l: symlink(sembolik link) )
  • -name : Aranan içeriğin adı ( *.uzantı şeklinde kullanıldığında o uzantıya ait dosyaları arar )
  • -perm : Belirlenen izini taşıyan dosyaları listeler.
  • -executable : Çalıştırılabilir dosyaları listeler, başına "!" koyulursa sadece çalıştırılamayan dosyaları gösterir.
  • -exec : Bulunan çıktılar ile birlikte istenen komutu çalıştırır.
  • -size <sayı>K/M/G/T/P : Belirlenen boyuta sahip dosyaları listeler.
  • -atime <sayı> : Belirlenen erişim tarihine sahip dosyaları listeler.
  • -ctime <sayı> : Belirlenen değişim tarihine sahip dosyaları listeler.
  • NOT: Eğer dosya isminin sadece bir kısmını biliyorsanız (örneğin dosyanın adı flag-1-of-3.txt olsun, siz sadece dosya isminin içinde "flag" geçtiğini biliyorsanız); -name kısmı: -name "flag*" olması gerekir. Örnek kullanım:
┌──(root💀kali)-[~]
└─# find /home -name "*.txt" -type f
...
/home/can/a.txt
/home/can/b.txt
...

┌──(root💀kali)-[~]
└─# find /home -type f -perm 0644 
...
/home/can/.cache/thumbnails/large/983e8399cacb80336e937666d0fda42e.png
...

┌──(root💀kali)-[~]
└─# find /home -size +1G -exec du -sh {} \;
6.2G	/home/can/.local/share/Steam/steamapps/common/Euro Truck Simulator 2/base.scs
2.0G	/home/can/.local/share/Steam/steamapps/common/Euro Truck Simulator 2/dlc_lunar_new_year.scs

┌──(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 makalesinden 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. NOT: chmod'un nasıl kullanıldığı ile ilgili daha fazla bilgiye google'a chmod cheat sheet yazarak ulaşabilirsiniz. Veya şu sitedeki hesap makinesini inceleyebilir veya chmod'da sayıların tam olarak ne işe yaradığını incelemek için şu fotoğrafı inceleyebilirsiniz. Örnek kullanım:
┌──(root💀kali)-[~]
└─# chmod 777 a.sh

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

 

() chown

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

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

NOT: Buradaki kali, kullanıcı adıdır.

 

() ./

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

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

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

 

() &&

&& 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"        # d.txt'nin olmadığını varsayarsak olumsuz çıktı gelecektir.
cat: d.txt: No such file or directory
Sorun var

 

() Olumlu veya olumsuz çı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 discover02 yazdığını, b.txt'in olmadığını varsayalım.)

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

┌──(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

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

 

() |

| 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 -B1 ben
Merhaba

┌──(root💀kali)-[~]
└─# cat r.txt | grep -A1 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 cheat sheet 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

 

() tr

tr komutu yine aynı grep, awk, sed gibi bir çıktı ve dosya işleme aracıdır. Özel olarak isteğe göre seçilen biçimleri işleme özelliği vardır.

  • -d : Belirli biçim veya karakter ile eşleşen karakterleri siler.
  • -c : Belirli biçim veya karakter ile eşleşmeyen karakterler üzerinde işlem yapar.
  • -s : Belirli biçim veya karakter birden fazla tekrar ediyorsa tekrar sayısını 1'e düşürür. Kendisine ikinci bir parametre verilirse, belirli karakter yerine belirtilen karakteri yerleştirir. Bazı biçim türleri şu şekilde:
[[:alpha:]]  ->  Sadece harfler üzerinde işlem yapar.
[[:alnum:]]  ->  Hem harf, hem sayı üzerinde işlem yapar.
[[:digit:]]  ->  Sadece sayılar üzerinde işlem yapar.
[[:lower:]]  ->  Küçük harfler üzerinde işlem yapar.
[[:upper:]]  ->  Büyük harfler üzerinde işlem yapar.

Örnek kullanım:

┌──(root💀kali)-[~]
└─# cat a.txt
Herkese selamlar. 123 4a5b6c

┌──(root💀kali)-[~]
└─# cat a.txt | tr "s" "z"
Herkeze zelamlar. 123 4a5b6c

┌──(root💀kali)-[~]
└─# cat a.txt | tr -d "selamlar"
Hk  123 45b6c                               ## Burada "Herkese  123 4a5b6c" çıktısını beklerken "Hk  123 45b6c" çıktısını almış olduk.
                                            #  Bunun sebebi "selamlar" kelimesi içinde olan harflerin tüm satırda farklı yerlerde olmasından kaynaklıdır.
┌──(root💀kali)-[~]
└─# cat a.txt | tr -cd "[[:alpha:]]"
Herkeseselamlarabc                          # Alfabetik karakterler dışındaki her şey "-c parametresi" dediğimiz için geriye kalan tüm biçimler işlem gördü.

┌──(root💀kali)-[~]
└─# cat a.txt | tr -cd "[[:digit:]]"
123456

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

┌──(root💀kali)-[~]
└─# cat b.txt | tr -s "q"
Hqrkese selamlar

┌──(root💀kali)-[~]
└─# cat b.txt | tr -s "q" "e"
Herkese selamlar

 

() sed

sed komutu, belirli çıktılarda herhangi bir kelimeyi veya cümleyi düzeltmeye yarayan komuttur.

  • -i : Bu parametreyi dosya seçerek kullandığınızda dosyada düzenleme yapar. "|" işleci ile kullandığınızda herhangi bir değişiklik yapmaz. Değişiklik sadece çıktıya yansır.
  • / : sed komutunda ayıraç olarak kullanılır, dilerseniz _ gibi farklı karakterleri kullanabilirsiniz.
  • g,1,2 : g ile tüm değerleri, sayılar ile baştan bir kaç değeri değiştirebilirsiniz.
  • ; : Bu işareti sed içerisinde kullanmak, alt satıra geçmek ile eşdeğerdir. Örnek kullanım:
┌──(root💀kali)-[~]
└─# cat h.txt
Merhaba
ben
discover02
discover02

┌──(root💀kali)-[~]
└─# cat h.txt | sed 's/discover02/n30nx/g'
Merhaba
ben
n30nx
n30nx

┌──(root💀kali)-[~]
└─# cat h.txt | sed 's/ben/biz/g; s/discover02/n30nx/1'
Merhaba
biz
n30nx
discover02

┌──(root💀kali)-[~]
└─# sed -i "s/ben/biz/g; s/discover02/n30nx/1" h.txt

┌──(root💀kali)-[~]
└─# cat h.txt
Merhaba
biz
n30nx
discover02

 

() 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.
  • -d : Sadece tekrar eden karakterleri gösterir.
  • -u : Tekrar etmeyen karakterleri 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

 

() Döngüler

FOR Döngüsü

For döngüsü, diğer dillerde olduğu gibi kendisine çeşitli veriler verilerek bir döngü çalıştırmayı sağlar. Örnek kullanım:

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

┌──(root💀kali)-[~]
└─# for i in $(cat a.txt); do
> echo $i
> done
Merhaba
Dünya
Selam
Deneme
Test

Süslü parentez kullanılarak, seq komutu veya özel bir parametre belirtilerek sayı saymasını sağlayabilirsiniz. Örnek kullanım: (||veya|| ile belirttiklerim alternatif yazılabilecek döngülerdir.)

┌──(root💀kali)-[~]
└─# for i in {0..10..2}; do  ||veya||  for i in $(seq 0 2 10); do  ||veya||  for (( i=0; i<11; i+=2 )); do
> echo $i
> done
0
2
4
6
8
10

 

WHILE Döngüsü

While döngüsü ile bir koşul sağlayarak döngünün çalışmasını sağlayabilirsiniz. CTRL+C tuşlarına sırası ile basarak döngüyü kırabilirsiniz Örnek kullanım:

┌──(root💀kali)-[~]
└─# while True; do                  #True dediğimiz için sonsuza dek çalışır.
> echo "Merhaba"
> done
Merhaba
Merhaba
...
^C


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

┌──(root💀kali)-[~]
└─# while [[ $i != "100" ]]; do     #Eğer i'nin değeri 100 olmazsa çalışmaya devam eder
> echo "Merhaba"                     ama 100 olursa o zaman çalışmayı bırakır. 
> i=$(( $i + 1 ))
> done
[100 tane] Merhaba

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

 

UNTIL Döngüsü

Until döngüsü ile bir koşulun tersi durumunda bir döngü çalışmasını sağlayabilirsiniz. Aynı şekilde CTRL+C tuşlarına basarak döngü kırılabilir. Örnek kullanım:

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

┌──(root💀kali)-[~]
└─# until [[ $i != "100" ]]; do     #Eğer i'nin değeri 100 olursa çalışmaya devam eder ama 100 olmazsa çalışmayı bırakır.
> echo "Merhaba"
> i = $(( $i + 1 ))
> done
Merhaba

┌──(root💀kali)-[~]
└─# echo $i
101

 

() base64

base64, bir decode/encode sistemidir. Burada base64, linux sistemlere indirilebilen base64 decode ve encode yapmaya yarayan bir araçtır. Genelde birlikte kullanılan argümanlar:

  • -d : decode yani çöz.
  • -i : çözerken 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 değerini gösterir.

  • -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 değerini gösterir.

  • -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'a benzer bir tooldur. Siteleri kaydetmek ile birlikte dosya indirme desteği vardır. Örnek kullanım:

┌──(root💀kali)-[~]
└─# wget "https://ftp.linux.org.tr/archlinux/iso/latest/archlinux-2021.10.01-x86_64.iso"

 

() 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.

  • x : Belirtilen tar arşivini çıkartır (eXtract)
  • c : Belirtilen dosyaları tar arşivine ekler (Create)
  • z : GZip biçimini kullanır
  • v : Ayrıntılı çıktı. (Verbose)
  • f : arşivin dosya adını belirtmenize yarar. Genelde tüm parametreler belirtildikten sonra en sona konulmalıdır. Örnek kullanım:
┌──(root💀kali)-[~]
└─# tar -czf r.tar.gz a.txt deneme              ## a.txt ve deneme dosyasını tut, bana gzip biçiminde bir
                                                #  arşiv oluştur ve tuttuğun dosyaları içine ekle anlamına gelir

┌──(root💀kali)-[~]
└─# tar -xvf r.tar.gz                           ## gzip biçimini kullanarak ayrıntılı bir şekilde dosyaları çıkart
a.txt                                           #  anlamına gelir
deneme/
deneme/a.txt
deneme/x.txt

 


Sistem yönetimi ve araçları

() Bash'ta renk kodları:

\e[0;30;40m biçiminde kullanılır. Sayılar sırası ile "stil,yazı rengi ve arkaplan rengi" olarak belirlenir. İsteğe bağlı olarak renk kodları bir değişkene bağlanabilir ve o değişken adı ile kullanılabilir. Renk kodları ve örnek kullanım:

Stiller:                       Yazı renkleri:    Arkaplan renkleri:
--------                       --------------    ------------------
NORMAL=0                       SİYAH=30          SİYAH=40
KALIN=1                        KIRMIZI=31        KIRMIZI=41
PARLAKLIĞI DÜŞÜK=2             YEŞİL=32          YEŞİL=42
İTALİK=3                       SARI=33           SARI=43
ALTI ÇİZİLİ=4                  MAVİ=34           MAVİ=44
YANIP SÖNEN=5 ve 6             MOR=35            MOR=45
RENK BİÇİMİNDEN TAM TERSİ=7    CAM GÖBEĞİ=36     CAM GÖBEĞİ=46
                               GRİ=37            GRİ=47
                               VARSAYILAN=39     VARSAYILAN=49
                               
┌──(root💀kali)-[~/deneme]
└─# echo -e "\e[0;32;41mMerhaba"
[YEŞİL YAZI RENGİ VE KIRMIZI ARKAPLAN İLE] Merhaba

┌──(root💀kali)-[~/deneme]
└─# YESILRENK="\e[0;32m"

┌──(root💀kali)-[~/deneme]
└─# echo -e "${YESILRENK}Merhaba"
[YEŞİL YAZI RENGİ İLE] Merhaba

Ayrıca daha detaylı renklendirme için tput komutundan yararlanabilirsiniz. Tput'taki renk kodları şu resimdeki gibidir.

  • setaf parametresi: Foreground yani yazı rengi.
  • setab parametresi: Background yani arkaplan rengi. Tput hakkında daha fazla bilgi için buraya bakabilirsiniz Örnek kullanım:
┌──(root💀kali)-[~/deneme]
└─# YESIL="$(tput setaf 10)"

┌──(root💀kali)-[~/deneme]
└─# BEYAZ="$(tput setaf 15)"

┌──(root💀kali)-[~/deneme]
└─# echo -e "${YESIL}MERHABA ${BEYAZ}"
[YEŞİL YAZI RENGİ İLE] MERHABA

 

() 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 terminal oturumunda 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

┌──(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 kullanma kılavuzunu 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 (Secure Shell) başka bir bilgisayara bağlanamya yarar.

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

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 (File Transfer Protocol), 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.

 

() sshfs

sshfs komutu, belirli bir linux/android cihazdaki herhangi bir klasörü yine linux/android çalıştıran bir cihaza bağlamanızı sağlar. Android'de termux kullanabilirsiniz. Bağladığınız klasörü umount komutu ile ayırabilirsiniz. Daha fazla bilgi için şu adresi ziyaret edebilirsiniz: https://wiki.termux.com/wiki/Remote_Access

  • p : Port belirleme. Örnek kullanım:
[Bilgisayardan android(termux) kullanan cihaza doğru]
~ $ sshfs [email protected]:/home/can/Downloads bilgisayar/ -p 8022
[email protected]'s password: 

~ $ ls bilgisayar/
1.jpg 2.jpg kali.iso 

~ $ umount bilgisayar/

~ $



[Android(termux)'tan linux çalıştıran bilgisayara doğru]
┌──(root💀kali)-[~]
└─# mkdir Telefon

┌──(root💀kali)-[~]
└─# sshfs [email protected]:/storage/emulated/0 ~/Telefon -p 8022
[email protected]'s password: 

┌──(root💀kali)-[~]
└─# ls ~/Telefon
Alarms
Android
DCIM
Documents
Download
Movies
Music
Notifications
Pictures
Podcasts
Ringtones
Samsung
Subtitles

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

 

() 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, kali linux'ta 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, kendisine verilen anahtarı barındıran bütün klasör ve dosyaları gösterir. Ö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 1366 x 768, maximum 8192 x 8192
Virtual1 connected primary 1366x768+0+0 (normal left inverted right x axis y axis) 0mm x 0mm
   1366x768      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)

 

() journalctl

jorunalctl komutu, 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 komutu, systemd'nin kontrolcüsü; sistem ve servis yöneticisi olarak kullanılır. Genelde birlikte kullanılan argümanlar:

  • --user : Root hesabında çalışmayan kullanıcılar altındaki işlemler için kullanılır.
  • --now : işlemi o anda gerçekleştirir.
  • start servisadı : servisi başlatır.
  • stop servisadı : servisi durdurur.
  • reload servisadı : servisi yeniler.
  • restart servisadı : servisi yeniden başlatır.
  • show servisadı : servisin detaylarını gösterir.
  • status servisadı : servisin durmunu gösterir.
  • clean servisadı : runtime, önbellek, stage ve logları veya yapılandırmayı temizler.
  • status servisadı : bütün servislerin durumunu gösterir.
  • enable servisadı : servisin bilgisayarın başlangıcında açılmasını sağlar.
  • is-enabled servisadı : servisin bilgisayar başlandıcında açılmaya ayarlı olup olmadığını kontrol eder.
  • disable servisadı : servisin bilgisayarın başlangıcında açılmasını kapatır.
  • mask servisadı : servisi gizler.
  • unmask servisadı : 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 : hataları 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 vs yarar. systemctl'nin alias kullanılmış hali gibidir. Genel birlikte kullanılan argümanlar:

  • servisadı start
  • servisadı stop
  • servisadı reload
  • servisadı status
  • servisadı show
  • servisadı enable
  • servisadı 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 alias'ıdır 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/loadkeys

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

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

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

 

() 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 kullanıcıların gruplarını, uid'sini(user ID) ve gid'sini(group ID) 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]
...

 

() kill

kill komutu, o anda çalışan bir uygulamayı işlem 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 (ben kimim?), kullandığınız kullanıcının adını gösterir. Örnek kullanım:

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

 

() uname

uname komutu, bilgisayar ve işletim sistemi 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 dizinini oluşturmamak için kullanılır.
  • -r : sistem hesabı oluşturur
  • -s : shell'i seçmek için kullanılır eğer bu seçenek kullanılmazsa yeni kullanıcının varsayılan shell'i sh veya bash 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, grup yönetimi için bulunan bir komuttur. usermod komutundan farkı kullanıcıları gruptan çıkarma özelliğine 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, ullanıcı silmek için kullanılır. Genelde birlikte kullanılan argümanlar:

  • -r : ev dizinini ve mail spool'unu 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
### ([▲](#top)) BİR <a name="BİR"></a> 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

 

() crontab

crontab komutu, sistem içinde belirli zamanlarda belirli komutların çalıştırılabilmesine olanak sağlar.

  • Tam crontab kullanımı ve argümanları şu biçimdedir. Örnek crontab dosyası oluşturucu için buraya bakınız.
.---------------- Dakika (0 - 59)
|  .------------- Saat (0 - 23)
|  |  .---------- Gün (1 - 31)
|  |  |  .------- Ay (1 - 12)
|  |  |  |  .---- Haftanın Günleri (0 - 6) (Pazar=0 ya da 7)
|  |  |  |  |
*  *  *  *  *  Çalıştırılacak komut

@hourly  : Her saat
@daily   : Her gün
@monthly : Her ay
@yearly  : Her yıl
@reboot  : Her yeniden başlatmada

MAIL=username                (E-mail tanımlanmış ise çıktı e-mail olarak gönderilir.)
PATH=/usr/local/bin:......   (İsteğe bağlı, PATH değişkeni göreve özel değiştirilebilir)
SHELL=/usr/bin/fish          (İsteğe bağlı, shell değişkeni değiştirilebilir)
CRON_TZ=Europe/Istanbul      (İsteğe bağlı, görevin gerçekleştirilme saati bölgeye özel değiştirilebilir)
  • Örnek Kullanım:
┌──(root💀kali)-[~]
└─# sudo crontab -e
[Çıkan ekranda]

MAIL=can
PATH=/usr/local/bin:/usr/bin
SHELL=/usr/bin/bash
CRON_TZ=Europe/Copenhagen

@hourly bash -c "/home/can/a.sh"
@reboot bash -c "/usr/local/bin/syscleanup.sh"
* 21 * * * bash -c "/usr/local/bin/sysupdate.sh"

 

() İş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]] ~/.zshrc [[veya]] ~/.config/fish/config.fish

Depodaki tüm programların listesi:

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

Kurulmuş programların listesi:

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

Silme komutu:

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

Kopyalama komutu:

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

Taşıma komutu:

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

ls komutu:

┌──(root💀kali)-[~]
└─# echo alias ls="ls -lsah" >> ~/.bashrc [[veya]] ~/.zshrc [[veya]] ~/.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" temasıdır.

 

Bazı paket yöneticileri

  • NOT: Bazı farklı paket yöneticisinin kullanımı arasındaki karşılaştırmalara buradan bakabilirsiniz.

() 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 rpm tabanlı işletim sistemleri ile gelir. Komutları genel itibariyle apt ile aynıdır. Kendi içinde alias sistemi mevcuttur.

 


Linux'ta karşılaşabileceğiniz bazı sorunlar ve çözümleri:

() Linux'u dual-boot olarak kurdum ama giriş ekranında windows'u göremiyorum

  • Eğer böyle bir sorun ile karşılaşırsanız öncelikle hangi method ile sisteminizi kullandığınıza şu komut ile bakın (Legacy veya UEFI)
┌──(root💀kali)-[~]
└─# test -d /sys/firmware/efi/efivars && echo "UEFI" || echo "Legacy"
UEFI
  • Daha sonrasında disklerinizi kontrol edin.
┌──(root💀kali)-[~]
└─# lsblk   [[UEFI]] kullanıyorsanız böyle görünmesi gerekiyor. Buraya bakacak olursak /dev/sda1 efi bölümümüz oluyor
NAME    MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda       8:0    0   256G  0 disk 
├─sda1    8:1    0   512M  0 part /boot/efi
├─sda2    8:2    0     4M  0 part 
├─sda3    8:3    0   100G  0 part
└─sda4    8:4    0   140G  0 part /


┌──(root💀kali)-[~]
└─# lsblk   [[Legacy]] kullanıyorsanız böyle görünmesi gerekiyor. Buna göre /dev/sda1 windows sistem ayrıldı bölümü oluyor.
NAME    MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda       8:0    0   256G  0 disk 
├─sda1    8:1    0   512M  0 part 
├─sda2    8:2    0   100G  0 part
└─sda3    8:3    0   140G  0 part /
  • Eğer sonuç ilk komuttaki gibi UEFI olarak çıktıysa şu komutlar ile Grub'u tekrar kurun.
┌──(root💀kali)-[~]
└─# apt reinstall grub\* os-prober

┌──(root💀kali)-[~]
└─# grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=Linux

┌──(root💀kali)-[~]
└─# grub-mkconfig -o /boot/grub/grub.cfg
  • Eğer windows'un kullandığı efi bölümü farklı yerdeyse ve grub yapılandırması yeniden yüklendiğinde halen windows'u göremiyorsanız windows'un bulunduğu efi'yi /mnt dizinine aşağıdaki gibi bağlayın ve yeniden yapılandırma işlemini yapın.
┌──(root💀kali)-[~]
└─# mount /dev/sda1 /mnt   [[windows]]'un efi bölümünü tespit etmek için "lsblk" komutunu yazabilirsiniz.

┌──(root💀kali)-[~]
└─# grub-mkconfig -o /boot/grub/grub.cfg
  • Eğer halen windows'u grub'a ekleyemiyorsanız açılışa aynen aşağıdaki gibi windows'u elle ekleyin. Ve daha sonra bios'a girip oradan windows'a geçiş yapın.
┌──(root💀kali)-[~]
└─# mount /dev/sda1 /mnt

┌──(root💀kali)-[~]
└─# efibootmgr -d /dev/sda -p 1 -c -L "Windows Boot Manager" -l "/EFI/Microsoft/boot/bootmgfw.efi"
  • Eğer sistemi legacy kullanıyorsanız sadece "Sistem Ayrıldı" bölümünü (/dev/sda1) /mnt'ye bağlayın ve grub yapılandırmasını yenileyin.
┌──(root💀kali)-[~]
└─# apt reinstall grub\* os-prober

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

┌──(root💀kali)-[~]
└─# grub-install /dev/sda

┌──(root💀kali)-[~]
└─# grub-mkconfig -o /boot/grub/grub.cfg

 

() Grub Rescue hatası

Sisteminizi yeniden başlattınız ve karşınızda grub rescue ekranı çıktı, hemen aşağıdaki yöntemleri deneyerek sisteminize girebilir, ardından grub'u tekrar kurarak sorunu düzeltebilirsiniz. Klavye ingilizce olacağı için biraz zorlanabilirsiniz, Google'a "english keyboard layout" yazıp görsellere girerek hangi tuşa basacağınızı tespit edebilirsiniz

  • Önce ls yazarak bölümleri listeleyelim. GPT kullanıyorsanız (hd0,gpt1), MBR kullanıyorsanız (hd0,msdos1) biçiminde görünecek
grub rescue> ls
(hd0) (hd0,gpt1) (hd0,gpt2) (hd0,gpt3) (hd0,gpt4)
  • Sonra çıkan sonuçları tek tek deneyerek linux bölümünüzü bulun. Çıktı olarak filesystem is ext2 gibi bir çıktı gelecek.
grub rescue> ls (hd0,gpt1)
filesystem is unknown
...

grub rescue> ls (hd0,gpt4)
filesystem is ext2
  • Linux bölümünüzü tespit ettikten sonra ise bunu root olarak ayarlayalım.
grub rescue> set root=(hd0,gpt4)
  • Ayarladıktan sonra ise grub klasörünü tanımlayalım.
grub rescue> set prefix=(hd0,gpt4)/boot/grub
  • Ve bu komut ile normal adındaki modülü içeri alalım ve başlatalım.
grub rescue> insmod normal
grub rescue> normal
  • Eğer hata yapmadıysanız grub ekranı gelecek ve oradan linux'a erişebileceksiniz. Daha sonrasında ise yukarıdaki Grub fix yöntemini kullanarak grub'u yeniden kurun.

 

() Wifi bağlantım kesiliyor ve sistem birden donuyor

Eğer başlıktaki gibi bir sorun ile karşılaşıyorsanız yüksek ihtimal wifi cihazınız için güç tasarrufu özelliği açıktır ve bu modülün çalışmasını kötü etkiliyordur. Sorunun kendisi düzeltilene kadar şöyle bir düzeltme uygulayarak wifi için güç tasarrufunu kapatabilirsiniz.

  • Öncelikle kullandığınız wifi kartının markasını bulun. Eğer intel ise iwlwifi, Qualcomm ise ath modülünü kullanıyordur İwlwifi ise;
┌──(root💀kali)-[~]
└─# nano /etc/modprobe.d/iwlwifi.conf
[Çıkan ekranda alttakileri yazın.]
options iwlmvm power_scheme=1
options iwlwifi bt_coex_active=Y swcrpyto=1 11n_disable=1
[Kaydedin ve çıkın]

┌──(root💀kali)-[~]
└─# nano /etc/NetworkManager/conf.d/default-wifi-powersave-on.conf
[connection]
wifi.powersave=3

[3 değerini 2 olarak değiştirin. ve kaydedip çıkın.]
  • Eğer Qualcomm ise üstteki maddede bulunan default-wifi-powersave-on.conf dosyasını değiştirmeniz yeterli olacaktır.

 

() Kali linux'u veya debian tabanlı bir distro'yu bilgisayarıma kurdum. Fakat wifi çalışmıyor

Eğer başlıktaki gibi bir sorun ile karşılaşıyorsanız yüksek ihtimal wifi sürücülerini yüklememişsinizdir demektir. Bunun için öncelikle kablolu bir internet bağlantısı veya usb tethering yapmanız gerekmektedir. Usb tethering nasıl yapılır derseniz google'a "how to setup usb tethering" yazın. Resimli anlatımlardan birini takip ederek bağlantınızı kurun. Bağlantı sağlandıktan sonra öncelikle wifi kartınızın modelini aşağıdaki gibi tespit etmeye çalışın.

┌──(root💀kali)-[~]
└─# lspci | grep -Ei "wifi|wireless|wlan|network"
02:00.0 Network Controller: Qualcomm Atheros QCA9377 802.11ac Wireless Network Adapter (rev 31)

┌──(root💀kali)-[~]
└─# lsusb
...
Bus 002 Device 000: ID 1234:1234 Atheros Communications, Inc. 
  • Ondan sonra gerekli repoları aktifleştirin. (Debian ve Kali'de "main" yazan her satırın sonuna "contrib non-free" yazın.)
root@debian:/home/user# nano /etc/apt/sources.list
[Çıkan Ekranda]
deb http://deb.debian.org/debian bullseye main contrib non-free
[Kaydet-Çık]
root@debian:/home/user# apt update
---
┌──(root💀kali)-[~]
└─# nano /etc/apt/sources.list
[Çıkan Ekranda]
deb http://http.kali.org/kali kali-rolling main contrib non-free
[Kaydet-Çık]

┌──(root💀kali)-[~]
└─# apt update
  • Üstteki lspci ve lsusb çıktılarındaki gibi Atheros görüyorsanız firmware-atheros, Ralink görüyorsanız firmware-ralink, Realtek görüyorsanız firmware-realtek kurun. Ve reboot atın.
┌──(root💀kali)-[~]
└─# apt install firmware-atheros

 


Ağ işlemleri

() ifconfig

ifconfig komutu, bilgisayarınıza bağlı olan internet adaptörlerini görmek, onları açıp kapatmak ve özel 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 veya müsait değilse internete bağlanmak için kullanılır. Bilgisayara varsayılan olarak 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 internet 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)
...
...

 

() iwctl

iwctl, internete bağlanmaya yarayan bir araçtır ve bilgisayrda varsayılan olarak bulunmaz. Genellikle archlinux kurulumları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 enable --now iwd yapın Örnek kullanım:

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

 

Eğer ağ ismini 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 ağları görüntüleyebilirsiniz.

 

() /etc/hosts dosyası

Bu dosya, bazı adresleri, isimler ile hitap edebilme yetkisi sağlar. 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

Buradaki örneğe bakacak olursak tarayıcımıza localhost yazdığımızda otomatik olarak 127.0.0.1'e yönlendirileceğiz.

 

() 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 ağına 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 parametrelerini kapsar.
  • Tarama
    • -sS: TCP SYN/ACK taraması yapar.
    • -sC: --script=default yani varsayılan komut dosyaları ile tarama yapar.
    • -sV: Servis ve sürüm taraması yapar.
    • -sF: TCP FIN taraması yapar.
    • -sX: TCP XMAS taraması yapar.
    • -sU: UDP taraması yapar.
  • -p-: Bütün portları tarar.
  • -Pn: host taramasını atlar. Genelde CTF'lerde kullanılmaz.
  • -O: İşletim sistemi taraması yapar.
  • --script: nmap scriptlerini çalıştırmaya yarar.
  • --script=vuln: Zaafiyet taraması yapar.
  • Çıktı
    • -oA dosya.txt : Çıktıyı full olarak dosyaya yazdırır.
    • -oN dosya.txt : Çıktıyı normal olarak dosyaya yazdırır.
    • -oX dosya.txt : Çıktıyı xml formatında dosyaya yazdırır.
    • -oG dosya.txt : Grep ile alınabilecek biçimde dosyaya yazdırır.
  • -v: Ayrıntılı çıktı.
  • -d: Geliştirici modu.
  • -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.

  • -m : Hash formatı. Örnek kullanım:
┌──(root💀kali)-[~]
└─# echo 900150983cd24fb0d6963f7d28e17f72 > hash.txt
┌──(root💀kali)-[~]
└─# hashcat -m 0 hash.txt /usr/share/wordlists/rockyou.txt
uzun uzun çıktılar
kırılmış hash: abc

 

() netcat

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

  • -l : Dinleme modu.
  • -v : Ayrıntılı çıktı
  • -n : Yalnızca numara içeren ip adreslerini kabul et
  • -p : Port numarası. Ö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 shell'ine geçiş yaptıktan sonra shelli biraz daha interaktif yapmanız için komutlar.
~# export TERM=xterm
~# python3 -c 'import pty; pty.spawn("/bin/bash")
~# #CTRL + Z tuşlarına basın.
~# 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 komutu, 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 komutu, internet sitesi açık arama tooludur. Örnek kullanım:

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

 

() Sublist3r

sublist3r komutu, bir subdomain enumration tooludur. Genelde birlikte kullanılan argümanlar:

  • -d domain : Domain belirleme
  • -b : BruteForce modu
  • -p ports : Port belirleme (portları aralarında , olacak şekilde veriyoruz örnek = -p 80,443)
  • -v : Ayrıntılı çıktı
  • -t : Thread sayısı Örnek kullanım:
┌──(root💀kali)-[~]
└─# sublist3r -b -d example.com

 

() exiftool

exiftool komutu, 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 komutu, kali repolarında varsayılan olarak yok ve 32 bit sistemlere kurulamıyor. Buradan nasıl kurulacağına ve komutlarına ulaşabilirsiniz, kullanımı gayet basit.

 

() metasploit

metasploit komutu hakkında detaylı bilgiyi offensive-security'nin sitesinden öğrenmeniz daha iyi olur.

 

() burpsuite

burpsuite komutu hakkında detaylı bilgiyi portswigger'ın sitesinden öğrenmeniz daha iyi olur.

 

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

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

← Ana Sayfaya Dön