logo logo

HacktorX sitesi kar amacı gütmeyen bir siber güvenlik platformudur.

Elazığ, Türkiye

Fırat Üniversitesi Rektörlük Kampüsü, 23100
[email protected]
Writeup

TryHackMe – UltraTech1

Oda linki: https://tryhackme.com/room/ultratech1

Orta düzey bir CTF odası. Node.js ile yazılmış bir web API’sinden yararlanmamız, ardından root kullanıcısının özel SSH anahtarını bulmak için yetki yükseltmemiz gerekiyor.

GÖREV 1

Oda hakkında bilgi vermektedir.
Şirket adı ve sunucu IP adresi dışında bilgiye sahip olmadığımızı söyleniyor.

GÖREV 2 : Sistemi Keşfetme

İlk başta Nmap taraması gerçekleştirdim. Nmap tarama sonucu:

3 servisin açık olduğunu gördüm, ftp(21), ssh(22) ve http(8081 ve 31331). ¨Route¨ bulmak için dirb ile bir dizin taraması başlattım.

8081 portu hangi yazılımı kullanıyor?
Node.js
Yaygın olarak kullanılan port numaraları dışında kalan, belirli bir uygulama veya hizmete özgü olmayan portlar nelerdir?
31331
31331 portunu kullanan yazılım hangisidir?
Apache
Hangi GNU/Linux dağıtımının kullanıyor?
Ubuntu
8081 numaralı portu kullanan yazılım bir REST API'dir; web uygulaması tarafından kaç tane Route kullanılıyordur?1
2

Görev 3: Web Uygulama Testi

Web sayfasının kaynak kodlarına göz attım ve sadece bir e-posta adresi buldum. Ayrıca, web sayfasında çalışan kişilerin adlarını öğrendim.

Başka önemli bir şey bulamadım, o yüzden gobuster ile dizin taraması yapmaya karar verdim.

/robots.txt 2dizinine bakmaya karar verdim

robots.txt dosyasının içinde, sitenin ve tüm sayfalarının kısıtlamalarını yani genel site haritasını gösterecek ¨/utech_sitemap.txt¨ başlıklı bir metin dosyası olduğunu söylüyor.

Sayfanın içinde 3 adet HTML dosyası içeriyor. /index.html sayfası bizim ilk sayfamız, /what.html sayfası ise hakkında sayfası ve /partners.html ana sayfayla bağlantısı olmayan bir sayfa olduğundan bakmaya karar verdim.

Daha önce bulduğum kullanıcı adları veya e-posta ile şifreye brute force saldırısı denemek mümkün olabilir. Ancak, brute force saldırısına başlamadan önce, kaynak koduna bakalım.


Baktığım zaman, en alt kısımda “api.js” adlı özel yazılmış bir JavaScript dosyası bulunuyordu, içine baktığımda.

getAPIURL() fonksiyonu gözüme çarpttı. Ayrıca, window.location.hostname nesnesi, web hostun alan adını döndürmek için kullanılır.

const url = 'http://${getAPIURL()}/ping?ip=${window.location.hostname}'

Bu kodu ${window.location.hostname} yerine pwd ‘yi deneyerek çalıştırdım.

Bir uyarı aldık demek ki arkada bir komut çalışıyor, command injection yapabiliriz.

Ardından, komut çalıştırdım ve /home/www/api dizininde olduğunu gördüm. Artık sömürebiliriz!!

Veritabanı dosyasının bulunduğu dosyayı okumaya çalıştım.

Bunlar hash çeşidi olabilirler teker teker deniyorum ve 0d0ea5111e3c1def594c1684e3b9be84 şifresini hash analizi programında denediğimde hash tipinin MD5 olduğunu anladım.

Ayrıca, diğerinin de MD5 olacağını düşünüp 32 hanesini alıp hash analiz programında denedim ve çözümlere ulaşmış oldum.

GÖREV 4 : Yetki Yükseltme

Admin ve şifreyi öğrendikten sonra başarılı bir şekilde giriş yaptım.r00t adında bir kullanıcı bilgisi aldım. Zaten ana sayfada da root bilgisine ulaşmıştık

Adımızı ve şifremizi bildiğime göre ssh bağlantısı kurabiliriz.

Kullanıcının hangi kullanıcı ve gruplara ait olduğunu belirlemek için id komutunu kullandım.

