Makinenizde hali hazırda bir KVM/QEMU sanallaştırma ortamınız olduğunu varsayıyor
olacağım, ancak yoksa, distronuzdaki qemu
ve libvirt
paketlerini kurarak bunu yapabilirsiniz.
Şimdi lab dosya sistemine ve bir kernele ihtiyacınız var.
Aşağıdaki arşivde hazır bir dosya sistemi ve de kernel binarysi bulabilirsiniz:
- o101.tar.gz (524MB - Arşivden çıkarınca 6GB)
- PGP imzası: o101.tar.gz.sig
- SHA256 imzası:
a8cea6c918c65ef7dc7dcfc0db48b22b3cb7b2fdd474396397d008eebbbac3f5
İndirdikten ve de doğruladıktan sonra, dist
isimli bir dizin oluşturup, arşivi içine taşıyın
ve çıkartın:
mkdir -pv dist
mv o101.tar.gz dist
cd dist
tar xvf o101.tar.gz
Root dosya sistemini oluşturmak için debootstrap
aracını kurduktan sonra, kaynak dizininde make
çalıştırarak
dosya sistemini oluşturabilirsiniz. Kernel'i derlemek adına kendiniz manual olarak derleme yapabilirsiniz,
ya da yazdığım küçük bir otomasyon scripti olan kbuild aracını kullanabilirsiniz.
Root sistem ve de kernel hazır ise make qemu
ile QEMU/KVM sistemini başlatabilirsiniz. Eğer 2GB'dan daha az
serbest RAM'iniz varsa, sizi uyarıyım, makine çok yavaş olacaktır ancak scripts/qemu.sh
scripti editleyip 2GB'den daha az RAM kullanabilirsiniz.
Sistem açılınca kullanıcı adı olarak root
ve parola olarak o101root
ile giriş yapabilirsiniz,
ancak daha stabil bir shell istiyorsanız aynı kullanıcı ve parola ile port 2222'de SSH'a bağlanın:
ssh [email protected] -p 2222
Benim önerim SSH'ı kullanmanız olacaktır.
Sisteme girdikten sonra ev dizininde (/root
), tüm yapıcağımız pratiklere erişebilirsiniz.
Her pratik için Makefile
programı derlemek için gerekli komutları içerirken, .c
dosyaları
programın kaynak kodunu içerir.
Bir pratiği derlemek için make
komutunu kullanabilirsiniz. Bu Makefile
da belirtilen şekilde
kaynak dosyalarını derleyip, pratiğin adı ile aynı isme sahip bir .elf
programı oluşturacaktır.
Ve evet makinede vim
editörü ve tmux
çoklu pencere yöneticisi ile beraber exploitinizi
derlemek için gerekli olacak temel araçlar mevcut. Yani onları indirmek ile uğraşmak zorunda değilsiniz.
Yine de birşey indirmek isterseniz, Debian GNU/Linux dağıtımının apt
paket yöneticisini kullanabilirsiniz:
apt install <paket adı>
Daha fazla bilgi için bu manual sayfasına göz atın.
İlk pratiğe geçmeden önce hemen birkaç şeyden bahsetmek istiyorum. İlk olarak tüm pratiklerin çözümleri,
src/solves
dizini altında bulunuyor. Bu çözüm scriptleri makineye dahil değil, bunun sebebi
exploitleri bu rehberi takip ederek kendiniz sıfırdan oluşturmanızı istemem. Bu sayede benimle beraber kendi exploitlerinizi
yazarak herşeyi temel olarak anlayabilirsiniz.
Ayrıca rehberler içinde verilen kod parçalarını doğrudan kullanmayınız. Özellikle dinamik olarak hesaplanan adresler eski olabileceğinden doğrudan çalışmıyacaktır. Adresleri rehberde gösterilen şekilde kendiniz hesaplamanız gerekecektir.