# Bettercap

## Man in the middle saldırısı nedir?

"Man-in-the-Middle" (MITM), Türkçe olarak "Ortadaki Adam" anlamına gelir. Bu tür bir saldırıda, bir saldırgan iletişim kurmak isteyen iki taraf arasına girer ve onların arasında veri trafiğini kontrol eder. Bu, saldırganın, iletişimi izlemesine, dinlemesine veya hatta manipüle etmesine olanak tanır.

<figure><img src="https://10693534-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpHJ8OuTO6xpfwqkn7vmg%2Fuploads%2Fgit-blob-23cf3629cb92c887c428d7929cb79c94597de984%2Fimage_750x_6235e2f12c47a.jpg?alt=media" alt="" width="600"><figcaption></figcaption></figure>

## ARP saldırısı nedir?

ARP (Address Resolution Protocol) saldırısı, ağ güvenliğini tehlikeye atan bir tür ortadaki adam (Man-in-the-Middle) saldırısıdır. Bu saldırıda, saldırgan ağdaki bir cihazın (örneğin, bir bilgisayarın veya yönlendiricinin) IP adresini alır ve kendi MAC adresiyle ilişkilendirir. Böylece, saldırgan ağdaki diğer cihazlara, özellikle de ağ geçidi gibi önemli cihazlara, sahte IP ve MAC adresleri sağlar.

Bu saldırı, ağda iki cihaz arasındaki iletişimi etkiler. Örneğin, bir bilgisayarın IP adresiyle iletişim kurmak isteyen diğer cihazlar, saldırganın sahte MAC adresine yönlendirilir. Bu durumda, saldırgan tüm trafiği gözlemleyebilir, manipüle edebilir veya hatta çalmak için kullanabilir.

## Bettercap aracı nedir ne işe yarar?

Bettercap, ağ saldırıları gerçekleştirmek, ağ trafiğini izlemek ve analiz etmek için kullanılan bir açık kaynaklı ağ güvenlik aracıdır. Bu araç, özellikle ağ güvenliği uzmanları ve pentester'lar (penetrasyon test uzmanları) tarafından kullanılır. Bettercap, MITM (Man-in-the-Middle) saldırıları, ARP spoofing, DNS spoofing gibi çeşitli saldırılar gerçekleştirebilir. Ayrıca ağ trafiğini izleyebilir, analiz edebilir ve belirli protokolleri manipüle edebilir. Bunlar, ağ güvenliğini test etmek ve güvenlik açıklarını tespit etmek için kullanılır.

## Giriş

<figure><img src="https://10693534-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpHJ8OuTO6xpfwqkn7vmg%2Fuploads%2Fgit-blob-0af0ef00ab2a9f5bb768a73fe3bd97d6127a053d%2FEkran%20g%C3%B6r%C3%BCnt%C3%BCs%C3%BC%202024-03-04%20202114.png?alt=media" alt="" width="400"><figcaption></figcaption></figure>

Öncelikle **apt-get install bettercap** komutu ile bilgisayarımıza bettercap uygulamasını kuruyoruz.

Bettercap aracı ile istenilen sonuca toplamda **4** fazda ulaşırız:

**1. Analiz Fazı**\
**2. Saldırı Fazı**\
**3. Görüntüleme Fazı**\
**4. Hassas Verilerin Elde Edilme Fazı**

Aracımızda **bettercap –help** komutu ile çeşitli başlatılma parametrelerini görebilmekteyiz.

<figure><img src="https://10693534-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpHJ8OuTO6xpfwqkn7vmg%2Fuploads%2Fgit-blob-f5b494d95b22bb192e727549ab7ba2ed8df73a79%2FEkran%20g%C3%B6r%C3%BCnt%C3%BCs%C3%BC%202024-03-04%20202740.png?alt=media" alt="" width="600"><figcaption></figcaption></figure>

Kullanılması işlevsel olacak parametreler:

