27 Mart 2015 Cuma

Linux Server'a OpenVPN Kurulumu ve Windows İstemciden Bağlanma

VPN bazen lazım olur, devletlümüzün engellediği yerlere girmek için veya görülmesini istemediğiniz trafiğiniz olduğu zaman VPN'ler işe yarar. Etrafta free VPN'ler çokca var ama bunların server'ında duran logların baskalarına verilmediğini trafiğinizin ne kadar güvende olduğunu bilemezsiniz.

Bu yüzden bu yazıda kendi server'ımıza, ben DigitalOcean'dan kiraladığım VPS'ime Debian 7.0 x64 server kurdum, OpenVPN kurulumunu kısaca yazacağım. -Ubuntu ve CentOS'ta da çalışır.-
Etrafta OpenVPN kurulumu ile ilgili yazılar aradığınızda (How to install openvpn on blabla) çokca uzun içinde kurarken canımızdan bezmemize neden olabilecek bir ton olay göreceksiniz.

Bunun böyle olduğunun farkına varanlar sağolsunlar işi bir bash script yazarak halletmişler. Ki bunu Github'ta forklayanda 100'ün üstünde kişi var, yani OpenVPN'den biz çektik siz çekmeyin diyip geliştirmeye yardım etmişler.

KURULUM

Önce sistemimize bir update & upgrade çekelim.
 apt-get update && apt-get upgrade  

Easy-cred.sh "Some prereqs missing, functionality may be impaired. Review README file" Hatası ve Çözümü

İsmi Easy Credential'dan gelen, bash ile yazılmış bu scriptimiz Poisoning ve Fake AP saldırıları için kullanılabilecek güzide bir araçtır.

Giriş ekranı şöyle bir şey.
Poisoning Attacks menüsünde görebileceğiniz üzere Standard ARP Poison, Oneway ARP Poison, DHCP Poison, DNS Poison, ICMP Poison gibi saldırı türleri var.

18 Mart 2015 Çarşamba

PyQt ile Responsive Arayüz Yapma

    Responsive'dan kastım componentleri güncellenmesi, anlık olarak, ekranda diğer componentleri aksatmadan işlemler yapabilmenizdir.
Javada bu tarz işlemleri yaparkene mecburen thread kullanıyorduk. Bir süredir Python'la ugrasıyordum. Geçenlerde arkadaşın Github reposundan forkladığım, komut satırında çalışan dosya indirmeye yarayan Python ile yazılmış uygulamaya bi ayar çekeyim dedim. Forklayıp ayrı bir python dosyası şeklinde arayüzlü versiyonu ekledim.

Kullandığım componentlerden biride Progressbar idi. Malum dosyanın yüzde kaçının indiğini kullanıcıya göstermek lazım. Az araştırdım genelde progressbar ile ilgili iş yapanlar ya thread yada timer kullanıyordu.

Sonrasında şu büyülü satırı buldum. Ne thread ne başka birşeye gerek kalmadan tek satırla işimizi şu şekilde halledebiliriz.

14 Mart 2015 Cumartesi

Stack Based Buffer Overflow ve Exploit Kodlama - 1

2014'ün son ayında başlayıp uyuşukluğumdan dolayı yarıda kestiğim yazıyı yeniden yazma girişiminde bulundum. Arada bir kaç kez daha bırakmış olsamda sonunda bitiriyorum.

Uzunca bir yazı olacak, bu yüzden Stack ve Buffer gibi kavramları anlatmakla fazla vakit kaybetmeye gerek yok (ilerleyen kısımlarda bir görselle bir kaç şey anlatmam dışında). Bu adresten ayrıntılı bilgileri okuyabilirsiniz. Şimdi bir uygulamayı patlatmak ve overflow ettiğimiz uygulama için Exploit yazmak için yapılan temel adımları şöyle sıralayabiliriz.
ÖNEMLİ:  Bu yazıda anlatacaklarım herhangi bir koruma mekanızmasına (SEH, ASLR vs.) karşı bypass içermemektedir. O tarz overflow ve exploit kodlamaları ileriki yazılarda olur umarım -üşenmez yazarsam-
  • Uygulamanın girdi alan noktalarında bir overflow tespit etmek
  • Overflow olan sınırı tespit etmek
  • Uygulama içinde bizi Stack'e yönlendirecek adresi bulmak
  • Bad charları tespit etmek
  • Uygun shellcode yazmak
  • Ve bomm
Bu yazı muhtemelen seri şeklinde olacaktır. İlk olarak local bir buffer overflow uygulaması ile temelleri yazmaya çalışacam, sonrakilerinde remote overflow içinde anlatımlar olacaktır. Umarım...

Temel olarak buffer overflow için şunu söyleyebiliriz: Uygulamanın çalışma sırasında kullanıcıdan aldığı bir girdiye ayrılan sınırın üstünde data girişi yapmaktır. Birçok overflow yazısında int buff[125] gibi bir girdi alanı açılıp strcpy, memcpy vs ile C dilinin kontrolsüz fonksiyonlarını kullanarak uygulamaya 125'ten fazla bir input yollayarak programı patlatmayı anlatır. Anlatılanda doğrudur, mantık aynen bu şekilde işler, haddinden fazla inputu göndermek ve eğer kontrol yoksa uygulamayı patlatmak.
Uygulamaya fazla input yolladığımızda stack'in yapısından dolayı stack'e atılan parametreler ve geri dönüş değerler ezilir/kaybolur bundan dolayı uygulama crash olur ve sonlanır. İyi bir exploit, geri dönüş değerini istediğimiz bir alana referans ettirmek ve o alana shellcode'umuzu doldurmak ile olur. Sonrası işlemcide, sağolsun kendisi bizim için işlemleri yapacaktır.

Patlatacağımız uygulamaya ait Perl diliyle yazılmış exploit koduna Exploit-db den bakabilirsiniz. Biz Python ile exploiti geliştireceğiz. Verdiğim linkte uygulama için download linkide bulunmakta.

Let's Begin

Öncelikle uygulamanın kabul ettiği formatlardan biri olan m3u için dosya oluşturup içini junk datayla dolduran bir kod yazalım. Başlangıç olarak 10.000 byte verelim.

4 Mart 2015 Çarşamba

VMware Workstation - The virtual machine appears to be in use Hatası ve Çözümü

Canım sıkıldı bi VMware'den XP'ye gireyim az BOF yapayım dedim. Bi de ne göreyim VMware Workstation diyor ki "The virtual machine appears to be in use.". Aman tanrım didim.


Neyse ki korkulacak bişey yokmuş. Çözümü kurmuş olduğunuz sanal makineyi hiçbir şekilde etkilemiyor rahat olsun içiniz.