Kayıtlar

Today's Learning

CTF çözdüğüm sıralarda öğrendiğim ufak tefek ama kritik bilgileri unutmamak maksadıyla burada paylaşıyorum. Bugün neler öğrendim Bir string'in boyutu değiştiğinde bellekteki adresi de değişir.   Debugger ile bir fonksiyonu incelemeye başlamadan önce fonksiyonun stack frame'ini öğren. Bunu bilmek sana stack'i analiz ederken kolaylık sağlar. Bir uygulama, dosya çağıracağı vakit dosyayı aramaya başlayacağı yer uygulamanın çalıştırıldığı dizindir.  Bir uygulamayı analiz ederken _init_ ve _finit_ fonksiyonlarını analiz etmekte fayda var. Böylece program açıldığı ve kapandığı sırada hangi işlemler yapıldığını bilebiliriz..  Bellek taşırma zafiyetini istismar ederken şayet stack'te yeteri kadar buffer alanı yoksa, shelcode'un başına sub esp, 0xN yönergesini yerleştirerek gerekli buffer alanını tahsis edebiliriz. (N: bize gereken byte miktarının hexadecimal karşılığı) Bellek taşırma zafiyetini istismar ederken şayet stack'te yeteri kadar buffer alanı yoksa ...

Exploit Analizi

Zamanında yabancı bir forum için yazdığım bir yazıyı arkadaşım Türkçe'ye çevirip yayımlamıştı. Faydalı bir yazı olduğunu düşündüğümden burada da paylaşmak istiyorum. Bugün sizinle bir exploitin işleyişini anlamak ve kullandığı güvenlik açığı hakkında daha fazla bilgi edinmek amacıyla exploit analizi yapacağız. Exploit analizi yapabilmek en az exploit geliştirmek kadar önemli bir konudur. Bazen exploit geliştiricileri zafiyet hakkında yeterli bilgi vermeyebilir veya siz zafiyet hakkında daha fazlasını bilmek isteyebilirsiniz. Exploit analizi yapabilmek, bu durumlarda yararlı olacaktır. Ayrıca exploitlerin genel anlamda nasıl çalıştığını anlamanıza da katkı sağlayacaktır. Exploit geliştirmede kullanılan en yaygın dillerden bazıları: Python, Perl, Ruby, PHP, C Bu dillerden en az birini bilmekte fayda var. WordPress’i ele geçirmek için PHP dilinde yazılmış basit bir RFU (uzaktan dosya yükleme) exploit’ini inceleyeceğiz. Hadi başlayalım. Analiz edeceğimiz exploit: http://1...

GDB ile Vakit Öldürmeceler

Resim
Dün GNU Debugger ile yaptığım alıştırmalar sırasında öğrendiklerimi gerek tekrar için gerekse geçerken gören olursa onlarda öğrensinler diye buraya yazıyorum. Herşey arkadaşımla OverTheWire'ın Narnia level 5 sorusunu çözerken başladı. #include <stdio.h> #include <stdlib.h> #include <string.h> int main(int argc, char **argv){ int i = 1; char buffer[64]; snprintf(buffer, sizeof buffer, argv[1]); buffer[sizeof (buffer) - 1] = 0; printf("Change i's value from 1 -> 500. "); if(i==500){ printf("GOOD\n"); system("/bin/sh"); } printf("No way...let me give you a hint!\n"); printf("buffer : [%s] (%d)\n", buffer, strlen(buffer)); printf ("i = %d (%p)\n", i, &i); return 0; } Bizden isteneni gerçekleştir...

Bir Güvenlikçi, Virüs ile Karşılaşırsa

Resim
5 Mayıs günü Hatay'da ki evime ulaştığımda yurtta hasret kaldığım internet bağlantıma kavuşmuştum. Tam mailimi kontrol ederekten siftahımı yapayım derken pop up şeklinde bir reklam açıldı. Pop up reklamları (temsili) Hem yüklediğim programlara dikkat etmem, hemde kullandığım sistemin Linux olması dolayısıyla bu olay beni oldukça şaşırtmıştı. Sonra aklıma Linux'ta Windows uygulamalarını çalıştırmak için kurulu olan Wine adlı uygulama geldi. Acaba bu uygulama vasıtasıyla çalıştırdığım bir dosyadan mı bulaştı diye düşündüm kendime ancak durum bu değildi. Ilk önce "Helal olsun adamlara, üşenmeyip Linux için virüs yazmışlar" dedim (tam olarak bu kelimelerle olmasa bile). Ancak aynı reklam pencerelerine Windows kurulu bilgisayarımda, hatta Android cep telefonumda bile rastlayınca olayın çok farklı olduğunu anladım. Reklam pencereleri " adbirdie.com" ve "youradexchange.com" türevi URL'ler üzerinden kullanıcıyı asıl reklama yönlendiriyordu...

