Ön Bilgilendirme
Bu yazımın içeriğinde siber güvenlik sektörünün en çok kullanılan işletim sistemlerinde yani linux (debian tabanlı) işletim sistemlerinde bulunan “Login By-Pass” zayıflığına değineceğim. Aslında bu konuya iki farklı başlık atabiliriz.Ben bu blogta Linux işletim sistemlerinde unutulan parolanın (root parolasıda dahil) sıfırlanması şeklinde bir başlık yerine Linux Login Bypass başlığını kullanmayı tercih ettim. Çünkü ben konunun gözardı edildiği zaman ciddi zararlara yol açabileceğini düşünüyorum. Başta bilişim sektöründe yer alan kişiler olmak üzere günümüzde bir çok insan tüm bilgilerini not defterleri yerine artık kişisel bilgisayarlarında saklıyorlar. Linux işletim sistemlerinde bir kullanıcının parolasının sıfırlanması demek kullanıcı dizininde yer alan tüm belge ve klasörlerin ele geçirilmesi demek oluyor.
Tabikide engel olunamaz bir zayıflıktan söz etmiyoruz. Fakat az önce de belirttiğim gibi göz ardı edilirse bu küçük zayıflık büyük problemlere yol açabilir. Küçük bir kıvılcımın tüm samanlığı kül etmesine benzetilebilir.
İyi okumalar dilerim.
Teknik Detay
Bu kısımda yukarıda kısaca bahsettiğim zaafiyeti kullanarak Kali Linux işletim sistemine sahip bir bilgisayarda root kullanıcısına ait parola bilgisinin hiç bir ek materyal kullanmadan nasıl sıfırlandığını adım adım inceleceğiz. İlk olarak bu zaafiyeti tam olarak anlamak için Linux sistem bilgimizin belirli bir seviyede olması gerekir. Hiç olmazsa işletim sisteminin başlatılması esnasında gerçekleşen adımların çalışma mantığının biliniyor olması gerekmektedir. Aksi halde ezbere yapılmış bir uygulama olur.
Linux sistemlerin açılması sırasında ilk yer sırada yer alan ve süreç numarası 1 olan süreç init‘tir. Parola bilgisinin sıfırlanması için init sürecinin başlatılmasına ilişkin konfigürasyonların grub ekranın da düzenlenmesi ve yazma/okuma yetkisiyle bash kabuğunda çalıştırılmasını sağlamamız gerekir. Yani sistem login ekranına gelmeden doğrudan init sürecini yetkili olarak bash kabuğuna düşürecektir. Böylece grafik arayüze erişmeden komut satırında root olarak komut çalıştırabiliriz. Bu aşamadan sonra zaten passwd komutuyla kolaylıkla istenilen kullanıcının parola bilgisi değiştirilebilir.
1- İlk olarak grub ekranında “e” tuşuna basarak düzenleme moduda geçilmektedir. Burada az önce bahsettiğimiz grub konfigürasyonlarında değişiklik yaparak init sürecinde değişiklik yapacağız.

2- Düzenleme moduna geçtikten sonra “linux” ile başlayan satırı buluyoruz ve aşağıdaki işaretli kısmı (ro initrd=/install/..) kısmı rw init=/bin/bash/ olarak değiştiriyoruz. Bu sayede init sürecinde yazma/okuma yetkili olarak bash kabuğunda komut çalıştırabiliyor olacağız. Gerekli düzenlemeyi yaptıktan sonra “CTRL+X kombinasyonuyla veya F10 tuşuna basarak sistemi boot ediyoruz.

3- İşletim sistemi boot aşamasını tamamladıktan sonra bash kabuğunda komut istemi ekranı karşımıza gelecektir ve herhangi bir şekilde doğrulama yapılmayacak, parola bilgisi istenmeyecektir. Bu aşamadan sonra “passwd komutu” kullanılarak istenilen kullanıcının parola bilgisi güncellenebilir-kurtarılabilir-değiştirilebilir. Görsellerde görüldüğü gibi işlem tamamlandıktan sonra “reboot” komutuyla sistem yeniden başlatıldığında yeni parola bilgisiyle sisteme doğrudan giriş yapılabilmektedir.

Bu noktaya kadar linux sistemlerde login ekranının bypass edilmesi, unutulan parolanın kurtarılması veya sisteme yetkisiz olarak erişim sağlanması konusunu ele aldık. Şimdi bu zaafiyete karşı kullanmakta olduğumuz linux sistemi nasıl savunabiliriz, neler yaparak güvenlik tedbiri almış oluruz bunlara bakalım…
Güvenlik Önlemi – Savunma Hamlesi
Yukarıda görüldüğü gibi grub ayarlarının değiştirilmesiyle kullanıcı parolasının kolay bir şekilde değiştirilebildiğini gördük. Bu saldırıya karşı kolay bir adımla savunma hamlemizi yapabiliriz. İlk akla gelen hamle olarak grub ekranına parola doğrulaması ekleyerek grub düzenleme moduna erişime engel oluşturabiliriz. Buradaki parola bilgisini doğru giremeyen kimseler böylece grub ayarlarında düzenleme yapamayacaklardır.
Şimdi adım adım grub menü ekranına nasıl parola doğrulaması ekleyeceğimizi inceleyelim..
1- İşletim sistemimize ROOT yetkileriyle giriş yaptıktan sonra komut satırını açarak “grub-mkpasswd-pbkdf2” komutunu çalıştırıyoruz. (Bu noktada hata alırsanız sudo ile denemelisiniz.) Grub ekranda doğrulama yapılacak olan parola bilgisini girip doğrulamasını yapıyoruz. Komut çıktısı olarak aşağıdaki görselde görüldüğü gibi girilen parola değerinin SHA-512 değeri verilmektedir. Bu değeri panoya kopyalıyoruz.

2- Parolamızın Hash’ini aldıktan sonra etc/grub.d-40_custom konfigürasyon dosyasınnı açarak aşağıdaki formatta eklemelerimizi yapıyoruz. Burada kullanıcı adı olarak sistemde sahip olduğunuz en yetkili olan (root) kullanıcı adını kullanmanız en iyi tercih olacaktır.
set superusers= KullanıcıAdı
password_pbkdf2 KullanıcıAdı Parolanın-Sha-512-Değeri

Gerekli düzenlemeleri doğru ve eksiksiz olarak yaptıktan sonra kayıt edip dosyayı kapatıyoruz. Bu aşamada problem yaşamamak 40_custom dosyasını root olarak açmanızı öneriyorum.
3- Son olarak “grub-update” komutu ile yaptığımız değişikliklerin güncellenmesini sağlıyoruz.

4- Grub güncellendikten sonra sistemimize reboot yaparak yeniden başlattığımızda artık her açılışta grub menüsü açılmadan önce mutlaka parola doğrulama işlemi yapılacaktır. Bu sayede grub ayarlarında yetkisiz olarak değişilik yapılmasını engellemiş olmaktayız.

Not: Bu güvenlik tedbirine ek olarak bilgisayarınızı fiziksel saldırılarada karşı daha güvenli hale getirmek için mutlaka BIOS Parolası kullanmanızı da tavsiye ederim. Böylece boot aşamasının başından sonuna kadar parola doğrulamaları yaparak sisteminizi daha güvenli hale getirebilirsiniz.
Umarım faydalı olmuştur.
Teşekkür ederim.
Sağlıcakla kalın.