BAIBUSEC Header

Açık Kaynak Güvenlik Araçları

Siberle kalın, güvende kalın!

Metasploit ve Exploit Temelleri:Dijital Dünyada Güvenlik Neden Bu Kadar Önemli?

Hazırlayan: Beyza Dağ Dijitalleşme, yalnızca teknolojik bir ilerleme değil, aynı zamanda yaşam biçimimizin kökten değişmesi anlamına gelmektedir. Günümüzde bankacılık işlemleri, akademik çalışmalar, kamu hizmetleri, sağlık kayıtları ve hatta günlük iletişimimiz bile internet ve bilgisayar ağları üzerinden yürütülmektedir. Bu durum, bilgiye erişimi kolaylaştırırken aynı zamanda ciddi güvenlik risklerini de beraberinde getirmiştir. Bir sistemin “çalışıyor” olması, onun “güvenli” olduğu anlamına gelmez. Aksine, çalışır durumdaki birçok sistem arka planda ciddi güvenlik açıkları barındırabilir. Bu noktada şu temel soru ortaya çıkar:Bir sistemin gerçekten güvenli olup olmadığını nasıl anlayabiliriz? Fiziksel dünyada bir kapının sağlamlığını test etmek için onu zorlamak gerekiyorsa, dijital dünyada da sistemlerin güvenliği kontrollü ve bilinçli saldırılarla test edilir. Bu testlerin temelinde ise iki kritik kavram yer alır: Exploit ve Metasploit. Güvenlik Açığı (Vulnerability) ve Exploit Kavramı Bir yazılım ya da sistem tasarlanırken geliştiriciler çoğunlukla işlevselliğe odaklanır. Ancak yazılım ne kadar karmaşık hale gelirse hata yapma olasılığı da o kadar artar. İşte bu hatalar, güvenlik açığı (vulnerability) olarak adlandırılır. Güvenlik açığı tek başına çoğu zaman pasif bir problemdir. Asıl tehdit, bu açığın aktif olarak kullanılabilir hale gelmesiyle ortaya çıkar. Bu noktada exploit kavramı devreye girer. Exploit, bir güvenlik açığından yararlanarak sistem üzerinde yetkisiz işlem yapılmasını sağlayan kod, teknik veya yöntemdir. Basit bir benzetmeyle açıklamak gerekirse: Bu nedenle güvenlik dünyasında şu yaklaşım yaygındır:“Açık tek başına tehlike değildir; o açığın exploit edilebilir olması tehlikelidir.” Tablo 1: Güvenlik Açığı – Exploit – Payload İlişkisi Kavram Tanım Gerçek Hayat Benzetmesi Güvenlik Açısından Önemi Vulnerability (Güvenlik Açığı) Yazılım veya sistemde bulunan tasarım ya da kod hatası Kilidi bozuk kapı Saldırıya zemin hazırlar Exploit Güvenlik açığını kullanan yöntem veya kod Kapıyı açma tekniği Açığı aktif tehdide dönüştürür Payload Exploit sonrası çalışan kod Eve girdikten sonra yapılanlar Saldırının amacını belirler Exploit Türleri ve Kullanım Amaçları Exploit’ler, saldırının nereden ve nasıl gerçekleştirildiğine göre farklı kategorilere ayrılır. Bu sınıflandırma, güvenlik analizleri açısından oldukça önemlidir. Tablo 2: Exploit Türlerinin Karşılaştırılması Exploit Türü Erişim Şekli Kullanım Amacı Risk Seviyesi Örnek Senaryo Remote Exploit Uzaktan (ağ/internet) Sisteme ilk erişim Çok Yüksek Web sunucusuna uzaktan erişim Local Exploit Yerel (sistem içi) Yetki yükseltme Orta Kullanıcıdan root yetkisi alma Zero-Day Exploit Bilinmeyen açık Gizli saldırılar Kritik Yaması olmayan açıkların kullanımı Exploit Geliştirmenin Zorlukları Exploit yazmak, sanıldığı kadar kolay bir süreç değildir. Özellikle bellek tabanlı açıklar söz konusu olduğunda, saldırganın sistemin iç yapısını çok iyi anlaması gerekir. İşletim sisteminin bellek yönetimi, işlemci mimarisi, programlama dilleri ve derleyici davranışları bu sürecin temel bileşenleridir. Bu nedenle exploit geliştirme süreci genellikle şu bilgi alanlarını gerektirir: Her exploit geliştiricisi bu teknik bilgiye sahip değildir; ancak exploit mantığını anlamak ve hazır exploit’leri analiz edebilmek, siber güvenlik öğrencileri için temel bir yetkinliktir. Metasploit Framework Nedir? Metasploit, exploit geliştirme ve kullanma sürecini standartlaştıran, modüler hale getiren açık kaynaklı bir siber güvenlik framework’üdür. İlk olarak 2003 yılında H.D. Moore tarafından geliştirilmiştir. Daha sonra proje büyümüş, topluluk katkıları artmış ve Metasploit, güvenlik dünyasının en önemli araçlarından biri hâline gelmiştir. Metasploit’in temel amacı, exploit yazmayı kolaylaştırmak değil; exploit kullanım sürecini öğretmek ve güvenlik testlerini sistematik hâle getirmektir. Metasploit Nerede ve Nasıl Çalışır? Metasploit genellikle Kali Linux gibi sızma testi odaklı Linux dağıtımları üzerinde kullanılır. Grafik arayüzden çok, komut satırı (terminal) üzerinden çalışır. Metasploit başlatıldığında kullanıcıyı msfconsole adı verilen etkileşimli bir ortama alır. Bu ortam bir kontrol merkezi gibi çalışır ve kullanıcı burada: Bu yapı, Metasploit’i rastgele kullanılan bir saldırı aracı olmaktan çıkarıp akademik ve profesyonel bir test platformu hâline getirir. Metasploit Modüllerinin Mantığı Metasploit’in en güçlü yönlerinden biri modüler yapısıdır. Her modül, belirli bir görevi yerine getirir ve diğer modüllerle birlikte çalışır. Tablo 3: Metasploit Framework Modülleri Modül Türü Görevi Kullanım Aşaması Exploit Güvenlik açığını tetikler Sisteme giriş Payload Sistemde yapılacak işlemleri belirler Sızma sonrası Auxiliary Tarama ve bilgi toplama Keşif Post Ele geçirilen sistemde analiz Yetki sonrası Encoder Payload gizleme Güvenlik atlatma Exploit Yaşam Döngüsü Bir güvenlik açığının keşfedilmesinden aktif olarak kullanılabilir hâle gelmesine kadar geçen süreç exploit yaşam döngüsü olarak adlandırılır. Aşamalar şunlardır: Zero-day durumlarında ise exploit, yayımlanmadan gizli şekilde kullanılır. Metasploit bu yaşam döngüsünün özellikle analiz, test ve uygulama aşamalarında büyük kolaylık sağlar. Metasploit ile Tipik Bir Sızma Testi Süreci Gerçek bir sızma testi rastgele yapılmaz. Önce hedef sistem hakkında bilgi toplanır, ardından bu bilgiler analiz edilir. Uygun exploit ve payload seçildikten sonra saldırı kontrollü şekilde gerçekleştirilir. Başarılı olunursa sistem üzerindeki yetkiler değerlendirilir ve gerekli raporlama yapılır. Bu süreç, öğrencilerin siber saldırıların nasıl gerçekleştiğini adım adım anlamasını sağlar. Savunma Perspektifi: Neden Bunları Öğrenmeliyiz? Exploit ve Metasploit bilgisi yalnızca saldırı amaçlı değildir. Savunma sistemleri (IDS/IPS, EDR, SIEM) bu saldırı teknikleri bilinmeden doğru şekilde yapılandırılamaz. Bu yüzden Metasploit, savunma ekipleri için de vazgeçilmez bir eğitim aracıdır. Etik, Hukuki ve Akademik Sorumluluk Metasploit güçlü bir araçtır; izinsiz sistemlerde kullanımı hukuka aykırıdır. Üniversite düzeyinde bu konular etik hackerlık çerçevesinde ele alınmalı ve yalnızca kontrollü laboratuvar ortamlarında uygulanmalıdır. Metasploit ve exploit temelleri, siber güvenliğin arka planını anlamak isteyen herkes için kritik öneme sahiptir. Bu konular yalnızca teknik bilgi kazandırmakla kalmaz; aynı zamanda analitik düşünme, sistem yaklaşımı ve güvenlik farkındalığı geliştirir. Güçlü savunmalar, saldırganların yöntemlerini en iyi bilenler tarafından inşa edilir. KAYNAKÇA Varonis. What is Metasploit? A Comprehensive Overview. Varonis Blog.https://www.varonis.com/blog/what-is-metasploit  Hack The Box. Metasploit Tutorial. HackTheBox Blog.https://www.hackthebox.com/blog/metasploit-tutorial  TechTarget. Using Metasploit for Real‑World Security Tests.https://www.techtarget.com/searchsecurity/tip/Using-Metasploit-for-real-world-security-tests  Wikipedia. Metasploit. Türkçe Vikipedi.https://tr.wikipedia.org/wiki/Metasploit  Demirtürk, Kerem. Exploit ve Metasploit. Medium.https://keremdemirtrk.medium.com/exploit-ve-metasploit-a6d52d61d8ba  Beyaz.net. Metasploit Nedir?https://www.beyaz.net/tr/guvenlik/makaleler/metasploit_nedir.html  Exploit‑DB. Pen Testers Guide for Metasploit Framework (Türkçe PDF).https://www.exploit-db.com/docs/turkish/24132-[turkish]-pen-testers-guide-for-metasploit-framework.pdf ChatGPT – Bilgi ve içerik oluşturma için OpenAI tarafından geliştirilen ChatGPT modeli kullanılmıştır. Gemini AI – Blog içeriği oluşturulurken veri analizi ve örnek senaryolar için Gemini AI kaynaklarından yararlanılmıştır.