**bettercap –help** komutu ile ilgili bettercap toolumuzun çeşitli başlatılma parametrelerini görebilmekteyiz.\
\&#xNAN;**-iface (string)**: Ağınızdaki bağlantı arayüzlerini görüntüleyip ilgili IP numaranızı öğrenmenizi sağlar. Komut işletimcisinde çalıştırılan ifconfig komutundan farkı IP adresinizi bulmanın yanısıra ilgili IP adresinin hangi bağlantı arayüzü vasıtasıyla cihazınıza atandığını belirtir.\
\&#xNAN;**-autostart (string)**: komutu ile bettercap başlatıldığında otomatik olarak başlatılmasını istediğiniz modülleri arasına virgül koymak şartıyla girdiğimiz takdirde istenilen modüller başlatılacaktır.

**-caplet (string)**: Bettercap capletleri veya .cap dosyaları, Bettercapin etkileşimli oturumlarını kodlamanın güçlü bir yoludur; bunları Metasploitin .rc dosyaları olarak düşünün.Bettercap aracımızıda yüklü default .cap dosyaları listesi:

<figure><img src="https://10693534-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpHJ8OuTO6xpfwqkn7vmg%2Fuploads%2Fgit-blob-8ac7aae99eb5cc797fe84b3de52796e4f6b5555f%2FEkran%20g%C3%B6r%C3%BCnt%C3%BCs%C3%BC%202024-03-11%20224336.png?alt=media" alt="" width="750"><figcaption></figcaption></figure>

**-debug**:komutu hata aldığımız takdirde hata ayıklama prosedürünü çağırarak ilgili hatanın giderilmesi için uygulamayı çalıştırır.\
\&#xNAN;**-env-file (string)**: ilgili komut uygulama harici bir çevresel değişkeni bettercap ile kullanılabilmesine imkan tanır.

## Analiz Fazı

Man in the Middle(MITM) saldırısına başlamak için öncelikle **ifconfig** komutu ile ilgili cihazımızın kullandığı internet arayüzlerini(interface) ve bilgilerini görmemiz gerekecektir.

<figure><img src="https://10693534-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpHJ8OuTO6xpfwqkn7vmg%2Fuploads%2Fgit-blob-56f3fca0543c73cf69b180579708f997006d0939%2FEkran%20g%C3%B6r%C3%BCnt%C3%BCs%C3%BC%202024-03-04%20203103.png?alt=media" alt="" width="750"><figcaption></figcaption></figure>

Eğer harici bir wifi kartı taktıysanız ilgili çıktıda wlan0 olarak karşımıza çıkacaktır. Eth0 da yer alan inet 192.168.136.129 adresi cihazımızın IP bilgisini içermektedir. İlgili IP adresi router tarafından tarafımıza atanan IP adresimiz olarak adlandırırız. Bettercap aracımızda interface belirtmek üzere kullanacağımız bir parametre bulunmaktadır. Biz burada sanal makinemizde nat ağında olduğumuz için eth0 network arayüzünü seçeceğiz. Bunun için **bettercap -iface eth0** komutunu kullanmamız gerekmektedir.

<figure><img src="https://10693534-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpHJ8OuTO6xpfwqkn7vmg%2Fuploads%2Fgit-blob-d6bb46e16838cb8eb38921f0638f56b5ca91dcd0%2FEkran%20g%C3%B6r%C3%BCnt%C3%BCs%C3%BC%202024-03-04%20205657.png?alt=media" alt="" width="750"><figcaption></figcaption></figure>

Şu anda bettercap çalışmaktadır.Bu sırada **help** komutu ile bettercap aracımızda çalışan modülleri görüntüleyebilirsiniz.

<figure><img src="https://10693534-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpHJ8OuTO6xpfwqkn7vmg%2Fuploads%2Fgit-blob-747b98ebeaaf60f55bf3c65025201e957452eec1%2FEkran%20g%C3%B6r%C3%BCnt%C3%BCs%C3%BC%202024-03-04%20205820.png?alt=media" alt="" width="300"><figcaption></figcaption></figure>

