Gönül POLAT tarafından yazılmıştır.
Herkese merhaba, bu yazımızda tryhackme platformunda bulunan h4cked odasını çözeceğiz. Bu oda wireshark, privilege escalation ve shell konularında temel bilgiye sahip yeni başlayanlar için tasarlanmıştır.
Find out what happened by analysing a .pcap file and hack your way back into the machine. (a.pcap dosyasını analiz ederek ne olduğunu bulun ve makineyi hackleyerek geri dönün. )
Makine iki taskden oluşuyor. İlk taskde bize bir pcap dosyası veriyor. Bize verilen pcap dosyası, bir sunucudan sisteme saldırıdan yakalanan bir trafik paketidir. Saldırganın sistemin içine nasıl girdiğini ve sistemdeyken ne yaptığını analiz edeceğiz.
Pcap dosyasını indirip wireshark ile açıyoruz.
1. The attacker is trying to log into a specific service. What service is this? (Saldırgan, belirli bir hizmette oturum açmaya çalışıyor. Bu hangi hizmet?)
Wireshark, 21 numaralı porta birden fazla bağlantı girişimi olduğunu gösteriyor. 21 numaralı port FTP portudur.
Cevap: FTP
2. There is a very popular tool by Van Hauser which can be used to brute force a series of services. What is the name of this tool? ( Van Hauser tarafından geliştirilen brute force uygulamak için kullanılabilecek çok popüler bir araç var. Bu aracın adı nedir?)
“Van Hauser brute force” üzerine Google araması yaptığımızda cevabı buluyoruz.
Cevap: hydra
3. The attacker is trying to log on with a specific username. What is the username? (Saldırgan, belirli bir kullanıcı adıyla oturum açmaya çalışıyor. Kullanıcı adı nedir?)
Herhangi bir TCP bağlantısına basıp sağa tıklıyoruz. Follow->TCP Stream’e tıklıyoruz. Bu bize mevcut TCP bağlantısındaki paketleri gösterecektir. Saldırgan jenny kullanıcı adıyla çoğu kez oturum açmayı denemiş.
Cevap: jenny
4. What is the user’s password? (Kullanıcının şifresi nedir?)
Saldırgan oturum açmada başarılı olduğunda girmiş olduğu şifreyi giden gelen paketlerden elde edebiliriz. Bir komut kabul edilip başarıyla işlenirse, sunucu 200 yanıt kodu verir. Bunun için wireshark’ta paket filtreleyerek başarılı girişi tespit edeceğiz.
ftp.response.code == 200
Filtreleyerek bulduğumuz paketlerden herhangi birine basıp sağa tıklıyoruz. Follow->TCP Stream’e tıklıyoruz.
Cevap: password123
5. What is the current FTP working directory after the attacker logged in? (Saldırgan oturum açtıktan sonra geçerli FTP çalışma dizini nedir?)
Saldırgan “pwd” komutunu çalıştırmış. Pwd komutu işlem yapılırken hangi dizinde olduğumuzu gösterir.
Cevap: /var/www/html
6. The attacker uploaded a backdoor. What is the backdoor’s filename? (Saldırgan bir backdoor yükledi. Backdoor dosya adı nedir?)
Saldırganın FTP bağlantısını kurduktan sonra sisteme “shell.php” isimli bir reverse shell dosyası yüklediğini tespit ediyoruz.
Cevap: shell.php
7. The backdoor can be downloaded from a specific URL, as it is located inside the uploaded file. What is the full URL?( Backdoor, yüklenen dosyanın içinde bulunduğu için belirli bir URL’den indirilebilir. Tam URL nedir?)
Ftp-data filtresini uygulayarak sistem içerisine yüklenmiş verilere ulaşıyoruz. STOR komutu veri bağlantısı başarıyla kurulduktan sonra sisteme dosya yüklerken kullanılır. Saldırganın STOR komutu ile sisteme shell.php dosyası yüklediğini görüyoruz.
Sağa tıklayıp Follow->TCP Stream’e tıklıyoruz. Dosyanın içeriğini ve sorunun cevaını görüyoruz.
Cevap : http://pentestmonkey.net/tools/php-reverse-shell
8. Which command did the attacker manually execute after getting a reverse shell?( Saldırgan reverse shell aldıktan sonra hangi komutu manuel olarak yürüttü?)
Shell.php dosyasını incelediğimizde IP ve Port numaralarını görebiliriz.
Shell.php dosyasından elde ettiğimiz IP ve port bilgilerini wireshark üzerinden filtreleyerek aradığımıza daha kolay bir şekilde erişiyoruz.
ip.dst_host == 192.168.0.147 && tcp.dstport == 80
Follow->TCP Stream
Cevap: whoami
9. What is the computer’s hostname? (Bilgisayarın hostname’i nedir?)
Cevap: wir3
10. Which command did the attacker execute to spawn a new TTY shell? (Saldırgan yeni bir TTY shell oluşturmak için hangi komutu çalıştırdı?)
Saldırganın pyhon3 –c ‘import pty; pty.spawn(“/bin/bash”)’ komutunu çalıştırıp yeni bir shell oluşturduğunu görüyoruz.
Cevap: $ python3 -c ‘import pty; pty.spawn(“/bin/bash”)’
11. Which command was executed to gain a root shell? (Bir root shell elde ermek için hangi komut çalıştırıldı?)
Cevap: sudo su
12. The attacker downloaded something from GitHub. What is the name of the GitHub project? (Saldırgan, GitHub’dan bir şey indirdi. GitHub projesinin adı nedir?)
Cevap: Reptile
13. The project can be used to install a stealthy backdoor on the system. It can be very hard to detect. What is this type of backdoor called? (Proje, sisteme gizli bir backdoor kurmak için kullanılabilir. Tespit etmek çok zor olabilir. Bu tür arka backdoorlara ne denir?)
Rootkit saldırganların bir backdoor oluşturarak uzaktan kontrol etme ve tam kontrol oluşturmasını sağlayan bir virüs türüdür. Reptile projesi de bunun için geliştirilmiş bir rootkittir.
Cevap: rootkit
İkinci adımda bizden flag.txt dosyasını okuyup flag’i bulmamız isteniyor. Saldırganın kullanıcı şifresini değiştirdiğini, flag’in /root/Reptile dizininde olduğunu ve gerekli hallerde pcap dosyasından yararlanabileceğimiz gibi ipuçlar verilmiş.
Şimdi makinemizi çalıştırıp bir nmap taraması yapıyoruz. Nmap tarama sonucunda 21(FTP) – 80(HTTP) portlarının açık olduğunu tespit ettik.
Parolanın değiştiği ipucunu almıştık. FTP hizmeti üzerinde Hydra aracını çalıştırıp değişen parola bilgisine ulaşalım.
Kullanıcı adı jenny şifre 987654321 şeklinde bulduk. Elde ettiğimiz bilgilerle FTP servisine bağlanıyoruz. Saldırganın shell.php dosyasını indiriyoruz.
İndirdiğimiz shell.php dosyasını nano editörle açarak içerisine tryhackme platformunun bize vpn ile sağladığı IP’mizi ve dinlenecek portu yazıyoruz.
İçeriğini değiştirdiğimiz shell.php dosyasını ftp servisine yüklüyoruz.
nc –lvp 666-> Netcat aracımızı girmiş olduğumuz port numarası ile başlatıyoruz.
10.10.6.158/shell.php -> Hedef makinenin IP’sini url’de yazarak web sunucusunda shell.php dosyasını çalıştırıyoruz. Ve reverse shell aldık.
Saldırganın kullanmış olduğu adımları takip ediyoruz. Saldırgan sisteme sızdıktan sonra shell değiştirmişti. Biz de aşağıdaki komutu kullanarak shell değiştiriyoruz.
python3 -c ‘import pty; pty.spawn(“/bin/bash”)’
Ardından jenny kullanıcı adı ve parolası ile sisteme kullanıcı seviyesinde giriş yapıyoruz. Ve ardından sudo su komutu ile sistemde root yetkisine ulaşıyoruz.
İpucunda flag’in /root/Reptile dizinin altında olduğu bilgisini almıştık. Dizine giderek bayrağımızı elde ediyoruz!
Bir sonraki yazımızda görüşmek üzere.
[TR] H4CKED TryHackMe WriteUp
Herkese merhaba, bu yazımızda tryhackme platformunda bulunan h4cked odasını çözeceğiz. Bu oda wireshark, privilege escalation ve shell konularında temel bilgiye sahip yeni başlayanlar için tasarlanmıştır.
Find out what happened by analysing a .pcap file and hack your way back into the machine. (a.pcap dosyasını analiz ederek ne olduğunu bulun ve makineyi hackleyerek geri dönün. )
Makine iki taskden oluşuyor. İlk taskde bize bir pcap dosyası veriyor. Bize verilen pcap dosyası, bir sunucudan sisteme saldırıdan yakalanan bir trafik paketidir. Saldırganın sistemin içine nasıl girdiğini ve sistemdeyken ne yaptığını analiz edeceğiz.
Task 1: Oh no! We’ve been hacked!
Pcap dosyasını indirip wireshark ile açıyoruz.
1. The attacker is trying to log into a specific service. What service is this? (Saldırgan, belirli bir hizmette oturum açmaya çalışıyor. Bu hangi hizmet?)
Wireshark, 21 numaralı porta birden fazla bağlantı girişimi olduğunu gösteriyor. 21 numaralı port FTP portudur.
Cevap: FTP
2. There is a very popular tool by Van Hauser which can be used to brute force a series of services. What is the name of this tool? ( Van Hauser tarafından geliştirilen brute force uygulamak için kullanılabilecek çok popüler bir araç var. Bu aracın adı nedir?)
“Van Hauser brute force” üzerine Google araması yaptığımızda cevabı buluyoruz.
Cevap: hydra
3. The attacker is trying to log on with a specific username. What is the username? (Saldırgan, belirli bir kullanıcı adıyla oturum açmaya çalışıyor. Kullanıcı adı nedir?)
Herhangi bir TCP bağlantısına basıp sağa tıklıyoruz. Follow->TCP Stream’e tıklıyoruz. Bu bize mevcut TCP bağlantısındaki paketleri gösterecektir. Saldırgan jenny kullanıcı adıyla çoğu kez oturum açmayı denemiş.
Cevap: jenny
4. What is the user’s password? (Kullanıcının şifresi nedir?)
Saldırgan oturum açmada başarılı olduğunda girmiş olduğu şifreyi giden gelen paketlerden elde edebiliriz. Bir komut kabul edilip başarıyla işlenirse, sunucu 200 yanıt kodu verir. Bunun için wireshark’ta paket filtreleyerek başarılı girişi tespit edeceğiz.
ftp.response.code == 200
Filtreleyerek bulduğumuz paketlerden herhangi birine basıp sağa tıklıyoruz. Follow->TCP Stream’e tıklıyoruz.
Cevap: password123
5. What is the current FTP working directory after the attacker logged in? (Saldırgan oturum açtıktan sonra geçerli FTP çalışma dizini nedir?)
Saldırgan “pwd” komutunu çalıştırmış. Pwd komutu işlem yapılırken hangi dizinde olduğumuzu gösterir.
Cevap: /var/www/html
6. The attacker uploaded a backdoor. What is the backdoor’s filename? (Saldırgan bir backdoor yükledi. Backdoor dosya adı nedir?)
Saldırganın FTP bağlantısını kurduktan sonra sisteme “shell.php” isimli bir reverse shell dosyası yüklediğini tespit ediyoruz.
Cevap: shell.php
7. The backdoor can be downloaded from a specific URL, as it is located inside the uploaded file. What is the full URL?( Backdoor, yüklenen dosyanın içinde bulunduğu için belirli bir URL’den indirilebilir. Tam URL nedir?)
Ftp-data filtresini uygulayarak sistem içerisine yüklenmiş verilere ulaşıyoruz. STOR komutu veri bağlantısı başarıyla kurulduktan sonra sisteme dosya yüklerken kullanılır. Saldırganın STOR komutu ile sisteme shell.php dosyası yüklediğini görüyoruz.
Sağa tıklayıp Follow->TCP Stream’e tıklıyoruz. Dosyanın içeriğini ve sorunun cevaını görüyoruz.
Cevap : http://pentestmonkey.net/tools/php-reverse-shell
8. Which command did the attacker manually execute after getting a reverse shell?( Saldırgan reverse shell aldıktan sonra hangi komutu manuel olarak yürüttü?)
Shell.php dosyasını incelediğimizde IP ve Port numaralarını görebiliriz.
Shell.php dosyasından elde ettiğimiz IP ve port bilgilerini wireshark üzerinden filtreleyerek aradığımıza daha kolay bir şekilde erişiyoruz.
ip.dst_host == 192.168.0.147 && tcp.dstport == 80
Follow->TCP Stream
Cevap: whoami
9. What is the computer’s hostname? (Bilgisayarın hostname’i nedir?)
Cevap: wir3
10. Which command did the attacker execute to spawn a new TTY shell? (Saldırgan yeni bir TTY shell oluşturmak için hangi komutu çalıştırdı?)
Saldırganın pyhon3 –c ‘import pty; pty.spawn(“/bin/bash”)’ komutunu çalıştırıp yeni bir shell oluşturduğunu görüyoruz.
Cevap: $ python3 -c ‘import pty; pty.spawn(“/bin/bash”)’
11. Which command was executed to gain a root shell? (Bir root shell elde ermek için hangi komut çalıştırıldı?)
Cevap: sudo su
12. The attacker downloaded something from GitHub. What is the name of the GitHub project? (Saldırgan, GitHub’dan bir şey indirdi. GitHub projesinin adı nedir?)
Cevap: Reptile
13. The project can be used to install a stealthy backdoor on the system. It can be very hard to detect. What is this type of backdoor called? (Proje, sisteme gizli bir backdoor kurmak için kullanılabilir. Tespit etmek çok zor olabilir. Bu tür arka backdoorlara ne denir?)
Rootkit saldırganların bir backdoor oluşturarak uzaktan kontrol etme ve tam kontrol oluşturmasını sağlayan bir virüs türüdür. Reptile projesi de bunun için geliştirilmiş bir rootkittir.
Cevap: rootkit
Task 2: Hack your way back into the machine
İkinci adımda bizden flag.txt dosyasını okuyup flag’i bulmamız isteniyor. Saldırganın kullanıcı şifresini değiştirdiğini, flag’in /root/Reptile dizininde olduğunu ve gerekli hallerde pcap dosyasından yararlanabileceğimiz gibi ipuçlar verilmiş.
Şimdi makinemizi çalıştırıp bir nmap taraması yapıyoruz. Nmap tarama sonucunda 21(FTP) – 80(HTTP) portlarının açık olduğunu tespit ettik.
Parolanın değiştiği ipucunu almıştık. FTP hizmeti üzerinde Hydra aracını çalıştırıp değişen parola bilgisine ulaşalım.
Kullanıcı adı jenny şifre 987654321 şeklinde bulduk. Elde ettiğimiz bilgilerle FTP servisine bağlanıyoruz. Saldırganın shell.php dosyasını indiriyoruz.
İndirdiğimiz shell.php dosyasını nano editörle açarak içerisine tryhackme platformunun bize vpn ile sağladığı IP’mizi ve dinlenecek portu yazıyoruz.
İçeriğini değiştirdiğimiz shell.php dosyasını ftp servisine yüklüyoruz.
nc –lvp 666-> Netcat aracımızı girmiş olduğumuz port numarası ile başlatıyoruz.
10.10.6.158/shell.php -> Hedef makinenin IP’sini url’de yazarak web sunucusunda shell.php dosyasını çalıştırıyoruz. Ve reverse shell aldık.
Saldırganın kullanmış olduğu adımları takip ediyoruz. Saldırgan sisteme sızdıktan sonra shell değiştirmişti. Biz de aşağıdaki komutu kullanarak shell değiştiriyoruz.
python3 -c ‘import pty; pty.spawn(“/bin/bash”)’
Ardından jenny kullanıcı adı ve parolası ile sisteme kullanıcı seviyesinde giriş yapıyoruz. Ve ardından sudo su komutu ile sistemde root yetkisine ulaşıyoruz.
İpucunda flag’in /root/Reptile dizinin altında olduğu bilgisini almıştık. Dizine giderek bayrağımızı elde ediyoruz!
Bir sonraki yazımızda görüşmek üzere.
Moderatör tarafında düzenlendi: