Level 0 SSH Bağlantısı
🎯 Hedef
Bandit sunucusuna SSH ile bağlanmak
Komutlar
ssh bandit0@bandit.labs.overthewire.org -p 2220
Şifre: bandit0
📝 SSH Parametreleri
| Parametre | Açıklama |
|---|---|
ssh |
Secure Shell - Güvenli uzak bağlantı protokolü |
kullanıcı@sunucu |
Bağlanılacak kullanıcı adı ve sunucu adresi |
-p PORT |
p (port): Port numarası belirt (varsayılan: 22) |
-i dosya |
i (identity): SSH private key dosyası |
-v |
v (verbose): Detaylı çıktı (debug için) |
-l kullanıcı |
l (login): Kullanıcı adı (alternatif sözdizimi) |
-X |
X11 forwarding (GUI uygulamalar için) |
-L port:host:hostport |
Local port forwarding (tünel) |
💡 SSH Kullanım Örnekleri
ssh user@192.168.1.10- IP ile bağlanssh -p 2222 user@example.com- Özel portssh -i ~/.ssh/id_rsa user@server- Key dosyası ilessh user@server "ls -la"- Tek komut çalıştır ve çık
Level 0 → 1 Dosya Okuma
🎯 Hedef
Ana dizindeki readme dosyasını okuyarak bir sonraki şifreyi bul
Komutlar
ls ls -la
cat readme
📝 Komut Açıklamaları
| Komut/Parametre | Açıklama |
|---|---|
ls |
List - Dosya ve dizinleri listele |
ls -l |
-l (long format): Detaylı liste (izinler, sahip, boyut, tarih) |
ls -a |
-a (all): Gizli dosyaları da göster (. ile başlayanlar) |
ls -la |
-l + -a: Gizli dosyalar dahil detaylı liste |
cat dosya |
Concatenate - Dosya içeriğini ekrana yazdır |
💡 Diğer Faydalı ls Parametreleri
ls -h- Human readable: Dosya boyutlarını okunabilir formatta göster (KB, MB)ls -t- Time: Değiştirilme tarihine göre sıralals -r- Reverse: Ters sırada listelels -lah- Tüm parametreleri birleştir
Level 1 → 2 Özel Karakterli Dosya
🎯 Hedef
Tire (-) karakteri ile başlayan dosyayı okumak
Problem
Dosya adı - olduğunda normal cat - komutu çalışmaz (stdin olarak algılanır)
Çözüm Yöntemleri
cat ./-
cat < -
💡 İpucu
./ öneki, dosyanın mevcut dizinde olduğunu belirtir ve özel karakter sorununu çözer.
Level 2 → 3 Boşluklu Dosya Adı
🎯 Hedef
İçinde boşluk olan dosya adını okumak: spaces in this filename
Çözüm Yöntemleri
cat "spaces in this filename"
cat spaces\ in\ this\ filename
cat spa[TAB tuşuna bas]
📝 Açıklama
" ": Tırnak içindeki her şey tek kelime olarak algılanır\: Escape karakteri - sonraki karakteri özel olarak yorumlaTAB: Otomatik tamamlama - dosya adını otomatik doldurur
Level 3 → 4 Gizli Dosya
🎯 Hedef
inhere dizinindeki gizli dosyayı bul
Komutlar
cd inhere
ls -la
cat .hidden
📝 Dizin Gezinme Komutları
| Komut | Açıklama |
|---|---|
cd dizin |
Change Directory - Belirtilen dizine geç |
cd .. |
Bir üst dizine çık |
cd ~ |
Home (ev) dizinine git |
cd / |
Root (kök) dizine git |
cd - |
Önceki dizine geri dön |
pwd |
Print Working Directory - Mevcut dizini göster |
📝 Gizli Dosyalar
Linux'ta . ile başlayan dosyalar gizli kabul edilir.
.hidden- Gizli dosya.bashrc- Bash konfigürasyon dosyası.ssh/- SSH ayarları dizinils -a- Gizli dosyaları gösterir
Level 4 → 5 İnsan Tarafından Okunabilir Dosya
🎯 Hedef
inhere dizininde 10 dosya var. Hangisi ASCII text formatında?
Komutlar
cd inhere
file ./*
file ./* | grep "ASCII text" cat ./-file07
📝 Dosya Tipi Belirleme Komutları
| Komut/Parametre | Açıklama |
|---|---|
file dosya |
Dosya tipini belirle (içeriğine bakarak) |
file * |
Mevcut dizindeki tüm dosyaların tipini göster |
file ./* |
Gizli dosyalar dahil tüm dosyaların tipi |
* |
Wildcard - Tüm dosyaları temsil eder |
| |
Pipe - Bir komutun çıktısını diğer komuta gönder |
grep "text" |
Çıktıda "text" içeren satırları filtrele |
📋 Yaygın Dosya Tipleri
ASCII text- Metin dosyası (okunabilir)data- Binary veri (okunabilir değil)executable- Çalıştırılabilir dosyadirectory- Dizinsymbolic link- Sembolik bağlantıempty- Boş dosya
💡 Pipe (|) Kullanım Örneği
# Komut parçalara ayrılışı: file ./* → Tüm dosyaların tipini göster | → Çıktıyı bir sonraki komuta gönder grep "ASCII text" → Sadece ASCII text içeren satırları al
Level 5 → 6 Özel Özelliklere Sahip Dosya
🎯 Hedef
Şu özelliklere sahip dosyayı bul:
- İnsan tarafından okunabilir
- 1033 bytes boyutunda
- Çalıştırılabilir değil
Komutlar
cd inhere find . -type f -size 1033c ! -executable
find . -type f -size 1033c -readable ! -executable -exec file {} \;
cat ./maybehere07/.file2
📝 Find Komut Parametreleri
| Parametre | Açıklama |
|---|---|
. |
Mevcut dizinden başla (başlangıç noktası) |
-type f |
f (file): Sadece dosyalar (dizinler hariç) |
-type d |
d (directory): Sadece dizinler |
-size 1033c |
1033 byte boyutunda dosyalar (c = bytes/characters) |
! -executable |
! (NOT): Çalıştırılabilir OLMAYAN dosyalar |
-readable |
Okunabilir izne sahip dosyalar |
-exec |
Bulunan her dosya için komut çalıştır |
{} |
Bulunan dosya adını temsil eder |
\; |
-exec komutunun sonu |
💡 Find Boyut Birimleri
c- bytes (characters)k- kilobytes (1024 bytes)M- megabytes (1024 KB)G- gigabytes (1024 MB)
🔍 Diğer Faydalı Find Parametreleri
-name "*.txt"- Dosya adına göre ara (wildcard destekler)-iname "*.TXT"- Büyük/küçük harf duyarsız arama-mtime -7- Son 7 gün içinde değiştirilen dosyalar-user bandit7- Belirli kullanıcıya ait dosyalar-perm 644- Belirli izinlere sahip dosyalar
Level 6 → 7 Sunucu Genelinde Arama
🎯 Hedef
Sunucunun herhangi bir yerinde şu özelliklere sahip dosyayı bul:
- bandit7 kullanıcısına ait
- bandit6 grubuna ait
- 33 bytes boyutunda
Komutlar
find / -type f -user bandit7 -group bandit6 -size 33c 2>/dev/null
cat /var/lib/dpkg/info/bandit7.password
📝 Açıklama
| Parametre | Açıklama |
|---|---|
/ |
Root (kök) dizinden başla - tüm sistemi tara |
-user bandit7 |
Dosya sahibi bandit7 olan dosyaları bul |
-group bandit6 |
Grup sahibi bandit6 olan dosyaları bul |
-size 33c |
Tam olarak 33 byte boyutunda dosyalar |
2> |
Standart hata çıktısını (stderr) yönlendir |
/dev/null |
"Çöp kutusu" - gönderilen her şeyi sil/yok say |
💡 Hata Yönlendirme (Redirection) Detayları
| Yönlendirme | Açıklama |
|---|---|
1 |
stdout - Standart çıktı (normal mesajlar) |
2 |
stderr - Standart hata (error mesajları) |
> |
Yönlendir (üzerine yaz) |
>> |
Yönlendir (sona ekle) |
2>/dev/null |
Hataları gizle (Permission denied vb.) |
2>&1 |
Hataları normal çıktıyla birleştir |
&>/dev/null |
Hem stdout hem stderr'i gizle (tüm çıktı) |
📌 Örnekler
command > output.txt- Çıktıyı dosyaya yazcommand 2> errors.txt- Hataları dosyaya yazcommand &> all.txt- Her şeyi dosyaya yazcommand >> log.txt- Dosyanın sonuna ekle
Level 7 → 8 Büyük Dosyada Kelime Arama
🎯 Hedef
data.txt dosyasında "millionth" kelimesinin yanındaki şifreyi bul
Komutlar
grep "millionth" data.txt
grep "millionth" data.txt | awk '{print $2}'
📝 Grep Parametreleri
| Parametre | Açıklama |
|---|---|
grep "kelime" dosya |
Dosyada kelime ara ve içeren satırları göster |
grep -i |
i (ignore case): Büyük/küçük harf duyarsız arama |
grep -v |
v (invert): Eşleşmeyenleri göster (tersi) |
grep -n |
n (number): Satır numaralarını göster |
grep -c |
c (count): Eşleşen satır sayısını göster |
grep -r |
r (recursive): Dizinlerde özyinelemeli ara |
grep -w |
w (word): Tam kelime eşleşmesi (kelime sınırları) |
grep -A 3 |
A (after): Eşleşmeden sonraki 3 satırı da göster |
grep -B 3 |
B (before): Eşleşmeden önceki 3 satırı da göster |
grep -C 3 |
C (context): Önceki ve sonraki 3 satırı göster |
🔧 AWK Komutu
awk '{print $2}'- İkinci sütunu (kelimeyi) yazdır$1, $2, $3- Sütun numaraları (boşluklarla ayrılmış)$0- Tüm satır$NF- Son sütun
📌 Grep Örnekleri
grep -i "error" log.txt- ERROR, error, Error hepsini bulgrep -n "TODO" *.js- Tüm .js dosyalarında TODO ara, satır no göstergrep -r "password" /etc/- /etc dizininde password aragrep -v "^#" config.txt- Yorum satırlarını (# ile başlayan) gösterme
Level 8 → 9 Benzersiz Satır Bulma
🎯 Hedef
data.txt dosyasında sadece bir kez geçen satırı bul
Komutlar
sort data.txt | uniq -u
# Tekrar sayılarını göster sort data.txt | uniq -c | sort -n # Sadece 1 kez geçenleri al sort data.txt | uniq -c | grep "^ *1 "
📝 Sort Parametreleri
| Parametre | Açıklama |
|---|---|
sort |
Satırları alfabetik olarak sırala (A-Z) |
sort -r |
r (reverse): Ters sırada (Z-A) |
sort -n |
n (numeric): Sayısal sıralama (1,2,10 yerine doğru sıra) |
sort -k 2 |
k (key): 2. sütuna göre sırala |
sort -u |
u (unique): Sırala ve tekrarları kaldır |
sort -t ',' |
t (delimiter): Ayırıcı karakter belirt (CSV için) |
📝 Uniq Parametreleri
| Parametre | Açıklama |
|---|---|
uniq |
Ardışık tekrarlanan satırları kaldır (1 tane bırak) |
uniq -u |
u (unique): Sadece benzersiz olanları göster (tekrar edilmeyenler) |
uniq -d |
d (duplicates): Sadece tekrar edenleri göster |
uniq -c |
c (count): Her satırın kaç kez geçtiğini göster |
uniq -i |
i (ignore case): Büyük/küçük harf duyarsız |
⚠️ Önemli Not
uniq komutu sadece ardışık (yan yana) tekrarları tespit eder!
# YANLIŞ - çalışmaz cat dosya.txt | uniq -u # DOĞRU - önce sırala cat dosya.txt | sort | uniq -u
📌 Pipe (|) Zinciri Açıklaması
sort data.txt | uniq -c | sort -n
sort data.txt- Dosyayı sırala| uniq -c- Tekrar sayılarını hesapla| sort -n- Sayısal olarak sırala (en az tekrarlananlar önce)
Level 9 → 10 Binary Dosyada Metin Arama
🎯 Hedef
data.txt binary dosyasında birkaç = karakteri ile başlayan insan tarafından okunabilir metni bul
Komutlar
strings data.txt
strings data.txt | grep "=="
strings data.txt | grep "^=="
📝 Strings Komutu Parametreleri
| Parametre | Açıklama |
|---|---|
strings dosya |
Binary dosyadaki okunabilir ASCII metinleri çıkar |
strings -n 10 |
n: Minimum karakter uzunluğu (varsayılan 4) |
strings -a |
a (all): Tüm dosyayı tara (sadece data section değil) |
strings -e l |
e (encoding): Karakter kodlaması (s=single, l=little, b=big) |
strings -t x |
t (radix): Offset'i göster (o=octal, x=hex, d=decimal) |
💻 Kullanım Senaryoları
- Çalıştırılabilir dosyalarda gizli mesajlar bulmak
- Kötü amaçlı yazılım analizi
- Dosyalarda URL, email, şifre aramak
- Resim dosyalarında meta data bulmak
� Regex (Regular Expression) Temelleri
| Sembol | Açıklama | Örnek |
|---|---|---|
^ |
Satır başı | ^== → == ile başlayan satırlar |
$ |
Satır sonu | txt$ → txt ile biten satırlar |
. |
Herhangi bir karakter | a.b → axb, a5b, a b eşleşir |
* |
0 veya daha fazla | ab*c → ac, abc, abbc |
+ |
1 veya daha fazla | ab+c → abc, abbc (ac değil) |
? |
0 veya 1 (opsiyonel) | colou?r → color, colour |
[abc] |
Karakter seti | [aeiou] → herhangi bir sesli harf |
[^abc] |
Değil (NOT) | [^0-9] → rakam olmayan |
[a-z] |
Aralık | [a-zA-Z] → tüm harfler |
| |
VEYA (OR) | cat|dog → cat veya dog |
\ |
Escape (özel karakteri normal karakter yap) | \. → nokta karakteri |
📌 Pratik Regex Örnekleri
grep "^#"- # ile başlayan satırlar (yorumlar)grep "[0-9]\{3\}-[0-9]\{4\}"- Telefon numarası formatıgrep "^$"- Boş satırlargrep -E "error|warning|fail"- VEYA operatörü (-E extended regex)grep "[A-Z][a-z]*"- Büyük harfle başlayan kelimeler
📚 Komut Özet Tablosu
| Level | Ana Komut | Öğrenilen Kavram |
|---|---|---|
| 0 → 1 | cat, ls |
Temel dosya okuma |
| 1 → 2 | cat ./- |
Özel karakterli dosyalar |
| 2 → 3 | cat "dosya adı" |
Boşluklu dosya adları |
| 3 → 4 | ls -la |
Gizli dosyalar |
| 4 → 5 | file |
Dosya tipi belirleme |
| 5 → 6 | find -size -executable |
Gelişmiş dosya arama |
| 6 → 7 | find -user -group |
Kullanıcı/grup filtreleme |
| 7 → 8 | grep |
Metin arama |
| 8 → 9 | sort | uniq -u |
Benzersiz satır bulma |
| 9 → 10 | strings |
Binary dosya analizi |
💡 Genel İpuçları ve En İyi Pratikler
🔍 Dosya Arama Teknikleri
findkomutu dosya sistemi araması için en güçlü araçlocatedaha hızlı ama veritabanı güncel olmayabilirwhichçalıştırılabilir dosyaların PATH'te nerede olduğunu bulur
📝 Metin İşleme
grep- Metin arama ve filtrelemeawk- Sütun bazlı işlemlersed- Metin değiştirme ve düzenlemecut- Belirli alanları kesme
🔗 Pipe (|) Kullanımı
Komutları zincirleyerek güçlü işlemler yapın:
cat dosya.txt | grep "aranan" | sort | uniq | wc -l
⚡ Klavye Kısayolları
Ctrl+C- Komutu iptal etCtrl+Z- Komutu arka plana atCtrl+R- Komut geçmişinde araTAB- Otomatik tamamlama↑/↓- Önceki/sonraki komut