Terminal ve Ağ Araçları Cheatsheet: Günlük Güvenlik İş Akışı

Günlük güvenlik çalışmalarında terminal, ağ gözlemi ve dokümantasyon için kullanılan temel araç kategorileri.

8 dk okuma
ibrahimsql
1.562 kelime

Terminal ve Ağ Araçları Cheatsheet#

Güvenlik çalışmalarında araç bilgisi önemlidir, fakat asıl değer hangi aracı ne zaman kullanacağını bilmektir. Bu cheatsheet, günlük iş akışında sık kullanılan araç kategorilerini güvenli ve düzenli bir çerçevede özetler.

Cheatsheet'in amacı; bir operatörün sabah kahvesini alırken başvurabileceği, kapsam, hız ve loglama disiplinini hatırlatan bir çalışma kağıdı olmaktır.

Threat Model: Operatör Neye Karşı Sorumlu?#

Bir güvenlik operatörü üç hatadan sorumludur:

  1. Yanlış hedefe trafik: kapsam dışı bir IP'ye yanlışlıkla paket göndermek.
  2. Kendi ağını tıkamak: yüksek hızlı taramayla servis düşürmek.
  3. Kanıtsız bulgu: tekrar üretilemeyen bir iddiayı rapora koymak.

Bu yüzden her komut üç şeyi taşısın: kapsam, hız, çıktı yolu.

nmap -sV --top-ports 100 -T3 -oA scans/target-$(date +%F) target # ^^^^ hız: T3 ^^^ kapsam: top-ports 100 # ^^^ çıktı yolu: scans/

Trust Boundaries: Hangi Ağda Ne Çalışır?#

