Post

TryHackMe | LazyAdmin WriteUp

TryHackMe | LazyAdmin WriteUp

Özet

Web uygulamasında SweetRice adında bir uygulama kullandığını öğreneceğiz. Daha sonra bir yedek sql dosyası ile karşılaşacağız. İçerisindeki kullanıcı bilgilerini kullanarak web uygulamasına giriş yapacak ve reverse shell dosyamızı yükleyeceğiz. Dosyayı çalıştırıp, bağlantı elde ettikten sonra ise sistemde bulunan bir dosyayı root haklarında parola gerektirmeden çalıştırabildiğimizi öğreneceğiz. Bu dosyayi incelediğimizde ise başka bir dosyayı çalıştırdığını ve çalıştırdığı dosyanın düzenleme yetkisinin bulunduğunu öğreneceğiz. İçerisine reverse shell komutumuzu girdikten sonra ilk dosyayı çalıştırarak root yetkisinde bir bağlantı alacağız.

Keşif aşaması

Nmap taraması

1
2
3
4
5
6
7
8
9
10
11
$nmap -sV -sC -T4 10.10.114.17
PORT   STATE SERVICE VERSION
22/tcp open  ssh     OpenSSH 7.2p2 Ubuntu 4ubuntu2.8 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey: 
|   2048 49:7c:f7:41:10:43:73:da:2c:e6:38:95:86:f8:e0:f0 (RSA)
|   256 2f:d7:c4:4c:e8:1b:5a:90:44:df:c0:63:8c:72:ae:55 (ECDSA)
|_  256 61:84:62:27:c6:c3:29:17:dd:27:45:9e:29:cb:90:5e (ED25519)
80/tcp open  http    Apache httpd 2.4.18 ((Ubuntu))
|_http-server-header: Apache/2.4.18 (Ubuntu)
|_http-title: Apache2 Ubuntu Default Page: It works
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

Tarama sonucunda 22 ve 80 numaralı portların açık olduğunu öğreniyoruz. HTTP servisinde varsayılan Apache sayfası bulunuyor.

80 numaralı port’un incelenmesi

Ana sayfada varsayılan Apache sayfası bulunuyor, kaynak kodunda ise herhangi bir bilgi yok. Daha fazla bilgi edinmek adına dirsearch ile bir dosya/dizin taraması yapalım.

1
2
3
4
$ dirsearch -u 10.10.114.17
...
[05:47:03] 200 -  983B  - /content/
...

Tarama sonucunda content adında bir dizin olduğunu öğreniyoruz. Bu dizindeki index.php sayfasının içeriği aşağıdaki şekildedir.

Gördüğünüz üzere SweetRice adında bir yazılım kullanılıyor. /content/changelog.txt dosyasına baktığımızda bu yazılımın 1.5.0 sürümünü kullandığını görüyoruz. İnternette bu sürüme uygun bir exploit var. Ancak sömürme işlemini gerçekleştirebilmek için bir kullanıcı adı ve parolaya ihtiyacımız var. dirsearch aracı ile tekrar bir arama yaptığımızda content/inc adında bir dizinle daha karşılaşıyoruz.

1
2
3
4
5
6
7
8
9
10
11
12
$ dirsearch -u 10.10.114.17/content/
...
[05:50:29] 200 -  455B  - /content/_themes/
[05:50:52] 200 -    6KB - /content/changelog.txt
[05:51:10] 200 -  684B  - /content/images/
[05:51:10] 301 -  321B  - /content/images  ->  http://10.10.114.17/content/images/
[05:51:10] 301 -  318B  - /content/inc  ->  http://10.10.114.17/content/inc/
[05:51:10] 200 -  909B  - /content/inc/
[05:51:11] 200 -  991B  - /content/index.php/login/
[05:51:13] 200 -  535B  - /content/js/
[05:51:14] 200 -    6KB - /content/license.txt
...

Bu dizinin içerisinde mysql_backup adında bir dizin bulunuyor. Onun içerisinde ise bir sql dosyası var. Bu dosyanın içerisinde de kullanıcı bilgileri bulunuyor.

1
2
Kullanıcı adı: manager
Parolanın md5 karşılığı: 42f749ade7f9e195bf475f37a44cafcb

MD5 hash’i hashes.com aracılığıyla kırdıktan sonra web sitesine giriş yapıyoruz.

Sömürü aşaması

bu sömürü aracını referans alarak siteye reverse shell dosyamızı yükleyeceğiz.

Siteye giriş yaptıktan sonra exploit’te belirtilen alandan .php5 uzantılı olacak şekilde reverse shell dosyamızı yüklüyoruz.

ncat ile belirttiğimiz port’u dinlemeye aldıktan sonra yüklediğimiz shell dosyasını çalıştırıyoruz ve böylece bir shell elde etmiş oluyoruz.

Yetki yükseltme

root

sudo -l komutunu kullandığımızda herhangi bir kullanıcının yetkisinde parola kullanmadan perl ile backup.pl adındaki bir dosyayı çalıştırabileceğimizi görüyoruz.

1
2
3
4
5
6
7
www-data@THM-Chal:/home/itguy$ sudo -l
Matching Defaults entries for www-data on THM-Chal:
    env_reset, mail_badpass,
    secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin

User www-data may run the following commands on THM-Chal:
    (ALL) NOPASSWD: /usr/bin/perl /home/itguy/backup.pl

Bu dosyanın içeriği aşağıdaki şekildedir.

1
2
3
#!/usr/bin/perl

system("sh", "/etc/copy.sh");

/etc/copy.sh adında bir dosyayı çalıştırdığını görüyoruz. Bu dosyayı düzenleme yetkimiz bulunduğundan içerisinde bir reverse shell komutu giriyor ve backup.pl dosyasını çalıştırdıktan sonra root kullanıcısına ait bir shell’e geçiş yapıyoruz.

This post is licensed under CC BY 4.0 by the author.