Grupların docker grubuna ait olduğunu gördüm ardından root shell almak için internette şu kaynağa rastladım Gtfobins 3

docker run -v /:/mnt --rm -it alpine chroot /mnt sh 

Komutu terminalde çalıştırdım ve root yekisini aldık.

Daha sonra, /root/.ssh/id_rsa’ ya ulaşıp ssh anahtarını elde etmiş oldum.

  1. REST (Representational State Transfer), web servislerini tasarlamak ve uygulamak için kullanılan bir mimari tarzıdır. REST API’ler, uygulamaların birbirleriyle veya bir sunucuyla iletişim kurmalarını sağlar. HTTP protokolü genellikle REST API’lerde iletişim için kullanılır.REST API’lerde “route” veya yol, belirli bir kaynağa veya hizmete erişmek için kullanılan URL’yi ifade eder. ↩︎
  2. robots.txt dosyası, bir web sitesi yöneticisinin arama motorlarına web sitesinin belirli kısıtlamalarını ve yönergelerini bildiren bir metin dosyasıdır. Bu dosya, özellikle arama motorları tarafından web sitesinin taranması sırasında hangi sayfaların indekslenmesine izin verilip verilmeyeceğini kontrol etmek için kullanılır. ↩︎
  3. https://gtfobins.github.io/gtfobins/docker/ ↩︎

Writeup kategorisinde bu yazımızı da inceleyebilirsiniz.

In this article: Siber Güvenlik, THM, Tryhackme, Writeup
. . .

Popüler Kategoriler

Siber Güvenlik
25
Writeup
13
Network
12
Yazılım
6
Adli Bilişim
4
Nmap Detaylı Anlatım (3/3) - HacktorX
Writeup

TryHackMe – UltraTech1

Oda linki: https://tryhackme.com/room/ultratech1

Orta düzey bir CTF odası. Node.js ile yazılmış bir web API’sinden yararlanmamız, ardından root kullanıcısının özel SSH anahtarını bulmak için yetki yükseltmemiz gerekiyor.

GÖREV 1

Oda hakkında bilgi vermektedir.
Şirket adı ve sunucu IP adresi dışında bilgiye sahip olmadığımızı söyleniyor.

GÖREV 2 : Sistemi Keşfetme

İlk başta Nmap taraması gerçekleştirdim. Nmap tarama sonucu:

3 servisin açık olduğunu gördüm, ftp(21), ssh(22) ve http(8081 ve 31331). ¨Route¨ bulmak için dirb ile bir dizin taraması başlattım.

8081 portu hangi yazılımı kullanıyor?
Node.js
Yaygın olarak kullanılan port numaraları dışında kalan, belirli bir uygulama veya hizmete özgü olmayan portlar nelerdir?
31331
31331 portunu kullanan yazılım hangisidir?
Apache
Hangi GNU/Linux dağıtımının kullanıyor?
Ubuntu
8081 numaralı portu kullanan yazılım bir REST API'dir; web uygulaması tarafından kaç tane Route kullanılıyordur?1
2

Görev 3: Web Uygulama Testi

Web sayfasının kaynak kodlarına göz attım ve sadece bir e-posta adresi buldum. Ayrıca, web sayfasında çalışan kişilerin adlarını öğrendim.

Başka önemli bir şey bulamadım, o yüzden gobuster ile dizin taraması yapmaya karar verdim.

/robots.txt 2dizinine bakmaya karar verdim

robots.txt dosyasının içinde, sitenin ve tüm sayfalarının kısıtlamalarını yani genel site haritasını gösterecek ¨/utech_sitemap.txt¨ başlıklı bir metin dosyası olduğunu söylüyor.

Sayfanın içinde 3 adet HTML dosyası içeriyor. /index.html sayfası bizim ilk sayfamız, /what.html sayfası ise hakkında sayfası ve /partners.html ana sayfayla bağlantısı olmayan bir sayfa olduğundan bakmaya karar verdim.

Daha önce bulduğum kullanıcı adları veya e-posta ile şifreye brute force saldırısı denemek mümkün olabilir. Ancak, brute force saldırısına başlamadan önce, kaynak koduna bakalım.


Baktığım zaman, en alt kısımda “api.js” adlı özel yazılmış bir JavaScript dosyası bulunuyordu, içine baktığımda.