Read More

Kali Linux ve Araçlar

Hazırlayan: Çağrı Ceyhan Siber güvenlikte doğru aracı doğru zamanda kullanmak oldukça önemlidir. Kali Linux bu konuda adeta bir laboratuvar gibi çalışmaktadır. Yüzlerce saldırı, analiz ve savunma aracını tek bir sistemde birleştirmektedir. Bu yazımda Kali Linux’un sunduğu temel araç setlerini ele almaya çalışacağım. 1. Keşif (Reconnaissance) : Sızma testinin ilk aşaması bilgi toplamadır. Hedef sistem hakkında ne kadar çok veri elde edersen, sonraki adımlar o kadar sağlam olur. Bu aşamada ne kadar fazla -faydalı- veri toplanabilirse, saldırı yüzeyi o kadar genişleyecektir. 2. Tarama ve Zafiyet Analizi : Keşiften sonra hedef sistemi biraz daha irdelemek gerekmektedir. Servisler, kullanıcılar, işletim sistemleri hakkında detaylı bilgi toplamak bu aşamanın işidir. 3. Saldırı (Exploitation) : Elde edilen bilgilerle sisteme sızma denenir. Bu aşama risklidir, etik sınırları bilmeden asla yapılmamalıdır. 4. Raporlama ve Çıktı Analizi: Sızma testinin sonunda asıl önemli olan saldırı değil, rapordur. Doğru araçlar, sistemlerin zayıf noktalarını ortaya koyar; ama gerçek değer, bulguları anlamlandırıp kuruluş için eyleme dönüştürebilmektir. Kali’deki bu araçların kimin ve nasıl kullandığına bağlı olarak etkisi oldukça değişken olacaktır. Etik, sorumluluk ve tekrarlanabilir metodoloji olmadan teknik başarı yalnızca risk üretir. Neden Kali Linux sızma testlerinde tercih edilir? Aslında bu sorunun özünde “hazır laboratuvar” sağlama vaadi yatar. İçinde yüzlerce güvenlik aracı kurulu halde gelir, paket yönetimi ve bağımlılık çözümü bir güvenlik araştırmacısının zamanını araç kurmakla değil test yapmakla harcamasını sağlar. Ayrıca Offensive Security tarafından desteklenen ve güvenilirliği yüksek bir dağıtım olması, araçların uyumluluğu ve güncellenme açısından büyük avantaj sunar. Windows ile aynı sızma testi akışını yapmaya çalışsaydık, işi yapan araçların çoğu çalışır fakat tekrarlanabilirliği ve akıcılığı kısmında problemler yaşanabilirdi. Öncelikle araç kurulumları ve bağımlılıklar Windows’ta daha sık kafa karıştırmaktadır. Linux’ta tek bir paket yöneticisiyle çözülen şeyler, Windows’ta farklı kurulumlar, PATH ayarları veya ek araçlar gerektirebilir. KAYNAKÇA

