Linux System Information

Linux sisteminin hangi sürümünün çalıştığını bilmek çoğu zaman önemlidir. Çünkü bazı kanıtlar, Linux sürümüne bağlı olarak farklı yerlerde bulunabilir ve Linux sürümünü bilmek, saldırganın hangi zafiyetleri kullanıyor olabileceği konusunda bilgi verebilir.

Linux sistemlerinde genellikle /etc/os-release dosyası sürüm bilgilerini içerir. Ayrıca, sürüme özgü dosyalar da olabilir, örneğin:

  • RedHat Enterprise Linux, Fedora ve CentOS için /etc/redhat-release.
  • Debian ve Ubuntu için /etc/lsb-release.

Sistem adı genellikle /etc/hostname dosyasına kaydedilir. Standart Linux günlük mesajları da sistem adını içerir. Eski günlükler (belki de ayrılmamış alanlardan kurtarılanlar) sistem adının değiştirilip değiştirilmediğini gösterebilir.

Bilgisayar Adı (Hostname)
Bilgisayar adı (hostname), /etc klasöründe düz metin olarak saklanan bir dosyada bulunur.

/etc/hostname konummunda bulunur
Bu dosya herhangi bir metin editörü veya cat komutu ile okunabilir.
Hostname’i belirlemek için canlı müdahale (live response) komutları:
▸ hostname
▸ hostname –fqdn
▸ hostname –long

Eğer sistem statik bir IP adresi kullanıyorsa, bu genellikle /etc/hosts dosyasında bulunur. DHCP kiralama bilgileri ise, yeni Linux sistemlerinde /var/lib/NetworkManager dizininde, eski sistemlerde ise /var/lib/dhclient veya /var/lib/dhcp dizinlerinde bulunabilir. Linux sistemleri, genellikle uzun bir DHCP kiralama geçmişini saklar—bu, sistemin ilk kurulumundan itibaren çok geriye gidebilir! Bu, sistemi belirli bir yerde ve zamanda konumlandırmak için faydalı olabilir.

INSTALLATION DATE/TIME

Linux işletim sistemi genellikle kurulum tarih ve saatini takip etmez, ancak bazı dosya zaman damgaları bu tür bilgilere dolaylı olarak işaret edebilir.

  • /lost+found dizisinin oluşturulma tarihi, genellikle sistemin kurulduğu zamanı gösteren iyi bir proxy (vekil) olabilir. Bu dizin, genellikle dosya sisteminin düzgün kapanmadığı durumlarda kurtarılan dosyalar için kullanılır ve genellikle ilk kurulum sırasında oluşturulur.
  • SSH anahtar dosyalarının zaman damgaları, genellikle sistemin ilk başlatılmasıyla ilişkilidir. Özellikle /etc/ssh/ssh_host_*_key dosyalarının oluşturulma zamanı, sistemin ilk başlatıldığı zamanı gösterebilir. Bu anahtarlar, SSH ile güvenli bağlantılar için kullanılan benzersiz anahtar çiftlerini içerir ve genellikle ilk kurulumda oluşturulurlar.

Windows işletim sisteminin aksine, Linux sistemleri genellikle sistemin kurulum tarih ve saatini kaydetmez. Bu nedenle, kurulum tarihini çıkarsamak için proxy (vekil) yöntemler kullanmamız gerekir.

Her dosya sisteminin üst düzeyinde bulunan lost+found dizini, dosya sistemi oluşturulurken (genellikle sistem kurulumu sırasında) yaratılır. Linux dosya sistemleri, EXT4’e kadar oluşturulma tarihlerini kaydetmezdi, ancak lost+found dizini, oluşturulduğundan genellikle değişmeden kalır. Bu nedenle, dizinin son değişiklik tarihi (mtime), sistemin kurulumu hakkında bir gösterge sağlar.

Eski Linux sistemlerinde stat komutu, dosyanın oluşturulma zamanını (Birth time) göstermeyebilir. Bu durumda, dosya sistemi düzeyinde daha ayrıntılı bilgi almak için debugfs komutunu kullanabilirsiniz. debugfs, dosya sistemindeki dosyaların oluşturulma zamanı gibi daha fazla bilgiyi crtime olarak etiketler.

debugfs komutunu kullanarak bir dosyanın oluşturulma zamanını öğrenmek için şu adımları izleyebilirsiniz:

  1. Dosya sistemini bağlayın (mount) veya diskinizi bağlayarak erişilebilir hale getirin.
  2. debugfs komutunu kullanarak dosya sistemine erişin:
  3. sudo debugfs /dev/sda1

Burada /dev/sda1, incelemek istediğiniz disk veya bölümün adıdır.

  1. debugfs içinde, aşağıdaki komutu kullanarak belirli bir dosyanın crtime (creation time) bilgisini görüntüleyebilirsiniz:
  2. stat /path/to/file

