Nuclei ile Tarama (Detaylı Anlatım ve Güncel Uygulama Teknikleri)

Nuclei, Project Discovery tarafından geliştirilen, YAML tabanlı şablonlar kullanarak hızlı, özelleştirilebilir ve yüksek doğrulukta zafiyet taramaları yapmanıza olanak tanıyan açık kaynaklı bir tarama motorudur . Gerçek dünya koşullarını taklit eden özel zafiyet tespit senaryoları tasarlamanıza olanak tanıyarak sıfır hatalı pozitif sonuç sağlamayı hedefler .


Nuclei Nedir ve Neden Kullanılır?​

Nuclei, web uygulamaları, altyapı, bulut ortamları ve ağlardaki güvenlik açıklarını, yanlış yapılandırmaları ve açıkta kalan servisleri tespit etmek için kullanılır . nuclei-templates deposu, binlerce topluluk katkılı şablon içerir ve bu sayede güncel zafiyetlere karşı hızlıca tarama yapabilirsiniz.

Nuclei'nin Avantajları:

  • Hızlı ve Paralel: Ultra hızlı paralel tarama işleme ve istek kümeleme desteği .
  • Esnek ve Özelleştirilebilir: YAML tabanlı şablonlar sayesinde kendi test senaryolarınızı kolayca oluşturabilirsiniz .
  • Çoklu Protokol Desteği: HTTP, DNS, TCP, SSL, WHOIS, JavaScript ve daha fazlasını destekler .
  • CI/CD Entegrasyonu: Güvenlik açığı tespiti ve regresyon testi için CI/CD hatlarına entegre edilebilir .

Nuclei Kurulumu​

Nuclei, Go programlama dili ile yazılmıştır. Kurulum için Go'nun (sürüm >= 1.21) sisteminizde yüklü olması gerekir .

Kurulum Komutu:

bash
go install -v github.com/projectdiscovery/nuclei/v3/cmd/nuclei@latest

Şablonları Güncelleme:
Nuclei'nin en güncel şablonlara sahip olması için aşağıdaki komutu çalıştırın:

bash
nuclei -update-templates


Temel Kullanım Komutları​

1. Tek Hedef Tarama​

Bir web uygulamasında hızlı bir tarama yapmak için:

bash
nuclei -u https://hedef.com

2. Dosyadan Hedef Listesi ile Tarama​

Birden fazla hedefi -l parametresi ile tarayabilirsiniz:

bash
nuclei -l hedefler.txt

3. Belirli Bir Şablon ile Tarama​

Özel bir şablon veya belirli bir CVE şablonu kullanmak için:

bash
nuclei -u https://hedef.com -t cves/CVE-2021-44228.yaml
nuclei -u https://hedef.com -t /path/to/your-template.yaml

4. Şablonları Filtreleme​

  • Ciddiyet (Severity) ile Filtreleme:
bash
nuclei -u https://hedef.com -severity critical,high
  • Etiket (Tag) ile Filtreleme:
bash
nuclei -u https://hedef.com -tags cve,rce

  • Yeni Şablonları Çalıştırma:
    Sadece en son güncellemede eklenen yeni şablonları çalıştırmak için:
bash
nuclei -u https://hedef.com -nt

5. Tüm Şablonları Listeleme​

Mevcut tüm şablonları listelemek için:

bash
nuclei -tl
Etiket veya ciddiyet ile filtreleyerek listeleyebilirsiniz:

bash
nuclei -tags cve -severity critical,high -tl

6. Raporlama​

Tarama sonuçlarını Markdown formatında raporlamak için:

bash
nuclei -u https://hedef.com -markdown-export ./
-include-rr parametresi ile istek ve yanıtları rapora dahil edebilirsiniz .


Şablon Yapısı (Template Structure)​

Nuclei şablonları YAML formatında yazılır. Temel bir şablon aşağıdaki gibi yapılandırılır:

yaml
id: example-template # Benzersiz kimlik
info:
name: Example Vulnerability Check
author: Your Name
severity: medium
description: This template checks for an example vulnerability.
tags: example,misc

requests:
- method: GET
path:
- "{{BaseURL}}/vulnerable-path"
matchers:
- type: word
words:
- "vulnerable string"