Read More

Linux’ta Paket Yöneticileri 

Hazırlayan:  Sedefnaz Durukan Temel Kavramlar  1. Paket Yöneticisi (package manager)  Paket yöneticisi, sistemdeki yazılımların ‘kurulumunu, kaldırılmasını, güncellenmesini ve yönetimini’ sağlayan araçtır.  İşlevleri şu şekilde sıralanabilir: Uygun depolardan paket indirir, bağımlılıkları çözer, paketleri doğru dizinlere yerleştirir, kurulum sonrası yapılandırmaları yapar, güncelleme ve kaldırma işlemlerini yönetir.  2. Paket (package)  Bir “paket”, Linux’ta bir yazılımın (program, araç, kütüphane, sürücü vb.) tüm bileşenlerini içeren sıkıştırılmış bir dosyadır.  İçeriği şunlardan oluşur;  3. Depo(repository)  Depolar, paketlerin uzaktan indirildiği sunuculardır. Bir anlamda Linux’un “uygulama mağazaları”dır.  Özellikleri:  4. Bağımlılık (dependency)  Bir yazılımın çalışması için gerekli olan başka yazılımlar veya kütüphanelerdir. Linux’ta çoğu yazılım, başka bir kütüphaneye bağlı olarak çalışır.  !! Bağımlılık cehennemi (dependency hell):  Bağımlılıkların çakışması veya sürüm uyumsuzluğu nedeniyle sistemin bozulması anlamına gelir.  5. Bağımlılık Çözümleyici (dependency resolver)  Bir paketi kurarken veya kaldırırken, diğer paketlerin etkilenip etkilenmeyeceğini analiz eder.  6. Konfigürasyon Dosyaları (configuration files)  Paket yöneticisinin hangi depoları kullanacağını, nasıl davranacağını belirleyen dosyalardır.  Kullanılan Paket Yöneticileri  İşletim sistemi paket yöneticileri  Yazılım paket yöneticileri  En Çok Bilinen Paket Yöneticileri   “APT”, Debian tabanlı Linux dağıtımlarında kullanılan bir paket yönetim sistemidir. macOS için de “MacPorts”, “Homebrew” bilinen paket yöneticilerdir. JavaScript paketleri için “npm, yarn, bower” en çok bilinen paketlerden birkaçıdır.  Paket Yöneticilerinin Temel Özellikleri  Bir paket yöneticisi öncelikle paket edinme sürecinde paketin doğruluğunu ve bütünlüğünü kontrol etmelidir. Bu süreç checksum kontrolü olarak ifade edilir. Sonrasında, paketin kaynağının kimlik doğrulamasını yapabilmelidir. Bu tür doğrulama süreçlerinde sayısal imzalar kullanılmaktadır. Güncelleme, güncelleme takibi ve güncellemelerin depo üzerinden gerçekleştirilmesi (yine kaynak doğrulama ve paket kontrolü ile birlikte). Paketin ihtiyacı olan uygulamalar ve/veya diğer paketler ile birlikte kurulduğundan emin olmak için bağımlılık yönetimi yapmak. Paketlerin hataya sebebiyet vermeyecek şekilde yapılandırılması / kaldırılması. Kullanılan tüm bağımlılıkları / paketleri çeşitli bilgilerle (metadata) birlikte (name, description, version number, vendor, checksum, dependencies…) kayıt altında tutarlar (örneğin package.json bir local package database’dir) ve yeri geldiğinde indirme-güncelleme-kaldırma işlemlerini tek bir komutla uygularlar. Bir başka alanda tüm bağımlılıklar yerine bu dosyaların kullanılması yeterli olacaktır. Gerisini paket yöneticisi kendisi halletmektedir.  Paket Yöneticilerinin Avantaj Ve Dezavantajları  Genel Avantajlar:  Genel Dezavantajlar  Bilindik ailelere göre avantaj/dezavantaj  APT (Debian, Ubuntu, Kali)  Avantajları:   Dezavatnajları:  DNF/YUM (Red Hat, Fedora, CentOS)  Avantajları:  Dezavantajları:  PACMAN (Arch, Manjaro)  Avantajları:  Dezavantajları:  Zypper (openSUSE)  Avantajları:  Dezavantajları:  Paket Yöneticilerinin Uygun Kullanıcı Tipleri  Paket Yöneticisi  Kullanıldığı Dağıtımlar  Uygun Kullanıcı Tipi  Neden Uygun Olduğu  APT (Advanced Package Tool)  Ubuntu, Debian, Linux Mint, Kali   Yeni başlayan / ️ Orta seviye  Kullanımı kolay, kararlı ve geniş depo desteği var. “apt install” ile her şey çözülür.  DPKG (Debian Package Manager)  Debian tabanlı sistemlerin çekirdeği   Geliştiriciler  Manuel kontrol imkânı sağlar, sistem düzeyinde paket yönetimi için uygundur.  DNF / YUM  Fedora, CentOS, RHEL   Sistem yöneticileri / Orta seviye  Kurumsal ortamlarda kararlıdır, güvenlik yamaları hızlı gelir. “Enterprise” odaklıdır.  RPM (Red Hat Package Manager)  Red Hat tabanlı tüm sistemler   Geliştirici /  Sistem yöneticisi  Manuel kontrol sağlar, kurumsal üretim ortamlarında tercih edilir.  PACMAN  Arch Linux, Manjaro  Deneysel kullanıcı /  Geliştirici  Rolling-release (sürekli güncel) yapı sunar, performans odaklıdır. Hızlı ama dikkat ister.  Zypper  openSUSE  ️ Orta seviye /  Sistem yöneticisi  Güçlü bağımlılık çözümü, kararlılık ve yönetim araçlarıyla kurumsal sistemler için uygundur.  Flatpak  Tüm dağıtımlar  Yeni başlayan / Geliştirici  Her dağıtımda çalışır, güvenli (sandboxed) yapıdadır, yeni yazılım denemek için idealdir.  Snap  Ubuntu ve türevleri  Yeni başlayan /  Geliştirici  Otomatik güncellemeli, bağımsız çalışır, terminal bilgisi az olanlar için kolay.  AppImage  Tüm dağıtımlar   Yeni başlayan /  Deneysel  Kurulum gerektirmez, taşınabilir. Ancak güncelleme manuel yapılır.  Paket Yöneticilerinin Bağlı Olduğu Aile Ve Dağıtımlar  Aile  Dağıtımlar  Paket Yöneticisi  Debian  Ubuntu, Kali, Mint  apt, dpkg  Red Hat  Fedora, CentOS  dnf, rpm  Arch  Manjaro, EndeavourOS  pacman  openSUSE  openSUSE Leap, Tumbleweed  zypper  Evrensel  Her dağıtım  flatpak, snap, AppImage  Bazı Paket Yöneticilerinin Özelliklerinin Tablosu  Özellik  APT  DNF  Pacman  Zypper  Flatpak  Paket uzantısı  .deb  .rpm  .pkg.tar.zst  .rpm  .flatpak  Depo tipi  /etc/apt/sources.list  /etc/yum.repos.d/  /etc/pacman.conf  /etc/zypp/repos.d/  Uygulama tabanlı  Bağımlılık çözümü  Otomatik  Otomatik  Otomatik  Otomatik  İzole  GUI desteği  Synaptic  GNOME Software  Pamac  YaST  GNOME Software  Hız  Orta  Orta  Hızlı  Orta  Değişken  Kaynakça 

Read More