Google Cloud Platform Üzerinde Ubuntu Server ve DVWA Kurulumu

Selamlar bu başlık altında Google Cloud servislerinden Compute Engine üzerinde Ubuntu Server kurulumu gerçekleştirilecek, oluşturulacak bu server üzerinde Damn Vulnerable Web Application (DVWA) isimli üzerinde çeşitli güvenlik zafiyetleri barındıran web tabanlı uygulama kurularak çalıştırılacaktır.

Compute Engine servisi çeşitli sanal makineler yaratarak üzerinde farklı işletim sistemleri çalıştırmanızı sağlayan bir servistir. Bu linki ziyaret ederek Google Cloud’da kullanıcı oluşturabilirsiniz.

Bu çalışma kapsamında Ubuntu 16.04 LTS sürümü tercih edilmiş olup gerekli sanal makine oluşturulduktan sonra; 
  • Apache 
  • MySQL 
  • PHP 
  • DVWA 
kurulumları gerçekleştirilmiştir.

Apache, birçok işletim sistemi üzerinde çalışabilen bir sunucudur. Oluşturduğumuz sanal makinemizde barındırdığımız içeriklerin yayınlanabilmesi için gereklidir.

Kurulum adımları;
Öncelikle kurulumlar sırasında yapılacak işlemlerde yetki problemi yaşamamak adına “super user” yetkilerine sahip olmanız gerekiyor.

sudo su


Kurulum işlemlerine başlamadan önce mevcut paket listesi güncellenir.

apt update


Apache kurulumu yapılır. Apache kurulumu yapıldıktan sonra sunucumuz 80 numaralı portu üzerinden yayın yapmaya başlayacaktır.

apt install apache2


Sunucunuzun IP adresini tarayıcınızın adres çubuğuna yazarak sunucunuzun çalışıp çalışmadığını kontrol edebilirsiniz.







Apache kurulumu yalnızca statik sayfalar yayınlamamız için yeterlidir. Proje kapsamında kullanacağımız web tabanlı uygulama PHP programlama dili ile yazıldığından ve veritabanı bağlantısı gerektirdiğinden sunucumuza MySQL Server ve PHP kurulumu yapmamız gerekmektedir.

Öncelikle MySQL Server kurulumu gerçekleştirilir. MySQL kurulumu belirli bir aşamaya geldiğinde root kullanıcısı için sizden bir parola talep edilecektir. Güvenli ve kolay hatırlayabileceğiniz bir parola tercih etmeniz önerilir.

apt install mysql-server


PHP web tabanlı uygulamalar geliştirmek amacıyla kullanılan, sunucu taraflı bir programlama dilidir. Sanal makinemizde barındırdığımız web tabanlı uygulamanın php sayfalarının yorumlanması için sunucumuza PHP ve sık kullanılan eklentilerini kurmamız gerekir.

apt install php libapache2-mod-php php-mysql


Kurulumları gerçekleştirdikten sonra Apache sunucumuzu yeniden başlatmalıyız. Apache sunucusu ile doğrudan ve dolaylı olarak ilintili her paket kurulumundan sonra sunucunun yeniden başlatılması gerekmektedir.

service apache2 restart


Apache, MySQL Server ve PHP kurulumunu gerçekleştirdikten sonra Damn Vulnerable Web Application (DVWA) isimli üzerinde çeşitli güvenlik zafiyetleri barındıran uygulama kurulmalı.

DVWA yani Damn Vulnerable Web Application’ın temel hedefi/önceliği güvenlik uzmanlarının yeteneklerini ve bu alanda kullanılan araç ve programların yasal bir ortamda test etmelerine yardımcı olmak, web tabanlı uygulama geliştiricilerinin, geliştirdikleri web tabanlı uygulamaları daha güvenli hale getirme süreçlerini daha iyi anlamalarına ve analiz etmelerine yardımcı olmak, öğretmenler/öğrenciler için bir uygulamalı bir laboratuvar oluşturmak için hazırlanmış PHP/MySQL tabanlı bir uygulamadır. Proje kapsamında bu uygulama üzerine çeşitli web tabanlı saldırılar düzenlenecek ve alınan sonuçlar analiz edilecektir.

DVWA Apache’nin kök dizinine indirileceği için, varsayılan olarak bu dizin altında bulunan index.html dosyası kaldırılmalıdır.

rm –r /var/www/html/index.html


DVWA’nın en son sürümünü /tmp/ dizini altına indirilir.

git clone https://github.com/ethicalhack3r/DVWA /tmp/DVWA


Gerekli DVWA kaynak kodu dosyaları /tmp/DVWA dizini altından Apache’nin kök dizini altına taşınır veya kopyalanır.

rsync –avP /tmp/DVWA/ /var/www/html/


Tüm DVWA kaynak kodu dosyalarının Apache kök dizini altında olduğu kontrol edilir.

ls /var/www/html/


DVWA veritabanı bağlantısının yapılandırılması gerekmektedir. /var/www/html/config/ dizini altında yer alan config.inc.php.dist isimli dosya yeniden isimlendirilerek config.inc.php şeklinde kayıt edilmektedir.

cp /var/www/html/config/config.inc.php.dist /var/www/html/config/config.inc.php