Şablon Bileşenleri:​

  • id: Şablonun benzersiz kimliği .
  • info: Şablon hakkında meta veriler (name, author, severity, description, tags) .
  • requests: Yapılacak HTTP istekleri (method, path, headers, body) .
  • matchers: Yanıtın değerlendirilmesi için kullanılan koşullar (word, status, regex) .
  • extractors: (İsteğe bağlı) Yanıttan belirli bilgileri çıkarmak için kullanılır .

Gelişmiş Özellikler (v3 ve Sonrası)​

1. Flow (Akış) Motoru​

Nuclei v3 ile gelen Flow özelliği, JavaScript (ECMAScript 5.1) kullanarak şablonlara koşullu mantık eklemenize ve istekleri orkestre etmenize olanak tanır .

Örnek: WordPress Brute Force (Koşullu Çalıştırma)
Bu örnekte, hedefin WordPress olup olmadığı kontrol edilir (http(1)); eğer öyleyse brute force işlemi başlatılır (http(2)).

yaml
id: wordpress-bruteforce
info:
name: WordPress Login Bruteforce
severity: high

flow: http(1) && http(2)

http:
- method: GET
path:
- "{{BaseURL}}/wp-login.php"
matchers:
- type: word
words:
- "WordPress"

- method: POST
path:
- "{{BaseURL}}/wp-login.php"
body: |
log={{username}}&pwd={{password}}&wp-submit=Log+In
attack: clusterbomb
payloads:
users: helpers/wordlists/wp-users.txt
passwords: helpers/wordlists/wp-passwords.txt
matchers:
- type: dsl
dsl:
- status_code == 302
- contains_all(header, "/wp-admin","wordpress_logged_in")
condition: and

2. Authenticated Scanning (Kimlik Doğrulamalı Tarama)​

Nuclei v3.2 ile gelen bu özellik, kimlik doğrulaması gerektiren hedefleri taramanıza olanak tanır. secrets.yaml dosyası üzerinden kimlik bilgileri sağlanabilir .

3. Gelişmiş Fuzzing Desteği​

Nuclei v3.2, Header, Cookie, Path ve Body (JSON, XML, Form) gibi çeşitli bileşenler üzerinde fuzzing yapmanıza olanak tanır. Bu sayede bilinmeyen veya henüz keşfedilmemiş zafiyetleri tespit edebilirsiniz .


Nuclei Kullanımında Dikkat Edilecek Noktalar​

  1. Yasal ve Etik Kullanım: Taramaları yalnızca izniniz olan sistemler üzerinde gerçekleştirin .
  2. Rate Limiting: Hedef sistemi zorlamamak için -rl (rate-limit) parametresi ile istek hızını sınırlandırın .
  3. Özel Şablonlar: Topluluk şablonlarına ek olarak, hedefe özel şablonlar geliştirmek, benzersiz zafiyetleri tespit etmede kritik öneme sahiptir .
  4. Doğrulama: Nuclei'nin YAML şablonlarını çalıştırmadan önce -validate bayrağı ile doğrulayın .

Nuclei Kullanım Senaryoları (Pratik Örnekler)​

1. CVE Taraması​

bash
# Log4j zafiyeti (CVE-2021-44228) için tarama
nuclei -u https://hedef.com -t cves/CVE-2021-44228.yaml

2. Backup Dosyası Keşfi​

bash
# Backup dosyalarını tespit eden özel şablon
nuclei -u https://hedef.com -t backup-file-finder.yaml

3. Ağ Taraması​

bash
# Bir alt ağı tarama
nuclei -target 192.168.1.0/24

4. CI/CD Pipeline Entegrasyonu​

Nuclei, sürekli entegrasyon süreçlerine entegre edilerek her yeni dağıtımda güvenlik testlerinin otomatik olarak çalıştırılmasını sağlar .


🔒 Bu içeriği görmek için giriş yapın

 
Yanıt yazmak için giriş yapmalısınız
Forum özelliklerini kullanmak ve Level 2 üyelik satın almak için hesabınıza giriş yapın.
133,661Konular
3,288,226Mesajlar
324,330Kullanıcılar
Üst Alt