getAPIURL() fonksiyonu gözüme çarpttı. Ayrıca, window.location.hostname nesnesi, web hostun alan adını döndürmek için kullanılır.

const url = 'http://${getAPIURL()}/ping?ip=${window.location.hostname}'

Bu kodu ${window.location.hostname} yerine pwd ‘yi deneyerek çalıştırdım.

Bir uyarı aldık demek ki arkada bir komut çalışıyor, command injection yapabiliriz.

Ardından, komut çalıştırdım ve /home/www/api dizininde olduğunu gördüm. Artık sömürebiliriz!!

Veritabanı dosyasının bulunduğu dosyayı okumaya çalıştım.

Bunlar hash çeşidi olabilirler teker teker deniyorum ve 0d0ea5111e3c1def594c1684e3b9be84 şifresini hash analizi programında denediğimde hash tipinin MD5 olduğunu anladım.

Ayrıca, diğerinin de MD5 olacağını düşünüp 32 hanesini alıp hash analiz programında denedim ve çözümlere ulaşmış oldum.

GÖREV 4 : Yetki Yükseltme

Admin ve şifreyi öğrendikten sonra başarılı bir şekilde giriş yaptım.r00t adında bir kullanıcı bilgisi aldım. Zaten ana sayfada da root bilgisine ulaşmıştık

Adımızı ve şifremizi bildiğime göre ssh bağlantısı kurabiliriz.

Kullanıcının hangi kullanıcı ve gruplara ait olduğunu belirlemek için id komutunu kullandım.

Grupların docker grubuna ait olduğunu gördüm ardından root shell almak için internette şu kaynağa rastladım Gtfobins 3

docker run -v /:/mnt --rm -it alpine chroot /mnt sh 

Komutu terminalde çalıştırdım ve root yekisini aldık.

Daha sonra, /root/.ssh/id_rsa’ ya ulaşıp ssh anahtarını elde etmiş oldum.

  1. REST (Representational State Transfer), web servislerini tasarlamak ve uygulamak için kullanılan bir mimari tarzıdır. REST API’ler, uygulamaların birbirleriyle veya bir sunucuyla iletişim kurmalarını sağlar. HTTP protokolü genellikle REST API’lerde iletişim için kullanılır.REST API’lerde “route” veya yol, belirli bir kaynağa veya hizmete erişmek için kullanılan URL’yi ifade eder. ↩︎
  2. robots.txt dosyası, bir web sitesi yöneticisinin arama motorlarına web sitesinin belirli kısıtlamalarını ve yönergelerini bildiren bir metin dosyasıdır. Bu dosya, özellikle arama motorları tarafından web sitesinin taranması sırasında hangi sayfaların indekslenmesine izin verilip verilmeyeceğini kontrol etmek için kullanılır. ↩︎
  3. https://gtfobins.github.io/gtfobins/docker/ ↩︎

Writeup kategorisinde bu yazımızı da inceleyebilirsiniz.

In this article: Siber Güvenlik, THM, Tryhackme, Writeup
. . .
Nmap Detaylı Anlatım (2/3) - HacktorX
Writeup

TryHackMe – UltraTech1

Oda linki: https://tryhackme.com/room/ultratech1

Orta düzey bir CTF odası. Node.js ile yazılmış bir web API’sinden yararlanmamız, ardından root kullanıcısının özel SSH anahtarını bulmak için yetki yükseltmemiz gerekiyor.

GÖREV 1

Oda hakkında bilgi vermektedir.
Şirket adı ve sunucu IP adresi dışında bilgiye sahip olmadığımızı söyleniyor.

GÖREV 2 : Sistemi Keşfetme

İlk başta Nmap taraması gerçekleştirdim. Nmap tarama sonucu:

3 servisin açık olduğunu gördüm, ftp(21), ssh(22) ve http(8081 ve 31331). ¨Route¨ bulmak için dirb ile bir dizin taraması başlattım.

8081 portu hangi yazılımı kullanıyor?
Node.js
Yaygın olarak kullanılan port numaraları dışında kalan, belirli bir uygulama veya hizmete özgü olmayan portlar nelerdir?
31331
31331 portunu kullanan yazılım hangisidir?
Apache
Hangi GNU/Linux dağıtımının kullanıyor?
Ubuntu
8081 numaralı portu kullanan yazılım bir REST API'dir; web uygulaması tarafından kaç tane Route kullanılıyordur?1
2