Ufak Adam Kompüteri

Resim
Little Man Computer, 1965 yılında Dr. Stuart Madnick tarafından tasarlanmış, von Neumann mimarisine dayanan farazi bir bilgisayar modelidir. Günümüz bilgisayarlarının bütün özelliklerine sahip bu model, öğrencilere bilgisayarların çalışma mantığını kavratmak amacıyla okullarda öğretilmektedir. Kendine ait komut seti ve bir dili vardır. Bu modele göre bilgisayar ufak bir oda, ve bu odanın içerisine kapatılmış ufak bir adamdan oluşur. Odanın bir köşesinde 0'dan 99'a kadar numaralandırılıp istif edilmiş posta kutuları (hafıza) bulunur. Bu posta kutularının her birinin içerisinde zarflar vardır ve bu zarfların üstünde 3 adet rakamdan oluşan instruction lar yazılı bulunur. Odanın diğer ucunda ise dışarıya açılan iki adet sepet vardır. Bu sepetlerin bitanesi input , diğeri ise output görevi görür. Odanın ortasında sadece toplama ve çıkarma işlemlerini yapabilen bir hesap makinesi ve yanında resetlenebilen bir program sayacı bulunur. Bu odanın içerisindeki elemanları bir...

Adeo IWS, CTF Çözümleri Part-2

Resim
Adeo IWS CTF sorularının çözümlerinin devamı. Binary200 Diğer sorulara nazaran daha kolay olan bu soruda yine bir rar dosyası karşımıza çıkıyor. Dosyayı indirip unrar ile açtıktan sonra içinden 2015_@d30.bin.tar adında bir arşiv dosyası daha çıkıyor. Onu da tar komutu ile açtıktan sonra içinden 2015_@d30.bin isminde bir dosya çıkıyor. Flag bu dosyanın içerisinde yazılı.   Reverse200 Bu sorumuzda bize bir exe dosyası verilmiş. Dosyayı indirip çalıştırdığımızda ise bizden şifre istiyor. Bu gibi durumlarda ilk yaptığım şey dosya üzerinde strings komutunu çalıştırıp, şifrenin program içerisine gömülü olup olmadığına bakmaktır. Şayet değil ise diğer adım programı debug etmektir. Lakin burada ki durum programı debug etmeyi gerektirmiyor. Şifremiz: MerahbaDunyal1 Crypto200 Bu soruda crypto_adeo.xcf adında bir dosya verilmiş. Google'da xcf dosya uzantısını arattığımda bu uzantının GIMP resim editörü ile oluşturulmuş resim dosyalarına ait olduğunu gö...

Adeo IWS, CTF Çözümleri Part-1

Resim
11 Nisan'da gerçekleşen Adeo Intern & Work @ Security etkinliğinin uygulamalı sınavının çözümlerini yayınlayacağım. Başlamadan önce sınav ile ilgili birkaç bilgi vermek istiyorum. Sınav Capture The Flag (ctf) tarzı bir konsepte sahipti ve toplamda 8 sorudan oluşuyordu. Web, Exploit, Crypto, Reverse, Binary, Misc ve Stego olmak üzere 7 kategori vardı. Unutmadan, bu sınavda mülakata hak kazanan diğer arkadaşları da buradan tebrik etmek istiyorum. Sınavın saat 19:00 civarı başlaması ile beraber burada elektriklerin kesilmesi (Buca, Tınaztepe tarafları) sebebiyle sınava yarım saat kadar geç başlamak durumunda kaldım. Ancak bu bana engel olmadı :) Sorulara geçelim.. Web400 Sınavın belirleyici sorularından olduğunu düşündüğüm bu soruda bir txt dosyası verilmiş: Verilen adrese gidince karşıma resimdeki login paneli çıktı. Birkaç hatalı giriş ve SQLi denemesi sonucunda login panelinden bir şey çıkmayacağını anlayınca bana verilen bilgiler ile giriş yaptım ve resimde...