DVWA – Web Hacking Labs. – 1 Laboratuvar Kurulumu
Bu yazı dizisi uzun uzadıya anlatacağım, derinlemesine dalış yapacağımız bir yazı dizisi olacak. Yazı dizisi boyunca kendi labaratuarımızı kurup, bu labaratuarda bulunan web uygulamasına saldıracağız. Böylelikle yazı dizisi tamamlandığında SQL Injection, XSS (Stored, Reflected), File Inclusion, Command Execution, CSRF ve Brute Force saldırılarını enine boyune kurcalayacak ve pratikte bu saldırıları gerçekleştireceğiz.
Hemen ardından bir üst segment olan yazılım güvenliği ve güvenli kod geliştirme taraflarına eğilerek, bu tarz saldırıların kaynak kod seviyesinde engellenmesi kısımlarına değineceğiz.
Bu giriş makalemizde DVWA (Damn Vulnerable Web Application) Web Hacking Labaratuar’ının kurulumunu ve konfigürasyonunu konu alacağım. Makale serisini konu başlıklarından ve konu numaralarından takip edebilirsiniz. (Arada başka konular üzerine de makale yazacağımdan dolayı karışmasın)
İhtiyaç Listemiz aşağıdaki gibi olacaktır.
- VMware Workstation, Hyper-V yada Virtual Box (Ben VMware’e göre anlatacağım.)
- Ubuntu 14.04 Desktop Editon (Centos vb kullanılabilir, ben Ubuntu üzerinden anlatacağım)
- 32Bit – http://releases.ubuntu.com/14.04/ubuntu-14.04.1-desktop-i386.iso
- 64Bit – http://releases.ubuntu.com/14.04/ubuntu-14.04.1-desktop-amd64.iso
- LAMP Server (Apache2, MySql, PHP5, phpMyAdmin)
- DVWA
- https://github.com/RandomStorm/DVWA/archive/v1.0.8.zip
İhtiyaç listemizdekileri indirdikten sonra sırası ile kurulum ve konfigürasyonlara başlayabiliriz.
Adım 1: VMware Üzerine Ubuntu Kurulumu
VMware Workstation’ın File menüsünden “New Virtual Machine” veya CTRL + N tuş kombinasyonu ile yeni bir sanal makina oluşturmayı seçelim.
New Virtual Machine seçeneği Resim-01’deki gibi gelecektir. “Custom (advanced)”I seçip Next ile ilerleyelim.
VMware uyumluluk versiyonu olarak en son versiyonu (Workstation 10.0) seçip Next diyelim. Bu uyumluluk versiyonu, kurmuş olduğunuz VMware Workstation sürümüne göre değişiklik gösterebilir.
Guest Operating System Installation ekranında “Installer disc image file (iso)”yu seçip, Browse menüsünden indirmiş olduğumuz Ubuntu-14.04*.iso dosyasını seçelim ve Next’I tıklayalım.
Easy Install Information menüsünden Full Name kısmına Ubuntu Linux makinamızın adını, username ve password kısmına da kullanıcı adı ve şifremizi belirtip Next’I tıklyoruz.
Name the Virtual Machine kısmında, oluşturduğumuz sanal makinanın ismini ve sanal makinaya ait dosyaların kaydedileceği lokasyonu belirtiyoruz.
Processor Configuration ekranında, sanal makinamıza atayacağımız işlemci miktarını belirtip Next diyoruz.
Memory for the Virtual Machine kısmında, sanal makinamızın RAM miktarını ayarlıyoruz. Minimum 1024 MB RAM kullanmanızı tavsiye ederim.
Network Type kısmında sanal makinamızın Ağ Kartının tipini seçiyoruz.
- Use bridged network (Bu seçenek ile sanal makinamızın gerçek ip aralığımızdan swtich veya modemden bir ip adresi almasını sağlar)
- User network address translation (NAT) (Bu seçenek sanal makinamıza sanal bir ağ kartı ekleyerek o ağ kartının bilgisayarımızdaki fiziksel ağ kartı üzerinden sanal bir şekilde çalışmasını sağlar. Bu seçenek ile fiziksel network cihazlarımıza, (switch, modem vb.) erişemeyiz.)
- Use host-only networking (Bu seçenek fiziksel ağ kartımızın bulunduğu network üzerinde özel bir ağ gibi çalışmasını sağlar)
- Do not use a network connection (Bu seçenek ile herhangi bir ağ kartı kullanmayacağımızı, ağ kartımızı daha sonra ekleyeceğimiz anlamına gelir)
Use network address translation (NAT) seçeneğini işaretleyip, Next’I tıklıyoruz.
Select I/O Controller Types ekranında LSI Logic (Recommended)’I seçip, Next’I tıklıyoruz.
Select a Disk Type ekranında SCSI (Recommended)’I seçip SCSI tipte bir harddisk kullanacağımızı belirtiyoruz.
Select a Disk ekranı harddisk konfigürasyonu yapacağımız ekrandır.
- Create a new virtual disk (Sanal bilgisayarımız için yeni bir disk oluşturacağımız seçenektir, biz bu yeni disk oluşturma seçeneğini seçeceğiz)
- Use an exitsting virtual disk (Bu seçenek daha önceden oluşturulmuş, varolan bir sanal disk seçeceğimizi belirtir)
- Use a physical disk (for advanced user) (Bu seçenek fiziksel diskimizi kullanacağımızı belirtir)
Specify Disk Capacity ekranında, oluşturduğumuz snaal harddiskin boyunu belirtiyoruz. Ben 40 GB’lık bir boyut belirttim. Siz minimum 10+ GB belirtebilirsiniz. Store virtual disk as a single file seçeneğini seçip Next diyoruz.
- Allocate all disk space now (Bu seçenek oluşturduğumuz sanal disk alanının tamamının fiziksel disk alanından allocate edilmesini sağlar)
- Strore virtual disk as a single file (Bu seçenek ile oluşturduğumuz sanal harddisk tek bir dosya olarak (*.vmdk) belirlediğimiz lokasyona kaydedilir. Dip not: FAT32 kullanan bir dosya sisteminiz varsa alttaki seçeneği seçiniz. Bunun amacı eğer ilerde dosyalarınızı taşımak isterseniz ve dosyayı taşığınız disk FAT32 ile formatlanmış ise, 2 GB’dan büyük dosyaları kopyalayamzsınız.)
- Split virtual disk into multiple files (Bu seçenek ile oluşturduğumuz diskin parçalar haline ayrılarak 2 GB’dan küçük onlarca parçaya ayrılmasını sağlar. Böylelikle FAT32 formatlı bir diske kopyalama işlemi gerçekleştirilirken sorun yaşanmaz)
Specify Disk File ekranında, oluşturmuş olduğumuz sanal diski kaydedeceğimiz lokasyonu seçip Next ile devam ediyoruz.
Ready to Create Virtual Machine ekranında artık sona geliyoruz. Finish’I tıklayıp sanal bilgisayarımızı oluşturuyoruz.
Kurulum işlemleri otomatik olarak başlayacak ve Resim-15, Resim-16 ve Resim-17’deki ekranları göreceksiniz. Resim-17 ekranı gelinceye kadar bekleyin. Daha sonra şifresinizi girerek Ubuntu da oturumunuzu açın.
Adım 2: LAMP Server Kurulumu
Bir konsol (terminal) penceresi açıp, “sudo su” komutunu girin. Bu komutu girdikten sonra sizden şifre isteyecektir. Oturum açma sırasında kullandığınız şifreyi yazıp enter ile devam edin. Sudo su komutu, yönetici ayrıcalıkları ile komut çalıştırmanızı sağlayacaktır.
“apt-get install mysql-server mysql-client” komutu ile önce MySQL server’ımızı kuralım. Bu kurulumlar esnasında “Do you want to continue? [Y/n]” sorusuna “Y” yazıp enterlayın.
MySQL kurulumu esnasında Resim-20’deki ekran gelecektir. Bu ekrana Mysql root şifremizi belirtmemiz gerekiyor. Mysql için bir root şifresi girip Enter ile devam edin ve sizden tekrar şifre isteyecektir. Aynı şifreyi bird aha girip enter ile devam edin. Bu işlemden sorna Mysql şifrenizi sakın unutmayın :))
“apt-get install apache2” komutu ile Apache Server’ımızı kuralım.
Apache kurulumu tamamlandıktan sonra “apt-get install php5 libapache2-mod-php5” komutu ile PHP5’in kurulumunu başlatalım.
PHP kurulumu da tamamlandıktan sonra, “service apache2 start” komutu ile apache sunucumuzu başlatalım.
“nano /var/www/html/info.php” komutu ile /var/www/html dizininde “info.php” adında bir dosya oluşturacağız.
Bu komutu girdikten sonra nano editörü açılacak ve içerisine aşağıdaki kodları yazalım. Hemen ardından CTRL + O tuşlarına basıp entera basıyoruz. Daha sonra CTRL + X tuşlarına basıp nano editörünü kapatıyoruz.
“<?php phpinfo(); ?>”
Bu işlemler tamamlandıktan sonra Firefox’tan “localhost/info.php” adresine erişip, Resim-26’daki ekranı görelim.
Ardından konsol (terminal) ekranımıza geri dönüp aşağıdaki kodu yazarak, PHP modüllerini de yüklüyoruz.
“apt-get install php5-mysql php5-curl php5-gd php5-intl php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-ming php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl”
Modüllerimiz yüklendikten sonra “service apache2 restart” komutu ile apache’yi yeniden başlatıyoruz.
Daha sonra “apt-get install phpmyadmin” komutu ile phpMyAdmin’I yüklüyoruz.
phpMyAdmin kurulumu esnasında Resim-30’daki ekran ile karşılacağız. Bu ekranda apache2’yi seçip enter ile devam ediyoruz.
Bir sonraki aşamada gelen ekranda “No” yu seçip enter ile devam ediyoruz.
Bu kurulum işlemi de tamamlandıktan sonra “localhost/phpmyadmin” adresine gidip, phpmyadmin’in çalışıp çalışmadığını control ediyoruz.
Adım 3: DVWA – Web Hacking Labs Kurulumu
Daha önceden indirmiş olduğunuz DVWA-1.0.8.zip dosyasını, bulunduğu dizine zipten çıkarın.
Dizine çıkardığımız DVWA-1.0.8 klasörünün adını DVWA olarak değiştirelim. Ardından bir konsol ekranı açıp, “sudo su” komutunu verelim. Bu komutun ardından oturum şifremizi girip enter ile ilerleyelim.
“cd /var” komutunu yazıp enter diyelim. “chmod -R 777 www/” komutu ile www dizinine dosya okuma, yazma ve çalıştırma izni verelim. Hemen ardından DVWA klasörünü “/var/www/html/” dizinine kopyalayalım.
Bu işlemlerden sonra “/var/www/html/DVWA/config/” dizininde bulunan “config.php” dosyasını gedit veya benzeri bir editor ile açalım.
- $_DVWA[ ‘db_server’ ] = ‘localhost’; (Mysql’I kurduğumuz sunucu adresimiz. Değişikliğe gerek yok)
- $_DVWA[ ‘db_database’ ] = ‘dvwa’; (DVWA’nın kullanacağı veritabanı adı)
- $_DVWA[ ‘db_user’ ] = ‘root’; (Mysql kullanıcı adımız, değiştirmeye gerek yok)
- $_DVWA[ ‘db_password’ ] = ‘Password1’; (Password1 yerine Mysql kurulumunda oluşturduğunuz şifreyi yazın)
Bu değişiklikleri yaptıktan sonra CTRL + S kombinasyonu ile değişikliği kaydedip, editörü kapatın. Ardından browserı açıp, “http://localhost/DVWA” yazın.
http://localhost/DVWA dizinine eriştiğinizde Resim-36’daki ekran ile karşılaşacaksınız. Click here’ yazan yere tıklayalım.
DVWA “setup.php” ye yönlenecek ve Resim-37’deki ekran ile karşılaşacağız. “Create / Reset Database” e tıklayalım. DVWA veritabanına bağlanıp tablo yapısını ve kendi veritabanı içeriğini oluşturacaktır.
Bu işlem tamamlandığında Resim-38’deki gibi veritabanının kurulduğuna dair yazı göreceksiniz. Bu yazıyı gördükten sonra menu den “Home” tıklayın.
“Home” menüsünü tıkladıktan sonra DVWA, login sayfasına yönlenecektir. Kullanıcı adı olarak “admin” şifre olarak da “password” yazıp login olalım.
Bu ekranı gördükten sonra DVWA Web Hacking Labs ortamımız başarılı bir şekilde kurulmuş demektir. Bu kurulum işleminin ardından;
- Brute Force
- Command Execution
- CSRF
- Insecure CAPTCHA
- File Inclusion
- SQL Injection
- Upload
- XSS
Saldırılarını derinlemesine makale dizisi olarak anlatıyor olacağım. Bir sonraki makalede görüşmek üzere, güvenli günler.