Ana Sayfa Projelerim Pentest Blog

Pentest Serüvenim

Aslında çocukluğumdan beri bilgisayar işlerine meraklıydım. Her ailede "içine kapanık, odasından çıkmaz" dedikleri kişiydim. Çocukluğumda, doğduğum evde abim sayesinde bir bilgisayar vardı; daha okuma yazma bilmezken bile "oyuntak.com" yazacak kadar PC başında bir şeyler yazabiliyordum. Daha çok oyun oynamak için kullanıyordum bilgisayarı, ama ortaokul yıllarında terminal ve komutlarla ilgilenmeye başladım. "cmd'yi aç, color yaz" olarak başlayan merakım, zamanla programlama dersleriyle daha da derinleşti. Hatta YouTube'da cmd komutları diye video çekmiştim; ortaokul yıllarıydı.

Lisede gördüğüm programlama dersleri büyük bir etkendi. C# ile ilk projemi yaptım, sonrasında tiyatro otomasyonu gibi daha karmaşık projeler geliştirdim. Kodlarımı GitHub'a yükleyip paylaşarak, bilgisayarın kullanılmasının ve bilginin değerli olduğunu erken yaşta fark ettim.

Hocam, yazılım anlattınız bize?

Ne kadar siber güvenlik meraklısı olsak da, oturup VS Code’u açmayı öğrenmelisiniz. Bilgisayarın nasıl çalıştığını, komutların ne yaptığını, bir siteye girdiğinizde hangi JavaScript kodlarının arkada çalıştığını, token mantığını; kısacası arka planda dönen her şeyi bilmelisiniz. Kendi ihtiyacınız olan bir araç yoksa, "s++" gibi durmak yerine o aracı kendiniz üretmelisiniz. Yazılım yaparken, kullanıcıların gördüğü ile arka planda olan arasındaki uçurumu fark ettiğimde işin temeline inmenin önemini anladım.

Basit bir hesap makinesi yapabilirsiniz; eşittir tuşuna arka planda çalışan bir kod eklediğinizde, kullanıcının haberi olmadan farklı sonuçlar alabilirsiniz. C# derslerinde hocaya "İşareti göstermeden arka planda hesap yapsa, istediğimizde sayıyı verse nasıl olur?" demiştim. İşte orada bir backend geliştiricinin doğuşunu gördüm.

Hacklemek?

Benim en sevdiğim özellik derinlemesine öğrenme arzum. "Hack" kelimesi kesmek veya doğramak anlamına gelir; ben hack'i daha çok "bozmak" olarak tanımlıyorum. Bir hacker, bir sistemi nasıl bozabileceğini iyi bilmelidir. Bozmak esas işimizdir; yanında ele geçirmek de olabilir. Dışarıdan havalı görünür ama her şey yasal değildir. Bir kişinin sistemine veya özel verisine, rızası olmadan erişmek etik sorunlar doğurur.

Görüşüm: Bir kişinin özelini veya bir sistemin özeline izinsiz girme hakkınız yoktur. Amacınız ne olursa olsun — merak, öğrenme veya iyi niyet — başkasının mahremiyetini ihlal etme hakkını kendinizde bulamazsınız. Eğer birinin ne yaptığını merak edip bunu öğreniyorsanız, bunun etik olup olmadığını kesin olarak belirlemek zordur; bir paradoks vardır. Ancak sonuçta, amacınız iyi olsa bile izinsiz erişim yapmamak en erdemli davranıştır.

Özetle: Bilgiyi derinlemesine öğrenmek ve sistemlerin arkasını keşfetmek harikadır; ama bunu etik sınırlar içinde, izne dayalı ve sorumluluk bilinciyle yapmak en doğru yoldur.

Notlar

  • Çalışmalarımı lab ortamında yaparım.
  • Amacım öğrenmek ve geliştirmek.
  • Etik her şeyin önünde gelir.

TryHackMe Ne Kattı?

