Contents
Bu oyuna başlamak için bir SSH istemcisi kullanmalısınız. Ayrıca her seviyeye kendi şifrsei ile giriş yapmalısınız. İhtiyacınız olan tek şey bir terminal. Eğer windows kullanıyorsanız powershell ya da PuTTY ile bağlanabilirsiniz.
Sunucu: bandit.labs.overthewire.org
Bağlantı Noktası: 2200
Kullanıcı: bandit0
Bandit Level 0
http://overthewire.org/wargames/bandit/bandit0.html
Web sitelerinde bize bandit0 için kullanıcı adı ve şifre veriyorlar ve biz de bandit1 şifresini bulmamız gerekiyor. İlk ssh bağlantımız için sitede belirtildiği üzere "bandit0" kullanıcı adı ve "bandit0" şifresiyle giriş yapılacak.
ssh bandit0@bandit.labs.overthewire.org -p 2220
Kullanıcı adı: bandit0
Şifre: bandit0
Bandit Level 0 → Level 1
http://overthewire.org/wargames/bandit/bandit1.html
Bandit0 kullanıcısıyla oturum açtıktan sonra "ls" komutunu çalıştırdım ve "readme" adında bir dosya olduğunu gördüm. "cat readme" komutunu kullanarak dosyayı okudum. Bu bandit1'e giriş yapmak için verilen şifreyi içeriyor.
Kullanıcı adı: bandit1
Şifre: NH2SXQwcBdpmTEzi3bvBHMM9H66vVXjL
Bandit Level 1 → Level 2
http://overthewire.org/wargames/bandit/bandit2.html
Bandit2 kullanıcı şifresinin "-" adlı bir dosyada kayıtlı olduğu belirtiliyor. Hesaba giriş yaptığımda "ls" komutunu çalıştırdım ve dosyayı gördüm. Dosyayı okumak için birden fazla alternatif yol var:
- cat ./-
- cat <-
- more -
- cat '-'
Kullanıcı adı: bandit2
Şifre: rRGizSaX8Mk1RTb1CNQoXTcYZWU6lgzi
Bandit Level 2 → Level 3
http://overthewire.org/wargames/bandit/bandit3.html
Bandit3 kullanıcı şifresinin "spaces in this filename" adlı bir dosyada kayıtlı olduğu belirtiliyor. Hesaba giriş yaptığımda "ls" komutunu çalıştırdım ve dosyayı gördüm. Dosyayı okumak için birden fazla alternatif yol var:
- cat 'spaces in this filename'
- cat spaces\ in\ this\ filename
Kullanıcı adı: bandit3
Şifre: aBZ0W5EmUfAf7kHTQeOwd8bauFJ2lAiG
Bandit Level 3 → Level 4
http://overthewire.org/wargames/bandit/bandit4.html
Bandit4 kullanıcı şifresinin 'inhere' adlı dizininde gizli bir dosyada saklanıyor. Dosya ve dizinleri görmek için "ls" komutunu çalıştırdım, sonra inhere klasörüne gitmek için "cd" komutunu, tüm dosyaları (gizli olanları da) görmek için "ls -a" komutunu ve gizli dosyanın içeriğini görmek için "cat .hidden" komutunu kullandım.
Kullanıcı adı: bandit4
Şifre: 2EW7BBsr6aMMoJ2HjW067dm8EgX26xNe
Bandit Level 4 → Level 5
http://overthewire.org/wargames/bandit/bandit5.html
Bandit5 kullanıcı şifresinin 'inhere' klasörünün içinde bir dosyada saklanmaktadır. İçinde birden fazla dosya olduğu için tek tek okumak yerine, dosyalar hakkında bilgi almak istedim ve önce okunabilir metin olanları buldum. Şifre 'ASCII text' olan dosya da saklanmış.
bandit4@bandit:~$ ls
inhere
bandit4@bandit:~$ cd inhere/
bandit4@bandit:~/inhere$ ls
-file00 -file01 -file02 -file03 -file04 -file05 -file06 -file07 -file08 -file09
bandit4@bandit:~/inhere$ file ./-file0*
./-file00: data
./-file01: data
./-file02: data
./-file03: data
./-file04: data
./-file05: data
./-file06: data
./-file07: ASCII text
./-file08: data
./-file09: Non-ISO extended-ASCII text, with no line terminators
bandit4@bandit:~/inhere$ cat ./-file07
lrIWWI6bB37kxfiCQZqUdOIYfr6eEeqR
Kullanıcı adı: bandit5
Şifre: lrIWWI6bB37kxfiCQZqUdOIYfr6eEeqR
Bandit Level 5 → Level 6
http://overthewire.org/wargames/bandit/bandit6.html
Önce "inhere" klasörüne girdim ve ardından klasörleri görmek için "ls" komutunu çalıştırdım. İçinde bir sürü klasör ve bu klasörlerin içinde birden fazla dosya olduğunu fark ettim.
Her dosyayı okumak zorunda kalmamak için, bana verilen özellikleri kullanıp dosyayı aramanın bir yolunu bulmaya çalıştım. 'find' komuta baktığımda -size, -type ve -executable seçenekleri kullanabileceğimi düşündüm. Tüm bu parametreleri de find ile birleştirince istenilen dosyayı elde ettim.
bandit5@bandit:~/inhere$ find -type f -size 1033c ! -executable
./maybehere07/.file2
bandit5@bandit:~/inhere$ cat ./maybehere07/.file2
P4L4vucdmLnm8I7Vl7jG1ApGSfjYKqJU
Kullanıcı adı: bandit6
Şifre: P4L4vucdmLnm8I7Vl7jG1ApGSfjYKqJU
Bandit Level 6 → Level 7
http://overthewire.org/wargames/bandit/bandit7.html
Bu level için find ile -user, -group, -size parametrelerini kullanarak bandit7 kullanıcısına ve bandit6 grubuna ait; 33 byte boyutunda bir dosyayı aradım. Parametreleri istenildiği gibi kullanarak dosyayı okudum.
bandit6@bandit:~$ find / -user bandit7 -group bandit6 -size 33c 2>/dev/null
/var/lib/dpkg/info/bandit7.password
bandit6@bandit:~$ cat /var/lib/dpkg/info/bandit7.password
z7WtoNQU2XfjmMtWA8u5rN4vzqu4v99S
Kullanıcı adı: bandit7
Şifre: z7WtoNQU2XfjmMtWA8u5rN4vzqu4v99S
Bandit Level 7 → Level 8
http://overthewire.org/wargames/bandit/bandit8.html
Bir sonraki seviyenin şifresi, 'data.txt' dosyasında "millionth" kelimesinin yanında saklanıyor.
data.txt dosyasınu okuduğumda bir sürü kelime ve kelimelerin yanında şifre bulnuyordu. Tüm satırlar aynı yapıya sahipmiş gibi görünüyordu. Bize verilen ipucu aslında kolayca bulmamı sağladı. 'grep' ile "millionth" kelimesini aradım.
bandit7@bandit:~$ cat data.txt | grep millionth
millionth TESKZC0XvTetK0S9xNwm25STk5iWrBvP
Kullanıcı adı: bandit8
Şifre: TESKZC0XvTetK0S9xNwm25STk5iWrBvP
Bandit Level 8 → Level 9
http://overthewire.org/wargames/bandit/bandit9.html
'data.txt' dosyasındaki verileri sıralayıp, benzersiz olanları bulmak için 'sort' ve 'uniq' komutlarını kullandım. Tekrar etmeyenleri satırları yazdırmak için de uniq ile '-u' parametresini kullandım.
bandit8@bandit:~$ sort data.txt | uniq -u
EN632PlfYiZbn3PhVK3XOGSlNInNE00t
Kullanıcı adı: bandit9
Şifre: EN632PlfYiZbn3PhVK3XOGSlNInNE00t
Bandit Level 9 → Level 10
http://overthewire.org/wargames/bandit/bandit10.html
Dosyayı okumaya çalıştığımda düz bir metin olmadığını ve karışık karakterler içerdiğini gördüm. Metinden okunabilir kelimeleri seçmek için 'strings' komutunu çalıştırdım. Ayrıca bize verilen bilgi ile '=' işareti ile başlayan satırları yazdırmak için grep kullanabiliriz.
bandit9@bandit:~$ cat data.txt | strings | grep ^=
========== password
========== is
=TU%
=^,T,?
========== G7w8LIi6J3kTb8A7j9LgrywtEUlyyp6s
Kullanıcı adı: bandit10
Şifre: G7w8LIi6J3kTb8A7j9LgrywtEUlyyp6s
Bandit Level 10 → Level 11
http://overthewire.org/wargames/bandit/bandit11.html
'data.txt' base64 ile kodlanmış bir satır içeriyor. Deşifre etmek için base64 ile '-d' parametresini kullandım.
bandit10@bandit:~$ cat data.txt
VGhlIHBhc3N3b3JkIGlzIDZ6UGV6aUxkUjJSS05kTllGTmI2blZDS3pwaGxYSEJNCg==
bandit10@bandit:~$ cat data.txt | base64 -d
The password is 6zPeziLdR2RKNdNYFNb6nVCKzphlXHBM
Kullanıcı adı: bandit11
Şifre: 6zPeziLdR2RKNdNYFNb6nVCKzphlXHBM
Referanslar:
Bandit Level 11 → Level 12
http://overthewire.org/wargames/bandit/bandit12.html
'data.txt' dosyası ROT13 algoritmasıyla şifrelenmiş olduğunu farkettim. ROT13 şifresini çözmek için her harfi 13 karakter ilerideki harfle değiştirmek gerekiyor. Tek tek uğraşmak yerine bir siteden yardım alarak bunu çözebiliriz(ref).
bandit11@bandit:~$ cat data.txt
Gur cnffjbeq vf WIAOOSFzMjXXBC0KoSKBbJ8puQm5lIEi
Kullanıcı adı: bandit12
Şifre: JVNBBFSmZwKKOP0XbFXOoW8chDz5yVRv
Referanslar:
Bandit Level 12 → Level 13
http://overthewire.org/wargames/bandit/bandit13.html
Bu bölüm baştan beri canımı sıkmış olsada sonunda şifreyi buldum. Dosyayı tekrar tekrar sıkıştırılmış hexdump olan data.txt dosyasında saklanmaktadır.
Bu seviyede '/tmp' altında çalışabileceğimiz bir dizin oluşturmamız gerekiyor. Örneğin: mkdir /tmp/myname123
. Ardından, cp dosyasını bu dizine kopyalayın ve mv kullanarak yeniden adlandırın.
bandit12@bandit:~$ mkdir /tmp/myname123
bandit12@bandit:~$ cp data.txt /tmp/myname123
bandit12@bandit:~$ cd /tmp/myname123
bandit12@bandit:/tmp/myname123$ ls
data.txt
Dosyanın hexdump'ını çözebilmek için 'xxd' uygulaması ile '-r' parametresini çalıştırdım. Bu komut, hexdump'ı tersine çevirir.
bandit12@bandit:/tmp/myname123$ xxd -r data.txt > dump.txt
İpucuda bize dosyanın birden çok kez sıkıştırıldığı söyleniyor. Bu nedenle hangi sıkıştırma yönteminin kullanıldığını bulmak için 'file' komutunu kullandım.
bandit12@bandit:/tmp/myname123$ file dump.txt
dump.txt: gzip compressed data, was "data2.bin", last modified: Sun Apr 23 18:04:23 2023,
max compression, from Unix, original size modulo 2^32 581
gzip ile sıkıştırıldığını görüyoruz. İçeriğini görmek için dosyanın uzantısına '.gz' ekledim. Ardından onu açmak için 'gunzip' komutunu çalıştırdım. Tekrar tekrar sıkıştırıldığını bildiğim için 'file' ile kontrol ettim.
bandit12@bandit:/tmp/myname123$ mv dump.txt dump.txt.gz
bandit12@bandit:/tmp/myname123$ gunzip dump.txt.gz
bandit12@bandit:/tmp/myname123$ ls
data.txt dump.txt
bandit12@bandit:/tmp/myname123$ file *
data.txt: ASCII text
dump.txt: bzip2 compressed data, block size = 900k
bzip2 ile sıkıştırılmış olduğunu görüyorum. Bu nedenle uzantıya '.bz2' ekleyerek dosyayı açmak için 'bzip2'yi '-d' parametresi ile çalıştırdım. Başka bir dosya oluştu ve yine 'file' ile kontrol ettim.
bandit12@bandit:/tmp/myname123$ mv dump.txt dump.bz2
bandit12@bandit:/tmp/myname123$ bzip2 -d dump.bz2
bandit12@bandit:/tmp/myname123$ file *
data.txt: ASCII text
dump: gzip compressed data, was "data4.bin", last modified: Sun Apr 23 18:04:23 2023,
max compression, from Unix, original size modulo 2^32 20480
Görünüşe göre tekrar gzip kullanıldı. Bu şekilde defalarca sıkıştırılan dosyayı aynı işlemleri yukarıda yaptığım şekilde devam ettirdim. En sonunda 'data8' ASCII text dosyası olarak okunabilir bir hâle geldi.
bandit12@bandit:/tmp/myname123$ mv dump dump.gz
bandit12@bandit:/tmp/myname123$ gunzip dump.gz
bandit12@bandit:/tmp/myname123$ file *
data.txt: ASCII text
dump: POSIX tar archive (GNU)
bandit12@bandit:/tmp/myname123$ mv dump dump.tar
bandit12@bandit:/tmp/myname123$ tar -xf dump.tar
bandit12@bandit:/tmp/myname123$ file *
data5.bin: POSIX tar archive (GNU)
data.txt: ASCII text
dump.tar: POSIX tar archive (GNU)
bandit12@bandit:/tmp/myname123$ mv data5.bin data5.tar
bandit12@bandit:/tmp/myname123$ tar -xf data5.tar
bandit12@bandit:/tmp/myname123$ file *
data5.tar: POSIX tar archive (GNU)
data6.bin: bzip2 compressed data, block size = 900k
data.txt: ASCII text
dump.tar: POSIX tar archive (GNU)
bandit12@bandit:/tmp/myname123$ mv data6.bin data6.bz2
bandit12@bandit:/tmp/myname123$ bzip2 -d data6.bz2
bandit12@bandit:/tmp/myname123$ file *
data5.tar: POSIX tar archive (GNU)
data6: POSIX tar archive (GNU)
data.txt: ASCII text
dump.tar: POSIX tar archive (GNU)
bandit12@bandit:/tmp/myname123$ mv data6 data6.tar
bandit12@bandit:/tmp/myname123$ tar -xf data6.tar
bandit12@bandit:/tmp/myname123$ file *
data5.tar: POSIX tar archive (GNU)
data6.tar: POSIX tar archive (GNU)
data8.bin: gzip compressed data, was "data9.bin", last modified: Sun Apr 23 18:04:23 2023,
max compression, from Unix, original size modulo 2^32 49
data.txt: ASCII text
dump.tar: POSIX tar archive (GNU)
bandit12@bandit:/tmp/myname123$ mv data8.bin data8.gz
bandit12@bandit:/tmp/myname123$ gunzip data8.gz
bandit12@bandit:/tmp/myname123$ file *
data5.tar: POSIX tar archive (GNU)
data6.tar: POSIX tar archive (GNU)
data8: ASCII text
data.txt: ASCII text
dump.tar: POSIX tar archive (GNU)
bandit12@bandit:/tmp/myname123$ cat data8
The password is wbWdlBxEir4CaE8LaPhauuOo6pwRmrDw
Kullanıcı adı: bandit13
Şifre: wbWdlBxEir4CaE8LaPhauuOo6pwRmrDw
Bandit Level 13 → Level 14
http://overthewire.org/wargames/bandit/bandit14.html
İpucuda bahsettiği üzere SSH anahtarını sshkey.private adlı bir dosyada gördüm. 'bandit14' kullanıcısının profiline girmek için bu anahtarı kullanmalıyız. Bunun için 'ssh' komutunu '-i' parametresini kullanarak çalıştırdım. Ardından söylenildiği üzere '/etc/bandit_pass/bandit14' dosyasını okuyarak şifreyi yazdırdım.
bandit13@bandit:~$ ssh -i sshkey.private bandit14@bandit.labs.overthewire.org -p 2220
bandit14@bandit:~$ whoami
bandit14
bandit14@bandit:~$ cat /etc/bandit_pass/bandit14
fGrHPx402xGC7U7rXKDaxiWFTOiF0ENq
Kullanıcı adı: bandit14
Şifre: fGrHPx402xGC7U7rXKDaxiWFTOiF0ENq
Bandit Level 14 → Level 15
http://overthewire.org/wargames/bandit/bandit15.html
İpucuya göre localhost'ta 30000 numaralı port'tan bağlantı kurmamız ve elimizdeki şifreyi göndermemiz gerekiyor. Bunu yapmak için 'nc' çalıştırdım. Bağlandığımı görünce 'bandit14' şifresini yapıştırdım ve ardından şifreyi aldım.
bandit14@bandit:~$ nc localhost 30000
fGrHPx402xGC7U7rXKDaxiWFTOiF0ENq
Correct!
jN2kgmIXJ6fShzhT2avhotn4Zcka6tnt
Kullanıcı adı: bandit15
Şifre: jN2kgmIXJ6fShzhT2avhotn4Zcka6tnt
Bandit Level 15 → Level 16
http://overthewire.org/wargames/bandit/bandit16.html
Soruyla ilgili bilgileri çevirdiğimde –>
Faydalı not: "KALP ATIYOR" ve "R BLOKUNU Oku" alıyor musunuz? -ign_eof kullanın ve kılavuz sayfasındaki "BAĞLANTILI KOMUTLAR" bölümünü okuyun. "R" ve "Q" ile birlikte, "B" komutu da o komutun bu versiyonunda çalışıyor…
'openssl' ile 30001 bağlantı noktasına bağlanmayı denedim ve bandit15'in şifresini yazdım ve bandit16'ın şifresini buldum. 'ign_eof' kullanmamız gerektiği söylense de, onu kullanmadan da şifreye ulaşabildik. Ancak genel anlamda 'ign_eof' veri girişini sonlandırmadan devam etmemizi sağlıyor. man page: "Girişin sonuna ulaşıldığında bağlantının kapatılmasını engeller."
bandit15@bandit:~$ openssl s_client -connect localhost:30001
...
---
read R BLOCK
jN2kgmIXJ6fShzhT2avhotn4Zcka6tnt
Correct!
JQttfApK4SeyHwDlI9SXGR50qclOAil1
closed
Kullanıcı adı: bandit16
Şifre: JQttfApK4SeyHwDlI9SXGR50qclOAil1