Irked Çözümü [HackTheBox]

Aslanlar kendi tarihçilerine kavuşuncaya kadar kitaplar avcıyı övecektir.
___________________________________________________________Afrika Atasözü

Herkese merhaba,
Bu yazı içerisinde Hackthebox Irked makinasının çözümü anlatılmaktadır.

irked1
İşletim Sistemi: Linux
Zorluk: Kolay [4.4/10]

NMAP taramasıyla işe koyuluyoruz:

root@kali:~/htb/irked# nmap -sV -sC -p- -T4 10.10.10.117
irked2

Tarama sonucunda ssh, http, rpc, ve irc servis portlarının açık olduğunu görmekteyiz. HTTP servisini kontrol etmek için tarayıcı üzerinden giriş yaptığımızda içerisinde resim bulunan kaynak kodunda da herhangi bir bilgi barındırmayan boş bir sayfayla karşılaşıyoruz.

irked3

Dirbuster, Dirb, Gobuster vb. araçları kullanarak dizin ve dosya taraması yaptımızda da ilginç herhangi bir şeyle karşılaşmamaktayız Yukarıdaki resimde de gördünüz gibi giriş sayfasında bulunan “IRC is almost working!” notu bizlere irc servis portuna yönelmemiz konusunda ipucu veriyor.

IRC servis portuna kurulu olan UnrealIRCd hakkında biraz google araştırması yaptığımızda daha önce çıkan açık ve bununla alakalı exploit olduğunu görüyoruz [CVE-2010-2075].

root@kali:~/htb/irked# searchsploit unrealircd
irked4

İlgili metasploit modülünü kullanarak shell bağlantımızı alıyoruz.

msf > use exploit/unix/irc/unreal_ircd_3281_backdoor

Non-interactive shell bağlantımızı interactive shell e dönüştürmek için aşağıdaki komutu kullanıyoruz.

python -c "import pty;pty.spawn('/bin/bash')"
irked6
ircd kullanıcı ile içerdeyiz.

ircd@irked:~/Unreal3.2$ cat /etc/passwd


Sistemdeki kullanıcı adlarını kontrol ettiğimizde djmardov isimli bir başka kullanıcının bulunduğunu görmekteyiz.

İlgili kullanıcının dizini altındaki dosyaları listeleyerek önemli bir şey olup olmadığına bakalım:
ircd@irked:~/Unreal3.2$ ls -lahR /home/djmardov/*
irked8
Yukarıdaki resimde de görüldüğü gibi Documents klasörü altında user.txt ve .backup bulunmakta. User.txt’i görünce user flagi bulduk sandım ancak mevcut kullanıcıda user.txt görüntüleme iznimiz yok. .backup’ı açtığımızda içerisinde bir not ve şifre olarak kullanılacak bir metin olduğunu görüyoruz:

irked9
Dosya içerisinde çıkan metnin bir Stegonagrafi (bilgi gizleme) yönteminde şifre olarak kullanılabileceğini anlamak çok zor olmuyor. Elimizdeki verilere dönüp baktığımızda anasayfa (http://10.10.10.117) içerisindeki sarı gülücük resminin içine bir veri gizlenmiş olabileceğini düşünebiliriz.

Anasayfadaki irked.jpg dosyasını bilgisayarımıza indirip steghide aracıyla içerisinde gizlenen veriyi .backup dosyası içerisinden çıkan “UPupDOWNdownLRlrBAbaSSss” şifresiyle çıkarabilmekteyiz.

irked10

Resim içine gizlenen pass.txt dosyasından çıkan “Kab6h+m+bbp2J:HG” şifrenin daha önce tespit ettiğimiz djmardov kullanıcısının şifresi olduğunu anlıyoruz. Bu kullanıcı bilgileriyle makinaya ssh bağlantısı gerçekleştirelim.

root@kali:~/htb/irked# ssh djmardov@10.10.10.117
irked11
User flagine ulaştık sırada yetki yükseltme ve root flagini elde etme aşaması var! :white_flag:

YETKİ YÜKSELTME

Linux sistemlerde yetki yükseltme denemeleri için temel bilgi içeren bu linki referans alabilirsiniz. Bu makinada da SUID SGID bitleri aracılığıyla yetki yükseltme yöntemi kullanılmaktadır.

djmardov@irked:~$ find / -perm -u=s -type f 2>/dev/null
irked12
SUID bit içeren dosyaları arattığımızda /usr/bin/viewuser dosyasının alışılmışın dışında olarak listelenmesi dikkatimizi çekecektir.

irked13
İlgili dosyayı çalıştırdığımızda /tmp/listuser isimli bir dosyanın bulunamadığı hatasını veriyor. Aradığı adreste aradığı isimde bir dosya oluşturarak istediğimiz komutu root yetkisi ile çalıştırmasını sağlayacağız.

O yüzden /tmp dizini altında listusers adında bir dosya oluşturarak içerisine

#!/bin/bash
/bin/bash

komutlarını yazıyoruz. Daha sonra /tmp/listuser dosyasına çalıştırma izni verip SUID bit içeren /usr/bin/viewuser dosyasını çalıştırdığımızda listuser dosyası içerisindeki komut root yetkisi ile çalıştırılacağından root shell elde etmiş olacağız.

irked14
Böylelikle /root/root.txt aracılığıya asıl hedefimiz olan flag bilgisine de ulaşmış olduk. :black_flag:
irked15

görüşmek üzere. :racehorse:

12 Beğeni

Bu soruyu sıkıntıyla karışık bir ara ben de çözmüştüm, aslında son mevzuda meydana gelen SUID priv esc. muhabbeti zamanın behrinde çıkan hwclock suid priv esc muhabbetini hatırlattı bize. Gayet etkili ve basit bir zafiyetti hem bu yolla daha farklı yöntemler hem küçük bir nüans gibi görünen değişikliklerin ne kadar tehlikeli olduğunu görebiliyoruz. Ellerine sağlık, gayet öğretici ve net olmuş kardeşim.

2 Beğeni

eline sağlık kardeşim. hımm ss’li anlatım severim

4 Beğeni