Bu komut, dosyanın oluşturulma zamanını (crtime) da dahil olmak üzere çeşitli meta verilerini gösterecektir.

Dağıtım Bilgisi (Distro Information)

Linux dağıtımının adı ve sürüm numarası, dağıtıma bağlı olarak genellikle birden fazla şekilde ve formatta kaydedilir.

» Ubuntu (ve Debian tabanlı dağıtımlar): /etc/lsb-release
» RHEL sistemleri: /etc/redhat-release
» Fedora sistemleri: /etc/fedora-release
» CentOS sistemleri: /etc/centos-release
» Rocky Linux sistemleri: /etc/rocky-release
» Amazon Linux sistemleri: /etc/system-release
» Oracle Linux sistemleri: /etc/oracle-release ve /etc/redhat-release
» SLES sistemleri: /etc/SuSE-release (eski) veya /etc/SUSE-brand (yeni)

Bu dosya herhangi bir metin editörü veya cat komutu ile okunabilir.
os-release dosyasındaki önemli alanlar:
▸ NAME: Dağıtımın adı (oluşturucu/sürüm organizasyonu tarafından tanımlanır).
▸ VERSION: Sürüm numarası ve adı (eğer uygunsa).
▸ ID: Dağıtımın adı, genellikle kısaltılmış formda.
▸ ID_LIKE: Dağıtım ailesi.
▸ PRETTY_NAME: Dağıtım ve sürüm numarasını açıklayan insan tarafından okunabilir bir metin.
▸ VERSION_ID: Sürüm dizesinin kısaltılmış hali.

lsb-release dosyasındaki önemli alanlar:
▸ DISTRIB_ID: Dağıtımın adı.
▸ DISTRIB_RELEASE: Dağıtımın sürüm veya sürüm numarası.
▸ DISTRIB_CODENAME: Dağıtım sürümüyle ilişkili kod adı.
▸ DISTRIB_DESCRIPTION: Dağıtımın adını, sürümünü ve kod adını birleştiren insan tarafından okunabilir bir açıklama.

DEFAULT TIME ZONE

» /etc/timezone
» /etc/localtime (sembolik bağlantı)

Bu dosyalarda yalnızca cihazın mevcut saat dilimi ayarı saklanır. timezone dosyası herhangi bir metin editörü veya cat komutu ile okunabilir.
saat dilimlerinden bahsetmişken, araştırdığınız sistemin varsayılan saat dilimini bilmeniz önemlidir. Linux log dosyaları ve diğer önemli artefaktlar, makinenin yerel saat diliminde yazılmış zaman damgalarına sahiptir.
Sistemin varsayılan saat dilimi, /etc/localtime dosyasına kaydedilir. Bu dosya ikili formatta olup, “strings” komutunu çalıştırmak genellikle ipuçları verebilir.

Networking

Hosts Dosyası
Hosts dosyası, IP adreslerini hostname’lerle eşleştirmek için kullanılır ve DNS sorgularından önceliklidir.
/etc/hosts konumunda bulunur.

Bu dosya herhangi bir metin editörü veya cat komutu ile okunabilir. Hosts dosyasını, bir saldırgan tarafından eklenmiş/değiştirilmiş herhangi bir şey veya ortam hakkında ipuçları sağlayabilecek girdiler açısından kontrol edin.

“AĞ İLETİŞİMİ Diğer hostlarla iletişim kuran işlemler? Beklenmeyen portlarda dinleyen işlemler? ‘Şüpheli’ işlemlerden gelen ağ davranışları?”

“Beklenmeyen ağ davranışları, şüpheli işlemler hakkında ipuçları verebilir. Diğer ağlardaki hostlara aniden bağlantı kuran işlemler oldukça kolay tespit edilebilir. Bu yüzden çoğu kötü amaçlı yazılım, sürekli bağlantılar kurmak yerine “beacon” yapmayı tercih eder – düzenli aralıklarla kısa bağlantılar kurar. Eğer çok şanslı değilseniz, ‘netstat’ gibi araçlar, komut ve kontrol sunucusuna bağlanan kötü amaçlı işlemi tespit etmede pek başarılı olmayacaktır.

“Ayrıca, gelen ağ bağlantılarını dinleyen işlemlere dikkat etmek önemlidir. Bunlar, sisteminize potansiyel arka kapılar olabilir:

Örnek

tcp … 0.0.0.0:1337 0.0.0.0:* LISTEN 89 638037 58719/lsof

‘lsof’, bir ağ portunda dinleyen bir komut olmamalıdır ve 1337/tcp, herhangi bir ağ servisi tarafından kullanılan standart bir port değildir.”

  • IP adres(leri):
    • /etc/hosts dosyasından statik atamaları kontrol edebilirsiniz.
    • /var/lib/NetworkManager dizininden DHCP ile atanmış IP adreslerini kontrol edebilirsiniz.