Hedef makinenin IP adresini öğrenmek M.I.M için önceliğimiz olmalıdır. Bağlandığımız Router cihazımıza bağlı diğer IP adreslerini tespit etmek için **net.probe** modulünü kullanmak kritik bir önem taşımaktadır.

Aşağıda ilgili modülün **net.probe on** komutunun çıktısı bulunmaktadır. Ağımızdaki diğer IP adreslerini bizlere sunmuştur.

<figure><img src="https://10693534-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpHJ8OuTO6xpfwqkn7vmg%2Fuploads%2Fgit-blob-06546d79f0b85e004f055f1ade3c57b7e1503626%2FEkran%20g%C3%B6r%C3%BCnt%C3%BCs%C3%BC%202024-03-11%20200716.png?alt=media" alt="" width="550"><figcaption></figcaption></figure>

Daha detaylı ve düzenli bir görünüm elde etmek için net.show komutunu kullanarak ağımızdaki diğer cihazların IP, MAC adresi, Makine adı gibi kritik bilgilere ulaşabiliriz.

### Bettercap ile IP Taraması nasıl yapılır?

Bettercap bu bilgilere ARP taraması yaparken, ağdaki cihazlara ARP istekleri gönderir ve bu isteklere yanıt veren cihazlardan gelen bilgileri kullanarak IP ve MAC adreslerini toplar. Bu bilgiler daha sonra kullanıcıya sunulur veya işlenir.\
Peki ilgili IP adreslerini Bettercap nasıl topllar ve bize sunar?\
IP taraması yapmak için Bettercap, altında çalışan birçok farklı modül ve yetenek sunar. Bunlardan bazıları:\
**ARP Scan (Arp Taraması)**: Bettercap, ağdaki cihazları tespit etmek için ARP taraması yapabilir. Bu, ağda bulunan cihazların IP ve MAC adreslerini toplar.\
**MDNS Scan (Multicast DNS Taraması)**: Bettercap, Multicast DNS protokolü kullanılarak ağdaki cihazları tespit edebilir. Bu, ağdaki çeşitli cihazların isimlerini ve IP adreslerini ortaya çıkarabilir.\
**DHCP Client List Scan (DHCP İstemci Listesi Taraması)**: Bettercap, DHCP istemci listesini kullanarak ağdaki cihazları tespit edebilir. Bu, ağdaki dinamik olarak IP adresi atanmış cihazların listesini sunar.\
**Nmap Entegrasyonu**: Bettercap, Nmap gibi harici araçları kullanarak daha kapsamlı tarama işlemleri yapabilir. Nmap, farklı protokolleri kullanarak detaylı port taramaları ve hedef cihazların hizmetlerini belirleme gibi işlevler sunar.

Bu tablodaki **gateway adresi** M.I.M saldırısı anlamamız için çok önemli.

<figure><img src="https://10693534-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpHJ8OuTO6xpfwqkn7vmg%2Fuploads%2Fgit-blob-cb4788ffc4393db9d55563341acad4142cc000ee%2FEkran%20g%C3%B6r%C3%BCnt%C3%BCs%C3%BC%202024-03-11%20202155.png?alt=media" alt="" width="750"><figcaption></figcaption></figure>

Hedef IP’mizi 192.168.136.130 olarak belirleyelim.Aşağıda hedef cihazımızın bilgilerini görmektesiniz:

<figure><img src="https://10693534-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpHJ8OuTO6xpfwqkn7vmg%2Fuploads%2Fgit-blob-a78b7ac3ab4cf35fec263c5ec05b50777f84da03%2FEkran%20g%C3%B6r%C3%BCnt%C3%BCs%C3%BC%202024-03-11%20201410.png?alt=media" alt="" width="750"><figcaption></figcaption></figure>

Windows hedef cihazımızda **arp -a** komutu ile ağıımızda olan saldırdığımız Kali Linux makinemize ait IP ve MAC adresini görmekteseniz.\
İlgili Kali Linux makinemizin:\
IP adresi: 192.168.136.129 ve MAC Adresi: 00-0c-29-7e-8f-b8

