Pardus Linux’ta strings Komutu
Linux sistemlerde bazı dosyalar insan tarafından okunabilir değildir. Özellikle:
Derlenmiş programlar (
.bin, ELF dosyaları)Zararlı yazılımlar
Firmware dosyaları
Bellek dökümleri
Log ve dump dosyaları
gibi içeriklerde metinleri doğrudan görmek mümkün olmaz.
İşte burada strings komutu devreye girer.
strings, bir dosyanın içindeki okunabilir karakter dizilerini (ASCII/Unicode metinleri) çıkarmaya yarayan güçlü bir analiz aracıdır.
Siber güvenlik uzmanları bu komutu:
Zararlı yazılım analizi
Tersine mühendislik
IOC (Indicator of Compromise) tespiti
Gizli URL ve IP keşfi
Şifre, kullanıcı adı ve API anahtarı araştırması
Olay müdahalesi (Incident Response)
gibi alanlarda yoğun olarak kullanır.
strings Komutu Nedir?
strings, ikili (binary) dosyaların içinde bulunan okunabilir metinleri listeler.
Örneğin:
URL’ler
IP adresleri
Dosya yolları
Komutlar
Hata mesajları
Domain adresleri
Kullanıcı adları
API anahtarları
gibi bilgiler çoğu zaman binary dosyanın içinde düz metin olarak bulunur.
Temel Kullanım
strings dosya
Örnek:
strings program.bin
Basit Bir Örnek
Bir ELF dosyasını inceleyelim:
strings /bin/ls
Çıktıda şunlar görülebilir:
/lib64/ld-linux-x86-64.so.2
malloc
free
opendir
readdir
GNU
Bu bilgiler:
Programın hangi kütüphaneleri kullandığını
Hangi fonksiyonlarla çalıştığını
Derleme bilgilerini
ortaya çıkarabilir.
Siber Güvenlikte strings Kullanımı
1. Zararlı Yazılım Analizi
Bir malware dosyasının içindeki URL’leri ortaya çıkarmak için:
strings malware.bin
Örnek çıktı:
http://evil-domain.com/payload
cmd.exe
powershell
C:\Windows\Temp
Bu bilgiler:
Komuta kontrol sunucusu (C2)
Zararlının davranışı
Hedef sistem yolları
hakkında kritik ipuçları verir.
Belirli Bilgileri Filtrelemek
URL Arama
strings malware.bin | grep http
IP Adresi Arama
strings malware.bin | grep -E "[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+"
Şifre veya Anahtar Arama
strings malware.bin | grep -i password
strings malware.bin | grep -i api
Minimum Karakter Sayısı Belirleme
Varsayılan olarak strings, 4 karakter ve üzerindeki dizileri gösterir.
Bunu değiştirmek mümkündür.
En az 8 karakter göster
strings -n 8 dosya.bin
veya:
strings --bytes=8 dosya.bin
Bu yöntem özellikle:
Gürültüyü azaltmak
Analizi hızlandırmak
için önemlidir.
Unicode İçerikleri Görmek
Bazı malware örnekleri Unicode kullanır.
UTF-16 inceleme
strings -e l malware.bin
Parametreler:
| Parametre | Açıklama |
|---|---|
-e l | Little-endian 16-bit |
-e b | Big-endian 16-bit |
Offset (Adres) Bilgisi Gösterme
Analizde çok önemlidir.
strings -t x malware.bin
Örnek:
1f20 powershell.exe
2a44 cmd.exe
Buradaki değerler hexadecimal offset adresleridir.
Tersine mühendislik araçlarında bu adresler kritik öneme sahiptir.
strings + grep Gücü
En güçlü kullanım şekillerinden biridir.
Domain Tespiti
strings sample.bin | grep ".com"
Registry Anahtarı Arama
strings sample.bin | grep "Software\\Microsoft"
Linux Komutları Arama
strings malware.bin | grep "/bin/"
Bellek Dökümü Analizi
RAM dump dosyalarında hassas bilgiler bulunabilir.
Örnek
strings memory.dump | grep password
Bulunabilecek veriler:
Şifreler
Token’lar
Session bilgileri
Kullanıcı adları
Firmware Analizinde Kullanımı
IoT cihaz analizinde çok önemlidir.
strings firmware.bin
Bulunabilecek bilgiler:
Web panel yolları
Varsayılan kullanıcı adları
Sertifikalar
API endpointleri
ELF Dosyası İnceleme
Linux binary analizinde sık kullanılır.
Kütüphane bağımlılıklarını görmek
strings app | grep ".so"
GCC bilgisi görmek
strings app | grep GCC
Tersine Mühendislikte Kullanımı
strings, reverse engineering sürecinin ilk adımlarından biridir.
Çünkü:
Hızlıdır
Kurulum gerektirmez
Statik analiz sağlar
Zararlıyı çalıştırmadan bilgi verir
Gerçek Hayat Senaryosu
Bir SOC analistinin elinde şüpheli bir ELF dosyası olduğunu düşünelim.
Adım 1 — Dosya tipi kontrolü
file sample
Adım 2 — String analizi
strings sample
Adım 3 — URL arama
strings sample | grep http
Adım 4 — Komut analizi
strings sample | grep "/bin/"
Adım 5 — Powershell / Bash aktiviteleri
strings sample | grep -Ei "bash|powershell|curl|wget"
Bu süreç zararlı yazılım davranışını anlamada oldukça etkilidir.
strings Komutunun Sınırlamaları
Her şeyi göstermez.
Çünkü:
Şifrelenmiş içerikleri okuyamaz
Packed/obfuscated malware’de yetersiz kalabilir
Runtime oluşturulan stringleri göremez
Anti-analysis tekniklerine karşı sınırlıdır
Bu yüzden genellikle şu araçlarla birlikte kullanılır:
filehexdumpxxdobjdumpreadelfradare2Ghidra
IDA Pro
Performans İpuçları
Büyük dosyalarda çıktı kaydetme
strings huge.bin > output.txt
Daha hızlı filtreleme
strings huge.bin | less
Sonuçları sıralama
strings sample.bin | sort | uniq
Adli Bilişim (Forensics) Kullanımı
Dijital delil incelemelerinde:
Disk imajları
RAM dump’ları
Zararlı ekler
PDF dosyaları
Office belgeleri
üzerinde analiz yapılırken sıkça kullanılır.
Örnek Siber Güvenlik Analiz Akışı
file malware.bin
strings -n 6 malware.bin
strings malware.bin | grep http
strings malware.bin | grep -Ei "cmd|powershell|bash"
strings -t x malware.bin
Faydalı Parametre Özeti
| Parametre | Açıklama |
|---|---|
-n | Minimum karakter sayısı |
-t x | Hex offset göster |
-e l | UTF-16 little endian |
-e b | UTF-16 big endian |
-a | Tüm dosyayı tara |
-f | Dosya adını göster |
-o | Offset göster |
Güvenlik Uyarısı
strings güvenlidir çünkü dosyayı çalıştırmaz.
Ancak:
Zararlı dosyayı yanlışlıkla çalıştırmamaya dikkat edilmelidir.
Analiz mümkünse sandbox ortamında yapılmalıdır.
Şüpheli dosyalar izole sistemlerde incelenmelidir.
Sonuç
strings komutu küçük görünmesine rağmen siber güvenlik dünyasında son derece güçlü bir araçtır.
Özellikle:
Malware analizi
Incident response
Forensics
Reverse engineering
Threat hunting
alanlarında ilk kullanılan araçlardan biridir.
Pardus Linux üzerinde yerleşik olarak bulunması sayesinde hızlı ve pratik analiz imkanı sunar.
Linux ve siber güvenlik öğrenen herkesin mutlaka ustalaşması gereken temel araçlardan biridir.
Pardus Linux veya benzeri bir laboratuvar ortamında sistemleri yönetirken, çoğu zaman içeriği bilinmeyen, derlenmiş ikili (binary) dosyalarla karşılaşılır. Siber güvenlik uzmanlarının, sistem yöneticilerinin ve özellikle mavi/kırmızı takım (blue/red team) senaryolarında görev alanların en sık başvurduğu temel araçlardan biri strings komutudur.
Bu makalede, strings komutunun ne olduğunu ve siber güvenlik vakalarında (örneğin bir zararlı yazılım analizinde veya olay müdahalesi aşamasında) nasıl kullanıldığını detaylıca inceleyeceğiz.
strings Komutu Nedir?
strings, temel olarak bir dosya içindeki "okunabilir" (printable) karakter dizilerini ayıklayıp ekrana basan bir komut satırı aracıdır. Derlenmiş bir C programı, bir resim dosyası, hatta ağ üzerinden yakalanmış bir paket dökümü (pcap) bile olsa, strings bu dosyanın içindeki metin tabanlı verileri gün yüzüne çıkarır. Makine kodlarının arasında insan gözüyle okunabilecek her şeyi filtreler.
Siber Güvenlikteki Yeri ve Önemi
Siber güvenlik analizlerinde, şüpheli bir dosyanın ne yaptığını veya nereden geldiğini anlamak ilk adımdır. Gelişmiş tersine mühendislik araçlarına geçmeden önce "hızlı bir bakış" atmak için şu durumlarda kullanılır:
Zararlı Yazılım (Malware) Analizi: Şüpheli bir dosyanın içinde gömülü olan komuta kontrol (C2) sunucusu IP adreslerini, URL'leri, indirilecek diğer dosya yollarını veya çalıştırılacak sistem komutlarını tespit etmek.
Gömülü Parolalar: Geliştiricilerin kod içine dikkatsizce gömdüğü (hardcoded) varsayılan şifreleri, API anahtarlarını veya veritabanı bağlantı metinlerini bulmak.
Oltalama (Phishing) ve İz Sürme: Oltalama saldırılarında kullanılan sahte belgelerin içindeki gizli bağlantıları veya yazar/sistem bilgilerini açığa çıkarmak.
Adli Bilişim ve Tatbikatlar: Eğitim laboratuvarlarındaki siber güvenlik tatbikatlarında veya "Bayrağı Yakala" (CTF) senaryolarında, gizli verileri veya log analizi öncesi ilk ipuçlarını elde etmek.
Temel Kullanım ve Siber Güvenlik Parametreleri
Pardus terminalinizi açın ve komutun gücünü görmek için şu temel sözdizimini kullanın:
strings supheli_dosya.bin
Ancak, sadece temel komutu çalıştırmak genellikle ekrana devasa bir "gürültü" (anlamsız karakter yığınları) basacaktır. Hedefe yönelik analiz için doğru parametreleri kullanmak şarttır.
1. Gürültüyü Filtrelemek: -n (Minimum Uzunluk)
Varsayılan olarak strings, 4 karakter ve üzeri dizileri gösterir. Bu durum, anlamsız bellek adreslerinin de listelenmesine yol açar. Sadece daha uzun ve anlamlı cümleleri, bağlantıları veya anahtarları arıyorsanız, bu limiti artırabilirsiniz. Örneğin, en az 8 karakterlik dizileri görmek için:
strings -n 8 supheli_dosya.bin
2. Bayt Uzaklığını (Offset) Bulmak: -t
Bulduğunuz bir şifrenin veya IP adresinin dosyanın neresinde olduğunu bilmek, dosyayı bir hex editör ile incelemek veya yamamak (patching) için kritiktir. -t x parametresi, bulunan metnin onaltılık (hexadecimal) adresini de verir:
strings -t x siber_vaka.bin
Çıktı Örneği:
1a4f0 [http://malicious-domain.com/payload](http://malicious-domain.com/payload)Bu çıktı, ilgili zararlı URL'nin dosyanın 1a4f0 numaralı adresinde başladığını gösterir.
3. Farklı Kodlamaları (Encoding) Taramak: -e
Farklı işletim sistemlerini hedefleyen bazı zararlı yazılımlar UTF-16 kodlamasını kullanır. Standart bir strings taraması ASCII odaklı çalıştığı için bu karakterleri gözden kaçırabilir. -el (16-bit little-endian) parametresi bu noktada devreye girer:
strings -el windows_zararlisi.exe
Diğer Araçlarla Entegrasyon (Boru Hattı - Piping)
strings komutunun asıl gücü, Linux terminalinin boru (pipe - |) mimarisi sayesinde diğer güçlü araçlarla birleştirilmesinde yatar. Büyük bir olay günlüğü veya bellek dökümü (memory dump) incelenirken veriyi süzmek analiz sürecini hızlandırır.
Şüpheli bir IP adresi aramak:
Eğer bir zararlının hangi IP adresi ile haberleştiğini bulmak istiyorsanız, strings çıktısını doğrudan Düzenli İfadeler (Regex) ile eşleşecek şekilde grep aracına yönlendirebilirsiniz:
strings bilinmeyen_yazilim | grep -E "[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}"
Kritik anahtar kelimeleri aramak:
Bellek dökümlerinde veya büyük yapılandırma dosyalarında parolaları hızlıca tespit etmek için:
strings ram_dokumu.raw | grep -i "password\|passwd\|admin\|root"
Sonuç
strings komutu, karmaşık siber güvenlik müfredatlarının ve laboratuvar uygulamalarının temel yapı taşlarından biridir. İlerleyen aşamalarda, olay müdahale raporlaması ve log analizi gibi konularda da bu basit ama etkili komutun ürettiği verilerden sıkça yararlanılır. Büyük final tatbikatlarında veya gerçek bir siber vaka incelemesinde, en kritik ipuçlarının bazen düz bir metin aramasında gizli olduğu unutulmamalıdır.
Yorumlar