Kenan Abdullahoğlu

Güvenlik

Posted by Kenan Abdullahoğlu

Nerelere Gidem - Neler Yapam ?

Tarih 12 Mart 2016. KATEGORI Guvenlik

Bundan yaklaşık 3 yıl evvel yazmaya başladım burada, elbet birilerinin yolu düşer siteye de öğrenir birkaç birşey niyetiyle. Öyle oldu hakikaten, gelen giden çok oldu, soru soran, yardım isteyen, abi ben var istiyor öğrenmek, sen var yol göstermek diyen. Çok azı hariç herkese tek tek cevap yazmışımdır, çoğu (?) hayatta olduğu için canlı şahitlerim var diyebilirim rahatlıkla.

Ocak ayında bir yola çıkmaya karar verdim, şirket kurdum bilişim güvenliği üzerine, ismi AbdSec, duyan duymuştur da duymayanlara selam olsun.Sordum canlı canlı ne geliyor aklına logoyu görünce diye, hemen sağ tarafta olan var ya, onu işte.Soyadımı bilen gören Abdullahoğlu işte abicim dedi,yok dedim, Amerika felan mı yoksa _lan_ dediler ııııhıııhhhhh efekti çıkardım, değildi çünkü.Düşün bakalım saygıdeğer okuyucu senin aklına neler gelecek, fikri gelen yorum bıraksın :)

Abi sen baya baya kekliyorsun bizi,başlık ne diyor sen şirket reklamı yapıyorsun demeyiverin hemencecik, giriş yapıyorum asıl konuya. Neymiş asıl konu; şirketi kurduğumdan beri email gönderen, nasıl yapalım abi diyenlere cevap yazamıyorum yoğunluktan.Harbiden öyle bak, inanmıyorsan buyur:

Madem dedim durum böyle, yazacaksın Kenan uzun uzun, gençler soruyor ciddi ciddi, sen de yazacaksın ne var ne yok, herkes bilecek yerini yurdunu.Yazının bundan sonraki kısmı yol gösterme babında tavsiyeler ile doludur sayın okuyucu, lazım değilse sana, kapıyı biliyorsun.

Senaryomuzu yazalım, hep birlikte oynayalım. Bir şekilde yolun düştü buraya, gugıldan birşeyler arattın, arkadaşın tavsiye etti, felan filan derken gözgezdirdin, öğrenicem ben bu işi dedin.Karar vermek güzeldir, başarmanın yarısıdır, öyle derler büyükler.
Hangi yazıya denk geldin bilemem ama ben en başından alıyorum kararlı kardeş, yapılması gerekenler çoook, sen ne kadarını yaparsın bilemem.

Herşeyden evvel bir ingilizce durum kontrolü yapıyoruz arkadaşlar, yabancı kaynaklara başvurunca okuduğunuzu anlayacak kadar ingilizce yoksa işiniz çok zor. Çok ciddiyim işi gücü bırakın ingilizcenizi geliştirmeye bakın, heaa ben ingilazca biliyorum abi diyorsan sana ufaktan bir uyarı yapayım; bak Kernel serisinin en son yazısında son teknoloji işlemcilerde bulunan bir korumadan bahsettim, adı SMAP, git googledan araştır bakalım "SMAP nedir" diye, benim haricimde anlatan var mı, eee Türkçe kaynak olmayınca vazgeçecek değiliz, demek ki ingilizce hakikaten şart, evet şart!

Bir taraftan ingilizcemiz gelişirken, boş durmuyoruz kuruyoruz bir Linux, kullanıcı olarak bırkalıyoruz etrafı, temel komutlar neymiş, ekran kartını görmedi diye kıvranıp duruyoruz yaşıyoruz bu dertleri ki tecrübemiz artsın biraz. Normal kullanıcı olmadan derin mevzulara dalmanın ne manası var, hamamda yüzemedikten sonra okyanusta ne işin var ?!
Abey ben bu yola başkoydum ne gerekiyorsa yapıyorum diyenler inat ve ısrarla devam edecek, zorluklara aldırmayacak, unutmuyoruz hepimiz geçtik geçiyoruz bu yollardan. İlerledikçe bitmiyor bu dertler, hatta artıyor, zor şeylerle uğraşmak benim işin diyorsan ne aalaa [ala mı yazsaydım?] yok değilse, bu mevzular sana göre değil, kesin bilgi yayabiliriz.