DVWA varsayılan kullanıcı adı “root” parolası “p@ssw0rd” dür Kurulum aşamasında farklı bir parola tanımlamışsanız bunun config.inc.php dosyası içerisinde düzenlenmesi gerekmektedir. Nano editör ile açılarak $ _DVWA ['db_password'] = 'p@ssw0rd'; alanı güncellenir.

nano /var/www/html/config/config.inc.php


Gerekli düzeltmeler yapıldıktan sonra MySQL servisi yeniden başlatılmalıdır.

service mysql restart


Sunucunuzun IP adresini tarayıcınızın adres çubuğuna yazarak uygulamanızı çalışıp çalışmadığını kontrol edebilirsiniz.








DVWA'yı ilk kez yüklediğinizde yukarıdaki görselde ki gibi kurulum sayfası size sunulacaktır. Bu sayfa mevcut konfigürasyonu ve mevcut olabilecek hataları gösterir. Sayfada bu sorunların nasıl çözüleceği konusunda bilgiler verilmektedir. Ayrıca, sayfanın altında DVWA için bir veritabanı oluşturmaya yarayan buton bulunmaktadır. Tüm hatalar giderildikten sonra bu buton tıklanarak gerekli veritabanı DVWA tarafından otomatik olarak oluşturulacaktır.

Yukarıdaki görsel incelendiğinde;
  • hackable/uploads/ klasörüne yazma yetkisi verilmesi, 
  • phpids_log.txt dosyasına yazma yetkisi verilmesi, 
  • config/ klasörüne yazma yetkisi verilmesi 
  • allow_url_include işlevini devreye alınması 
gerektiği anlaşılmaktadır.

İlk 3 uyarı dizin izinleri ile alakalıdır. Sorunun çözülüp çözülmediğini kontrol etmek için tarayıcınıza DVWA kurulum sayfasını yeniden yükleyiniz. Sorun çözüme kavuştuğunda yazılı sorun kırmızıdan yeşile dönecektir.

uploads/ klasörüne gerekli izinleri vermek için öncelikle bu dizinin içinde bulunduğu dizinin izinleri kontrol edilmeli.

ls –la /var/www/html/hackable/


root kullanıcısı için yazma yetkisi olsa dahi DVWA tarafından uyarı verilmektedir. Bu nedenle diğer kategorisine de okuma, yazma, çalıştırma iznini verilmesi gerekmektedir.

chmod 757 /var/www/hackable/uploads/


Gerekli izinlerin verilip verilmediği kontrol edilir.

ls –la /var/www/html/hackable/


phpids_log.txt dosyasına gerekli yazma iznini vermek için dosyanın içinde bulunduğu dizinin izinleri kontrol edilmelidir.

ls –la /var/www/html/external/phpids/0.6/lib/IDS/tmp/phpids_log.txt


Root kullanıcısına gerekli izinler verilir.

chmod 646 /var/www/html/external/phpids/0.6/lib/IDS/tmp/phpids_log.txt


Gerekli izinlerin verilip verilmediği kontrol edilir.

ls –ls /var/www/html/external/phpids/0.6/lib/IDS/tmp/phpids_log.txt


config/ klasörüne gerekli izinleri vermek için öncelikle bu dizinin içinde bulunduğu dizinin izinleri kontrol edilmeli.

ls –ls /var/www/html/ | grep config


Gerekli izinler verilir.

chmod 757 /var/www/html/config


Gerekli izinlerin verilip verilmediği kontrol edilir.

ls –la /var/www/html/ | grep config


allow_url_include işlevini devreye almak için nano editör ile php.ini dosyası açılarak allow_url_include=Off değeri bulunarak “On” değeri verilir.

nano /etc/php/7.0/apache2/php.ini


Gerekli düzeltmeler yapıldıktan sonra Apache servisi yeniden başlatılmalıdır.

service apache2 restart


Yapılan ayarlamaların doğru bir şekilde çalıştığından emin olmak için sunucunuzun IP adresini tarayıcınızın adres çubuğuna yazarak kontrol edebilirsiniz.









Yukarıdaki görselde ki gibi açılan sayfadan “Create/Reset Database” butonuna tıklayarak DVWA tarafından veritabanını yeniden oluşturulması sağlandıktan sonra eğer veritabanı başarılı bir şekilde oluşturulursa giriş ekranına yönlendirileceksiniz.










Yukarıdaki görselde ki gibi açılan kullanıcı ekranında bulunan Username alanına “admin” Password alanına “password” yazarak DVWA uygulamasına giriş yapabilirsiniz. Uygulamaya giriş yaptığınızda sizi aşağıdaki gibi bir ekran karşılayacaktır.





Yukarıdaki görselde ki gibi açılan ekranın sol tarafındanki menü de güvenlik zafiyeti bulunan sayfalara erişim linkleri verilmiştir. Gerçekleştirmek istediğiniz web tabanlı saldırı için ilgili menüye tıklayarak içerisinde zafiyet barındıran uygulamaya erişebilirsiniz.


Post a Comment

Yorum yaparak daha fazla bilgi paylaşılmasına yardımcı olabilirsiniz.

أحدث أقدم