Irked Çözümü [HackTheBox]

mik

Üye
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 1].

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

e6271ac6cab8d3e125342174794be3d3abe83f36.png



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
06639380d83d90c7a37c9f8f63747e64d184b1da.png


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 1) 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 [email protected]
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 5 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:
 
Moderatör tarafında düzenlendi:

sef

0xffffffxxxxxx
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.
 
Üst