Herşey yolunda gidiyorsa, başlıyoruz benim ilk yazıdan, başlıkta yazmışız "Girişten Önce Son Çıkış" diye, yazımız tam olarak burada, okuyup düşünüyorsun, yahu burada işin temeline inilmiş, teknik jargonla low level mevzular anlatılacak, ben bu kadar derinlere inmek istiyor muyum diye.Yazının devamında sorular soruyormuş gibi feyk atabilirim, bil ki cevabının evet olduğunu düşünerek vericem tavsiyeleri.

Okudun yazıyı, anladın birşeyler, geçme hemen bir sonraki yazıya, sorular sor kendine, mesela birkaç tanesini ben yazayım:

  • Hangi işletim sistemleri, kimler için, neden uygun?
  • Bazı güvenlik cihazlarında neden FreeBSD tercih ediliyor?
  • İşlemcileri _gerçekte_ hızlı yapan şey nedir?
  • Telefonlarda ARM, modemlerde MIPS işlemci varmış, niye?
  • Kenan abi bu soruları soruyorsun ama cevapları bulamazsak gelip yine sana sorabilir miyiz?

Sorular cevaplarını bulduysa, sen gerçekten merak edip araştırıyorsan, atla bir sonraki yazıya, bak linki de burada zahmet edip okudun mu sayfanın sonunda videosu var, onu da izle, sonra herhangi bir 32 bit linux sistemde aynılarını sen de dene, okumak yetmiyor birazcık da tecrübe etmek lazım. Yazıyla alakalı sorular sordun kendine, üstüne bir de cevapladın,tamamdır devam o zaman.

Yazdığım her yazı için aynı şeyleri tekrarlamak niyetinde değilim ama benim anlattıklarım aslında hangi konuları araştırmanız gerektiğini tarif ediyor biraz da. Hani işin başı zordur ya, öğrendikçe kolaylaşır, ben de işinizi biraz kolaylaştırmaya çalışıyorum.Amma velakin birkaç yazı okudum, bu iş tamamdır moduna girmeyin hemen, bu yazının en sonunda tavsiye edeceğim kitap tam 1370 sayfa, ona göre psikolojik olarak hazırla kendini.

Durma kop gel yazı 5in [Nerede Bu Devlet] sonuna kadar, okudum okudum da biraz birşey anladım gerisini anlamadım diyorsan gayet NORMAL, çünkü altyapı sağlamlaştıkça daha iyi anlaşılıyor herşey. Bak bu yazıya gelene kadar Assembly temellerini anlattık, biraz Python biraz C ortaya karışık yaptık. Devam etmeden evvel gidiyorsun önce şu adresten Python öğreniyorsun, evet baştan sona kasıyorsun. Ezberleme arkadaşım, oku öğren basit uygulamalar hazırla, yarın öbür gün ihtiyacın olursa sıfırdan başlamak zorunda kalmazsın, ya da benim paylaştığım 5 10 satırlık programlar neler yapıyor rahatlıkla anlarsın. Peki python bilgimiz idare eder diyebilmek için sorularımız var mı? Olmaz mı:

  • Python 2.7 mi 3 küsür mü? Neden? (Sen 2.7 öğren,kullan)
  • En basitinden bir uygulama hazırladın mı? Sonra birkaç özellik daha ekledin mi?
  • Hazır kütüphaneleri araştırdın mı? ilgini çeken birtanesini detaylı inceledin mi? (os mesela)
  • Basitinden bir net bağlantısı yaptın mı? (Websitesine bağlan, server headerlarını (?) print et mesela)
  • İyi kötü anlarım python kodu görünce diyebiliyor musun? Olay bitmiştir..