[kendi cihazın] --(1)--> [internet] --(2)--> [hedef] | |--(3)--> [iç ağ / VPN'e bağlı yerel servisler]

Üç sınır; üç kural:

  1. Kamu internetine giden trafik: açıkça izinli, yetkili, kısa süreli.
  2. Hedefin yanıtı: güvenilir kabul etme; sanitization yap.
  3. İç ağa yapılan tarama: iş saatlerinde, ekip bilgilendirilerek, rate limit ile.

Sınır ötesi bir komut çalıştırmadan önce pwd ve ip a çıktısından bulunduğun ağı doğrulamak iyi bir alışkanlıktır.

1. Keşif ve Envanter#

İlk hedef, hangi varlıkların bulunduğunu anlamaktır. Bu aşamada amaç sistemi zorlamak değil, görünür yüzeyi belgelemektir.

Kullanım alanları:

  • Alan adı ve alt alan adı envanteri
  • Açık servislerin listelenmesi
  • Sertifika ve DNS kayıtlarının kontrolü
  • Bulut varlıklarının sahiplik eşlemesi

Çıktı mutlaka bir tabloya dönmelidir. Dağınık terminal çıktısı, sonraki adımlarda karar vermeyi zorlaştırır.

Tipik komutlar:

# Alt alan adı keşfi (pasif) subfinder -d example.com -silent -o subs.txt # Açılan HTTP servisleri httpx -l subs.txt -status-code -title -tech-detect -o live.txt # Hızlı port taraması masscan -p1-65535 --rate 1000 example.com -oG masscan.txt # Derinlemesine servis bilgisi nmap -sV -sC -p 80,443,8080 example.com -oN nmap-example.txt

-oN, -oX, -oG gibi çıktı formatlarını ilk günden standartlaştır; sonraki raporlamada grep ve jq ile birleştirilebilir.

2. Trafik Gözlemi#

Trafik gözlemi, uygulamanın veya ağın nasıl konuştuğunu anlamaya yarar. Wireshark, tcpdump ve proxy tabanlı araçlar bu aşamada kullanılır.

Not edilmesi gerekenler:

GözlemNeden önemli?
ProtokolTrafiğin şifreli olup olmadığını gösterir
Kaynak/hedefHangi sistemlerin konuştuğunu gösterir
Hata kodlarıYanlış yapılandırmaları işaret edebilir
Tekrar eden isteklerPerformans veya güvenlik etkisi doğurabilir

tcpdump ile minimal yakalama:

sudo tcpdump -i eth0 -nn -s0 -w capture.pcap host example.com and port 443

Yakalama dosyalarını açık bırakma; içerikleri hassas veri içerebilir. PCAP'i şifreli kanalda sakla ve erişim log'u tut. tshark ile özet çıkarmak sonrasını kolaylaştırır:

tshark -r capture.pcap -Y "tls.handshake.type == 1" \ -T fields -e ip.dst -e tls.handshake.extensions_server_name | sort | uniq -c

3. Günlük ve Kanıt Yönetimi#

Bir bulgunun değeri, tekrar edilebilir kanıtıyla artar. Terminal çıktısını rastgele kopyalamak yerine tarih, komut, kapsam ve sonuç birlikte saklanmalıdır.

Basit format:

Tarih: Kapsam: Komut/araç: Amaç: Özet sonuç: Ekran görüntüsü veya çıktı yolu:

Bu düzen, hem rapor yazmayı hem de bulguyu doğrulamayı kolaylaştırır.

Kanıt zinciri (chain of custody) için üç kural:

  1. Her kanıt dosyasının sha256sum değerini not et.
  2. Kanıtı read-only sakla (chmod 444).
  3. İlk bulgu ile rapor arasındaki değişiklikleri tek bir "evidence log" dosyasında tut.

4. Güvenli Otomasyon#

Otomasyon zamandan kazandırır ama kontrolsüz çalışırsa zarar verir. Script yazarken varsayılan olarak düşük hız, net kapsam ve açık loglama kullanın.

İyi otomasyon şu özellikleri taşır:

  • Kapsam dosyasını açık ister
  • Hata durumunda durur
  • Çıktıyı yapılandırılmış formatta üretir
  • Aynı hedefe aşırı istek göndermez
  • Çalışma zamanını ve sürüm bilgisini kaydeder

Örnek bir skeleton (Python):

import argparse, json, subprocess, datetime p = argparse.ArgumentParser() p.add_argument('--scope', required=True) p.add_argument('--rate', type=int, default=50) args = p.parse_args() with open(args.scope) as f: targets = [l.strip() for l in f if l.strip()] run = { 'started_at': datetime.datetime.utcnow().isoformat() + 'Z', 'rate': args.rate, 'targets': targets, 'results': [], } # hedefler üzerinde düşük hızlı döngü with open(f'run-{args.started_at if False else "out"}.json', 'w') as f: json.dump(run, f, indent=2)

argparse --scope ile kapsamı açık almadan çalışan bir otomasyon, kaza ile üretim hedefine dönebilir. Kapsam dosyası boşsa betiğin kendini kapatması iyi bir defanstir.

5. Proxy ve El İşi Araçlar#

Günlük çalışmada sık kullanılan birkaç araç:

  • curl: HTTP'yi anlamak için neredeyse her şeyin altında. -i başlıkları, -v verbose, --resolve DNS override.
  • ffuf/gobuster: dizin ve vhost fuzzing; kapsam dosyasını -w ile değil, hedef listesiyle beslemek daha kontrollüdür.
  • jq: JSON API yanıtlarını boru hattında dönüştürür; httpx -json ile birlikte güçlüdür.
  • dig/nslookup: DNS envanteri; +short for quick grepler.
  • openssl s_client: sertifika zinciri ve TLS versiyon kontrolü; s_client -connect example.com:443 -servername example.com.

Her araç için --help çıktısını bir kez oku; sık kullanılan iki flag'i alias olarak ~/.zshrc veya ~/.bashrc içine yaz.

6. Gözlem -> Bulgu -> Rapor Akışı#

[pcap / nmap / screenshot] | v evidence.log (sha256 + açıklama) | v bulgu dosyası: markdown | v rapor: yönetici özeti + teknik detay

Her ok, bir "el değişimidir"; sahibi ve zamanı not edilmemiş bir ok, raporda kırık bırakır.

Version Differences: Önemli Sürüm Farkları#

  • nmap 7.x: -sV version detection, -sC default scripts; 7.80+ ile yeni NSE scriptleri.
  • masscan: hızlı port keşfi; --rate yanlış ayarlanırsa yerel güvenlik duvarları otomatik inatlaşır.
  • tshark 4.x: Wireshark 4.0 sonrası çıktı formatı sık update'ler; eski 3.x script'lerinde -T json çıktı yapısı aynı kalır ama bazı field isimleri değişebilir.
  • curl 8.x: HTTP/3 desteği varsayılan optional; --http3 flag'i build'a bağlı. Sunucunun HTTP/3 desteklediğini curl -I --http3 https://example.com ile kontrol et.
  • OpenSSL 3.x: legacy algoritmalar (RC4, eski cipher'lar) varsayılan olarak devre dışı; eski bir hedefle konuşurken hata almak şaşırtıcı olmasın.
  • tcpdump: modern sürümlerde -nn host/port çözümlemeyi kapatır; eski alışkanlıkta -n eksik kalabilir, -nn kullan.

Komutun sürümünü her zaman not et: nmap --version, tshark --version, curl --version. Çıktının en üstüne yapıştırmak, raporda neye bakıldığını netleştirir.

Detection ve Mitigation Workflow#

Bir keşif bulgusunu kapatırken şu sırayı izle:

[Bulgu] -> [Doğrula] -> [Tehdit?] -> [Düzeltme planı] -> [Re-test] -> [Kapat] | +-- [Ara ölçüm: log / alert]
  • Doğrula: aynı komutla tekrar üret, mümkünse başka bir operatör.
  • Tehdit?: iç ağdan mı, dıştan mı, ön koşul gerekir mi?
  • Düzeltme planı: en küçük değişiklik, rollback adımlarıyla.
  • Re-test: aynı değilse, daha geniş bir kapsamla regresyon testi.
  • Kapat: kanıtı arşivle, commit hash'ini yaz.

Sonuç#

Terminal araçları tek başına güvenlik programı oluşturmaz. Doğru değer; keşif, gözlem, kanıt ve otomasyonu tekrarlanabilir bir iş akışına bağlayınca ortaya çıkar. Her komutun yanına üç bilgi yaz: neden, nerede, neyle doğrulandı. Bu alışkanlık, altı ay sonra bile kendi bulgunu anlamanı sağlar.

Sürüm Notları: Hızlı Referans#

AraçSürüm farkıPratik not
nmap7.x-Pn no ping, -sV version, -sC default scripts
masscan1.x--rate ile ayarla; TSO/GSO etkilerini ölç
tshark4.xfield isimleri değişebilir; -G fields ile kontrol
curl8.xHTTP/3 --http3; -k devre dışı TLS doğrulamasını açar
openssl3.xlegacy cipher'lar default off
tcpdump4.x-nn her zaman; -s0 full snaplen
ffuf2.xJSON çıktı -of json; recursive -recursion
httpx1.x-json ile pipeline; -mc 200,301

Bu tablo, kendi cheatsheet'in başına kopyala; yeni sürüm kurduğunda sağ sütunu güncelle.

Komut Şablonları#

# TLS versiyonu kontrolü openssl s_client -connect example.com:443 -tls1_2 </dev/null 2>&1 | grep -i cipher # DNS envanteri dig example.com ANY +noall +answer dig +short TXT example.com # Sertifika özeti echo | openssl s_client -servername example.com -connect example.com:443 2>/dev/null \ | openssl x509 -noout -dates -subject -issuer # JSON API quick smoke curl -sS -H 'Accept: application/json' https://example.com/api/health | jq . # Hızlı dizin keşfi (lab hedefe) ffuf -u http://target/FUZZ -w common.txt -mc 200,301,302 -t 20 -o out.json -of json

Her satır çalıştırılmadan önce hedefin scoping belgesiyle eşleşmeli. Kapsam dışı hedefte ffuf koşturmak, yarım saat emek tasarrufundan daha büyük bir problemi tetikler.

Log ve Alarm Döngüsü#

Operasyon disiplininin bel kemiği şudur:

[komut] -> [çıkış] -> [kanıt dosyası] -> [not] -> [bulgu?] -> [rapor]

Her ok bir disiplindir; bir ok kaçarsa kanıt zinciri kopar. "Sonra kaydederim" yaklaşımıyla çalışan hiçbir operatör uzun vadede güvenilir bulgu üretemez.

Örnek Günlük Akış#

09:00 kapsam dosyasını kontrol et, yeni hedef eklendi mi 09:15 pasif keşif: subfinder + crt.sh 10:00 canlı HTTP envanteri: httpx 11:00 nmap -sV top 100 port, T3 hız 12:00 öğlen: log'u gözden geçir, gereksiz alert'i ayırt et 14:00 ffuf ile dizin keşfi (scope içi) 15:00 tcpdump ile ilginç akışı yakalar -> tshark ile özet 16:00 bulgu formu: tarih, komut, kanıt, etki 17:00 gün sonu: rapor iskeletini yaz, ertesi güne not bırak

Bu akış bir şablon; her gün birebir aynısını uygulamak zorunda değilsin. Ama akışsız bir gün geçirmemeye çalış.

Sonuç: Cheatsheet'i Sabit Tutma#

Cheatsheet'in kendisi canlı bir dosyadır. Her yeni öğrendiğin komutu ekle, kullanmadığını sil. Üç ayda bir dosyayı baştan sona oku; bir kısmını unuttuysan ya unutulmuş ya da değerli değildir. Değerli olan, belleğinde kalmayı hak eder; değersiz olan, komut geçmişinden silinmelidir.

Hızlı Sürüm Kontrol Komutları#

nmap --version | head -1 tshark --version | head -1 curl --version ffuf -V httpx -version openssl version tcpdump --version

Çıktıyı evidence/YYYY-MM-DD/env.txt altına yapıştır; sonradan "o bulgu hangi sürümde üretildi" sorusuna tek satırda cevap verilir.

---
Bu yazıyı paylaş:
TwitterLinkedInFacebook

Ne düşünüyorsun?

Tepki bırakarak geri bildirim ver

İlgili Yazılar