Görev 3: Web Uygulama Testi

Web sayfasının kaynak kodlarına göz attım ve sadece bir e-posta adresi buldum. Ayrıca, web sayfasında çalışan kişilerin adlarını öğrendim.

Başka önemli bir şey bulamadım, o yüzden gobuster ile dizin taraması yapmaya karar verdim.

/robots.txt 2dizinine bakmaya karar verdim

robots.txt dosyasının içinde, sitenin ve tüm sayfalarının kısıtlamalarını yani genel site haritasını gösterecek ¨/utech_sitemap.txt¨ başlıklı bir metin dosyası olduğunu söylüyor.

Sayfanın içinde 3 adet HTML dosyası içeriyor. /index.html sayfası bizim ilk sayfamız, /what.html sayfası ise hakkında sayfası ve /partners.html ana sayfayla bağlantısı olmayan bir sayfa olduğundan bakmaya karar verdim.

Daha önce bulduğum kullanıcı adları veya e-posta ile şifreye brute force saldırısı denemek mümkün olabilir. Ancak, brute force saldırısına başlamadan önce, kaynak koduna bakalım.


Baktığım zaman, en alt kısımda “api.js” adlı özel yazılmış bir JavaScript dosyası bulunuyordu, içine baktığımda.

getAPIURL() fonksiyonu gözüme çarpttı. Ayrıca, window.location.hostname nesnesi, web hostun alan adını döndürmek için kullanılır.

const url = 'http://${getAPIURL()}/ping?ip=${window.location.hostname}'

Bu kodu ${window.location.hostname} yerine pwd ‘yi deneyerek çalıştırdım.

Bir uyarı aldık demek ki arkada bir komut çalışıyor, command injection yapabiliriz.

Ardından, komut çalıştırdım ve /home/www/api dizininde olduğunu gördüm. Artık sömürebiliriz!!

Veritabanı dosyasının bulunduğu dosyayı okumaya çalıştım.

Bunlar hash çeşidi olabilirler teker teker deniyorum ve 0d0ea5111e3c1def594c1684e3b9be84 şifresini hash analizi programında denediğimde hash tipinin MD5 olduğunu anladım.

Ayrıca, diğerinin de MD5 olacağını düşünüp 32 hanesini alıp hash analiz programında denedim ve çözümlere ulaşmış oldum.

GÖREV 4 : Yetki Yükseltme

Admin ve şifreyi öğrendikten sonra başarılı bir şekilde giriş yaptım.r00t adında bir kullanıcı bilgisi aldım. Zaten ana sayfada da root bilgisine ulaşmıştık

Adımızı ve şifremizi bildiğime göre ssh bağlantısı kurabiliriz.

Kullanıcının hangi kullanıcı ve gruplara ait olduğunu belirlemek için id komutunu kullandım.

Grupların docker grubuna ait olduğunu gördüm ardından root shell almak için internette şu kaynağa rastladım Gtfobins 3

docker run -v /:/mnt --rm -it alpine chroot /mnt sh 

Komutu terminalde çalıştırdım ve root yekisini aldık.

Daha sonra, /root/.ssh/id_rsa’ ya ulaşıp ssh anahtarını elde etmiş oldum.

  1. REST (Representational State Transfer), web servislerini tasarlamak ve uygulamak için kullanılan bir mimari tarzıdır. REST API’ler, uygulamaların birbirleriyle veya bir sunucuyla iletişim kurmalarını sağlar. HTTP protokolü genellikle REST API’lerde iletişim için kullanılır.REST API’lerde “route” veya yol, belirli bir kaynağa veya hizmete erişmek için kullanılan URL’yi ifade eder. ↩︎
  2. robots.txt dosyası, bir web sitesi yöneticisinin arama motorlarına web sitesinin belirli kısıtlamalarını ve yönergelerini bildiren bir metin dosyasıdır. Bu dosya, özellikle arama motorları tarafından web sitesinin taranması sırasında hangi sayfaların indekslenmesine izin verilip verilmeyeceğini kontrol etmek için kullanılır. ↩︎
  3. https://gtfobins.github.io/gtfobins/docker/ ↩︎

Writeup kategorisinde bu yazımızı da inceleyebilirsiniz.

In this article: Siber Güvenlik, THM, Tryhackme, Writeup
. . .