<figure><img src="https://10693534-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpHJ8OuTO6xpfwqkn7vmg%2Fuploads%2Fgit-blob-79fa4d794bcdd79191fcba6a5e1601a020c40e36%2FEkran%20g%C3%B6r%C3%BCnt%C3%BCs%C3%BC%202024-03-11%20202527.png?alt=media" alt="" width="750"><figcaption></figcaption></figure>

### Bettercap ile Man in the Middle Saldırısını Anlamak

M.I.M saldırısı bu noktada 192.168.136.129 IP numaralı Kali Linux cihazımızın MAC adresini, Gatewayin MAC adresi ile değiştirerek ağa bağlı olan hedef Windows makinesinin web isteklerini biz routermışız gibi bizim üstümüzden ilgili network serverlarına iletilecektir.

## Saldırı Fazı

**help arp.spoof** komutu ile ilgili modulün parametrelerine göz atalım. Gerekli konfigürasyonları yaptıktan sonra saldırımızı başlatabiliriz. Göründüğü üzere **arp.spoof.fullduplex default olarak false**. Bunu **set arp.spoof.fullduplex true** komutu ile true durumuna ayarlamamız gerekmektedir.

<figure><img src="https://10693534-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpHJ8OuTO6xpfwqkn7vmg%2Fuploads%2Fgit-blob-1daa92b023b0fa56a1ce3d2a8e5d32e93887f149%2FEkran%20g%C3%B6r%C3%BCnt%C3%BCs%C3%BC%202024-03-11%20203033.png?alt=media" alt="" width="750"><figcaption></figcaption></figure>

Ardından **set arp.spoof.targets \[Hedef IP]** komutu ile saldıracağımız hedef IP adresini bettercap toolumuz için hedef göstermeliyiz. **arp.spoof on** komutu ile de saldırımızı başlatmış olacağız.

Ek bilgi: Eğer hedef makinenin web faaliyetlerini izlemek gibi bir amacınız yoksa sadece ağdan düşürmek istiyorsanız **set arp.spoof.targets \[Hedef IP]; arp.ban on** komutu kullanılabilmektedir. Bu komut hedefe router tarafından verilen IP adresinin router tarafından yasaklanmasına dayanmaktadır.

Saldırıyı başlattıktan sonra aşağıdaki ekran görüntüsünde görüldüğü üzere saldırı yapan Kali Linux makinemizin Mac adresi Gateway Mac adresi ile aynı oldu! Aradaki farkı ilk **arp -a** komutu ile saldırıyı başlattıktan sonra çalıştırılan **arp -a** komutunun çıktılarından doğrulayabiliriz. Hedef cihazın web isteklerini artık okuyabiliriz.

<figure><img src="https://10693534-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpHJ8OuTO6xpfwqkn7vmg%2Fuploads%2Fgit-blob-660578772a1fbc93ba3dcb7e86b7cc396b5774de%2FEkran%20g%C3%B6r%C3%BCnt%C3%BCs%C3%BC%202024-03-11%20220600.png?alt=media" alt="" width="750"><figcaption></figcaption></figure>

## Görüntüleme Fazı

Saldırı fazından sonra net.sniff modülümüzü kullanmalıyız. **net.sniff on** komutu ile ilgili hedef makinenin routerımıza attığı istekleri okuyabilir durumda olacağız. Hedef Windows makinemiz ile Facebook web sitesine giriş yapalım.

<figure><img src="https://10693534-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpHJ8OuTO6xpfwqkn7vmg%2Fuploads%2Fgit-blob-58d22aa0645b2238145007c3e348268173871582%2FEkran%20g%C3%B6r%C3%BCnt%C3%BCs%C3%BC%202024-03-11%20220009.png?alt=media" alt="" width="750"><figcaption></figcaption></figure>

## Hassas Verilerilerin Elde Edilme Fazı

