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.
ls komutu bulunduğunuz dizindeki dosyaları görmenizi sağlar. Örnek Kullanım:
┌──(root💀kali)-[~]
└─# ls
Desktop Documents Downloads Music Pictures Public Templates Videos
- Öneri: ls komutunu -lsah argümanı ile kullanırsanız dosyaların yazma-okuma-çalıştırma yetkilerini, dosyaların kime ait olduğunu, diskte kapladıkları alanları ve bulunduğunuz dizindeki gizli dosyaları görebilirsiniz.
┌──(root💀kali)-[~]
└─# ls -lsah
total 128K
4.0K drwx------ 14 root root 4.0K Jul 19 19:53 .
4.0K drwxr-xr-x 19 root root 4.0K Jul 19 19:38 ..
8.0K -rw-r--r-- 1 root root 5.3K Jul 19 19:38 .bashrc
4.0K drwx------ 7 root root 4.0K Jul 19 19:50 .cache
4.0K drwx------ 8 root root 4.0K Jul 19 19:53 .config
4.0K drwxr-xr-x 2 root root 4.0K Jul 19 19:49 Desktop
4.0K -rw-r--r-- 1 root root 55 Jul 19 19:49 .dmrc
4.0K drwxr-xr-x 2 root root 4.0K Jul 19 19:49 Documents
4.0K drwxr-xr-x 2 root root 4.0K Jul 19 19:49 Downloads
12K -rw-r--r-- 1 root root 12K Jul 19 19:41 .face
0 lrwxrwxrwx 1 root root 11 Jul 19 19:41 .face.icon -> /root/.face
4.0K drwx------ 3 root root 4.0K Jul 19 19:49 .gnupg
0 -rw------- 1 root root 0 Jul 19 19:49 .ICEauthority
4.0K drwxr-xr-x 3 root root 4.0K Jul 19 19:49 .local
4.0K drwxr-xr-x 2 root root 4.0K Jul 19 19:49 Music
4.0K drwxr-xr-x 2 root root 4.0K Jul 19 19:49 Pictures
4.0K -rw-r--r-- 1 root root 148 May 25 17:54 .profile
4.0K drwxr-xr-x 2 root root 4.0K Jul 19 19:49 Public
4.0K drwxr-xr-x 2 root root 4.0K Jul 19 19:49 Templates
4.0K -rw-r----- 1 root root 4 Jul 19 19:49 .vboxclient-clipboard.pid
4.0K -rw-r----- 1 root root 4 Jul 19 19:49 .vboxclient-display-svga-x11.pid
4.0K -rw-r----- 1 root root 4 Jul 19 19:49 .vboxclient-draganddrop.pid
4.0K -rw-r----- 1 root root 4 Jul 19 19:49 .vboxclient-seamless.pid
4.0K drwxr-xr-x 2 root root 4.0K Jul 19 19:49 Videos
4.0K -rw------- 1 root root 49 Jul 19 19:49 .Xauthority
8.0K -rw------- 1 root root 8.0K Jul 19 19:53 .xsession-errors
4.0K -rw------- 1 root root 24 Jul 19 19:49 .zsh_history
12K -rw-r--r-- 1 root root 11K Jul 19 19:38 .zshrc
ls komutunun sonuna herhangi bir dizin ekleyerek başka bir dizinin içeriğini de görebilirsiniz.
clear komutu ekrandaki yazıları siler. Örnek kullanım:
┌──(root💀kali)-[~]
└─# clear
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 komutu'da cd gibi bulunduğunuz dizinden başka bir dizine geçmeye yarar. Cd'den farkı yeni dizine geçerken eski dizini unutmamasıdır. Eski dizine popd ile geri dönebilirsiniz. Örnek kullanım:
┌──(root💀kali)-[/home/can/Downloads]
└─# pushd /opt
┌──(root💀kali)-[/opt]
└─# popd
┌──(root💀kali)-[/home/can/Downloads]
└─#
mkdir 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 komutu dosya oluşturmaya yarar. Örnek kullanım:
┌──(root💀kali)-[~/deneme]
└─# touch a.txt
┌──(root💀kali)-[~/deneme]
└─# ls
klasör a.txt
ln komutu bir dosyayı veya bir klasörü başka bir yere linklemeye/kısayol oluşturmaya yarar. Örnek kullanım:
- -s : Sembolik olarak linkler. Genelde kullanılan parametre budur.
- -f : Linklemeye zorlar (force).
┌──(root💀kali)-[~]
└─# ls deneme/
a.txt b.txt
┌──(root💀kali)-[~]
└─# ln -sf deneme yeniklasor
┌──(root💀kali)-[~]
└─# ls yeniklasor
a.txt b.txt
cat, more ve less komutları dosyanın içeriğini okumaya yarar. Örnek kullanımlar:
┌──(root💀kali)-[~/deneme]
└─# cat a.txt
┌──(root💀kali)-[~/deneme]
└─# more a.txt
┌──(root💀kali)-[~/deneme]
└─# less a.txt
a.txt (END)
NOT: less komutundan çıkmak için q tuşuna basmanız gerekiyor.
- Cat ile sıfırdan dosya yapıp içerik eklemek (SEPERATOR yerine istediğinizi yazabilirsiniz.)
┌──(root💀kali)-[~/deneme]
└─# cat <<-'SEPERATOR' > a.txt
birinci satır
ikinci satır
üçüncü satır
SEPERATOR
┌──(root💀kali)-[~/deneme]
└─# cat a.txt
birinci satır
ikinci satır
üçüncü satır
- Varolan dosyanın altına içerik eklemek:
┌──(root💀kali)-[~/deneme]
└─# echo "123" >> a.txt
┌──(root💀kali)-[~/deneme]
└─# cat <<-'SEPERATOR' >> a.txt
birinci satır
ikinci satır
üçüncü satır
SEPERATOR
┌──(root💀kali)-[~/deneme]
└─# cat a.txt
123
birinci satır
ikinci satır
üçüncü satır
echo komutu yazdığınız şeyin tekrar yazılmasını sağlar. Örnek kullanım:
- -e : Kaçış dizilerini aktifleştirir.
┌──(root💀kali)-[~/deneme]
└─# echo Merhaba
Merhaba
┌──(root💀kali)-[~/deneme]
└─# echo -e "Merhaba\nDünya\t123"
Merhaba
Dünya 123
Genel kullanım amaçları:
- Dosya oluşturmak
┌──(root💀kali)-[~/deneme]
└─# echo "" > b.txt
┌──(root💀kali)-[~/deneme]
└─# ls
klasör a.txt b.txt
NOT: Burada gördüğünüz > operatörü eğer dosya varsa dosyanın içindeki her şeyi silip echo'ya yazdığınız şeyi dosyaya yazar. Eğer dosya halihazırda yoksa bir dosya oluşturup dosyaya echo'ya koyduğunuz şeyi yazar.
┌──(root💀kali)-[~/deneme]
└─# cat b.txt
┌──(root💀kali)-[~/deneme]
└─#
- Dosyaya ekleme yapmak
┌──(root💀kali)-[~/deneme]
└─# echo "abc" >> c.txt
┌──(root💀kali)-[~/deneme]
└─# echo "21" >> c.txt
┌──(root💀kali)-[~/deneme]
└─# cat c.txt
abc
21
┌──(root💀kali)-[~/deneme]
└─#
NOT: Burada kullandığımız >> operatörü dosyanın içeriğini silmeden sonraki satırına ekleme yapmak için kullanılır.
cp komutu dosya kopyalamaya yarar. Genelde birlikte kullanılan argümanlar:
- -r : Klasör kopyalar.
- -f : Kopyalamaya zorlar.
- -v : Bir klasör kopyalanırken hangi dosyaların kopyalandığının çıktısını verir.
- -i : overwrite yapmadan önce sorar. Örnek kullanım:
┌──(root💀kali)-[~/deneme]
└─# cp -r klasör ~/
Önemli bilgiler:
- ~/ : home klasörünüz yani şu an root olduğumuz için /root dizinini belirtmeye yarar.
- ./ : şu an içinde olduğumuz dizini belirtmeye yarar.
rm 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 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 terminal bazlı bir yazı editörüdür.
- nano'da belli bir dosyayı açmak için veya dosya oluşturmak için nano dosya_adı yapın.
┌──(root💀kali)-[~]
└─# nano x.txt
- nano'dan çıkmak için ctrl+x yapın, kaydetmek için y'ye basıp istediğniiz dosya adını yazıp enter'a basın, iptal etmek için ctrl+c yapın, kaydetmeden kapatmak için n'ye basın.
vi, nano'nun biraz daha kompleks halidir.
- kaydetmek ve çıkmak için tuş kombinasyonları vardır. (:q = Çıkış | :wq = Kaydederek çıkış | :q! = Kaydetmeden çıkış )
vim'in şekilli şukullusu diyebiliriz. Varsayılan olarak gelmiyor.
find komutu dosya aramak için kullanılır. Genelde birlikte kullanılan argümanlar:
- / : Bütün bilgisayarı aramaya yarar.
- -name "dosya ismi": Dosyayı ismiyle aramak. Eğer dosya isminin sadece bir kısmını biliyorsanız, örneğin dosyanın adı flag-1-of-3.txt olsun, siz sadece flag kısmını biliyorsanız -name kısmı: -name "flag" olması gerekir. Dosyaları uzantısı ile aramak istiyorsanız, örneğin mp3 dosyaları için -name kısmı: -name "*.mp3"
- -type tip: tipe ya f, l ya da d yazacaksınız. Eğer aratacağınız şey bir dosyaysa f, symlink ise l, klasörse d yazın.
- 2>/dev/null: Erişim iznimiz olmayan yerleri (olumsuz çıktıları) göstermemeye yarar.
- -perm: dosya izinlerini armaya yarar. Örnek kullanım:
┌──(root💀kali)-[~]
└─# find / -type f -perm /u=s 2>/dev/null
Yukarıdaki komut genel olarak privilege escalation yani yetki yükseltmesi yapmak için kullanılır. Sayfanın sonundaki CTF writeupundan nasıl olduğuna bakabilirsiniz.
chmod komutu dosyaların yetkilerini ayarlamaya yarar.
- +x : Dosyayı çalıştırılabilme iznini verir.
- -x : Dosyadan çalıştırılabilme iznini kaldırır. chmod'un nasıl kullanıldığı ile ilgili daha fazla bilgiye googleye chmod cheat sheet yazarak ulaşabilirsiniz. Veya chmod'da sayıların tam olarak ne işe yaradığını incelemek için şu fotoğrafı inceleyebilirsiniz: https://miro.medium.com/max/800/1*McJxuQAO-fLpz-7S4Cr4pA.gif Örnek kullanım:
┌──(root💀kali)-[~]
└─# chmod 777 a.sh
┌──(root💀kali)-[~]
└─# chmod -x a.sh
./ ile bulunduğunuz dizindeki çalıştırma yetkisi olan bir dosyayı çalıştırabilirsiniz. Çalıştırma yekisi ls -lsah meünüsünde x olarak gözükür. Örnek kullanım:
┌──(root💀kali)-[~]
└─# ./a.sh
##########################
# Abone olun olum #
# youtube.com/c/CanDeger #
##########################
┌──(root💀kali)-[~]
└─#
chown komutu dosyaların sahipliğini değiştirmeye yarar. Örnek kullanım:
┌──(root💀kali)-[~]
└─# chown kali b.txt
NOT: Buradaki kali username
&& operatörü eğer ilk komut başarıyla çalışırsa ikinci komutu da çalıştırmaya yarar. Örnek kullanım:
┌──(root💀kali)-[~]
└─# echo Merhaba && echo Dünya
Merhaba
Dünya
|| operatörü ilk komut çalışmazsa ikinci komutun çalışmasına olanak sağlar. Eğer ilk komut çalışırsa sonraki komut çalışmaz (if-else mantığı). Örnek kullanım:
┌──(root💀kali)-[~]
└─# echo Merhaba || echo Dünya
Merhaba
┌──(root💀kali)-[~]
└─# cat ./d.txt || echo "Sorun var"
cat: d.txt: No such file or directory
Sorun var
Komut sonuna 1>/dev/null eklerseniz olumlu çıktılar ekranda görünmeyecektir. Eğer 1 yerine 2 yazarsanız olumsuz çıktılar ekranda görünmeyecektir. Örnek kullanım: (a.txt içerisinde mt190502 yazdığını, b.txt'in olmadığını varsayalım.)
┌──(root💀kali)-[~]
└─# cat a.txt
mt190502
┌──(root💀kali)-[~]
└─# cat a.txt 1>/dev/null
┌──(root💀kali)-[~]
└─# cat b.txt
cat: b.txt: No such file or directory
┌──(root💀kali)-[~]
└─# cat b.txt 2>/dev/null
| operatörü ilk komutun çıktısını kullanarak komut çalıştırmaya yarar. Örnek kullanım:
┌──(root💀kali)-[~]
└─# echo "Merhaba Dünya" | tee a.txt 1>/dev/null
┌──(root💀kali)-[~]
└─# cat a.txt
Merhaba Dünya
tee 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 komutu çıktısını alabildiğin bir komutun içinden belli bir kelime veya cümlenin olduğu satırları almaya/işlemeye yarar.
- -v : Belirlenen kelimeyi içeren satırları almamaya yarar
- -E : Birden çok kelime kullanmaya yarar
- -i : Büyük küçük harf kuralını es geçer
- -ne : Satır numaralarını gösterir
- -A(SAYI) : Belirlenen kelimenin altından SAYI kadar satır alır (After)
- -B(SAYI) : Belirlenen kelimenin üstünden SAYI kadar satır alır (Before) Örnek kullanım:
┌──(root💀kali)-[~]
└─# cat r.txt
Merhaba
ben
n30nx.
┌──(root💀kali)-[~]
└─# cat r.txt | grep n30nx
n30nx.
┌──(root💀kali)-[~]
└─# cat r.txt | grep -v ben
Merhaba
n30nx.
┌──(root💀kali)-[~]
└─# cat r.txt | grep -Ei "ben|n30nx"
ben
n30nx.
┌──(root💀kali)-[~]
└─# cat r.txt | grep -ne ben
2:ben
┌──(root💀kali)-[~]
└─# cat r.txt | grep -A1 ben
Merhaba
┌──(root💀kali)-[~]
└─# cat r.txt | grep -B1 ben
n30nx.
cut 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 komutu, bir nevi grep gibi kelime işleme aracıdır. Grep ve cut'tan daha gelişmiş bir yapısı vardır.
- -F : Ayraç olarak hangi karakterin kullanılacağını belirler. Varsayılan olarak boşluk karakteridir. Daha fazla bilgi için google'a awk cheatsheet yazabilirsiniz. Örnek kullanım:
┌──(root💀kali)-[~]
└─# cat g.txt
Merhaba dünya. Selam 123 deneme
┌──(root💀kali)-[~]
└─# cat g.txt | awk '{print $1}'
Merhaba
┌──(root💀kali)-[~]
└─# cat g.txt | awk '{print $1,$3}'
Merhaba Selam
┌──(root💀kali)-[~]
└─# cat g.txt | awk -F '.' '{print $1}'
Merhaba dünya
xargs 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 komutu verilen yazıların içinden farklı satırda ve aynı olanları eleyerek bir çıktı döndürür.
- -c : Aynı olanların kaç kez tekrar ettiğini gösterir. Örnek kullanım:
┌──(root💀kali)-[~]
└─# cat a.txt
a
a
a
b
b
b
c
c
c
┌──(root💀kali)-[~]
└─# cat a.txt | uniq # veya uniq a.txt
a
b
c
┌──(root💀kali)-[~]
└─# cat a.txt | uniq -c
3 a
3 b
3 c
sort komutu verilen yazıları sözlük sırasına göre sıralar.
- -V : Versiyon sıralaması yapar.
- -r : Sıralamayı tersine çevirir. Örnek kullanım:
┌──(root💀kali)-[~]
└─# cat k.txt
b
c
a
┌──(root💀kali)-[~]
└─# cat k.txt | sort # veya sort k.txt
a
b
c
┌──(root💀kali)-[~]
└─# cat versions.txt
python3.8
python3.6
python3.9
python3.7
┌──(root💀kali)-[~]
└─# cat versions.txt | sort -V
python3.6
python3.7
python3.8
python3.9
┌──(root💀kali)-[~]
└─# cat versions.txt | sort -Vr
python3.9
python3.8
python3.7
python3.6
base64, bir encoding sistemidir burada base64 linux sistemlere indirilebilen base64 decode ve encode'ye yarayan bir araçtır. Genelde birlikte kullanılan argümanlar:
- -d : decode
- -i : decodelerken alfabetik olmayan karakterleri yoksay. Örnek kullanım:
┌──(root💀kali)-[~]
└─# echo Can Değer | base64
Q2FuIERlxJ9lcgo=
┌──(root💀kali)-[~]
└─# echo Q2FuIERlxJ9lcgo= | base64 -d
Can Değer
md5sum komutu bir dosyanın md5 hashini alır.
- -c dosya : MD5SUM taraması için bir dosya kullanır. Örnek kullanım:
┌──(root💀kali)-[~]
└─# md5sum a.txt
a651a365a7f35ec86e4b3430bcb6e735 a.txt
┌──(root💀kali)-[~]
└─# md5sum -c md5sums.txt
archlinux-2021.09.01-x86_64.iso: OK
archlinux-bootstrap-2021.09.01-x86_64.tar.gz: OK
sha256sum komutu bir dosyanın sha256 hashini alır.
- -c dosya : SHA256SUM taraması için bir dosya kullanır. Örnek kullanım:
┌──(root💀kali)-[~]
└─# sha256sum a.txt
32c2643e0dc65524c9f1f6f9f00937322fd68d59986bc381d9ff2285d23e353d a.txt
head 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 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 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.
curl'e benzer bir tooldur.
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 komutu ile .tar arşivi oluşturabilirsiniz veya .tar arşivlerinin içinden dosyaları çıkarabilirsiniz. Örnek kullanım:
┌──(root💀kali)-[~]
└─# tar -cf r.tar a.txt deneme
┌──(root💀kali)-[~]
└─# tar -xvf r.tar
a.txt
deneme/
deneme/a.txt
deneme/x.txt
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 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 komutu o an ki oturumda belli bir isme bir değer atamaya yarar. Örnek kullanım:
┌──(root💀kali)-[~]
└─# export isim="echo Can Değer"
┌──(root💀kali)-[~]
└─# $isim
Can Değer
Öneri: export'ları kalıcı hale getirmek isterseniz kullandığınız shell'e göre export'ları ekleyin. (Bash için: .bashrc dosyasının sonuna, Zsh için: .zshrc, Fish için: ~/.config/fish/config.fish)
┌──(root💀kali)-[~]
└─# echo 'export isim="echo Can Değer"' >> .bashrc # zsh kullanıyorsanız .zshrc, fish kullanıyorsanız ~/.config/fish/config.fish
NOT: Bunu yaptıktan sonra terminali kapatıp tekrar açın değişiklikler uygulanmış olacaktır.
alias'tan tek farkı export'a tanımladığınız ismi çağırırken başına dolar simgesi ($) koymanız gerekir.
man komutu bilgisayarınızdaki herhangi bir programın manual'ini yani klavuzunu açar.
- man SAYI kılavuz : Belirttiğiniz sayıda bulunan kılavuzu açar. Örnek kullanım:
┌──(root💀kali)-[~]
└─# man systemctl
┌──(root💀kali)-[~]
└─# man 5 fstab
NOT: man ekranından çıkmak için q'ya basmanız gerekiyor.
ssh başka bir bilgisayara bağlanamya yarar.
- -i: ssh private key kullanarak giriş yapmayı sağlar. Örnek kullanım:
┌──(root💀kali)-[~]
└─# ssh kali@10.10.10.10
Gelen ekranda evet yazacaksınız ve daha sonra da şifreyi gireceksiniz. Yukarıdaki kullanım ssh portunun default olduğunu varsayar. Örnek çıktı:
┌──(root💀kali)-[~]
└─# ssh kali@localhost
The authenticity of host 'localhost (::1)' can't be established.
(KEY) key fingerprint is SHA256:(SHA256).
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added 'localhost' (KEY) to the list of known hosts.
kali@localhost's password:
Last login: Sun Sep 19 22:49:38 2021
ftp başka bir bilgisayara dosya ekleme, silme veya o bilgisayardaki dosyayı değiştirme veya dosyayı almaya yarar. Örnek kullanım:
┌──(root💀kali)-[~]
└─# ftp 10.10.10.10
Gelen ekranda ilk önce kullanıcı adını daha sonra ise şifreyi gireceksiniz. Ve içeride yetkileriniz dahilinde dğeişiklik yapabilir veya dosya indirebilirsiniz.
hostname 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 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 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 komutu son çalıştırılan komutu tekrar çalıştırır. Örnek kullanım:
┌──(root💀kali)-[~]
└─# cat r.txt
Merhaba
ben
n30nx.
┌──(root💀kali)-[~]
└─# r
cat r.txt
Merhaba
ben
n30nx.
locate komutu içinde verilen keyword olan bütün klasör ve dosyaları döndürür. Örnek kullanım:
┌──(root💀kali)-[~]
└─# locate bash
/etc/bash.bashrc
/etc/bash_completion
/etc/bash_completion.d
/etc/apparmor.d/abstractions/bash
/etc/bash_completion.d/git-prompt
/etc/profile.d/bash_completion.sh
/etc/skel/.bash_logout
/etc/skel/.bashrc
/etc/skel/.bashrc.original
/home/kali/.bash_logout
/home/kali/.bashrc
/home/kali/.bashrc.original
/root/.bash_history
/root/.bashrc
/usr/bin/bash
/usr/bin/bashbug
/usr/bin/dh_bash-completion
/usr/bin/rbash
/usr/lib/llvm-11/share/clang/bash-autocomplete.sh
/usr/lib/llvm-9/share/clang/bash-autocomplete.sh
/usr/lib/python3/dist-packages/click/_bashcomplete.py
/usr/lib/python3/dist-packages/click/__pycache__/_bashcomplete.cpython-39.pyc
/usr/lib/python3/dist-packages/cme/helpers/bash.py
/usr/lib/python3/dist-packages/cme/helpers/__pycache__/bash.cpython-39.pyc
...
which komutu belli bir programın yerini belirlemeye yarar. Örnek kullanım:
┌──(root💀kali)-[~]
└─# which bash
/usr/bin/bash
xrandr komutu X.org görüntü sunucusuna bağlı olarak bilgisayara bağlı montiörleri göstermeye yarar. Örnek kullanım:
┌──(root💀kali)-[~]
└─# xrandr
Screen 0: minimum 1 x 1, current 1360 x 703, maximum 8192 x 8192
Virtual1 connected primary 1360x703+0+0 (normal left inverted right x axis y axis) 0mm x 0mm
1360x703 60.00*+
2560x1600 59.99
1920x1440 60.00
1856x1392 60.00
1792x1344 60.00
1920x1200 59.88
1600x1200 60.00
1680x1050 59.95
1400x1050 59.98
1280x1024 60.02
1440x900 59.89
1280x960 60.00
1360x768 60.02
1280x800 59.81
1152x864 75.00
1280x768 59.87
1024x768 60.00
800x600 60.32
640x480 59.94
Virtual2 disconnected (normal left inverted right x axis y axis)
Virtual3 disconnected (normal left inverted right x axis y axis)
Virtual4 disconnected (normal left inverted right x axis y axis)
Virtual5 disconnected (normal left inverted right x axis y axis)
Virtual6 disconnected (normal left inverted right x axis y axis)
Virtual7 disconnected (normal left inverted right x axis y axis)
Virtual8 disconnected (normal left inverted right x axis y axis)
jorunalctl bilgisayarın açılmasından o ana kadar ki logları gösterir. Genelde -xb komutuyla kullanılır.
- --no-hostname : Çıktıdan hostname'i gizler.
- -D dosya : Belirttiğiniz journal dosyasını okur. Journal dosyaları /var/log/journal içinde biriktirilir. Örnek kullanım:
┌──(root💀kali)-[~]
└─# journalctl -xb
systemctl systemd'nin kontrolcüsü, sistem ve service manageri olarak kullanılır. Genel birlikte kullanılan argümanlar:
- --user : Root hesabında çalışmayan kullanıcılar altındaki işlemler için kullanılır
- start servis : servisi başlatır
- stop servis : servisi durdurur
- reload servis : servisi yeniler
- restart servis : servisi yeniden başlatır
- show servis : servisin detaylarını gösterir
- status servis : servisin durmunu gösterir
- clean servis : runtime, önbellek, stage ve logları veya konfigürasyon temizler
- status : bütün servislerin durumunu gösterir
- enable servis : servisin bilgisayarın başlangıcında açılmasını sağlar
- is-enabled servis : servisin bilgisayar başlandıcında açılmaya ayarlı olup olmadığını kontrol eder
- disable servis : servisin bilgisayarın başlangıcında açılmasını kapatır
- mask servis : servisi gizler
- unmask servis : servisin gizliliğini kapatır
- reboot : bilgisayarı yeniden başlatır
- poweroff : bilgisayarı kapatır.
- suspend : bilgisayarı askıya alır.
- rescue: : kurtarma modu
- -i : errorları yoksayar
- -f : işlemi yapmaya zorlar Örnek kullanımlar:
┌──(root💀kali)-[~]
└─# systemctl start tor # tor kali'de default olarak gelmiyor, indirmek için apt install kali
┌──(root💀kali)-[~]
└─# systemctl --user status pipewire-pulse.service # Ses sunucusu yardımcı servisi normal kullanıcı altında çalışır. Kontrol etmek için (--user)
● pipewire-pulse.service - PipeWire PulseAudio
Loaded: loaded (/usr/lib/systemd/user/pipewire-pulse.service; enabled; vendor preset: disabled)
...
┌──(root💀kali)-[~]
└─# systemctl status tor
● tor.service - Anonymizing overlay network for TCP (multi-instance-master)
Loaded: loaded (/lib/systemd/system/tor.service; disabled; vendor preset: disabled)
Active: active (exited) since Tue 2021-07-20 12:14:25 +03; 8s ago
Process: 2396 ExecStart=/bin/true (code=exited, status=0/SUCCESS)
Main PID: 2396 (code=exited, status=0/SUCCESS)
CPU: 1ms
Jul 20 12:14:25 kali systemd[1]: Starting Anonymizing overlay network for TCP (multi-instance-master)...
Jul 20 12:14:25 kali systemd[1]: Finished Anonymizing overlay network for TCP (multi-instance-master).
┌──(root💀kali)-[~]
└─# systemctl stop tor
┌──(root💀kali)-[~]
└─# systemctl status tor
● tor.service - Anonymizing overlay network for TCP (multi-instance-master)
Loaded: loaded (/lib/systemd/system/tor.service; disabled; vendor preset: disabled)
Active: inactive (dead)
Jul 20 12:14:25 kali systemd[1]: Starting Anonymizing overlay network for TCP (multi-instance-master)...
Jul 20 12:14:25 kali systemd[1]: Finished Anonymizing overlay network for TCP (multi-instance-master).
Jul 20 12:15:35 kali systemd[1]: tor.service: Succeeded.
Jul 20 12:15:35 kali systemd[1]: Stopped Anonymizing overlay network for TCP (multi-instance-master).
┌──(root💀kali)-[~]
└─# systemctl enable tor
Synchronizing state of tor.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable tor
Created symlink /etc/systemd/system/multi-user.target.wants/tor.service → /lib/systemd/system/tor.service.
┌──(root💀kali)-[~]
└─# systemctl is-enabled tor
enabled
┌──(root💀kali)-[~]
└─# systemctl disable tor
Synchronizing state of tor.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install disable tor
Removed /etc/systemd/system/multi-user.target.wants/tor.service.
service komutu servisleri başlatmaya durdurmaya vesaire yarar. systemctl'nin servisleri çalıştıran yansıması gibidir. Genel birlikte kullanılan argümanlar:
- servis start
- servis stop
- servis reload
- servis status
- servis show
- servis enable
- servis disable Örnek kullanımlar:
┌──(root💀kali)-[~]
└─# service tor start
┌──(root💀kali)-[~]
└─# service tor status
● tor.service - Anonymizing overlay network for TCP (multi-instance-master)
Loaded: loaded (/lib/systemd/system/tor.service; disabled; vendor preset: disabled)
Active: active (exited) since Tue 2021-07-20 13:13:14 +03; 21s ago
Process: 3477 ExecStart=/bin/true (code=exited, status=0/SUCCESS)
Main PID: 3477 (code=exited, status=0/SUCCESS)
CPU: 1ms
Jul 20 13:13:14 kali systemd[1]: Starting Anonymizing overlay network for TCP (multi-instance-master)...
Jul 20 13:13:14 kali systemd[1]: Finished Anonymizing overlay network for TCP (multi-instance-master).
┌──(root💀kali)-[~]
└─# service tor stop
shutdown 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, bir systemd servisidir ve genelde bilgisayarı kapatmak, yeniden başlatmak ve resuce moduna almak için kullanılır. Genelde birlikte kullanılan argümanlar:
- 0 : bilgisayarı kapatır.
- 1 : bilgisayarı kurtarma moduna alır.
- 6 : bilgisayarı yeniden başlatır. Örnek kullanım:
┌──(root💀kali)-[~]
└─# init 0
setxkbmap kullandığınız terminal oturumunda klavye dilini değiştirmeye yarar. Örnek kullanım:
┌──(root💀kali)-[~]
└─# setxkbmap tr
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 komutu kullandığımız userin gruplarını, uidisini ve gidsini verir.
- -u : uid
- -g : gid Örnek kullanım:
┌──(root💀kali)-[~/deneme]
└─# id
uid=0(root) gid=0(root) groups=0(root),20(dialout),121(wireshark),146(kaboxer)
┌──(root💀kali)-[~/deneme]
└─# id -u
0
mount 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 komutu bağlanmış bölümleri çıkarmaya yarar. Örnek kullanım:
┌──(root💀kali)-[~]
└─# umount /mnt
┌──(root💀kali)-[~]
└─# umount /dev/sda9
pwd komutu çalıştırdığınız yerdeki dizini görmenize yarar. Örnek kullanım:
┌──(root💀kali)-[~]
└─# pwd
/root
ps komutu genel olarak ps aux şeklinde kullanılır ve o anda çalışan işlemleri gösterir. Örnek kullanım:
┌──(root💀kali)-[~]
└─# ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.1 165080 10688 ? Ss 10:57 0:07 /sbin/init splash
root 2 0.0 0.0 0 0 ? S 10:57 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? I< 10:57 0:00 [rcu_gp]
root 4 0.0 0.0 0 0 ? I< 10:57 0:00 [rcu_par_gp]
root 6 0.0 0.0 0 0 ? I< 10:57 0:00 [kworker/0:0H-events_highpri]
root 9 0.0 0.0 0 0 ? I< 10:57 0:00 [mm_percpu_wq]
root 10 0.0 0.0 0 0 ? S 10:57 0:00 [rcu_tasks_rude_]
root 11 0.0 0.0 0 0 ? S 10:57 0:00 [rcu_tasks_trace]
root 12 0.0 0.0 0 0 ? S 10:57 0:00 [ksoftirqd/0]
root 13 0.0 0.0 0 0 ? I 10:57 0:00 [rcu_sched]
root 14 0.0 0.0 0 0 ? S 10:57 0:00 [migration/0]
root 15 0.0 0.0 0 0 ? S 10:57 0:00 [cpuhp/0]
root 16 0.0 0.0 0 0 ? S 10:57 0:00 [cpuhp/1]
root 17 0.0 0.0 0 0 ? S 10:57 0:00 [migration/1]
root 18 0.0 0.0 0 0 ? S 10:57 0:00 [ksoftirqd/1]
root 20 0.0 0.0 0 0 ? I< 10:57 0:00 [kworker/1:0H-events_highpri]
root 21 0.0 0.0 0 0 ? S 10:57 0:00 [cpuhp/2]
root 22 0.0 0.0 0 0 ? S 10:57 0:00 [migration/2]
root 23 0.0 0.0 0 0 ? S 10:57 0:00 [ksoftirqd/2]
root 25 0.0 0.0 0 0 ? I< 10:57 0:00 [kworker/2:0H-events_highpri]
root 26 0.0 0.0 0 0 ? S 10:57 0:00 [cpuhp/3]
root 27 0.0 0.0 0 0 ? S 10:57 0:00 [migration/3]
root 28 0.0 0.0 0 0 ? S 10:57 0:00 [ksoftirqd/3]
root 30 0.0 0.0 0 0 ? I< 10:57 0:00 [kworker/3:0H-events_highpri]
root 35 0.0 0.0 0 0 ? S 10:57 0:00 [kdevtmpfs]
root 36 0.0 0.0 0 0 ? I< 10:57 0:00 [netns]
root 37 0.0 0.0 0 0 ? S 10:57 0:00 [kauditd]
root 38 0.0 0.0 0 0 ? S 10:57 0:00 [khungtaskd]
root 39 0.0 0.0 0 0 ? S 10:57 0:00 [oom_reaper]
root 40 0.0 0.0 0 0 ? I< 10:57 0:00 [writeback]
root 41 0.0 0.0 0 0 ? S 10:57 0:00 [kcompactd0]
root 42 0.0 0.0 0 0 ? SN 10:57 0:00 [ksmd]
root 43 0.0 0.0 0 0 ? SN 10:57 0:00 [khugepaged]
root 61 0.0 0.0 0 0 ? I< 10:57 0:00 [kintegrityd]
root 62 0.0 0.0 0 0 ? I< 10:57 0:00 [kblockd]
root 63 0.0 0.0 0 0 ? I< 10:57 0:00 [blkcg_punt_bio]
root 64 0.0 0.0 0 0 ? I< 10:57 0:00 [edac-poller]
root 65 0.0 0.0 0 0 ? I< 10:57 0:00 [devfreq_wq]
root 66 0.0 0.0 0 0 ? I 10:57 0:00 [kworker/2:1-events]
root 67 0.0 0.0 0 0 ? I< 10:57 0:00 [kworker/0:1H-kblockd]
root 70 0.0 0.0 0 0 ? S 10:58 0:00 [kswapd0]
root 71 0.0 0.0 0 0 ? I< 10:58 0:00 [kthrotld]
root 72 0.0 0.0 0 0 ? I< 10:58 0:00 [acpi_thermal_pm]
root 73 0.0 0.0 0 0 ? I< 10:58 0:00 [ipv6_addrconf]
root 74 0.0 0.0 0 0 ? I< 10:58 0:00 [kworker/1:1H-kblockd]
root 83 0.0 0.0 0 0 ? I< 10:58 0:00 [kstrp]
root 86 0.0 0.0 0 0 ? I< 10:58 0:00 [zswap-shrink]
root 87 0.0 0.0 0 0 ? I< 10:58 0:00 [kworker/u9:0]
root 88 0.0 0.0 0 0 ? I 10:58 0:00 [kworker/3:1-events]
root 140 0.0 0.0 0 0 ? I< 10:58 0:00 [kworker/2:1H-kblockd]
root 142 0.0 0.0 0 0 ? I< 10:58 0:00 [cryptd]
root 143 0.0 0.0 0 0 ? I< 10:58 0:00 [kworker/3:1H-kblockd]
root 144 0.0 0.0 0 0 ? I< 10:58 0:00 [ata_sff]
root 145 0.0 0.0 0 0 ? S 10:58 0:00 [scsi_eh_0]
root 147 0.0 0.0 0 0 ? I< 10:58 0:00 [scsi_tmf_0]
root 149 0.0 0.0 0 0 ? S 10:58 0:00 [scsi_eh_1]
root 151 0.0 0.0 0 0 ? I< 10:58 0:00 [scsi_tmf_1]
root 152 0.0 0.0 0 0 ? S 10:58 0:00 [scsi_eh_2]
root 153 0.0 0.0 0 0 ? I< 10:58 0:00 [scsi_tmf_2]
root 185 0.0 0.0 0 0 ? S 10:58 0:00 [irq/18-vmwgfx]
root 186 0.0 0.0 0 0 ? I< 10:58 0:00 [ttm_swap]
root 188 0.0 0.0 0 0 ? S 10:58 0:00 [card0-crtc0]
root 190 0.0 0.0 0 0 ? S 10:58 0:00 [card0-crtc1]
root 191 0.0 0.0 0 0 ? S 10:58 0:00 [card0-crtc2]
root 192 0.0 0.0 0 0 ? S 10:58 0:00 [card0-crtc3]
...
kill komutu o anda çalışan bir uygulamayı process id'si ile kapatmaya yarar. Örnek kullanım:
[1. terminal]
┌──(root💀kali)-[~]
└─# python3
Python 3.9.2 (default, Feb 28 2021, 17:03:44)
[GCC 10.2.1 20210110] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
[2. terminal]
┌──(root💀kali)-[~]
└─# ps aux | grep -v grep | grep python3
root 1047 0.0 0.6 439444 46736 ? Sl 11:03 0:00 /usr/bin/python3 /usr/bin/blueman-applet
root 1162 0.0 0.5 360444 40408 ? Sl 11:03 0:00 /usr/bin/python3 /usr/bin/blueman-tray
root 3821 0.6 0.1 16848 9756 pts/3 S+ 13:30 0:00 python3
┌──(root💀kali)-[~]
└─# kill 3821
[2.terminaldeki komuttan sonra 1.terminal]
Python 3.9.2 (default, Feb 28 2021, 17:03:44)
[GCC 10.2.1 20210110] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> zsh: terminated python3
killall 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 komutu kullandığınız kullanıcının adını gösterir. Örnek kullanım:
┌──(root💀kali)-[~]
└─# whoami
root
uname komutu bilgisayar hakkında bazı bilgileri verir. Örnek kullanım:
- -a : Tüm bilgileri çıktı olarak yansıtır.
- -s : Kernel ismini gösterir.
- -r : Kernel sürümünü gösterir
- -m : Mimari'yi gösterir.
- -p : İşlemci mimarisini gösterir.
┌──(root💀kali)-[~]
└─# uname -a
Linux kali 5.10.0-kali7-amd64 #1 SMP Debian 5.10.28-1kali1 (2021-04-12) x86_64 GNU/Linux
inxi 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 komutu kullanıcı eklemeye yarar. Genelde birlikte kullanılan argümanlar:
- -m : /home/kullanici_adi klasörünü yani home dizinini oluşturmaya yarar.
- -G : Grup seçimini yapmaya yarar
- -M : home dizini oluşturma
- -r : sistem hesabı oluşturur
- -s : shell'i seçmek için kullanılır eğer bu seçenek kullanılmazs ayeni kullanıcının default shell'i sh olacaktır Örnek kullanım:
┌──(root💀kali)-[~]
└─# useradd -mG wheel -s /usr/bin/zsh deneme
usermod 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 komutu'da grup yönetimi için bulunan bir komuttur. usermod komutundan farkı kullanıcıları gruptan çıkarma yetkisine sahiptir.
- -a : Kullanıcıyı gruba ekler.
- -d : Kullanıcıyı gruptan çıkartır.
┌──(root💀kali)-[~]
└─# gpasswd -a sudo kali # Kali kullanıcısı sudo grubuna eklendi.
┌──(root💀kali)-[~]
└─# gpasswd -d sudo kali # Kali kullanıcısı sudo grubundan çıkartıldı.
userdel komutu kullanıcı silmek için kullanılır. Genelde birlikte kullanılan argümanlar:
- -r : home dizinini ve mail spoolunu siler
- -f : silmeye zorlar
┌──(root💀kali)-[~]
└─# userdel -r deneme
groupadd komutu grup oluşturmak için kullanılır.
┌──(root💀kali)-[~/deneme]
└─# groupadd mygroup
visudo komutu ile bir grup veya kullanıcıya yetki verebilirsiniz. Örnek kullanım:
┌──(kali💀kali)-[~]
└─# visudo
#
# This file MUST be edited with the 'visudo' command as root.
#
# Please consider adding local content in /etc/sudoers.d/ instead of
# directly modifying this file.
#
# See the man page for details on how to write a sudoers file.
#
Defaults env_reset
Defaults mail_badpass
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
# Host alias specification
# User alias specification
# Cmnd alias specification
# User privilege specification
root ALL=(ALL:ALL) ALL
#### YALNIZCA KULLANICI EKLEMEK İÇİN
# Allow members of group sudo to execute any command
%sudo ALL=(ALL:ALL) ALL
### BİR GRUBU EKLEMEK İÇİN
# See sudoers(5) for more information on "@include" directives:
@includedir /etc/sudoers.d
NOT: visudo'da yazı yazmak için :w yazıp enter'a basın sonra i tuşuna basıp yazmak istediğiniz yere yazınızı yazın. Kaydedip çıkmak için CTRL+C yapıp :wq yazıp enter'a basın. Kaydetmeden çıkmak için CTRL+C yapıp :q! yazıp enter'a basın.
NOT: /etc/sudoers.d/10-kullanıcıadı içine "kullanıcıadı ALL=(ALL) ALL" yazıp kaydederseniz sudoers dosyasına kaza ile hasar verme olasılığınız epey azalır
passwd 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 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
Kolay update: (dpkg -l | awk '/^rc/ {print $2}' komutu ile silinen paketlerin gereksiz artıklarını yakalayıp xargs dpkg --purge ile temizliğini yapıyoruz)
┌──(root💀kali)-[~]
└─# echo alias kali-update="apt update && apt upgrade && apt full-upgrade && apt dist-upgrade && apt autoremove && dpkg -l | awk '/^rc/ {print $2}' | xargs dpkg --purge" >> .bashrc # veya zsh kullanıyorsanız .zshrc, fish kullanıyorsanız ~/.config/fish/config.fish
Depodaki tüm programların listesi:
┌──(root💀kali)-[~]
└─# echo alias apps="apt list" >> .bashrc # veya zsh kullanıyorsanız .zshrc, fish kullanıyorsanız ~/.config/fish/config.fish
Kurulmuş programların listesi:
┌──(root💀kali)-[~]
└─# echo alias installed-apps="apt list --installed" >> .bashrc # veya zsh kullanıyorsanız .zshrc, fish kullanıyorsanız ~/.config/fish/config.fish
Silme komutu:
┌──(root💀kali)-[~]
└─# echo alias rm="rm -rvif" >> .bashrc # veya zsh kullanıyorsanız .zshrc, fish kullanıyorsanız ~/.config/fish/config.fish
Kopyalama komutu:
┌──(root💀kali)-[~]
└─# echo alias cp="cp -rvif" >> .bashrc # veya zsh kullanıyorsanız .zshrc, fish kullanıyorsanız ~/.config/fish/config.fish
Taşıma komutu:
┌──(root💀kali)-[~]
└─# echo alias mv="mv -vif" >> .bashrc # veya zsh kullanıyorsanız .zshrc, fish kullanıyorsanız ~/.config/fish/config.fish
ls komutu:
┌──(root💀kali)-[~]
└─# echo alias ls="ls -lsah" >> .bashrc # veya zsh kullanıyorsanız .zshrc, fish kullanıyorsanız ~/.config/fish/config.fish
bash kullanıyorsanız .bashrc, zsh kullanıyorsanız .zshrc, fish kullanıyorsanız ~/.config/fish/config.fish dosyasını değiştirmeniz gerekiyor. ZSH'a özelleştirme için oh-my-zsh veya powerlevel10k'yı öneririm, githubtan repolarına ulaşabilirsiniz. Fish'i özelleştirmek için oh-my-fish kurup terminal'e fish_config yazabilirsiniz. Açılan web arayüzünden prompt sekmesine girip istediğiniz temayı seçebilirsiniz. Benim önerim sadeliğinden dolayı "Informative Vcs" yönünde.
apt 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 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 paket yöneticisi fedora ve fedora tabanlı işletim sistemleri ile gelir. Komutları genel itibariyle apt ile aynıdır. Kendi içinde alias sistemi mevcuttur.
ifconfig komutu bilgisayarınıza bağlı olan internet adaptörlerini görmek, onları açıp kapatmak ve private ip'nizi görmeye yarar. Genel birlikte kullanılan argümanlar:
- device up : device olarak verilen internet adaptörünü açar
- device down : device olarak verilen internet adaptörünü kapatır
- -a : bilgisayarınıza takılı olan bütün internet adaptörlerini görmeyi sağlar
- device : sadece device olarak verilen apatorün bilgilerini gösterir.
- eğer tun0 tun1 gibi birşey görürseniz o vpn'dir, tryhackme odalarında php reverse shell vesiare kullanacağınız zaman ip yerine tun0'daki private ip'yi yazacaksınız. Örnek kullanım:
┌──(root💀kali)-[~]
└─# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.0.2.15 netmask 255.255.255.0 broadcast 10.0.2.255
inet6 fe80::a00:27ff:fee2:8088 prefixlen 64 scopeid 0x20<link>
ether 08:00:27:e2:80:88 txqueuelen 1000 (Ethernet)
RX packets 5333 bytes 7327788 (6.9 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 3078 bytes 596839 (582.8 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device interrupt 19 base 0xd020
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 16 bytes 800 (800.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 16 bytes 800 (800.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
┌──(root💀kali)-[~]
└─# ifconfig eth0 down
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 16 bytes 800 (800.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 16 bytes 800 (800.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
┌──(root💀kali)-[~]
└─# ifconfig -a
eth0: flags=4098<BROADCAST,MULTICAST> mtu 1500
ether 08:00:27:e2:80:88 txqueuelen 1000 (Ethernet)
RX packets 5333 bytes 7327788 (6.9 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 3086 bytes 597447 (583.4 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device interrupt 19 base 0xd020
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 16 bytes 800 (800.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 16 bytes 800 (800.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
┌──(root💀kali)-[~]
└─# ifconfig eth0
eth0: flags=4098<BROADCAST,MULTICAST> mtu 1500
ether 08:00:27:e2:80:88 txqueuelen 1000 (Ethernet)
RX packets 5333 bytes 7327788 (6.9 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 3086 bytes 597447 (583.4 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device interrupt 19 base 0xd020
┌──(root💀kali)-[~]
└─# ifconfig eth0 up
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.0.2.15 netmask 255.255.255.0 broadcast 10.0.2.255
inet6 fe80::a00:27ff:fee2:8088 prefixlen 64 scopeid 0x20<link>
ether 08:00:27:e2:80:88 txqueuelen 1000 (Ethernet)
RX packets 5334 bytes 7328378 (6.9 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 3095 bytes 598465 (584.4 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device interrupt 19 base 0xd020
dhcpcd network manager aktif değilse internete bağlanmak için kullanılır. Bilgisayara defaulttan gelmiyor ve genel olarak archlinux yüklemelerinde kullanılıyor. Örnek kullanım:
┌──(root💀kali)-[~]
└─# dhcpcd
DUID 00:04:c0:df:f9:a1:15:f8:77:46:9a:4c:59:47:cf:50:f3:f3
eth0: IAID 27:e2:80:88
eth0: rebinding lease of 10.0.2.15
eth0: leased 10.0.2.15 for 86400 seconds
eth0: adding route to 10.0.2.0/24
eth0: adding default route via 10.0.2.2
Failed to try-restart systemd-timesyncd.service: Unit systemd-timesyncd.service is masked.
forked to background, child pid 4929
netstat komutu bilgisayara bağlı olan inernet bağlantılarını ve bağlı UNIX domain socketlerini gösterir. Genel birlikte kullanılan argümanlar:
- -a : bağlı olan bütün socketleri gösterir
- -n : numerik olarak göster (hostname'leri gösterme)
- -o : zamanlayıcıları göster
┌──(root💀kali)-[~]
└─# netstat -ano
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State Timer
tcp 0 0 10.0.2.15:57452 54.192.233.89:443 ESTABLISHED keepalive (2.96/0/0)
tcp 0 0 10.0.2.15:50514 195.175.114.154:80 ESTABLISHED keepalive (0.11/0/0)
tcp 0 0 10.0.2.15:36204 216.58.212.42:443 ESTABLISHED off (0.00/0/0)
tcp 0 0 10.0.2.15:36310 172.217.169.131:80 ESTABLISHED keepalive (1.43/0/0)
tcp 0 0 10.0.2.15:44172 93.184.220.29:80 ESTABLISHED keepalive (4.50/0/0)
tcp 0 0 10.0.2.15:35020 216.58.214.131:80 ESTABLISHED keepalive (0.92/0/0)
tcp 0 0 10.0.2.15:60422 172.217.169.131:443 ESTABLISHED off (0.00/0/0)
tcp 0 0 10.0.2.15:37252 35.185.44.232:443 ESTABLISHED off (0.00/0/0)
tcp 0 0 10.0.2.15:58850 54.186.138.163:443 TIME_WAIT timewait (40.04/0/0)
tcp 0 0 10.0.2.15:45556 44.230.27.49:443 TIME_WAIT timewait (41.67/0/0)
tcp 0 0 10.0.2.15:39514 44.239.56.69:443 TIME_WAIT timewait (43.83/0/0)
tcp 0 0 10.0.2.15:36316 172.217.169.131:80 ESTABLISHED keepalive (1.43/0/0)
tcp 0 0 10.0.2.15:44180 93.184.220.29:80 ESTABLISHED keepalive (1.68/0/0)
tcp 0 0 10.0.2.15:48634 34.216.3.76:443 ESTABLISHED keepalive (520.50/0/0)
tcp 0 0 10.0.2.15:34812 54.192.233.80:443 ESTABLISHED keepalive (1.43/0/0)
tcp 0 0 10.0.2.15:45164 54.192.233.83:443 ESTABLISHED off (0.00/0/0)
tcp 0 0 10.0.2.15:59456 216.58.206.202:443 ESTABLISHED off (0.00/0/0)
udp 0 0 10.0.2.15:68 10.0.2.2:67 ESTABLISHED off (0.00/0/0)
raw6 0 0 :::58 :::* 7 off (0.00/0/0)
Active UNIX domain sockets (servers and established)
Proto RefCnt Flags Type State I-Node Path
unix 3 [ ] DGRAM 10794 /run/systemd/notify
unix 2 [ ACC ] STREAM LISTENING 10797 /run/systemd/private
unix 2 [ ACC ] STREAM LISTENING 10799 /run/systemd/userdb/io.systemd.DynamicUser
unix 2 [ ACC ] STREAM LISTENING 10800 /run/systemd/io.system.ManagedOOM
unix 2 [ ACC ] STREAM LISTENING 14714 @/tmp/.X11-unix/X0
unix 2 [ ] DGRAM 12204 /run/systemd/journal/syslog
unix 2 [ ACC ] STREAM LISTENING 12206 /run/systemd/fsck.progress
unix 2 [ ACC ] STREAM LISTENING 15931 @/tmp/dbus-MQmmwJ21UX
unix 12 [ ] DGRAM 12210 /run/systemd/journal/dev-log
unix 2 [ ] DGRAM 14885 /run/user/0/systemd/notify
unix 7 [ ] DGRAM 12212 /run/systemd/journal/socket
unix 2 [ ACC ] STREAM LISTENING 14888 /run/user/0/systemd/private
unix 2 [ ACC ] STREAM LISTENING 12214 /run/systemd/journal/stdout
unix 2 [ ACC ] STREAM LISTENING 14894 /run/user/0/bus
unix 2 [ ACC ] SEQPACKET LISTENING 12216 /run/udev/control
unix 2 [ ACC ] STREAM LISTENING 14896 /run/user/0/gnupg/S.dirmngr
unix 2 [ ACC ] STREAM LISTENING 14898 /run/user/0/gnupg/S.gpg-agent.browser
unix 2 [ ACC ] STREAM LISTENING 14900 /run/user/0/gnupg/S.gpg-agent.extra
unix 2 [ ACC ] STREAM LISTENING 14902 /run/user/0/gnupg/S.gpg-agent.ssh
unix 2 [ ACC ] STREAM LISTENING 14904 /run/user/0/gnupg/S.gpg-agent
unix 2 [ ACC ] STREAM LISTENING 14906 /run/user/0/pulse/native
unix 2 [ ACC ] STREAM LISTENING 14715 /tmp/.X11-unix/X0
unix 2 [ ACC ] STREAM LISTENING 13414 /run/systemd/journal/io.systemd.journal
unix 2 [ ACC ] STREAM LISTENING 14955 /tmp/ssh-NXQ1T1Ov9B5C/agent.798
unix 2 [ ACC ] STREAM LISTENING 14975 /tmp/.ICE-unix/798
unix 2 [ ACC ] STREAM LISTENING 14974 @/tmp/.ICE-unix/798
unix 2 [ ACC ] STREAM LISTENING 12976 /run/dbus/system_bus_socket
unix 3 [ ] STREAM CONNECTED 17908 @/tmp/dbus-MQmmwJ21UX
unix 3 [ ] STREAM CONNECTED 15908 /run/user/0/bus
unix 3 [ ] STREAM CONNECTED 17971 /run/user/0/bus
unix 3 [ ] STREAM CONNECTED 16079 @/tmp/dbus-MQmmwJ21UX
unix 3 [ ] STREAM CONNECTED 16843
unix 3 [ ] STREAM CONNECTED 33815
unix 3 [ ] STREAM CONNECTED 36099
unix 3 [ ] STREAM CONNECTED 15260
unix 3 [ ] STREAM CONNECTED 17222
unix 3 [ ] STREAM CONNECTED 16069 @/tmp/dbus-MQmmwJ21UX
unix 3 [ ] STREAM CONNECTED 16006 /run/user/0/bus
unix 3 [ ] STREAM CONNECTED 33846
unix 3 [ ] STREAM CONNECTED 18459
unix 3 [ ] SEQPACKET CONNECTED 36098
unix 3 [ ] STREAM CONNECTED 36079
unix 3 [ ] STREAM CONNECTED 36090
unix 3 [ ] STREAM CONNECTED 16177 /run/dbus/system_bus_socket
unix 3 [ ] STREAM CONNECTED 17699
unix 3 [ ] STREAM CONNECTED 15935
unix 3 [ ] STREAM CONNECTED 18460 /run/systemd/journal/stdout
unix 3 [ ] SEQPACKET CONNECTED 36097
unix 3 [ ] STREAM CONNECTED 16961 /run/dbus/system_bus_socket
unix 3 [ ] STREAM CONNECTED 36088
unix 3 [ ] STREAM CONNECTED 17930 /run/user/0/bus
unix 3 [ ] STREAM CONNECTED 17668 /run/user/0/bus
unix 3 [ ] STREAM CONNECTED 16699 @/tmp/.X11-unix/X0
unix 3 [ ] STREAM CONNECTED 13225 /run/dbus/system_bus_socket
unix 3 [ ] STREAM CONNECTED 17909 /run/user/0/bus
unix 3 [ ] STREAM CONNECTED 15816 /run/systemd/journal/stdout
unix 3 [ ] STREAM CONNECTED 17962 /run/user/0/bus
unix 3 [ ] STREAM CONNECTED 16013 @/tmp/dbus-MQmmwJ21UX
unix 3 [ ] STREAM CONNECTED 33847
unix 3 [ ] STREAM CONNECTED 13184 /run/systemd/journal/stdout
unix 3 [ ] STREAM CONNECTED 36102
unix 3 [ ] STREAM CONNECTED 15311
unix 3 [ ] STREAM CONNECTED 15265 /run/dbus/system_bus_socket
...
iwctl internete bağlanmaya yarayan bir araçtır ve bilgisayrda defaulttan bulunmaz. Genellikle archlinux installationlarında kullanılır. Bu komutun hem interactive hem de terminal üzerinden tek komutla çalışan hali vardır. Ben burada tek komutla çalışan halini göstereceğim. Bu komutu kullanmaya başlamadan önce systemctl start iwd yapın Örnek kullanım:
┌──(root💀kali)-[~]
└─# iwctl station (ifconfigte çıkan wlan adaptörü) connect (network ismi)
Eğer network isminiziz bilmiyorsanız,
┌──(root💀kali)-[~]
└─# iwctl station (ifconfigte çıkan wlan adaptörü) scan
komutunu kullanırsanız aygıtınızın gördüğü tüm networkleri pritntletebilirsiniz.
Bazen ctf'lerde subdomain enumaration gibi görevler olduğundan dolayı /etc/hosts dosyasına bir domain eklemeniz gerekebilir. Örnek kullanım:
┌──(root💀kali)-[~]
└─# echo "127.0.0.1 localhost.localdomain localhost" >> /etc/hosts
DNS'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ı basit olarak openvpn komutuyla kullanılır. TryHackme gibi platformlarda CTF çözüleceği zaman openvpn ile CTF'i çözeceğimiz sitenin networküne bağlanmamız gerekiyor.
┌──(root💀kali)-[~/Downloads]
└─# openvpn thm.ovpn
UZUN UZUN YAZILAR...
2021-07-20 14:21:18 Initialization Sequence Completed
BAŞKA BİR TERMİNAL
┌──(root💀kali)-[~]
└─# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.0.2.15 netmask 255.255.255.0 broadcast 10.0.2.255
inet6 fe80::a00:27ff:fee2:8088 prefixlen 64 scopeid 0x20<link>
ether 08:00:27:e2:80:88 txqueuelen 1000 (Ethernet)
RX packets 15554 bytes 20477402 (19.5 MiB)
RX errors 29 dropped 0 overruns 0 frame 0
TX packets 9270 bytes 1090881 (1.0 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device interrupt 19 base 0xd020
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 16 bytes 800 (800.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 16 bytes 800 (800.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
tun0: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST> mtu 1500
inet 10.8.111.157 netmask 255.255.0.0 destination 10.8.111.157
inet6 fe80::d0b7:7f2a:379:c4a9 prefixlen 64 scopeid 0x20<link>
unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 500 (UNSPEC)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 1 bytes 48 (48.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
nmap aracı verilen ip'de verilen parametrelere göre tarama yapmayı sağlar. Genelde birlikte kullanılan argümanlar:
- -A: -sS -sC -sV
- -sF: FIN scani yapar
- -sX: XMAS scani yapar
- -sS: Syn/Ack scani yapar
- -sU: UDP scani yapar
- -sC: --script=default scani yapar
- -sV: Portlardaki servislerin taramasını yapar ve çıktısını verir
- -p-: Bütün portları tarar
- -O: İşletim sistemi taraması yapar
- --script: nmap scriptlerini çalıştırmaya yarar
- --script=vuln: Zaafiyet taraması yapar
- -Pn: host discovery'i atlar. Genelde CTF'lerde kullanılmaz
- -oA/-oN/-oX/-oS/-oG bunlardan biri sonra dosya adı örnek -oA dosya.txt
- -v: verbose
- -d: debug
- -T5: Taramayı hızlandırır Örnek Kullanım:
┌──(root💀kali)-[~]
└─# nmap -A 10.10.10.10
hashcat hash kırmak için kullanılır. Örnek kullanım:
┌──(root💀kali)-[~]
└─# echo 900150983cd24fb0d6963f7d28e17f72 > hash.txt
┌──(root💀kali)-[~]
└─# hashcat -m 0 hash.txt /usr/share/wordlists/rockyou.txt
uzun uzun outputlar
kırılmış hash: abc
NOT: -m hash'in formatını seçer
netcat komutu reverse shellere bağlanmak için kullanılır. Genelde birlikte kullanılan argümanlar:
- -l : dinleme modu
- -v : verbose
- -n : yalnızca numerik ipleri kabul et
- -p : port numarasını belirt Örnek kullanım:
┌──(root💀kali)-[~]
└─# nc -lvnp 53
listening on [any] 53 ...
53 portuna gelen bağlantıları dinle anlamına geliyor bu komut. ÖNERİ: netcat reverse shellini aldıktan sonra shelli biraz daha interaktif yapmanız için komutlar.
- export TERM=xterm
- python3 -c 'import pty; pty.spawn("/bin/bash")
- CTRL + Z
- stty raw -echo
- fg
gobuster 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 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 kullanıcı listesini, makina listesini, paylaşım listesini, şifre politikası bilgisini, grup ve üye listesini verir Örnek kullanım:
┌──(root💀kali)-[~]
└─# enum4linux -a
nikto internet sitesi açık arama tooludur. Örnek kullanım:
┌──(root💀kali)-[~]
└─# nikto -h 10.10.10.10
Sublist3r bir subdomain enumration tooludur. Genelde birlikte kullanılan argümanlar:
- -d domain : domaini veriyoruz
- -b : bruteforce modunu açar
- -p ports : portları aralarında , olacak şekilde veriyoruz örnek = -p 80,443
- -v : verbose
- -t thread sayısı Örnek kullanım:
┌──(root💀kali)-[~]
└─# sublist3r -b -d example.com
exiftool 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 kali repolarında default olarak yok ve 32 bit sistemlere kurulamıyor. https://github.com/RickdeJager/stegseek Buradan nasıl kurulacağına ve komutlarına ulaşabilirsiniz, kullanımı gayet basit.
metasploit hakkında detaylı bilgiyi offensive-security'nin sitesinden öğrenmeniz daha iyi olur. https://www.offensive-security.com/metasploit-unleashed/
burpsuite hakkında detaylı bilgiyi portswigger'ın sitesinden öğrenmeniz daha iyi olur. https://portswigger.net/burp/documentation/desktop/penetration-testing
Bunlar dışında öğrenmeniz gereken bir ton komut ve tool var ancak giriş için yukarıdakiler üç aşağı beş yukarı yeterli.
Örnek CTF writeupu: https://medium.com/@n30nx/mr-robot-ctf-writeup-29780c2ea2c5