- Haziran 21, 2024
- Eren Gözaydın
- 0
Project Discovery Nuclei Kullanımı ve Template Oluşturma: Kapsamlı Rehber
🔍 Siber güvenlik dünyasında bir adım öne çıkmak ve zaman kazanmak istiyorsanız, Nuclei tam size göre bir araç! Ancak, bu güçlü aracı etkili bir şekilde kullanmak için kapsamlı bir rehbere ihtiyacınız olabilir. İşte tam da bu noktada devreye giriyoruz!
💡 Nuclei’nin temellerinden başlayarak, özel template’ler oluşturmaya ve ileri düzey tekniklere kadar uzanan bu rehber, sizi adım adım Nuclei kullanımında uzmanlaştıracak. Sadece kullanmayı öğrenmekle kalmayacak, aynı zamanda Nuclei ekosistemini nasıl genişletebileceğinizi de keşfedeceksiniz.
Bu blog yazımızda, Nuclei’nin temellerini inceleyerek başlayacağız. Ardından, adım adım kullanım kılavuzu ile devam edip, template’ler hakkında derinlemesine bilgi vereceğiz. Özel template oluşturma, ileri düzey teknikler ve en iyi kullanım örnekleriyle bilgilerinizi pekiştirecek, son olarak da Nuclei ekosisteminin nasıl genişletilebileceğini ele alacağız. Hazırsanız, Nuclei dünyasına heyecan verici bir yolculuğa çıkalım! 🚀
Nuclei'nin Temelleri
A. Nuclei nedir ve neden önemlidir?
Nuclei, güvenlik uzmanları ve etik hackerlar için geliştirilmiş güçlü bir açık kaynak güvenlik tarama aracıdır. Bu araç, web uygulamaları, API’ler ve ağ sistemlerindeki güvenlik açıklarını hızlı ve etkili bir şekilde tespit etmek için kullanılır. Nuclei’nin önemi, özelleştirilebilir template’leri sayesinde geniş bir yelpazede güvenlik testleri yapabilmesinden kaynaklanır.
B. Nuclei kurulumu ve temel konfigürasyonu
Nuclei’yi kurmak oldukça basittir. İşte adım adım kurulum süreci:
Go programlama dilini yükleyin
Terminal veya komut satırında şu komutu çalıştırın:
go install -v github.com/projectdiscovery/nuclei/v2/cmd/nuclei@latest
Nuclei’yi PATH’e ekleyin
Temel konfigürasyon için nuclei-config.yaml
dosyasını düzenleyebilirsiniz. Bu dosyada çıktı formatı, hız limitleri ve proxy ayarları gibi seçenekleri özelleştirebilirsiniz.
C. Nuclei’nin avantajları ve kullanım alanları
Avantajlar | Kullanım Alanları |
---|---|
Hızlı tarama | Web uygulamaları |
Özelleştirilebilir template’ler | API güvenlik testleri |
Düşük yanlış pozitif oranı | Ağ sistemleri taraması |
Geniş topluluk desteği | IoT cihaz güvenliği |
Nuclei, bu avantajları sayesinde güvenlik uzmanlarının işlerini daha verimli hale getirmektedir.
D. Nuclei’nin güvenlik testlerindeki rolü
Nuclei, güvenlik testlerinde kritik bir rol oynamaktadır. Özellikle:
Otomatik güvenlik taramaları
Özel güvenlik açığı tespiti
Sürekli entegrasyon/sürekli dağıtım (CI/CD) pipeline’larında güvenlik kontrolü
Büyük ölçekli altyapılarda hızlı güvenlik değerlendirmesi
Bu özellikler, Nuclei’yi modern güvenlik testlerinin vazgeçilmez bir parçası haline getirmektedir. Şimdi, Nuclei’nin nasıl kullanıldığını daha detaylı bir şekilde inceleyeceğiz.
Nuclei Kullanımının Adım Adım İncelenmesi
Komut Satırı Arayüzünün Tanıtılması
Nuclei’nin güçlü komut satırı arayüzü, kullanıcılara tarama işlemlerini hızlı ve etkili bir şekilde gerçekleştirme imkanı sunar. İşte Nuclei’nin temel komut satırı kullanımı:
nuclei -target <hedef> -templates <şablon_dosyası>
Bu basit komut, belirtilen hedefe karşı seçilen şablonları çalıştırır.
Tarama Seçeneklerinin Açıklanması
Nuclei, çeşitli tarama seçenekleri sunar:
Seçenek | Açıklama |
---|---|
-c | Eşzamanlı istek sayısını belirler |
-rate-limit | Saniyedeki istek sayısını sınırlar |
-timeout | İstek zaman aşımı süresini ayarlar |
-retries | Başarısız isteklerin tekrar deneme sayısını belirler |
Hedef Belirleme ve Tarama Başlatma
Hedef belirleme, Nuclei’nin en önemli adımlarından biridir. Hedefler şu şekillerde belirlenebilir:
Tek bir URL:
-target https://example.com
Birden fazla URL:
-list hedefler.txt
CIDR aralığı:
-target 192.168.0.0/24
Tarama başlatmak için:
nuclei -target https://example.com -templates cves/ -severity high,critical
Bu komut, yüksek ve kritik önem düzeyindeki CVE şablonlarını kullanarak belirtilen hedefe karşı tarama yapar.
İleri Düzey Nuclei Kullanım Teknikleri
İleri düzey kullanıcılar için Nuclei, daha karmaşık tarama senaryoları sunar:
Özel HTTP başlıkları ekleme:
-H "User-Agent: Custom-Agent"
Proxy kullanımı:
-proxy http://127.0.0.1:8080
Çıktı filtreleme:
-filter-severity medium,high
Sonuçların Yorumlanması ve Raporlama
Nuclei, tarama sonuçlarını çeşitli formatlarda sunabilir:
JSON formatında çıktı:
-json-output sonuclar.json
HTML raporu oluşturma:
-report-html rapor.html
Sonuçları yorumlarken, önem derecesi, etki alanı ve güvenlik açığının türüne dikkat edilmelidir.
Nuclei’nin bu kapsamlı özellikleri, güvenlik uzmanlarına hedeflerini etkili bir şekilde tarama ve analiz etme imkanı sağlar. Bir sonraki bölümde, Nuclei şablonlarının derinlemesine incelemesine geçeceğiz.
Nuclei Template'leri Hakkında Derinlemesine Bilgi
Template seçimi ve optimizasyonu
Nuclei template’lerini etkili bir şekilde kullanmak için doğru seçim ve optimizasyon kritik öneme sahiptir. Template seçerken, hedef sistemin özelliklerini ve tarama amacınızı göz önünde bulundurmalısınız. Optimizasyon için ise, gereksiz kontrolleri kaldırarak ve paralel çalışma sayısını artırarak tarama süresini kısaltabilirsiniz.
Mevcut template’lerin keşfi ve kullanımı
Nuclei’nin geniş template kütüphanesi, çeşitli güvenlik açıklarını tespit etmek için hazır çözümler sunar. Bu template’leri keşfetmek için Nuclei’nin resmi GitHub deposunu inceleyebilir veya -update-templates
parametresini kullanarak en güncel template’leri indirebilirsiniz.
Farklı template türlerinin incelenmesi
Nuclei, çeşitli tarama senaryolarına uygun farklı template türleri sunar:
Template Türü | Açıklama | Kullanım Alanı |
---|---|---|
HTTP | Web uygulamaları için | API, web servisleri |
DNS | Alan adı sorguları | Subdomain keşfi |
Network | Ağ protokolleri | Port taraması |
File | Dosya sistemi | Yerel güvenlik |
Template yapısının anlaşılması
Nuclei template’leri YAML formatında yazılır ve belirli bir yapıya sahiptir:
info
: Template hakkında genel bilgilerrequests
: Yapılacak isteklerin detaylarımatchers
: Sonuçların nasıl değerlendirileceği
Template yapısını anlamak, özelleştirme ve hata ayıklama süreçlerinde büyük avantaj sağlar.
Nuclei template’lerini etkili bir şekilde kullanmak, güvenlik testlerinizin verimliliğini artıracak ve daha kapsamlı sonuçlar elde etmenizi sağlayacaktır. Bir sonraki bölümde, kendi özel template’lerinizi nasıl oluşturabileceğinizi öğreneceksiniz.
Özel Nuclei Template'leri Oluşturma
Nuclei’nin güçlü yanlarından biri, özel template’ler oluşturabilme yeteneğidir. Bu bölümde, kendi template’lerinizi nasıl oluşturacağınızı adım adım öğreneceksiniz.
A. Değişkenler ve dinamik içerik ekleme
Template’lerinizi daha esnek ve yeniden kullanılabilir hale getirmek için değişkenler kullanabilirsiniz. Örneğin:
variables:
hostname: "{{Hostname}}"
port: "{{Port}}"
requests:
- method: GET
path:
- "{{hostname}}:{{port}}/api/users"
Bu örnekte, hostname
ve port
değişkenleri, template’in farklı hedeflerde kullanılabilmesini sağlar.
B. Template’leri test etme ve hata ayıklama
Template’lerinizi oluşturduktan sonra test etmek çok önemlidir. Nuclei’nin -validate
bayrağını kullanarak template’inizi doğrulayabilirsiniz:
nuclei -t your-template.yaml -validate
Hata ayıklama için -debug
bayrağını kullanabilirsiniz:
nuclei -t your-template.yaml -debug
C. Koşullu ifadeler ve mantıksal operatörler kullanma
Koşullu ifadeler, template’lerinizi daha akıllı hale getirir. Örneğin:
matchers-condition: and
matchers:
- type: status
status:
- 200
- type: word
words:
- "success"
condition: and
Bu örnek, hem durum kodu 200 olduğunda hem de yanıtta “success” kelimesi geçtiğinde eşleşme sağlar.
D. YAML sözdizimi ve yapısı
Bölüm | Açıklama |
---|---|
id | Template’in benzersiz tanımlayıcısı |
info | Template hakkında meta bilgiler |
requests | İsteklerin tanımlandığı bölüm |
matchers | Eşleşme kriterlerinin belirlendiği bölüm |
E. Template yazmanın temel prensipleri
Açık ve anlaşılır olun: Template’inizi başkaları da kullanabilir.
Yeniden kullanılabilirlik: Mümkün olduğunca genel ve esnek yazın.
Performansı düşünün: Gereksiz isteklerden kaçının.
Güvenlik: Hedef sisteme zarar vermeyecek şekilde tasarlayın.
Belgelendirme: Template’inizin nasıl çalıştığını açıklayan yorumlar ekleyin.
Bu temel prensipleri takip ederek, etkili ve güvenilir Nuclei template’leri oluşturabilirsiniz. Bir sonraki bölümde, daha ileri düzey template tekniklerini inceleyeceğiz.
İleri Düzey Template Teknikleri
Güvenlik açıklarını özelleştirme ve genişletme
Nuclei template’lerini daha etkili hale getirmek için güvenlik açıklarını özelleştirmek ve genişletmek önemlidir. Bu süreçte, mevcut açıklıkları analiz ederek ve yeni saldırı vektörlerini keşfederek template’lerinizi geliştirebilirsiniz. Örneğin, bir SQL enjeksiyon açığını tespit eden bir template’i, farklı veritabanı türlerine özgü payload’ları içerecek şekilde genişletebilirsiniz.
Performans optimizasyonu için ipuçları
Nuclei template’lerinin performansını artırmak, tarama sürecini hızlandırır ve kaynakları daha verimli kullanmanızı sağlar. İşte bazı optimizasyon ipuçları:
Gereksiz istekleri azaltın
Koşullu mantık kullanarak gereksiz kontrolleri atlayın
Paralel işleme özelliklerinden yararlanın
Önbelleğe alma mekanizmalarını kullanın
Otomasyon ve entegrasyon için makrolar kullanma
Makrolar, template’lerinizi daha dinamik ve esnek hale getirmenize olanak tanır. Nuclei’nin sunduğu makro özelliklerini kullanarak, template’lerinizi otomatikleştirebilir ve diğer güvenlik araçlarıyla entegre edebilirsiniz. Örneğin:
| Makro Türü | Örnek Kullanım | Açıklama |
|------------|----------------|----------|
| Değişkenler | `{{baseURL}}` | Hedef URL'yi dinamik olarak ayarlar |
| Fonksiyonlar | `{{base64_encode()}}` | Veriyi base64 formatına kodlar |
| Koşullar | `{{if condition}}...{{end}}` | Koşullu mantık uygular |
Çoklu adımlı template’ler oluşturma
Karmaşık güvenlik açıklarını tespit etmek için çoklu adımlı template’ler oluşturabilirsiniz. Bu yaklaşım, bir dizi işlemi sırayla gerçekleştirmenize ve her adımın sonucuna göre sonraki adımları belirlemenize olanak tanır. Çoklu adımlı template’ler şunları içerebilir:
Ön kontroller ve keşif
Açık tespiti ve doğrulama
Exploit denemesi
Sonuç raporlama ve temizleme
Bu ileri düzey teknikler, Nuclei template’lerinizin etkinliğini ve verimliliğini artırarak, daha kapsamlı ve güvenilir güvenlik taramaları gerçekleştirmenize yardımcı olacaktır. Şimdi, bu teknikleri uygulamaya koyarak Nuclei ve template’lerin en iyi kullanım örneklerini inceleyeceğiz.
Nuclei ve Template'lerin En İyi Kullanım Örnekleri
Nuclei ve özel templateler, güvenlik testlerinde ve değerlendirmelerinde güçlü araçlardır. İşte bu araçların en etkili kullanım alanları:
Sürekli entegrasyon ve dağıtım (CI/CD) pipeline’larına entegrasyon
Nuclei, CI/CD süreçlerine sorunsuz bir şekilde entegre edilebilir. Bu entegrasyon, her kod değişikliğinde veya dağıtımda otomatik güvenlik taramaları yapılmasını sağlar.
CI/CD pipeline’ına Nuclei ekleme adımları:
Nuclei’yi pipeline ortamına yükleme
Özel templateler ve tarama parametreleri tanımlama
Tarama sonuçlarını raporlama ve analiz etme
API güvenlik değerlendirmeleri
Nuclei, API’ların güvenliğini test etmek için mükemmel bir araçtır. Özel templateler kullanarak, API’ların zayıf noktalarını hızlı ve etkili bir şekilde tespit edebilirsiniz.
API Güvenlik Testi | Nuclei Template Örneği |
---|---|
Kimlik doğrulama | auth-bypass.yaml |
Yetkilendirme | api-access-control.yaml |
Veri doğrulama | input-validation.yaml |
Altyapı ve ağ taramaları
Nuclei, geniş ağ altyapılarını taramak için kullanılabilir. Özel templateler oluşturarak, belirli sistemleri veya hizmetleri hedefleyebilirsiniz.
Altyapı tarama örnekleri:
Açık portların tespiti
Zayıf şifreleme protokollerinin belirlenmesi
Güncel olmayan yazılımların tespit edilmesi
Web uygulaması güvenlik testleri
Nuclei, web uygulamalarındaki güvenlik açıklarını tespit etmek için ideal bir araçtır. OWASP Top 10 gibi yaygın güvenlik risklerini hedefleyen özel templateler oluşturabilirsiniz.
Web uygulaması güvenlik testi senaryoları:
SQL Injection
Cross-Site Scripting (XSS)
Broken Authentication
Insecure Direct Object References (IDOR)
Bu kullanım örnekleri, Nuclei ve özel templatelerinin güvenlik testlerinde ne kadar çok yönlü ve etkili olabileceğini göstermektedir. Bir sonraki bölümde, Nuclei ekosisteminin nasıl genişletilebileceğini ve daha ileri düzey kullanım senaryolarını inceleyeceğiz.
Nuclei Ekosisteminin Genişletilmesi
Katkıda bulunma ve açık kaynak topluluğuna katılma
Nuclei’nin açık kaynak yapısı, güvenlik topluluğunun aktif katılımını teşvik eder. GitHub üzerinden projeye katkıda bulunabilir, hata raporları gönderebilir veya yeni özellikler önerebilirsiniz. Açık kaynak topluluğuna katılmak, sadece Nuclei’yi geliştirmekle kalmaz, aynı zamanda kendi becerilerinizi de geliştirir.
Nuclei ile ilgili güncel gelişmeler ve yol haritası
Nuclei sürekli olarak gelişmekte ve yeni özellikler eklenmektedir. Projenin resmi GitHub sayfasını ve blog’unu takip ederek güncel kalmak önemlidir. İşte Nuclei’nin yakın gelecekteki bazı hedefleri:
Daha hızlı tarama performansı
Gelişmiş raporlama özellikleri
Yeni protokol destekleri
Eklentiler ve üçüncü taraf entegrasyonları
Nuclei’nin esnekliği, çeşitli eklentiler ve entegrasyonlar aracılığıyla genişletilebilmesini sağlar. Bazı popüler eklentiler ve entegrasyonlar şunlardır:
Eklenti/Entegrasyon | Açıklama |
---|---|
Nuclei-Templates | Hazır template koleksiyonu |
Interactsh | OAST için etkileşimli sunucu |
Subfinder | Alt alan keşfi entegrasyonu |
Topluluk katkıları ve kaynakları
Nuclei topluluğu, çeşitli kaynaklar ve katkılarla ekosistemi zenginleştirir:
Custom template koleksiyonları
Eğitim videoları ve blog yazıları
Nuclei kullanımına dair ipuçları ve en iyi uygulamalar
Bu topluluk katkıları, Nuclei’nin sürekli gelişen ve güçlenen bir ekosistem olmasını sağlar. Siz de bu ekosisteme katılarak hem öğrenebilir hem de katkıda bulunabilirsiniz.
Nuclei, güvenlik testleri ve zafiyet taramaları için güçlü bir araç olarak öne çıkıyor. Bu rehberde, Nuclei’nin temellerinden başlayarak ileri düzey tekniklere kadar geniş bir yelpazede bilgi edindik. Özel template’ler oluşturma ve bunları etkili bir şekilde kullanma konusunda pratik öneriler paylaştık.
Güvenlik profesyonelleri ve etik hacker’lar için Nuclei, vazgeçilmez bir araç haline gelmiştir. Sürekli gelişen siber tehdit ortamında, Nuclei gibi esnek ve güçlü araçları kullanmak ve kendi ihtiyaçlarınıza göre özelleştirmek kritik öneme sahiptir. Nuclei’yi keşfetmeye ve kendi güvenlik stratejilerinizde uygulamaya başlayarak, siber güvenlik yeteneklerinizi bir üst seviyeye taşıyabilirsiniz.