**net.sniff on** komutu ile izlediğimiz facebook sitesine istek var mı tespit edelim! Bunu terminalimizin sol üst barında bulunan **Actions -> Find** kısmında web istekleri arasında bulunmak istenilen aktiviteye ait doğru kelimeleri yazarak kolayca aratabiliriz. Örneğin; "website ismi,username,username,usr,password,passwd,vb.."

<figure><img src="https://10693534-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpHJ8OuTO6xpfwqkn7vmg%2Fuploads%2Fgit-blob-b358eadad7d44333d05da39918a838289f860b72%2FEkran%20g%C3%B6r%C3%BCnt%C3%BCs%C3%BC%202024-03-11%20215947.png?alt=media" alt="" width="750"><figcaption></figcaption></figure>

Artık istediğimiz üzere hedef makinenin **HTTP adresli** web isteklerini dilediğimiz gibi izleyebiliriz!

### HTTP istekleri ve HTTPS istekleri

HTTP trafiğini izlemek ve manipüle etmek, HTTPS trafiğini izlemek ve manipüle etmekten daha kolaydır. HTTP, açık metin protokolü olduğu için, **HTTP istekleri ve yanıtları okunabilir** ve manipüle edilebilir.

Ancak, HTTPS, HTTP üzerinde SSL/TLS (Secure Sockets Layer/Transport Layer Security) protokollerini kullanarak **şifrelenmiş** bir iletişim kanalı oluşturur. Bu şifreleme, iletişimi dinlemek ve içeriğine müdahale etmek için geleneksel **MITM saldırılarına karşı koruma sağlar.** Dolayısıyla, Bettercap gibi araçlar, HTTPS trafiğini izlemekte ve manipüle etmekte daha sınırlıdır. **Bu yüzden önceki örneğimizde yer alan facebook sitesine giden sadece istekleri görüntüleyebiliriz. Gönderilen verileri okuyamayız.**

## Örnek

Bir örnek daha yapalım ve hedefin girmiş olduğu hassas bilgileri görüntüleyelim. Hedef makinemizden **http adresli** "unicornitems.com/my-account/" adresine giriş yapıp rastgele üyelik bilgileriyle giriş yapmayı deneyelim:

<figure><img src="https://10693534-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpHJ8OuTO6xpfwqkn7vmg%2Fuploads%2Fgit-blob-37e0a39bca7a9b5e060748d6f07e9491fa5fbc9a%2FEkran%20g%C3%B6r%C3%BCnt%C3%BCs%C3%BC%202024-03-11%20225726.png?alt=media" alt="" width="750"><figcaption></figcaption></figure>

Kullanıcı bilgileri rastgele olduğu için uyarı mesajı döndü fakat amacımız üyelik girişi değil.

<figure><img src="https://10693534-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpHJ8OuTO6xpfwqkn7vmg%2Fuploads%2Fgit-blob-9608f80d7b03a221b7dd7f75d12991d39336026f%2FEkran%20g%C3%B6r%C3%BCnt%C3%BCs%C3%BC%202024-03-11%20225754.png?alt=media" alt="" width="750"><figcaption></figcaption></figure>

Saldırı yaptığımız Kali Linux makinemizde dinlediğimiz ver içinden girilen kullanıcı adı ve parolası bilgilerini kontrol etmek için password kelimesini aratıyoruz ve hedef makinemizin girmiş olduğu bilgileri görüntüleyebiliyoruz!**Tebrikler!**

<figure><img src="https://10693534-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpHJ8OuTO6xpfwqkn7vmg%2Fuploads%2Fgit-blob-d29f0e093615259cde132b81a83e054f236d5f2a%2FEkran%20g%C3%B6r%C3%BCnt%C3%BCs%C3%BC%202024-03-11%20230034.png?alt=media" alt="" width="900"><figcaption></figcaption></figure>

{% embed url="<https://github.com/boracicekk>" fullWidth="false" %}
Bu yazı Bora Çiçek tarafından hazırlanmıştır.
{% endembed %}