Sıra geldi gözümüzünnuru C ile haşır neşir olmaya demektir, gugıl amca soru bekliyor, sor söylesin, araştır bul denemeler yap, ne bileyim en basitinden hesap makinesi felan hazırla.Burada biraz uğraşmak zorunda kalabilirsin sevgili okuyucu, yazılanlar ya eskidir ya da can sıkıcı ama yapacak birşey yok, döner dolaşır yolumuz elbet C'ye düşer. Sakın ola ben C++ biliyorum ya da daha beteri C# biliyorum felan duymayayım, yürümüyor işler onları bilmekle.Birşeyler yapmak için hepsi bir seçenek ama mevzu bozmaya geldiğinde kaçarı yok si öğrenilecek. Bak bu sefer sorular sormuyorum, yapılması gerekenleri yazıyorum:

  • Overthewire sitesine keskin bir dalış yapıyoruz.
  • Vortex oyununa tıklıyoruz, karşımıza Level 0 geliyor, ne istiyormuş bizden anlıyoruz.
  • Python öğrendik ya, bu bölümü geçmek için istenilen programı python ile hazırlıyoruz (C olursa daha şekil durur)
  • Level 1 için kullanıcı adı şifremiz hazırsa, Level 1'deki kodu inceleyip çözüyoruz.
  • Bölümleri geçmenin bir esprisi yok arkadaşlar, neler döndüğünü anlamadıktan sonra hikaye..

Level 1'i çözemedim diye saç baş yolmaya başladıysanız doğru yoldayız demektir, kopya çekmek serbest arkadaşlar, araştır internette kesin çözümü paylaşan birileri vardır.Peki kopya çektik, Level 2 şifresini aldık tamam mı? Kesinlikle değil.Mesela Level 1 ile alakalı şu soruları sorsam cevaplayabiliyor musun? Cevap hayır ise otur oturduğun yerde!

  • Daha ilk satırlarda ..ptr & 0xff.. diye birşey var, ne demek o & işareti?
  • Sen yine araştır ama bak burada yazmışım ben, okudun mu?
  • setresuid, geteuid felan birşeylerden bahsediyor kodda?
  • ptr++[0] <-- ne demek bu ya, sorsam söyleyebilir misin?
  • C konusunda öğrenilmesi gereken daha birçok şey varmış değil mi?

Biraz homurdanmalar geliyor kulağıma, yawww nedir si sii kurtulamıyoruz bir türlü gibilerinden, hadi diyelim web güvenliğinde ilerlemek istiyorsun, araştırdın öğrendin XSS sonracıma SQLi felan, sıra geldi derinlere inmeye, bak derinlere diyorum yine, git araştır bakalım php arkatarafta zend engine diye bir mahlukat çalıştırıyormuş, neyin nesiymiş bu arkadaş, hangi dilde kodlanmış? Mırıldanmalar kesildiyse işimize bakalım.

Assembly serisine devam ediyoruz arkadaşlar yazı 6da [Badi Buyuldink] kalmıştık, bak linki de burada okuyoruz serinin sonuna kadar, evet geriye kalan bütün yazıları,temeli oluşturuyoruz. Bu arada Overthewire sitesinden Vortex oyununa biraz ara verip, gidip narnia oyununu baştan sona oynuyoruz. Yine aynı hikaye, kopya çekmek serbest ama neler döndüğünü anlıyoruz, yoksa geçmiyoruz. Anlaşıldı mı anlaşıldı, o zaman tavsiyelere devam.

Assembly serisi bitti, geriye sardın tekrar okudun, tamam yaww çözdüm galiba ben bu işi diyerekten bir özgüven geldiyse sana Kernel serisi var, başla okumaya, aynı taktikten devam sorular sormalar, cevap bulamalar felan.Bak bu arada ben sana bir kaynak önereyim, hani yazının başında bahsediyordum ya 1370 sayfa diye.Bu kitap Linux kernel ile alakalı okunabilecek en düzgün kitaplardan birisi, yazarı da Wolfgang Mauerer, artık araştır bul oku bu kitabı.

Bu arada Vortex oyununa kaldığın yerden devam ediyorsun, kimi bölümler kolay kimileri fena zor ama oldu ya vazgeçmeden 13e kadar geldin, çözmeyi de başardın diye hayal kuralım. Bölüm 14ün şifresinin ilk ve son harfi D - h, gerisini bana söyleyebileceksen email at, abi mevzu tamam şimdi ne yapıyoruz diye. Artık seninle aynı dili konuşmaya başlamışız demektir.

Not: Ara sıra yazıya eklemeler yapacağım için versiyon bilgisi ekleyeceğim.
v1 - 12.03.2016