🔐Kritik dosyalar
Güvenlik Araştırmacıları İçin Linux'da Önemli Dosyalar
Sistem de yer alan DNS sunucuları keşfetme
/etc/resolv.conf
dosyası, sistemdeki DNS (Domain Name System) ayarlarını içeren bir sistem dosyasıdır. Dosyanın üst kısmında, # Generated by NetworkManager
yorum satırı, dosyanın NetworkManager tarafından otomatik olarak oluşturulduğunu belirtir.
Ardından, search
anahtar kelimesi ile başlayan bir satır bulunur. Bu satır, DNS sorguları için arama alanı olarak kullanılacak bir alan adını belirtir. Yukarıdaki örnekte, example.com
arama alanı olarak belirtilmiştir.
Daha sonra, bir veya daha fazla nameserver
satırı bulunur. Bu satırlar, DNS sorguları için kullanılacak DNS sunucularının IP adreslerini belirtir. Yukarıdaki örnekte, 8.8.8.8
ve 8.8.4.4
IP adresleri, Google Public DNS sunucularıdır.
Bir hacker, bu dosyayı kullanarak hedef sistemdeki DNS ayarlarını öğrenebilir ve bu bilgileri bir saldırı için kullanabilir.
Örneğin, bir hacker, hedef sistemin DNS ayarlarını değiştirerek kullanıcıların kötü amaçlı web sitelerine yönlendirilmesini sağlayabilir. Ayrıca, DNS ayarlarını değiştirerek kullanıcılara sahte web sayfaları sunarak, kullanıcıların kimlik bilgilerini veya diğer hassas bilgilerini çalmaya çalışabilirler.
Bunun yanı sıra, bir hacker, DNS ayarlarını değiştirerek bir "DNS spoofing" saldırısı da gerçekleştirebilir. Bu saldırıda, hacker, hedef sistemdeki DNS sunucusuna ait sahte bir DNS sunucusu kurarak, kullanıcıların istedikleri web sitesine erişmelerini engelleyebilir ve sahte web sitelerine yönlendirebilir.
Dağıtım sürümlerini keşfetme
/etc/issue
dosyası, sistemdeki işletim sistemi bilgilerinin ve sürüm numarasının görüntülendiği bir sistem dosyasıdır. Aşağıdaki komutla bu dosyayı görüntüleyebilirsiniz:
Bu örnekte, Ubuntu 20.04.3 LTS
işletim sistemi adı ve sürüm numarasını gösterir. yeni satır karakteri ve \l
sistem adını (kernel) gösterir. Bu bilgiler, özellikle oturum açma ekranlarında ve uzaktan bağlantı araçlarında kullanılır.
Bu bilgiler, bir hackerın hedef sistem için özel olarak hazırlanmış saldırı araçları kullanmasına yardımcı olabilir. Örneğin, bir hedef sisteme özel bir saldırı aracı hazırlayabilir veya belirli bir zafiyeti hedefleyebilirler.
Bunun yanı sıra, /etc/issue
dosyası, bir saldırganın sahte oturum açma ekranları oluşturmasına da yardımcı olabilir. Bu dosyadaki bilgileri kullanarak, bir hacker, hedef sistem kullanıcısına, güvenli bir sayfa olarak görünen bir sahte oturum açma ekranı sunabilir ve kullanıcının kimlik bilgilerini çalabilir.
Kullanıcı hesapları hakkında bilgi edinme
/etc/passwd
dosyası, bir Linux sistemde bulunan kullanıcı hesapları hakkında bilgi içeren bir sistem dosyasıdır. Bu dosya, kullanıcı adları, şifreleme yöntemleri, kullanıcı kimlik numaraları (UID) ve diğer hesap bilgilerini içerir.
Aşağıda, cat /etc/passwd
komutunun örnek bir çıktısı verilmiştir:
Burada, her bir kullanıcı hesabı bir satıra yazılmıştır. Satır, :
işaretiyle ayrılmış altı alandan oluşur. Alanlar sırasıyla şunlardır:
Kullanıcı adı
Şifre (şifrelenmiş biçimde görüntülenir)
Kullanıcı kimlik numarası (UID)
Kullanıcının grup kimlik numarası (GID)
Tam ad veya açıklama
Kullanıcının ev dizini
Kullanıcının varsayılan shell
Bir hacker, /etc/passwd
dosyasındaki bilgileri kullanarak saldırılar gerçekleştirebilir. Örneğin, şifrelerin şifreli biçimde depolandığı /etc/passwd
dosyasındaki şifreleri kırmak için brute force saldırıları yapabilir veya şifreleme yöntemlerindeki güvenlik açıklarını kullanarak şifreleri çözebilir.
Ayrıca, /etc/passwd
dosyasındaki kullanıcı adları ve kimlik numaraları, hedef sistemin yapılandırması hakkında bilgi sağlayabilir ve bir hacker'ın hedef sistemi daha iyi anlamasına yardımcı olabilir. Bu nedenle, sistem yöneticilerinin /etc/passwd
dosyasına sadece belirli kullanıcıların erişmesini sağlamaları ve kullanıcı şifrelerini güçlü şifreleme yöntemleriyle saklamaları önemlidir.
Kullanıcı şifreleri ele geçirme
/etc/shadow
dosyası, bir Linux sistemindeki kullanıcı hesaplarına ait şifrelerin (şifreleme biçiminde) tutulduğu bir sistem dosyasıdır. Bu dosya, /etc/passwd
dosyasındaki kullanıcı hesaplarına ait şifrelerin yerini almıştır ve daha güvenli bir şekilde şifreleri saklamaktadır.
Aşağıda, cat /etc/shadow
komutunun örnek bir çıktısı verilmiştir:
Burada, her bir kullanıcı hesabının şifresi ayrı bir satırda görüntülenmiştir. Satır, :
işaretiyle ayrılmış 9 alandan oluşur. Alanlar sırasıyla şunlardır:
Kullanıcı adı
Şifre (şifrelenmiş biçimde görüntülenir)
Şifre değiştirme tarihi (UNIX zaman damgası biçiminde)
Şifre değiştirme sıklığı (gün cinsinden)
Şifre geçerlilik süresi (gün cinsinden)
Şifre uyarı süresi (şifrenin dolmasına kaç gün kala uyarı verileceği - gün cinsinden)
Şifre kullanım kısıtlaması (şifrenin değiştirilmesine kaç gün kala kullanıcı hesabı kilitleneceği - gün cinsinden)
Hesap son kullanım tarihi (UNIX zaman damgası biçiminde)
Hesapın geçerlilik süresi (gün cinsinden)
Bir hacker, /etc/shadow
dosyasındaki bilgileri kullanarak saldırılar gerçekleştirebilir. Örneğin, şifreleri kırmak için brute force veya dictionary attack saldırıları yapabilir veya şifreleme yöntemlerindeki güvenlik açıklarını kullanarak şifreleri çözebilir.
Bu nedenle, sistem yöneticilerinin /etc/shadow
dosyasına sadece belirli kullanıcıların erişmesini sağlamaları ve şifreleme yöntemlerindeki güvenlik açıklarını gidermeleri önemlidir. Ayrıca, şifreleme yöntemi olarak kullanılan hashing algoritmalarının güncel ve güvenli olmasına dikkat edilmelidir. Eski veya zayıf hashing algoritmaları, şifrelerin kolayca kırılmasına neden olabilir.
/etc/shadow
dosyasındaki şifreli parolaların kırılması için çeşitli araçlar ve teknikler kullanılabilir. Bazı yaygın kullanılan araçlar şunlardır:
Hashcat: Bu araç, bir brute-force (kaba kuvvet) saldırısı yöntemiyle
/etc/shadow
dosyasındaki şifreleri kırar. Hashcat, CPU ve GPU desteği ile çalışır ve birçok farklı hashing algoritmasını destekler.John the Ripper: Bu araç, bir parola kırma aracıdır ve Linux, Unix ve diğer işletim sistemlerinde kullanılan birçok hashing algoritmasını destekler.
Hydra: Bu araç, belirli bir sistemdeki parolaları kırmak için brute-force saldırısı yöntemini kullanır. SSH, FTP, Telnet, HTTP POST, HTTP GET, HTTP Proxy vb. birçok protokolü destekler.
Root yetkisine sahip kullanıcıların keşfedilmesi
/etc/sudoers
dosyası, bir Linux sistemi üzerinde kullanıcılara sudo komutunu kullanma izni veren yapılandırma dosyasıdır. Bu dosya, sistem yöneticileri tarafından düzenlenir ve genellikle root kullanıcısının ayrıcalıklarını diğer kullanıcılara genişletmek için kullanılır.
/etc/sudoers
dosyasında, hangi kullanıcıların sudo komutunu kullanabileceği, hangi komutların kullanılabileceği, hangi kullanıcılara hangi yetkilerin verileceği gibi bilgiler belirtilir.
Örneğin, /etc/sudoers
dosyasında aşağıdaki satır, "john" kullanıcısının sudo komutunu kullanabilmesine izin verir:
Bu satır, "john" kullanıcısına tüm komutları ve tüm kullanıcılara ait tüm hakları kullanabilmesi için izin verir. Bu izinler, "john" kullanıcısının sistemi yönetme yetkilerini genişletir ve aynı zamanda bu yetkilerin yanlış ellerde kullanılmasına da neden olabilir.
Bu nedenle, /etc/sudoers
dosyası düzenlenirken dikkatli olunmalı ve yalnızca güvenilir kullanıcılara gerekli izinler verilmelidir. Ayrıca, /etc/sudoers
dosyasının okunabilirlik ve yazılabilirlik izinleri sınırlandırılmalı ve düzenli olarak güncellenerek sistemin güvenliği sağlanmalıdır.
Komut günlüklerinden zaafiyet keşfi
~/.bash_history
dosyası, Bash kabuğunda (bash
) çalıştırılan komutların geçmişini tutan bir dosyadır. Bash kabuğunda çalıştırılan her komut, bu dosyaya otomatik olarak kaydedilir ve daha sonra tekrar çağrılabilir.
Bu dosya, özellikle birden fazla kullanıcının erişimi olan bir sistemde, kötü niyetli kullanıcılar tarafından saldırı amacıyla kullanılabilir. Örneğin, bir saldırgan, bu dosyayı inceleyerek başka bir kullanıcının geçmişte yürüttüğü komutları görebilir ve bu komutları yeniden yürüterek sistemi hedefleyebilir.
Bu nedenle, özellikle çok kullanıcılı sistemlerde, ~/.bash_history
dosyasının güvenliği çok önemlidir. Bu dosyanın izinleri yalnızca kullanıcının kendisi tarafından okunabilir ve yazılabilir olmalıdır. Ayrıca, bu dosya düzenli olarak temizlenmeli veya gizlenmelidir. Bu işlem, Bash kabuğunda çalışan history
komutu veya unset HISTFILE
komutu kullanılarak yapılabilir.
Bu örnekte, dosyada kaydedilmiş ssh
komutları, hedef sisteme erişmek için kullanılan IP adresleri veya SSH anahtarları içerebilir. Ayrıca, mysql
veya psql
gibi veritabanı bağlantıları, veritabanına erişim sağlamak için kullanılan kullanıcı adı ve şifreleri içerebilir. Bu bilgiler, bir saldırgan tarafından ele geçirilirse, hedef sisteme veya veritabanına erişim sağlamak için kullanılabilir.Bas
~/.bash_history
dosyası, kötü niyetli kişiler tarafından saldırı amacıyla kullanılabilir. Örneğin, bir saldırgan bu dosyayı ele geçirdiğinde, geçmişte yürütülmüş komutları inceleyerek sistemdeki zayıf noktaları belirleyebilir. Daha sonra, bu zayıf noktaları kullanarak, sisteme erişebilir veya kötü amaçlı yazılımlar yükleyebilir.
Örneğin, bir saldırganın hedeflediği sisteme erişimi yoksa, ~/.bash_history
dosyasından kullanıcı adı ve parola gibi hassas bilgileri arayabilir. Bu bilgileri ele geçirdikten sonra, sisteme erişim sağlayabilir veya başka bir saldırı yöntemi kullanarak sistemi hedef alabilir.
Ayrıca, saldırgan, geçmişte yürütülmüş komutlar arasında sık kullanılan uygulamalar veya programlar gibi önemli bilgileri de bulabilir. Bu bilgiler, saldırganın hedef sistemdeki zayıf noktaları veya hedeflenen kişileri belirlemesine yardımcı olabilir.
Bu nedenle, ~/.bash_history
dosyasının güvenliği çok önemlidir. Dosya, yalnızca kullanıcının kendisi tarafından okunabilir ve yazılabilir olmalıdır. Ayrıca, bu dosya düzenli olarak temizlenmeli veya gizlenmelidir.
Ssh dosyaları
.ssh/
, Linux ve Unix sistemlerinde SSH (Secure Shell) için varsayılan ana dizin olarak kullanılan gizli bir dizindir. Bu dizin, kullanıcının SSH anahtarlarını, yapılandırma dosyalarını ve diğer SSH ile ilgili dosyaları saklamak için kullanılır. Dizinin adının başında nokta işareti bulunması, dizinin gizli olduğunu ve normal şartlar altında görüntülenmediğini gösterir.
.ssh/
dizini altında bulunan dosyalar, özel anahtarlar, yetkilendirme dosyaları ve SSH yapılandırma dosyaları gibi hassas bilgiler içerebilir. Bu nedenle, bu dosyaların güvenliği büyük önem taşır ve kötü niyetli kişilerin eline geçmesi, kullanıcının sisteme yetkisiz erişim sağlamasına neden olabilir.
Bu nedenle, kullanıcıların .ssh/
dizininde bulunan dosyaları korumak için, şifreleme, parola koruması, anahtar yönetimi, düzenli yedekleme gibi önlemler alması önerilir. Ayrıca, SSH sunucusu yapılandırması da güvenlik açıklarını minimize etmek için dikkatli bir şekilde yapılandırılmalıdır.
SSH anahtar dosyaları genellikle .pub
veya .key
uzantıları ile biten dosya isimleri kullanırlar.
Ancak, ~/.ssh/id_rsa
veya ~/.ssh/id_dsa
gibi dosya isimleri, SSH anahtarlarının varsayılan olarak kaydedildiği yerlerdir. Bu dosyalar kullanıcının özel SSH anahtarlarını içerebilir.
.ssh/id_rsa
, Linux ve Unix sistemlerinde kullanılan SSH (Secure Shell) protokolü için bir özel anahtar dosyasıdır. Bu dosya, kullanıcının özel anahtarını içerir ve SSH ile güvenli bir şekilde oturum açmak için kullanılır.
Bu anahtar dosyası, kullanıcının özel anahtarını saklar ve yetkisiz erişime karşı korumalıdır. Bu dosya, .ssh/
dizini altında yer alır ve kullanıcının özel anahtarını saklar. Bu nedenle, bu dosyanın güvenliği büyük önem taşır.
SSH özel anahtar dosyası (.ssh/id_rsa
) genellikle binlerce karakter uzunluğunda bir metin dosyasıdır ve özel bir format kullanır. Bu dosyanın içeriği, anahtarın oluşturulduğu algoritma türüne ve anahtarın boyutuna göre değişir. Örneğin, RSA algoritmasını kullanarak 2048 bitlik bir anahtar oluşturduysak, .ssh/id_rsa
dosyası şu şekilde bir örnek içeriğe sahip olabilir:
Uzaktan erişim bilgileri
.vnc
klasörü, Virtual Network Computing (VNC) protokolü aracılığıyla bir bilgisayara uzaktan erişmek için kullanılan bir program olan VNC sunucusunun yapılandırma dosyalarını içerir. Bu klasördeki dosyalar, VNC sunucusunun yapılandırmasını ve kullanıcının VNC sunucusuna bağlanırken kullanacağı kimlik bilgilerini içerebilir.
Örnek bir .vnc
klasörü içeriği aşağıdaki gibi olabilir:
Log dosyaları
/var/log/messages
dosyası, bir Linux sistemdeki çeşitli işlemlerle ilgili kayıtların tutulduğu bir sistem günlüğü dosyasıdır. Bu dosya, sistem kaynaklarının kullanımı, sistem etkinliği, hata mesajları ve diğer çeşitli olaylar hakkında bilgi içerebilir.
Örnek bir /var/log/messages
dosyası içeriği aşağıdaki gibi olabilir:
Bu örnekte, her bir log kaydı, öncelikle tarih ve saat bilgisiyle başlar. Daha sonra, localhost
adlı sistemdeki kernel
hakkında bilgi içeren kayıtlar yer alır. Bu kayıtlar, sistem çekirdeği ile ilgili bilgiler içerir ve örnek olarak kernel sürümü, sistem yapılandırması ve işlemci bilgileri gibi bilgileri içerir.
Bir hacker, /var/log/messages
dosyasını ele geçirerek, sistemdeki işlem ve etkinlikler hakkında bilgi edinebilir.
/var/log/messages dosyası, Linux işletim sistemlerinde sistem olaylarının kaydedildiği bir günlük dosyasıdır. Sistem kaynaklarına erişim sağlayan tüm kullanıcılar için açıktır ve sistem hatalarının yanı sıra önemli olayları da kaydeder.
Bu dosyadaki bilgiler, bir hacker için değerli olabilir çünkü sisteme yapılan herhangi bir işlem veya yapılan herhangi bir değişiklik kaydedilir. Bu bilgiler, bir saldırganın sisteme erişim sağlamak için kullandığı yöntemleri, sistemi nasıl ele geçirdiğini ve neleri kontrol edebildiğini belirlemesine yardımcı olabilir.
Örneğin, /var/log/messages dosyasındaki bir kayıt, bir saldırganın bir güvenlik açığından yararlanarak sistemde kök erişimi elde ettiğini gösteriyor olabilir. Bu bilgi, saldırganın sistemi ele geçirmek için hangi adımları attığını anlamak ve daha sonra bu açığı kapatmak için önlem almak için kullanılabilir.
E-posta kayıtları
/var/log/maillog
, Postfix, Sendmail veya diğer e-posta sunucuları tarafından gönderilen veya alınan e-postaların ayrıntılarını kaydeden bir log dosyasıdır. Bu log dosyası, e-posta sunucusunun çalışmasıyla ilgili bilgileri içerir ve sistem yöneticileri tarafından sorunları tespit etmek ve çözmek için kullanılır.
Örneğin, bir kullanıcı bir e-posta göndermeye çalıştığında, eğer gönderim başarısız olursa /var/log/maillog
dosyası bu hata ile ilgili bilgileri kaydeder. Sistem yöneticileri, bu log dosyasını kullanarak neden e-posta gönderiminde bir sorun yaşandığını belirleyebilirler. Ayrıca, e-postaların nereye gönderildiğini, hangi kullanıcılara gönderildiğini ve hangi kullanıcılardan alındığını da takip edebilirler.
Bununla birlikte, saldırganlar da bu log dosyasını hedef alabilirler. Örneğin, saldırganlar, e-posta sunucusundaki kullanıcıların e-posta adreslerini toplamak veya e-posta sunucusuna yetkisiz erişim sağlamak için /var/log/maillog
dosyasını analiz edebilirler. Bu nedenle, sistem yöneticileri, e-posta sunucusundaki log dosyalarının güvenliğini sağlamak için gerekli önlemleri almalıdırlar.
Bu çıktıda, ilk satırda, bir e-posta gönderiminde bir hata olduğunu belirten "Connection timed out" hatası görülüyor. İkinci satırda, Postfix ana süreci tarafından bir uyarı mesajı görüntüleniyor ve üçüncü satırda, hatalı bir gönderim işlemi nedeniyle gönderme işlemlerine bir süreliğine ara verileceği belirtiliyor.
Bu örnek, /var/log/maillog dosyasında bulunabilecek tipik hatalardan sadece biridir.
Sisteme giren ve çıkan kullanıcıların kaydı
/var/log/lastlog
dosyası, sisteme son giriş yapan kullanıcıların bilgilerini içeren bir log dosyasıdır. Bu dosya, özellikle bir sistemin güvenliği açısından önemlidir, çünkü son giriş yapan kullanıcıların kimlikleri ve zaman damgaları gibi bilgileri içerir. Bu dosyayı yalnızca root kullanıcısı veya özel izinlere sahip kullanıcılar görüntüleyebilir.
Örnek bir çıktı aşağıdaki gibi olabilir:
Hackerlar, /var/log/lastlog
dosyasını okuyabilmek için öncelikle hedef sistemdeki root hesabına veya bu dosyaya erişim izni olan başka bir kullanıcı hesabına erişim sağlamaları gerekecektir.
Last updated