Üstteki "TryHackMe" yazısına tıklayarak hesabımı inceleyebilirsiniz. Profilimi inceleyerek ne seviyede olduğum ve neler yaptığım hakkında bilgi edinebilirsiniz. Burada çok tekniğe girmeden, aslında pentest'in bir insana bilgisayar biliminin dışında neler kattığını ve benim neler öğrendiğimi anlatacağım.

Neler Öğrendim?

Aslına bakarsanız, bir programcı olun, bir mühendis olun — alanınız fark etmez — benim bu hayatta en çok sevdiğim şey düşünmektir. Zaten ortaokul yıllarımda daha çok strateji oyunları oynayan, kitap okuyan, din, felsefe ve edebiyat gibi konularla ilgilenen, matematikten nefret eden bir çocuktum. Harfleri toplamak ya da 100 km/s ile giden bir aracın A noktasına kaç dakikada ulaşacağını hesaplamak ilgimi çekerdi; ama yapamazdım ya da sıkıcı bulurdum. Aslında burada öğretilmeye çalışılanın ne araç ne de o nokta olduğunu fark ettim: amaç, bizi problem çözme yeteneği açısından ölçmektir. Tabii ki farklı amaçları da vardır.

Aslında buradaki olay "öğrenmeyi öğrenmek". Teknoloji sürekli kendini yenileyen bir şey. Örneğin lisede Arduino dersime giren öğretmene C ve C++ öğretilmişti; ama aynı öğretmen hem Arduino hem de SQL dersimize giriyordu. Yani teknoloji hep gelişen ve değişen bir şey; mesele ayak uydurmakta. Şu an birçok mühendis işsiz; içlerinde iyiler vardır ama önemli olan çaba göstermek ve kendini geliştirmektir. Bunun için "öğrenmeyi öğrenmek" gereklidir. Ben burada öğrenmeyi öğretmeyeceğim; bunu önce kendiniz öğrendikten sonra öğrenmeyi öğrenmiş olacaksınız.

Biraz Teknik Kısımlara İnelim

MR Robot CTF hakkında konuşayım. CTF çözerken biraz sabır ve analitik düşünme gerekir. Bu CTF, katmanlı bir yapıya sahip; keşif → servis keşfi → web enumerasyon (varsa) → credential harvesting → exploit (RCE/SQLi/LFI vb.) → pivot/privilege escalation → post-exploit keşif. Dediğim gibi biraz sabır gerekli.

Hack Your First Website

Web uygulamalarındaki temel zaafiyetleri keşfetmeyi ve güvenli ortamda pratik yapmayı anlatan bir TryHackMe CTF'si. Zaafiyet olarak söylecek olursam input validation eksiklikleri (XSS, SQLi), dosya yükleme kontrollerinin yetersizliği, yetki kontrolleri; benim en çok keyif aldığım ve bulduğumda heyecanlandığım açıklar IDOR ve kimlik doğrulama zayıflıklarıdır.

Blog (WordPress)

WordPress sitesi hacklemek benim için çok keyifli; çünkü bir wp-admin varsa genelde brute force ile ya da başka yöntemlerle erişim sağlanabiliyor ve dashboard'a erişince içerik ekleme gibi işlemler yapılabiliyor. Keşif taramasında WPScan, Nmap gibi araçlardan bahsetmek gerekir; WordPress için WPScan kullanımı faydalıdır. Ayrıca searchsploit ile bilinen exploitleri arayabilirsiniz. Örneğin:

wpscan --url http://target --enumerate u,p,vt,tt,cb,dbe --disable-tls-checks

Exploit bulduğunuzda, sürümü biliyorsanız searchsploit size uygun exploitleri listeler ve işinizi kolaylaştırır.

Genel Mantık

Aslında hepsinde aynı yol izleniyor: tarama → versiyon tarama → versiyona uygun exploit arama → olası açıkları arama → bulamadığınız takdirde siteyi daha da kurcalama → açık bulunduğunda uygulanacak işlem (shell alma, SSH erişimi vb.) → yetki yükseltme ve post-exploit işlemleri. Kısaca özetle böyle.