Konuyu Okuyanlar: 1 Ziyaretçi

Bash Aliases: Pentest İçin Küçük Hızlandırıcılar ve Güvenli Alışkanlıklar

Bash Aliases: Pentest İçin Küçük Hızlandırıcılar ve Güvenli Alışkanlıklar
[Resim: attachment.php?aid=271]

Merhaba,

Her pentest lab oturumunda aynı uzun komutları yazmak can sıkıcı. Ama rastgele alias da tehlikeli: yanlış host'a agresif tarama göndermek bir tuş kadar yakın olabilir. Bu yazıda kendi .bashrc notlarımı, güvenli alışkanlıklarla birlikte paylaşıyorum.

Temel: nerede tutmalı?
Kod:
# ~/.bashrc veya ~/.bash_aliases # Değişiklikten sonra: source ~/.bashrc
Kali/Parrot'ta bazen .zshrc kullanırsınız; shell'inizi bilin. Alias'ları git ile dotfiles reposunda tutuyorum (sır yok; API anahtarı koymayın).

Güvenli ve faydalı alias örnekleri
Kod:
# İnsan okur ls alias ll='ls -alFh --color=auto' alias ..='cd ..' # nmap: varsayılan olarak nazik zamanlama + çıktı kaydı hatırlatması alias nquick='nmap -sV -T3 --top-ports 100' alias nfull='nmap -sV -T3 -p-' # tcpdump: -nn unutulmasın alias td='sudo tcpdump -nn' # Güvenli rm değil; çöp kutusu alışkanlığı (trash-cli) alias rm='trash'

[Resim: attachment.php?aid=272]

Fonksiyon > uzun alias
Parametre alan işler için function yazın:
Kod:
nlab() { # kullanım: nlab 10.10.10.50 local t="$1" [[ -z "$t" ]] && { echo "hedef yok"; return 1; } local out="nmap-${t//\//_}-$(date +%F-%H%M)" nmap -sV -T3 -p 22,80,443,445 -oA "$out" "$t" echo "çıktı: $out.*" }
Bu pattern "çıktıyı kaydetmeyi unuttum" felaketini azaltır.

Tehlikeli kısayollar (yapmayın)
  • alias nmap='nmap -T5 -A -p-' — her seferinde agresif; yanlış hedefte felaket
  • Hedefi sabit kodlayan alias'lar (eski müşteri IP'si kalabilir)
  • curl | sh benzeri kısayollar
  • Parola / API anahtarı içeren export'lar (dotfiles sızarsa biter)

Onay isteyen sarmalayıcı
Agresif işler için bilinçli onay:
Kod:
nagg() { echo "HEDEF: $1 | agresif tarama" read -r -p "Emin misin? yaz EVET: " a [[ "$a" == "EVET" ]] || { echo "iptal"; return 1; } nmap -sV -T4 -A "$1" }

Ortam değişkenleri
Kod:
export EDITOR=vim export HISTCONTROL=ignoredups:erasedups export HISTSIZE=5000
Proxy gereken labda:
Kod:
# export http_proxy=... # sadece o oturum
Kalıcı proxy alias'ı yerine direnv veya elle export tercih ederim; unutulmuş proxy daha sonra her curl'ü bozar.

tmux ile birleştirmek
Alias'lar tek terminalde işe yarar; uzun taramayı tmux'ta koşturun. Benim sık kullandığım:
Kod:
alias ta='tmux attach -t' alias tn='tmux new -s'

Paylaşılabilir dotfiles disiplini
  • Sırları ayrı tut (pass, gopass, 1Password CLI)
  • Makineye özel dosyayı .bashrc.local diye ayırıp git'e koyma
  • alias listesini periyodik gözden geçir; kullanılmayanı sil
Kod:
alias type nquick

Kaynaklar
  • bash(1) ALIASES ve FUNCTIONS bölümleri
  • tmux wiki
  • trash-cli

Sizin en çok zaman kazandıran fonksiyonunuz hangisi? Zararsız olanları yorumda paylaşın; agresif tarama one-liner'larını lütfen paylaşmayın.

direnv ve proje bazlı ortam
Her müşteri labı için ayrı dizin + .envrc (direnv) kullanıyorum. Proxy, hedef IP, VPN arayüzü o dizine girince yüklenir; çıkınca iner. Global alias'a hedef IP gömmek yerine bu yöntem yanlış müşteriye paket gönderme riskini azaltır.

Tamamlama ve güvenlik
bash-completion nmap için kullanışlıdır ama tab-complete ile yanlış bayrağı seçebilirsiniz. Kritik komutlarda --help satırını bir kez daha okuma alışkanlığı, agresif alias'tan daha çok can kurtarır.


Doğrulama senaryosu
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.

Lab disiplini
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.

Runbook'a taşımak
İ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.

Ölçüm ve alarm sağlığı
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.

Kapsam ve izin hatırlatması
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.

Yedekleme ve geri dönüş
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.

Log saklama süresi
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.

Yanlış pozitif yönetimi
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.

Değişiklik yönetimi ile ilişki
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.

Eğitim tatbikatı
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.

Doğrulama senaryosu
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.

Lab disiplini
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.

Runbook'a taşımak
İ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.

Uygulama notu
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.
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.


Ek DosyalarEkran Görüntüleri
       
Cevapla



Hızlı Menü: