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:

ParametreAçıklama
-e lLittle-endian 16-bit
-e bBig-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:

  • file

  • hexdump

  • xxd

  • objdump

  • readelf

  • radare2

  • Ghidra

  • 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

ParametreAçıklama
-nMinimum karakter sayısı
-t xHex offset göster
-e lUTF-16 little endian
-e bUTF-16 big endian
-aTüm dosyayı tara
-fDosya adını göster
-oOffset 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:

Bash:
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:

Bash:
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:

Bash:
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:

Bash:
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:

Bash:
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:

Bash:
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

Bu blogdaki popüler yayınlar

Android Telefon/Tablet Ekranını Pardus ETAP 23 Yüklü Akıllı Tahtaya Yansıtma

Pardus Etap 23’de Unutulmuş Etap Yetkili Parolasını Sıfırlama

Pardus Etap 23 Yazıcı Kurulumu