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)
- Dosya/Klasör işlemleri
- Sistem yönetimi ve araçları
- Bash'ta renk kodları
- history
- alias
- export
- man
- ssh
- ftp
- sshfs
- hostname
- sudo
- ping
- r
- locate
- which
- xrandr
- journalctl
- systemctl
- service
- shutdown
- init
- setxkbmap/loadkeys
- su
- id
- mount
- umount
- pwd
- ps
- kill
- killall
- whoami
- uname
- inxi
- useradd
- usermod
- gpasswd
- userdel
- groupadd
- visudo
- passwd
- chsh
- crontab
- İşinize yarayabilecek aliaslar
- Kullandığınız shell'i özelleştirmek
- Linux'ta karşılaşabileceğiniz bazı sorunlar
- Ağ 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 direkcd
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.
- kaydetmek ve çıkmak için tuş kombinasyonları vardır. (:q = Çıkış | :wq = Kaydederek çıkış | :q! = Kaydetmeden çıkış)
- Daha fazlası için bakınız : https://linuxacademy.com/site-content/uploads/2019/05/vim-1.png
(▲) 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'achmod cheat sheet
yazarak ulaşabilirsiniz. Veya şu sitedeki hesap makinesini inceleyebilir veyachmod
'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ü, 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ü 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ü 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
(▲) 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
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.
- 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'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ızfirmware-ralink
, Realtek görüyorsanızfirmware-realtek
kurun. Ve reboot atın.
┌──(root💀kali)-[~]
└─# apt install firmware-atheros
(▲) 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
(▲) 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